Compare commits

..

50 Commits

Author SHA1 Message Date
sfan5
568f7a8e8f Bump version to 5.10.0 2024-11-10 19:17:53 +01:00
ROllerozxa
a983b72713 Add Fastlane metadata for F-Droid (#15411)
Co-authored-by: grorp <grorp@posteo.de>
2024-11-10 19:08:08 +01:00
sfence
e55ba9c390 Support generation of working Xcode project for signature purposes on MacOS (#15303) 2024-11-10 19:06:52 +01:00
sfan5
ec7738934b CI: fix workflows not running on translation update 2024-11-10 18:31:56 +01:00
chocomint
fbab80fced Translated using Weblate (Spanish (American))
Currently translated at 100.0% (8 of 8 strings)

Translation: Minetest/Minetest Android
Translate-URL: https://hosted.weblate.org/projects/minetest/minetest-android/es_US/
2024-11-10 18:15:45 +01:00
chocomint
3b2abbea70 Added translation using Weblate (Spanish (American)) 2024-11-10 18:15:45 +01:00
gallegonovato
998d1a2b8c Translated using Weblate (Spanish)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
chocomint
9a7471c5c0 Translated using Weblate (Spanish)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
chocomint
21c8c141aa Added translation using Weblate (Spanish) 2024-11-10 18:15:45 +01:00
waxtatect
c2e89c5b6f Translated using Weblate (French)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
Yof
cf76dac464 Translated using Weblate (Ukrainian)
Currently translated at 94.6% (1309 of 1383 strings)
2024-11-10 18:15:45 +01:00
ninjum
d9df06cda3 Translated using Weblate (Galician)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
grorp
66a5ddca25 Translated using Weblate (German)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
gallegonovato
0be1fe11ca Translated using Weblate (Spanish)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
chocomint
812abba33b Translated using Weblate (Spanish)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
gallegonovato
2d6592a804 Translated using Weblate (Spanish)
Currently translated at 100.0% (1383 of 1383 strings)
2024-11-10 18:15:45 +01:00
chocomint
e23c191232 Translated using Weblate (Spanish)
Currently translated at 99.7% (1380 of 1383 strings)
2024-11-10 18:15:45 +01:00
gallegonovato
58ebe0a58f Translated using Weblate (Spanish)
Currently translated at 99.7% (1380 of 1383 strings)
2024-11-10 18:15:45 +01:00
chocomint
000f0c78bc Translated using Weblate (Spanish)
Currently translated at 99.3% (1374 of 1383 strings)
2024-11-10 18:15:45 +01:00
gallegonovato
aaf4877730 Translated using Weblate (Spanish)
Currently translated at 99.3% (1374 of 1383 strings)
2024-11-10 18:15:44 +01:00
chocomint
0c61461b07 Translated using Weblate (Spanish)
Currently translated at 99.1% (1371 of 1383 strings)
2024-11-10 18:15:44 +01:00
gallegonovato
31c50c470c Translated using Weblate (Spanish)
Currently translated at 99.1% (1371 of 1383 strings)
2024-11-10 18:15:44 +01:00
chocomint
62bee9f502 Translated using Weblate (Spanish)
Currently translated at 98.7% (1366 of 1383 strings)
2024-11-10 18:15:44 +01:00
y5nw
112c0719cd Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 91.7% (1269 of 1383 strings)
2024-11-10 18:15:44 +01:00
gallegonovato
c96455b2e4 Translated using Weblate (Spanish)
Currently translated at 98.6% (1365 of 1383 strings)
2024-11-10 18:15:44 +01:00
chocomint
eed109c724 Translated using Weblate (Spanish)
Currently translated at 96.6% (1337 of 1383 strings)
2024-11-10 18:15:44 +01:00
BlackImpostor
f25eaf1261 Translated using Weblate (Russian)
Currently translated at 94.7% (1310 of 1383 strings)
2024-11-10 18:15:44 +01:00
BreadW
e1be22a6ff Translated using Weblate (Japanese)
Currently translated at 94.5% (1308 of 1383 strings)
2024-11-10 18:12:48 +01:00
Wuzzy
5891d0f5ec Translated using Weblate (German)
Currently translated at 99.7% (1380 of 1383 strings)
2024-11-10 18:12:48 +01:00
grorp
2424c64099 Translated using Weblate (German)
Currently translated at 99.7% (1380 of 1383 strings)
2024-11-10 18:11:40 +01:00
sfan5
8b27340b2e Work around Intel driver bug on Win 8.1 and older 2024-11-10 17:44:45 +01:00
sfan5
7557a287e5 Update credits for 5.10.0 2024-11-10 13:23:16 +01:00
sfan5
122b2d70d9 Re-fix CAO mesh lighting with shaders disabled
previously: 65af606729
2024-11-10 13:21:19 +01:00
SmallJoker
4bb9c8c61b Revert "Fix collisions with long dtime, in particular with bouncing" (#15400)
This reverts commit cb6c8eb2f0.
2024-11-10 13:20:30 +01:00
Lars Mueller
0391d91e5d Improve error messages for failed mesh loading 2024-11-09 18:13:56 +01:00
Lars Müller
77e78193a0 Fix set_bone_override documentation (#15353) 2024-11-09 18:13:36 +01:00
Lars Müller
cce4fe5a3f Fix wrongly documented glTF frame number restriction
The frame numbers can very well be floats since 06907aa
2024-11-09 17:57:37 +01:00
grorp
50b7523336 ogles 2 driver: Delete some dead code
grepping for IRR_COMPILE_GLES2_COMMON gives no other results

COGLESCoreExtensionHandler is only used through COpenGL3ExtensionHandler
2024-11-08 20:43:24 +01:00
grorp
fced6ff240 Fix ECF_D32 support in ogles2 video driver
OES_depth32 only talks about support for render buffers, not textures,
so it's not relevant here:
https://github.com/KhronosGroup/OpenGL-Registry/blob/main/extensions/OES/OES_depth32.txt

This fixes the scene being black with "video_driver = ogles2" and
"enable_post_processing = true" on my desktop computer.
2024-11-08 20:43:24 +01:00
grorp
bafc477919 Revert "2D rendering: Enable bilinear filter for downscaling textures" (#15385)
This reverts commit minetest/irrlicht@fb7a0e4298.
2024-11-08 11:17:15 +01:00
Ælla Chiana Moskopp
60cd1e4529 Correctly render transparency in TGA type 1 with color format A1R5G5B5
The branch removed in this patch handled color format A1R5G5B5 specially
when creating a texture from a TGA type 1 file, i.e. an image that has a
colormap. It did not handle the 1-bit alpha channel correctly, rendering
transparent pixels black instead.

Since the colormap is converted to A8R8G8B8 earlier anyways, the code
for the general case is able to handle this scenario already – at the
expense of making the created texture use twice as much GPU memory as
necessary.
2024-11-06 20:07:05 +01:00
Lars Müller
1fa4ca7c59 Switch to a more neutral ASCII art banner (#15356) 2024-11-06 20:06:39 +01:00
veprogames
db04964697 Content browser: Fix broken forum URLs
Repeated prepending would break these URLs.
This fix uses the freshly added `forum_url` field directly.
2024-11-06 20:06:26 +01:00
sfan5
294a30e445 Fix ScriptApiSecurity::checkPath mangling non-existent paths
bug introduced in 1c1c97cbd1
2024-11-03 19:27:08 +01:00
veprogames
9982c56373 Replace occurences of 'forum.minetest.net' with 'forum.luanti.org' (#15372) 2024-11-03 15:10:58 +01:00
SmallJoker
c884e7181f JsonCPP: restore '1.0.0+' compatibility (#15368)
Previously, compiling on Ubuntu 20.04 would fail with the system-provided JsonCPP
version (1.7.4). Which would satisfy the documented requirement of "1.0.0+".
2024-11-03 15:10:39 +01:00
Lars Müller
3064f3ccb7 Fix model[] being lit wrongly if shaders are disabled (#15364) 2024-11-03 15:10:21 +01:00
Lars Müller
0e06590ffd Apply "and" to server list & content search terms (#15365) 2024-11-03 15:09:47 +01:00
sfan5
e952a0807b Use servers.luanti.org (#15369) 2024-11-02 20:40:45 +00:00
rubenwardy
ba370d9841 Use content.luanti.org (#15360) 2024-11-02 20:40:33 +00:00
65 changed files with 8087 additions and 1472 deletions

View File

@@ -6,8 +6,9 @@ body:
attributes:
value: |
Please note the following:
1. **Please update Luanti to the latest stable or dev version** before submitting bug reports. Make sure the bug is still reproducible on the latest version.
2. This page is for reporting the bugs of **the engine itself**. For bugs in a particular game, please [search for the game in the ContentDB](https://content.minetest.net/packages/?type=game) and submit a bug report in their issue trackers.
2. This page is for reporting the bugs of **the engine itself**. For bugs in a particular game, please [search for the game in the ContentDB](https://content.luanti.org/packages/?type=game) and submit a bug report in their issue trackers.
* For example, you can submit issues about the Minetest Game [in its own repository](https://github.com/minetest/minetest_game/issues).
3. Please provide as many details as possible for us to spot the problem quicker.
- type: textarea

View File

@@ -4,5 +4,5 @@ contact_links:
url: https://github.com/minetest/minetest_game/issues/new/choose
about: Only submit issues of the engine in this repository's issue tracker. Submit those of Minetest Game in its own issue tracker.
- name: Search for issue trackers of third-party games
url: https://content.minetest.net/packages/?type=game
url: https://content.luanti.org/packages/?type=game
about: For issues of third-party games, search for the game in the ContentDB and then submit an issue in their issue tracker.

View File

@@ -7,7 +7,7 @@ body:
value: |
Please note the following:
1. Only submit a feature request if the feature does not exist on the latest dev version.
2. This page is for suggesting changes to **the engine itself**. To suggest changes to games, please [search for the game in the ContentDB](https://content.minetest.net/packages/?type=game) and submit a feature request in their issue trackers.
2. This page is for suggesting changes to **the engine itself**. To suggest changes to games, please [search for the game in the ContentDB](https://content.luanti.org/packages/?type=game) and submit a feature request in their issue trackers.
- type: textarea
attributes:
label: Problem

View File

@@ -12,6 +12,7 @@ on:
- 'irr/**.cpp'
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- 'android/**'
- '.github/workflows/android.yml'
pull_request:
@@ -24,6 +25,7 @@ on:
- 'irr/**.cpp'
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- 'android/**'
- '.github/workflows/android.yml'

View File

@@ -12,9 +12,8 @@ on:
- 'irr/**.cpp'
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- 'util/ci/**'
- 'Dockerfile'
- '.dockerignore'
- '.github/workflows/linux.yml'
pull_request:
paths:
@@ -26,9 +25,8 @@ on:
- 'irr/**.cpp'
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- 'util/ci/**'
- 'Dockerfile'
- '.dockerignore'
- '.github/workflows/linux.yml'
env:

View File

@@ -13,6 +13,7 @@ on:
- 'irr/**.mm' # Objective-C(++)
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- '.github/workflows/macos.yml'
pull_request:
paths:
@@ -25,10 +26,11 @@ on:
- 'irr/**.mm' # Objective-C(++)
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- '.github/workflows/macos.yml'
jobs:
build:
build-intel-macos:
# use lowest possible macOS running on x86_64 supported by brew to support more users
runs-on: macos-13
steps:
@@ -68,3 +70,44 @@ jobs:
with:
name: luanti-macos
path: ./build/macos/*.zip
build-arm-macos-xcode:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Install deps
run: |
source ./util/ci/common.sh
install_macos_deps
# brew jsoncpp do not include libjsoncpp.a, and if installed header conflict caused build failure
brew uninstall jsoncpp
- name: Build with Cmake
run: |
mkdir build
cd build
cmake .. \
-DCMAKE_OSX_DEPLOYMENT_TARGET=14 \
-DCMAKE_FIND_FRAMEWORK=LAST \
-DCMAKE_INSTALL_PREFIX=../build/macos/ \
-DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \
-DENABLE_SYSTEM_JSONCPP=OFF
cmake --build . -j$(sysctl -n hw.logicalcpu)
make install
- name: Build and Archive with Xcode
run: |
mkdir build_xcode
cd build_xcode
../util/ci/build_xcode.sh
- name: Tests
run: |
mkdir -p "${HOME}/Library/Application Support/minetest/games/"
ln -s "${PWD}/games/devtest" "${HOME}/Library/Application Support/minetest/games/"
./build/macos/luanti.app/Contents/MacOS/luanti --run-unittests
./build_xcode/luanti.xcarchive/Products/Applications/luanti.app/Contents/MacOS/luanti --run-unittests
- name: Diff Resources
run: |
diff -rd ./build/macos/luanti.app/Contents/Resources ./build_xcode/build/Release/luanti.app/Contents/Resources || exit 1
diff -rd ./build/macos/luanti.app/Contents/Resources ./build_xcode/luanti.xcarchive/Products/Applications/luanti.app/Contents/Resources || exit 1

View File

@@ -12,6 +12,7 @@ on:
- 'irr/**.cpp'
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- 'util/buildbot/**'
- 'misc/*.manifest'
- '.github/workflows/windows.yml'
@@ -25,6 +26,7 @@ on:
- 'irr/**.cpp'
- '**/CMakeLists.txt'
- 'cmake/Modules/**'
- 'po/**.po'
- 'util/buildbot/**'
- 'misc/*.manifest'
- '.github/workflows/windows.yml'

View File

@@ -16,7 +16,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)
@@ -272,12 +272,16 @@ endif()
if(APPLE)
install(FILES "misc/luanti-icon.icns" DESTINATION "${SHAREDIR}")
install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents")
install(FILES "${CMAKE_BINARY_DIR}/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents")
endif()
if(CMAKE_GENERATOR STREQUAL "Xcode")
set(client_RESOURCES "${CMAKE_SOURCE_DIR}/misc/luanti-icon.icns")
endif()
# Library pack
find_package(GMP REQUIRED)
find_package(Json REQUIRED)
find_package(Json 1.0.0 REQUIRED)
find_package(Lua REQUIRED)
if(NOT USE_LUAJIT)
add_subdirectory(lib/bitop)

View File

@@ -27,7 +27,7 @@ Further documentation
----------------------
- Website: https://www.minetest.net/
- Wiki: https://wiki.minetest.net/
- Forum: https://forum.minetest.net/
- Forum: https://forum.luanti.org/
- GitHub: https://github.com/minetest/minetest/
- [Developer documentation](doc/developing/)
- [doc/](doc/) directory of source distribution

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="unzip_notification_description">Menos de 1 minuto…</string>
<string name="ime_dialog_done">Hecho</string>
<string name="no_web_browser">No se encontró ningún navegador web</string>
<string name="loading">Cargando…</string>
<string name="notification_channel_name">Notificación General</string>
<string name="label">Luanti</string>
<string name="notification_channel_description">Notificaciones de Luanti</string>
<string name="unzip_notification_title">Cargando Luanti</string>
</resources>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="no_web_browser">No se encontró ningún navegador web</string>
<string name="loading">Cargando…</string>
<string name="notification_channel_description">Notificaciones de Luanti</string>
<string name="unzip_notification_description">Menos de 1 minuto…</string>
<string name="ime_dialog_done">Hecho</string>
<string name="label">Luanti</string>
<string name="unzip_notification_title">Cargando Luanti</string>
<string name="notification_channel_name">Notificación General</string>
</resources>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="unzip_notification_title">Загрузка Luanti</string>
<string name="unzip_notification_description">Меньше чам за 1 минуту…</string>
<string name="ime_dialog_done">Готово</string>
<string name="label">Luаnti</string>
<string name="notification_channel_description">Уведомления от Luanti</string>
<string name="notification_channel_name">Основные уведомления</string>
<string name="loading">Загрузка…</string>
<string name="no_web_browser">Не найдено веб-браузера</string>
</resources>

View File

@@ -563,30 +563,32 @@ function contentdb.filter_packages(query, by_type)
end
local keywords = {}
for word in query:lower():gmatch("%S+") do
table.insert(keywords, word)
for word in query:gmatch("%S+") do
table.insert(keywords, word:lower())
end
local function contains_all_keywords(str)
str = str:lower()
for _, keyword in ipairs(keywords) do
if not str:find(keyword, 1, true) then
return false
end
end
return true
end
local function matches_keywords(package)
for k = 1, #keywords do
local keyword = keywords[k]
if string.find(package.name:lower(), keyword, 1, true) or
string.find(package.title:lower(), keyword, 1, true) or
string.find(package.author:lower(), keyword, 1, true) or
string.find(package.short_description:lower(), keyword, 1, true) then
return true
end
end
return false
return contains_all_keywords(package.name) or
contains_all_keywords(package.title) or
contains_all_keywords(package.author) or
contains_all_keywords(package.short_description)
end
contentdb.packages = {}
for _, package in pairs(contentdb.packages_full) do
if (query == "" or matches_keywords(package)) and
(by_type == nil or package.type == by_type) then
contentdb.packages[#contentdb.packages + 1] = package
table.insert(contentdb.packages, package)
end
end
end

View File

@@ -51,10 +51,6 @@ local function get_formspec(data)
return
end
if info.forums then
info.forums = "https://forum.minetest.net/viewtopic.php?t=" .. info.forums
end
assert(data.package.name == info.name)
data.info = info
ui.update()
@@ -194,7 +190,7 @@ local function get_formspec(data)
add_link_button(fgettext("Source"), "repo")
add_link_button(fgettext("Issue Tracker"), "issue_tracker")
add_link_button(fgettext("Translate"), "translation_url")
add_link_button(fgettext("Forum Topic"), "forums")
add_link_button(fgettext("Forum Topic"), "forum_url")
hypertext = hypertext .. "\n\n" .. info.long_description.body

View File

@@ -13,7 +13,9 @@
"Desour/DS",
"srifqi",
"Gregor Parzefall (grorp)",
"Lars Müller (luatic)"
"Lars Müller (luatic)",
"cx384",
"sfence"
],
"previous_core_developers": [
"BlockMen",
@@ -44,30 +46,25 @@
],
"#": "For updating active/previous contributors, see the script in ./util/gather_git_credits.py",
"contributors": [
"cx384",
"numzero",
"AFCMS",
"sfence",
"Wuzzy",
"ROllerozxa",
"JosiahWI",
"OgelGames",
"David Heidelberg",
"1F616EMO",
"HybridDog",
"Bradley Pierce (Thresher)",
"savilli",
"Stvk imension",
"y5nw",
"Erich Schubert",
"numzero",
"red-001 <red-001@outlook.ie>",
"David Heidelberg",
"Wuzzy",
"paradust7",
"HybridDog",
"Zemtzov7",
"kromka-chleba",
"AFCMS",
"chmodsayshello",
"jordan4ibanez",
"superfloh247"
"OgelGames"
],
"previous_contributors": [
"Ælla Chiana Moskopp (erle) <erle@dieweltistgarnichtso.net> [Logo]",
"red-001 <red-001@outlook.ie>",
"Giuseppe Bilotta",
"HybridDog",
"ClobberXD",
"Dániel Juhász (juhdanad) <juhdanad@gmail.com>",
"MirceaKitsune <mirceakitsune@gmail.com>",
@@ -75,6 +72,7 @@
"MoNTE48",
"Constantin Wenger (SpeedProg)",
"Ciaran Gultnieks (CiaranG)",
"ROllerozxa",
"Paul Ouellette (pauloue)",
"stujones11",
"Rogier <rogier777@gmail.com>",

View File

@@ -195,8 +195,7 @@ local function search_server_list(input)
-- setup the keyword list
local keywords = {}
for word in input:gmatch("%S+") do
word = word:gsub("(%W)", "%%%1")
table.insert(keywords, word)
table.insert(keywords, word:lower())
end
if #keywords == 0 then
@@ -207,26 +206,17 @@ local function search_server_list(input)
-- Search the serverlist
local search_result = {}
for i = 1, #serverlistmgr.servers do
local server = serverlistmgr.servers[i]
local found = 0
for k = 1, #keywords do
local keyword = keywords[k]
if server.name then
local sername = server.name:lower()
local _, count = sername:gsub(keyword, keyword)
found = found + count * 4
end
if server.description then
local desc = server.description:lower()
local _, count = desc:gsub(keyword, keyword)
found = found + count * 2
end
for i, server in ipairs(serverlistmgr.servers) do
local name_matches, description_matches = true, true
for _, keyword in ipairs(keywords) do
name_matches = name_matches and not not
(server.name or ""):lower():find(keyword, 1, true)
description_matches = description_matches and not not
(server.description or ""):lower():find(keyword, 1, true)
end
if found > 0 then
local points = (#serverlistmgr.servers - i) / 5 + found
server.points = points
if name_matches or description_matches then
server.points = #serverlistmgr.servers - i
+ (name_matches and 50 or 0)
table.insert(search_result, server)
end
end

View File

@@ -762,7 +762,7 @@ chat_font_size (Chat font size) int 0 0 72
[**Content Repository]
# The URL for the content repository
contentdb_url (ContentDB URL) string https://content.minetest.net
contentdb_url (ContentDB URL) string https://content.luanti.org
# If enabled and you have ContentDB packages installed, Luanti may contact ContentDB to
# check for package updates when opening the mainmenu.
@@ -773,7 +773,7 @@ contentdb_enable_updates_indicator (Enable updates available indicator on conten
# as defined by the Free Software Foundation.
# You can also specify content ratings.
# These flags are independent from Luanti versions,
# so see a full list at https://content.minetest.net/help/content_flags/
# so see a full list at https://content.luanti.org/help/content_flags/
contentdb_flag_blacklist (ContentDB Flag Blacklist) string nonfree, desktop_default
# Maximum number of concurrent downloads. Downloads exceeding this limit will be queued.
@@ -789,7 +789,7 @@ contentdb_max_concurrent_downloads (ContentDB Max Concurrent Downloads) int 3 1
enable_local_map_saving (Saving map received from server) bool false
# URL to the server list displayed in the Multiplayer Tab.
serverlist_url (Serverlist URL) string servers.minetest.net
serverlist_url (Serverlist URL) string servers.luanti.org
# If enabled, account registration is separate from login in the UI.
# If disabled, new accounts will be registered automatically when logging in.
@@ -815,10 +815,10 @@ server_name (Server name) string Luanti server
server_description (Server description) string mine here
# Domain name of server, to be displayed in the serverlist.
server_address (Server address) string game.minetest.net
server_address (Server address) string game.example.net
# Homepage of server, to be displayed in the serverlist.
server_url (Server URL) string https://minetest.net
server_url (Server URL) string https://game.example.net
# Automatically report to the serverlist.
server_announce (Announce server) bool false
@@ -827,7 +827,7 @@ server_announce (Announce server) bool false
server_announce_send_players (Send player names to the server list) bool true
# Announce to this serverlist.
serverlist_url (Serverlist URL) string servers.minetest.net
serverlist_url (Serverlist URL) string servers.luanti.org
# Message of the day displayed to players connecting.
motd (Message of the day) string

View File

@@ -16,11 +16,13 @@ brew install cmake freetype gettext gmp hiredis jpeg-turbo jsoncpp leveldb libog
Download source (this is the URL to the latest of source repository, which might not work at all times) using Git:
```bash
git clone --depth 1 https://github.com/minetest/minetest.git
cd minetest
git clone --depth 1 https://github.com/minetest/minetest.git luanti
cd luanti
```
## Build
## Building for personal usage
### Build
```bash
mkdir build
@@ -34,12 +36,65 @@ cmake .. \
make -j$(sysctl -n hw.logicalcpu)
make install
# M1 Macs w/ MacOS >= BigSur
codesign --force --deep -s - macos/minetest.app
# Apple Silicon (M1/M2) Macs w/ MacOS >= BigSur signature for local run
codesign --force --deep -s - --entitlements ../misc/macos/entitlements/debug.entitlements macos/luanti.app
```
## Run
If you are using LuaJIT with `MAP_JIT` support use `debug_map_jit.entitlements`.
### Run
```
open ./build/macos/minetest.app
open ./build/macos/luanti.app
```
## Building for distribution
### Generate Xcode project
```bash
mkdir build
cd build
cmake .. \
-DCMAKE_FIND_FRAMEWORK=LAST \
-DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \
-DFREETYPE_LIBRARY=/path/to/lib/dir/libfreetype.a \
-DGETTEXT_INCLUDE_DIR=/path/to/include/dir \
-DGETTEXT_LIBRARY=/path/to/lib/dir/libintl.a \
-DLUA_LIBRARY=/path/to/lib/dir/libluajit-5.1.a \
-DOGG_LIBRARY=/path/to/lib/dir/libogg.a \
-DVORBIS_LIBRARY=/path/to/lib/dir/libvorbis.a \
-DVORBISFILE_LIBRARY=/path/to/lib/dir/libvorbisfile.a \
-DZSTD_LIBRARY=/path/to/lib/dir/libzstd.a \
-DGMP_LIBRARY=/path/to/lib/dir/libgmp.a \
-DJSON_LIBRARY=/path/to/lib/dir/libjsoncpp.a \
-DENABLE_LEVELDB=OFF \
-DENABLE_POSTGRESQL=OFF \
-DENABLE_REDIS=OFF \
-DJPEG_LIBRARY=/path/to/lib/dir/libjpeg.a \
-DPNG_LIBRARY=/path/to/lib/dir/libpng.a \
-DCMAKE_EXE_LINKER_FLAGS=-lbz2\
-GXcode
```
If you are using LuaJIT with `MAP_JIT` support add `-DXCODE_CODE_SIGN_ENTITLEMENTS=../misc/macos/entitlements/release_map_jit.entitlements`.
*WARNING:* You have to regenerate Xcode project if you switch commit, branch or etc.
### Build and Run
* Open generated Xcode project
* Select scheme `luanti`
* Configure signing Team etc.
* Run Build command
* Open application from `build/build/Debug/` directory or run it from Xcode
### Archive and Run
* Open generated Xcode project
* Select scheme `luanti`
* Configure signing Team etc.
* Run Build command
* Open application archive in finder, go into it, copy application and test it.

View File

@@ -6,9 +6,9 @@ The long-term roadmaps, aims, and guiding philosophies are set out using the
following documents:
* [What is Minetest?](http://c55.me/blog/?p=1491)
* [celeron55's roadmap](https://forum.minetest.net/viewtopic.php?t=9177)
* [celeron55's roadmap](https://forum.luanti.org/viewtopic.php?t=9177)
* [celeron55's comment in "A clear mission statement for Minetest is missing"](https://github.com/minetest/minetest/issues/3476#issuecomment-167399287)
* [Core developer to-do/wish lists](https://forum.minetest.net/viewforum.php?f=7)
* [Core developer to-do/wish lists](https://forum.luanti.org/viewforum.php?f=7)
## 2. Medium-term Roadmap

View File

@@ -312,9 +312,7 @@ due to their space savings.
This means that many glTF features are not supported *yet*, including:
* Animations
* Only a single animation is supported,
use frame ranges within this animation.
* Only integer frames are supported.
* Only a single animation is supported, use frame ranges within this animation.
* Cameras
* Materials
* Only base color textures are supported
@@ -8246,7 +8244,13 @@ child will follow movement and rotation of that bone.
object.
* `set_detach()`: Detaches object. No-op if object was not attached.
* `set_bone_position([bone, position, rotation])`
* Shorthand for `set_bone_override(bone, {position = position, rotation = rotation:apply(math.rad)})` using absolute values.
* Sets absolute bone overrides, e.g. it is equivalent to
```lua
obj:set_bone_override(bone, {
position = {vec = position, absolute = true},
rotation = {vec = rotation:apply(math.rad), absolute = true}
})
```
* **Note:** Rotation is in degrees, not radians.
* **Deprecated:** Use `set_bone_override` instead.
* `get_bone_position(bone)`: returns the previously set position and rotation of the bone
@@ -8256,15 +8260,18 @@ child will follow movement and rotation of that bone.
* `set_bone_override(bone, override)`
* `bone`: string
* `override`: `{ position = property, rotation = property, scale = property }` or `nil`
* `property`: `{ vec = vector, interpolation = 0, absolute = false}` or `nil`;
* `vec` is in the same coordinate system as the model, and in degrees for rotation
* `property = nil` is equivalent to no override on that property
* `absolute`: If set to `false`, the override will be relative to the animated property:
* Transposition in the case of `position`;
* Composition in the case of `rotation`;
* Multiplication in the case of `scale`
* `interpolation`: Old and new values are interpolated over this timeframe (in seconds)
* `override = nil` (including omission) is shorthand for `override = {}` which clears the override
* Each `property` is a table of the form
`{ vec = vector, interpolation = 0, absolute = false }` or `nil`
* `vec` is in the same coordinate system as the model, and in radians for rotation.
It defaults to `vector.zero()` for translation and rotation and `vector.new(1, 1, 1)` for scale.
* `interpolation`: The old and new overrides are interpolated over this timeframe (in seconds).
* `absolute`: If set to `false` (which is the default),
the override will be relative to the animated property:
* Translation in the case of `position`;
* Composition in the case of `rotation`;
* Per-axis multiplication in the case of `scale`
* `property = nil` is equivalent to no override on that property
* **Note:** Unlike `set_bone_position`, the rotation is in radians, not degrees.
* Compatibility note: Clients prior to 5.9.0 only support absolute position and rotation.
All values are treated as absolute and are set immediately (no interpolation).

View File

@@ -0,0 +1,7 @@
Luanti is a voxel-based game platform with multiplayer capabilities.
The objective of the available games varies, from sandbox games where you can explore, dig and build in a very large voxel world, to arcade-style games.
There is a wide range of built-in map generators for procedurally generated terrain, and voxel-based lighting that adapts to the environment and light sources.
All games and mods are written in Lua with a scripting API that is easy to use and makes it easy for modders to get started.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@@ -0,0 +1 @@
Voxel-based multiplayer game platform

View File

@@ -0,0 +1 @@
Luanti

View File

@@ -669,7 +669,7 @@ void SelfType::MeshExtractor::loadAnimation(const std::size_t animIdx)
const auto &sampler = anim.samplers.at(channel.sampler);
if (sampler.interpolation != tiniergltf::AnimationSampler::Interpolation::LINEAR)
throw std::runtime_error("unsupported interpolation");
throw std::runtime_error("unsupported interpolation, only linear interpolation is supported");
const auto inputAccessor = Accessor<f32>::make(m_gltf_model, sampler.input);
const auto n_frames = inputAccessor.getCount();

View File

@@ -181,27 +181,16 @@ IImage *CImageLoaderTGA::loadImage(io::IReadFile *file) const
header.ImageWidth, header.ImageHeight,
0, 0, (header.ImageDescriptor & 0x20) == 0);
} else {
switch (header.ColorMapEntrySize) {
case 16:
image = new CImage(ECF_A1R5G5B5, core::dimension2d<u32>(header.ImageWidth, header.ImageHeight));
if (image)
CColorConverter::convert8BitTo16Bit((u8 *)data,
(s16 *)image->getData(),
header.ImageWidth, header.ImageHeight,
(s32 *)palette, 0,
(header.ImageDescriptor & 0x20) == 0);
break;
// Note: 24 bit with palette would need a 24 bit palette, too lazy doing that now (textures will prefer 32-bit later anyway)
default:
image = new CImage(ECF_A8R8G8B8, core::dimension2d<u32>(header.ImageWidth, header.ImageHeight));
if (image)
CColorConverter::convert8BitTo32Bit((u8 *)data,
(u8 *)image->getData(),
header.ImageWidth, header.ImageHeight,
(u8 *)palette, 0,
(header.ImageDescriptor & 0x20) == 0);
break;
}
// Colormap is converted to A8R8G8B8 at this point – thus the code can handle all color formats.
// This wastes some texture memory, but is less of a third of the code that does this optimally.
// If you want to refactor this: The possible color formats here are A1R5G5B5, B8G8R8, B8G8R8A8.
image = new CImage(ECF_A8R8G8B8, core::dimension2d<u32>(header.ImageWidth, header.ImageHeight));
if (image)
CColorConverter::convert8BitTo32Bit((u8 *)data,
(u8 *)image->getData(),
header.ImageWidth, header.ImageHeight,
(u8 *)palette, 0,
(header.ImageDescriptor & 0x20) == 0);
}
} break;
case 16:

View File

@@ -313,21 +313,6 @@ add_library(IRRMESHOBJ OBJECT
target_link_libraries(IRRMESHOBJ PUBLIC tiniergltf::tiniergltf)
add_library(IRROBJ OBJECT
CBillboardSceneNode.cpp
CCameraSceneNode.cpp
CDummyTransformationSceneNode.cpp
CEmptySceneNode.cpp
CMeshManipulator.cpp
CSceneCollisionManager.cpp
CSceneManager.cpp
CMeshCache.cpp
)
# Make sure IRROBJ gets the transitive include directories for
# tiniergltf from IRRMESHOBJ.
target_link_libraries(IRROBJ PRIVATE IRRMESHOBJ)
set(IRRDRVROBJ
CNullDriver.cpp
CGLXManager.cpp
@@ -460,14 +445,29 @@ add_library(IRRGUIOBJ OBJECT
# Library
add_library(IrrlichtMt STATIC)
# There have to be some sources in IrrlichtMt to workaround Cmake Xcode generator bug
add_library(IrrlichtMt STATIC
CBillboardSceneNode.cpp
CCameraSceneNode.cpp
CDummyTransformationSceneNode.cpp
CEmptySceneNode.cpp
CMeshManipulator.cpp
CSceneCollisionManager.cpp
CSceneManager.cpp
CMeshCache.cpp
)
foreach(object_lib
IRRMESHOBJ IRROBJ IRRVIDEOOBJ
IRRMESHOBJ IRRVIDEOOBJ
IRRIOOBJ IRROTHEROBJ IRRGUIOBJ)
# Set include directories for object library compilation
target_include_directories(${object_lib} PRIVATE ${link_includes})
# Add objects from object library to main library
target_sources(IrrlichtMt PRIVATE $<TARGET_OBJECTS:${object_lib}>)
if(CMAKE_GENERATOR STREQUAL "Xcode")
# Workaround for Cmake Xcode project generator
target_link_libraries(IrrlichtMt PRIVATE ${object_lib})
else()
# Add objects from object library to main library
target_sources(IrrlichtMt PRIVATE $<TARGET_OBJECTS:${object_lib}>)
endif()
if(BUILD_WITH_TRACY)
target_link_libraries(${object_lib} PRIVATE Tracy::TracyClient)

View File

@@ -108,9 +108,7 @@ CNullDriver::CNullDriver(io::IFileSystem *io, const core::dimension2d<u32> &scre
InitMaterial2D.ZBuffer = video::ECFN_DISABLED;
InitMaterial2D.UseMipMaps = false;
InitMaterial2D.forEachTexture([](auto &tex) {
// Using ETMINF_LINEAR_MIPMAP_NEAREST (bilinear) for 2D graphics looks
// much better and doesn't have any downsides (e.g. regarding pixel art).
tex.MinFilter = video::ETMINF_LINEAR_MIPMAP_NEAREST;
tex.MinFilter = video::ETMINF_NEAREST_MIPMAP_NEAREST;
tex.MagFilter = video::ETMAGF_NEAREST;
tex.TextureWrapU = video::ETC_REPEAT;
tex.TextureWrapV = video::ETC_REPEAT;

View File

@@ -24,39 +24,21 @@ class COGLESCoreExtensionHandler
enum EOGLESFeatures
{
// If you update this enum also update the corresponding OGLESFeatureStrings string-array
IRR_GL_APPLE_texture_2D_limited_npot,
IRR_GL_APPLE_texture_format_BGRA8888,
IRR_GL_EXT_blend_minmax,
IRR_GL_EXT_read_format_bgra,
IRR_GL_EXT_texture_filter_anisotropic,
IRR_GL_EXT_texture_format_BGRA8888,
IRR_GL_EXT_texture_lod_bias,
IRR_GL_EXT_texture_rg,
IRR_GL_IMG_read_format,
IRR_GL_IMG_texture_format_BGRA8888,
IRR_GL_IMG_user_clip_plane,
IRR_GL_OES_blend_func_separate,
IRR_GL_OES_blend_subtract,
IRR_GL_OES_depth_texture,
IRR_GL_OES_depth24,
IRR_GL_OES_depth32,
IRR_GL_OES_element_index_uint,
IRR_GL_OES_framebuffer_object,
IRR_GL_OES_packed_depth_stencil,
IRR_GL_OES_point_size_array,
IRR_GL_OES_point_sprite,
IRR_GL_OES_read_format,
IRR_GL_OES_stencil_wrap,
IRR_GL_OES_texture_float,
IRR_GL_OES_texture_half_float,
IRR_GL_OES_texture_mirrored_repeat,
IRR_GL_OES_texture_npot,
IRR_OGLES_Feature_Count
};
COGLESCoreExtensionHandler() :
Version(0), MaxAnisotropy(1), MaxIndices(0xffff),
MaxAnisotropy(1), MaxIndices(0xffff),
MaxTextureSize(1), MaxTextureLODBias(0.f), StencilBuffer(false)
{
for (u32 i = 0; i < IRR_OGLES_Feature_Count; ++i)
@@ -81,99 +63,27 @@ class COGLESCoreExtensionHandler
os::Printer::log(getFeatureString(i), FeatureAvailable[i] ? " true" : " false");
}
bool queryGLESFeature(EOGLESFeatures feature) const
{
return FeatureAvailable[feature];
}
protected:
const char *getFeatureString(size_t index) const
{
// One for each EOGLESFeatures
static const char *const OGLESFeatureStrings[IRR_OGLES_Feature_Count] = {
"GL_APPLE_texture_2D_limited_npot",
"GL_APPLE_texture_format_BGRA8888",
"GL_EXT_blend_minmax",
"GL_EXT_read_format_bgra",
"GL_EXT_texture_filter_anisotropic",
"GL_EXT_texture_format_BGRA8888",
"GL_EXT_texture_lod_bias",
"GL_EXT_texture_rg",
"GL_IMG_read_format",
"GL_IMG_texture_format_BGRA8888",
"GL_IMG_user_clip_plane",
"GL_OES_blend_func_separate",
"GL_OES_blend_subtract",
"GL_OES_depth_texture",
"GL_OES_depth24",
"GL_OES_depth32",
"GL_OES_element_index_uint",
"GL_OES_framebuffer_object",
"GL_OES_packed_depth_stencil",
"GL_OES_point_size_array",
"GL_OES_point_sprite",
"GL_OES_read_format",
"GL_OES_stencil_wrap",
"GL_OES_texture_float",
"GL_OES_texture_half_float",
"GL_OES_texture_mirrored_repeat",
"GL_OES_texture_npot",
};
return OGLESFeatureStrings[index];
}
void getGLVersion()
{
Version = 0;
s32 multiplier = 100;
core::stringc version(glGetString(GL_VERSION));
for (u32 i = 0; i < version.size(); ++i) {
if (version[i] >= '0' && version[i] <= '9') {
if (multiplier > 1) {
Version += static_cast<u16>(core::floor32(atof(&(version[i]))) * multiplier);
multiplier /= 10;
} else {
break;
}
}
}
}
void getGLExtensions()
{
core::stringc extensions = glGetString(GL_EXTENSIONS);
os::Printer::log(extensions.c_str());
const u32 size = extensions.size() + 1;
c8 *str = new c8[size];
strncpy(str, extensions.c_str(), extensions.size());
str[extensions.size()] = ' ';
c8 *p = str;
for (u32 i = 0; i < size; ++i) {
if (str[i] == ' ') {
str[i] = 0;
if (*p)
for (size_t j = 0; j < IRR_OGLES_Feature_Count; ++j) {
if (!strcmp(getFeatureString(j), p)) {
FeatureAvailable[j] = true;
break;
}
}
p = p + strlen(p) + 1;
}
}
delete[] str;
}
COpenGLCoreFeature Feature;
u16 Version;
u8 MaxAnisotropy;
u32 MaxIndices;
u32 MaxTextureSize;

View File

@@ -297,6 +297,7 @@ class COpenGLCoreTexture : public ITexture
delete[] tmpBuffer;
}
#elif defined(IRR_COMPILE_GLES2_COMMON)
// TODO: revive this code
COpenGLCoreTexture *tmpTexture = new COpenGLCoreTexture("OGL_CORE_LOCK_TEXTURE", Size, ETT_2D, ColorFormat, Driver);
GLuint tmpFBO = 0;

View File

@@ -401,8 +401,10 @@ bool COpenGLSLMaterialRenderer::linkProgram()
#endif
if (maxlen == 0) {
os::Printer::log("GLSL (> 2.x): failed to retrieve uniform information", ELL_ERROR);
return false;
// Intel driver bug that seems to primarily happen on Win 8.1 or older:
// There are >0 uniforms yet the driver reports a max name length of 0.
os::Printer::log("GLSL (> 2.x): failed to retrieve uniform information", ELL_WARNING);
maxlen = 256; // hope that this is enough
}
// seems that some implementations use an extra null terminator
@@ -471,8 +473,10 @@ bool COpenGLSLMaterialRenderer::linkProgram()
#endif
if (maxlen == 0) {
os::Printer::log("GLSL: failed to retrieve uniform information", ELL_ERROR);
return false;
// Intel driver bug that seems to primarily happen on Win 8.1 or older:
// There are >0 uniforms yet the driver reports a max name length of 0.
os::Printer::log("GLSL: failed to retrieve uniform information", ELL_WARNING);
maxlen = 256; // hope that this is enough
}
// seems that some implementations use an extra null terminator

View File

@@ -140,28 +140,29 @@ IAnimatedMesh *CSceneManager::getMesh(io::IReadFile *file)
// load and create a mesh which we know already isn't in the cache and put it in there
IAnimatedMesh *CSceneManager::getUncachedMesh(io::IReadFile *file, const io::path &filename, const io::path &cachename)
{
IAnimatedMesh *msh = 0;
// iterate the list in reverse order so user-added loaders can override the built-in ones
bool unsupported = true;
for (auto it = MeshLoaderList.rbegin(); it != MeshLoaderList.rend(); it++) {
if ((*it)->isALoadableFileExtension(filename)) {
unsupported = false;
// reset file to avoid side effects of previous calls to createMesh
file->seek(0);
msh = (*it)->createMesh(file);
IAnimatedMesh *msh = (*it)->createMesh(file);
if (msh) {
MeshCache->addMesh(cachename, msh);
msh->drop();
break;
os::Printer::log("Loaded mesh", filename, ELL_DEBUG);
return msh;
}
}
}
if (!msh)
os::Printer::log("Could not load mesh, file format seems to be unsupported", filename, ELL_ERROR);
else
os::Printer::log("Loaded mesh", filename, ELL_DEBUG);
return msh;
os::Printer::log(unsupported
? "Could not load mesh, file format seems to be unsupported"
: "Attempt to load mesh failed",
filename, ELL_ERROR);
return nullptr;
}
//! returns the video driver

View File

@@ -57,8 +57,12 @@ void COpenGLES2Driver::initFeatures()
else if (FeatureAvailable[IRR_GL_APPLE_texture_format_BGRA8888])
TextureFormats[ECF_A8R8G8B8] = {BGRA8_EXT, GL_BGRA, GL_UNSIGNED_BYTE};
if (FeatureAvailable[IRR_GL_OES_depth32])
TextureFormats[ECF_D32] = {GL_DEPTH_COMPONENT32, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT};
// OpenGL ES 3 doesn't include a GL_DEPTH_COMPONENT32, so still use
// OES_depth_texture for 32-bit depth texture support.
// OpenGL ES 3 would allow {GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT},
// but I guess that would have to be called ECF_D32F...
if (FeatureAvailable[IRR_GL_OES_depth_texture])
TextureFormats[ECF_D32] = {GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT};
} else {
// NOTE These are *texture* formats. They may or may not be suitable
// for render targets. The specs only talks on *sized* formats for the
@@ -98,8 +102,9 @@ void COpenGLES2Driver::initFeatures()
if (FeatureAvailable[IRR_GL_OES_depth_texture]) {
TextureFormats[ECF_D16] = {GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT};
if (FeatureAvailable[IRR_GL_OES_depth32])
TextureFormats[ECF_D32] = {GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT};
// OES_depth_texture includes 32-bit depth texture support.
TextureFormats[ECF_D32] = {GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT};
if (FeatureAvailable[IRR_GL_OES_packed_depth_stencil])
TextureFormats[ECF_D24S8] = {GL_DEPTH_STENCIL, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8};
}

View File

@@ -13,10 +13,17 @@
#include <array>
#include <optional>
#include <limits>
#include <memory> // unique_ptr
#include <stdexcept>
#include <unordered_map>
#include <unordered_set>
#if JSONCPP_VERSION_HEXA < 0x01090000 /* 1.9.0 */
namespace Json {
using String = JSONCPP_STRING; // Polyfill
}
#endif
namespace tiniergltf {
static inline void check(bool cond) {
@@ -1381,7 +1388,7 @@ static Json::Value readJson(Span<const char> span) {
Json::CharReaderBuilder builder;
const std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
Json::Value json;
JSONCPP_STRING err;
Json::String err;
if (!reader->parse(span.ptr, span.end(), &json, &err))
throw std::runtime_error(std::string("invalid JSON: ") + err);
return json;

View File

@@ -9,11 +9,15 @@
<key>CFBundleIconFile</key>
<string>luanti-icon.icns</string>
<key>CFBundleName</key>
<string>Luanti</string>
<string>@PROJECT_NAME_CAPITALIZED@</string>
<key>CFBundleDisplayName</key>
<string>Luanti</string>
<string>@PROJECT_NAME_CAPITALIZED@</string>
<key>CFBundleIdentifier</key>
<string>org.luanti.luanti</string>
<key>CFBundleVersion</key>
<string>@VERSION_STRING@</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>NSHighResolutionCapable</key>
<false/>
</dict>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
</dict>
</plist>

View File

@@ -149,6 +149,6 @@
<update_contact>celeron55@gmail.com</update_contact>
<releases>
<release date="2024-08-11" version="5.9.0"/>
<release date="2024-11-10" version="5.10.0"/>
</releases>
</component>

View File

@@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: German (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-28 19:57+0100\n"
"PO-Revision-Date: 2024-07-12 14:09+0000\n"
"Last-Translator: Wuzzy <Wuzzy@disroot.org>\n"
"PO-Revision-Date: 2024-11-02 23:00+0000\n"
"Last-Translator: grorp <grorp@posteo.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/minetest/minetest/"
"de/>\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 5.7-dev\n"
"X-Generator: Weblate 5.8.2\n"
#: builtin/client/chatcommands.lua
msgid "Clear the out chat queue"
@@ -159,7 +159,7 @@ msgstr "$1 laden herunter…"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "All"
msgstr ""
msgstr "Alle"
#: builtin/mainmenu/content/dlg_contentdb.lua
#: builtin/mainmenu/content/dlg_package.lua
@@ -168,10 +168,8 @@ msgid "Back"
msgstr "Zurück"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "ContentDB is not available when Luanti was compiled without cURL"
msgstr ""
"ContentDB ist nicht verfügbar, wenn Minetest ohne cURL kompiliert wurde"
msgstr "ContentDB ist nicht verfügbar, wenn Luanti ohne cURL kompiliert wurde"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Downloading..."
@@ -179,7 +177,7 @@ msgstr "Herunterladen …"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Featured"
msgstr ""
msgstr "Vorgestellt"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Games"
@@ -215,7 +213,6 @@ msgid "Queued"
msgstr "Eingereiht"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "Texture Packs"
msgstr "Texturenpakete"
@@ -269,9 +266,8 @@ msgid "Dependencies:"
msgstr "Abhängigkeiten:"
#: builtin/mainmenu/content/dlg_install.lua
#, fuzzy
msgid "Error getting dependencies for package $1"
msgstr "Fehler beim Holen der Abhängigkeiten für Paket"
msgstr "Fehler beim Laden der Abhängigkeiten für Paket $1"
#: builtin/mainmenu/content/dlg_install.lua
msgid "Install"
@@ -307,44 +303,40 @@ msgid "Overwrite"
msgstr "Überschreiben"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "ContentDB page"
msgstr "ContentDB-URL"
msgstr "ContentDB-Seite"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Description"
msgstr "Serverbeschreibung"
msgstr "Beschreibung"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Donate"
msgstr ""
msgstr "Spenden"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Forum Topic"
msgstr ""
msgstr "Forumthema"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Information"
msgstr "Information:"
msgstr "Informationen"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Install [$1]"
msgstr "$1 installieren"
msgstr "Installieren [$1]"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Issue Tracker"
msgstr ""
msgstr "Issue-Tracker"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Source"
msgstr ""
msgstr "Quellcode"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Translate"
msgstr ""
msgstr "Übersetzen"
#: builtin/mainmenu/content/dlg_package.lua builtin/mainmenu/tab_content.lua
msgid "Uninstall"
@@ -355,13 +347,12 @@ msgid "Update"
msgstr "Updaten"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Website"
msgstr "Webseite besuchen"
msgstr "Webseite"
#: builtin/mainmenu/content/dlg_package.lua
msgid "by $1 — $2 downloads — +$3 / $4 / -$5"
msgstr ""
msgstr "von $1 — $2 Downloads — +$3 / $4 / -$5"
#: builtin/mainmenu/content/pkgmgr.lua
msgid "$1 (Enabled)"
@@ -726,14 +717,13 @@ msgid "Dismiss"
msgstr "Ablehnen"
#: builtin/mainmenu/dlg_reinstall_mtg.lua
#, fuzzy
msgid ""
"For a long time, Luanti shipped with a default game called \"Minetest "
"Game\". Since version 5.8.0, Luanti ships without a default game."
msgstr ""
"Für eine lange Zeit wurde die Minetest-Engine mit einem Standardspiel namens "
"„Minetest Game“ ausgeliefert. Seit Minetest 5.8.0 wird Minetest ohne ein "
"Standardspiel ausgeliefert."
"Für eine lange Zeit wurde Luanti mit einem Standardspiel namens „Minetest "
"Game“ ausgeliefert. Seit Version 5.8.0 wird Luanti ohne ein Standardspiel "
"ausgeliefert."
#: builtin/mainmenu/dlg_reinstall_mtg.lua
msgid ""
@@ -895,19 +885,16 @@ msgid "eased"
msgstr "weich (eased)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable automatic exposure as well)"
msgstr "(Das Spiel muss ebenfalls Schatten aktivieren)"
msgstr "(Das Spiel muss ebenfalls automatische Belichtung aktivieren)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable bloom as well)"
msgstr "(Das Spiel muss ebenfalls Schatten aktivieren)"
msgstr "(Das Spiel muss ebenfalls Bloom aktivieren)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable volumetric lighting as well)"
msgstr "(Das Spiel muss ebenfalls Schatten aktivieren)"
msgstr "(Das Spiel muss ebenfalls volumetrisches Licht aktivieren)"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "(Use system language)"
@@ -919,7 +906,7 @@ msgstr "Barrierefreiheit"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Auto"
msgstr ""
msgstr "Automatisch"
#: builtin/mainmenu/settings/dlg_settings.lua src/gui/guiKeyChangeMenu.cpp
#: src/gui/touchcontrols.cpp src/settings_translation_file.cpp
@@ -985,18 +972,16 @@ msgid "Content: Mods"
msgstr "Inhalt: Mods"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Enable"
msgstr "Aktiviert"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Shaders are disabled."
msgstr "Kameraaktualisierung deaktiviert"
msgstr "Shader sind deaktiviert."
#: builtin/mainmenu/settings/shader_warning_component.lua
msgid "This is not a recommended configuration."
msgstr ""
msgstr "Dies ist keine empfohlene Konfiguration."
#: builtin/mainmenu/settings/shadows_component.lua
msgid "(The game will need to enable shadows as well)"
@@ -1156,17 +1141,15 @@ msgid "Install games from ContentDB"
msgstr "Spiele aus ContentDB installieren"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid "Luanti doesn't come with a game by default."
msgstr "Minetest wird standardmäßig nicht mehr mit einem Spiel ausgeliefert."
msgstr "Luanti wird standardmäßig nicht mit einem Spiel ausgeliefert."
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid ""
"Luanti is a game-creation platform that allows you to play many different "
"games."
msgstr ""
"Minetest ist eine Spielerschaffungsplattform, welche es Ihnen ermöglicht, "
"Luanti ist eine Spielerschaffungsplattform, welche es Ihnen ermöglicht, "
"viele verschiedene Spiele zu spielen."
#: builtin/mainmenu/tab_local.lua
@@ -2272,37 +2255,38 @@ msgid "Sound Volume: %d%%"
msgstr "Tonlautstärke: %d%%"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Joystick"
msgstr "Joystick-ID"
msgstr "Joystick"
#: src/gui/touchcontrols.cpp
msgid "Overflow menu"
msgstr ""
msgstr "Überlauf-Menü"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Toggle debug"
msgstr "Nebel an/aus"
msgstr "Debug an/aus"
#: src/network/clientpackethandler.cpp
msgid ""
"Another client is connected with this name. If your client closed "
"unexpectedly, try again in a minute."
msgstr ""
"Ein anderer Client ist mit diesem Namen verbunden. Falls Ihr Client "
"unerwartet geschlossen wurde, versuchen Sie es in einer Minute erneut."
#: src/network/clientpackethandler.cpp
msgid "Empty passwords are disallowed. Set a password and try again."
msgstr ""
"Leere Passwörter sind nicht erlaubt. Legen Sie ein Passwort fest und "
"versuchen Sie es erneut."
#: src/network/clientpackethandler.cpp
msgid "Internal server error"
msgstr ""
msgstr "Interner Serverfehler"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Invalid password"
msgstr "Altes Passwort"
msgstr "Falsches Passwort"
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -2325,46 +2309,51 @@ msgstr "Name ist belegt. Bitte einen anderen Namen wählen"
#: src/network/clientpackethandler.cpp
msgid "Player name contains disallowed characters"
msgstr ""
msgstr "Spielername enthält nicht erlaubte Zeichen"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Player name not allowed"
msgstr "Der Spielername ist zu lang."
msgstr "Spielername nicht erlaubt"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Server shutting down"
msgstr "Herunterfahren …"
msgstr "Server fährt herunter"
#: src/network/clientpackethandler.cpp
msgid ""
"The server has experienced an internal error. You will now be disconnected."
msgstr ""
"Auf dem Server ist ein interner Fehler aufgetreten. Die Verbindung wird "
"jetzt getrennt."
#: src/network/clientpackethandler.cpp
msgid "The server is running in singleplayer mode. You cannot connect."
msgstr ""
"Der Server läuft im Einzelspielermodus. Sie können sich nicht verbinden."
#: src/network/clientpackethandler.cpp
msgid "Too many users"
msgstr ""
msgstr "Zu viele Benutzer"
#: src/network/clientpackethandler.cpp
msgid "Unknown disconnect reason."
msgstr ""
msgstr "Unbekannter Grund für die Trennung der Verbindung."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client sent something the server didn't expect. Try reconnecting or "
"updating your client."
msgstr ""
"Ihr Client hat etwas gesendet, das der Server nicht erwartet hat. Versuchen "
"Sie, sich erneut zu verbinden oder Ihren Client zu aktualisieren."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client's version is not supported.\n"
"Please contact the server administrator."
msgstr ""
"Ihre Client-Version wird nicht unterstützt.\n"
"Bitte kontaktieren Sie den Server-Administrator."
#: src/server.cpp
#, c-format
@@ -2674,11 +2663,11 @@ msgstr "Kantenglättungsmethode"
#: src/settings_translation_file.cpp
msgid "Anticheat flags"
msgstr ""
msgstr "Anticheat-Flags"
#: src/settings_translation_file.cpp
msgid "Anticheat movement tolerance"
msgstr ""
msgstr "Anticheat-Bewegungs-Toleranz"
#: src/settings_translation_file.cpp
msgid "Append item name"
@@ -2713,7 +2702,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Apply specular shading to nodes."
msgstr ""
msgstr "Specular-Shading auf Nodes anwenden."
#: src/settings_translation_file.cpp
msgid "Arm inertia"
@@ -2832,9 +2821,8 @@ msgid "Biome noise"
msgstr "Biomrauschen"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Block bounds HUD radius"
msgstr "Blockgrenzen"
msgstr "Radius für Blockgrenzen-HUD"
#: src/settings_translation_file.cpp
msgid "Block cull optimize distance"
@@ -3050,7 +3038,6 @@ msgstr ""
"für Details."
#: 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 "
@@ -3060,13 +3047,13 @@ msgid ""
"These flags are independent from Luanti versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
"Kommagetrennte Liste von Flags für Dinge, die im Inhaltespeicher verborgen "
"Kommagetrennte Liste von Flags für Dinge, die im Inhalte-Browser verborgen "
"werden sollten.\n"
"„nonfree“ kann benutzt werden, um Pakete, die nicht als „freie Software“ "
"nach\n"
"der Definition der Free Software Foundation gelten, zu verbergen.\n"
"Sie können auch Inhaltseinstufungen festlegen.\n"
"Diese Flags sind von Minetestversionen unabhängig,\n"
"Diese Flags sind von Luanti-Versionen unabhängig,\n"
"für eine vollständige Liste gehen Sie auf:\n"
"https://content.minetest.net/help/content_flags/"
@@ -3276,7 +3263,6 @@ msgstr ""
"aber dies verbraucht auch mehr Ressourcen."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Define the oldest clients allowed to connect.\n"
"Older clients are compatible in the sense that they will not crash when "
@@ -3288,17 +3274,16 @@ msgid ""
"Luanti still enforces its own internal minimum, and enabling\n"
"strict_protocol_version_checking will effectively override this."
msgstr ""
"Hier festlegen, welches die ältesten Clients sind, die sich verbinden "
"dürfen.\n"
"Hier festlegen, welches die ältesten Clients sind, die sich verbinden dürfen."
"\n"
"Ältere Clients sind kompatibel in der Hinsicht, dass sie beim Verbinden zu "
"neuen\n"
"Servern nicht abstürzen, aber sie könnten nicht alle neuen Funktionen, die "
"Sie\n"
"erwarten, unterstützen.\n"
"Das ermöglicht eine genauere Kontrolle als "
"strict_protocol_version_checking.\n"
"Minetest wird immer noch ein internes Minimum erzwingen, und die "
"Aktivierung\n"
"Das ermöglicht eine genauere Kontrolle als strict_protocol_version_checking."
"\n"
"Luanti wird immer noch ein internes Minimum erzwingen, und die Aktivierung\n"
"von strict_protocol_version_checking wird dies überschreiben."
#: src/settings_translation_file.cpp
@@ -3439,7 +3424,6 @@ msgid "Display Density Scaling Factor"
msgstr "Anzeigendichtenskalierungsfaktor"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Distance in nodes at which transparency depth sorting is enabled.\n"
"Use this to limit the performance impact of transparency depth sorting.\n"
@@ -3448,7 +3432,8 @@ msgstr ""
"Entfernung in Nodes, bei welcher die Transparenztiefensortierung aktiviert "
"ist.\n"
"Dies benutzen, um die Performanzeinbußen der Transparenztiefensortierung zu "
"begrenzen"
"begrenzen.\n"
"Auf 0 setzen, um sie vollständig zu deaktivieren."
#: src/settings_translation_file.cpp
msgid "Domain name of server, to be displayed in the serverlist."
@@ -3479,9 +3464,8 @@ msgid "Dungeon noise"
msgstr "Verliesrauschen"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Effects"
msgstr "Grafikeffekte"
msgstr "Effekte"
#: src/settings_translation_file.cpp
msgid "Enable Automatic Exposure"
@@ -3588,11 +3572,8 @@ msgid "Enable random user input (only used for testing)."
msgstr "Schaltet zufällige Steuerung ein (nur zum Testen verwendet)."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enable smooth lighting with simple ambient occlusion."
msgstr ""
"Weiches Licht mit einfacher Ambient-Occlusion aktivieren.\n"
"Für bessere Performanz oder anderes Aussehen deaktivieren."
msgstr "Weiches Licht mit einfacher Ambient-Occlusion aktivieren."
#: src/settings_translation_file.cpp
msgid "Enable split login/register"
@@ -3615,7 +3596,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable updates available indicator on content tab"
msgstr ""
msgstr "Update-Indikator auf dem „Inhalt“-Tab aktivieren"
#: src/settings_translation_file.cpp
msgid ""
@@ -3667,22 +3648,21 @@ msgid "Enables animation of inventory items."
msgstr "Aktiviert die Animation von Inventargegenständen."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Enables caching of facedir rotated meshes.\n"
"This is only effective with shaders disabled."
msgstr ""
"Aktiviert das Zwischenspeichern von 3-D-Modellen, die mittels facedir "
"rotiert werden."
"rotiert werden.\n"
"Dies hat nur einen Effekt, wenn Shader deaktiviert sind."
#: src/settings_translation_file.cpp
msgid "Enables debug and error-checking in the OpenGL driver."
msgstr "Aktiviert Debug und Fehlerprüfungen im OpenGL-Treiber."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enables smooth scrolling."
msgstr "Nachbearbeitung aktivieren"
msgstr "Weiches Scrollen aktivieren."
#: src/settings_translation_file.cpp
msgid "Enables the post processing pipeline."
@@ -3695,6 +3675,11 @@ msgid ""
"\"auto\" means that the touchscreen controls will be enabled and disabled\n"
"automatically depending on the last used input method."
msgstr ""
"Aktiviert die Touchscreen-Steuerung, so dass Sie das Spiel mit einem "
"Touchscreen spielen können.\n"
"„Automatisch“ bedeutet, dass die Touchscreen-Steuerung automatisch aktiviert "
"und deaktiviert wird,\n"
"basierend auf dem zuletzt verwendeten Eingabegerät."
#: src/settings_translation_file.cpp
msgid ""
@@ -4289,6 +4274,9 @@ msgid ""
"ContentDB to\n"
"check for package updates when opening the mainmenu."
msgstr ""
"Wenn dies aktiviert ist und Sie ContentDB-Pakete installiert haben, kann "
"Luanti beim Öffnen\n"
"des Hauptmenüs ContentDB kontaktieren, um nach Updates zu suchen."
#: src/settings_translation_file.cpp
msgid ""
@@ -4433,13 +4421,12 @@ msgid "Instrument chat commands on registration."
msgstr "Chatbefehle bei ihrer Registrierung instrumentieren."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Instrument global callback functions on registration.\n"
"(anything you pass to a core.register_*() function)"
msgstr ""
"Globale Rückruffunktionen bei ihrer Registrierung instrumentieren\n"
"(alles, was man einer Funktion wie minetest.register_*() übergibt)."
"(alles, was man einer Funktion wie core.register_*() übergibt)."
#: src/settings_translation_file.cpp
msgid ""
@@ -4650,7 +4637,6 @@ msgid "Leaves style"
msgstr "Blätterstil"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Leaves style:\n"
"- Fancy: all faces visible\n"
@@ -4659,12 +4645,10 @@ msgid ""
msgstr ""
"Blätterstil:\n"
"- Fancy: Alle Seiten sind sichtbar\n"
"- Simple: Nur äußere Seiten, falls definierte special_tiles benutzt "
"werden\n"
"- Simple: Nur äußere Seiten\n"
"- Opaque: Transparenz deaktivieren"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Length of a server tick (the interval at which everything is generally "
"updated),\n"
@@ -4673,10 +4657,13 @@ msgid ""
"This is a lower bound, i.e. server steps may not be shorter than this, but\n"
"they are often longer."
msgstr ""
"Länge eines Servertakts (dem Intervall, wo grundsätzlich alles aktualisiert "
"wird),\n"
"Länge eines Servertakts (dem Intervall, in dem grundsätzlich alles "
"aktualisiert wird),\n"
"in Sekunden.\n"
"Wirkt sich nicht auf Sitzungen aus, die vom Clientmenü gestartet wurden."
"Wirkt sich nicht auf Sitzungen aus, die mit dem Hauptmenü gestartet wurden.\n"
"Dies ist eine Untergrenze, d.h. Server-Schritte dürfen nicht kürzer als "
"dieser Wert sein,\n"
"sind aber oft länger."
#: src/settings_translation_file.cpp
msgid "Length of liquid waves."
@@ -4792,9 +4779,8 @@ msgid "Liquid queue purge time"
msgstr "Aufräumzeit für Flüssigkeitswarteschlange"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Liquid reflections"
msgstr "Flüssigkeitswiderstand"
msgstr "Flüssigkeits-Reflexionen"
#: src/settings_translation_file.cpp
msgid "Liquid sinking"
@@ -5140,6 +5126,10 @@ msgid ""
"You generally don't need to change this, however busy servers may benefit "
"from a higher number."
msgstr ""
"Maximale Anzahl der Pakete, die jeden Server-Step im Low-Level-Netzwerkcode "
"gesendet werden.\n"
"Sie brauchen das normalerweise nicht ändern, jedoch können ausgelastete "
"Server von einer höheren Zahl profitieren."
#: src/settings_translation_file.cpp
msgid "Maximum number of players that can be connected simultaneously."
@@ -5380,7 +5370,7 @@ msgstr "Blockhervorhebung"
#: src/settings_translation_file.cpp
msgid "Node specular"
msgstr ""
msgstr "Node-Specular"
#: src/settings_translation_file.cpp
msgid "NodeTimer interval"
@@ -5437,14 +5427,13 @@ msgstr ""
"darf."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Number of threads to use for mesh generation.\n"
"Value of 0 (default) will let Luanti autodetect the number of available "
"threads."
msgstr ""
"Anzahl der Threads, die für die Meshgenerierung benutzt werden.\n"
"Der Wert 0 (Standard) sorgt dafür, dass Minetest die Anzahl verfügbarer "
"Der Wert 0 (Standard) sorgt dafür, dass Luanti die Anzahl verfügbarer "
"Threads automatisch ermittelt."
#: src/settings_translation_file.cpp
@@ -5476,18 +5465,16 @@ msgid "OpenGL debug"
msgstr "OpenGL-Debug"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Optimize GUI for touchscreens"
msgstr "Fadenkreuz für Touchscreen benutzen"
msgstr "GUI für Touchscreens optimieren"
#: src/settings_translation_file.cpp
msgid "Optional override for chat weblink color."
msgstr "Optionaler manueller Wert für die Farbe von Chat-Weblinks."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Other Effects"
msgstr "Grafikeffekte"
msgstr "Andere Effekte"
#: src/settings_translation_file.cpp
msgid ""
@@ -5605,7 +5592,6 @@ msgid "Prometheus listener address"
msgstr "Prometheus-Lauschadresse"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Prometheus listener address.\n"
"If Luanti is compiled with ENABLE_PROMETHEUS option enabled,\n"
@@ -5613,7 +5599,7 @@ msgid ""
"Metrics can be fetched on http://127.0.0.1:30000/metrics"
msgstr ""
"Prometheus-Lauschadresse.\n"
"Falls Minetest mit der ENABLE_PROMETEUS-Option kompiliert wurde,\n"
"Falls Luanti mit der ENABLE_PROMETEUS-Option kompiliert wurde,\n"
"wird dies den Metriklauscher für Prometheus auf dieser Adresse aktivieren.\n"
"Metriken können von http://127.0.0.1:30000/metrics abgegriffen werden."
@@ -5642,6 +5628,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Radius to use when the block bounds HUD feature is set to near blocks."
msgstr ""
"Der zu verwendende Radius, wenn sich die Blockbegrenzungs-HUD-Funktion im "
"Modus „Blöcke in Nähe“ befindet."
#: src/settings_translation_file.cpp
msgid "Raises terrain to make valleys around the rivers."
@@ -5968,11 +5956,12 @@ msgid ""
"Send names of online players to the serverlist. If disabled only the player "
"count is revealed."
msgstr ""
"Name von Spielern, die online sind, an die Serverliste senden. Fall "
"deaktiviert, wird nur die Anzahl der Spieler offengelegt."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Send player names to the server list"
msgstr "Zu dieser Serverliste ankündigen."
msgstr "Spielernamen an die Serverliste senden"
#: src/settings_translation_file.cpp
msgid "Server"
@@ -6000,6 +5989,9 @@ msgid ""
"Flags are positive. Uncheck the flag to disable corresponding anticheat "
"module."
msgstr ""
"Server-Anticheat-Konfiguration.\n"
"Flags sind positiv. Das Kreuzchen beim jeweiligen Flag entfernen, um das "
"dazugehörige Anticheatmodul zu deaktivieren."
#: src/settings_translation_file.cpp
msgid "Server description"
@@ -6156,6 +6148,8 @@ msgid ""
"Shaders are a fundamental part of rendering and enable advanced visual "
"effects."
msgstr ""
"Shader sind ein fundamentaler Teil des Renderns und aktivieren erweiterte "
"visuelle Effekte."
#: src/settings_translation_file.cpp
msgid "Shadow filter quality"
@@ -6227,6 +6221,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Simulate translucency when looking at foliage in the sunlight."
msgstr ""
"Transluzenz simulieren, wenn auf Blattwerk im Sonnenlicht geblickt wird."
#: src/settings_translation_file.cpp
msgid ""
@@ -6280,9 +6275,8 @@ msgid "Smooth lighting"
msgstr "Weiches Licht"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Smooth scrolling"
msgstr "Weiches Licht"
msgstr "Weiches Scrollen"
#: src/settings_translation_file.cpp
msgid ""
@@ -6310,9 +6304,8 @@ msgid "Sneaking speed, in nodes per second."
msgstr "Schleichgeschwindigkeit, in Blöcken pro Sekunde."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Soft clouds"
msgstr "3-D-Wolken"
msgstr "Weiche Wolken"
#: src/settings_translation_file.cpp
msgid "Soft shadow radius"
@@ -6539,8 +6532,8 @@ msgid ""
"The delay in milliseconds after which a touch interaction is considered a "
"long tap."
msgstr ""
"Die Verzögerung in Millisekunden, nachdem eine Berührungsinteraktion als "
"langes Antippen zählt."
"Die Verzögerung in Millisekunden, nach der eine Touch-Interaktion als langes "
"Antippen zählt."
#: src/settings_translation_file.cpp
msgid ""
@@ -6549,7 +6542,6 @@ msgstr ""
"Der Dateipfad relativ zu Ihrem Weltpfad, in dem Profile abgespeichert werden."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The gesture for punching players/entities.\n"
"This can be overridden by games and mods.\n"
@@ -6561,16 +6553,16 @@ msgid ""
"Known from the classic Luanti mobile controls.\n"
"Combat is more or less impossible."
msgstr ""
"Die Geste für für das Schlagen von Spielern/Entitys.\n"
"Die Geste für das Schlagen von Spielern/Entitys.\n"
"Dies kann von Spielen und Mods überschrieben werden.\n"
"\n"
"* short_tap\n"
"Leicht zu benutzen und bekannt von anderen Spielen, die nicht genannt werden "
"Leicht zu benutzen und bekannt aus anderen Spielen, die nicht genannt werden "
"sollen.\n"
"\n"
"* long_tap\n"
"Bekannt aus der klassischen Mineteststeuerung für mobile Endgeräte.\n"
"Der Kampf ist mehr oder weniger unmöglich."
"Bekannt aus der klassischen Luanti-Touchscreen-Steuerung.\n"
"Kämpfen ist mehr oder weniger unmöglich."
#: src/settings_translation_file.cpp
msgid "The identifier of the joystick to use"
@@ -6580,7 +6572,7 @@ msgstr "Die Kennung des zu verwendeten Joysticks"
msgid ""
"The length in pixels after which a touch interaction is considered movement."
msgstr ""
"Die Länge in Pixeln, die benötigt wird, damit die Touch-Interaktion als "
"Die Länge in Pixeln, die benötigt wird, damit eine Touch-Interaktion als "
"Bewegung zählt."
#: src/settings_translation_file.cpp
@@ -6636,7 +6628,6 @@ msgstr ""
"konfiguriert werden."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The rendering back-end.\n"
"Note: A restart is required after changing this!\n"
@@ -6645,8 +6636,7 @@ msgstr ""
"Das Renderer-Backend.\n"
"Anmerkung: Ein Neustart ist nach einer Änderung notwendig!\n"
"Auf Desktopsystemen ist OpenGL die Standardeinstellung. Bei Android ist "
"OGLES2 die Standardeinstellung.\n"
"Shader werden von allem außer OGLES1 unterstützt."
"OGLES2 die Standardeinstellung."
#: src/settings_translation_file.cpp
msgid ""
@@ -6776,6 +6766,8 @@ msgid ""
"Tolerance of movement cheat detector.\n"
"Increase the value if players experience stuttery movement."
msgstr ""
"Toleranz des Bewegungs-Cheaterkenners.\n"
"Erhöhen Sie den Wert, falls Spieler bei Bewegungen ein Stottern feststellen."
#: src/settings_translation_file.cpp
msgid "Tooltip delay"
@@ -6786,26 +6778,24 @@ msgid "Touchscreen"
msgstr "Touchscreen"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Touchscreen controls"
msgstr "Touchscreenschwellwert"
msgstr "Touchscreen-Steuerung"
#: src/settings_translation_file.cpp
msgid "Touchscreen sensitivity"
msgstr "Touchscreenempfindlichkeit"
msgstr "Touchscreen-Empfindlichkeit"
#: src/settings_translation_file.cpp
msgid "Touchscreen sensitivity multiplier."
msgstr "Faktor für die Touchscreenempfindlichkeit."
msgstr "Faktor für die Touchscreen-Empfindlichkeit."
#: src/settings_translation_file.cpp
msgid "Tradeoffs for performance"
msgstr "Kompromisse für Performanz"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Translucent foliage"
msgstr "Transluzente Flüssigkeiten"
msgstr "Transluzentes Blattwerk"
#: src/settings_translation_file.cpp
msgid "Translucent liquids"
@@ -6858,14 +6848,13 @@ msgstr ""
"haben."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"URL to JSON file which provides information about the newest Luanti "
"release.\n"
"If this is empty the engine will never check for updates."
msgstr ""
"URL zu einer JSON-Datei, welche Informationen über das neueste Minetest-"
"Release enthält\n"
"URL zu einer JSON-Datei, welche Informationen über das neueste Luanti-"
"Release enthält.\n"
"Wenn dies leer ist, wird die Engine nie nach Updates suchen."
#: src/settings_translation_file.cpp
@@ -6968,7 +6957,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Use smooth cloud shading."
msgstr ""
msgstr "Weiches Wolken-Shading benutzen."
#: src/settings_translation_file.cpp
msgid ""
@@ -7178,13 +7167,16 @@ msgstr "Weblinkfarbe"
#: src/settings_translation_file.cpp
msgid "When enabled, liquid reflections are simulated."
msgstr ""
msgstr "Falls aktiviert, werden Flüssigkeitsreflextionen simuliert."
#: src/settings_translation_file.cpp
msgid ""
"When enabled, the GUI is optimized to be more usable on touchscreens.\n"
"Whether this is enabled by default depends on your hardware form-factor."
msgstr ""
"Falls aktiviert, wird die GUI optimiert, damit sie für Touchscreens "
"benutzbarer wird.\n"
"Die Standardeinstellung hängt von ihrem Hardware-Formfaktor ab."
#: src/settings_translation_file.cpp
msgid ""
@@ -7306,13 +7298,12 @@ msgid "Window maximized"
msgstr "Fenster maximiert"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Windows systems only: Start Luanti with the command line window in the "
"background.\n"
"Contains the same information as the file debug.txt (default name)."
msgstr ""
"Nur für Windows-Systeme: Startet Minetest mit dem Kommandozeilenfenster im\n"
"Nur für Windows-Systeme: Startet Luanti mit dem Kommandozeilenfenster im\n"
"Hintergrund. Enthält die selbe Information wie die Datei debug.txt "
"(Standardname)."

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Spanish (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-28 19:57+0100\n"
"PO-Revision-Date: 2024-10-12 03:08+0000\n"
"PO-Revision-Date: 2024-11-10 00:00+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/minetest/"
"minetest/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 5.8-dev\n"
"X-Generator: Weblate 5.8.2\n"
#: builtin/client/chatcommands.lua
msgid "Clear the out chat queue"
@@ -159,7 +159,7 @@ msgstr "$1 descargando..."
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "All"
msgstr ""
msgstr "Todo"
#: builtin/mainmenu/content/dlg_contentdb.lua
#: builtin/mainmenu/content/dlg_package.lua
@@ -168,10 +168,8 @@ msgid "Back"
msgstr "Atrás"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "ContentDB is not available when Luanti was compiled without cURL"
msgstr ""
"ContentDB no se encuentra disponible cuando Minetest se compiló sin cURL"
msgstr "ContentDB no se encuentra disponible cuando Luanti se compiló sin cURL"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Downloading..."
@@ -179,7 +177,7 @@ msgstr "Descargando..."
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Featured"
msgstr ""
msgstr "Destacado"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Games"
@@ -215,9 +213,8 @@ msgid "Queued"
msgstr "En cola"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "Texture Packs"
msgstr "Paq. de texturas"
msgstr "Paquetes de texturas"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "The package $1 was not found."
@@ -269,9 +266,8 @@ msgid "Dependencies:"
msgstr "Dependencias:"
#: builtin/mainmenu/content/dlg_install.lua
#, fuzzy
msgid "Error getting dependencies for package $1"
msgstr "Error obteniendo dependencias para el paquete"
msgstr "Error obteniendo dependencias para el paquete $1"
#: builtin/mainmenu/content/dlg_install.lua
msgid "Install"
@@ -306,44 +302,40 @@ msgid "Overwrite"
msgstr "Sobreescribir"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "ContentDB page"
msgstr "URL de ContentDB"
msgstr "Página de ContentDB"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Description"
msgstr "Descripción del servidor"
msgstr "Descripción"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Donate"
msgstr ""
msgstr "Donar"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Forum Topic"
msgstr ""
msgstr "Tema del foro"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Information"
msgstr "Información:"
msgstr "Información"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Install [$1]"
msgstr "Instalar $1"
msgstr "Instalar [$1]"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Issue Tracker"
msgstr ""
msgstr "Rastreador de problemas"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Source"
msgstr ""
msgstr "Fuente"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Translate"
msgstr ""
msgstr "Traducir"
#: builtin/mainmenu/content/dlg_package.lua builtin/mainmenu/tab_content.lua
msgid "Uninstall"
@@ -354,13 +346,12 @@ msgid "Update"
msgstr "Actualizar"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Website"
msgstr "Visitar el sitio web"
msgstr "Página web"
#: builtin/mainmenu/content/dlg_package.lua
msgid "by $1 — $2 downloads — +$3 / $4 / -$5"
msgstr ""
msgstr "por $1 — $2 descargas — +$3 / $4 / -$5"
#: builtin/mainmenu/content/pkgmgr.lua
msgid "$1 (Enabled)"
@@ -725,13 +716,12 @@ msgid "Dismiss"
msgstr "Descartar"
#: builtin/mainmenu/dlg_reinstall_mtg.lua
#, fuzzy
msgid ""
"For a long time, Luanti shipped with a default game called \"Minetest "
"Game\". Since version 5.8.0, Luanti ships without a default game."
msgstr ""
"Por un largo tiempo, el motor de Minetest incluía un juego default llamado "
"\"Minetest Game\". Desde Minetest 5.8.0, Minetest se incluye sin un juego "
"Durante mucho tiempo, Luanti se entregó con un juego predeterminado llamado "
"\"Minetest Game\". Desde la versión 5.8.0, Luanti se entrega sin un juego "
"predeterminado."
#: builtin/mainmenu/dlg_reinstall_mtg.lua
@@ -739,16 +729,16 @@ msgid ""
"If you want to continue playing in your Minetest Game worlds, you need to "
"reinstall Minetest Game."
msgstr ""
"Si quieres continuar jugando en tus mundos de Minetest, necesitarás "
"reinstalar Minetest Game."
"Si deseas seguir jugando en los mundos de Minetest Game, deberás reinstalar "
"Minetest Game."
#: builtin/mainmenu/dlg_reinstall_mtg.lua
msgid "Minetest Game is no longer installed by default"
msgstr "Minetest Game ya no es instalado por predeterminado"
msgstr "Minetest Game ya no se instala de forma predeterminada"
#: builtin/mainmenu/dlg_reinstall_mtg.lua
msgid "Reinstall Minetest Game"
msgstr "Reinstala Minetest Game"
msgstr "Reinstalar Minetest Game"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Accept"
@@ -894,19 +884,16 @@ msgid "eased"
msgstr "Suavizado"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable automatic exposure as well)"
msgstr "(El juego necesitará habilitar las sombras también)"
msgstr "(El juego necesitará habilitar la exposición automática también)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable bloom as well)"
msgstr "(El juego necesitará habilitar las sombras también)"
msgstr "(El juego necesitará habilitar el efecto de bloom también)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable volumetric lighting as well)"
msgstr "(El juego necesitará habilitar las sombras también)"
msgstr "(El juego también deberá habilitar la iluminación volumétrica)"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "(Use system language)"
@@ -918,7 +905,7 @@ msgstr "Accesibilidad"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Auto"
msgstr ""
msgstr "Automático"
#: builtin/mainmenu/settings/dlg_settings.lua src/gui/guiKeyChangeMenu.cpp
#: src/gui/touchcontrols.cpp src/settings_translation_file.cpp
@@ -984,18 +971,16 @@ msgid "Content: Mods"
msgstr "Contenido: Mods"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Enable"
msgstr "Activado"
msgstr "Habilitar"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Shaders are disabled."
msgstr "Actualización de la cámara desactivada"
msgstr "Los Shaders están deshabilitados."
#: builtin/mainmenu/settings/shader_warning_component.lua
msgid "This is not a recommended configuration."
msgstr ""
msgstr "Esta no es una configuración recomendada."
#: builtin/mainmenu/settings/shadows_component.lua
msgid "(The game will need to enable shadows as well)"
@@ -1155,18 +1140,16 @@ msgid "Install games from ContentDB"
msgstr "Instalar juegos desde ContentDB"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid "Luanti doesn't come with a game by default."
msgstr "Minetest no viene con un juego por defecto."
msgstr "Luanti no viene con un juego por defecto."
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid ""
"Luanti is a game-creation platform that allows you to play many different "
"games."
msgstr ""
"Minetest es una plataforma de creación de juegos que te permite jugar a "
"muchos juegos diferentes."
"Luanti es una plataforma de creación de juegos que te permite jugar a muchos "
"diferentes juegos."
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -2273,37 +2256,38 @@ msgid "Sound Volume: %d%%"
msgstr "Volumen del sonido: %d%%"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Joystick"
msgstr "ID de Joystick"
msgstr "Joystick"
#: src/gui/touchcontrols.cpp
msgid "Overflow menu"
msgstr ""
msgstr "Menú de desborde"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Toggle debug"
msgstr "Alternar la niebla"
msgstr "Alternar depuración"
#: src/network/clientpackethandler.cpp
msgid ""
"Another client is connected with this name. If your client closed "
"unexpectedly, try again in a minute."
msgstr ""
"Otro cliente está conectado con este nombre. Si su cliente se cerró "
"inesperadamente, intente nuevamente en un minuto."
#: src/network/clientpackethandler.cpp
msgid "Empty passwords are disallowed. Set a password and try again."
msgstr ""
"Las contraseñas vacías no están permitidas. Establezca una contraseña y "
"vuelva a intentarlo."
#: src/network/clientpackethandler.cpp
msgid "Internal server error"
msgstr ""
msgstr "Error interno del servidor"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Invalid password"
msgstr "Contraseña anterior"
msgstr "Contraseña inválida"
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -2326,46 +2310,50 @@ msgstr "El nombre ya ha sido tomado. Por favor, elegir otro nombre"
#: src/network/clientpackethandler.cpp
msgid "Player name contains disallowed characters"
msgstr ""
msgstr "El nombre del jugador contiene caracteres no permitidos"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Player name not allowed"
msgstr "Nombre de jugador demasiado largo."
msgstr "Nombre de jugador no permitido"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Server shutting down"
msgstr "Cerrando..."
msgstr "El servidor se está cerrando"
#: src/network/clientpackethandler.cpp
msgid ""
"The server has experienced an internal error. You will now be disconnected."
msgstr ""
"El servidor ha experimentado un error interno. Ahora serás desconectado."
#: src/network/clientpackethandler.cpp
msgid "The server is running in singleplayer mode. You cannot connect."
msgstr ""
"El servidor está funcionando en modo un jugador. No puedes conectarte."
#: src/network/clientpackethandler.cpp
msgid "Too many users"
msgstr ""
msgstr "Demasiados usuarios"
#: src/network/clientpackethandler.cpp
msgid "Unknown disconnect reason."
msgstr ""
msgstr "Motivo de desconexión desconocido."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client sent something the server didn't expect. Try reconnecting or "
"updating your client."
msgstr ""
"Su cliente envió algo que el servidor no esperaba. Intente reconectarse o "
"actualizar su cliente."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client's version is not supported.\n"
"Please contact the server administrator."
msgstr ""
"La versión de su cliente no es compatible.\n"
"Por favor, póngase en contacto con el administrador del servidor."
#: src/server.cpp
#, c-format
@@ -2670,11 +2658,11 @@ msgstr "Método de suavizado"
#: src/settings_translation_file.cpp
msgid "Anticheat flags"
msgstr ""
msgstr "Banderas antitrampas"
#: src/settings_translation_file.cpp
msgid "Anticheat movement tolerance"
msgstr ""
msgstr "Tolerancia al movimiento antitrampas"
#: src/settings_translation_file.cpp
msgid "Append item name"
@@ -2711,7 +2699,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Apply specular shading to nodes."
msgstr ""
msgstr "Aplique la sombra especulativa a los nodos."
#: src/settings_translation_file.cpp
msgid "Arm inertia"
@@ -2831,9 +2819,8 @@ msgid "Biome noise"
msgstr "Ruido del bioma"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Block bounds HUD radius"
msgstr "Límites de bloque"
msgstr "Radio de límites de bloque en HUD"
#: src/settings_translation_file.cpp
msgid "Block cull optimize distance"
@@ -3049,7 +3036,6 @@ msgstr ""
"Útil para pruebas. Ver al_extensions.[h,cpp] para más detalles."
#: 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 "
@@ -3059,14 +3045,14 @@ msgid ""
"These flags are independent from Luanti versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
"Lista separada por comas de etiquetas a ocultar en el repositorio de "
"Lista de banderas separadas por comas para ocultar en el repositorio de "
"contenido.\n"
"Se puede usar la etiqueta 'nonfree' para ocultar paquetes que no califican\n"
"como \"software libre\", tal como es definido por la Fundación de Software "
"Libre (FSF).\n"
"\"nonfree\" se puede usar para ocultar paquetes que no califican como "
"'software libre',\n"
"según lo definido por la Free Software Foundation.\n"
"También puedes especificar clasificaciones de contenido.\n"
"Estas etiquetas son independientes de la versión de Minetest.\n"
"Si quieres ver una lista completa visita https://content.minetest.net/help/"
"Estas banderas son independientes de las versiones de Luanti,\n"
"así que consulta una lista completa en https://content.minetest.net/help/"
"content_flags/"
#: src/settings_translation_file.cpp
@@ -3273,7 +3259,6 @@ msgstr ""
"pero tambien utiliza más recursos."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Define the oldest clients allowed to connect.\n"
"Older clients are compatible in the sense that they will not crash when "
@@ -3285,15 +3270,14 @@ msgid ""
"Luanti still enforces its own internal minimum, and enabling\n"
"strict_protocol_version_checking will effectively override this."
msgstr ""
"Definir los clientes más antiguos con permiso para conectarse.\n"
"Los clientes más antiguos no se colgarán al intento de conectarse\n"
"a nuevos servidores, pero no soportarán todas las nuevas características que "
"espera.\n"
"Esto permite un control mucho más ajustado que "
"strict_protocol_version_checking.\n"
"Aún así, Minetest sigue forzando su minimo interno, y activar\n"
"strict_protocol_version_checking ignorará efectivamente todos los parámetros "
"que haya definido."
"Define los clientes más antiguos permitidos a conectarse.\n"
"Los clientes más antiguos son compatibles en el sentido de que no se "
"bloquearán al conectarse\n"
"a nuevos servidores, pero pueden no soportar todas las nuevas "
"características que esperas.\n"
"Esto permite un control más detallado del strict_protocol_version_checking.\n"
"Luanti aún aplica su propio mínimo interno, y habilitar\n"
"strict_protocol_version_checking anulará efectivamente esto."
#: src/settings_translation_file.cpp
msgid "Defines areas where trees have apples."
@@ -3432,16 +3416,16 @@ msgid "Display Density Scaling Factor"
msgstr "Factor del Escalado de la Densidad de Visualización"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Distance in nodes at which transparency depth sorting is enabled.\n"
"Use this to limit the performance impact of transparency depth sorting.\n"
"Set to 0 to disable it entirely."
msgstr ""
"Distancia en nodos a la que se activa la clasificación por profundidad de "
"transparencia\n"
"transparencia.\n"
"Utilice esto para limitar el impacto en el rendimiento de la clasificación "
"por profundidad de transparencia"
"por profundidad de transparencia.\n"
"Establezca en 0 para desactivarlo por completo."
#: src/settings_translation_file.cpp
msgid "Domain name of server, to be displayed in the serverlist."
@@ -3473,9 +3457,8 @@ msgid "Dungeon noise"
msgstr "Ruido de mazmorra"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Effects"
msgstr "Efectos gráficos"
msgstr "Efectos"
#: src/settings_translation_file.cpp
msgid "Enable Automatic Exposure"
@@ -3584,11 +3567,8 @@ msgid "Enable random user input (only used for testing)."
msgstr "Habilitar entrada aleatoria (solo usar para pruebas)."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enable smooth lighting with simple ambient occlusion."
msgstr ""
"Habilita iluminación suave con oclusión ambiental simple.\n"
"Deshabilítalo para mayor velocidad o una vista diferente."
msgstr "Habilita iluminación suave con oclusión ambiental simple."
#: src/settings_translation_file.cpp
msgid "Enable split login/register"
@@ -3610,6 +3590,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable updates available indicator on content tab"
msgstr ""
"Habilitar el indicador de actualizaciones disponibles en la pestaña de "
"contenido"
#: src/settings_translation_file.cpp
msgid ""
@@ -3659,24 +3641,25 @@ msgid "Enables animation of inventory items."
msgstr "Habilita la animación de objetos en el inventario."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Enables caching of facedir rotated meshes.\n"
"This is only effective with shaders disabled."
msgstr "Habilitar cacheado de mallas giradas."
msgstr ""
"Habilita el almacenamiento en caché de mallas rotadas por dirección de cara."
"\n"
"Esto solo es efectivo con los shaders desactivados."
#: src/settings_translation_file.cpp
msgid "Enables debug and error-checking in the OpenGL driver."
msgstr "Activa depuración y comprobación de errores en el driver OpenGL."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enables smooth scrolling."
msgstr "Habilitar posprocesamiento"
msgstr "Activar el desplazamiento suave."
#: src/settings_translation_file.cpp
msgid "Enables the post processing pipeline."
msgstr "Activas el proceso de posprocesamiento."
msgstr "Habilita la canalización para el posprocesamiento."
#: src/settings_translation_file.cpp
msgid ""
@@ -3685,6 +3668,11 @@ msgid ""
"\"auto\" means that the touchscreen controls will be enabled and disabled\n"
"automatically depending on the last used input method."
msgstr ""
"Habilita los controles de pantalla táctil, lo que te permite jugar el juego "
"con una pantalla táctil.\n"
"\"auto\" significa que los controles de la pantalla táctil se habilitarán y "
"deshabilitarán\n"
"automáticamente dependiendo del último método de entrada utilizado."
#: src/settings_translation_file.cpp
msgid ""
@@ -4270,6 +4258,9 @@ msgid ""
"ContentDB to\n"
"check for package updates when opening the mainmenu."
msgstr ""
"Si está habilitado y tiene paquetes ContentDB instalados, Luanti puede "
"comunicarse con ContentDB para\n"
"Compruebe si hay actualizaciones del paquete al abrir el menú principal."
#: src/settings_translation_file.cpp
msgid ""
@@ -4414,26 +4405,25 @@ msgid "Instrument chat commands on registration."
msgstr "Instrumento de comandos del chat al registrarse."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Instrument global callback functions on registration.\n"
"(anything you pass to a core.register_*() function)"
msgstr ""
"Funciones de devolución de llamada global del instrumento en el registro.\n"
"(Cualquier cosa que pase a una función minetest.register _ * ())"
"Instrumentar funciones callback globales en el registro.\n"
"(cualquier cosa que se pase a una función core.register_*())"
#: src/settings_translation_file.cpp
msgid ""
"Instrument the action function of Active Block Modifiers on registration."
msgstr ""
"Instrumenta la función de acción de los Modificadores de Bloque Activos en "
"Instrumentar la función de acción de los modificadores de bloque activo en "
"el registro."
#: src/settings_translation_file.cpp
msgid ""
"Instrument the action function of Loading Block Modifiers on registration."
msgstr ""
"Instrumenta la función de acción de Carga de Modificadores de Bloque en el "
"Instrumentar la función de acción de Cargar modificadores de bloque en el "
"registro."
#: src/settings_translation_file.cpp
@@ -4628,20 +4618,18 @@ msgid "Leaves style"
msgstr "Estilo de las hojas"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Leaves style:\n"
"- Fancy: all faces visible\n"
"- Simple: only outer faces\n"
"- Opaque: disable transparency"
msgstr ""
"Estilo de hojas:\n"
"- Fabuloso: Todas las caras son visibles\n"
"- Simple: Solo caras externas, si se utilizan special_tiles definidos\n"
"- Opaco: Transparencia desactivada"
"Estilo de las hojas:\n"
"- Elegante: todas las caras visibles\n"
"- Simple: solo las caras exteriores\n"
"- Opaco: desactivar la transparencia"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Length of a server tick (the interval at which everything is generally "
"updated),\n"
@@ -4650,10 +4638,13 @@ msgid ""
"This is a lower bound, i.e. server steps may not be shorter than this, but\n"
"they are often longer."
msgstr ""
"Duración de un tick del servidor (el intervalo en el que todo es "
"actualizado),\n"
"expresado en segundos.\n"
"No se aplica a las sesiones iniciadas desde el menú del cliente."
"Duración de un tick del servidor (intervalo en el que generalmente se "
"actualiza todo),\n"
"indicada en segundos.\n"
"No se aplica a las sesiones alojadas desde el menú cliente.\n"
"Se trata de un límite inferior, es decir, los pasos del servidor no pueden "
"ser más cortos que esto, pero\n"
"a menudo son más largos."
#: src/settings_translation_file.cpp
msgid "Length of liquid waves."
@@ -4775,9 +4766,8 @@ msgid "Liquid queue purge time"
msgstr "Tiempo de purga de colas de líquidos"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Liquid reflections"
msgstr "Fluidez líquida"
msgstr "Reflejos líquidos"
#: src/settings_translation_file.cpp
msgid "Liquid sinking"
@@ -5121,6 +5111,10 @@ msgid ""
"You generally don't need to change this, however busy servers may benefit "
"from a higher number."
msgstr ""
"Número máximo de paquetes enviados por paso de envío en el código de red de "
"bajo nivel.\n"
"Generalmente no es necesario cambiar esto, sin embargo los servidores "
"ocupados pueden beneficiarse de un número mayor."
#: src/settings_translation_file.cpp
msgid "Maximum number of players that can be connected simultaneously."
@@ -5358,7 +5352,7 @@ msgstr "Resaltado de los nodos"
#: src/settings_translation_file.cpp
msgid "Node specular"
msgstr ""
msgstr "Nodo especular"
#: src/settings_translation_file.cpp
msgid "NodeTimer interval"
@@ -5414,15 +5408,14 @@ msgid "Number of messages a player may send per 10 seconds."
msgstr "Número de mensajes que un jugador puede enviar cada 10 segundos."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Number of threads to use for mesh generation.\n"
"Value of 0 (default) will let Luanti autodetect the number of available "
"threads."
msgstr ""
"Numero de hilos del procesador a usar para la generación de mayas.\n"
"Un valor de 0 (default) dejará que Minetest detecte automáticamente el "
"número de hilos disponibles."
"Número de hilos a utilizar para la generación de mallas.\n"
"Un valor de 0 (predeterminado) permitirá que Luanti detecte automáticamente "
"el número de hilos disponibles."
#: src/settings_translation_file.cpp
msgid "Occlusion Culler"
@@ -5454,18 +5447,16 @@ msgid "OpenGL debug"
msgstr "Depuración OpenGL"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Optimize GUI for touchscreens"
msgstr "Usar retícula en pantalla táctil"
msgstr "Optimización de la interfaz gráfica para pantallas táctiles"
#: src/settings_translation_file.cpp
msgid "Optional override for chat weblink color."
msgstr "Anulación opcional del color de un enlace web en el chat."
msgstr "Cambio opcional del color del enlace web del chat."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Other Effects"
msgstr "Efectos gráficos"
msgstr "Otros efectos"
#: src/settings_translation_file.cpp
msgid ""
@@ -5582,21 +5573,20 @@ msgid "Prometheus listener address"
msgstr "Dirección del receptor \"Prometheus\""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Prometheus listener address.\n"
"If Luanti is compiled with ENABLE_PROMETHEUS option enabled,\n"
"enable metrics listener for Prometheus on that address.\n"
"Metrics can be fetched on http://127.0.0.1:30000/metrics"
msgstr ""
"Dirección de escucha de \"Prometheus\".\n"
"Si Minetest se compila con la opción 'ENABLE_PROMETHEUS' activada,\n"
"se habilitará el detector de métricas para \"Prometheus\" en esa dirección.\n"
"Las métricas pueden obtenerse en http://127.0.0.1:30000/metrics"
"Dirección de escucha de Prometheus.\n"
"Si Luanti se compila con la opción ENABLE_PROMETHEUS activada,\n"
"habilita la escucha de métricas para Prometheus en esa dirección.\n"
"Las métricas se pueden obtener en http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
msgstr "Proporción de cuevas grandes que contienen líquido."
msgstr "Proporción de grandes cuevas que contienen líquido."
#: src/settings_translation_file.cpp
msgid "Protocol version minimum"
@@ -5619,6 +5609,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Radius to use when the block bounds HUD feature is set to near blocks."
msgstr ""
"El radio que se utilizará cuando la función HUD de límite de bloque está en "
"el modo Bloques cercanos."
#: src/settings_translation_file.cpp
msgid "Raises terrain to make valleys around the rivers."
@@ -5950,11 +5942,12 @@ msgid ""
"Send names of online players to the serverlist. If disabled only the player "
"count is revealed."
msgstr ""
"Envía los nombres de los jugadores en línea a la lista de servidores. Si "
"está deshabilitada, solo se revela el número de jugadores."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Send player names to the server list"
msgstr "Anunciar en esta lista de servidores."
msgstr "Enviar nombres de los jugadores a la lista de servidores"
#: src/settings_translation_file.cpp
msgid "Server"
@@ -5982,6 +5975,9 @@ msgid ""
"Flags are positive. Uncheck the flag to disable corresponding anticheat "
"module."
msgstr ""
"Configuración antitrampas del servidor.\n"
"Las banderas son positivas. Desmarque la bandera para desactivar el módulo "
"antitrampas correspondiente."
#: src/settings_translation_file.cpp
msgid "Server description"
@@ -6142,6 +6138,8 @@ msgid ""
"Shaders are a fundamental part of rendering and enable advanced visual "
"effects."
msgstr ""
"Los Shaders son una parte fundamental del renderizado y permiten efectos "
"visuales avanzados."
#: src/settings_translation_file.cpp
msgid "Shadow filter quality"
@@ -6214,7 +6212,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Simulate translucency when looking at foliage in the sunlight."
msgstr ""
msgstr "Simule la translucidez al mirar el follaje a la luz del sol."
#: src/settings_translation_file.cpp
msgid ""
@@ -6269,9 +6267,8 @@ msgid "Smooth lighting"
msgstr "Iluminación suave"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Smooth scrolling"
msgstr "Iluminación suave"
msgstr "Desplazado suave"
#: src/settings_translation_file.cpp
msgid ""
@@ -6298,9 +6295,8 @@ msgid "Sneaking speed, in nodes per second."
msgstr "Velocidad agachado, en nodos por segundo."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Soft clouds"
msgstr "Nubes 3D"
msgstr "Nubes suaves"
#: src/settings_translation_file.cpp
msgid "Soft shadow radius"
@@ -6544,7 +6540,6 @@ msgstr ""
"los perfiles."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The gesture for punching players/entities.\n"
"This can be overridden by games and mods.\n"
@@ -6556,14 +6551,14 @@ msgid ""
"Known from the classic Luanti mobile controls.\n"
"Combat is more or less impossible."
msgstr ""
"El gesto para golpear jugadores/entidades.\n"
"Los juegos y mods pueden ignorar esto.\n"
"El gesto para golpear a jugadores/entidades.\n"
"Esto puede ser anulado por juegos y mods.\n"
"\n"
"* sort_tap\n"
"Fácil de usar y muy conocido por otros juegos que no se mencionarán.\n"
"* short_tap\n"
"Fácil de usar y bien conocido de otros juegos que no deben ser nombrados.\n"
"\n"
"* long_tap\n"
"Conocido por los controles clásicos para móviles de Minetest.\n"
"Conocido por los controles clásicos de móvil en Luanti.\n"
"El combate es más o menos imposible."
#: src/settings_translation_file.cpp
@@ -6630,24 +6625,22 @@ msgstr ""
"Esto debe configurarse junto con active_object_send_range_blocks."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The rendering back-end.\n"
"Note: A restart is required after changing this!\n"
"OpenGL is the default for desktop, and OGLES2 for Android."
msgstr ""
"El back-end de renderizado.\n"
"Nota: ¡se debe reiniciar después de cambiar esto!\n"
"OpenGL es el predeterminado para PC, y OGLES2 para Android.\n"
"Los shaders son compatibles con todos los sistemas excepto OGLES1."
"Nota: ¡Es necesario reiniciar después de cambiar esto!\n"
"OpenGL es el predeterminado para escritorio y OGLES2 para Android."
#: src/settings_translation_file.cpp
msgid ""
"The sensitivity of the joystick axes for moving the\n"
"in-game view frustum around."
msgstr ""
"La sensibilidad de los ejes del joystick para mover el\n"
"en el juego."
"La sensibilidad de los ejes del joystick para mover la\n"
"vista del juego."
#: src/settings_translation_file.cpp
msgid ""
@@ -6768,6 +6761,8 @@ msgid ""
"Tolerance of movement cheat detector.\n"
"Increase the value if players experience stuttery movement."
msgstr ""
"Detector de trampas de tolerancia de movimiento.\n"
"Aumente el valor si los jugadores experimentan movimientos entrecortados."
#: src/settings_translation_file.cpp
msgid "Tooltip delay"
@@ -6778,9 +6773,8 @@ msgid "Touchscreen"
msgstr "Pantalla táctil"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Touchscreen controls"
msgstr "Umbral de la pantalla táctil"
msgstr "Controles en pantalla táctil"
#: src/settings_translation_file.cpp
msgid "Touchscreen sensitivity"
@@ -6795,9 +6789,8 @@ msgid "Tradeoffs for performance"
msgstr "Contrapartidas para el rendimiento"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Translucent foliage"
msgstr "Líquidos translúcidos"
msgstr "Follaje translúcido"
#: src/settings_translation_file.cpp
msgid "Translucent liquids"
@@ -6847,14 +6840,13 @@ msgstr ""
"Esta configuración solo debe cambiarse si tiene problemas de rendimiento."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"URL to JSON file which provides information about the newest Luanti "
"release.\n"
"If this is empty the engine will never check for updates."
msgstr ""
"URL del archivo JSON que proporciona información sobre la última versión de "
"Minetest\n"
"URL del archivo JSON que proporciona información sobre la versión más "
"reciente de Luanti.\n"
"Si está vacío, el motor nunca buscará actualizaciones."
#: src/settings_translation_file.cpp
@@ -6953,7 +6945,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Use smooth cloud shading."
msgstr ""
msgstr "Utilice un sombreado de nubes suave."
#: src/settings_translation_file.cpp
msgid ""
@@ -7162,13 +7154,17 @@ msgstr "Color de los enlaces web"
#: src/settings_translation_file.cpp
msgid "When enabled, liquid reflections are simulated."
msgstr ""
msgstr "Cuando está habilitado, se simulan reflejos de líquidos."
#: src/settings_translation_file.cpp
msgid ""
"When enabled, the GUI is optimized to be more usable on touchscreens.\n"
"Whether this is enabled by default depends on your hardware form-factor."
msgstr ""
"Cuando está habilitada, la GUI se optimiza para que sea más fácil de usar en "
"pantallas táctiles.\n"
"Si esta opción está habilitada de manera predeterminada depende del factor "
"de forma de su hardware."
#: src/settings_translation_file.cpp
msgid ""
@@ -7294,15 +7290,14 @@ msgid "Window maximized"
msgstr "Ventana maximizada"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Windows systems only: Start Luanti with the command line window in the "
"background.\n"
"Contains the same information as the file debug.txt (default name)."
msgstr ""
"Solo para sistemas Windows: Iniciar Minetest con la ventana de la linea de "
"comandos en el fondo.\n"
"Contiene la misma información que el archivo debug.txt (Nombre por defecto)."
"Solo sistemas Windows: Inicia Luanti con la ventana de línea de comandos en "
"segundo plano.\n"
"Contiene la misma información que el archivo debug.txt (nombre por defecto)."
#: src/settings_translation_file.cpp
msgid ""

6465
po/es_US/luanti.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-28 19:57+0100\n"
"PO-Revision-Date: 2024-08-14 04:09+0000\n"
"PO-Revision-Date: 2024-11-02 23:00+0000\n"
"Last-Translator: ninjum <ninhum@gmx.com>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/minetest/"
"minetest/gl/>\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 5.7-dev\n"
"X-Generator: Weblate 5.8.2\n"
#: builtin/client/chatcommands.lua
msgid "Clear the out chat queue"
@@ -159,7 +159,7 @@ msgstr "Descargando $1..."
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "All"
msgstr ""
msgstr "Todo"
#: builtin/mainmenu/content/dlg_contentdb.lua
#: builtin/mainmenu/content/dlg_package.lua
@@ -168,7 +168,6 @@ msgid "Back"
msgstr "Voltar"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "ContentDB is not available when Luanti was compiled without cURL"
msgstr "ContentDB non está dispoñible cando Minetest compilouse sen cURL"
@@ -178,7 +177,7 @@ msgstr "Descargando..."
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Featured"
msgstr ""
msgstr "Destacado"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Games"
@@ -214,7 +213,6 @@ msgid "Queued"
msgstr "En cola"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "Texture Packs"
msgstr "Paquetes de texturas"
@@ -268,9 +266,8 @@ msgid "Dependencies:"
msgstr "Dependencias:"
#: builtin/mainmenu/content/dlg_install.lua
#, fuzzy
msgid "Error getting dependencies for package $1"
msgstr "Produciuse un erro ao obter dependencias para o paquete"
msgstr "Produciuse un erro ao obter dependencias para o paquete $1"
#: builtin/mainmenu/content/dlg_install.lua
msgid "Install"
@@ -305,44 +302,40 @@ msgid "Overwrite"
msgstr "Sobrescribir"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "ContentDB page"
msgstr "Ligazón URL de ContentDB"
msgstr "Ligazón de ContentDB"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Description"
msgstr "Descripción do servidor"
msgstr "Descripción"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Donate"
msgstr ""
msgstr "Doar"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Forum Topic"
msgstr ""
msgstr "Tema do foro"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Information"
msgstr "Información:"
msgstr "Información"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Install [$1]"
msgstr "Instalar $1"
msgstr "Instalar [$1]"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Issue Tracker"
msgstr ""
msgstr "Rastrexador de Problemas"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Source"
msgstr ""
msgstr "Fonte"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Translate"
msgstr ""
msgstr "Traducir"
#: builtin/mainmenu/content/dlg_package.lua builtin/mainmenu/tab_content.lua
msgid "Uninstall"
@@ -353,13 +346,12 @@ msgid "Update"
msgstr "Actualizar"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Website"
msgstr "Visitar sitio web"
msgstr "Páxina web"
#: builtin/mainmenu/content/dlg_package.lua
msgid "by $1 — $2 downloads — +$3 / $4 / -$5"
msgstr ""
msgstr "por $1 — $2 descargas — +$3 / $4 / -$5"
#: builtin/mainmenu/content/pkgmgr.lua
msgid "$1 (Enabled)"
@@ -723,14 +715,12 @@ msgid "Dismiss"
msgstr "Descartar"
#: builtin/mainmenu/dlg_reinstall_mtg.lua
#, fuzzy
msgid ""
"For a long time, Luanti shipped with a default game called \"Minetest "
"Game\". Since version 5.8.0, Luanti ships without a default game."
msgstr ""
"Durante moito tempo, o motor Minetest incluía un xogo predeterminado chamado "
"\"Minetest Game\". Dende Minetest 5.8.0, Minetest inclúese sen un xogo "
"predeterminado."
"Durante moito tempo, Luanti incluía un xogo por defecto chamado 'Minetest "
"Game'. Desde a versión 5.8.0, Luanti distribúese sen un xogo por defecto."
#: builtin/mainmenu/dlg_reinstall_mtg.lua
msgid ""
@@ -892,19 +882,16 @@ msgid "eased"
msgstr "Suavizado"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable automatic exposure as well)"
msgstr "(O xogo tamén precisará activar as sombras)"
msgstr "(O xogo tamén necesitará habilitar a exposición automática.)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable bloom as well)"
msgstr "(O xogo tamén precisará activar as sombras)"
msgstr "(O xogo tamén necesitará habilitar efecto de bloom.)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable volumetric lighting as well)"
msgstr "(O xogo tamén precisará activar as sombras)"
msgstr "(O xogo tamén necesitará habilitar a iluminación volumétrica.)"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "(Use system language)"
@@ -916,7 +903,7 @@ msgstr "Accesibilidade"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Auto"
msgstr ""
msgstr "Automático"
#: builtin/mainmenu/settings/dlg_settings.lua src/gui/guiKeyChangeMenu.cpp
#: src/gui/touchcontrols.cpp src/settings_translation_file.cpp
@@ -982,18 +969,16 @@ msgid "Content: Mods"
msgstr "Contido: modificacións"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Enable"
msgstr "Activado"
msgstr "Habilitar"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Shaders are disabled."
msgstr "Actualización da cámara desactivada"
msgstr "Os sombreadores están deshabilitados."
#: builtin/mainmenu/settings/shader_warning_component.lua
msgid "This is not a recommended configuration."
msgstr ""
msgstr "Esta non é unha configuración recomendada."
#: builtin/mainmenu/settings/shadows_component.lua
msgid "(The game will need to enable shadows as well)"
@@ -1154,18 +1139,16 @@ msgid "Install games from ContentDB"
msgstr "Instalar xogos do ContentDB"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid "Luanti doesn't come with a game by default."
msgstr "Minetest non trae un xogo por defecto."
msgstr "Luanti non vén cun xogo por defecto."
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid ""
"Luanti is a game-creation platform that allows you to play many different "
"games."
msgstr ""
"Minetest é unha plataforma de creación de xogos que che permite xogar a "
"moitos xogos diferentes."
"Luanti é unha plataforma de creación de xogos que che permite xogar a moitos "
"xogos diferentes."
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -2269,37 +2252,38 @@ msgid "Sound Volume: %d%%"
msgstr "Son: %d%%"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Joystick"
msgstr "ID do joystick"
msgstr "Joystick"
#: src/gui/touchcontrols.cpp
msgid "Overflow menu"
msgstr ""
msgstr "Menú de desbordamento"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Toggle debug"
msgstr "Alt. néboa"
msgstr "Activar/desactivar depuración"
#: src/network/clientpackethandler.cpp
msgid ""
"Another client is connected with this name. If your client closed "
"unexpectedly, try again in a minute."
msgstr ""
"Outro cliente está conectado con este nome. Se o seu cliente pechouse "
"inesperadamente, tenteo de novo nun minuto."
#: src/network/clientpackethandler.cpp
msgid "Empty passwords are disallowed. Set a password and try again."
msgstr ""
"Non se permiten contrasinais baleiros. Estableza un contrasinal e intente "
"de novo."
#: src/network/clientpackethandler.cpp
msgid "Internal server error"
msgstr ""
msgstr "Erro interno do servidor"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Invalid password"
msgstr "Anterior contrasinal"
msgstr "Contrasinal non válido"
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -2322,46 +2306,48 @@ msgstr "O nome está en uso. Por favor, escolle outro nome"
#: src/network/clientpackethandler.cpp
msgid "Player name contains disallowed characters"
msgstr ""
msgstr "O nome do xogador contén caracteres non permitidos"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Player name not allowed"
msgstr "Nome do xogador demasiado longo."
msgstr "Nome de xogador non permitido"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Server shutting down"
msgstr "Cerrando..."
msgstr "O Servidor tase pechando"
#: src/network/clientpackethandler.cpp
msgid ""
"The server has experienced an internal error. You will now be disconnected."
msgstr ""
msgstr "O servidor experimentou un erro interno. Agora será desconectado."
#: src/network/clientpackethandler.cpp
msgid "The server is running in singleplayer mode. You cannot connect."
msgstr ""
msgstr "O servidor está en modo un xogador. Non pode conectar."
#: src/network/clientpackethandler.cpp
msgid "Too many users"
msgstr ""
msgstr "Demasiados usuarios"
#: src/network/clientpackethandler.cpp
msgid "Unknown disconnect reason."
msgstr ""
msgstr "Razón da desconexión descoñecida."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client sent something the server didn't expect. Try reconnecting or "
"updating your client."
msgstr ""
"O seu cliente enviou algo que o servidor non esperaba. Tente volver "
"conectar ou actualizar o seu cliente."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client's version is not supported.\n"
"Please contact the server administrator."
msgstr ""
"A versión do seu cliente non é compatible.\n"
"Por favor, contacte co administrador do servidor."
#: src/server.cpp
#, c-format
@@ -2660,11 +2646,11 @@ msgstr "Método de suavizado (antialiasing)"
#: src/settings_translation_file.cpp
msgid "Anticheat flags"
msgstr ""
msgstr "Bandeiras antitrampas"
#: src/settings_translation_file.cpp
msgid "Anticheat movement tolerance"
msgstr ""
msgstr "Tolerancia ao movemento antitrampas"
#: src/settings_translation_file.cpp
msgid "Append item name"
@@ -2699,7 +2685,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Apply specular shading to nodes."
msgstr ""
msgstr "Aplique sombreado especular aos nodos."
#: src/settings_translation_file.cpp
msgid "Arm inertia"
@@ -2819,9 +2805,8 @@ msgid "Biome noise"
msgstr "Ruído de bioma"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Block bounds HUD radius"
msgstr "Lím. bloques"
msgstr "Raio de límites de bloques no HUD"
#: src/settings_translation_file.cpp
msgid "Block cull optimize distance"
@@ -3036,7 +3021,6 @@ msgstr ""
"Útil para probas. Vexa al_extensions.[h,cpp] para máis detalles."
#: 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 "
@@ -3046,13 +3030,14 @@ msgid ""
"These flags are independent from Luanti versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
"Lista de marcas separadas por comas para ocultar no repositorio de contido.\n"
"\"Non libre\" pódese usar para ocultar paquetes que non sexan \"software "
"libre\",\n"
"segundo a definición da Free Software Foundation.\n"
"Tamén podes especificar clasificacións de contido.\n"
"Estas marcas son independentes das versións de Minetest,\n"
"así que consulta unha lista completa en https://content.minetest.net/help/"
"Lista de bandeiras separadas por comas que se ocultarán no repositorio de "
"contido.\n"
"\"nonfree\" pódese usar para ocultar paquetes que non cualifican como "
"'software libre',\n"
"tal como o define a Free Software Foundation.\n"
"Tamén podes especificar valoracións de contido.\n"
"Estas bandeiras son independentes das versións de Luanti,\n"
"así que consulta a lista completa en https://content.minetest.net/help/"
"content_flags/"
#: src/settings_translation_file.cpp
@@ -3257,7 +3242,6 @@ msgstr ""
"pero tamén consume máis recursos."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Define the oldest clients allowed to connect.\n"
"Older clients are compatible in the sense that they will not crash when "
@@ -3269,16 +3253,15 @@ msgid ""
"Luanti still enforces its own internal minimum, and enabling\n"
"strict_protocol_version_checking will effectively override this."
msgstr ""
"Define os clientes máis antigos aos que se permite conectarse.\n"
"Os clientes máis antigos son compatibles no sentido de que non fallarán ao "
"conectarse\n"
"a novos servidores, pero é posible que non admitan todas as novas "
"características que esperas.\n"
"Define os clientes máis antigos permitidos para conectarse.\n"
"Os clientes máis antigos son compatibles no sentido de que non se bloquearán "
"ao conectarse\n"
"a servidores novos, pero poden non soportar todas as novas características "
"que esperas.\n"
"Isto permite un control máis detallado que a verificación estrita da versión "
"do protocolo.\n"
"Minetest segue aplicando o seu propio mínimo interno, e habilitar a\n"
"verificación estrita da versión do protocolo sobreporá efectivamente esta "
"configuración."
"Luanti sigue aplicando o seu mínimo interno, e habilitar\n"
"a verificación estrita da versión do protocolo anulará efectivamente isto."
#: src/settings_translation_file.cpp
msgid "Defines areas where trees have apples."
@@ -3417,16 +3400,16 @@ msgid "Display Density Scaling Factor"
msgstr "Factor de escala de densidade de exposición"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Distance in nodes at which transparency depth sorting is enabled.\n"
"Use this to limit the performance impact of transparency depth sorting.\n"
"Set to 0 to disable it entirely."
msgstr ""
"Distancia en nodos á que se habilita a ordenación de profundidade de "
"transparencia\n"
"Usa isto para limitar o impacto no rendemento da ordenación de profundidade "
"de transparencia"
"Distancia en nodos na que se habilita a ordenación de profundidade da "
"translucidez.\n"
"Usa isto para limitar o impacto na rendibilidade da ordenación de "
"profundidade da translucidez.\n"
"Establece a 0 para deshabilitalo completamente."
#: src/settings_translation_file.cpp
msgid "Domain name of server, to be displayed in the serverlist."
@@ -3457,9 +3440,8 @@ msgid "Dungeon noise"
msgstr "Sonido de calabozos"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Effects"
msgstr "Efectos gráficos"
msgstr "Efectos"
#: src/settings_translation_file.cpp
msgid "Enable Automatic Exposure"
@@ -3570,11 +3552,8 @@ msgid "Enable random user input (only used for testing)."
msgstr "Activar a entrada de comandos aleatoria (só para tests)."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enable smooth lighting with simple ambient occlusion."
msgstr ""
"Activar a iluminación suave con oclusión de ambiente simple.\n"
"Desactivar para velocidade ou vistas diferentes."
msgstr "Habilitar iluminación suave cunha oclusión ambiental simple."
#: src/settings_translation_file.cpp
msgid "Enable split login/register"
@@ -3596,6 +3575,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable updates available indicator on content tab"
msgstr ""
"Habilitar o indicador de actualizacións dispoñibles na lapela de contido"
#: src/settings_translation_file.cpp
msgid ""
@@ -3644,11 +3624,12 @@ msgid "Enables animation of inventory items."
msgstr "Activa a animación de obxectos no inventario."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Enables caching of facedir rotated meshes.\n"
"This is only effective with shaders disabled."
msgstr "Activa o rexistro de mallas xiradas."
msgstr ""
"Habilita a caché de mallas rotadas por cara.\n"
"Isto só é efectivo cos sombreadores deshabilitados."
#: src/settings_translation_file.cpp
msgid "Enables debug and error-checking in the OpenGL driver."
@@ -3656,9 +3637,8 @@ msgstr ""
"Habilita a depuración e a verificación de erros no controlador de OpenGL."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enables smooth scrolling."
msgstr "Habilitar o postprocesado"
msgstr "Habilita o desprazamento suave."
#: src/settings_translation_file.cpp
msgid "Enables the post processing pipeline."
@@ -3671,6 +3651,11 @@ msgid ""
"\"auto\" means that the touchscreen controls will be enabled and disabled\n"
"automatically depending on the last used input method."
msgstr ""
"Habilita os controis de pantalla táctil, permitindo que xogues ao xogo cunha "
"pantalla táctil.\n"
"\"auto\" significa que os controis de pantalla táctil serán habilitados e "
"deshabilitados\n"
"automaticamente, dependendo do último método de entrada utilizado."
#: src/settings_translation_file.cpp
msgid ""
@@ -4254,6 +4239,9 @@ msgid ""
"ContentDB to\n"
"check for package updates when opening the mainmenu."
msgstr ""
"Se está habilitado e ten instalados paquetes de ContentDB, Luanti pode "
"contactar con ContentDB para\n"
"comprobar se hai actualizacións de paquetes ao abrir o menú principal."
#: src/settings_translation_file.cpp
msgid ""
@@ -4391,13 +4379,12 @@ msgid "Instrument chat commands on registration."
msgstr "Instrumento de comandos do chat no rexistro."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Instrument global callback functions on registration.\n"
"(anything you pass to a core.register_*() function)"
msgstr ""
"Instrumentación das funcións de chamadas de retorno globais no rexistro.\n"
"(todo o que pasee a unha función minetest.register_*())"
"Instrumentar funcións de devolución de chamada globais ao rexistrarse.\n"
"(calquera cousa que pases a unha función core.register_*())"
#: src/settings_translation_file.cpp
msgid ""
@@ -4603,21 +4590,18 @@ msgid "Leaves style"
msgstr "Apariencia das follas"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Leaves style:\n"
"- Fancy: all faces visible\n"
"- Simple: only outer faces\n"
"- Opaque: disable transparency"
msgstr ""
"Apariencia das follas:\n"
"- Detalladas: todas as caras son visibles\n"
"- Simples: só vense as caras externas, cando se utilizan special_tiles "
"definidos\n"
"- Opacas: desactiva a transparencia"
"Estilo das follas:\n"
"- Elegante: todas as caras son visibles\n"
"- Simple: só as caras exteriores\n"
"- Opaco: desactiva a transparencia"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Length of a server tick (the interval at which everything is generally "
"updated),\n"
@@ -4626,10 +4610,13 @@ msgid ""
"This is a lower bound, i.e. server steps may not be shorter than this, but\n"
"they are often longer."
msgstr ""
"Duración dun tick de servidor (o intervalo no que xeralmente se actualiza "
"todo),\n"
"indicado en segundos.\n"
"Non se aplica ás sesións aloxadas desde o menú do cliente."
"Lonxitude dun tick do servidor (o intervalo no que todo se actualiza en "
"xeral),\n"
"expresada en segundos.\n"
"Non se aplica a sesións hospedadas desde o menú do cliente.\n"
"Este é un límite inferior, é dicir, os pasos do servidor non poden ser máis "
"curtos que isto, pero\n"
"a miúdo son máis longos."
#: src/settings_translation_file.cpp
msgid "Length of liquid waves."
@@ -4749,9 +4736,8 @@ msgid "Liquid queue purge time"
msgstr "Tempo para eliminar filas de líquidos"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Liquid reflections"
msgstr "Fluidez dos líquidos"
msgstr "Reflexións de líquidos"
#: src/settings_translation_file.cpp
msgid "Liquid sinking"
@@ -5093,6 +5079,10 @@ msgid ""
"You generally don't need to change this, however busy servers may benefit "
"from a higher number."
msgstr ""
"Número máximo de paquetes enviados por cada paso de envío no código de redes "
"de baixo nivel.\n"
"Xeralmente, non é necesario cambiar isto; con todo, os servidores moi "
"ocupados poden beneficiarse dun número máis alto."
#: src/settings_translation_file.cpp
msgid "Maximum number of players that can be connected simultaneously."
@@ -5327,7 +5317,7 @@ msgstr "Resaltado dos nós"
#: src/settings_translation_file.cpp
msgid "Node specular"
msgstr ""
msgstr "Nodo especular"
#: src/settings_translation_file.cpp
msgid "NodeTimer interval"
@@ -5381,14 +5371,13 @@ msgid "Number of messages a player may send per 10 seconds."
msgstr "Cantidade de mensaxes que un xogador pode enviar por cada 10 segundos."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Number of threads to use for mesh generation.\n"
"Value of 0 (default) will let Luanti autodetect the number of available "
"threads."
msgstr ""
"Número de fíos a usar para xeración de mallas.\n"
"O valor 0 (predeterminado) permitirá a Minetest detectar automaticamente o "
"Número de fíos a utilizar para a xeración de mallas.\n"
"Un valor de 0 (por defecto) permitirá que Luanti detecte automaticamente o "
"número de fíos dispoñibles."
#: src/settings_translation_file.cpp
@@ -5421,18 +5410,16 @@ msgid "OpenGL debug"
msgstr "Depuración de OpenGL"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Optimize GUI for touchscreens"
msgstr "Usar retículo para pantalla táctil"
msgstr "Optimizar a GUI para pantallas táctiles"
#: src/settings_translation_file.cpp
msgid "Optional override for chat weblink color."
msgstr "Substitución opcional da cor da ligazón web do chat."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Other Effects"
msgstr "Efectos gráficos"
msgstr "Outros efectos"
#: src/settings_translation_file.cpp
msgid ""
@@ -5548,17 +5535,16 @@ msgid "Prometheus listener address"
msgstr "Enderezo do Prometheus"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Prometheus listener address.\n"
"If Luanti is compiled with ENABLE_PROMETHEUS option enabled,\n"
"enable metrics listener for Prometheus on that address.\n"
"Metrics can be fetched on http://127.0.0.1:30000/metrics"
msgstr ""
"Enderezo do Prometheus.\n"
"Se Minetest se compila coa opción ENABLE_PROMETHEUS activada,\n"
"habilita a obteción de métricas para Prometheus nese enderezo.\n"
"As métricas pódense obter en http://127.0.0.1:30000/metrics"
"Enderezo do escoitador de Prometheus.\n"
"Se Luanti está compilado coa opción ENABLE_PROMETHEUS habilitada,\n"
"habilita a escoita de métricas para Prometheus nese enderezo.\n"
"As métricas poden ser obtidas en http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
@@ -5585,6 +5571,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Radius to use when the block bounds HUD feature is set to near blocks."
msgstr ""
"Raio a utilizar cando a función de HUD de límites de bloques está "
"configurada para bloques próximos."
#: src/settings_translation_file.cpp
msgid "Raises terrain to make valleys around the rivers."
@@ -5906,11 +5894,12 @@ msgid ""
"Send names of online players to the serverlist. If disabled only the player "
"count is revealed."
msgstr ""
"Enviar os nomes dos xogadores en liña á lista de servidores. Se está "
"deshabilitado, só se revela o número de xogadores."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Send player names to the server list"
msgstr "Anuncar en esta lista de servidores."
msgstr "Enviar os nomes dos xogadores á lista de servidores"
#: src/settings_translation_file.cpp
msgid "Server"
@@ -5938,6 +5927,9 @@ msgid ""
"Flags are positive. Uncheck the flag to disable corresponding anticheat "
"module."
msgstr ""
"Configuración antitrampas do servidor.\n"
"As bandeiras son positivas. Desmarque a bandeira para deshabilitar o módulo "
"antitrampas correspondente."
#: src/settings_translation_file.cpp
msgid "Server description"
@@ -6096,6 +6088,8 @@ msgid ""
"Shaders are a fundamental part of rendering and enable advanced visual "
"effects."
msgstr ""
"Os sombreadores son unha parte fundamental do renderizado e permiten efectos "
"visuais avanzados."
#: src/settings_translation_file.cpp
msgid "Shadow filter quality"
@@ -6166,7 +6160,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Simulate translucency when looking at foliage in the sunlight."
msgstr ""
msgstr "Simular a translucidez ao mirar a follaxe á luz do sol."
#: src/settings_translation_file.cpp
msgid ""
@@ -6220,9 +6214,8 @@ msgid "Smooth lighting"
msgstr "Iluminación suave"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Smooth scrolling"
msgstr "Iluminación suave"
msgstr "Desprazamento suave"
#: src/settings_translation_file.cpp
msgid ""
@@ -6249,9 +6242,8 @@ msgid "Sneaking speed, in nodes per second."
msgstr "Velocidade ao se agachar, en nós por segundo."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Soft clouds"
msgstr "Nubes 3D"
msgstr "Nubes suaves"
#: src/settings_translation_file.cpp
msgid "Soft shadow radius"
@@ -6492,7 +6484,6 @@ msgstr ""
"O camiño do ficheiro relativa ao camiño do mundo onde se gardarán os perfís."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The gesture for punching players/entities.\n"
"This can be overridden by games and mods.\n"
@@ -6504,14 +6495,14 @@ msgid ""
"Known from the classic Luanti mobile controls.\n"
"Combat is more or less impossible."
msgstr ""
"O xesto para golpear xogadores/entidades.\n"
"Isto pode ser anulado por xogos e modificacións.\n"
"A xesto para golpear xogadores/entidades.\n"
"Isto pode ser substituído por xogos e mods.\n"
"\n"
"* toque_curto\n"
"Fácil de usar e coñecido doutros xogos que non deben ser nomeados.\n"
"* toque curto\n"
"Fácil de usar e ben coñecido doutros xogos que non se deben nomear.\n"
"\n"
"* toque_longo\n"
"Coñecido polos controis móbiles clásicos de Minetest.\n"
"* toque longo\n"
"Coñecido polos controis móbiles clásicos en Luanti.\n"
"O combate é máis ou menos imposible."
#: src/settings_translation_file.cpp
@@ -6577,16 +6568,14 @@ msgstr ""
"Isto debería configurarse xunto con active_object_send_range_blocks."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The rendering back-end.\n"
"Note: A restart is required after changing this!\n"
"OpenGL is the default for desktop, and OGLES2 for Android."
msgstr ""
"O backend de renderizado.\n"
"Nota: É preciso reiniciar despois de cambiar isto!\n"
"OpenGL é o predeterminado para escritorio, e OGLES2 para Android.\n"
"Os sombreadores son compatibles con todo menos con OGLES1."
"Nota: É necesario reiniciar despois de cambiar isto!\n"
"OpenGL é o predeterminado para escritorio, e OGLES2 para Android"
#: src/settings_translation_file.cpp
msgid ""
@@ -6714,6 +6703,8 @@ msgid ""
"Tolerance of movement cheat detector.\n"
"Increase the value if players experience stuttery movement."
msgstr ""
"Tolerancia do detector de trampas de movemento.\n"
"Aumenta o valor se os xogadores experimentan movementos entrecortados."
#: src/settings_translation_file.cpp
msgid "Tooltip delay"
@@ -6724,9 +6715,8 @@ msgid "Touchscreen"
msgstr "Pantalla táctil"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Touchscreen controls"
msgstr "Límite da pantalla táctil"
msgstr "Controis de pantalla táctil"
#: src/settings_translation_file.cpp
msgid "Touchscreen sensitivity"
@@ -6741,9 +6731,8 @@ msgid "Tradeoffs for performance"
msgstr "Compensacións para o rendemento"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Translucent foliage"
msgstr "Líquidos translúcidos"
msgstr "Follaxe translúcida"
#: src/settings_translation_file.cpp
msgid "Translucent liquids"
@@ -6793,15 +6782,14 @@ msgstr ""
"Esta configuración só debe ser cambiada se tes problemas de rendemento."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"URL to JSON file which provides information about the newest Luanti "
"release.\n"
"If this is empty the engine will never check for updates."
msgstr ""
"Enderezo para ficheiro JSON que proporciona información sobre a versión máis "
"recente de Minetest\n"
"Se está baleiro, o motor nunca buscará actualizacións."
"URL do arquivo JSON que proporciona información sobre a versión máis nova de "
"Luanti.\n"
"Se isto está baleiro, o motor nunca comprobará se hai actualizacións."
#: src/settings_translation_file.cpp
msgid "URL to the server list displayed in the Multiplayer Tab."
@@ -6897,7 +6885,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Use smooth cloud shading."
msgstr ""
msgstr "Usar sombreado suave das nubes."
#: src/settings_translation_file.cpp
msgid ""
@@ -7105,13 +7093,16 @@ msgstr "Cor de ligazóns web"
#: src/settings_translation_file.cpp
msgid "When enabled, liquid reflections are simulated."
msgstr ""
msgstr "Unha vez habilitado, simúlase a reflexión de líquidos."
#: src/settings_translation_file.cpp
msgid ""
"When enabled, the GUI is optimized to be more usable on touchscreens.\n"
"Whether this is enabled by default depends on your hardware form-factor."
msgstr ""
"Unha vez habilitado, a GUI está optimizada para ser máis sinxelo de usar en "
"pantallas táctiles.\n"
"Se isto está habilitado por defecto depende do formato do seu hardware."
#: src/settings_translation_file.cpp
msgid ""
@@ -7233,15 +7224,14 @@ msgid "Window maximized"
msgstr "Xanela maximizada"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Windows systems only: Start Luanti with the command line window in the "
"background.\n"
"Contains the same information as the file debug.txt (default name)."
msgstr ""
"Só sistemas Windows: Inicia Minetest coa xanela da liña de comandos en "
"Só Sistemas Windows: Iniciar Luanti coa xanela da liña de comandos en "
"segundo plano.\n"
"Contén a mesma información que o ficheiro debug.txt (nome por defecto)."
"Contén a mesma información co arquivo debug.txt (nome por defecto)."
#: src/settings_translation_file.cpp
msgid ""

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Russian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-28 19:57+0100\n"
"PO-Revision-Date: 2024-10-19 17:16+0000\n"
"PO-Revision-Date: 2024-11-01 17:58+0000\n"
"Last-Translator: BlackImpostor <SkyBuilderOFFICAL@yandex.ru>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/minetest/"
"minetest/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 5.8-rc\n"
"X-Generator: Weblate 5.8.2-dev\n"
#: builtin/client/chatcommands.lua
msgid "Clear the out chat queue"
@@ -160,7 +160,7 @@ msgstr "$1 скачивается…"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "All"
msgstr ""
msgstr "Всё"
#: builtin/mainmenu/content/dlg_contentdb.lua
#: builtin/mainmenu/content/dlg_package.lua
@@ -169,9 +169,8 @@ msgid "Back"
msgstr "Назад"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "ContentDB is not available when Luanti was compiled without cURL"
msgstr "ContentDB недоступен, когда Minetest скомпилирован без cURL"
msgstr "ContentDB недоступен, когда Luanti скомпилирован без cURL"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Downloading..."
@@ -179,7 +178,7 @@ msgstr "Загрузка…"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Featured"
msgstr ""
msgstr "Рекомендуемое"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Games"
@@ -215,9 +214,8 @@ msgid "Queued"
msgstr "В очереди"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "Texture Packs"
msgstr "Наборы текстур"
msgstr "Наборы Текстур"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "The package $1 was not found."
@@ -269,9 +267,8 @@ msgid "Dependencies:"
msgstr "Зависимости:"
#: builtin/mainmenu/content/dlg_install.lua
#, fuzzy
msgid "Error getting dependencies for package $1"
msgstr "Ошибка при получении зависимостей для дополнения"
msgstr "Ошибка при получении зависимостей для дополнения $1"
#: builtin/mainmenu/content/dlg_install.lua
msgid "Install"
@@ -306,44 +303,40 @@ msgid "Overwrite"
msgstr "Перезаписать"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "ContentDB page"
msgstr "Ссылка ContentDB"
msgstr "Страница ContentDB"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Description"
msgstr "Описание сервера"
msgstr "Описание"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Donate"
msgstr ""
msgstr "Пожертвовать"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Forum Topic"
msgstr ""
msgstr "Страница на Форуме"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Information"
msgstr "Информация:"
msgstr "Информация"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Install [$1]"
msgstr "Установить $1"
msgstr "Установить [$1]"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Issue Tracker"
msgstr ""
msgstr "Треккер Проблем"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Source"
msgstr ""
msgstr "Источник"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Translate"
msgstr ""
msgstr "Перевести"
#: builtin/mainmenu/content/dlg_package.lua builtin/mainmenu/tab_content.lua
msgid "Uninstall"
@@ -354,13 +347,12 @@ msgid "Update"
msgstr "Обновить"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Website"
msgstr "Посетить вебсайт"
msgstr "Веб-сайт"
#: builtin/mainmenu/content/dlg_package.lua
msgid "by $1 — $2 downloads — +$3 / $4 / -$5"
msgstr ""
msgstr "сделано $1 — $2 загрузок — +$3 / $4 / -$5"
#: builtin/mainmenu/content/pkgmgr.lua
msgid "$1 (Enabled)"
@@ -722,14 +714,13 @@ msgid "Dismiss"
msgstr "Пропустить"
#: builtin/mainmenu/dlg_reinstall_mtg.lua
#, fuzzy
msgid ""
"For a long time, Luanti shipped with a default game called \"Minetest "
"Game\". Since version 5.8.0, Luanti ships without a default game."
msgstr ""
"Долгое время движок Minetest поставлялся вместе с игрой по умолчанию под "
"названием «Minetest Game». Начиная с Minetest 5.8.0, Minetest поставляется "
"без игры по умолчанию."
"Долгое время движок Luanti поставлялся вместе с игрой по умолчанию под "
"названием «Minetest Game». Начиная с версии 5.8.0, Luanti поставляется без "
"игры по умолчанию."
#: builtin/mainmenu/dlg_reinstall_mtg.lua
msgid ""
@@ -890,19 +881,16 @@ msgid "eased"
msgstr "cглаженный"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable automatic exposure as well)"
msgstr "(В игре также необходимо будет включить тени)"
msgstr "(В игре также необходимо будет включить автоматическую экспозицию)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable bloom as well)"
msgstr "(В игре также необходимо будет включить тени)"
msgstr "(В игре также нужно будет включить функцию размытия)"
#: builtin/mainmenu/settings/dlg_settings.lua
#, fuzzy
msgid "(The game will need to enable volumetric lighting as well)"
msgstr "(В игре также необходимо будет включить тени)"
msgstr "(В игре также необходимо будет включить объемное освещение)"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "(Use system language)"
@@ -914,7 +902,7 @@ msgstr "Доступность"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Auto"
msgstr ""
msgstr "Авто"
#: builtin/mainmenu/settings/dlg_settings.lua src/gui/guiKeyChangeMenu.cpp
#: src/gui/touchcontrols.cpp src/settings_translation_file.cpp
@@ -945,7 +933,7 @@ msgstr "Основной"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Movement"
msgstr "Движение"
msgstr "Перемещение"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Reset setting to default"
@@ -980,18 +968,16 @@ msgid "Content: Mods"
msgstr "Контент: Дополнения"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Enable"
msgstr "Включено"
msgstr "Включить"
#: builtin/mainmenu/settings/shader_warning_component.lua
#, fuzzy
msgid "Shaders are disabled."
msgstr "Обновление камеры выключено"
msgstr "Шейдеры выключены."
#: builtin/mainmenu/settings/shader_warning_component.lua
msgid "This is not a recommended configuration."
msgstr ""
msgstr "Это конфигурация не рекомендуется."
#: builtin/mainmenu/settings/shadows_component.lua
msgid "(The game will need to enable shadows as well)"
@@ -1028,7 +1014,7 @@ msgstr "Очень низкие"
#: builtin/mainmenu/tab_about.lua
msgid "About"
msgstr "Узнать подробнее"
msgstr "Подробней"
#: builtin/mainmenu/tab_about.lua
msgid "Active Contributors"
@@ -1151,17 +1137,15 @@ msgid "Install games from ContentDB"
msgstr "Установить игры с ContentDB"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid "Luanti doesn't come with a game by default."
msgstr "Minetest Game больше не стоит по умолчанию."
msgstr "Luanti больше не стоит по умолчанию."
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid ""
"Luanti is a game-creation platform that allows you to play many different "
"games."
msgstr ""
"Minetest - это платформа для создания модификаций, которая позволяет вам "
"Luanti - это платформа для создания модификаций, которая позволяет вам "
"играть во множество различных игр и устанавливать дополнения."
#: builtin/mainmenu/tab_local.lua
@@ -1219,7 +1203,7 @@ msgstr "Избранное"
#: builtin/mainmenu/tab_online.lua
msgid "Incompatible Servers"
msgstr "Несовместимые серверы"
msgstr "Несовместимые Сервера"
#: builtin/mainmenu/tab_online.lua
msgid "Join Game"
@@ -2261,37 +2245,36 @@ msgid "Sound Volume: %d%%"
msgstr "Громкость звука: %d%%"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Joystick"
msgstr "ID контроллера"
msgstr "Джойстик"
#: src/gui/touchcontrols.cpp
msgid "Overflow menu"
msgstr ""
msgstr "Переполненное меню"
#: src/gui/touchcontrols.cpp
#, fuzzy
msgid "Toggle debug"
msgstr "Вкл/откл туман"
msgstr "Переключать отладку"
#: src/network/clientpackethandler.cpp
msgid ""
"Another client is connected with this name. If your client closed "
"unexpectedly, try again in a minute."
msgstr ""
"Другой клиент уже подключён с таким именем. Если ваш клиент неожиданно "
"закрылся, повторите попытку через минуту."
#: src/network/clientpackethandler.cpp
msgid "Empty passwords are disallowed. Set a password and try again."
msgstr ""
msgstr "Пустые пароли не принимаются. Установите пароль и повторите попытку."
#: src/network/clientpackethandler.cpp
msgid "Internal server error"
msgstr ""
msgstr "Внутренняя ошибка сервера"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Invalid password"
msgstr "Старый пароль"
msgstr "Неверный пароль"
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -2314,46 +2297,48 @@ msgstr "Имя занято. Пожалуйста, выберите другое
#: src/network/clientpackethandler.cpp
msgid "Player name contains disallowed characters"
msgstr ""
msgstr "Имя игрока содержит запрещенные символы"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Player name not allowed"
msgstr "Имя игрока слишком длинное."
msgstr "Имя игрока запрещено"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Server shutting down"
msgstr "Завершение…"
msgstr "Сервер завершает работу"
#: src/network/clientpackethandler.cpp
msgid ""
"The server has experienced an internal error. You will now be disconnected."
msgstr ""
msgstr "У сервера произошла внутренняя ошибка. Вы будете отключены от сети."
#: src/network/clientpackethandler.cpp
msgid "The server is running in singleplayer mode. You cannot connect."
msgstr ""
msgstr "Сервер работает в одиночном режиме. Вам не удается подключиться."
#: src/network/clientpackethandler.cpp
msgid "Too many users"
msgstr ""
msgstr "Слишком много пользователей"
#: src/network/clientpackethandler.cpp
msgid "Unknown disconnect reason."
msgstr ""
msgstr "Неизвестная причина отключения."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client sent something the server didn't expect. Try reconnecting or "
"updating your client."
msgstr ""
"Ваш клиент отправил то, чего сервер не ожидал. Попробуйте повторно "
"подключиться или обновить свой клиент."
#: src/network/clientpackethandler.cpp
msgid ""
"Your client's version is not supported.\n"
"Please contact the server administrator."
msgstr ""
"Версия вашего клиента не поддерживается.\n"
"Пожалуйста, свяжитесь с администратором сервера."
#: src/server.cpp
#, c-format
@@ -2647,11 +2632,11 @@ msgstr "Метод сглаживания"
#: src/settings_translation_file.cpp
msgid "Anticheat flags"
msgstr ""
msgstr "Флаги Анти-чита"
#: src/settings_translation_file.cpp
msgid "Anticheat movement tolerance"
msgstr ""
msgstr "Допуск движения Анти-чита"
#: src/settings_translation_file.cpp
msgid "Append item name"
@@ -2688,7 +2673,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Apply specular shading to nodes."
msgstr ""
msgstr "Применить зеркальное затенение к блокам."
#: src/settings_translation_file.cpp
msgid "Arm inertia"
@@ -2809,9 +2794,8 @@ msgid "Biome noise"
msgstr "Шум биомов"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Block bounds HUD radius"
msgstr "Границы мапблока"
msgstr "Радиус ограничения HUD блока"
#: src/settings_translation_file.cpp
msgid "Block cull optimize distance"
@@ -3028,7 +3012,6 @@ msgstr ""
"cpp]."
#: 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 "
@@ -3038,12 +3021,13 @@ msgid ""
"These flags are independent from Luanti 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/"
"Список разделенных запятыми флажков для скрытия в хранилище контента.\n"
"\"nonfree\" может использоваться для скрытия пакетов,\n"
"которые не подпадают под категорию Free Software Foundation,\n"
"как это определено Фондом свободного программного обеспечения.\n"
"Вы также можете указать рейтинг контента. Эти флаги не зависят от версий "
"Luanti,\n"
"поэтому смотрите полный список по адресу https://content.minetest.net/help/"
"content_flags/"
#: src/settings_translation_file.cpp
@@ -3249,7 +3233,6 @@ msgstr ""
"но также использует больше ресурсов."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Define the oldest clients allowed to connect.\n"
"Older clients are compatible in the sense that they will not crash when "
@@ -3263,14 +3246,12 @@ msgid ""
msgstr ""
"Определите, к каким самым старым клиентам разрешено подключаться.\n"
"Старые клиенты совместимы в том смысле, что они не будут выходить из строя "
"при подключении\n"
"к новым серверам, но они могут поддерживать не все новые функции, которые вы "
"ожидаете.\n"
"при подключении к новым серверам,\n"
"но они могут поддерживать не все новые функции, которые вы ожидаете.\n"
"Это позволяет осуществлять более детальный контроль, чем "
"strict_protocol_version_checking.\n"
"Minetest по-прежнему применяет свой собственный внутренний минимум, и "
"включение\n"
"strict_protocol_version_checking эффективно отменит это."
"Luanti по-прежнему применяет свой собственный внутренний минимум,\n"
"и включение strict_protocol_version_checking эффективно отменит это."
#: src/settings_translation_file.cpp
msgid "Defines areas where trees have apples."
@@ -3406,14 +3387,16 @@ msgid "Display Density Scaling Factor"
msgstr "Коэффициент масштабирования плотности отображения"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Distance in nodes at which transparency depth sorting is enabled.\n"
"Use this to limit the performance impact of transparency depth sorting.\n"
"Set to 0 to disable it entirely."
msgstr ""
"Расстояние в нодах на котором включено разделение по глубине прозрачности\n"
"Используйте это, чтобы ограничить его влияние на производительность"
"Расстояние в блоках, на котором включена сортировка по глубине прозрачности."
"\n"
"Используйте это значение, чтобы ограничить влияние сортировки по глубине "
"прозрачности на производительность.\n"
"Задайте значение 0, чтобы полностью отключить ее."
#: src/settings_translation_file.cpp
msgid "Domain name of server, to be displayed in the serverlist."
@@ -3444,9 +3427,8 @@ msgid "Dungeon noise"
msgstr "Шум подземелий"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Effects"
msgstr "Графические эффекты"
msgstr "Эффекты"
#: src/settings_translation_file.cpp
msgid "Enable Automatic Exposure"
@@ -3553,11 +3535,8 @@ msgid "Enable random user input (only used for testing)."
msgstr "Включить случайный ввод пользователя (только для тестов)."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enable smooth lighting with simple ambient occlusion."
msgstr ""
"Включить мягкое освещение с простым глобальным затенением.\n"
"Отключите для более высокой скорости или другого вида."
msgstr "Включить плавное освещение с помощью простой внешней окклюзии."
#: src/settings_translation_file.cpp
msgid "Enable split login/register"
@@ -3579,7 +3558,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable updates available indicator on content tab"
msgstr ""
msgstr "Включить индикатор доступности обновлений на вкладке «Контент»"
#: src/settings_translation_file.cpp
msgid ""
@@ -3629,20 +3608,20 @@ msgid "Enables animation of inventory items."
msgstr "Включить анимацию предметов в инвентаре."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Enables caching of facedir rotated meshes.\n"
"This is only effective with shaders disabled."
msgstr "Включает кэширование повёрнутых мешей."
msgstr ""
"Включает кэширование повернутых сеток facedir.\n"
"Это работает только при отключенных шейдерах."
#: src/settings_translation_file.cpp
msgid "Enables debug and error-checking in the OpenGL driver."
msgstr "Включает отладку и проверку ошибок в драйвере OpenGL."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enables smooth scrolling."
msgstr "Включить Постобработку"
msgstr "Обеспечивает плавную прокрутку."
#: src/settings_translation_file.cpp
msgid "Enables the post processing pipeline."
@@ -3655,6 +3634,11 @@ msgid ""
"\"auto\" means that the touchscreen controls will be enabled and disabled\n"
"automatically depending on the last used input method."
msgstr ""
"Включает сенсорные элементы управления, позволяя вам играть в игру с помощью "
"сенсорного экрана.\n"
"\"auto\" означает, что сенсорные элементы управления будут включаться и "
"отключаться\n"
"автоматически в зависимости от последнего использованного метода ввода."
#: src/settings_translation_file.cpp
msgid ""
@@ -4225,6 +4209,9 @@ msgid ""
"ContentDB to\n"
"check for package updates when opening the mainmenu."
msgstr ""
"Если включено и у вас установлены пакеты ContentDB, Luanti может связаться с "
"ContentDB,\n"
"чтобы проверить наличие обновлений пакетов при открытии главного меню."
#: src/settings_translation_file.cpp
msgid ""
@@ -4356,13 +4343,12 @@ msgid "Instrument chat commands on registration."
msgstr "Замерять команды чата при регистрации."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Instrument global callback functions on registration.\n"
"(anything you pass to a core.register_*() function)"
msgstr ""
"Замерять глобальные обратные вызовы\n"
"(всё, что вы передаёте в функции вида minetest.register_*())"
"Функции глобального обратного вызова инструмента при регистрации.\n"
"(все, что вы передаете в функцию core.register_*())"
#: src/settings_translation_file.cpp
msgid ""
@@ -4565,7 +4551,6 @@ msgid "Leaves style"
msgstr "Стиль листвы"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Leaves style:\n"
"- Fancy: all faces visible\n"
@@ -4574,11 +4559,10 @@ msgid ""
msgstr ""
"Стили листвы:\n"
"- Fancy: видны все стороны\n"
"- Simple: видны внешние стороны, если используется special_tiles\n"
"- Opaque: прозачность отключена"
"- Simple: видны внешние стороны\n"
"- Opaque: отключённая прозрачность"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Length of a server tick (the interval at which everything is generally "
"updated),\n"
@@ -4587,9 +4571,12 @@ msgid ""
"This is a lower bound, i.e. server steps may not be shorter than this, but\n"
"they are often longer."
msgstr ""
"Длительность тика сервера (интервал, с которым обычно все обновляется),\n"
"Длительность тика сервера (интервал, с которым обычно обновляется вся "
"информация),\n"
"указанная в секундах.\n"
"Не применяется к сеансам, размещенным из клиентского меню."
"Не применяется к сеансам, размещаемым из клиентского меню.\n"
"Это нижняя граница, т.е. шаги сервера могут быть не короче этого значения,\n"
"но часто они длиннее."
#: src/settings_translation_file.cpp
msgid "Length of liquid waves."
@@ -4704,9 +4691,8 @@ msgid "Liquid queue purge time"
msgstr "Время очистки очереди жидкостей"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Liquid reflections"
msgstr "Текучесть жидкости"
msgstr "Отражения жидкости"
#: src/settings_translation_file.cpp
msgid "Liquid sinking"
@@ -5043,6 +5029,10 @@ msgid ""
"You generally don't need to change this, however busy servers may benefit "
"from a higher number."
msgstr ""
"Максимальное количество пакетов, отправляемых на шаг отправки в коде "
"низкоуровневой сети.\n"
"Обычно это не требуется изменять, однако для загруженных серверов может быть "
"полезно большее количество."
#: src/settings_translation_file.cpp
msgid "Maximum number of players that can be connected simultaneously."
@@ -5272,7 +5262,7 @@ msgstr "Подсветка нод"
#: src/settings_translation_file.cpp
msgid "Node specular"
msgstr ""
msgstr "Зеркальный блок"
#: src/settings_translation_file.cpp
msgid "NodeTimer interval"
@@ -5328,14 +5318,13 @@ msgstr ""
"Количество сообщений, которые игрок может отправить в течении 10 секунд."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Number of threads to use for mesh generation.\n"
"Value of 0 (default) will let Luanti autodetect the number of available "
"threads."
msgstr ""
"Количество потоков, используемых для генерации мешей.\n"
"Значение 0 (по умолчанию) позволит Minetest автоматически определять "
"Значение 0 (по умолчанию) позволит Luanti автоматически определять "
"количество доступных потоков."
#: src/settings_translation_file.cpp
@@ -5365,18 +5354,16 @@ msgid "OpenGL debug"
msgstr "Отладка OpenGL"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Optimize GUI for touchscreens"
msgstr "Использовать перекрестие для сенсорного экрана"
msgstr "Оптимизирует графический интерфейс для сенсорных экранов"
#: src/settings_translation_file.cpp
msgid "Optional override for chat weblink color."
msgstr "Опциональное переопределение цвета ссылки в чате."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Other Effects"
msgstr "Графические эффекты"
msgstr "Другие Эффекты"
#: src/settings_translation_file.cpp
msgid ""
@@ -5492,7 +5479,6 @@ msgid "Prometheus listener address"
msgstr "Адрес прослушивания Prometheus"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Prometheus listener address.\n"
"If Luanti is compiled with ENABLE_PROMETHEUS option enabled,\n"
@@ -5500,7 +5486,7 @@ msgid ""
"Metrics can be fetched on http://127.0.0.1:30000/metrics"
msgstr ""
"Адрес прослушивания Prometheus.\n"
"Если Minetest скомпилирован с опцией ENABLE_PROMETHEUS,\n"
"Если Luanti скомпилирован с опцией ENABLE_PROMETHEUS,\n"
"включить прослушивание метрик для Prometheus по этому адресу.\n"
"Метрики можно получить на http://127.0.0.1:30000/metrics"
@@ -5528,6 +5514,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Radius to use when the block bounds HUD feature is set to near blocks."
msgstr ""
"Радиус, используемый, когда функция отображения границ блоков установлена на "
"ближние блоки."
#: src/settings_translation_file.cpp
msgid "Raises terrain to make valleys around the rivers."
@@ -5851,11 +5839,12 @@ msgid ""
"Send names of online players to the serverlist. If disabled only the player "
"count is revealed."
msgstr ""
"Отправлять имена онлайн-игроков в список серверов. Если этот параметр "
"отключен, отображается только количество игроков."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Send player names to the server list"
msgstr "Анонсировать в этот список серверов."
msgstr "Отправлять имена игроков на список серверов"
#: src/settings_translation_file.cpp
msgid "Server"
@@ -5883,6 +5872,9 @@ msgid ""
"Flags are positive. Uncheck the flag to disable corresponding anticheat "
"module."
msgstr ""
"Конфигурация Ати-чита сервера.\n"
"Флажки являются положительными. Снимите флажок, чтобы отключить "
"соответствующий модуль анти-чита."
#: src/settings_translation_file.cpp
msgid "Server description"
@@ -6037,6 +6029,8 @@ msgid ""
"Shaders are a fundamental part of rendering and enable advanced visual "
"effects."
msgstr ""
"Шейдеры являются фундаментальной частью рендеринга и обеспечивают "
"расширенные визуальные эффекты."
#: src/settings_translation_file.cpp
msgid "Shadow filter quality"
@@ -6107,7 +6101,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Simulate translucency when looking at foliage in the sunlight."
msgstr ""
msgstr "Имитировать прозрачность при взгляде на листву в солнечном свете."
#: src/settings_translation_file.cpp
msgid ""
@@ -6161,9 +6155,8 @@ msgid "Smooth lighting"
msgstr "Мягкое освещение"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Smooth scrolling"
msgstr "Мягкое освещение"
msgstr "Плавная прокрутка"
#: src/settings_translation_file.cpp
msgid ""
@@ -6191,9 +6184,8 @@ msgid "Sneaking speed, in nodes per second."
msgstr "Скорость ходьбы украдкой, в нодах в секунду."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Soft clouds"
msgstr "Объёмные облака"
msgstr "Мягкие облака"
#: src/settings_translation_file.cpp
msgid "Soft shadow radius"
@@ -6431,7 +6423,6 @@ msgstr ""
"Путь к файлу, куда будут сохранены профили, относительно пути к вашему миру."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The gesture for punching players/entities.\n"
"This can be overridden by games and mods.\n"
@@ -6451,7 +6442,7 @@ msgstr ""
"указываются.\n"
"\n"
"* длинный удар\n"
"Известен по классическому мобильному элементу управления Minetest.\n"
"Известен по классическому мобильному элементу управления Luanti.\n"
"Сражение более или менее невозможно."
#: src/settings_translation_file.cpp
@@ -6516,7 +6507,6 @@ msgstr ""
"Это должно быть настроено вместе с active_object_send_range_blocks."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The rendering back-end.\n"
"Note: A restart is required after changing this!\n"
@@ -6525,8 +6515,7 @@ msgstr ""
"Серверная часть рендеринга.\n"
"Примечание: После изменения этого параметра требуется перезагрузка!\n"
"По умолчанию для настольных компьютеров используется OpenGL, а для Android - "
"OGLES2.\n"
"Шейдеры поддерживаются всеми, кроме OGLES1."
"OGLES2."
#: src/settings_translation_file.cpp
msgid ""
@@ -6651,6 +6640,8 @@ msgid ""
"Tolerance of movement cheat detector.\n"
"Increase the value if players experience stuttery movement."
msgstr ""
"Детектор читерства \"Устойчивость к движению\".\n"
"Увеличьте значение, если игроки начинают неуверенно двигаться."
#: src/settings_translation_file.cpp
msgid "Tooltip delay"
@@ -6661,9 +6652,8 @@ msgid "Touchscreen"
msgstr "Сенсорный экран"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Touchscreen controls"
msgstr "Порог сенсорного экрана"
msgstr "Сенсорное управление"
#: src/settings_translation_file.cpp
msgid "Touchscreen sensitivity"
@@ -6678,9 +6668,8 @@ msgid "Tradeoffs for performance"
msgstr "Компромиссы для производительности"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Translucent foliage"
msgstr "Полупрозрачные жидкости"
msgstr "Полупрозрачная листва"
#: src/settings_translation_file.cpp
msgid "Translucent liquids"
@@ -6731,14 +6720,13 @@ msgstr ""
"производительностью."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"URL to JSON file which provides information about the newest Luanti "
"release.\n"
"If this is empty the engine will never check for updates."
msgstr ""
"URL-адрес файла JSON, который предоставляет информацию о последней версии "
"Minetest\n"
"Luanti.\n"
"Если поле не заполнено, движок никогда не будет проверять наличие обновлений."
#: src/settings_translation_file.cpp
@@ -6838,7 +6826,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Use smooth cloud shading."
msgstr ""
msgstr "Используйте плавный шейдинг облаков."
#: src/settings_translation_file.cpp
msgid ""
@@ -7046,13 +7034,17 @@ msgstr "Цвет ссылки"
#: src/settings_translation_file.cpp
msgid "When enabled, liquid reflections are simulated."
msgstr ""
msgstr "При включении имитируются отражения от жидкости."
#: src/settings_translation_file.cpp
msgid ""
"When enabled, the GUI is optimized to be more usable on touchscreens.\n"
"Whether this is enabled by default depends on your hardware form-factor."
msgstr ""
"Если этот параметр будет включен, графический интерфейс оптимизирован для "
"более удобного использования на сенсорных экранах.\n"
"Будет ли он включен по умолчанию, зависит от форм-фактора вашего "
"оборудования."
#: src/settings_translation_file.cpp
msgid ""
@@ -7167,15 +7159,14 @@ msgid "Window maximized"
msgstr "Окно развёрнуто"
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Windows systems only: Start Luanti 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 (имя файла по умолчанию)."
"Только для систем Windows: Запустите Luanti с помощью окна командной строки "
"в фоновом режиме.\n"
"Содержит ту же информацию, что и файл debug.txt (имя по умолчанию)."
#: src/settings_translation_file.cpp
msgid ""

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: Ukrainian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-28 19:57+0100\n"
"PO-Revision-Date: 2024-08-04 22:09+0000\n"
"PO-Revision-Date: 2024-11-04 01:00+0000\n"
"Last-Translator: Yof <Yof@users.noreply.hosted.weblate.org>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/minetest/"
"minetest/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 5.7-dev\n"
"X-Generator: Weblate 5.8.2\n"
#: builtin/client/chatcommands.lua
msgid "Clear the out chat queue"
@@ -160,7 +160,7 @@ msgstr "$1 завантажується..."
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "All"
msgstr ""
msgstr "Все"
#: builtin/mainmenu/content/dlg_contentdb.lua
#: builtin/mainmenu/content/dlg_package.lua
@@ -169,9 +169,8 @@ msgid "Back"
msgstr "Назад"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "ContentDB is not available when Luanti was compiled without cURL"
msgstr "ContentDB недоступний, якщо Minetest було скомпільовано без cURL"
msgstr "ContentDB недоступний, якщо Luanti скомпільовано без cURL"
#: builtin/mainmenu/content/dlg_contentdb.lua
msgid "Downloading..."
@@ -215,7 +214,6 @@ msgid "Queued"
msgstr "У черзі"
#: builtin/mainmenu/content/dlg_contentdb.lua
#, fuzzy
msgid "Texture Packs"
msgstr "Набори текстур"
@@ -269,9 +267,8 @@ msgid "Dependencies:"
msgstr "Залежності:"
#: builtin/mainmenu/content/dlg_install.lua
#, fuzzy
msgid "Error getting dependencies for package $1"
msgstr "Помилка при отриманні залежностей для пакунку"
msgstr "Помилка при отриманні залежностей для пакунку $1"
#: builtin/mainmenu/content/dlg_install.lua
msgid "Install"
@@ -306,32 +303,28 @@ msgid "Overwrite"
msgstr "Перезаписати"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "ContentDB page"
msgstr "Адреса ContentDB"
msgstr "Сторінка ContentDB"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Description"
msgstr "Опис сервера"
msgstr "Опис"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Donate"
msgstr ""
msgstr "Пожертвувати"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Forum Topic"
msgstr ""
msgstr "Тема на форумі"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Information"
msgstr "Інформація:"
msgstr "Інформація"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Install [$1]"
msgstr "Встановити $1"
msgstr "Встановити [$1]"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Issue Tracker"
@@ -944,7 +937,7 @@ msgstr "Загальне"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Movement"
msgstr "Переміщення"
msgstr "Рух"
#: builtin/mainmenu/settings/dlg_settings.lua
msgid "Reset setting to default"

View File

@@ -3,16 +3,16 @@ msgstr ""
"Project-Id-Version: Chinese (Simplified) (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-28 19:57+0100\n"
"PO-Revision-Date: 2024-07-31 22:09+0000\n"
"PO-Revision-Date: 2024-11-01 22:24+0000\n"
"Last-Translator: y5nw <y5nw@users.noreply.hosted.weblate.org>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"minetest/minetest/zh_Hans/>\n"
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/"
"projects/minetest/minetest/zh_Hans/>\n"
"Language: zh_CN\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 5.7-dev\n"
"X-Generator: Weblate 5.8.2-dev\n"
#: builtin/client/chatcommands.lua
msgid "Clear the out chat queue"
@@ -267,9 +267,8 @@ msgid "Dependencies:"
msgstr "依赖项:"
#: builtin/mainmenu/content/dlg_install.lua
#, fuzzy
msgid "Error getting dependencies for package $1"
msgstr "无法获取这个包的依赖项"
msgstr "无法获取$1的依赖项"
#: builtin/mainmenu/content/dlg_install.lua
msgid "Install"
@@ -309,9 +308,8 @@ msgid "ContentDB page"
msgstr "ContentDB网址"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Description"
msgstr "服务器描述"
msgstr "描述"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Donate"
@@ -324,7 +322,7 @@ msgstr ""
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Information"
msgstr "信息:"
msgstr "信息"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
@@ -337,11 +335,11 @@ msgstr ""
#: builtin/mainmenu/content/dlg_package.lua
msgid "Source"
msgstr ""
msgstr "源代码"
#: builtin/mainmenu/content/dlg_package.lua
msgid "Translate"
msgstr ""
msgstr "翻译"
#: builtin/mainmenu/content/dlg_package.lua builtin/mainmenu/tab_content.lua
msgid "Uninstall"
@@ -352,9 +350,8 @@ msgid "Update"
msgstr "更新"
#: builtin/mainmenu/content/dlg_package.lua
#, fuzzy
msgid "Website"
msgstr "访问网站"
msgstr "网站"
#: builtin/mainmenu/content/dlg_package.lua
msgid "by $1 — $2 downloads — +$3 / $4 / -$5"
@@ -718,8 +715,8 @@ msgid ""
"For a long time, Luanti shipped with a default game called \"Minetest "
"Game\". Since version 5.8.0, Luanti ships without a default game."
msgstr ""
"一直以来,Minetest 游戏引擎默认已经自带了“Minetest Game”这个子游戏。但是从 "
"Minetest 5.8.0 版本起,Minetest 将不再自带任何子游戏。"
"一直以来,Luanti 游戏引擎默认自带了“Minetest Game”这个子游戏。但是从 5.8.0 "
"版本起,Luanti 不再自带任何子游戏。"
#: builtin/mainmenu/dlg_reinstall_mtg.lua
msgid ""
@@ -1140,7 +1137,7 @@ msgstr "从 ContentDB 安装游戏"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid "Luanti doesn't come with a game by default."
msgstr "Minetest Game 不再是默认自带的子游戏了"
msgstr "Luanti 不自带任何子游戏。"
#: builtin/mainmenu/tab_local.lua
msgid ""
@@ -1181,7 +1178,6 @@ msgid "Start Game"
msgstr "启动游戏"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
msgid "You need to install a game before you can create a world."
msgstr "您需要先安装一个子游戏才能创建新的世界。"
@@ -2207,12 +2203,10 @@ msgid "Open"
msgstr "打开"
#: src/gui/guiOpenURL.cpp
#, fuzzy
msgid "Open URL?"
msgstr "是否打开网页?"
#: src/gui/guiOpenURL.cpp
#, fuzzy
msgid "Unable to open URL"
msgstr "无法打开网页"
@@ -2296,18 +2290,19 @@ msgid "Name is taken. Please choose another name"
msgstr "名称已被占用。请选择其他名称"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Player name contains disallowed characters"
msgstr ""
msgstr "玩家名称包含不允许使用的字符"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Player name not allowed"
msgstr "玩家名称过长。"
msgstr "不允许使用该玩家名称"
#: src/network/clientpackethandler.cpp
#, fuzzy
msgid "Server shutting down"
msgstr "关闭中..."
msgstr "服务器正在关闭"
#: src/network/clientpackethandler.cpp
msgid ""
@@ -2337,6 +2332,8 @@ msgid ""
"Your client's version is not supported.\n"
"Please contact the server administrator."
msgstr ""
"服务器不支持这个客户端版本。\n"
"请联系管理员。"
#: src/server.cpp
#, c-format
@@ -5735,15 +5732,15 @@ msgstr ""
"18 = 4D \"Mandelbulb\" 朱利亚集."
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Send names of online players to the serverlist. If disabled only the player "
"count is revealed."
msgstr ""
msgstr "向服务器列表发送在线玩家的名称。如果禁用此设置,服务器只发送玩家数量。"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Send player names to the server list"
msgstr "向服务器表公开服务器。"
msgstr "向服务器列表公开玩家名称"
#: src/settings_translation_file.cpp
msgid "Server"
@@ -6574,7 +6571,9 @@ msgid ""
"URL to JSON file which provides information about the newest Luanti "
"release.\n"
"If this is empty the engine will never check for updates."
msgstr "提供最新 Minetest 版本信息的 JSON 文件的 URL"
msgstr ""
"提供最新 Luanti 版本信息的 JSON 文件的 URL。\n"
"如果设置为空,Luanti 不会查找新版本。"
#: src/settings_translation_file.cpp
msgid "URL to the server list displayed in the Multiplayer Tab."

View File

@@ -598,6 +598,14 @@ if(PRECOMPILE_HEADERS)
target_precompile_headers(EngineCommon PRIVATE ${PRECOMPILED_HEADERS_LIST})
endif()
if(APPLE)
# Configure the Info.plist file
configure_file(
"${CMAKE_SOURCE_DIR}/misc/macos/Info.plist.in"
"${CMAKE_BINARY_DIR}/Info.plist"
)
endif()
if(BUILD_CLIENT)
# client target
if(ANDROID)
@@ -605,6 +613,47 @@ if(BUILD_CLIENT)
else()
add_executable(${PROJECT_NAME})
endif()
if(CMAKE_GENERATOR STREQUAL "Xcode")
# File with used entitlements
set(XCODE_CODE_SIGN_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/misc/macos/entitlements/release.entitlements" CACHE FILEPATH "Path to entitlements file to be used with Xcode signing")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/build")
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/build")
target_sources(${PROJECT_NAME} PUBLIC ${client_RESOURCES})
add_dependencies(${PROJECT_NAME} translations)
set_target_properties(${PROJECT_NAME} PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_BINARY_DIR}/Info.plist"
RESOURCE "${client_RESOURCES}"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.luanti.luanti"
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME "YES"
XCODE_ATTRIBUTE_INSTALL_PATH "/Applications"
XCODE_ATTRIBUTE_SKIP_INSTALL "NO"
XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym"
XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS "YES"
XCODE_ATTRIBUTE_CONFIGURATION_BUILD_DIR "$(inherited)"
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${XCODE_CODE_SIGN_ENTITLEMENTS}"
)
# Prinv env variables to file, for debugging purposes
#add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E env bash ${CMAKE_SOURCE_DIR}/util/xcode/capture_env.sh ${CMAKE_BINARY_DIR}/post_env.log
#)
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/util/xcode/install_resources.cmake
-DTARGET_DIR=$<TARGET_FILE_DIR:${PROJECT_NAME}>
-DBINARY_DIR=${CMAKE_BINARY_DIR}
-DPROJECT_NAME=${PROJECT_NAME}
COMMENT "Checking INSTALL_ROOT and copying resources"
)
endif()
list(SORT client_SRCS)
target_sources(${PROJECT_NAME} PRIVATE
$<TARGET_OBJECTS:EngineCommon>

View File

@@ -741,7 +741,8 @@ void GenericCAO::addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr)
});
} else if (m_prop.visual == "mesh") {
grabMatrixNode();
scene::IAnimatedMesh *mesh = m_client->getMesh(m_prop.mesh, true);
// can't cache mesh if shaders disabled, since we modify vertices
scene::IAnimatedMesh *mesh = m_client->getMesh(m_prop.mesh, m_enable_shaders);
if (mesh) {
if (!checkMeshNormals(mesh)) {
infostream << "GenericCAO: recalculating normals for mesh "
@@ -917,6 +918,9 @@ void GenericCAO::setNodeLight(const video::SColor &light_color)
return;
setColorParam(node, light_color);
} else {
// TODO refactor vertex colors to be separate from the other vertex attributes
// instead of mutating meshes / buffers for everyone via setMeshColor.
// (Note: There are a couple more places here where setMeshColor is used.)
if (m_meshnode) {
setMeshColor(m_meshnode->getMesh(), light_color);
} else if (m_animated_meshnode) {

View File

@@ -70,14 +70,6 @@ inline v3f truncate(const v3f vec, const f32 factor)
);
}
inline v3f rangelimv(const v3f vec, const f32 low, const f32 high)
{
return v3f(
rangelim(vec.X, low, high),
rangelim(vec.Y, low, high),
rangelim(vec.Z, low, high)
);
}
}
// Helper function:
@@ -341,10 +333,6 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
collisionMoveResult result;
// Assume no collisions when no velocity and no acceleration
if (*speed_f == v3f() && accel_f == v3f())
return result;
/*
Calculate new velocity
*/
@@ -359,19 +347,30 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
time_notification_done = false;
}
// Average speed
v3f aspeed_f = *speed_f + accel_f * 0.5f * dtime;
// Limit speed for avoiding hangs
aspeed_f = truncate(rangelimv(aspeed_f, -5000.0f, 5000.0f), 10000.0f);
v3f dpos_f = (*speed_f + accel_f * 0.5f * dtime) * dtime;
v3f newpos_f = *pos_f + dpos_f;
*speed_f += accel_f * dtime;
// Collect node boxes in movement range
// If the object is static, there are no collisions
if (dpos_f == v3f())
return result;
// Limit speed for avoiding hangs
speed_f->Y = rangelim(speed_f->Y, -5000, 5000);
speed_f->X = rangelim(speed_f->X, -5000, 5000);
speed_f->Z = rangelim(speed_f->Z, -5000, 5000);
*speed_f = truncate(*speed_f, 10000.0f);
/*
Collect node boxes in movement range
*/
// cached allocation
thread_local std::vector<NearbyCollisionInfo> cinfo;
cinfo.clear();
{
// Movement if no collisions
v3f newpos_f = *pos_f + aspeed_f * dtime;
v3f minpos_f(
MYMIN(pos_f->X, newpos_f.X),
MYMIN(pos_f->Y, newpos_f.Y) + 0.01f * BS, // bias rounding, player often at +/-n.5
@@ -397,16 +396,26 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
}
}
// Collect object boxes in movement range
/*
Collect object boxes in movement range
*/
if (collide_with_objects) {
add_object_boxes(env, box_0, dtime, *pos_f, aspeed_f, self, cinfo);
}
add_object_boxes(env, box_0, dtime, *pos_f, *speed_f, self, cinfo);
}
/*
Collision detection
*/
// Collision detection
f32 d = 0.0f;
for (int loopcount = 0;; loopcount++) {
int loopcount = 0;
while(dtime > BS * 1e-10f) {
// Avoid infinite loop
loopcount++;
if (loopcount >= 100) {
warningstream << "collisionMoveSimple: Loop count exceeded, aborting to avoid infinite loop" << std::endl;
warningstream << "collisionMoveSimple: Loop count exceeded, aborting to avoid infiniite loop" << std::endl;
break;
}
@@ -418,7 +427,9 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
f32 nearest_dtime = dtime;
int nearest_boxindex = -1;
// Go through every nodebox, find nearest collision
/*
Go through every nodebox, find nearest collision
*/
for (u32 boxindex = 0; boxindex < cinfo.size(); boxindex++) {
const NearbyCollisionInfo &box_info = cinfo[boxindex];
// Ignore if already stepped up this nodebox.
@@ -428,7 +439,8 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
// Find nearest collision of the two boxes (raytracing-like)
f32 dtime_tmp = nearest_dtime;
CollisionAxis collided = axisAlignedCollision(box_info.box,
movingbox, aspeed_f, &dtime_tmp);
movingbox, *speed_f, &dtime_tmp);
if (collided == -1 || dtime_tmp >= nearest_dtime)
continue;
@@ -439,127 +451,96 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
if (nearest_collided == COLLISION_AXIS_NONE) {
// No collision with any collision box.
*pos_f += truncate(aspeed_f * dtime, 100.0f);
// Final speed:
*speed_f += accel_f * dtime;
// Limit speed for avoiding hangs
*speed_f = truncate(rangelimv(*speed_f, -5000.0f, 5000.0f), 10000.0f);
break;
}
// Otherwise, a collision occurred.
NearbyCollisionInfo &nearest_info = cinfo[nearest_boxindex];
const aabb3f& cbox = nearest_info.box;
*pos_f += truncate(*speed_f * dtime, 100.0f);
dtime = 0; // Set to 0 to avoid "infinite" loop due to small FP numbers
} else {
// Otherwise, a collision occurred.
NearbyCollisionInfo &nearest_info = cinfo[nearest_boxindex];
const aabb3f& cbox = nearest_info.box;
//movingbox except moved to the horizontal position it would be after step up
bool step_up = false;
if (nearest_collided != COLLISION_AXIS_Y) {
//movingbox except moved to the horizontal position it would be after step up
aabb3f stepbox = movingbox;
// Look slightly ahead for checking the height when stepping
// to ensure we also check above the node we collided with
// otherwise, might allow glitches such as a stack of stairs
float extra_dtime = nearest_dtime + 0.1f * fabsf(dtime - nearest_dtime);
stepbox.MinEdge.X += aspeed_f.X * extra_dtime;
stepbox.MinEdge.Z += aspeed_f.Z * extra_dtime;
stepbox.MaxEdge.X += aspeed_f.X * extra_dtime;
stepbox.MaxEdge.Z += aspeed_f.Z * extra_dtime;
stepbox.MinEdge.X += speed_f->X * dtime;
stepbox.MinEdge.Z += speed_f->Z * dtime;
stepbox.MaxEdge.X += speed_f->X * dtime;
stepbox.MaxEdge.Z += speed_f->Z * dtime;
// Check for stairs.
step_up = (movingbox.MinEdge.Y < cbox.MaxEdge.Y) &&
(movingbox.MinEdge.Y + stepheight > cbox.MaxEdge.Y) &&
(!wouldCollideWithCeiling(cinfo, stepbox,
cbox.MaxEdge.Y - movingbox.MinEdge.Y,
d));
}
bool step_up = (nearest_collided != COLLISION_AXIS_Y) && // must not be Y direction
(movingbox.MinEdge.Y < cbox.MaxEdge.Y) &&
(movingbox.MinEdge.Y + stepheight > cbox.MaxEdge.Y) &&
(!wouldCollideWithCeiling(cinfo, stepbox,
cbox.MaxEdge.Y - movingbox.MinEdge.Y,
d));
// Get bounce multiplier
float bounce = -(float)nearest_info.bouncy / 100.0f;
// Get bounce multiplier
float bounce = -(float)nearest_info.bouncy / 100.0f;
// Move to the point of collision and reduce dtime by nearest_dtime
if (nearest_dtime < 0) {
// Handle negative nearest_dtime
// This largely means an "instant" collision, e.g., with the floor.
// We use aspeed and nearest_dtime to be consistent with above and resolve this collision
if (!step_up) {
if (nearest_collided == COLLISION_AXIS_X)
pos_f->X += aspeed_f.X * nearest_dtime;
if (nearest_collided == COLLISION_AXIS_Y)
pos_f->Y += aspeed_f.Y * nearest_dtime;
if (nearest_collided == COLLISION_AXIS_Z)
pos_f->Z += aspeed_f.Z * nearest_dtime;
}
} else if (nearest_dtime > 0) {
// updated average speed for the sub-interval up to nearest_dtime
aspeed_f = *speed_f + accel_f * 0.5f * nearest_dtime;
*pos_f += truncate(aspeed_f * nearest_dtime, 100.0f);
// Speed at (approximated) collision:
*speed_f += accel_f * nearest_dtime;
// Limit speed for avoiding hangs
*speed_f = truncate(rangelimv(*speed_f, -5000.0f, 5000.0f), 10000.0f);
dtime -= nearest_dtime;
}
bool is_collision = true;
if (nearest_info.is_unloaded)
is_collision = false;
CollisionInfo info;
if (nearest_info.isObject())
info.type = COLLISION_OBJECT;
else
info.type = COLLISION_NODE;
info.node_p = nearest_info.position;
info.object = nearest_info.obj;
info.new_pos = *pos_f;
info.old_speed = *speed_f;
info.plane = nearest_collided;
// Set the speed component that caused the collision to zero
if (step_up) {
// Special case: Handle stairs
nearest_info.is_step_up = true;
is_collision = false;
} else if (nearest_collided == COLLISION_AXIS_X) {
if (bounce < -1e-4 && fabsf(speed_f->X) > BS * 3) {
speed_f->X *= bounce;
// Move to the point of collision and reduce dtime by nearest_dtime
if (nearest_dtime < 0) {
// Handle negative nearest_dtime
if (!step_up) {
if (nearest_collided == COLLISION_AXIS_X)
pos_f->X += speed_f->X * nearest_dtime;
if (nearest_collided == COLLISION_AXIS_Y)
pos_f->Y += speed_f->Y * nearest_dtime;
if (nearest_collided == COLLISION_AXIS_Z)
pos_f->Z += speed_f->Z * nearest_dtime;
}
} else {
speed_f->X = 0;
accel_f.X = 0;
*pos_f += truncate(*speed_f * nearest_dtime, 100.0f);
dtime -= nearest_dtime;
}
result.collides = true;
} else if (nearest_collided == COLLISION_AXIS_Y) {
if(bounce < -1e-4 && fabsf(speed_f->Y) > BS * 3) {
speed_f->Y *= bounce;
} else {
speed_f->Y = 0;
accel_f.Y = 0;
bool is_collision = true;
if (nearest_info.is_unloaded)
is_collision = false;
CollisionInfo info;
if (nearest_info.isObject())
info.type = COLLISION_OBJECT;
else
info.type = COLLISION_NODE;
info.node_p = nearest_info.position;
info.object = nearest_info.obj;
info.new_pos = *pos_f;
info.old_speed = *speed_f;
info.plane = nearest_collided;
// Set the speed component that caused the collision to zero
if (step_up) {
// Special case: Handle stairs
nearest_info.is_step_up = true;
is_collision = false;
} else if (nearest_collided == COLLISION_AXIS_X) {
if (fabs(speed_f->X) > BS * 3)
speed_f->X *= bounce;
else
speed_f->X = 0;
result.collides = true;
} else if (nearest_collided == COLLISION_AXIS_Y) {
if(fabs(speed_f->Y) > BS * 3)
speed_f->Y *= bounce;
else
speed_f->Y = 0;
result.collides = true;
} else if (nearest_collided == COLLISION_AXIS_Z) {
if (fabs(speed_f->Z) > BS * 3)
speed_f->Z *= bounce;
else
speed_f->Z = 0;
result.collides = true;
}
result.collides = true;
} else if (nearest_collided == COLLISION_AXIS_Z) {
if (bounce < -1e-4 && fabsf(speed_f->Z) > BS * 3) {
speed_f->Z *= bounce;
} else {
speed_f->Z = 0;
accel_f.Z = 0;
info.new_speed = *speed_f;
if (info.new_speed.getDistanceFrom(info.old_speed) < 0.1f * BS)
is_collision = false;
if (is_collision) {
info.axis = nearest_collided;
result.collisions.push_back(std::move(info));
}
result.collides = true;
}
info.new_speed = *speed_f;
if (info.new_speed.getDistanceFrom(info.old_speed) < 0.1f * BS)
is_collision = false;
if (is_collision) {
info.axis = nearest_collided;
result.collisions.push_back(info);
}
if (dtime < BS * 1e-10f)
break;
// Speed for finding the next collision
aspeed_f = *speed_f + accel_f * 0.5f * dtime;
// Limit speed for avoiding hangs
aspeed_f = truncate(rangelimv(aspeed_f, -5000.0f, 5000.0f), 10000.0f);
}
/*

View File

@@ -78,7 +78,7 @@ void set_default_settings()
settings->setDefault("language", "");
settings->setDefault("name", "");
settings->setDefault("bind_address", "");
settings->setDefault("serverlist_url", "servers.minetest.net");
settings->setDefault("serverlist_url", "servers.luanti.org");
// Client
settings->setDefault("address", "");
@@ -397,7 +397,7 @@ void set_default_settings()
settings->setDefault("chat_font_size", "0"); // Default "font_size"
// ContentDB
settings->setDefault("contentdb_url", "https://content.minetest.net");
settings->setDefault("contentdb_url", "https://content.luanti.org");
settings->setDefault("contentdb_enable_updates_indicator", "true");
settings->setDefault("contentdb_max_concurrent_downloads", "3");

View File

@@ -9,6 +9,8 @@
#include <IVideoDriver.h>
#include "IAttributes.h"
#include "porting.h"
#include "client/mesh.h"
#include "settings.h"
GUIScene::GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr,
gui::IGUIElement *parent, core::recti rect, s32 id)
@@ -96,6 +98,11 @@ void GUIScene::draw()
if (m_inf_rot)
rotateCamera(v3f(0.f, -0.03f * (float)dtime_ms, 0.f));
// HACK restore mesh vertex colors to full brightness:
// They may have been mutated in entity rendering code before.
if (!g_settings->getBool("enable_shaders"))
setMeshColor(m_mesh->getMesh(), irr::video::SColor(0xFFFFFFFF));
m_smgr->drawAll();
if (m_initial_rotation && m_mesh) {

View File

@@ -1015,10 +1015,12 @@ static bool determine_subgame(GameParams *game_params)
infostream << "Using commanded gameid [" << gamespec.id << "]" << std::endl;
} else {
if (game_params->is_dedicated_server) {
std::string contentdb_url = g_settings->get("contentdb_url");
// If this is a dedicated server and no gamespec has been specified,
// print a friendly error pointing to ContentDB.
errorstream << "To run a " PROJECT_NAME_C " server, you need to select a game using the '--gameid' argument." << std::endl
<< "Check out https://content.minetest.net for a selection of games to pick from and download." << std::endl;
<< "Check out " << contentdb_url << " for a selection of games to pick from and download." << std::endl;
}
return false;

View File

@@ -5,7 +5,7 @@ Copyright (C) 2016-2019 Duane Robertson <duane@duanerobertson.com>
Copyright (C) 2016-2019 paramat
Based on Valleys Mapgen by Gael de Sailly
(https://forum.minetest.net/viewtopic.php?f=9&t=11430)
(https://forum.luanti.org/viewtopic.php?f=9&t=11430)
and mapgen_v7, mapgen_flat by kwolekr and paramat.
Licensing changed by permission of Gael de Sailly.

View File

@@ -5,7 +5,7 @@ Copyright (C) 2016-2019 Duane Robertson <duane@duanerobertson.com>
Copyright (C) 2016-2019 paramat
Based on Valleys Mapgen by Gael de Sailly
(https://forum.minetest.net/viewtopic.php?f=9&t=11430)
(https://forum.luanti.org/viewtopic.php?f=9&t=11430)
and mapgen_v7, mapgen_flat by kwolekr and paramat.
Licensing changed by permission of Gael de Sailly.

View File

@@ -932,7 +932,7 @@ double perf_freq = get_perf_freq();
* This appears to be a combination of unfortunate allocation order/fragmentation
* and the fact that glibc does not call madvise(MADV_DONTNEED) on its own.
* Some other allocators were also affected, jemalloc and musl libc were not.
* read more: <https://forum.minetest.net/viewtopic.php?t=30509>
* read more: <https://forum.luanti.org/viewtopic.php?t=30509>
*
* As a workaround we track freed memory coarsely and call malloc_trim() once a
* certain amount is reached.

View File

@@ -2048,9 +2048,6 @@ bool read_tree_def(lua_State *L, int idx, const NodeDefManager *ndef,
}
/******************************************************************************/
#if defined(JSONCPP_STRING) || !(JSONCPP_VERSION_MAJOR < 1 || JSONCPP_VERSION_MINOR < 9)
#define HAVE_JSON_STRING
#endif
// Returns depth of json value tree
static int push_json_value_getdepth(const Json::Value &value)
@@ -2079,13 +2076,8 @@ static bool push_json_value_helper(lua_State *L, const Json::Value &value,
lua_pushnumber(L, value.asDouble());
break;
case Json::stringValue: {
#ifdef HAVE_JSON_STRING
const auto &str = value.asString();
lua_pushlstring(L, str.c_str(), str.size());
#else
const char *str = value.asCString();
lua_pushstring(L, str ? str : "");
#endif
break;
}
case Json::booleanValue:
@@ -2101,7 +2093,7 @@ static bool push_json_value_helper(lua_State *L, const Json::Value &value,
case Json::objectValue:
lua_createtable(L, 0, value.size());
for (auto it = value.begin(); it != value.end(); ++it) {
#ifdef HAVE_JSON_STRING
#if JSONCPP_VERSION_HEXA >= 0x01060000 /* 1.6.0 */
const auto &str = it.name();
lua_pushlstring(L, str.c_str(), str.size());
#else

View File

@@ -555,7 +555,7 @@ bool ScriptApiSecurity::checkPath(lua_State *L, const char *path,
// by the operating system anyways.
return false;
}
removed.append(component).append(removed.empty() ? "" : DIR_DELIM + removed);
removed = component + (removed.empty() ? "" : DIR_DELIM + removed);
abs_path = fs::AbsolutePath(cur_path);
}
if (abs_path.empty())

View File

@@ -572,12 +572,11 @@ void Server::start()
// ASCII art for the win!
const char *art[] = {
R"(.__ __ .__ )",
R"(| | __ _______ _____/ |_|__|)",
R"(| | | | \__ \ / \ __\ |)",
R"(| |_| | // __ \| | \ | | |)",
R"(|____/____/(____ /___| /__| |__|)",
R"( \/ \/ )",
R"( _ _ _ )",
R"(| |_ _ __ _ _ __ | |_(_))",
R"(| | | | |/ _` | '_ \| __| |)",
R"(| | |_| | (_| | | | | |_| |)",
R"(|_|\__,_|\__,_|_| |_|\__|_|)",
};
if (!m_admin_chat) {

24
util/ci/build_xcode.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/bash -e
cmake .. \
-DCMAKE_FIND_FRAMEWORK=LAST \
-DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \
-DFREETYPE_LIBRARY=/opt/homebrew/lib/libfreetype.a \
-DGETTEXT_INCLUDE_DIR=/path/to/include/dir \
-DGETTEXT_LIBRARY=/opt/homebrew/lib/libintl.a \
-DLUA_LIBRARY=/opt/homebrew/lib/libluajit-5.1.a \
-DOGG_LIBRARY=/opt/homebrew/lib/libogg.a \
-DVORBIS_LIBRARY=/opt/homebrew/lib/libvorbis.a \
-DVORBISFILE_LIBRARY=/opt/homebrew/lib/libvorbisfile.a \
-DZSTD_LIBRARY=/opt/homebrew/lib/libzstd.a \
-DGMP_LIBRARY=/opt/homebrew/lib/libgmp.a \
-DENABLE_SYSTEM_JSONCPP=OFF \
-DENABLE_LEVELDB=OFF \
-DENABLE_POSTGRESQL=OFF \
-DENABLE_REDIS=OFF \
-DJPEG_LIBRARY=/opt/homebrew/lib/libjpeg.a \
-DPNG_LIBRARY=/opt/homebrew/lib/libpng.a \
-DCMAKE_EXE_LINKER_FLAGS=-lbz2\
-GXcode
xcodebuild -project luanti.xcodeproj -scheme luanti -configuration Release build
xcodebuild -project luanti.xcodeproj -scheme luanti -archivePath ./luanti.xcarchive archive

View File

@@ -6,7 +6,7 @@ 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.7.0..HEAD"
REVS_ACTIVE = "5.8.0..HEAD"
# all time, for "Previous Contributors"
REVS_PREVIOUS = "HEAD"

View File

@@ -0,0 +1,3 @@
#!/bin/bash
env > $1

View File

@@ -0,0 +1,63 @@
# This is only one working solution I found to be working for normal and Archive builds under Xcode 15.4
# I expect higger sensitivity to Xcode version.
if(DEFINED ENV{INSTALL_ROOT} AND EXISTS "$ENV{INSTALL_ROOT}")
set(RESOURCES_DIR "$ENV{INSTALL_ROOT}/Applications/$ENV{PRODUCT_NAME}.app/Contents/Resources")
else()
set(RESOURCES_DIR "$ENV{TARGET_BUILD_DIR}/$ENV{UNLOCALIZED_RESOURCES_FOLDER_PATH}")
endif()
# Write debug information to a file
#file(WRITE "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "INSTALL_ROOT: $ENV{INSTALL_ROOT}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "RESOURCES_DIR: ${RESOURCES_DIR}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "TARGET_BUILD_DIR: $ENV{TARGET_BUILD_DIR}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "BUILT_PRODUCTS_DIR: $ENV{BUILT_PRODUCTS_DIR}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "SOURCE_ROOT: $ENV{SOURCE_ROOT}\n")
#file(APPEND "$ENV{PROJECT_FILE_PATH}/../debug_output.txt" "PRODUCT_NAME: $ENV{PRODUCT_NAME}\n")
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/builtin"
"${RESOURCES_DIR}/builtin"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/client/shaders"
"${RESOURCES_DIR}/client/shaders"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/fonts"
"${RESOURCES_DIR}/fonts"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{PROJECT_FILE_PATH}/../locale"
"${RESOURCES_DIR}/locale"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory
"${RESOURCES_DIR}/$ENV{PRODUCT_NAME}"
)
set(RESOURCE_LUANTI_FILES
"$ENV{SOURCE_ROOT}/README.md"
"$ENV{SOURCE_ROOT}/doc/client_lua_api.md"
"$ENV{SOURCE_ROOT}/doc/lua_api.md"
"$ENV{SOURCE_ROOT}/doc/menu_lua_api.md"
"$ENV{SOURCE_ROOT}/minetest.conf.example"
"$ENV{SOURCE_ROOT}/doc/texture_packs.md"
"$ENV{SOURCE_ROOT}/doc/world_format.md"
)
foreach (file ${RESOURCE_LUANTI_FILES})
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy
"${file}"
"${RESOURCES_DIR}/$ENV{PRODUCT_NAME}/"
)
endforeach()
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_directory
"$ENV{SOURCE_ROOT}/textures/base/pack"
"${RESOURCES_DIR}/textures/base/pack"
)