diff --git a/.clang-format b/.clang-format index dc7380ffd..0db8ab167 100644 --- a/.clang-format +++ b/.clang-format @@ -29,3 +29,4 @@ AlignAfterOpenBracket: DontAlign ContinuationIndentWidth: 16 ConstructorInitializerIndentWidth: 16 BreakConstructorInitializers: AfterColon +AlwaysBreakTemplateDeclarations: Yes diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..bda43ebc0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +./cmake-build-* +./build/* +./cache/* +Dockerfile diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b01a89509..fbd372b3b 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -70,7 +70,9 @@ Feature requests are welcome but take a moment to see if your idea follows the r ## Translations -Translations of Minetest are performed using Weblate. You can access the project page with a list of current languages [here](https://hosted.weblate.org/projects/minetest/minetest/). +The core translations of Minetest are performed using Weblate. You can access the project page with a list of current languages [here](https://hosted.weblate.org/projects/minetest/minetest/). + +Builtin (the component which contains things like server messages, chat command descriptions, privilege descriptions) is translated separately; it needs to be translated by editing a `.tr` text file. See [Translation](https://dev.minetest.net/Translation) for more information. ## Donations diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71fdf3652..d268aa0cb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,6 +13,8 @@ on: - 'util/buildbot/**' - 'util/ci/**' - '.github/workflows/**.yml' + - 'Dockerfile' + - '.dockerignore' pull_request: paths: - 'lib/**.[ch]' @@ -24,6 +26,8 @@ on: - 'util/buildbot/**' - 'util/ci/**' - '.github/workflows/**.yml' + - 'Dockerfile' + - '.dockerignore' jobs: # This is our minor gcc compiler @@ -33,9 +37,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install g++-6 gcc-6 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps g++-6 - name: Build run: | @@ -55,9 +58,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install g++-8 gcc-8 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps g++-8 - name: Build run: | @@ -77,9 +79,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-3.9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-3.9 gdb - name: Build run: | @@ -88,10 +89,14 @@ jobs: CC: clang-3.9 CXX: clang++-3.9 - - name: Test + - name: Unittest run: | ./bin/minetest --run-unittests + - name: Integration test + run: | + ./util/test_multiplayer.sh + # This is the current clang version clang_9: runs-on: ubuntu-18.04 @@ -99,11 +104,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 valgrind -qyy source ./util/ci/common.sh - install_linux_deps - env: - WITH_LUAJIT: 1 + install_linux_deps clang-9 valgrind libluajit-5.1-dev - name: Build run: | @@ -111,6 +113,7 @@ jobs: env: CC: clang-9 CXX: clang++-9 + CMAKE_FLAGS: "-DREQUIRE_LUAJIT=1" - name: Test run: | @@ -128,9 +131,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps --old-irr clang-9 - name: Build prometheus-cpp run: | @@ -156,9 +158,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-9 - name: Build run: | @@ -188,7 +189,7 @@ jobs: - uses: actions/checkout@v2 - name: Install compiler run: | - sudo apt-get install gettext -qyy + sudo apt-get update -q && sudo apt-get install gettext -qyy wget http://minetest.kitsunemimi.pw/mingw-w64-i686_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr @@ -206,7 +207,7 @@ jobs: - uses: actions/checkout@v2 - name: Install compiler run: | - sudo apt-get install gettext -qyy + sudo apt-get update -q && sudo apt-get install gettext -qyy wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr @@ -219,7 +220,10 @@ jobs: msvc: name: VS 2019 ${{ matrix.config.arch }}-${{ matrix.type }} - runs-on: windows-2019 + runs-on: windows-2019 + #### Disabled due to Irrlicht switch + if: false + #### Disabled due to Irrlicht switch env: VCPKG_VERSION: 0bf3923f9fab4001c00f0f429682a0853b5749e0 # 2020.11 diff --git a/.github/workflows/cpp_lint.yml b/.github/workflows/cpp_lint.yml index 1f97d105a..2bd884c7a 100644 --- a/.github/workflows/cpp_lint.yml +++ b/.github/workflows/cpp_lint.yml @@ -24,20 +24,21 @@ on: - '.github/workflows/**.yml' jobs: - clang_format: - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - name: Install clang-format - run: | - sudo apt-get install clang-format-9 -qyy - - name: Run clang-format - run: | - source ./util/ci/lint.sh - perform_lint - env: - CLANG_FORMAT: clang-format-9 +# clang_format: +# runs-on: ubuntu-18.04 +# steps: +# - uses: actions/checkout@v2 +# - name: Install clang-format +# run: | +# sudo apt-get install clang-format-9 -qyy +# +# - name: Run clang-format +# run: | +# source ./util/ci/clang-format.sh +# check_format +# env: +# CLANG_FORMAT: clang-format-9 clang_tidy: runs-on: ubuntu-18.04 diff --git a/.gitignore b/.gitignore index b09d37dae..327c5b575 100644 --- a/.gitignore +++ b/.gitignore @@ -85,8 +85,7 @@ src/test_config.h src/cmake_config.h src/cmake_config_githash.h src/unittest/test_world/world.mt -src/lua/build/ -locale/ +/locale/ .directory *.cbp *.layout diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3e120375..597e7ab52 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,40 +9,48 @@ stages: - deploy variables: + IRRLICHT_TAG: "1.9.0mt1" MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git" CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH .build_template: stage: build + before_script: + - apt-get update + - apt-get -y install build-essential git cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libleveldb-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev script: + - git clone https://github.com/minetest/irrlicht -b $IRRLICHT_TAG + - cd irrlicht + - cmake . -DBUILD_SHARED_LIBS=OFF + - make -j2 + - cd .. - mkdir cmakebuild - - mkdir -p artifact/minetest/usr/ - cd cmakebuild - - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE .. + - cmake -DIRRLICHT_LIBRARY=$PWD/../irrlicht/lib/Linux/libIrrlichtMt.a -DIRRLICHT_INCLUDE_DIR=$PWD/../irrlicht/include -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE .. - make -j2 - make install artifacts: when: on_success - expire_in: 2h + expire_in: 1h paths: - artifact/* .debpkg_template: stage: package before_script: - - apt-get update -y + - apt-get update - apt-get install -y git - mkdir -p build/deb/minetest/DEBIAN/ - cp misc/debpkg-control build/deb/minetest/DEBIAN/control - - cp -Rp artifact/minetest/usr build/deb/minetest/ + - cp -a artifact/minetest/usr build/deb/minetest/ script: - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest_game - - rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git + - rm -rf build/deb/minetest/usr/share/minetest/games/minetest/.git - sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control + - sed -i 's/JPEG_PLACEHOLDER/'$JPEG_PKG'/g' build/deb/minetest/DEBIAN/control - sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control - cd build/deb/ && dpkg-deb -b minetest/ && mv minetest.deb ../../ artifacts: - when: on_success expire_in: 90 day paths: - ./*.deb @@ -50,94 +58,57 @@ variables: .debpkg_install: stage: deploy before_script: - - apt-get update -y - - apt-get install -y libc6 libcurl3-gnutls libfreetype6 libirrlicht1.8 $LEVELDB_PKG liblua5.1-0 libluajit-5.1-2 libopenal1 libstdc++6 libvorbisfile3 libx11-6 zlib1g + - apt-get update script: - - dpkg -i ./*.deb + - apt-get install -y ./*.deb + - minetest --version ## ## Debian ## -# Jessie - -build:debian-8: - extends: .build_template - image: debian:8 - before_script: - - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list - - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F - - apt-get update -y - - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev - variables: - CC: gcc-6 - CXX: g++-6 - -package:debian-8: - extends: .debpkg_template - image: debian:8 - dependencies: - - build:debian-8 - variables: - LEVELDB_PKG: libleveldb1 - -deploy:debian-8: - extends: .debpkg_install - image: debian:8 - dependencies: - - package:debian-8 - variables: - LEVELDB_PKG: libleveldb1 - # Stretch build:debian-9: extends: .build_template image: debian:9 - before_script: - - apt-get update -y - - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev package:debian-9: extends: .debpkg_template image: debian:9 - dependencies: + needs: - build:debian-9 variables: LEVELDB_PKG: libleveldb1v5 + JPEG_PKG: libjpeg62-turbo deploy:debian-9: extends: .debpkg_install image: debian:9 - dependencies: + needs: - package:debian-9 - variables: - LEVELDB_PKG: libleveldb1v5 -# Stretch +# Buster build:debian-10: extends: .build_template image: debian:10 - before_script: - - apt-get update -y - - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev package:debian-10: extends: .debpkg_template image: debian:10 - dependencies: + needs: - build:debian-10 variables: LEVELDB_PKG: libleveldb1d + JPEG_PKG: libjpeg62-turbo deploy:debian-10: extends: .debpkg_install image: debian:10 - dependencies: + needs: - package:debian-10 - variables: - LEVELDB_PKG: libleveldb1d + ## ## Ubuntu ## @@ -147,134 +118,120 @@ deploy:debian-10: build:ubuntu-16.04: extends: .build_template image: ubuntu:xenial - before_script: - - apt-get update -y - - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev package:ubuntu-16.04: extends: .debpkg_template image: ubuntu:xenial - dependencies: + needs: - build:ubuntu-16.04 variables: LEVELDB_PKG: libleveldb1v5 + JPEG_PKG: libjpeg-turbo8 deploy:ubuntu-16.04: extends: .debpkg_install image: ubuntu:xenial - dependencies: + needs: - package:ubuntu-16.04 - variables: - LEVELDB_PKG: libleveldb1v5 # Bionic build:ubuntu-18.04: extends: .build_template image: ubuntu:bionic - before_script: - - apt-get update -y - - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev package:ubuntu-18.04: extends: .debpkg_template image: ubuntu:bionic - dependencies: + needs: - build:ubuntu-18.04 variables: LEVELDB_PKG: libleveldb1v5 + JPEG_PKG: libjpeg-turbo8 deploy:ubuntu-18.04: extends: .debpkg_install image: ubuntu:bionic - dependencies: + needs: - package:ubuntu-18.04 - variables: - LEVELDB_PKG: libleveldb1v5 ## ## Fedora ## -# Do we need to support this old version ? -build:fedora-24: +# Fedora 28 <-> RHEL 8 +build:fedora-28: extends: .build_template - image: fedora:24 + image: fedora:28 before_script: - - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel - + - dnf -y install make git gcc gcc-c++ kernel-devel cmake libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel ## -## Mingw for Windows +## MinGW for Windows ## .generic_win_template: - image: ubuntu:bionic + image: ubuntu:focal before_script: - - apt-get update -y - - apt-get install -y wget xz-utils unzip git cmake gettext - - wget -q http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + - apt-get update + - DEBIAN_FRONTEND=noninteractive apt-get install -y wget xz-utils unzip git cmake gettext + - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz - tar -xaf mingw.tar.xz -C /usr .build_win_template: extends: .generic_win_template stage: build artifacts: - when: on_success - expire_in: 2h + expire_in: 1h paths: - - build/* + - build/build/*.zip .package_win_template: extends: .generic_win_template stage: package script: - - cd build/minetest/_build - - make package - - cd ../../../ - - mkdir minetest-win-${WIN_ARCH} - - unzip build/minetest/_build/minetest-*-win*.zip -d minetest-win-${WIN_ARCH} - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin + - unzip build/build/*.zip + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-*-win*/bin/ + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-*-win*/bin/ + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-*-win*/bin/ artifacts: - when: on_success expire_in: 90 day paths: - - minetest-win-*/* + - minetest-*-win*/* build:win32: extends: .build_win_template script: - - ./util/buildbot/buildwin32.sh build + - EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin32.sh build variables: - NO_PACKAGE: "1" WIN_ARCH: "i686" package:win32: extends: .package_win_template - dependencies: + needs: - build:win32 variables: - NO_PACKAGE: "1" WIN_ARCH: "i686" + build:win64: extends: .build_win_template script: - - ./util/buildbot/buildwin64.sh build + - EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin64.sh build variables: - NO_PACKAGE: "1" WIN_ARCH: "x86_64" package:win64: extends: .package_win_template - dependencies: + needs: - build:win64 variables: - NO_PACKAGE: "1" WIN_ARCH: "x86_64" +## +## Docker +## + package:docker: stage: package image: docker:stable @@ -288,6 +245,10 @@ package:docker: - docker push ${CONTAINER_IMAGE}/server:$CI_COMMIT_REF_NAME - docker push ${CONTAINER_IMAGE}/server:latest +## +## Gitlab Pages (Lua API documentation) +## + pages: stage: deploy image: python:3.8 @@ -303,10 +264,14 @@ pages: only: - master +## +## AppImage +## + package:appimage-client: stage: package image: appimagecrafters/appimage-builder - dependencies: + needs: - build:ubuntu-18.04 before_script: - apt-get update -y @@ -315,16 +280,15 @@ package:appimage-client: - mkdir AppDir - cp -a artifact/minetest/usr/ AppDir/usr/ - rm AppDir/usr/bin/minetestserver - - cp -R clientmods AppDir/usr/share/minetest + - cp -a clientmods AppDir/usr/share/minetest script: - git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game - - rm -Rf AppDir/usr/share/minetest/games/minetest/.git + - rm -rf AppDir/usr/share/minetest/games/minetest/.git - export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA # Remove PrefersNonDefaultGPU property due to validation errors - sed -i '/PrefersNonDefaultGPU/d' AppDir/usr/share/applications/net.minetest.minetest.desktop - appimage-builder --skip-test artifacts: - when: on_success expire_in: 90 day paths: - ./*.AppImage diff --git a/.luacheckrc b/.luacheckrc index e010ab95c..ca321d953 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -19,8 +19,8 @@ read_globals = { "Settings", string = {fields = {"split", "trim"}}, - table = {fields = {"copy", "getn", "indexof", "insert_all"}}, - math = {fields = {"hypot"}}, + table = {fields = {"copy", "getn", "indexof", "insert_all", "combine"}}, + math = {fields = {"hypot", "round"}}, } globals = { diff --git a/.mailmap b/.mailmap index c487460a0..fcc763411 100644 --- a/.mailmap +++ b/.mailmap @@ -1,33 +1,67 @@ +# Documentation: https://git-scm.com/docs/git-check-mailmap#_mapping_authors + 0gb.us <0gb.us@0gb.us> -Calinou -Perttu Ahola celeron55 +Calinou +Calinou +Perttu Ahola Perttu Ahola celeron55 -Craig Robbins +Zeno- +Zeno- +Diego Martínez Diego Martínez +Ilya Zhuravlev Ilya Zhuravlev kwolekr -PilzAdam PilzAdam -PilzAdam Pilz Adam -PilzAdam PilzAdam +PilzAdam +PilzAdam proller proller RealBadAngel RealBadAngel Selat ShadowNinja ShadowNinja -Shen Zheyu arsdragonfly -Pavel Elagin elagin -Esteban I. Ruiz Moreno Esteban I. RM -manuel duarte manuel joaquim -manuel duarte sweetbomber -Diego Martínez kaeza -Diego Martínez Diego Martinez -Lord James Lord89James -BlockMen Block Men -sfan5 Sfan5 -DannyDark dannydark -Ilya Pavlov Ilya -Ilya Zhuravlev xyzz +Esteban I. Ruiz Moreno +Esteban I. Ruiz Moreno +Lord James +BlockMen +sfan5 +DannyDark +Ilya Pavlov sapier sapier sapier sapier - +SmallJoker +Loïc Blot +Loïc Blot +numzero Vitaliy +numzero +Jean-Patrick Guerrero +Jean-Patrick Guerrero +HybridDog <3192173+HybridDog@users.noreply.github.com> +srfqi +Dániel Juhász +rubenwardy +rubenwardy +Paul Ouellette +Vanessa Dannenberg +ClobberXD +ClobberXD +ClobberXD <36130650+ClobberXD@users.noreply.github.com> +Auke Kok +Auke Kok +Desour +Nathanaël Courant +Ezhh +paramat +paramat +lhofhansl +red-001 +Wuzzy +Wuzzy +Jordach +MoNTE48 +v-rob +v-rob <31123645+v-rob@users.noreply.github.com> +EvidenceB <49488517+EvidenceBKidscode@users.noreply.github.com> +gregorycu +Rogier +Rogier diff --git a/CMakeLists.txt b/CMakeLists.txt index 283460fff..9270fa2d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,24 +1,18 @@ -cmake_minimum_required(VERSION 2.6) - -if(${CMAKE_VERSION} STREQUAL "2.8.2") - # Bug http://vtk.org/Bug/view.php?id=11020 - message(WARNING "CMake/CPack version 2.8.2 will not create working .deb packages!") -endif() +cmake_minimum_required(VERSION 3.5) # This can be read from ${PROJECT_NAME} after project() is called project(minetest) set(PROJECT_NAME_CAPITALIZED "waspsaliva") -# Works only for cmake 3.1 and greater set(CMAKE_CXX_STANDARD 11) set(GCC_MINIMUM_VERSION "4.8") set(CLANG_MINIMUM_VERSION "3.4") # Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing set(VERSION_MAJOR 5) -set(VERSION_MINOR 4) +set(VERSION_MINOR 5) set(VERSION_PATCH 0) -set(VERSION_EXTRA "-dragonfire" CACHE STRING "Stuff to append to version string") ##set dragonfire to make hackclient detection easier for servers +set(VERSION_EXTRA "dragonfire" CACHE STRING "Stuff to append to version string") # Change to false for releases set(DEVELOPMENT_BUILD FALSE) @@ -65,6 +59,29 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") # This is done here so that relative search paths are more reasonable find_package(Irrlicht) +if(BUILD_CLIENT AND NOT IRRLICHT_FOUND) + message(FATAL_ERROR "IrrlichtMt is required to build the client, but it was not found.") +elseif(NOT IRRLICHT_INCLUDE_DIR) + message(FATAL_ERROR "Irrlicht or IrrlichtMt headers are required to build the server, but none found.") +endif() + +include(CheckSymbolExists) +set(CMAKE_REQUIRED_INCLUDES ${IRRLICHT_INCLUDE_DIR}) +unset(HAS_FORKED_IRRLICHT CACHE) +check_symbol_exists(IRRLICHT_VERSION_MT "IrrCompileConfig.h" HAS_FORKED_IRRLICHT) +if(NOT HAS_FORKED_IRRLICHT) + string(CONCAT EXPLANATION_MSG + "Irrlicht found, but it is not IrrlichtMt (Minetest's Irrlicht fork). " + "The Minetest team has forked Irrlicht to make their own customizations. " + "It can be found here: https://github.com/minetest/irrlicht") + if(BUILD_CLIENT) + message(FATAL_ERROR "${EXPLANATION_MSG}\n" + "Building the client with upstream Irrlicht is no longer possible.") + else() + message(WARNING "${EXPLANATION_MSG}\n" + "The server can still be built with upstream Irrlicht but this is DISCOURAGED.") + endif() +endif() # Installation @@ -165,7 +182,7 @@ if(RUN_IN_PLACE) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/textures/texture_packs_here.txt" DESTINATION "${SHAREDIR}/textures") endif() -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/" +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/" COMPONENT "SUBGAME_MINETEST_GAME" OPTIONAL PATTERN ".git*" EXCLUDE ) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/devtest" DESTINATION "${SHAREDIR}/games/" COMPONENT "SUBGAME_MINIMAL" OPTIONAL PATTERN ".git*" EXCLUDE ) @@ -173,7 +190,6 @@ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/devtest" DESTINATION "${SHA if(BUILD_CLIENT) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client/shaders" DESTINATION "${SHAREDIR}/client") install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/textures/base/pack" DESTINATION "${SHAREDIR}/textures/base") - install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/fonts" DESTINATION "${SHAREDIR}") if(RUN_IN_PLACE) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/clientmods" DESTINATION "${SHAREDIR}") install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/client/serverlist" DESTINATION "${SHAREDIR}/client") @@ -192,14 +208,14 @@ if(UNIX AND NOT APPLE) install(FILES "doc/minetest.6" "doc/minetestserver.6" DESTINATION "${MANDIR}/man6") install(FILES "misc/net.minetest.minetest.desktop" DESTINATION "${XDG_APPS_DIR}") install(FILES "misc/net.minetest.minetest.appdata.xml" DESTINATION "${APPDATADIR}") - install(FILES "misc/minetest.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps") - install(FILES "misc/minetest-xorg-icon-128.png" + install(FILES "misc/dragonfire.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps") + install(FILES "misc/dragonfire-xorg-icon-128.png" DESTINATION "${ICONDIR}/hicolor/128x128/apps" - RENAME "minetest.png") + RENAME "dragonfire.png") endif() if(APPLE) - install(FILES "misc/minetest-icon.icns" DESTINATION "${SHAREDIR}") + install(FILES "misc/dragonfire-icon.icns" DESTINATION "${SHAREDIR}") install(FILES "misc/Info.plist" DESTINATION "${BUNDLE_PATH}/Contents") endif() @@ -208,8 +224,8 @@ find_package(GMP REQUIRED) find_package(Json REQUIRED) find_package(Lua REQUIRED) -# JsonCPP doesn't compile well on GCC 4.8 -if(NOT ENABLE_SYSTEM_JSONCPP) +# JsonCpp doesn't compile well on GCC 4.8 +if(NOT USE_SYSTEM_JSONCPP) set(GCC_MINIMUM_VERSION "4.9") endif() @@ -218,7 +234,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") message(FATAL_ERROR "Insufficient gcc version, found ${CMAKE_CXX_COMPILER_VERSION}. " "Version ${GCC_MINIMUM_VERSION} or higher is required.") endif() -elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +elseif(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Clang") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${CLANG_MINIMUM_VERSION}") message(FATAL_ERROR "Insufficient clang version, found ${CMAKE_CXX_COMPILER_VERSION}. " "Version ${CLANG_MINIMUM_VERSION} or higher is required.") @@ -278,19 +294,20 @@ if(WIN32) set(CPACK_GENERATOR ZIP) else() - set(CPACK_GENERATOR WIX ZIP) + set(CPACK_GENERATOR WIX) set(CPACK_PACKAGE_NAME "${PROJECT_NAME_CAPITALIZED}") - set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME_CAPITALIZED}") + set(CPACK_PACKAGE_INSTALL_DIRECTORY ".") set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME} "${PROJECT_NAME_CAPITALIZED}") set(CPACK_CREATE_DESKTOP_LINKS ${PROJECT_NAME}) + set(CPACK_PACKAGING_INSTALL_PREFIX "/${PROJECT_NAME_CAPITALIZED}") - set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/misc/minetest-icon.ico") - # Supported languages can be found at + set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/misc/dragonfire-icon.ico") + # Supported languages can be found at # http://wixtoolset.org/documentation/manual/v3/wixui/wixui_localization.html #set(CPACK_WIX_CULTURES "ar-SA,bg-BG,ca-ES,hr-HR,cs-CZ,da-DK,nl-NL,en-US,et-EE,fi-FI,fr-FR,de-DE") set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_BANNER.BMP") set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_DIALOG.BMP") - + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/doc/lgpl-2.1.txt") # The correct way would be to include both x32 and x64 into one installer diff --git a/Dockerfile b/Dockerfile index 871ca9825..7cb6bec84 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ -FROM alpine:3.11 +FROM alpine:3.13 ENV MINETEST_GAME_VERSION master +ENV IRRLICHT_VERSION master COPY .git /usr/src/minetest/.git COPY CMakeLists.txt /usr/src/minetest/CMakeLists.txt @@ -18,9 +19,7 @@ COPY textures /usr/src/minetest/textures WORKDIR /usr/src/minetest -RUN apk add --no-cache git build-base irrlicht-dev cmake bzip2-dev libpng-dev \ - jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev \ - libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev \ +RUN apk add --no-cache git build-base cmake sqlite-dev curl-dev zlib-dev \ gmp-dev jsoncpp-dev postgresql-dev luajit-dev ca-certificates && \ git clone --depth=1 -b ${MINETEST_GAME_VERSION} https://github.com/minetest/minetest_game.git ./games/minetest_game && \ rm -fr ./games/minetest_game/.git @@ -36,6 +35,9 @@ RUN git clone --recursive https://github.com/jupp0r/prometheus-cpp/ && \ make -j2 && \ make install +RUN git clone --depth=1 https://github.com/minetest/irrlicht/ -b ${IRRLICHT_VERSION} && \ + cp -r irrlicht/include /usr/include/irrlichtmt + WORKDIR /usr/src/minetest RUN mkdir build && \ cd build && \ @@ -49,9 +51,9 @@ RUN mkdir build && \ make -j2 && \ make install -FROM alpine:3.11 +FROM alpine:3.13 -RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc libpq luajit && \ +RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc libpq luajit jsoncpp && \ adduser -D minetest --uid 30000 -h /var/lib/minetest && \ chown -R minetest:minetest /var/lib/minetest diff --git a/LICENSE.txt b/LICENSE.txt index f5c51833b..34ee8c9f0 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -11,6 +11,12 @@ http://creativecommons.org/licenses/by-sa/3.0/ textures/base/pack/refresh.png is under the Apache 2 license https://www.apache.org/licenses/LICENSE-2.0.html +Textures by Zughy are under CC BY-SA 4.0 +https://creativecommons.org/licenses/by-sa/4.0/ + +textures/base/pack/server_public.png is under CC-BY 4.0, taken from Twitter's Twemoji set +https://creativecommons.org/licenses/by/4.0/ + Authors of media files ----------------------- Everything not listed in here: @@ -23,21 +29,23 @@ paramat: textures/base/pack/menu_header.png textures/base/pack/next_icon.png textures/base/pack/prev_icon.png + textures/base/pack/clear.png + textures/base/pack/search.png rubenwardy, paramat: textures/base/pack/start_icon.png textures/base/pack/end_icon.png -erlehmann: - misc/minetest-icon-24x24.png - misc/minetest-icon.ico - misc/minetest.svg +EliasFleckenstein03: + misc/dragonfire-icon-24x24.png + misc/dragonfire-icon.ico + misc/dragonfire.svg textures/base/pack/logo.png -JRottm +JRottm: textures/base/pack/player_marker.png -srifqi +srifqi: textures/base/pack/chat_hide_btn.png textures/base/pack/chat_show_btn.png textures/base/pack/joystick_bg.png @@ -45,6 +53,17 @@ srifqi textures/base/pack/joystick_off.png textures/base/pack/minimap_btn.png +Zughy: + textures/base/pack/cdb_add.png + textures/base/pack/cdb_clear.png + textures/base/pack/cdb_downloading.png + textures/base/pack/cdb_queued.png + textures/base/pack/cdb_update.png + textures/base/pack/cdb_viewonline.png + +appgurueu: + textures/base/pack/server_incompatible.png + License of Minetest source code ------------------------------- @@ -68,7 +87,8 @@ with this program; if not, write to the Free Software Foundation, Inc., Irrlicht --------------- -This program uses the Irrlicht Engine. http://irrlicht.sourceforge.net/ +This program uses IrrlichtMt, Minetest's fork of +the Irrlicht Engine. http://irrlicht.sourceforge.net/ The Irrlicht Engine License diff --git a/README.md b/README.md index d7613601e..f1d599fec 100644 --- a/README.md +++ b/README.md @@ -38,10 +38,10 @@ Table of Contents Further documentation ---------------------- -- Website: http://minetest.net/ -- Wiki: http://wiki.minetest.net/ -- Developer wiki: http://dev.minetest.net/ -- Forum: http://forum.minetest.net/ +- Website: https://minetest.net/ +- Wiki: https://wiki.minetest.net/ +- Developer wiki: https://dev.minetest.net/ +- Forum: https://forum.minetest.net/ - GitHub: https://github.com/minetest/minetest/ - [doc/](doc/) directory of source distribution @@ -75,7 +75,7 @@ Some can be changed in the key config dialog in the settings tab. | P | Enable/disable pitch move mode | | J | Enable/disable fast mode (needs fast privilege) | | H | Enable/disable noclip mode (needs noclip privilege) | -| E | Move fast in fast mode | +| E | Aux1 (Move fast in fast mode. Games may add special features) | | C | Cycle through camera modes | | V | Cycle through minimap modes | | Shift + V | Change minimap orientation | @@ -140,8 +140,8 @@ Compiling | Dependency | Version | Commentary | |------------|---------|------------| | GCC | 4.9+ | Can be replaced with Clang 3.4+ | -| CMake | 2.6+ | | -| Irrlicht | 1.7.3+ | | +| CMake | 3.5+ | | +| IrrlichtMt | - | Custom version of Irrlicht, see https://github.com/minetest/irrlicht | | SQLite3 | 3.0+ | | | LuaJIT | 2.0+ | Bundled Lua 5.1 is used if not present | | GMP | 5.0.0+ | Bundled mini-GMP is used if not present | @@ -149,19 +149,19 @@ Compiling For Debian/Ubuntu users: - sudo apt install g++ make libc6-dev libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev + sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev For Fedora users: - sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel + sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel For Arch users: - sudo pacman -S base-devel libcurl-gnutls cmake libxxf86vm irrlicht libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses + sudo pacman -S base-devel libcurl-gnutls cmake libxxf86vm libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses For Alpine users: - sudo apk add build-base irrlicht-dev cmake bzip2-dev libpng-dev jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev + sudo apk add build-base cmake libpng-dev jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev #### Download @@ -216,8 +216,8 @@ Run it: - You can disable the client build by specifying `-DBUILD_CLIENT=FALSE`. - You can select between Release and Debug build by `-DCMAKE_BUILD_TYPE=`. - Debug build is slower, but gives much more useful output in a debugger. -- If you build a bare server you don't need to have Irrlicht installed. - - In that case use `-DIRRLICHT_SOURCE_DIR=/the/irrlicht/source`. +- If you build a bare server you don't need to have the Irrlicht or IrrlichtMt library installed. + - In that case use `-DIRRLICHT_INCLUDE_DIR=/some/where/irrlicht/include`. ### CMake options @@ -236,7 +236,7 @@ General options and their default values: ENABLE_CURSES=ON - Build with (n)curses; Enables a server side terminal (command line option: --terminal) ENABLE_FREETYPE=ON - Build with FreeType2; Allows using TTF fonts ENABLE_GETTEXT=ON - Build with Gettext; Allows using translations - ENABLE_GLES=OFF - Build for OpenGL ES instead of OpenGL (requires support by Irrlicht) + ENABLE_GLES=OFF - Build for OpenGL ES instead of OpenGL (requires support by IrrlichtMt) ENABLE_LEVELDB=ON - Build with LevelDB; Enables use of LevelDB map backend ENABLE_POSTGRESQL=ON - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended) ENABLE_REDIS=ON - Build with libhiredis; Enables use of Redis map backend @@ -245,7 +245,7 @@ General options and their default values: ENABLE_LUAJIT=ON - Build with LuaJIT (much faster than non-JIT Lua) ENABLE_PROMETHEUS=OFF - Build with Prometheus metrics exporter (listens on tcp/30000 by default) ENABLE_SYSTEM_GMP=ON - Use GMP from system (much faster than bundled mini-gmp) - ENABLE_SYSTEM_JSONCPP=OFF - Use JsonCPP from system + ENABLE_SYSTEM_JSONCPP=ON - Use JsonCPP from system OPENGL_GL_PREFERENCE=LEGACY - Linux client build only; See CMake Policy CMP0072 for reference RUN_IN_PLACE=FALSE - Create a portable install (worlds, settings etc. in current directory) USE_GPROF=FALSE - Enable profiling using GProf @@ -253,8 +253,6 @@ General options and their default values: Library specific options: - BZIP2_INCLUDE_DIR - Linux only; directory where bzlib.h is located - BZIP2_LIBRARY - Linux only; path to libbz2.a/libbz2.so CURL_DLL - Only if building with cURL on Windows; path to libcurl.dll CURL_INCLUDE_DIR - Only if building with cURL; directory where curl.h is located CURL_LIBRARY - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib @@ -264,14 +262,13 @@ Library specific options: FREETYPE_INCLUDE_DIR_ft2build - Only if building with FreeType 2; directory that contains ft2build.h FREETYPE_LIBRARY - Only if building with FreeType 2; path to libfreetype.a/libfreetype.so/freetype.lib FREETYPE_DLL - Only if building with FreeType 2 on Windows; path to libfreetype.dll - GETTEXT_DLL - Only when building with gettext on Windows; path to libintl3.dll - GETTEXT_ICONV_DLL - Only when building with gettext on Windows; path to libiconv2.dll + GETTEXT_DLL - Only when building with gettext on Windows; paths to libintl + libiconv DLLs GETTEXT_INCLUDE_DIR - Only when building with gettext; directory that contains iconv.h GETTEXT_LIBRARY - Only when building with gettext on Windows; path to libintl.dll.a GETTEXT_MSGFMT - Only when building with gettext; path to msgfmt/msgfmt.exe - IRRLICHT_DLL - Only on Windows; path to Irrlicht.dll + IRRLICHT_DLL - Only on Windows; path to IrrlichtMt.dll IRRLICHT_INCLUDE_DIR - Directory that contains IrrCompileConfig.h - IRRLICHT_LIBRARY - Path to libIrrlicht.a/libIrrlicht.so/libIrrlicht.dll.a/Irrlicht.lib + IRRLICHT_LIBRARY - Path to libIrrlichtMt.a/libIrrlichtMt.so/libIrrlichtMt.dll.a/IrrlichtMt.lib LEVELDB_INCLUDE_DIR - Only when building with LevelDB; directory that contains db.h LEVELDB_LIBRARY - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a LEVELDB_DLL - Only when building with LevelDB on Windows; path to libleveldb.dll @@ -283,7 +280,6 @@ Library specific options: SPATIAL_LIBRARY - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib LUA_INCLUDE_DIR - Only if you want to use LuaJIT; directory where luajit.h is located LUA_LIBRARY - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so - MINGWM10_DLL - Only if compiling with MinGW; path to mingwm10.dll OGG_DLL - Only if building with sound on Windows; path to libogg.dll OGG_INCLUDE_DIR - Only if building with sound; directory that contains an ogg directory which contains ogg.h OGG_LIBRARY - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a @@ -294,9 +290,8 @@ Library specific options: OPENGLES2_LIBRARY - Only if building with GLES; path to libGLESv2.a/libGLESv2.so SQLITE3_INCLUDE_DIR - Directory that contains sqlite3.h SQLITE3_LIBRARY - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib - VORBISFILE_DLL - Only if building with sound on Windows; path to libvorbisfile-3.dll VORBISFILE_LIBRARY - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a - VORBIS_DLL - Only if building with sound on Windows; path to libvorbis-0.dll + VORBIS_DLL - Only if building with sound on Windows; paths to vorbis DLLs VORBIS_INCLUDE_DIR - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside VORBIS_LIBRARY - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a XXF86VM_LIBRARY - Only on Linux; path to libXXf86vm.a/libXXf86vm.so @@ -321,9 +316,10 @@ It is highly recommended to use vcpkg as package manager. After you successfully built vcpkg you can easily install the required libraries: ```powershell -vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows +vcpkg install zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows ``` +- **Note that you currently need to build irrlicht on your own** - `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store. - `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound. - `freetype` is optional, it allows true-type font rendering. @@ -361,7 +357,7 @@ This is outdated and not recommended. Follow the instructions on https://dev.min Run the following script in PowerShell: ```powershell -cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF -DENABLE_SYSTEM_JSONCPP=ON +cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF cmake --build . --config Release ``` Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct. diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index fccb7b3b4..7f4eba8c4 100644 --- a/build/android/app/build.gradle +++ b/build/android/app/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 - buildToolsVersion '30.0.2' - ndkVersion '21.3.6528147' + buildToolsVersion '30.0.3' + ndkVersion '22.0.7026061' defaultConfig { applicationId 'net.minetest.minetest' minSdkVersion 16 diff --git a/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java b/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java index db126a2b9..38a388230 100644 --- a/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java +++ b/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java @@ -142,8 +142,8 @@ public class GameActivity extends NativeActivity { return getResources().getDisplayMetrics().widthPixels; } - public void openURL(String url) { - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + public void openURI(String uri) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); startActivity(browserIntent); } } diff --git a/build/android/build.gradle b/build/android/build.gradle index 111a506e1..3ba51a4bb 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -1,10 +1,10 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. project.ext.set("versionMajor", 5) // Version Major -project.ext.set("versionMinor", 3) // Version Minor +project.ext.set("versionMinor", 5) // Version Minor project.ext.set("versionPatch", 0) // Version Patch project.ext.set("versionExtra", "-dev") // Version Extra -project.ext.set("versionCode", 30) // Android Version Code +project.ext.set("versionCode", 32) // Android Version Code // NOTE: +2 after each release! // +1 for ARM and +1 for ARM64 APK's, because // each APK must have a larger `versionCode` than the previous @@ -15,7 +15,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:4.1.1' classpath 'de.undercouch:gradle-download-task:4.1.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties index ed85703f3..7fd9307d7 100644 --- a/build/android/gradle/wrapper/gradle-wrapper.properties +++ b/build/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Sep 07 22:11:10 CEST 2020 +#Fri Jan 08 17:52:00 UTC 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-all.zip diff --git a/build/android/icons/aux1_btn.svg b/build/android/icons/aux1_btn.svg new file mode 100644 index 000000000..e0ee97c0c --- /dev/null +++ b/build/android/icons/aux1_btn.svg @@ -0,0 +1,143 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + Aux1 + + + diff --git a/build/android/icons/aux_btn.svg b/build/android/icons/aux_btn.svg deleted file mode 100644 index 6bbefff67..000000000 --- a/build/android/icons/aux_btn.svg +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - AUX - - diff --git a/build/android/native/build.gradle b/build/android/native/build.gradle index 69e1cf461..8ea6347b3 100644 --- a/build/android/native/build.gradle +++ b/build/android/native/build.gradle @@ -3,8 +3,8 @@ apply plugin: 'de.undercouch.download' android { compileSdkVersion 29 - buildToolsVersion '30.0.2' - ndkVersion '21.3.6528147' + buildToolsVersion '30.0.3' + ndkVersion '22.0.7026061' defaultConfig { minSdkVersion 16 targetSdkVersion 29 @@ -71,7 +71,7 @@ task getDeps(dependsOn: downloadDeps, type: Copy) { } // get sqlite -def sqlite_ver = '3320200' +def sqlite_ver = '3340000' task downloadSqlite(dependsOn: getDeps, type: Download) { src 'https://www.sqlite.org/2020/sqlite-amalgamation-' + sqlite_ver + '.zip' dest new File(buildDir, 'sqlite.zip') diff --git a/build/android/native/jni/Android.mk b/build/android/native/jni/Android.mk index 140947e6a..477392af0 100644 --- a/build/android/native/jni/Android.mk +++ b/build/android/native/jni/Android.mk @@ -14,7 +14,7 @@ include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := Irrlicht -LOCAL_SRC_FILES := deps/Android/Irrlicht/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libIrrlicht.a +LOCAL_SRC_FILES := deps/Android/Irrlicht/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libIrrlichtMt.a include $(PREBUILT_STATIC_LIBRARY) #include $(CLEAR_VARS) @@ -47,18 +47,6 @@ LOCAL_MODULE := OpenAL LOCAL_SRC_FILES := deps/Android/OpenAL-Soft/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libopenal.a include $(PREBUILT_STATIC_LIBRARY) -# You can use `OpenSSL and Crypto` instead `mbedTLS mbedx509 mbedcrypto`, -#but it increase APK size on ~0.7MB -#include $(CLEAR_VARS) -#LOCAL_MODULE := OpenSSL -#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libssl.a -#include $(PREBUILT_STATIC_LIBRARY) - -#include $(CLEAR_VARS) -#LOCAL_MODULE := Crypto -#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcrypto.a -#include $(PREBUILT_STATIC_LIBRARY) - include $(CLEAR_VARS) LOCAL_MODULE := Vorbis LOCAL_SRC_FILES := deps/Android/Vorbis/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libvorbis.a @@ -207,7 +195,6 @@ LOCAL_SRC_FILES += \ LOCAL_SRC_FILES += deps/Android/sqlite/sqlite3.c LOCAL_STATIC_LIBRARIES += Curl Freetype Irrlicht OpenAL mbedTLS mbedx509 mbedcrypto Vorbis LuaJIT android_native_app_glue $(PROFILER_LIBS) #LevelDB -#OpenSSL Crypto LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES diff --git a/builtin/client/chatcommands.lua b/builtin/client/chatcommands.lua index a45a76dfe..37308efd9 100644 --- a/builtin/client/chatcommands.lua +++ b/builtin/client/chatcommands.lua @@ -7,7 +7,7 @@ core.register_on_sending_chat_message(function(message) local first_char = message:sub(1,1) if first_char == "/" or first_char == "." then - core.display_chat_message(core.gettext("issued command: ") .. message) + core.display_chat_message(core.gettext("Issued command: ") .. message) end if first_char ~= "." then @@ -18,7 +18,7 @@ core.register_on_sending_chat_message(function(message) param = param or "" if not cmd then - core.display_chat_message(core.gettext("-!- Empty command")) + core.display_chat_message("-!- " .. core.gettext("Empty command.")) return true end @@ -35,7 +35,7 @@ core.register_on_sending_chat_message(function(message) core.display_chat_message(result) end else - core.display_chat_message(core.gettext("-!- Invalid command: ") .. cmd) + core.display_chat_message("-!- " .. core.gettext("Invalid command: ") .. cmd) end return true @@ -66,23 +66,10 @@ core.register_chatcommand("teleport", { end, }) -core.register_chatcommand("teleportjump", { - params = ",,", - description = "Teleport to relative coordinates.", - func = function(param) - local success, pos = core.parse_relative_pos(param) - if success then - core.localplayer:set_pos(pos) - return true, "Teleporting to " .. core.pos_to_string(pos) - end - return false, pos - end, -}) - core.register_chatcommand("wielded", { description = "Print itemstring of wieleded item", func = function() - return true, core.localplayer:get_wielded_item():get_name() + return true, core.localplayer:get_wielded_item():to_string() end }) @@ -174,7 +161,7 @@ core.register_chatcommand("setyaw", { core.localplayer:set_yaw(yaw) return true else - return false, "Invalid usage (See /help setyaw)" + return false, "Invalid usage (See .help setyaw)" end end }) @@ -188,7 +175,10 @@ core.register_chatcommand("setpitch", { core.localplayer:set_pitch(pitch) return true else - return false, "Invalid usage (See /help setpitch)" + return false, "Invalid usage (See .help setpitch)" end end }) + +core.register_list_command("xray", "Configure X-Ray", "xray_nodes") +core.register_list_command("search", "Configure NodeESP", "node_esp_nodes") diff --git a/builtin/client/cheats.lua b/builtin/client/cheats.lua index 72a308078..8feb0dc8c 100644 --- a/builtin/client/cheats.lua +++ b/builtin/client/cheats.lua @@ -1,7 +1,6 @@ core.cheats = { ["Combat"] = { ["AntiKnockback"] = "antiknockback", - ["FastHit"] = "spamclick", ["AttachmentFloat"] = "float_above_parent", ["ThroughWalls"] = "dont_point_nodes", ["AutoHit"] = "autohit", @@ -37,16 +36,16 @@ core.cheats = { ["NodeESP"] = "enable_node_esp", ["NodeTracers"] = "enable_node_tracers", }, - ["World"] = { + ["Interact"] = { ["FastDig"] = "fastdig", ["FastPlace"] = "fastplace", ["AutoDig"] = "autodig", ["AutoPlace"] = "autoplace", ["InstantBreak"] = "instant_break", + ["FastHit"] = "spamclick", }, ["Exploit"] = { ["EntitySpeed"] = "entity_speed", - ["ParticleExploit"] = "log_particles", }, ["Chat"] = { ["IgnoreStatus"] = "ignore_status_messages", @@ -55,12 +54,11 @@ core.cheats = { ["Player"] = { ["NoFallDamage"] = "prevent_natural_damage", ["NoForceRotate"] = "no_force_rotate", - ["IncreasedRange"] = "increase_tool_range", - ["UnlimitedRange"] = "increase_tool_range_plus", + ["Reach"] = "reach", ["PointLiquids"] = "point_liquids", ["PrivBypass"] = "priv_bypass", + ["AutoRespawn"] = "autorespawn", }, - ["Chat"] = {}, ["Inventory"] = {} } diff --git a/builtin/client/death_formspec.lua b/builtin/client/death_formspec.lua new file mode 100644 index 000000000..6d6fd6fd9 --- /dev/null +++ b/builtin/client/death_formspec.lua @@ -0,0 +1,38 @@ +local death_formspec = "" + .. "size[11,5.5]" + .. "bgcolor[#320000b4;true]" + .. "label[4.85,1.35;" .. "You died" .. "]" + .. "button_exit[2,3;3,0.5;btn_respawn;" .. "Respawn" .. "]" + .. "button_exit[6,3;3,0.5;btn_ghost_mode;" .. "Ghost Mode" .. "]" + .. "set_focus[btn_respawn;true]" + +core.register_on_death(function() + core.display_chat_message("You died at " .. core.pos_to_string(vector.round(core.localplayer:get_pos())) .. ".") + if core.settings:get_bool("autorespawn") then + core.send_respawn() + else + core.show_formspec("bultin:death", death_formspec) + end +end) + +core.register_on_formspec_input(function(formname, fields) + if formname == "bultin:death" then + if fields.btn_ghost_mode then + core.display_chat_message("You are in ghost mode. Use .respawn to Respawn.") + else + core.send_respawn() + end + end +end) + +core.register_chatcommand("respawn", { + description = "Respawn when in ghost mode", + func = function() + if core.localplayer:get_hp() == 0 then + core.send_respawn() + core.display_chat_message("Respawned.") + else + core.display_chat_message("You are not in ghost mode.") + end + end +}) diff --git a/builtin/client/init.lua b/builtin/client/init.lua index 3d5d429e9..a937e30cf 100644 --- a/builtin/client/init.lua +++ b/builtin/client/init.lua @@ -11,3 +11,4 @@ dofile(clientpath .. "util.lua") dofile(clientpath .. "chatcommands.lua") dofile(clientpath .. "cheats.lua") dofile(clientpath .. "wasplib.lua") +dofile(clientpath .. "death_formspec.lua") diff --git a/builtin/client/register.lua b/builtin/client/register.lua index d62d2bfa7..dcedca304 100644 --- a/builtin/client/register.lua +++ b/builtin/client/register.lua @@ -110,3 +110,10 @@ core.registered_on_play_sound, core.register_on_play_sound = make_registration() core.registered_on_spawn_particle, core.register_on_spawn_particle = make_registration() core.registered_on_sending_inventory_fields, core.register_on_sending_inventory_fields = make_registration() core.registered_on_sending_nodemeta_fields, core.register_on_sending_nodemeta_fields = make_registration() +core.registered_on_object_properties_change, core.register_on_object_properties_change = make_registration() +core.registered_on_object_hp_change, core.register_on_object_hp_change = make_registration() +core.registered_on_object_add, core.register_on_object_add = make_registration() + +core.registered_nodes = {} +core.registered_items = {} +core.object_refs = {} diff --git a/builtin/client/util.lua b/builtin/client/util.lua index aaeb70921..cd09ae251 100644 --- a/builtin/client/util.lua +++ b/builtin/client/util.lua @@ -44,3 +44,27 @@ end function core.close_formspec(formname) return core.show_formspec(formname, "") end + +function core.get_nearby_objects(radius) + return core.get_objects_inside_radius(core.localplayer:get_pos(), radius) +end + +-- HTTP callback interface + +function core.http_add_fetch(httpenv) + httpenv.fetch = function(req, callback) + local handle = httpenv.fetch_async(req) + + local function update_http_status() + local res = httpenv.fetch_async_get(handle) + if res.completed then + callback(res) + else + core.after(0, update_http_status) + end + end + core.after(0, update_http_status) + end + + return httpenv +end diff --git a/builtin/common/chatcommands.lua b/builtin/common/chatcommands.lua index 564a973db..c5e7e1867 100644 --- a/builtin/common/chatcommands.lua +++ b/builtin/common/chatcommands.lua @@ -1,5 +1,9 @@ -- Minetest: builtin/common/chatcommands.lua +-- For server-side translations (if INIT == "game") +-- Otherwise, use core.gettext +local S = core.get_translator("__builtin") + core.registered_chatcommands = {} function core.register_chatcommand(cmd, def) @@ -49,7 +53,7 @@ if INIT == "client" then local i = table.indexof(list, item) if i == -1 then return false, item .. " is not on the list." - else + else table.remove(list, i) core.settings:set(setting, table.concat(list, ",")) return true, "Removed " .. item .. " from the list." @@ -74,25 +78,12 @@ if INIT == "client" then end end -local cmd_marker = "/" - -local function gettext(...) - return ... -end - -local function gettext_replace(text, replace) - return text:gsub("$1", replace) -end - - -if INIT == "client" then - cmd_marker = "." - gettext = core.gettext - gettext_replace = fgettext_ne -end - local function do_help_cmd(name, param) local function format_help_line(cmd, def) + local cmd_marker = "/" + if INIT == "client" then + cmd_marker = "." + end local msg = core.colorize("#00ffff", cmd_marker .. cmd) if def.params and def.params ~= "" then msg = msg .. " " .. def.params @@ -110,9 +101,21 @@ local function do_help_cmd(name, param) end end table.sort(cmds) - return true, gettext("Available commands: ") .. table.concat(cmds, " ") .. "\n" - .. gettext_replace("Use '$1help ' to get more information," - .. " or '$1help all' to list everything.", cmd_marker) + local msg + if INIT == "game" then + msg = S("Available commands: @1", + table.concat(cmds, " ")) .. "\n" + .. S("Use '/help ' to get more " + .. "information, or '/help all' to list " + .. "everything.") + else + msg = core.gettext("Available commands: ") + .. table.concat(cmds, " ") .. "\n" + .. core.gettext("Use '.help ' to get more " + .. "information, or '.help all' to list " + .. "everything.") + end + return true, msg elseif param == "all" then local cmds = {} for cmd, def in pairs(core.registered_chatcommands) do @@ -121,19 +124,31 @@ local function do_help_cmd(name, param) end end table.sort(cmds) - return true, gettext("Available commands:").."\n"..table.concat(cmds, "\n") + local msg + if INIT == "game" then + msg = S("Available commands:") + else + msg = core.gettext("Available commands:") + end + return true, msg.."\n"..table.concat(cmds, "\n") elseif INIT == "game" and param == "privs" then local privs = {} for priv, def in pairs(core.registered_privileges) do privs[#privs + 1] = priv .. ": " .. def.description end table.sort(privs) - return true, "Available privileges:\n"..table.concat(privs, "\n") + return true, S("Available privileges:").."\n"..table.concat(privs, "\n") else local cmd = param local def = core.registered_chatcommands[cmd] if not def then - return false, gettext("Command not available: ")..cmd + local msg + if INIT == "game" then + msg = S("Command not available: @1", cmd) + else + msg = core.gettext("Command not available: ") .. cmd + end + return false, msg else return true, format_help_line(cmd, def) end @@ -142,8 +157,8 @@ end if INIT == "client" then core.register_chatcommand("help", { - params = gettext("[all | ]"), - description = gettext("Get help for commands"), + params = core.gettext("[all | ]"), + description = core.gettext("Get help for commands"), func = function(param) return do_help_cmd(nil, param) end, @@ -193,8 +208,8 @@ if INIT == "client" then end else core.register_chatcommand("help", { - params = "[all | privs | ]", - description = "Get help for commands or list privileges", + params = S("[all | privs | ]"), + description = S("Get help for commands or list privileges"), func = do_help_cmd, }) end diff --git a/builtin/common/information_formspecs.lua b/builtin/common/information_formspecs.lua index 8afa5bc87..e814b4c43 100644 --- a/builtin/common/information_formspecs.lua +++ b/builtin/common/information_formspecs.lua @@ -20,7 +20,8 @@ local LIST_FORMSPEC_DESCRIPTION = [[ button_exit[5,7;3,1;quit;%s] ]] -local formspec_escape = core.formspec_escape +local F = core.formspec_escape +local S = core.get_translator("__builtin") local check_player_privs = core.check_player_privs @@ -51,22 +52,23 @@ core.after(0, load_mod_command_tree) local function build_chatcommands_formspec(name, sel, copy) local rows = {} - rows[1] = "#FFF,0,Command,Parameters" + rows[1] = "#FFF,0,"..F(S("Command"))..","..F(S("Parameters")) - local description = "For more information, click on any entry in the list.\n" .. - "Double-click to copy the entry to the chat history." + local description = S("For more information, click on " + .. "any entry in the list.").. "\n" .. + S("Double-click to copy the entry to the chat history.") for i, data in ipairs(mod_cmds) do - rows[#rows + 1] = COLOR_BLUE .. ",0," .. formspec_escape(data[1]) .. "," + rows[#rows + 1] = COLOR_BLUE .. ",0," .. F(data[1]) .. "," for j, cmds in ipairs(data[2]) do local has_priv = check_player_privs(name, cmds[2].privs) rows[#rows + 1] = ("%s,1,%s,%s"):format( has_priv and COLOR_GREEN or COLOR_GRAY, - cmds[1], formspec_escape(cmds[2].params)) + cmds[1], F(cmds[2].params)) if sel == #rows then description = cmds[2].description if copy then - core.chat_send_player(name, ("Command: %s %s"):format( + core.chat_send_player(name, S("Command: @1 @2", core.colorize("#0FF", "/" .. cmds[1]), cmds[2].params)) end end @@ -74,9 +76,9 @@ local function build_chatcommands_formspec(name, sel, copy) end return LIST_FORMSPEC_DESCRIPTION:format( - "Available commands: (see also: /help )", + F(S("Available commands: (see also: /help )")), table.concat(rows, ","), sel or 0, - description, "Close" + F(description), F(S("Close")) ) end @@ -91,19 +93,19 @@ local function build_privs_formspec(name) table.sort(privs, function(a, b) return a[1] < b[1] end) local rows = {} - rows[1] = "#FFF,0,Privilege,Description" + rows[1] = "#FFF,0,"..F(S("Privilege"))..","..F(S("Description")) local player_privs = core.get_player_privs(name) for i, data in ipairs(privs) do rows[#rows + 1] = ("%s,0,%s,%s"):format( player_privs[data[1]] and COLOR_GREEN or COLOR_GRAY, - data[1], formspec_escape(data[2].description)) + data[1], F(data[2].description)) end return LIST_FORMSPEC:format( - "Available privileges:", + F(S("Available privileges:")), table.concat(rows, ","), - "Close" + F(S("Close")) ) end @@ -115,7 +117,7 @@ core.register_on_player_receive_fields(function(player, formname, fields) return end - local event = minetest.explode_table_event(fields.list) + local event = core.explode_table_event(fields.list) if event.type ~= "INV" then local name = player:get_player_name() core.show_formspec(name, "__builtin:help_cmds", diff --git a/builtin/common/misc_helpers.lua b/builtin/common/misc_helpers.lua index 64d67bc72..324d83b07 100644 --- a/builtin/common/misc_helpers.lua +++ b/builtin/common/misc_helpers.lua @@ -244,6 +244,15 @@ function math.factorial(x) return v end + +function math.round(x) + if x >= 0 then + return math.floor(x + 0.5) + end + return math.ceil(x - 0.5) +end + + function core.formspec_escape(text) if text ~= nil then text = string.gsub(text,"\\","\\\\") @@ -516,6 +525,7 @@ function table.shuffle(t, from, to, random) end end + function table.combine(t, other) other = other or {} for k, v in pairs(other) do @@ -595,22 +605,21 @@ function core.colorize(color, message) end local function rgb_to_hex(rgb) - local hexadecimal = '#' + local hexadecimal = "#" for key, value in pairs(rgb) do - local hex = '' + local hex = "" while(value > 0)do local index = math.fmod(value, 16) + 1 value = math.floor(value / 16) - hex = string.sub('0123456789ABCDEF', index, index) .. hex + hex = string.sub("0123456789ABCDEF", index, index) .. hex end if(string.len(hex) == 0)then - hex = '00' - + hex = "00" elseif(string.len(hex) == 1)then - hex = '0' .. hex + hex = "0" .. hex end hexadecimal = hexadecimal .. hex @@ -622,21 +631,21 @@ end local function color_from_hue(hue) local h = hue / 60 local c = 255 - local x = (1 - math.abs(h%2 - 1)) * 255 + local x = (1 - math.abs(h % 2 - 1)) * 255 - local i = math.floor(h); - if (i == 0) then + local i = math.floor(h) + if i == 0 then return rgb_to_hex({c, x, 0}) - elseif (i == 1) then + elseif i == 1 then return rgb_to_hex({x, c, 0}) - elseif (i == 2) then + elseif i == 2 then return rgb_to_hex({0, c, x}) - elseif (i == 3) then - return rgb_to_hex({0, x, c}); - elseif (i == 4) then - return rgb_to_hex({x, 0, c}); - else - return rgb_to_hex({c, 0, x}); + elseif i == 3 then + return rgb_to_hex({0, x, c}) + elseif i == 4 then + return rgb_to_hex({x, 0, c}) + else + return rgb_to_hex({c, 0, x}) end end @@ -645,13 +654,13 @@ function core.rainbow(input) local hue = 0 local output = "" for i = 1, input:len() do - local char = input:sub(i,i) + local char = input:sub(i, i) if char:match("%s") then output = output .. char else - output = output .. core.get_color_escape_sequence(color_from_hue(hue)) .. char + output = output .. core.get_color_escape_sequence(color_from_hue(hue)) .. char end - hue = hue + step + hue = hue + step end return output end @@ -781,3 +790,16 @@ function core.privs_to_string(privs, delim) end return table.concat(list, delim) end + +function core.is_nan(number) + return number ~= number +end + +function core.inventorycube(img1, img2, img3) + img2 = img2 or img1 + img3 = img3 or img1 + return "[inventorycube" + .. "{" .. img1:gsub("%^", "&") + .. "{" .. img2:gsub("%^", "&") + .. "{" .. img3:gsub("%^", "&") +end diff --git a/builtin/common/tests/vector_spec.lua b/builtin/common/tests/vector_spec.lua index 0f287363a..104c656e9 100644 --- a/builtin/common/tests/vector_spec.lua +++ b/builtin/common/tests/vector_spec.lua @@ -48,6 +48,25 @@ describe("vector", function() assert.same({ x = 41, y = 52, z = 63 }, vector.offset(vector.new(1, 2, 3), 40, 50, 60)) end) + it("to_string()", function() + local v = vector.new(1, 2, 3.14) + assert.same("(1, 2, 3.14)", vector.to_string(v)) + end) + + it("from_string()", function() + local v = vector.new(1, 2, 3.14) + assert.same({v, 13}, {vector.from_string("(1, 2, 3.14)")}) + assert.same({v, 12}, {vector.from_string("(1,2 ,3.14)")}) + assert.same({v, 12}, {vector.from_string("(1,2,3.14,)")}) + assert.same({v, 11}, {vector.from_string("(1 2 3.14)")}) + assert.same({v, 15}, {vector.from_string("( 1, 2, 3.14 )")}) + assert.same({v, 15}, {vector.from_string(" ( 1, 2, 3.14) ")}) + assert.same({vector.new(), 8}, {vector.from_string("(0,0,0) ( 1, 2, 3.14) ")}) + assert.same({v, 22}, {vector.from_string("(0,0,0) ( 1, 2, 3.14) ", 8)}) + assert.same({v, 22}, {vector.from_string("(0,0,0) ( 1, 2, 3.14) ", 9)}) + assert.same(nil, vector.from_string("nothing")) + end) + -- This function is needed because of floating point imprecision. local function almost_equal(a, b) if type(a) == "number" then diff --git a/builtin/common/vector.lua b/builtin/common/vector.lua index d6437deda..2ef8fc617 100644 --- a/builtin/common/vector.lua +++ b/builtin/common/vector.lua @@ -12,6 +12,22 @@ function vector.new(a, b, c) return {x=0, y=0, z=0} end +function vector.from_string(s, init) + local x, y, z, np = string.match(s, "^%s*%(%s*([^%s,]+)%s*[,%s]%s*([^%s,]+)%s*[,%s]" .. + "%s*([^%s,]+)%s*[,%s]?%s*%)()", init) + x = tonumber(x) + y = tonumber(y) + z = tonumber(z) + if not (x and y and z) then + return nil + end + return {x = x, y = y, z = z}, np +end + +function vector.to_string(v) + return string.format("(%g, %g, %g)", v.x, v.y, v.z) +end + function vector.equals(a, b) return a.x == b.x and a.y == b.y and @@ -41,9 +57,9 @@ end function vector.round(v) return { - x = math.floor(v.x + 0.5), - y = math.floor(v.y + 0.5), - z = math.floor(v.z + 0.5) + x = math.round(v.x), + y = math.round(v.y), + z = math.round(v.z) } end diff --git a/builtin/fstk/tabview.lua b/builtin/fstk/tabview.lua index 3715e231b..424d329fb 100644 --- a/builtin/fstk/tabview.lua +++ b/builtin/fstk/tabview.lua @@ -58,26 +58,20 @@ end -------------------------------------------------------------------------------- local function get_formspec(self) - local formspec = "" - - if not self.hidden and (self.parent == nil or not self.parent.hidden) then - - if self.parent == nil then - local tsize = self.tablist[self.last_tab_index].tabsize or - {width=self.width, height=self.height} - formspec = formspec .. - string.format("size[%f,%f,%s]",tsize.width,tsize.height, - dump(self.fixed_size)) - end - formspec = formspec .. self:tab_header() - formspec = formspec .. - self.tablist[self.last_tab_index].get_formspec( - self, - self.tablist[self.last_tab_index].name, - self.tablist[self.last_tab_index].tabdata, - self.tablist[self.last_tab_index].tabsize - ) + if self.hidden or (self.parent ~= nil and self.parent.hidden) then + return "" end + local tab = self.tablist[self.last_tab_index] + + local content, prepend = tab.get_formspec(self, tab.name, tab.tabdata, tab.tabsize) + + if self.parent == nil and not prepend then + local tsize = tab.tabsize or {width=self.width, height=self.height} + prepend = string.format("size[%f,%f,%s]", tsize.width, tsize.height, + dump(self.fixed_size)) + end + + local formspec = (prepend or "") .. self:tab_header() .. content return formspec end @@ -97,14 +91,9 @@ local function handle_buttons(self,fields) return true end - if self.tablist[self.last_tab_index].button_handler ~= nil then - return - self.tablist[self.last_tab_index].button_handler( - self, - fields, - self.tablist[self.last_tab_index].name, - self.tablist[self.last_tab_index].tabdata - ) + local tab = self.tablist[self.last_tab_index] + if tab.button_handler ~= nil then + return tab.button_handler(self, fields, tab.name, tab.tabdata) end return false @@ -122,14 +111,9 @@ local function handle_events(self,event) return true end - if self.tablist[self.last_tab_index].evt_handler ~= nil then - return - self.tablist[self.last_tab_index].evt_handler( - self, - event, - self.tablist[self.last_tab_index].name, - self.tablist[self.last_tab_index].tabdata - ) + local tab = self.tablist[self.last_tab_index] + if tab.evt_handler ~= nil then + return tab.evt_handler(self, event, tab.name, tab.tabdata) end return false diff --git a/builtin/fstk/ui.lua b/builtin/fstk/ui.lua index 7eeebdd47..976659ed3 100644 --- a/builtin/fstk/ui.lua +++ b/builtin/fstk/ui.lua @@ -18,6 +18,8 @@ ui = {} ui.childlist = {} ui.default = nil +-- Whether fstk is currently showing its own formspec instead of active ui elements. +ui.overridden = false -------------------------------------------------------------------------------- function ui.add(child) @@ -55,6 +57,7 @@ end -------------------------------------------------------------------------------- function ui.update() + ui.overridden = false local formspec = {} -- handle errors @@ -71,6 +74,7 @@ function ui.update() "button[2,6.6;4,1;btn_reconnect_yes;" .. fgettext("Reconnect") .. "]", "button[8,6.6;4,1;btn_reconnect_no;" .. fgettext("Main menu") .. "]" } + ui.overridden = true elseif gamedata ~= nil and gamedata.errormessage ~= nil then local error_message = core.formspec_escape(gamedata.errormessage) @@ -89,6 +93,7 @@ function ui.update() error_title, error_message), "button[5,6.6;4,1;btn_error_confirm;" .. fgettext("OK") .. "]" } + ui.overridden = true else local active_toplevel_ui_elements = 0 for key,value in pairs(ui.childlist) do @@ -185,6 +190,16 @@ end -------------------------------------------------------------------------------- core.event_handler = function(event) + -- Handle error messages + if ui.overridden then + if event == "MenuQuit" then + gamedata.errormessage = nil + gamedata.reconnect_requested = false + ui.update() + end + return + end + if ui.handle_events(event) then ui.update() return diff --git a/builtin/game/chat.lua b/builtin/game/chat.lua index 945707623..0bd12c25f 100644 --- a/builtin/game/chat.lua +++ b/builtin/game/chat.lua @@ -1,5 +1,7 @@ -- Minetest: builtin/game/chat.lua +local S = core.get_translator("__builtin") + -- Helper function that implements search and replace without pattern matching -- Returns the string and a boolean indicating whether or not the string was modified local function safe_gsub(s, replace, with) @@ -45,6 +47,8 @@ end core.chatcommands = core.registered_chatcommands -- BACKWARDS COMPATIBILITY +local msg_time_threshold = + tonumber(core.settings:get("chatcommand_msg_time_threshold")) or 0.1 core.register_on_chat_message(function(name, message) if message:sub(1,1) ~= "/" then return @@ -52,7 +56,7 @@ core.register_on_chat_message(function(name, message) local cmd, param = string.match(message, "^/([^ ]+) *(.*)") if not cmd then - core.chat_send_player(name, "-!- Empty command") + core.chat_send_player(name, "-!- "..S("Empty command.")) return true end @@ -65,15 +69,17 @@ core.register_on_chat_message(function(name, message) local cmd_def = core.registered_chatcommands[cmd] if not cmd_def then - core.chat_send_player(name, "-!- Invalid command: " .. cmd) + core.chat_send_player(name, "-!- "..S("Invalid command: @1", cmd)) return true end local has_privs, missing_privs = core.check_player_privs(name, cmd_def.privs) if has_privs then core.set_last_run_mod(cmd_def.mod_origin) + local t_before = core.get_us_time() local success, result = cmd_def.func(name, param) + local delay = (core.get_us_time() - t_before) / 1000000 if success == false and result == nil then - core.chat_send_player(name, "-!- Invalid command usage") + core.chat_send_player(name, "-!- "..S("Invalid command usage.")) local help_def = core.registered_chatcommands["help"] if help_def then local _, helpmsg = help_def.func(name, cmd) @@ -81,13 +87,27 @@ core.register_on_chat_message(function(name, message) core.chat_send_player(name, helpmsg) end end - elseif result then - core.chat_send_player(name, result) + else + if delay > msg_time_threshold then + -- Show how much time it took to execute the command + if result then + result = result .. core.colorize("#f3d2ff", S(" (@1 s)", + string.format("%.5f", delay))) + else + result = core.colorize("#f3d2ff", S( + "Command execution took @1 s", + string.format("%.5f", delay))) + end + end + if result then + core.chat_send_player(name, result) + end end else - core.chat_send_player(name, "You don't have permission" - .. " to run this command (missing privileges: " - .. table.concat(missing_privs, ", ") .. ")") + core.chat_send_player(name, + S("You don't have permission to run this command " + .. "(missing privileges: @1).", + table.concat(missing_privs, ", "))) end return true -- Handled chat message end) @@ -107,12 +127,13 @@ local function parse_range_str(player_name, str) if args[1] == "here" then p1, p2 = core.get_player_radius_area(player_name, tonumber(args[2])) if p1 == nil then - return false, "Unable to get player " .. player_name .. " position" + return false, S("Unable to get position of player @1.", player_name) end else p1, p2 = core.string_to_area(str) if p1 == nil then - return false, "Incorrect area format. Expected: (x1,y1,z1) (x2,y2,z2)" + return false, S("Incorrect area format. " + .. "Expected: (x1,y1,z1) (x2,y2,z2)") end end @@ -123,9 +144,9 @@ end -- Chat commands -- core.register_chatcommand("me", { - params = "", - description = "Show chat action (e.g., '/me orders a pizza' displays" - .. " ' orders a pizza')", + params = S(""), + description = S("Show chat action (e.g., '/me orders a pizza' " + .. "displays ' orders a pizza')"), privs = {shout=true}, func = function(name, param) core.chat_send_all("* " .. name .. " " .. param) @@ -134,43 +155,54 @@ core.register_chatcommand("me", { }) core.register_chatcommand("admin", { - description = "Show the name of the server owner", + description = S("Show the name of the server owner"), func = function(name) local admin = core.settings:get("name") if admin then - return true, "The administrator of this server is " .. admin .. "." + return true, S("The administrator of this server is @1.", admin) else - return false, "There's no administrator named in the config file." + return false, S("There's no administrator named " + .. "in the config file.") end end, }) +local function privileges_of(name, privs) + if not privs then + privs = core.get_player_privs(name) + end + local privstr = core.privs_to_string(privs, ", ") + if privstr == "" then + return S("@1 does not have any privileges.", name) + else + return S("Privileges of @1: @2", name, privstr) + end +end + core.register_chatcommand("privs", { - params = "[]", - description = "Show privileges of yourself or another player", + params = S("[]"), + description = S("Show privileges of yourself or another player"), func = function(caller, param) param = param:trim() local name = (param ~= "" and param or caller) if not core.player_exists(name) then - return false, "Player " .. name .. " does not exist." + return false, S("Player @1 does not exist.", name) end - return true, "Privileges of " .. name .. ": " - .. core.privs_to_string( - core.get_player_privs(name), ", ") + return true, privileges_of(name) end, }) core.register_chatcommand("haspriv", { - params = "", - description = "Return list of all online players with privilege.", + params = S(""), + description = S("Return list of all online players with privilege"), privs = {basic_privs = true}, func = function(caller, param) param = param:trim() if param == "" then - return false, "Invalid parameters (see /help haspriv)" + return false, S("Invalid parameters (see /help haspriv).") end if not core.registered_privileges[param] then - return false, "Unknown privilege!" + return false, S("Unknown privilege!") end local privs = core.string_to_privs(param) local players_with_priv = {} @@ -180,19 +212,20 @@ core.register_chatcommand("haspriv", { table.insert(players_with_priv, player_name) end end - return true, "Players online with the \"" .. param .. "\" privilege: " .. - table.concat(players_with_priv, ", ") + return true, S("Players online with the \"@1\" privilege: @2", + param, + table.concat(players_with_priv, ", ")) end }) local function handle_grant_command(caller, grantname, grantprivstr) local caller_privs = core.get_player_privs(caller) if not (caller_privs.privs or caller_privs.basic_privs) then - return false, "Your privileges are insufficient." + return false, S("Your privileges are insufficient.") end if not core.get_auth_handler().get_auth(grantname) then - return false, "Player " .. grantname .. " does not exist." + return false, S("Player @1 does not exist.", grantname) end local grantprivs = core.string_to_privs(grantprivstr) if grantprivstr == "all" then @@ -204,10 +237,13 @@ local function handle_grant_command(caller, grantname, grantprivstr) core.string_to_privs(core.settings:get("basic_privs") or "interact,shout") for priv, _ in pairs(grantprivs) do if not basic_privs[priv] and not caller_privs.privs then - return false, "Your privileges are insufficient." + return false, S("Your privileges are insufficient. ".. + "'@1' only allows you to grant: @2", + "basic_privs", + core.privs_to_string(basic_privs, ', ')) end if not core.registered_privileges[priv] then - privs_unknown = privs_unknown .. "Unknown privilege: " .. priv .. "\n" + privs_unknown = privs_unknown .. S("Unknown privilege: @1", priv) .. "\n" end privs[priv] = true end @@ -221,33 +257,31 @@ local function handle_grant_command(caller, grantname, grantprivstr) core.set_player_privs(grantname, privs) core.log("action", caller..' granted ('..core.privs_to_string(grantprivs, ', ')..') privileges to '..grantname) if grantname ~= caller then - core.chat_send_player(grantname, caller - .. " granted you privileges: " - .. core.privs_to_string(grantprivs, ' ')) + core.chat_send_player(grantname, + S("@1 granted you privileges: @2", caller, + core.privs_to_string(grantprivs, ', '))) end - return true, "Privileges of " .. grantname .. ": " - .. core.privs_to_string( - core.get_player_privs(grantname), ' ') + return true, privileges_of(grantname) end core.register_chatcommand("grant", { - params = " ( | all)", - description = "Give privileges to player", + params = S(" ( [, [<...>]] | all)"), + description = S("Give privileges to player"), func = function(name, param) local grantname, grantprivstr = string.match(param, "([^ ]+) (.+)") if not grantname or not grantprivstr then - return false, "Invalid parameters (see /help grant)" + return false, S("Invalid parameters (see /help grant).") end return handle_grant_command(name, grantname, grantprivstr) end, }) core.register_chatcommand("grantme", { - params = " | all", - description = "Grant privileges to yourself", + params = S(" [, [<...>]] | all"), + description = S("Grant privileges to yourself"), func = function(name, param) if param == "" then - return false, "Invalid parameters (see /help grantme)" + return false, S("Invalid parameters (see /help grantme).") end return handle_grant_command(name, name, param) end, @@ -256,23 +290,20 @@ core.register_chatcommand("grantme", { local function handle_revoke_command(caller, revokename, revokeprivstr) local caller_privs = core.get_player_privs(caller) if not (caller_privs.privs or caller_privs.basic_privs) then - return false, "Your privileges are insufficient." + return false, S("Your privileges are insufficient.") end if not core.get_auth_handler().get_auth(revokename) then - return false, "Player " .. revokename .. " does not exist." + return false, S("Player @1 does not exist.", revokename) end + local privs = core.get_player_privs(revokename) + local revokeprivs = core.string_to_privs(revokeprivstr) - local privs = core.get_player_privs(revokename) - local basic_privs = - core.string_to_privs(core.settings:get("basic_privs") or "interact,shout") - for priv, _ in pairs(revokeprivs) do - if not basic_privs[priv] and not caller_privs.privs then - return false, "Your privileges are insufficient." - end - end - + local is_singleplayer = core.is_singleplayer() + local is_admin = not is_singleplayer + and revokename == core.settings:get("name") + and revokename ~= "" if revokeprivstr == "all" then revokeprivs = privs privs = {} @@ -282,53 +313,99 @@ local function handle_revoke_command(caller, revokename, revokeprivstr) end end + local privs_unknown = "" + local basic_privs = + core.string_to_privs(core.settings:get("basic_privs") or "interact,shout") + local irrevokable = {} + local has_irrevokable_priv = false + for priv, _ in pairs(revokeprivs) do + if not basic_privs[priv] and not caller_privs.privs then + return false, S("Your privileges are insufficient. ".. + "'@1' only allows you to revoke: @2", + "basic_privs", + core.privs_to_string(basic_privs, ', ')) + end + local def = core.registered_privileges[priv] + if not def then + privs_unknown = privs_unknown .. S("Unknown privilege: @1", priv) .. "\n" + elseif is_singleplayer and def.give_to_singleplayer then + irrevokable[priv] = true + elseif is_admin and def.give_to_admin then + irrevokable[priv] = true + end + end + for priv, _ in pairs(irrevokable) do + revokeprivs[priv] = nil + has_irrevokable_priv = true + end + if privs_unknown ~= "" then + return false, privs_unknown + end + if has_irrevokable_priv then + if is_singleplayer then + core.chat_send_player(caller, + S("Note: Cannot revoke in singleplayer: @1", + core.privs_to_string(irrevokable, ', '))) + elseif is_admin then + core.chat_send_player(caller, + S("Note: Cannot revoke from admin: @1", + core.privs_to_string(irrevokable, ', '))) + end + end + + local revokecount = 0 for priv, _ in pairs(revokeprivs) do -- call the on_revoke callbacks core.run_priv_callbacks(revokename, priv, caller, "revoke") + revokecount = revokecount + 1 end core.set_player_privs(revokename, privs) + local new_privs = core.get_player_privs(revokename) + + if revokecount == 0 then + return false, S("No privileges were revoked.") + end + core.log("action", caller..' revoked (' ..core.privs_to_string(revokeprivs, ', ') ..') privileges from '..revokename) if revokename ~= caller then - core.chat_send_player(revokename, caller - .. " revoked privileges from you: " - .. core.privs_to_string(revokeprivs, ' ')) + core.chat_send_player(revokename, + S("@1 revoked privileges from you: @2", caller, + core.privs_to_string(revokeprivs, ', '))) end - return true, "Privileges of " .. revokename .. ": " - .. core.privs_to_string( - core.get_player_privs(revokename), ' ') + return true, privileges_of(revokename, new_privs) end core.register_chatcommand("revoke", { - params = " ( | all)", - description = "Remove privileges from player", + params = S(" ( [, [<...>]] | all)"), + description = S("Remove privileges from player"), privs = {}, func = function(name, param) local revokename, revokeprivstr = string.match(param, "([^ ]+) (.+)") if not revokename or not revokeprivstr then - return false, "Invalid parameters (see /help revoke)" + return false, S("Invalid parameters (see /help revoke).") end return handle_revoke_command(name, revokename, revokeprivstr) end, }) core.register_chatcommand("revokeme", { - params = " | all", - description = "Revoke privileges from yourself", + params = S(" [, [<...>]] | all"), + description = S("Revoke privileges from yourself"), privs = {}, func = function(name, param) if param == "" then - return false, "Invalid parameters (see /help revokeme)" + return false, S("Invalid parameters (see /help revokeme).") end return handle_revoke_command(name, name, param) end, }) core.register_chatcommand("setpassword", { - params = " ", - description = "Set player's password", + params = S(" "), + description = S("Set player's password"), privs = {password=true}, func = function(name, param) local toname, raw_password = string.match(param, "^([^ ]+) +(.+)$") @@ -338,207 +415,197 @@ core.register_chatcommand("setpassword", { end if not toname then - return false, "Name field required" + return false, S("Name field required.") end - local act_str_past, act_str_pres + local msg_chat, msg_log, msg_ret if not raw_password then core.set_player_password(toname, "") - act_str_past = "cleared" - act_str_pres = "clears" + msg_chat = S("Your password was cleared by @1.", name) + msg_log = name .. " clears password of " .. toname .. "." + msg_ret = S("Password of player \"@1\" cleared.", toname) else core.set_player_password(toname, core.get_password_hash(toname, raw_password)) - act_str_past = "set" - act_str_pres = "sets" + msg_chat = S("Your password was set by @1.", name) + msg_log = name .. " sets password of " .. toname .. "." + msg_ret = S("Password of player \"@1\" set.", toname) end if toname ~= name then - core.chat_send_player(toname, "Your password was " - .. act_str_past .. " by " .. name) + core.chat_send_player(toname, msg_chat) end - core.log("action", name .. " " .. act_str_pres .. - " password of " .. toname .. ".") + core.log("action", msg_log) - return true, "Password of player \"" .. toname .. "\" " .. act_str_past + return true, msg_ret end, }) core.register_chatcommand("clearpassword", { - params = "", - description = "Set empty password for a player", + params = S(""), + description = S("Set empty password for a player"), privs = {password=true}, func = function(name, param) local toname = param if toname == "" then - return false, "Name field required" + return false, S("Name field required.") end core.set_player_password(toname, '') core.log("action", name .. " clears password of " .. toname .. ".") - return true, "Password of player \"" .. toname .. "\" cleared" + return true, S("Password of player \"@1\" cleared.", toname) end, }) core.register_chatcommand("auth_reload", { params = "", - description = "Reload authentication data", + description = S("Reload authentication data"), privs = {server=true}, func = function(name, param) local done = core.auth_reload() - return done, (done and "Done." or "Failed.") + return done, (done and S("Done.") or S("Failed.")) end, }) core.register_chatcommand("remove_player", { - params = "", - description = "Remove a player's data", + params = S(""), + description = S("Remove a player's data"), privs = {server=true}, func = function(name, param) local toname = param if toname == "" then - return false, "Name field required" + return false, S("Name field required.") end local rc = core.remove_player(toname) if rc == 0 then core.log("action", name .. " removed player data of " .. toname .. ".") - return true, "Player \"" .. toname .. "\" removed." + return true, S("Player \"@1\" removed.", toname) elseif rc == 1 then - return true, "No such player \"" .. toname .. "\" to remove." + return true, S("No such player \"@1\" to remove.", toname) elseif rc == 2 then - return true, "Player \"" .. toname .. "\" is connected, cannot remove." + return true, S("Player \"@1\" is connected, cannot remove.", toname) end - return false, "Unhandled remove_player return code " .. rc .. "" + return false, S("Unhandled remove_player return code @1.", tostring(rc)) end, }) + +-- pos may be a non-integer position +local function find_free_position_near(pos) + local tries = { + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=0, z=1}, + {x=0, y=0, z=-1}, + } + for _, d in ipairs(tries) do + local p = vector.add(pos, d) + local n = core.get_node_or_nil(p) + if n then + local def = core.registered_nodes[n.name] + if def and not def.walkable then + return p + end + end + end + return pos +end + +-- Teleports player to

if possible +local function teleport_to_pos(name, p) + local lm = 31000 + if p.x < -lm or p.x > lm or p.y < -lm or p.y > lm + or p.z < -lm or p.z > lm then + return false, S("Cannot teleport out of map bounds!") + end + local teleportee = core.get_player_by_name(name) + if not teleportee then + return false, S("Cannot get player with name @1.", name) + end + if teleportee:get_attach() then + return false, S("Cannot teleport, @1 " .. + "is attached to an object!", name) + end + teleportee:set_pos(p) + return true, S("Teleporting @1 to @2.", name, core.pos_to_string(p, 1)) +end + +-- Teleports player next to player if possible +local function teleport_to_player(name, target_name) + if name == target_name then + return false, S("One does not teleport to oneself.") + end + local teleportee = core.get_player_by_name(name) + if not teleportee then + return false, S("Cannot get teleportee with name @1.", name) + end + if teleportee:get_attach() then + return false, S("Cannot teleport, @1 " .. + "is attached to an object!", name) + end + local target = core.get_player_by_name(target_name) + if not target then + return false, S("Cannot get target player with name @1.", target_name) + end + local p = find_free_position_near(target:get_pos()) + teleportee:set_pos(p) + return true, S("Teleporting @1 to @2 at @3.", name, target_name, + core.pos_to_string(p, 1)) +end + core.register_chatcommand("teleport", { - params = ",, | | ( ,,) | ( )", - description = "Teleport to position or player", + params = S(",, | | ,, | "), + description = S("Teleport to position or player"), privs = {teleport=true}, func = function(name, param) - -- Returns (pos, true) if found, otherwise (pos, false) - local function find_free_position_near(pos) - local tries = { - {x=1,y=0,z=0}, - {x=-1,y=0,z=0}, - {x=0,y=0,z=1}, - {x=0,y=0,z=-1}, - } - for _, d in ipairs(tries) do - local p = {x = pos.x+d.x, y = pos.y+d.y, z = pos.z+d.z} - local n = core.get_node_or_nil(p) - if n and n.name then - local def = core.registered_nodes[n.name] - if def and not def.walkable then - return p, true - end - end - end - return pos, false - end - local p = {} - p.x, p.y, p.z = string.match(param, "^([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$") - p.x = tonumber(p.x) - p.y = tonumber(p.y) - p.z = tonumber(p.z) + p.x, p.y, p.z = param:match("^([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$") + p = vector.apply(p, tonumber) if p.x and p.y and p.z then - - local lm = 31000 - if p.x < -lm or p.x > lm or p.y < -lm or p.y > lm or p.z < -lm or p.z > lm then - return false, "Cannot teleport out of map bounds!" - end - local teleportee = core.get_player_by_name(name) - if teleportee then - if teleportee:get_attach() then - return false, "Can't teleport, you're attached to an object!" - end - teleportee:set_pos(p) - return true, "Teleporting to "..core.pos_to_string(p) - end + return teleport_to_pos(name, p) end local target_name = param:match("^([^ ]+)$") - local teleportee = core.get_player_by_name(name) - - p = nil if target_name then - local target = core.get_player_by_name(target_name) - if target then - p = target:get_pos() - end + return teleport_to_player(name, target_name) end - if teleportee and p then - if teleportee:get_attach() then - return false, "Can't teleport, you're attached to an object!" - end - p = find_free_position_near(p) - teleportee:set_pos(p) - return true, "Teleporting to " .. target_name - .. " at "..core.pos_to_string(p) - end + local has_bring_priv = core.check_player_privs(name, {bring=true}) + local missing_bring_msg = S("You don't have permission to teleport " .. + "other players (missing privilege: @1).", "bring") - if not core.check_player_privs(name, {bring=true}) then - return false, "You don't have permission to teleport other players (missing bring privilege)" - end - - teleportee = nil - p = {} local teleportee_name teleportee_name, p.x, p.y, p.z = param:match( "^([^ ]+) +([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$") - p.x, p.y, p.z = tonumber(p.x), tonumber(p.y), tonumber(p.z) - if teleportee_name then - teleportee = core.get_player_by_name(teleportee_name) - end - if teleportee and p.x and p.y and p.z then - if teleportee:get_attach() then - return false, "Can't teleport, player is attached to an object!" + p = vector.apply(p, tonumber) + if teleportee_name and p.x and p.y and p.z then + if not has_bring_priv then + return false, missing_bring_msg end - teleportee:set_pos(p) - return true, "Teleporting " .. teleportee_name - .. " to " .. core.pos_to_string(p) + return teleport_to_pos(teleportee_name, p) end - teleportee = nil - p = nil teleportee_name, target_name = string.match(param, "^([^ ]+) +([^ ]+)$") - if teleportee_name then - teleportee = core.get_player_by_name(teleportee_name) - end - if target_name then - local target = core.get_player_by_name(target_name) - if target then - p = target:get_pos() + if teleportee_name and target_name then + if not has_bring_priv then + return false, missing_bring_msg end - end - if teleportee and p then - if teleportee:get_attach() then - return false, "Can't teleport, player is attached to an object!" - end - p = find_free_position_near(p) - teleportee:set_pos(p) - return true, "Teleporting " .. teleportee_name - .. " to " .. target_name - .. " at " .. core.pos_to_string(p) + return teleport_to_player(teleportee_name, target_name) end - return false, 'Invalid parameters ("' .. param - .. '") or player not found (see /help teleport)' + return false end, }) core.register_chatcommand("set", { - params = "([-n] ) | ", - description = "Set or read server configuration setting", + params = S("([-n] ) | "), + description = S("Set or read server configuration setting"), privs = {server=true}, func = function(name, param) local arg, setname, setvalue = string.match(param, "(-[n]) ([^ ]+) (.+)") @@ -550,22 +617,23 @@ core.register_chatcommand("set", { setname, setvalue = string.match(param, "([^ ]+) (.+)") if setname and setvalue then if not core.settings:get(setname) then - return false, "Failed. Use '/set -n ' to create a new setting." + return false, S("Failed. Use '/set -n ' " + .. "to create a new setting.") end core.settings:set(setname, setvalue) - return true, setname .. " = " .. setvalue + return true, S("@1 = @2", setname, setvalue) end setname = string.match(param, "([^ ]+)") if setname then setvalue = core.settings:get(setname) if not setvalue then - setvalue = "" + setvalue = S("") end - return true, setname .. " = " .. setvalue + return true, S("@1 = @2", setname, setvalue) end - return false, "Invalid parameters (see /help set)." + return false, S("Invalid parameters (see /help set).") end, }) @@ -578,26 +646,27 @@ local function emergeblocks_callback(pos, action, num_calls_remaining, ctx) if ctx.current_blocks == ctx.total_blocks then core.chat_send_player(ctx.requestor_name, - string.format("Finished emerging %d blocks in %.2fms.", - ctx.total_blocks, (os.clock() - ctx.start_time) * 1000)) + S("Finished emerging @1 blocks in @2ms.", + ctx.total_blocks, + string.format("%.2f", (os.clock() - ctx.start_time) * 1000))) end end local function emergeblocks_progress_update(ctx) if ctx.current_blocks ~= ctx.total_blocks then core.chat_send_player(ctx.requestor_name, - string.format("emergeblocks update: %d/%d blocks emerged (%.1f%%)", + S("emergeblocks update: @1/@2 blocks emerged (@3%)", ctx.current_blocks, ctx.total_blocks, - (ctx.current_blocks / ctx.total_blocks) * 100)) + string.format("%.1f", (ctx.current_blocks / ctx.total_blocks) * 100))) core.after(2, emergeblocks_progress_update, ctx) end end core.register_chatcommand("emergeblocks", { - params = "(here []) | ( )", - description = "Load (or, if nonexistent, generate) map blocks " - .. "contained in area pos1 to pos2 ( and must be in parentheses)", + params = S("(here []) | ( )"), + description = S("Load (or, if nonexistent, generate) map blocks contained in " + .. "area pos1 to pos2 ( and must be in parentheses)"), privs = {server=true}, func = function(name, param) local p1, p2 = parse_range_str(name, param) @@ -615,15 +684,15 @@ core.register_chatcommand("emergeblocks", { core.emerge_area(p1, p2, emergeblocks_callback, context) core.after(2, emergeblocks_progress_update, context) - return true, "Started emerge of area ranging from " .. - core.pos_to_string(p1, 1) .. " to " .. core.pos_to_string(p2, 1) + return true, S("Started emerge of area ranging from @1 to @2.", + core.pos_to_string(p1, 1), core.pos_to_string(p2, 1)) end, }) core.register_chatcommand("deleteblocks", { - params = "(here []) | ( )", - description = "Delete map blocks contained in area pos1 to pos2 " - .. "( and must be in parentheses)", + params = S("(here []) | ( )"), + description = S("Delete map blocks contained in area pos1 to pos2 " + .. "( and must be in parentheses)"), privs = {server=true}, func = function(name, param) local p1, p2 = parse_range_str(name, param) @@ -632,18 +701,20 @@ core.register_chatcommand("deleteblocks", { end if core.delete_area(p1, p2) then - return true, "Successfully cleared area ranging from " .. - core.pos_to_string(p1, 1) .. " to " .. core.pos_to_string(p2, 1) + return true, S("Successfully cleared area " + .. "ranging from @1 to @2.", + core.pos_to_string(p1, 1), core.pos_to_string(p2, 1)) else - return false, "Failed to clear one or more blocks in area" + return false, S("Failed to clear one or more " + .. "blocks in area.") end end, }) core.register_chatcommand("fixlight", { - params = "(here []) | ( )", - description = "Resets lighting in the area between pos1 and pos2 " - .. "( and must be in parentheses)", + params = S("(here []) | ( )"), + description = S("Resets lighting in the area between pos1 and pos2 " + .. "( and must be in parentheses)"), privs = {server = true}, func = function(name, param) local p1, p2 = parse_range_str(name, param) @@ -652,17 +723,18 @@ core.register_chatcommand("fixlight", { end if core.fix_light(p1, p2) then - return true, "Successfully reset light in the area ranging from " .. - core.pos_to_string(p1, 1) .. " to " .. core.pos_to_string(p2, 1) + return true, S("Successfully reset light in the area " + .. "ranging from @1 to @2.", + core.pos_to_string(p1, 1), core.pos_to_string(p2, 1)) else - return false, "Failed to load one or more blocks in area" + return false, S("Failed to load one or more blocks in area.") end end, }) core.register_chatcommand("mods", { params = "", - description = "List mods installed on the server", + description = S("List mods installed on the server"), privs = {}, func = function(name, param) return true, table.concat(core.get_modnames(), ", ") @@ -674,117 +746,136 @@ local function handle_give_command(cmd, giver, receiver, stackstring) .. ', stackstring="' .. stackstring .. '"') local itemstack = ItemStack(stackstring) if itemstack:is_empty() then - return false, "Cannot give an empty item" + return false, S("Cannot give an empty item.") elseif (not itemstack:is_known()) or (itemstack:get_name() == "unknown") then - return false, "Cannot give an unknown item" + return false, S("Cannot give an unknown item.") -- Forbid giving 'ignore' due to unwanted side effects elseif itemstack:get_name() == "ignore" then - return false, "Giving 'ignore' is not allowed" + return false, S("Giving 'ignore' is not allowed.") end local receiverref = core.get_player_by_name(receiver) if receiverref == nil then - return false, receiver .. " is not a known player" + return false, S("@1 is not a known player.", receiver) end local leftover = receiverref:get_inventory():add_item("main", itemstack) local partiality if leftover:is_empty() then - partiality = "" + partiality = nil elseif leftover:get_count() == itemstack:get_count() then - partiality = "could not be " + partiality = false else - partiality = "partially " + partiality = true end -- The actual item stack string may be different from what the "giver" -- entered (e.g. big numbers are always interpreted as 2^16-1). stackstring = itemstack:to_string() - if giver == receiver then - local msg = "%q %sadded to inventory." - return true, msg:format(stackstring, partiality) + local msg + if partiality == true then + msg = S("@1 partially added to inventory.", stackstring) + elseif partiality == false then + msg = S("@1 could not be added to inventory.", stackstring) else - core.chat_send_player(receiver, ("%q %sadded to inventory.") - :format(stackstring, partiality)) - local msg = "%q %sadded to %s's inventory." - return true, msg:format(stackstring, partiality, receiver) + msg = S("@1 added to inventory.", stackstring) + end + if giver == receiver then + return true, msg + else + core.chat_send_player(receiver, msg) + local msg_other + if partiality == true then + msg_other = S("@1 partially added to inventory of @2.", + stackstring, receiver) + elseif partiality == false then + msg_other = S("@1 could not be added to inventory of @2.", + stackstring, receiver) + else + msg_other = S("@1 added to inventory of @2.", + stackstring, receiver) + end + return true, msg_other end end core.register_chatcommand("give", { - params = " [ []]", - description = "Give item to player", + params = S(" [ []]"), + description = S("Give item to player"), privs = {give=true}, func = function(name, param) local toname, itemstring = string.match(param, "^([^ ]+) +(.+)$") if not toname or not itemstring then - return false, "Name and ItemString required" + return false, S("Name and ItemString required.") end return handle_give_command("/give", name, toname, itemstring) end, }) core.register_chatcommand("giveme", { - params = " [ []]", - description = "Give item to yourself", + params = S(" [ []]"), + description = S("Give item to yourself"), privs = {give=true}, func = function(name, param) local itemstring = string.match(param, "(.+)$") if not itemstring then - return false, "ItemString required" + return false, S("ItemString required.") end return handle_give_command("/giveme", name, name, itemstring) end, }) core.register_chatcommand("spawnentity", { - params = " [,,]", - description = "Spawn entity at given (or your) position", + params = S(" [,,]"), + description = S("Spawn entity at given (or your) position"), privs = {give=true, interact=true}, func = function(name, param) local entityname, p = string.match(param, "^([^ ]+) *(.*)$") if not entityname then - return false, "EntityName required" + return false, S("EntityName required.") end core.log("action", ("%s invokes /spawnentity, entityname=%q") :format(name, entityname)) local player = core.get_player_by_name(name) if player == nil then core.log("error", "Unable to spawn entity, player is nil") - return false, "Unable to spawn entity, player is nil" + return false, S("Unable to spawn entity, player is nil.") end if not core.registered_entities[entityname] then - return false, "Cannot spawn an unknown entity" + return false, S("Cannot spawn an unknown entity.") end if p == "" then p = player:get_pos() else p = core.string_to_pos(p) if p == nil then - return false, "Invalid parameters ('" .. param .. "')" + return false, S("Invalid parameters (@1).", param) end end p.y = p.y + 1 local obj = core.add_entity(p, entityname) - local msg = obj and "%q spawned." or "%q failed to spawn." - return true, msg:format(entityname) + if obj then + return true, S("@1 spawned.", entityname) + else + return true, S("@1 failed to spawn.", entityname) + end end, }) core.register_chatcommand("pulverize", { params = "", - description = "Destroy item in hand", + description = S("Destroy item in hand"), func = function(name, param) local player = core.get_player_by_name(name) if not player then core.log("error", "Unable to pulverize, no player.") - return false, "Unable to pulverize, no player." + return false, S("Unable to pulverize, no player.") end local wielded_item = player:get_wielded_item() if wielded_item:is_empty() then - return false, "Unable to pulverize, no item in hand." + return false, S("Unable to pulverize, no item in hand.") end core.log("action", name .. " pulverized \"" .. wielded_item:get_name() .. " " .. wielded_item:get_count() .. "\"") player:set_wielded_item(nil) - return true, "An item was pulverized." + return true, S("An item was pulverized.") end, }) @@ -800,14 +891,15 @@ core.register_on_punchnode(function(pos, node, puncher) end) core.register_chatcommand("rollback_check", { - params = "[] [] []", - description = "Check who last touched a node or a node near it" - .. " within the time specified by . Default: range = 0," - .. " seconds = 86400 = 24h, limit = 5. Set to inf for no time limit", + params = S("[] [] []"), + description = S("Check who last touched a node or a node near it " + .. "within the time specified by . " + .. "Default: range = 0, seconds = 86400 = 24h, limit = 5. " + .. "Set to inf for no time limit"), privs = {rollback=true}, func = function(name, param) if not core.settings:get_bool("enable_rollback_recording") then - return false, "Rollback functions are disabled." + return false, S("Rollback functions are disabled.") end local range, seconds, limit = param:match("(%d+) *(%d*) *(%d*)") @@ -815,30 +907,30 @@ core.register_chatcommand("rollback_check", { seconds = tonumber(seconds) or 86400 limit = tonumber(limit) or 5 if limit > 100 then - return false, "That limit is too high!" + return false, S("That limit is too high!") end core.rollback_punch_callbacks[name] = function(pos, node, puncher) local name = puncher:get_player_name() - core.chat_send_player(name, "Checking " .. core.pos_to_string(pos) .. "...") + core.chat_send_player(name, S("Checking @1 ...", core.pos_to_string(pos))) local actions = core.rollback_get_node_actions(pos, range, seconds, limit) if not actions then - core.chat_send_player(name, "Rollback functions are disabled") + core.chat_send_player(name, S("Rollback functions are disabled.")) return end local num_actions = #actions if num_actions == 0 then - core.chat_send_player(name, "Nobody has touched" - .. " the specified location in " - .. seconds .. " seconds") + core.chat_send_player(name, + S("Nobody has touched the specified " + .. "location in @1 seconds.", + seconds)) return end local time = os.time() for i = num_actions, 1, -1 do local action = actions[i] core.chat_send_player(name, - ("%s %s %s -> %s %d seconds ago.") - :format( + S("@1 @2 @3 -> @4 @5 seconds ago.", core.pos_to_string(action.pos), action.actor, action.oldnode.name, @@ -847,110 +939,123 @@ core.register_chatcommand("rollback_check", { end end - return true, "Punch a node (range=" .. range .. ", seconds=" - .. seconds .. "s, limit=" .. limit .. ")" + return true, S("Punch a node (range=@1, seconds=@2, limit=@3).", + range, seconds, limit) end, }) core.register_chatcommand("rollback", { - params = "( []) | (: [])", - description = "Revert actions of a player. Default for is 60. Set to inf for no time limit", + params = S("( []) | (: [])"), + description = S("Revert actions of a player. " + .. "Default for is 60. " + .. "Set to inf for no time limit"), privs = {rollback=true}, func = function(name, param) if not core.settings:get_bool("enable_rollback_recording") then - return false, "Rollback functions are disabled." + return false, S("Rollback functions are disabled.") end local target_name, seconds = string.match(param, ":([^ ]+) *(%d*)") + local rev_msg if not target_name then local player_name player_name, seconds = string.match(param, "([^ ]+) *(%d*)") if not player_name then - return false, "Invalid parameters. See /help rollback" - .. " and /help rollback_check." + return false, S("Invalid parameters. " + .. "See /help rollback and " + .. "/help rollback_check.") end + seconds = tonumber(seconds) or 60 target_name = "player:"..player_name + rev_msg = S("Reverting actions of player '@1' since @2 seconds.", + player_name, seconds) + else + seconds = tonumber(seconds) or 60 + rev_msg = S("Reverting actions of @1 since @2 seconds.", + target_name, seconds) end - seconds = tonumber(seconds) or 60 - core.chat_send_player(name, "Reverting actions of " - .. target_name .. " since " - .. seconds .. " seconds.") + core.chat_send_player(name, rev_msg) local success, log = core.rollback_revert_actions_by( target_name, seconds) local response = "" if #log > 100 then - response = "(log is too long to show)\n" + response = S("(log is too long to show)").."\n" else for _, line in pairs(log) do response = response .. line .. "\n" end end - response = response .. "Reverting actions " - .. (success and "succeeded." or "FAILED.") + if success then + response = response .. S("Reverting actions succeeded.") + else + response = response .. S("Reverting actions FAILED.") + end return success, response end, }) core.register_chatcommand("status", { - description = "Show server status", + description = S("Show server status"), func = function(name, param) local status = core.get_server_status(name, false) if status and status ~= "" then return true, status end - return false, "This command was disabled by a mod or game" + return false, S("This command was disabled by a mod or game.") end, }) core.register_chatcommand("time", { - params = "[<0..23>:<0..59> | <0..24000>]", - description = "Show or set time of day", + params = S("[<0..23>:<0..59> | <0..24000>]"), + description = S("Show or set time of day"), privs = {}, func = function(name, param) if param == "" then local current_time = math.floor(core.get_timeofday() * 1440) local minutes = current_time % 60 local hour = (current_time - minutes) / 60 - return true, ("Current time is %d:%02d"):format(hour, minutes) + return true, S("Current time is @1:@2.", + string.format("%d", hour), + string.format("%02d", minutes)) end local player_privs = core.get_player_privs(name) if not player_privs.settime then - return false, "You don't have permission to run this command " .. - "(missing privilege: settime)." + return false, S("You don't have permission to run " + .. "this command (missing privilege: @1).", "settime") end local hour, minute = param:match("^(%d+):(%d+)$") if not hour then local new_time = tonumber(param) if not new_time then - return false, "Invalid time." + return false, S("Invalid time.") end -- Backward compatibility. core.set_timeofday((new_time % 24000) / 24000) core.log("action", name .. " sets time to " .. new_time) - return true, "Time of day changed." + return true, S("Time of day changed.") end hour = tonumber(hour) minute = tonumber(minute) if hour < 0 or hour > 23 then - return false, "Invalid hour (must be between 0 and 23 inclusive)." + return false, S("Invalid hour (must be between 0 and 23 inclusive).") elseif minute < 0 or minute > 59 then - return false, "Invalid minute (must be between 0 and 59 inclusive)." + return false, S("Invalid minute (must be between 0 and 59 inclusive).") end core.set_timeofday((hour * 60 + minute) / 1440) core.log("action", ("%s sets time to %d:%02d"):format(name, hour, minute)) - return true, "Time of day changed." + return true, S("Time of day changed.") end, }) core.register_chatcommand("days", { - description = "Show day count since world creation", + description = S("Show day count since world creation"), func = function(name, param) - return true, "Current day is " .. core.get_day_count() + return true, S("Current day is @1.", core.get_day_count()) end }) core.register_chatcommand("shutdown", { - params = "[ | -1] [reconnect] []", - description = "Shutdown server (-1 cancels a delayed shutdown)", + params = S("[ | -1] [reconnect] []"), + description = S("Shutdown server (-1 cancels a delayed shutdown)"), privs = {server=true}, func = function(name, param) local delay, reconnect, message @@ -963,7 +1068,7 @@ core.register_chatcommand("shutdown", { if delay == 0 then core.log("action", name .. " shuts down server") - core.chat_send_all("*** Server shutting down (operator request).") + core.chat_send_all("*** "..S("Server shutting down (operator request).")) end core.request_shutdown(message:trim(), core.is_yes(reconnect), delay) return true @@ -971,65 +1076,65 @@ core.register_chatcommand("shutdown", { }) core.register_chatcommand("ban", { - params = "[]", - description = "Ban the IP of a player or show the ban list", + params = S("[]"), + description = S("Ban the IP of a player or show the ban list"), privs = {ban=true}, func = function(name, param) if param == "" then local ban_list = core.get_ban_list() if ban_list == "" then - return true, "The ban list is empty." + return true, S("The ban list is empty.") else - return true, "Ban list: " .. ban_list + return true, S("Ban list: @1", ban_list) end end if not core.get_player_by_name(param) then - return false, "Player is not online." + return false, S("Player is not online.") end if not core.ban_player(param) then - return false, "Failed to ban player." + return false, S("Failed to ban player.") end local desc = core.get_ban_description(param) core.log("action", name .. " bans " .. desc .. ".") - return true, "Banned " .. desc .. "." + return true, S("Banned @1.", desc) end, }) core.register_chatcommand("unban", { - params = " | ", - description = "Remove IP ban belonging to a player/IP", + params = S(" | "), + description = S("Remove IP ban belonging to a player/IP"), privs = {ban=true}, func = function(name, param) if not core.unban_player_or_ip(param) then - return false, "Failed to unban player/IP." + return false, S("Failed to unban player/IP.") end core.log("action", name .. " unbans " .. param) - return true, "Unbanned " .. param + return true, S("Unbanned @1.", param) end, }) core.register_chatcommand("kick", { - params = " []", - description = "Kick a player", + params = S(" []"), + description = S("Kick a player"), privs = {kick=true}, func = function(name, param) local tokick, reason = param:match("([^ ]+) (.+)") tokick = tokick or param if not core.kick_player(tokick, reason) then - return false, "Failed to kick player " .. tokick + return false, S("Failed to kick player @1.", tokick) end local log_reason = "" if reason then log_reason = " with reason \"" .. reason .. "\"" end core.log("action", name .. " kicks " .. tokick .. log_reason) - return true, "Kicked " .. tokick + return true, S("Kicked @1.", tokick) end, }) core.register_chatcommand("clearobjects", { - params = "[full | quick]", - description = "Clear all objects in world", + params = S("[full | quick]"), + description = S("Clear all objects in world"), privs = {server=true}, func = function(name, param) local options = {} @@ -1038,45 +1143,44 @@ core.register_chatcommand("clearobjects", { elseif param == "full" then options.mode = "full" else - return false, "Invalid usage, see /help clearobjects." + return false, S("Invalid usage, see /help clearobjects.") end - core.log("action", name .. " clears all objects (" + core.log("action", name .. " clears objects (" .. options.mode .. " mode).") - core.chat_send_all("Clearing all objects. This may take a long time." - .. " You may experience a timeout. (by " - .. name .. ")") + if options.mode == "full" then + core.chat_send_all(S("Clearing all objects. This may take a long time. " + .. "You may experience a timeout. (by @1)", name)) + end core.clear_objects(options) core.log("action", "Object clearing done.") - core.chat_send_all("*** Cleared all objects.") + core.chat_send_all("*** "..S("Cleared all objects.")) return true end, }) core.register_chatcommand("msg", { - params = " ", - description = "Send a direct message to a player", + params = S(" "), + description = S("Send a direct message to a player"), privs = {shout=true}, func = function(name, param) local sendto, message = param:match("^(%S+)%s(.+)$") if not sendto then - return false, "Invalid usage, see /help msg." + return false, S("Invalid usage, see /help msg.") end if not core.get_player_by_name(sendto) then - return false, "The player " .. sendto - .. " is not online." + return false, S("The player @1 is not online.", sendto) end core.log("action", "DM from " .. name .. " to " .. sendto .. ": " .. message) - core.chat_send_player(sendto, "DM from " .. name .. ": " - .. message) - return true, "Message sent." + core.chat_send_player(sendto, S("DM from @1: @2", name, message)) + return true, S("Message sent.") end, }) core.register_chatcommand("last-login", { - params = "[]", - description = "Get the last login time of a player or yourself", + params = S("[]"), + description = S("Get the last login time of a player or yourself"), func = function(name, param) if param == "" then param = name @@ -1084,25 +1188,27 @@ core.register_chatcommand("last-login", { local pauth = core.get_auth_handler().get_auth(param) if pauth and pauth.last_login and pauth.last_login ~= -1 then -- Time in UTC, ISO 8601 format - return true, param.."'s last login time was " .. - os.date("!%Y-%m-%dT%H:%M:%SZ", pauth.last_login) + return true, S("@1's last login time was @2.", + param, + os.date("!%Y-%m-%dT%H:%M:%SZ", pauth.last_login)) end - return false, param.."'s last login time is unknown" + return false, S("@1's last login time is unknown.", param) end, }) core.register_chatcommand("clearinv", { - params = "[]", - description = "Clear the inventory of yourself or another player", + params = S("[]"), + description = S("Clear the inventory of yourself or another player"), func = function(name, param) local player if param and param ~= "" and param ~= name then if not core.check_player_privs(name, {server=true}) then - return false, "You don't have permission" - .. " to clear another player's inventory (missing privilege: server)" + return false, S("You don't have permission to " + .. "clear another player's inventory " + .. "(missing privilege: @1).", "server") end player = core.get_player_by_name(param) - core.chat_send_player(param, name.." cleared your inventory.") + core.chat_send_player(param, S("@1 cleared your inventory.", name)) else player = core.get_player_by_name(name) end @@ -1112,25 +1218,25 @@ core.register_chatcommand("clearinv", { player:get_inventory():set_list("craft", {}) player:get_inventory():set_list("craftpreview", {}) core.log("action", name.." clears "..player:get_player_name().."'s inventory") - return true, "Cleared "..player:get_player_name().."'s inventory." + return true, S("Cleared @1's inventory.", player:get_player_name()) else - return false, "Player must be online to clear inventory!" + return false, S("Player must be online to clear inventory!") end end, }) local function handle_kill_command(killer, victim) if core.settings:get_bool("enable_damage") == false then - return false, "Players can't be killed, damage has been disabled." + return false, S("Players can't be killed, damage has been disabled.") end local victimref = core.get_player_by_name(victim) if victimref == nil then - return false, string.format("Player %s is not online.", victim) + return false, S("Player @1 is not online.", victim) elseif victimref:get_hp() <= 0 then if killer == victim then - return false, "You are already dead." + return false, S("You are already dead.") else - return false, string.format("%s is already dead.", victim) + return false, S("@1 is already dead.", victim) end end if not killer == victim then @@ -1138,12 +1244,12 @@ local function handle_kill_command(killer, victim) end -- Kill victim victimref:set_hp(0) - return true, string.format("%s has been killed.", victim) + return true, S("@1 has been killed.", victim) end core.register_chatcommand("kill", { - params = "[]", - description = "Kill player or yourself", + params = S("[]"), + description = S("Kill player or yourself"), privs = {server=true}, func = function(name, param) return handle_kill_command(name, param == "" and name or param) diff --git a/builtin/game/deprecated.lua b/builtin/game/deprecated.lua index 20f0482eb..c5c7848f5 100644 --- a/builtin/game/deprecated.lua +++ b/builtin/game/deprecated.lua @@ -1,28 +1,5 @@ -- Minetest: builtin/deprecated.lua --- --- Default material types --- -local function digprop_err() - core.log("deprecated", "The core.digprop_* functions are obsolete and need to be replaced by item groups.") -end - -core.digprop_constanttime = digprop_err -core.digprop_stonelike = digprop_err -core.digprop_dirtlike = digprop_err -core.digprop_gravellike = digprop_err -core.digprop_woodlike = digprop_err -core.digprop_leaveslike = digprop_err -core.digprop_glasslike = digprop_err - -function core.node_metadata_inventory_move_allow_all() - core.log("deprecated", "core.node_metadata_inventory_move_allow_all is obsolete and does nothing.") -end - -function core.add_to_creative_inventory(itemstring) - core.log("deprecated", "core.add_to_creative_inventory is obsolete and does nothing.") -end - -- -- EnvRef -- @@ -77,7 +54,7 @@ core.setting_save = setting_proxy("write") function core.register_on_auth_fail(func) core.log("deprecated", "core.register_on_auth_fail " .. - "is obsolete and should be replaced by " .. + "is deprecated and should be replaced by " .. "core.register_on_authplayer instead.") core.register_on_authplayer(function (player_name, ip, is_success) diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua index 8d044beaa..2cc0d8fac 100644 --- a/builtin/game/falling.lua +++ b/builtin/game/falling.lua @@ -84,9 +84,6 @@ core.register_entity(":__builtin:falling_node", { local textures if def.tiles and def.tiles[1] then local tile = def.tiles[1] - if def.drawtype == "torchlike" and def.paramtype2 ~= "wallmounted" then - tile = def.tiles[2] or def.tiles[1] - end if type(tile) == "table" then tile = tile.name end @@ -130,7 +127,7 @@ core.register_entity(":__builtin:falling_node", { -- Set collision box (certain nodeboxes only for now) local nb_types = {fixed=true, leveled=true, connected=true} if def.drawtype == "nodebox" and def.node_box and - nb_types[def.node_box.type] then + nb_types[def.node_box.type] and def.node_box.fixed then local box = table.copy(def.node_box.fixed) if type(box[1]) == "table" then box = #box == 1 and box[1] or nil -- We can only use a single box @@ -147,13 +144,9 @@ core.register_entity(":__builtin:falling_node", { -- Rotate entity if def.drawtype == "torchlike" then - if def.paramtype2 == "wallmounted" then - self.object:set_yaw(math.pi*0.25) - else - self.object:set_yaw(-math.pi*0.25) - end - elseif (node.param2 ~= 0 and (def.wield_image == "" - or def.wield_image == nil)) + self.object:set_yaw(math.pi*0.25) + elseif ((node.param2 ~= 0 or def.drawtype == "nodebox" or def.drawtype == "mesh") + and (def.wield_image == "" or def.wield_image == nil)) or def.drawtype == "signlike" or def.drawtype == "mesh" or def.drawtype == "normal" @@ -165,19 +158,37 @@ core.register_entity(":__builtin:falling_node", { if euler then self.object:set_rotation(euler) end - elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted") then + elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted" or def.drawtype == "signlike") then local rot = node.param2 % 8 + if (def.drawtype == "signlike" and def.paramtype2 ~= "wallmounted" and def.paramtype2 ~= "colorwallmounted") then + -- Change rotation to "floor" by default for non-wallmounted paramtype2 + rot = 1 + end local pitch, yaw, roll = 0, 0, 0 - if rot == 1 then - pitch, yaw = math.pi, math.pi - elseif rot == 2 then - pitch, yaw = math.pi/2, math.pi/2 - elseif rot == 3 then - pitch, yaw = math.pi/2, -math.pi/2 - elseif rot == 4 then - pitch, yaw = math.pi/2, math.pi - elseif rot == 5 then - pitch, yaw = math.pi/2, 0 + if def.drawtype == "nodebox" or def.drawtype == "mesh" then + if rot == 0 then + pitch, yaw = math.pi/2, 0 + elseif rot == 1 then + pitch, yaw = -math.pi/2, math.pi + elseif rot == 2 then + pitch, yaw = 0, math.pi/2 + elseif rot == 3 then + pitch, yaw = 0, -math.pi/2 + elseif rot == 4 then + pitch, yaw = 0, math.pi + end + else + if rot == 1 then + pitch, yaw = math.pi, math.pi + elseif rot == 2 then + pitch, yaw = math.pi/2, math.pi/2 + elseif rot == 3 then + pitch, yaw = math.pi/2, -math.pi/2 + elseif rot == 4 then + pitch, yaw = math.pi/2, math.pi + elseif rot == 5 then + pitch, yaw = math.pi/2, 0 + end end if def.drawtype == "signlike" then pitch = pitch - math.pi/2 @@ -186,7 +197,7 @@ core.register_entity(":__builtin:falling_node", { elseif rot == 1 then yaw = yaw - math.pi/2 end - elseif def.drawtype == "mesh" or def.drawtype == "normal" then + elseif def.drawtype == "mesh" or def.drawtype == "normal" or def.drawtype == "nodebox" then if rot >= 0 and rot <= 1 then roll = roll + math.pi else @@ -194,6 +205,14 @@ core.register_entity(":__builtin:falling_node", { end end self.object:set_rotation({x=pitch, y=yaw, z=roll}) + elseif (def.drawtype == "mesh" and def.paramtype2 == "degrotate") then + local p2 = (node.param2 - (def.place_param2 or 0)) % 240 + local yaw = (p2 / 240) * (math.pi * 2) + self.object:set_yaw(yaw) + elseif (def.drawtype == "mesh" and def.paramtype2 == "colordegrotate") then + local p2 = (node.param2 % 32 - (def.place_param2 or 0) % 32) % 24 + local yaw = (p2 / 24) * (math.pi * 2) + self.object:set_yaw(yaw) end end end, @@ -393,7 +412,7 @@ local function convert_to_falling_node(pos, node) obj:get_luaentity():set_node(node, metatable) core.remove_node(pos) - return true + return true, obj end function core.spawn_falling_node(pos) diff --git a/builtin/game/features.lua b/builtin/game/features.lua index 4d3c90ff0..8f0604448 100644 --- a/builtin/game/features.lua +++ b/builtin/game/features.lua @@ -18,6 +18,8 @@ core.features = { pathfinder_works = true, object_step_has_moveresult = true, direct_velocity_on_players = true, + use_texture_alpha_string_modes = true, + degrotate_240_steps = true, } function core.has_feature(arg) diff --git a/builtin/game/item.lua b/builtin/game/item.lua index 768df847b..c4d93abd6 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -15,15 +15,6 @@ end -- Item definition helpers -- -function core.inventorycube(img1, img2, img3) - img2 = img2 or img1 - img3 = img3 or img1 - return "[inventorycube" - .. "{" .. img1:gsub("%^", "&") - .. "{" .. img2:gsub("%^", "&") - .. "{" .. img3:gsub("%^", "&") -end - function core.dir_to_facedir(dir, is6d) --account for y if requested if is6d and math.abs(dir.y) > math.abs(dir.x) and math.abs(dir.y) > math.abs(dir.z) then @@ -144,7 +135,7 @@ end function core.is_colored_paramtype(ptype) return (ptype == "color") or (ptype == "colorfacedir") or - (ptype == "colorwallmounted") + (ptype == "colorwallmounted") or (ptype == "colordegrotate") end function core.strip_param2_color(param2, paramtype2) @@ -155,6 +146,8 @@ function core.strip_param2_color(param2, paramtype2) param2 = math.floor(param2 / 32) * 32 elseif paramtype2 == "colorwallmounted" then param2 = math.floor(param2 / 8) * 8 + elseif paramtype2 == "colordegrotate" then + param2 = math.floor(param2 / 32) * 32 end -- paramtype2 == "color" requires no modification. return param2 @@ -332,6 +325,8 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2, color_divisor = 8 elseif def.paramtype2 == "colorfacedir" then color_divisor = 32 + elseif def.paramtype2 == "colordegrotate" then + color_divisor = 32 end if color_divisor then local color = math.floor(metatable.palette_index / color_divisor) @@ -544,7 +539,7 @@ function core.node_dig(pos, node, digger) log("info", diggername .. " tried to dig " .. node.name .. " which is not diggable " .. core.pos_to_string(pos)) - return + return false end if core.is_protected(pos, diggername) then @@ -553,7 +548,7 @@ function core.node_dig(pos, node, digger) .. " at protected position " .. core.pos_to_string(pos)) core.record_protection_violation(pos, diggername) - return + return false end log('action', diggername .. " digs " @@ -636,6 +631,8 @@ function core.node_dig(pos, node, digger) local node_copy = {name=node.name, param1=node.param1, param2=node.param2} callback(pos_copy, node_copy, digger) end + + return true end function core.itemstring_with_palette(item, palette_index) @@ -663,7 +660,7 @@ end -- Item definition defaults -- -local default_stack_max = tonumber(minetest.settings:get("default_stack_max")) or 99 +local default_stack_max = tonumber(core.settings:get("default_stack_max")) or 99 core.nodedef_default = { -- Item properties @@ -692,10 +689,6 @@ core.nodedef_default = { on_receive_fields = nil, - on_metadata_inventory_move = core.node_metadata_inventory_move_allow_all, - on_metadata_inventory_offer = core.node_metadata_inventory_offer_allow_all, - on_metadata_inventory_take = core.node_metadata_inventory_take_allow_all, - -- Node properties drawtype = "normal", visual_scale = 1.0, @@ -706,7 +699,6 @@ core.nodedef_default = { -- {name="", backface_culling=true}, -- {name="", backface_culling=true}, --}, - alpha = 255, post_effect_color = {a=0, r=0, g=0, b=0}, paramtype = "none", paramtype2 = "none", diff --git a/builtin/game/knockback.lua b/builtin/game/knockback.lua index b5c4cbc5a..a937aa186 100644 --- a/builtin/game/knockback.lua +++ b/builtin/game/knockback.lua @@ -42,5 +42,5 @@ core.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool return -- barely noticeable, so don't even send end - player:add_player_velocity(kdir) + player:add_velocity(kdir) end) diff --git a/builtin/game/misc.lua b/builtin/game/misc.lua index 96a0a2dda..fcb86146d 100644 --- a/builtin/game/misc.lua +++ b/builtin/game/misc.lua @@ -1,5 +1,7 @@ -- Minetest: builtin/misc.lua +local S = core.get_translator("__builtin") + -- -- Misc. API functions -- @@ -42,15 +44,15 @@ end function core.send_join_message(player_name) if not core.is_singleplayer() then - core.chat_send_all("*** " .. player_name .. " joined the game.") + core.chat_send_all("*** " .. S("@1 joined the game.", player_name)) end end function core.send_leave_message(player_name, timed_out) - local announcement = "*** " .. player_name .. " left the game." + local announcement = "*** " .. S("@1 left the game.", player_name) if timed_out then - announcement = announcement .. " (timed out)" + announcement = "*** " .. S("@1 left the game (timed out).", player_name) end core.chat_send_all(announcement) end @@ -266,3 +268,26 @@ end function core.cancel_shutdown_requests() core.request_shutdown("", false, -1) end + + +-- Callback handling for dynamic_add_media + +local dynamic_add_media_raw = core.dynamic_add_media_raw +core.dynamic_add_media_raw = nil +function core.dynamic_add_media(filepath, callback) + local ret = dynamic_add_media_raw(filepath) + if ret == false then + return ret + end + if callback == nil then + core.log("deprecated", "Calling minetest.dynamic_add_media without ".. + "a callback is deprecated and will stop working in future versions.") + else + -- At the moment async loading is not actually implemented, so we + -- immediately call the callback ourselves + for _, name in ipairs(ret) do + callback(name) + end + end + return true +end diff --git a/builtin/game/privileges.lua b/builtin/game/privileges.lua index c7417d2f4..1d3efb525 100644 --- a/builtin/game/privileges.lua +++ b/builtin/game/privileges.lua @@ -1,5 +1,7 @@ -- Minetest: builtin/privileges.lua +local S = core.get_translator("__builtin") + -- -- Privileges -- @@ -15,7 +17,7 @@ function core.register_privilege(name, param) def.give_to_admin = def.give_to_singleplayer end if def.description == nil then - def.description = "(no description)" + def.description = S("(no description)") end end local def @@ -28,69 +30,75 @@ function core.register_privilege(name, param) core.registered_privileges[name] = def end -core.register_privilege("interact", "Can interact with things and modify the world") -core.register_privilege("shout", "Can speak in chat") -core.register_privilege("basic_privs", "Can modify 'shout' and 'interact' privileges") -core.register_privilege("privs", "Can modify privileges") +core.register_privilege("interact", S("Can interact with things and modify the world")) +core.register_privilege("shout", S("Can speak in chat")) + +local basic_privs = + core.string_to_privs((core.settings:get("basic_privs") or "shout,interact")) +local basic_privs_desc = S("Can modify basic privileges (@1)", + core.privs_to_string(basic_privs, ', ')) +core.register_privilege("basic_privs", basic_privs_desc) + +core.register_privilege("privs", S("Can modify privileges")) core.register_privilege("teleport", { - description = "Can teleport self", + description = S("Can teleport self"), give_to_singleplayer = false, }) core.register_privilege("bring", { - description = "Can teleport other players", + description = S("Can teleport other players"), give_to_singleplayer = false, }) core.register_privilege("settime", { - description = "Can set the time of day using /time", + description = S("Can set the time of day using /time"), give_to_singleplayer = false, }) core.register_privilege("server", { - description = "Can do server maintenance stuff", + description = S("Can do server maintenance stuff"), give_to_singleplayer = false, give_to_admin = true, }) core.register_privilege("protection_bypass", { - description = "Can bypass node protection in the world", + description = S("Can bypass node protection in the world"), give_to_singleplayer = false, }) core.register_privilege("ban", { - description = "Can ban and unban players", + description = S("Can ban and unban players"), give_to_singleplayer = false, give_to_admin = true, }) core.register_privilege("kick", { - description = "Can kick players", + description = S("Can kick players"), give_to_singleplayer = false, give_to_admin = true, }) core.register_privilege("give", { - description = "Can use /give and /giveme", + description = S("Can use /give and /giveme"), give_to_singleplayer = false, }) core.register_privilege("password", { - description = "Can use /setpassword and /clearpassword", + description = S("Can use /setpassword and /clearpassword"), give_to_singleplayer = false, give_to_admin = true, }) core.register_privilege("fly", { - description = "Can use fly mode", + description = S("Can use fly mode"), give_to_singleplayer = false, }) core.register_privilege("fast", { - description = "Can use fast mode", + description = S("Can use fast mode"), give_to_singleplayer = false, }) core.register_privilege("noclip", { - description = "Can fly through solid nodes using noclip mode", + description = S("Can fly through solid nodes using noclip mode"), give_to_singleplayer = false, }) core.register_privilege("rollback", { - description = "Can use the rollback functionality", + description = S("Can use the rollback functionality"), give_to_singleplayer = false, }) core.register_privilege("debug", { - description = "Allows enabling various debug options that may affect gameplay", + description = S("Allows enabling various debug options that may affect gameplay"), give_to_singleplayer = false, give_to_admin = true, }) diff --git a/builtin/game/register.lua b/builtin/game/register.lua index 1f94a9dca..c07535855 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -1,5 +1,7 @@ -- Minetest: builtin/misc_register.lua +local S = core.get_translator("__builtin") + -- -- Make raw registration functions inaccessible to anyone except this file -- @@ -118,10 +120,6 @@ function core.register_item(name, itemdef) end itemdef.name = name - -- default short_description to first line of description - itemdef.short_description = itemdef.short_description or - (itemdef.description or ""):gsub("\n.*","") - -- Apply defaults and add to registered_* table if itemdef.type == "node" then -- Use the nodebox as selection box if it's not set manually @@ -324,20 +322,13 @@ for name in pairs(forbidden_item_names) do register_alias_raw(name, "") end - --- Obsolete: --- Aliases for core.register_alias (how ironic...) --- core.alias_node = core.register_alias --- core.alias_tool = core.register_alias --- core.alias_craftitem = core.register_alias - -- -- Built-in node definitions. Also defined in C. -- core.register_item(":unknown", { type = "none", - description = "Unknown Item", + description = S("Unknown Item"), inventory_image = "unknown_item.png", on_place = core.item_place, on_secondary_use = core.item_secondary_use, @@ -347,7 +338,7 @@ core.register_item(":unknown", { }) core.register_node(":air", { - description = "Air", + description = S("Air"), inventory_image = "air.png", wield_image = "air.png", drawtype = "airlike", @@ -364,7 +355,7 @@ core.register_node(":air", { }) core.register_node(":ignore", { - description = "Ignore", + description = S("Ignore"), inventory_image = "ignore.png", wield_image = "ignore.png", drawtype = "airlike", @@ -377,11 +368,12 @@ core.register_node(":ignore", { air_equivalent = true, drop = "", groups = {not_in_creative_inventory=1}, + node_placement_prediction = "", on_place = function(itemstack, placer, pointed_thing) core.chat_send_player( placer:get_player_name(), core.colorize("#FF0000", - "You can't place 'ignore' nodes!")) + S("You can't place 'ignore' nodes!"))) return "" end, }) @@ -617,6 +609,7 @@ core.registered_can_bypass_userlimit, core.register_can_bypass_userlimit = make_ core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration() core.registered_on_player_inventory_actions, core.register_on_player_inventory_action = make_registration() core.registered_allow_player_inventory_actions, core.register_allow_player_inventory_action = make_registration() +core.registered_on_rightclickplayers, core.register_on_rightclickplayer = make_registration() -- -- Compatibility for on_mapgen_init() diff --git a/builtin/game/statbars.lua b/builtin/game/statbars.lua index d192029c5..db5087a16 100644 --- a/builtin/game/statbars.lua +++ b/builtin/game/statbars.lua @@ -84,8 +84,8 @@ local function update_builtin_statbars(player) end if hud.id_breathbar and (not show_breathbar or breath == breath_max) then - minetest.after(1, function(player_name, breath_bar) - local player = minetest.get_player_by_name(player_name) + core.after(1, function(player_name, breath_bar) + local player = core.get_player_by_name(player_name) if player then player:hud_remove(breath_bar) end diff --git a/builtin/init.lua b/builtin/init.lua index f76174be7..171742ae1 100644 --- a/builtin/init.lua +++ b/builtin/init.lua @@ -38,9 +38,20 @@ if INIT == "game" then dofile(gamepath .. "init.lua") elseif INIT == "mainmenu" then local mm_script = core.settings:get("main_menu_script") + local custom_loaded = false if mm_script and mm_script ~= "" then - dofile(mm_script) - else + local testfile = io.open(mm_script, "r") + if testfile then + testfile:close() + dofile(mm_script) + custom_loaded = true + core.log("info", "Loaded custom main menu script: "..mm_script) + else + core.log("error", "Failed to load custom main menu script: "..mm_script) + core.log("info", "Falling back to default main menu script") + end + end + if not custom_loaded then dofile(core.get_mainmenu_path() .. DIR_DELIM .. "init.lua") end elseif INIT == "async" then diff --git a/builtin/locale/__builtin.de.tr b/builtin/locale/__builtin.de.tr new file mode 100644 index 000000000..e8bc1fd84 --- /dev/null +++ b/builtin/locale/__builtin.de.tr @@ -0,0 +1,240 @@ +# textdomain: __builtin +Empty command.=Leerer Befehl. +Invalid command: @1=Ungültiger Befehl: @1 +Invalid command usage.=Ungültige Befehlsverwendung. + (@1 s)= (@1 s) +Command execution took @1 s=Befehlsausführung brauchte @1 s +You don't have permission to run this command (missing privileges: @1).=Sie haben keine Erlaubnis, diesen Befehl auszuführen (fehlende Privilegien: @1). +Unable to get position of player @1.=Konnte Position vom Spieler @1 nicht ermitteln. +Incorrect area format. Expected: (x1,y1,z1) (x2,y2,z2)=Ungültiges Gebietsformat. Erwartet: (x1,y1,z1) (x2,y2,z2) += +Show chat action (e.g., '/me orders a pizza' displays ' orders a pizza')=Chataktion zeigen (z.B. wird „/me isst Pizza“ zu „ isst Pizza“) +Show the name of the server owner=Den Namen des Servereigentümers zeigen +The administrator of this server is @1.=Der Administrator dieses Servers ist @1. +There's no administrator named in the config file.=In der Konfigurationsdatei wurde kein Administrator angegeben. +@1 does not have any privileges.=@1 hat keine Privilegien. +Privileges of @1: @2=Privilegien von @1: @2 +[]=[] +Show privileges of yourself or another player=Ihre eigenen Privilegien oder die eines anderen Spielers anzeigen +Player @1 does not exist.=Spieler @1 existiert nicht. += +Return list of all online players with privilege=Liste aller Spieler mit einem Privileg ausgeben +Invalid parameters (see /help haspriv).=Ungültige Parameter (siehe „/help haspriv“). +Unknown privilege!=Unbekanntes Privileg! +Players online with the "@1" privilege: @2=Derzeit online spielende Spieler mit dem „@1“-Privileg: @2 +Your privileges are insufficient.=Ihre Privilegien sind unzureichend. +Your privileges are insufficient. '@1' only allows you to grant: @2=Ihre Privilegien sind unzureichend. Mit „@1“ können Sie nur folgendes gewähren: @2 +Unknown privilege: @1=Unbekanntes Privileg: @1 +@1 granted you privileges: @2=@1 gewährte Ihnen Privilegien: @2 + ( [, [<...>]] | all)= ( [, [<...>]] | all) +Give privileges to player=Privileg an Spieler vergeben +Invalid parameters (see /help grant).=Ungültige Parameter (siehe „/help grant“). + [, [<...>]] | all= [, [<...>]] | all +Grant privileges to yourself=Privilegien an Ihnen selbst vergeben +Invalid parameters (see /help grantme).=Ungültige Parameter (siehe „/help grantme“). +Your privileges are insufficient. '@1' only allows you to revoke: @2=Ihre Privilegien sind unzureichend. Mit „@1“ können Sie nur folgendes entziehen: @2 +Note: Cannot revoke in singleplayer: @1=Anmerkung: Im Einzelspielermodus kann man folgendes nicht entziehen: @1 +Note: Cannot revoke from admin: @1=Anmerkung: Vom Admin kann man folgendes nicht entziehen: @1 +No privileges were revoked.=Es wurden keine Privilegien entzogen. +@1 revoked privileges from you: @2=@1 entfernte Privilegien von Ihnen: @2 +Remove privileges from player=Privilegien von Spieler entfernen +Invalid parameters (see /help revoke).=Ungültige Parameter (siehe „/help revoke“). +Revoke privileges from yourself=Privilegien von Ihnen selbst entfernen +Invalid parameters (see /help revokeme).=Ungültige Parameter (siehe „/help revokeme“). + = +Set player's password=Passwort von Spieler setzen +Name field required.=Namensfeld benötigt. +Your password was cleared by @1.=Ihr Passwort wurde von @1 geleert. +Password of player "@1" cleared.=Passwort von Spieler „@1“ geleert. +Your password was set by @1.=Ihr Passwort wurde von @1 gesetzt. +Password of player "@1" set.=Passwort von Spieler „@1“ gesetzt. += +Set empty password for a player=Leeres Passwort für einen Spieler setzen +Reload authentication data=Authentifizierungsdaten erneut laden +Done.=Fertig. +Failed.=Fehlgeschlagen. +Remove a player's data=Daten eines Spielers löschen +Player "@1" removed.=Spieler „@1“ gelöscht. +No such player "@1" to remove.=Es gibt keinen Spieler „@1“, der gelöscht werden könnte. +Player "@1" is connected, cannot remove.=Spieler „@1“ ist verbunden, er kann nicht gelöscht werden. +Unhandled remove_player return code @1.=Nicht berücksichtigter remove_player-Rückgabewert @1. +Cannot teleport out of map bounds!=Eine Teleportation außerhalb der Kartengrenzen ist nicht möglich! +Cannot get player with name @1.=Spieler mit Namen @1 kann nicht gefunden werden. +Cannot teleport, @1 is attached to an object!=Teleportation nicht möglich, @1 ist an einem Objekt befestigt! +Teleporting @1 to @2.=Teleportation von @1 nach @2 +One does not teleport to oneself.=Man teleportiert sich doch nicht zu sich selbst. +Cannot get teleportee with name @1.=Der zu teleportierende Spieler mit Namen @1 kann nicht gefunden werden. +Cannot get target player with name @1.=Zielspieler mit Namen @1 kann nicht gefunden werden. +Teleporting @1 to @2 at @3.=Teleportation von @1 zu @2 bei @3 +,, | | ,, | =,, | | ,, | +Teleport to position or player=Zu Position oder Spieler teleportieren +You don't have permission to teleport other players (missing privilege: @1).=Sie haben nicht die Erlaubnis, andere Spieler zu teleportieren (fehlendes Privileg: @1). +([-n] ) | =([-n] ) | +Set or read server configuration setting=Serverkonfigurationseinstellung setzen oder lesen +Failed. Use '/set -n ' to create a new setting.=Fehlgeschlagen. Benutzen Sie „/set -n “, um eine neue Einstellung zu erstellen. +@1 @= @2=@1 @= @2 += +Invalid parameters (see /help set).=Ungültige Parameter (siehe „/help set“). +Finished emerging @1 blocks in @2ms.=Fertig mit Erzeugung von @1 Blöcken in @2 ms. +emergeblocks update: @1/@2 blocks emerged (@3%)=emergeblocks-Update: @1/@2 Kartenblöcke geladen (@3%) +(here []) | ( )=(here []) | ( ) +Load (or, if nonexistent, generate) map blocks contained in area pos1 to pos2 ( and must be in parentheses)=Lade (oder, wenn nicht existent, generiere) Kartenblöcke im Gebiet zwischen Pos1 und Pos2 ( und müssen in Klammern stehen) +Started emerge of area ranging from @1 to @2.=Start des Ladevorgangs des Gebiets zwischen @1 und @2. +Delete map blocks contained in area pos1 to pos2 ( and must be in parentheses)=Kartenblöcke innerhalb des Gebiets zwischen Pos1 und Pos2 löschen ( und müssen in Klammern stehen) +Successfully cleared area ranging from @1 to @2.=Gebiet zwischen @1 und @2 erfolgreich geleert. +Failed to clear one or more blocks in area.=Fehlgeschlagen: Ein oder mehrere Kartenblöcke im Gebiet konnten nicht geleert werden. +Resets lighting in the area between pos1 and pos2 ( and must be in parentheses)=Setzt das Licht im Gebiet zwischen Pos1 und Pos2 zurück ( und müssen in Klammern stehen) +Successfully reset light in the area ranging from @1 to @2.=Das Licht im Gebiet zwischen @1 und @2 wurde erfolgreich zurückgesetzt. +Failed to load one or more blocks in area.=Fehlgeschlagen: Ein oder mehrere Kartenblöcke im Gebiet konnten nicht geladen werden. +List mods installed on the server=Installierte Mods auf dem Server auflisten +Cannot give an empty item.=Ein leerer Gegenstand kann nicht gegeben werden. +Cannot give an unknown item.=Ein unbekannter Gegenstand kann nicht gegeben werden. +Giving 'ignore' is not allowed.=„ignore“ darf nicht gegeben werden. +@1 is not a known player.=@1 ist kein bekannter Spieler. +@1 partially added to inventory.=@1 teilweise ins Inventar eingefügt. +@1 could not be added to inventory.=@1 konnte nicht ins Inventar eingefügt werden. +@1 added to inventory.=@1 zum Inventar hinzugefügt. +@1 partially added to inventory of @2.=@1 teilweise ins Inventar von @2 eingefügt. +@1 could not be added to inventory of @2.=@1 konnte nicht ins Inventar von @2 eingefügt werden. +@1 added to inventory of @2.=@1 ins Inventar von @2 eingefügt. + [ []]= [ []] +Give item to player=Gegenstand an Spieler geben +Name and ItemString required.=Name und ItemString benötigt. + [ []]= [ []] +Give item to yourself=Gegenstand Ihnen selbst geben +ItemString required.=ItemString benötigt. + [,,]= [,,] +Spawn entity at given (or your) position=Entity an angegebener (oder Ihrer eigenen) Position spawnen +EntityName required.=EntityName benötigt. +Unable to spawn entity, player is nil.=Entity konnte nicht gespawnt werden, Spieler ist nil. +Cannot spawn an unknown entity.=Ein unbekanntes Entity kann nicht gespawnt werden. +Invalid parameters (@1).=Ungültige Parameter (@1). +@1 spawned.=@1 gespawnt. +@1 failed to spawn.=@1 konnte nicht gespawnt werden. +Destroy item in hand=Gegenstand in der Hand zerstören +Unable to pulverize, no player.=Konnte nicht pulverisieren, kein Spieler. +Unable to pulverize, no item in hand.=Konnte nicht pulverisieren, kein Gegenstand in der Hand. +An item was pulverized.=Ein Gegenstand wurde pulverisiert. +[] [] []=[] [] [] +Check who last touched a node or a node near it within the time specified by . Default: range @= 0, seconds @= 86400 @= 24h, limit @= 5. Set to inf for no time limit=Überprüfen, wer als letztes einen Node oder einen Node in der Nähe innerhalb der in angegebenen Zeitspanne angefasst hat. Standard: Reichweite @= 0, Sekunden @= 86400 @= 24h, Limit @= 5. auf „inf“ setzen, um Zeitlimit zu deaktivieren. +Rollback functions are disabled.=Rollback-Funktionen sind deaktiviert. +That limit is too high!=Dieses Limit ist zu hoch! +Checking @1 ...=Überprüfe @1 ... +Nobody has touched the specified location in @1 seconds.=Niemand hat die angegebene Position seit @1 Sekunden angefasst. +@1 @2 @3 -> @4 @5 seconds ago.=@1 @2 @3 -> @4 vor @5 Sekunden. +Punch a node (range@=@1, seconds@=@2, limit@=@3).=Hauen Sie einen Node (Reichweite@=@1, Sekunden@=@2, Limit@=@3). +( []) | (: [])=( []) | (: []) +Revert actions of a player. Default for is 60. Set to inf for no time limit=Aktionen eines Spielers zurückrollen. Standard für ist 60. auf „inf“ setzen, um Zeitlimit zu deaktivieren +Invalid parameters. See /help rollback and /help rollback_check.=Ungültige Parameter. Siehe /help rollback und /help rollback_check. +Reverting actions of player '@1' since @2 seconds.=Die Aktionen des Spielers „@1“ seit @2 Sekunden werden rückgängig gemacht. +Reverting actions of @1 since @2 seconds.=Die Aktionen von @1 seit @2 Sekunden werden rückgängig gemacht. +(log is too long to show)=(Protokoll ist zu lang für die Anzeige) +Reverting actions succeeded.=Die Aktionen wurden erfolgreich rückgängig gemacht. +Reverting actions FAILED.=FEHLGESCHLAGEN: Die Aktionen konnten nicht rückgängig gemacht werden. +Show server status=Serverstatus anzeigen +This command was disabled by a mod or game.=Dieser Befehl wurde von einer Mod oder einem Spiel deaktiviert. +[<0..23>:<0..59> | <0..24000>]=[<0..23>:<0..59> | <0..24000>] +Show or set time of day=Tageszeit anzeigen oder setzen +Current time is @1:@2.=Es ist jetzt @1:@2 Uhr. +You don't have permission to run this command (missing privilege: @1).=Sie haben nicht die Erlaubnis, diesen Befehl auszuführen (fehlendes Privileg: @1). +Invalid time.=Ungültige Zeit. +Time of day changed.=Tageszeit geändert. +Invalid hour (must be between 0 and 23 inclusive).=Ungültige Stunde (muss zwischen 0 und 23 inklusive liegen). +Invalid minute (must be between 0 and 59 inclusive).=Ungültige Minute (muss zwischen 0 und 59 inklusive liegen). +Show day count since world creation=Anzahl Tage seit der Erschaffung der Welt anzeigen +Current day is @1.=Aktueller Tag ist @1. +[ | -1] [reconnect] []=[ | -1] [reconnect] [] +Shutdown server (-1 cancels a delayed shutdown)=Server herunterfahren (-1 bricht einen verzögerten Abschaltvorgang ab) +Server shutting down (operator request).=Server wird heruntergefahren (Betreiberanfrage). +Ban the IP of a player or show the ban list=Die IP eines Spielers verbannen oder die Bannliste anzeigen +The ban list is empty.=Die Bannliste ist leer. +Ban list: @1=Bannliste: @1 +Player is not online.=Spieler ist nicht online. +Failed to ban player.=Konnte Spieler nicht verbannen. +Banned @1.=@1 verbannt. + | = | +Remove IP ban belonging to a player/IP=Einen IP-Bann auf einen Spieler zurücknehmen +Failed to unban player/IP.=Konnte Bann auf Spieler/IP nicht zurücknehmen. +Unbanned @1.=Bann auf @1 zurückgenommen. + []= [] +Kick a player=Spieler hinauswerfen +Failed to kick player @1.=Spieler @1 konnte nicht hinausgeworfen werden. +Kicked @1.=@1 hinausgeworfen. +[full | quick]=[full | quick] +Clear all objects in world=Alle Objekte in der Welt löschen +Invalid usage, see /help clearobjects.=Ungültige Verwendung, siehe /help clearobjects. +Clearing all objects. This may take a long time. You may experience a timeout. (by @1)=Lösche alle Objekte. Dies kann eine lange Zeit dauern. Eine Netzwerkzeitüberschreitung könnte für Sie auftreten. (von @1) +Cleared all objects.=Alle Objekte gelöscht. + = +Send a direct message to a player=Eine Direktnachricht an einen Spieler senden +Invalid usage, see /help msg.=Ungültige Verwendung, siehe /help msg. +The player @1 is not online.=Der Spieler @1 ist nicht online. +DM from @1: @2=DN von @1: @2 +Message sent.=Nachricht gesendet. +Get the last login time of a player or yourself=Den letzten Loginzeitpunkt eines Spielers oder Ihren eigenen anfragen +@1's last login time was @2.=Letzter Loginzeitpunkt von @1 war @2. +@1's last login time is unknown.=Letzter Loginzeitpunkt von @1 ist unbekannt. +Clear the inventory of yourself or another player=Das Inventar von Ihnen oder einem anderen Spieler leeren +You don't have permission to clear another player's inventory (missing privilege: @1).=Sie haben nicht die Erlaubnis, das Inventar eines anderen Spielers zu leeren (fehlendes Privileg: @1). +@1 cleared your inventory.=@1 hat Ihr Inventar geleert. +Cleared @1's inventory.=Inventar von @1 geleert. +Player must be online to clear inventory!=Spieler muss online sein, um das Inventar leeren zu können! +Players can't be killed, damage has been disabled.=Spieler können nicht getötet werden, Schaden ist deaktiviert. +Player @1 is not online.=Spieler @1 ist nicht online. +You are already dead.=Sie sind schon tot. +@1 is already dead.=@1 ist bereits tot. +@1 has been killed.=@1 wurde getötet. +Kill player or yourself=Einen Spieler oder Sie selbst töten +Available commands: @1=Verfügbare Befehle: @1 +Use '/help ' to get more information, or '/help all' to list everything.=„/help “ benutzen, um mehr Informationen zu erhalten, oder „/help all“, um alles aufzulisten. +Available commands:=Verfügbare Befehle: +Command not available: @1=Befehl nicht verfügbar: @1 +[all | privs | ]=[all | privs | ] +Get help for commands or list privileges=Hilfe für Befehle erhalten oder Privilegien auflisten +Command=Befehl +Parameters=Parameter +For more information, click on any entry in the list.=Für mehr Informationen klicken Sie auf einen beliebigen Eintrag in der Liste. +Double-click to copy the entry to the chat history.=Doppelklicken, um den Eintrag in die Chathistorie einzufügen. +Command: @1 @2=Befehl: @1 @2 +Available commands: (see also: /help )=Verfügbare Befehle: (siehe auch: /help ) +Close=Schließen +Privilege=Privileg +Description=Beschreibung +Available privileges:=Verfügbare Privilegien: +print [] | dump [] | save [ []] | reset=print [] | dump [] | save [ []] +Handle the profiler and profiling data=Den Profiler und Profilingdaten verwalten +Statistics written to action log.=Statistiken zum Aktionsprotokoll geschrieben. +Statistics were reset.=Statistiken wurden zurückgesetzt. +Usage: @1=Verwendung: @1 +Format can be one of txt, csv, lua, json, json_pretty (structures may be subject to change).=Format kann entweder „txt“, „csv“, „lua“, „json“ oder „json_pretty“ sein (die Struktur kann sich in Zukunft ändern). +@1 joined the game.=@1 ist dem Spiel beigetreten. +@1 left the game.=@1 hat das Spiel verlassen. +@1 left the game (timed out).=@1 hat das Spiel verlassen (Netzwerkzeitüberschreitung). +(no description)=(keine Beschreibung) +Can interact with things and modify the world=Kann mit Dingen interagieren und die Welt verändern +Can speak in chat=Kann im Chat sprechen +Can modify basic privileges (@1)=Kann grundlegende Privilegien anpassen (@1) +Can modify privileges=Kann Privilegien anpassen +Can teleport self=Kann sich selbst teleportieren +Can teleport other players=Kann andere Spieler teleportieren +Can set the time of day using /time=Kann die Tageszeit mit /time setzen +Can do server maintenance stuff=Kann Serverwartungsdinge machen +Can bypass node protection in the world=Kann den Schutz auf Blöcken in der Welt umgehen +Can ban and unban players=Kann Spieler verbannen und entbannen +Can kick players=Kann Spieler hinauswerfen +Can use /give and /giveme=Kann /give und /giveme benutzen +Can use /setpassword and /clearpassword=Kann /setpassword und /clearpassword benutzen +Can use fly mode=Kann den Flugmodus benutzen +Can use fast mode=Kann den Schnellmodus benutzen +Can fly through solid nodes using noclip mode=Kann durch feste Blöcke mit dem Geistmodus fliegen +Can use the rollback functionality=Kann die Rollback-Funktionalität benutzen +Allows enabling various debug options that may affect gameplay=Erlaubt die Aktivierung diverser Debugoptionen, die das Spielgeschehen beeinflussen könnten +Unknown Item=Unbekannter Gegenstand +Air=Luft +Ignore=Ignorieren +You can't place 'ignore' nodes!=Sie können keine „ignore“-Blöcke platzieren! +Values below show absolute/relative times spend per server step by the instrumented function.=Die unten angegebenen Werte zeigen absolute/relative Zeitspannen, die je Server-Step von der instrumentierten Funktion in Anspruch genommen wurden. +A total of @1 sample(s) were taken.=Es wurden insgesamt @1 Datenpunkt(e) aufgezeichnet. +The output is limited to '@1'.=Die Ausgabe ist beschränkt auf „@1“. +Saving of profile failed: @1=Speichern des Profils fehlgeschlagen: @1 +Profile saved to @1=Profil abgespeichert nach @1 diff --git a/builtin/locale/__builtin.it.tr b/builtin/locale/__builtin.it.tr new file mode 100644 index 000000000..8bce1d0d2 --- /dev/null +++ b/builtin/locale/__builtin.it.tr @@ -0,0 +1,247 @@ +# textdomain: __builtin +Empty command.=Comando vuoto. +Invalid command: @1=Comando non valido: @1 +Invalid command usage.=Utilizzo del comando non valido. + (@1 s)= +Command execution took @1 s= +You don't have permission to run this command (missing privileges: @1).=Non hai il permesso di eseguire questo comando (privilegi mancanti: @1). +Unable to get position of player @1.=Impossibile ottenere la posizione del giocatore @1. +Incorrect area format. Expected: (x1,y1,z1) (x2,y2,z2)=Formato dell'area non corretto. Richiesto: (x1,y1,z1) (x2,y2,z2) += +Show chat action (e.g., '/me orders a pizza' displays ' orders a pizza')=Mostra un'azione in chat (es. `/me ordina una pizza` mostra ` ordina una pizza`) +Show the name of the server owner=Mostra il nome del proprietario del server +The administrator of this server is @1.=L'amministratore di questo server è @1. +There's no administrator named in the config file.=Non c'è nessun amministratore nel file di configurazione. +@1 does not have any privileges.= +Privileges of @1: @2=Privilegi di @1: @2 +[]=[] +Show privileges of yourself or another player=Mostra i privilegi propri o di un altro giocatore +Player @1 does not exist.=Il giocatore @1 non esiste. += +Return list of all online players with privilege=Ritorna una lista di tutti i giocatori connessi col tale privilegio +Invalid parameters (see /help haspriv).=Parametri non validi (vedi /help haspriv). +Unknown privilege!=Privilegio sconosciuto! +Players online with the "@1" privilege: @2=Giocatori connessi con il privilegio "@1": @2 +Your privileges are insufficient.=I tuoi privilegi sono insufficienti. +Your privileges are insufficient. '@1' only allows you to grant: @2= +Unknown privilege: @1=Privilegio sconosciuto: @1 +@1 granted you privileges: @2=@1 ti ha assegnato i seguenti privilegi: @2 + ( [, [<...>]] | all)= +Give privileges to player=Dà privilegi al giocatore +Invalid parameters (see /help grant).=Parametri non validi (vedi /help grant). + [, [<...>]] | all= +Grant privileges to yourself=Assegna dei privilegi a te stessǝ +Invalid parameters (see /help grantme).=Parametri non validi (vedi /help grantme). +Your privileges are insufficient. '@1' only allows you to revoke: @2= +Note: Cannot revoke in singleplayer: @1= +Note: Cannot revoke from admin: @1= +No privileges were revoked.= +@1 revoked privileges from you: @2=@1 ti ha revocato i seguenti privilegi: @2 +Remove privileges from player=Rimuove privilegi dal giocatore +Invalid parameters (see /help revoke).=Parametri non validi (vedi /help revoke). +Revoke privileges from yourself=Revoca privilegi a te stessǝ +Invalid parameters (see /help revokeme).=Parametri non validi (vedi /help revokeme). + = +Set player's password=Imposta la password del giocatore +Name field required.=Campo "nome" richiesto. +Your password was cleared by @1.=La tua password è stata resettata da @1. +Password of player "@1" cleared.=Password del giocatore "@1" resettata. +Your password was set by @1.=La tua password è stata impostata da @1. +Password of player "@1" set.=Password del giocatore "@1" impostata. += +Set empty password for a player=Imposta una password vuota a un giocatore +Reload authentication data=Ricarica i dati d'autenticazione +Done.=Fatto. +Failed.=Errore. +Remove a player's data=Rimuove i dati di un giocatore +Player "@1" removed.=Giocatore "@1" rimosso. +No such player "@1" to remove.=Non è presente nessun giocatore "@1" da rimuovere. +Player "@1" is connected, cannot remove.=Il giocatore "@1" è connesso, non può essere rimosso. +Unhandled remove_player return code @1.=Codice ritornato da remove_player non gestito (@1). +Cannot teleport out of map bounds!=Non ci si può teletrasportare fuori dai limiti della mappa! +Cannot get player with name @1.=Impossibile trovare il giocatore chiamato @1. +Cannot teleport, @1 is attached to an object!=Impossibile teletrasportare, @1 è attaccato a un oggetto! +Teleporting @1 to @2.=Teletrasportando @1 da @2. +One does not teleport to oneself.=Non ci si può teletrasportare su se stessi. +Cannot get teleportee with name @1.=Impossibile trovare il giocatore chiamato @1 per il teletrasporto +Cannot get target player with name @1.=Impossibile trovare il giocatore chiamato @1 per il teletrasporto +Teleporting @1 to @2 at @3.=Teletrasportando @1 da @2 a @3 +,, | | ,, | =,, | | ,, | +Teleport to position or player=Teletrasporta a una posizione o da un giocatore +You don't have permission to teleport other players (missing privilege: @1).=Non hai il permesso di teletrasportare altri giocatori (privilegio mancante: @1). +([-n] ) | =([-n] ) | +Set or read server configuration setting=Imposta o ottieni le configurazioni del server +Failed. Use '/set -n ' to create a new setting.=Errore. Usa 'set -n ' per creare una nuova impostazione +@1 @= @2=@1 @= @2 += +Invalid parameters (see /help set).=Parametri non validi (vedi /help set). +Finished emerging @1 blocks in @2ms.=Finito di emergere @1 blocchi in @2ms +emergeblocks update: @1/@2 blocks emerged (@3%)=aggiornamento emergeblocks: @1/@2 blocchi emersi (@3%) +(here []) | ( )=(here []) | ( ) +Load (or, if nonexistent, generate) map blocks contained in area pos1 to pos2 ( and must be in parentheses)=Carica (o, se non esiste, genera) blocchi mappa contenuti nell'area tra pos1 e pos2 ( e vanno tra parentesi) +Started emerge of area ranging from @1 to @2.=Iniziata emersione dell'area tra @1 e @2. +Delete map blocks contained in area pos1 to pos2 ( and must be in parentheses)=Cancella i blocchi mappa contenuti nell'area tra pos1 e pos2 ( e vanno tra parentesi) +Successfully cleared area ranging from @1 to @2.=Area tra @1 e @2 ripulita con successo. +Failed to clear one or more blocks in area.=Errore nel ripulire uno o più blocchi mappa nell'area +Resets lighting in the area between pos1 and pos2 ( and must be in parentheses)=Reimposta l'illuminazione nell'area tra pos1 e po2 ( e vanno tra parentesi) +Successfully reset light in the area ranging from @1 to @2.=Luce nell'area tra @1 e @2 reimpostata con successo. +Failed to load one or more blocks in area.=Errore nel caricare uno o più blocchi mappa nell'area. +List mods installed on the server=Elenca le mod installate nel server +Cannot give an empty item.=Impossibile dare un oggetto vuoto. +Cannot give an unknown item.=Impossibile dare un oggetto sconosciuto. +Giving 'ignore' is not allowed.=Non è permesso dare 'ignore'. +@1 is not a known player.=@1 non è un giocatore conosciuto. +@1 partially added to inventory.=@1 parzialmente aggiunto all'inventario. +@1 could not be added to inventory.=@1 non può essere aggiunto all'inventario. +@1 added to inventory.=@1 aggiunto all'inventario. +@1 partially added to inventory of @2.=@1 parzialmente aggiunto all'inventario di @2. +@1 could not be added to inventory of @2.=Non è stato possibile aggiungere @1 all'inventario di @2. +@1 added to inventory of @2.=@1 aggiunto all'inventario di @2. + [ []]= [ []] +Give item to player=Dà oggetti ai giocatori +Name and ItemString required.=Richiesti nome e NomeOggetto. + [ []]= [ []] +Give item to yourself=Dà oggetti a te stessǝ +ItemString required.=Richiesto NomeOggetto. + [,,]= [,,] +Spawn entity at given (or your) position=Genera un'entità alla data coordinata (o la tua) +EntityName required.=Richiesto NomeEntità +Unable to spawn entity, player is nil.=Impossibile generare l'entità, il giocatore è nil. +Cannot spawn an unknown entity.=Impossibile generare un'entità sconosciuta. +Invalid parameters (@1).=Parametri non validi (@1). +@1 spawned.=Generata entità @1. +@1 failed to spawn.=Errore nel generare @1 +Destroy item in hand=Distrugge l'oggetto in mano +Unable to pulverize, no player.=Impossibile polverizzare, nessun giocatore. +Unable to pulverize, no item in hand.=Impossibile polverizzare, nessun oggetto in mano. +An item was pulverized.=Un oggetto è stato polverizzato. +[] [] []=[] [] [] +Check who last touched a node or a node near it within the time specified by . Default: range @= 0, seconds @= 86400 @= 24h, limit @= 5. Set to inf for no time limit=Controlla chi è l'ultimo giocatore che ha toccato un nodo o un nodo nelle sue vicinanze, negli ultimi secondi indicati. Di base: raggio @= 0, secondi @= 86400 @= 24h, limite @= 5. +Rollback functions are disabled.=Le funzioni di rollback sono disabilitate. +That limit is too high!=Il limite è troppo alto! +Checking @1 ...=Controllando @1 ... +Nobody has touched the specified location in @1 seconds.=Nessuno ha toccato il punto specificato negli ultimi @1 secondi. +@1 @2 @3 -> @4 @5 seconds ago.=@1 @2 @3 -> @4 @5 secondi fa. +Punch a node (range@=@1, seconds@=@2, limit@=@3).=Colpisce un nodo (raggio@=@1, secondi@=@2, limite@=@3) +( []) | (: [])=( []) | (: []) +Revert actions of a player. Default for is 60. Set to inf for no time limit=Riavvolge le azioni di un giocatore. Di base, è 60. Imposta a inf per nessun limite di tempo +Invalid parameters. See /help rollback and /help rollback_check.=Parametri non validi. Vedi /help rollback e /help rollback_check. +Reverting actions of player '@1' since @2 seconds.=Riavvolge le azioni del giocatore '@1' avvenute negli ultimi @2 secondi. +Reverting actions of @1 since @2 seconds.=Riavvolge le azioni di @1 avvenute negli ultimi @2 secondi. +(log is too long to show)=(il log è troppo lungo per essere mostrato) +Reverting actions succeeded.=Riavvolgimento azioni avvenuto con successo. +Reverting actions FAILED.=Errore nel riavvolgere le azioni. +Show server status=Mostra lo stato del server +This command was disabled by a mod or game.=Questo comando è stato disabilitato da una mod o dal gioco. +[<0..23>:<0..59> | <0..24000>]=[<0..23>:<0..59> | <0..24000>] +Show or set time of day=Mostra o imposta l'orario della giornata +Current time is @1:@2.=Orario corrente: @1:@2. +You don't have permission to run this command (missing privilege: @1).=Non hai il permesso di eseguire questo comando (privilegio mancante: @1) +Invalid time.=Orario non valido. +Time of day changed.=Orario della giornata cambiato. +Invalid hour (must be between 0 and 23 inclusive).=Ora non valida (deve essere tra 0 e 23 inclusi) +Invalid minute (must be between 0 and 59 inclusive).=Minuto non valido (deve essere tra 0 e 59 inclusi) +Show day count since world creation=Mostra il conteggio dei giorni da quando il mondo è stato creato +Current day is @1.=Giorno attuale: @1. +[ | -1] [reconnect] []=[ | -1] [reconnect] [] +Shutdown server (-1 cancels a delayed shutdown)=Arresta il server (-1 annulla un arresto programmato) +Server shutting down (operator request).=Arresto del server in corso (per richiesta dell'operatore) +Ban the IP of a player or show the ban list=Bandisce l'IP del giocatore o mostra la lista di quelli banditi +The ban list is empty.=La lista banditi è vuota. +Ban list: @1=Lista banditi: @1 +Player is not online.=Il giocatore non è connesso. +Failed to ban player.=Errore nel bandire il giocatore. +Banned @1.=@1 banditǝ. + | = | +Remove IP ban belonging to a player/IP=Perdona l'IP appartenente a un giocatore/IP +Failed to unban player/IP.=Errore nel perdonare il giocatore/IP +Unbanned @1.=@1 perdonatǝ + []= [] +Kick a player=Caccia un giocatore +Failed to kick player @1.=Errore nel cacciare il giocatore @1. +Kicked @1.=@1 cacciatǝ. +[full | quick]=[full | quick] +Clear all objects in world=Elimina tutti gli oggetti/entità nel mondo +Invalid usage, see /help clearobjects.=Uso incorretto, vedi /help clearobjects. +Clearing all objects. This may take a long time. You may experience a timeout. (by @1)=Eliminando tutti gli oggetti/entità. Questo potrebbe richiedere molto tempo e farti eventualmente crashare. (di @1) +Cleared all objects.=Tutti gli oggetti sono stati eliminati. + = +Send a direct message to a player=Invia un messaggio privato al giocatore +Invalid usage, see /help msg.=Uso incorretto, vedi /help msg +The player @1 is not online.=Il giocatore @1 non è connesso. +DM from @1: @2=Messaggio privato da @1: @2 +Message sent.=Messaggio inviato. +Get the last login time of a player or yourself=Ritorna l'ultimo accesso di un giocatore o di te stessǝ +@1's last login time was @2.=L'ultimo accesso di @1 è avvenuto il @2 +@1's last login time is unknown.=L'ultimo accesso di @1 non è conosciuto +Clear the inventory of yourself or another player=Svuota l'inventario tuo o di un altro giocatore +You don't have permission to clear another player's inventory (missing privilege: @1).=Non hai il permesso di svuotare l'inventario di un altro giocatore (privilegio mancante: @1). +@1 cleared your inventory.=@1 ha svuotato il tuo inventario. +Cleared @1's inventory.=L'inventario di @1 è stato svuotato. +Player must be online to clear inventory!=Il giocatore deve essere connesso per svuotarne l'inventario! +Players can't be killed, damage has been disabled.=I giocatori non possono essere uccisi, il danno è disabilitato. +Player @1 is not online.=Il giocatore @1 non è connesso. +You are already dead.=Sei già mortǝ. +@1 is already dead.=@1 è già mortǝ. +@1 has been killed.=@1 è stato uccisǝ. +Kill player or yourself=Uccide un giocatore o te stessǝ +Available commands: @1=Comandi disponibili: @1 +Use '/help ' to get more information, or '/help all' to list everything.=Usa '/help ' per ottenere più informazioni, o '/help all' per elencare tutti i comandi. +Available commands:=Comandi disponibili: +Command not available: @1=Comando non disponibile: @1 +[all | privs | ]=[all | privs | ] +Get help for commands or list privileges=Richiama la finestra d'aiuto dei comandi o dei privilegi +Command=Comando +Parameters=Parametri +For more information, click on any entry in the list.=Per più informazioni, clicca su una qualsiasi voce dell'elenco. +Double-click to copy the entry to the chat history.=Doppio click per copiare la voce nella cronologia della chat. +Command: @1 @2=Comando: @1 @2 +Available commands: (see also: /help )=Comandi disponibili: (vedi anche /help ) +Close=Chiudi +Privilege=Privilegio +Description=Descrizione +Available privileges:=Privilegi disponibili: +print [] | dump [] | save [ []] | reset=print [] | dump [] | save [ []] | reset +Handle the profiler and profiling data=Gestisce il profiler e i dati da esso elaborati +Statistics written to action log.=Statistiche scritte nel log delle azioni. +Statistics were reset.=Le statistiche sono state resettate. +Usage: @1=Utilizzo: @1 +Format can be one of txt, csv, lua, json, json_pretty (structures may be subject to change).=I formati supportati sono txt, csv, lua, json e json_pretty (le strutture potrebbero essere soggetti a cambiamenti). +@1 joined the game.= +@1 left the game.= +@1 left the game (timed out).= +(no description)=(nessuna descrizione) +Can interact with things and modify the world=Si può interagire con le cose e modificare il mondo +Can speak in chat=Si può parlare in chat +Can modify basic privileges (@1)= +Can modify privileges=Si possono modificare i privilegi +Can teleport self=Si può teletrasportare se stessз +Can teleport other players=Si possono teletrasportare gli altri giocatori +Can set the time of day using /time=Si può impostate l'orario della giornata tramite /time +Can do server maintenance stuff=Si possono eseguire operazioni di manutenzione del server +Can bypass node protection in the world=Si può aggirare la protezione dei nodi nel mondo +Can ban and unban players=Si possono bandire e perdonare i giocatori +Can kick players=Si possono cacciare i giocatori +Can use /give and /giveme=Si possono usare /give e /give me +Can use /setpassword and /clearpassword=Si possono usare /setpassword e /clearpassword +Can use fly mode=Si può usare la modalità volo +Can use fast mode=Si può usare la modalità rapida +Can fly through solid nodes using noclip mode=Si può volare attraverso i nodi solidi con la modalità incorporea +Can use the rollback functionality=Si può usare la funzione di rollback +Allows enabling various debug options that may affect gameplay=Permette di abilitare varie opzioni di debug che potrebbero influenzare l'esperienza di gioco +Unknown Item=Oggetto sconosciuto +Air=Aria +Ignore=Ignora +You can't place 'ignore' nodes!=Non puoi piazzare nodi 'ignore'! +Values below show absolute/relative times spend per server step by the instrumented function.= +A total of @1 sample(s) were taken.= +The output is limited to '@1'.= +Saving of profile failed: @1= +Profile saved to @1= + + +##### not used anymore ##### + + ( | all)= ( | all) + | all= | all +Can modify 'shout' and 'interact' privileges=Si possono modificare i privilegi 'shout' e 'interact' diff --git a/builtin/locale/template.txt b/builtin/locale/template.txt new file mode 100644 index 000000000..db0ee07b8 --- /dev/null +++ b/builtin/locale/template.txt @@ -0,0 +1,240 @@ +# textdomain: __builtin +Empty command.= +Invalid command: @1= +Invalid command usage.= + (@1 s)= +Command execution took @1 s= +You don't have permission to run this command (missing privileges: @1).= +Unable to get position of player @1.= +Incorrect area format. Expected: (x1,y1,z1) (x2,y2,z2)= += +Show chat action (e.g., '/me orders a pizza' displays ' orders a pizza')= +Show the name of the server owner= +The administrator of this server is @1.= +There's no administrator named in the config file.= +@1 does not have any privileges.= +Privileges of @1: @2= +[]= +Show privileges of yourself or another player= +Player @1 does not exist.= += +Return list of all online players with privilege= +Invalid parameters (see /help haspriv).= +Unknown privilege!= +Players online with the "@1" privilege: @2= +Your privileges are insufficient.= +Your privileges are insufficient. '@1' only allows you to grant: @2= +Unknown privilege: @1= +@1 granted you privileges: @2= + ( [, [<...>]] | all)= +Give privileges to player= +Invalid parameters (see /help grant).= + [, [<...>]] | all= +Grant privileges to yourself= +Invalid parameters (see /help grantme).= +Your privileges are insufficient. '@1' only allows you to revoke: @2= +Note: Cannot revoke in singleplayer: @1= +Note: Cannot revoke from admin: @1= +No privileges were revoked.= +@1 revoked privileges from you: @2= +Remove privileges from player= +Invalid parameters (see /help revoke).= +Revoke privileges from yourself= +Invalid parameters (see /help revokeme).= + = +Set player's password= +Name field required.= +Your password was cleared by @1.= +Password of player "@1" cleared.= +Your password was set by @1.= +Password of player "@1" set.= += +Set empty password for a player= +Reload authentication data= +Done.= +Failed.= +Remove a player's data= +Player "@1" removed.= +No such player "@1" to remove.= +Player "@1" is connected, cannot remove.= +Unhandled remove_player return code @1.= +Cannot teleport out of map bounds!= +Cannot get player with name @1.= +Cannot teleport, @1 is attached to an object!= +Teleporting @1 to @2.= +One does not teleport to oneself.= +Cannot get teleportee with name @1.= +Cannot get target player with name @1.= +Teleporting @1 to @2 at @3.= +,, | | ,, | = +Teleport to position or player= +You don't have permission to teleport other players (missing privilege: @1).= +([-n] ) | = +Set or read server configuration setting= +Failed. Use '/set -n ' to create a new setting.= +@1 @= @2= += +Invalid parameters (see /help set).= +Finished emerging @1 blocks in @2ms.= +emergeblocks update: @1/@2 blocks emerged (@3%)= +(here []) | ( )= +Load (or, if nonexistent, generate) map blocks contained in area pos1 to pos2 ( and must be in parentheses)= +Started emerge of area ranging from @1 to @2.= +Delete map blocks contained in area pos1 to pos2 ( and must be in parentheses)= +Successfully cleared area ranging from @1 to @2.= +Failed to clear one or more blocks in area.= +Resets lighting in the area between pos1 and pos2 ( and must be in parentheses)= +Successfully reset light in the area ranging from @1 to @2.= +Failed to load one or more blocks in area.= +List mods installed on the server= +Cannot give an empty item.= +Cannot give an unknown item.= +Giving 'ignore' is not allowed.= +@1 is not a known player.= +@1 partially added to inventory.= +@1 could not be added to inventory.= +@1 added to inventory.= +@1 partially added to inventory of @2.= +@1 could not be added to inventory of @2.= +@1 added to inventory of @2.= + [ []]= +Give item to player= +Name and ItemString required.= + [ []]= +Give item to yourself= +ItemString required.= + [,,]= +Spawn entity at given (or your) position= +EntityName required.= +Unable to spawn entity, player is nil.= +Cannot spawn an unknown entity.= +Invalid parameters (@1).= +@1 spawned.= +@1 failed to spawn.= +Destroy item in hand= +Unable to pulverize, no player.= +Unable to pulverize, no item in hand.= +An item was pulverized.= +[] [] []= +Check who last touched a node or a node near it within the time specified by . Default: range @= 0, seconds @= 86400 @= 24h, limit @= 5. Set to inf for no time limit= +Rollback functions are disabled.= +That limit is too high!= +Checking @1 ...= +Nobody has touched the specified location in @1 seconds.= +@1 @2 @3 -> @4 @5 seconds ago.= +Punch a node (range@=@1, seconds@=@2, limit@=@3).= +( []) | (: [])= +Revert actions of a player. Default for is 60. Set to inf for no time limit= +Invalid parameters. See /help rollback and /help rollback_check.= +Reverting actions of player '@1' since @2 seconds.= +Reverting actions of @1 since @2 seconds.= +(log is too long to show)= +Reverting actions succeeded.= +Reverting actions FAILED.= +Show server status= +This command was disabled by a mod or game.= +[<0..23>:<0..59> | <0..24000>]= +Show or set time of day= +Current time is @1:@2.= +You don't have permission to run this command (missing privilege: @1).= +Invalid time.= +Time of day changed.= +Invalid hour (must be between 0 and 23 inclusive).= +Invalid minute (must be between 0 and 59 inclusive).= +Show day count since world creation= +Current day is @1.= +[ | -1] [reconnect] []= +Shutdown server (-1 cancels a delayed shutdown)= +Server shutting down (operator request).= +Ban the IP of a player or show the ban list= +The ban list is empty.= +Ban list: @1= +Player is not online.= +Failed to ban player.= +Banned @1.= + | = +Remove IP ban belonging to a player/IP= +Failed to unban player/IP.= +Unbanned @1.= + []= +Kick a player= +Failed to kick player @1.= +Kicked @1.= +[full | quick]= +Clear all objects in world= +Invalid usage, see /help clearobjects.= +Clearing all objects. This may take a long time. You may experience a timeout. (by @1)= +Cleared all objects.= + = +Send a direct message to a player= +Invalid usage, see /help msg.= +The player @1 is not online.= +DM from @1: @2= +Message sent.= +Get the last login time of a player or yourself= +@1's last login time was @2.= +@1's last login time is unknown.= +Clear the inventory of yourself or another player= +You don't have permission to clear another player's inventory (missing privilege: @1).= +@1 cleared your inventory.= +Cleared @1's inventory.= +Player must be online to clear inventory!= +Players can't be killed, damage has been disabled.= +Player @1 is not online.= +You are already dead.= +@1 is already dead.= +@1 has been killed.= +Kill player or yourself= +Available commands: @1= +Use '/help ' to get more information, or '/help all' to list everything.= +Available commands:= +Command not available: @1= +[all | privs | ]= +Get help for commands or list privileges= +Command= +Parameters= +For more information, click on any entry in the list.= +Double-click to copy the entry to the chat history.= +Command: @1 @2= +Available commands: (see also: /help )= +Close= +Privilege= +Description= +Available privileges:= +print [] | dump [] | save [ []] | reset= +Handle the profiler and profiling data= +Statistics written to action log.= +Statistics were reset.= +Usage: @1= +Format can be one of txt, csv, lua, json, json_pretty (structures may be subject to change).= +@1 joined the game.= +@1 left the game.= +@1 left the game (timed out).= +(no description)= +Can interact with things and modify the world= +Can speak in chat= +Can modify basic privileges (@1)= +Can modify privileges= +Can teleport self= +Can teleport other players= +Can set the time of day using /time= +Can do server maintenance stuff= +Can bypass node protection in the world= +Can ban and unban players= +Can kick players= +Can use /give and /giveme= +Can use /setpassword and /clearpassword= +Can use fly mode= +Can use fast mode= +Can fly through solid nodes using noclip mode= +Can use the rollback functionality= +Allows enabling various debug options that may affect gameplay= +Unknown Item= +Air= +Ignore= +You can't place 'ignore' nodes!= +Values below show absolute/relative times spend per server step by the instrumented function.= +A total of @1 sample(s) were taken.= +The output is limited to '@1'.= +Saving of profile failed: @1= +Profile saved to @1= diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua index 782d6973f..6db351048 100644 --- a/builtin/mainmenu/common.lua +++ b/builtin/mainmenu/common.lua @@ -14,14 +14,11 @@ --You should have received a copy of the GNU Lesser General Public License along --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --------------------------------------------------------------------------------- + -- Global menu data --------------------------------------------------------------------------------- menudata = {} --------------------------------------------------------------------------------- -- Local cached values --------------------------------------------------------------------------------- local min_supp_proto, max_supp_proto function common_update_cached_supp_proto() @@ -29,14 +26,12 @@ function common_update_cached_supp_proto() max_supp_proto = core.get_max_supp_proto() end common_update_cached_supp_proto() --------------------------------------------------------------------------------- --- Menu helper functions --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- +-- Menu helper functions + local function render_client_count(n) - if n > 99 then return '99+' - elseif n >= 0 then return tostring(n) + if n > 999 then return '99+' + elseif n >= 0 then return tostring(n) else return '?' end end @@ -50,74 +45,40 @@ local function configure_selected_world_params(idx) end end --------------------------------------------------------------------------------- -function image_column(tooltip, flagname) - return "image,tooltip=" .. core.formspec_escape(tooltip) .. "," .. - "0=" .. core.formspec_escape(defaulttexturedir .. "blank.png") .. "," .. - "1=" .. core.formspec_escape(defaulttexturedir .. - (flagname and "server_flags_" .. flagname .. ".png" or "blank.png")) .. "," .. - "2=" .. core.formspec_escape(defaulttexturedir .. "server_ping_4.png") .. "," .. - "3=" .. core.formspec_escape(defaulttexturedir .. "server_ping_3.png") .. "," .. - "4=" .. core.formspec_escape(defaulttexturedir .. "server_ping_2.png") .. "," .. - "5=" .. core.formspec_escape(defaulttexturedir .. "server_ping_1.png") -end - --------------------------------------------------------------------------------- -function order_favorite_list(list) - local res = {} - --orders the favorite list after support - for i = 1, #list do - local fav = list[i] - if is_server_protocol_compat(fav.proto_min, fav.proto_max) then - res[#res + 1] = fav - end - end - for i = 1, #list do - local fav = list[i] - if not is_server_protocol_compat(fav.proto_min, fav.proto_max) then - res[#res + 1] = fav - end - end - return res -end - --------------------------------------------------------------------------------- -function render_serverlist_row(spec, is_favorite) +function render_serverlist_row(spec) local text = "" if spec.name then text = text .. core.formspec_escape(spec.name:trim()) elseif spec.address then - text = text .. spec.address:trim() + text = text .. core.formspec_escape(spec.address:trim()) if spec.port then text = text .. ":" .. spec.port end end - local grey_out = not is_server_protocol_compat(spec.proto_min, spec.proto_max) + local grey_out = not spec.is_compatible - local details - if is_favorite then - details = "1," - else - details = "0," - end + local details = {} - if spec.ping then - local ping = spec.ping * 1000 - if ping <= 50 then - details = details .. "2," - elseif ping <= 100 then - details = details .. "3," - elseif ping <= 250 then - details = details .. "4," + if spec.lag or spec.ping then + local lag = (spec.lag or 0) * 1000 + (spec.ping or 0) * 250 + if lag <= 125 then + table.insert(details, "1") + elseif lag <= 175 then + table.insert(details, "2") + elseif lag <= 250 then + table.insert(details, "3") else - details = details .. "5," + table.insert(details, "4") end else - details = details .. "0," + table.insert(details, "0") end - if spec.clients and spec.clients_max then + table.insert(details, ",") + + local color = (grey_out and "#aaaaaa") or ((spec.is_favorite and "#ddddaa") or "#ffffff") + if spec.clients and (spec.clients_max or 0) > 0 then local clients_percent = 100 * spec.clients / spec.clients_max -- Choose a color depending on how many clients are connected @@ -128,74 +89,50 @@ function render_serverlist_row(spec, is_favorite) elseif clients_percent <= 60 then clients_color = '#a1e587' -- 0-60%: green elseif clients_percent <= 90 then clients_color = '#ffdc97' -- 60-90%: yellow elseif clients_percent == 100 then clients_color = '#dd5b5b' -- full server: red (darker) - else clients_color = '#ffba97' -- 90-100%: orange + else clients_color = '#ffba97' -- 90-100%: orange end - details = details .. clients_color .. ',' .. - render_client_count(spec.clients) .. ',/,' .. - render_client_count(spec.clients_max) .. ',' - - elseif grey_out then - details = details .. '#aaaaaa,?,/,?,' + table.insert(details, clients_color) + table.insert(details, render_client_count(spec.clients) .. " / " .. + render_client_count(spec.clients_max)) else - details = details .. ',?,/,?,' + table.insert(details, color) + table.insert(details, "?") end if spec.creative then - details = details .. "1," + table.insert(details, "1") -- creative icon else - details = details .. "0," - end - - if spec.damage then - details = details .. "1," - else - details = details .. "0," + table.insert(details, "0") end if spec.pvp then - details = details .. "1," + table.insert(details, "2") -- pvp icon + elseif spec.damage then + table.insert(details, "1") -- heart icon else - details = details .. "0," + table.insert(details, "0") end - return details .. (grey_out and '#aaaaaa,' or ',') .. text + table.insert(details, color) + table.insert(details, text) + + return table.concat(details, ",") end -------------------------------------------------------------------------------- os.tempfolder = function() - if core.settings:get("TMPFolder") then - return core.settings:get("TMPFolder") .. DIR_DELIM .. "MT_" .. math.random(0,10000) - end - - local filetocheck = os.tmpname() - os.remove(filetocheck) - - -- luacheck: ignore - -- https://blogs.msdn.microsoft.com/vcblog/2014/06/18/c-runtime-crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1/ - -- The C runtime (CRT) function called by os.tmpname is tmpnam. - -- Microsofts tmpnam implementation in older CRT / MSVC releases is defective. - -- tmpnam return values starting with a backslash characterize this behavior. - -- https://sourceforge.net/p/mingw-w64/bugs/555/ - -- MinGW tmpnam implementation is forwarded to the CRT directly. - -- https://sourceforge.net/p/mingw-w64/discussion/723797/thread/55520785/ - -- MinGW links to an older CRT release (msvcrt.dll). - -- Due to legal concerns MinGW will never use a newer CRT. - -- - -- Make use of TEMP to compose the temporary filename if an old - -- style tmpnam return value is detected. - if filetocheck:sub(1, 1) == "\\" then - local tempfolder = os.getenv("TEMP") - return tempfolder .. filetocheck - end - - local randname = "MTTempModFolder_" .. math.random(0,10000) - local backstring = filetocheck:reverse() - return filetocheck:sub(0, filetocheck:len() - backstring:find(DIR_DELIM) + 1) .. - randname + local temp = core.get_temp_path() + return temp .. DIR_DELIM .. "MT_" .. math.random(0, 10000) end +os.tmpname = function() + local path = os.tempfolder() + io.open(path, "w"):close() + return path +end -------------------------------------------------------------------------------- + function menu_render_worldlist() local retval = "" local current_worldlist = menudata.worldlist:get_list() @@ -209,7 +146,6 @@ function menu_render_worldlist() return retval end --------------------------------------------------------------------------------- function menu_handle_key_up_down(fields, textlist, settingname) local oldidx, newidx = core.get_textlist_index(textlist), 1 if fields.key_up or fields.key_down then @@ -226,42 +162,6 @@ function menu_handle_key_up_down(fields, textlist, settingname) return false end --------------------------------------------------------------------------------- -function asyncOnlineFavourites() - if not menudata.public_known then - menudata.public_known = {{ - name = fgettext("Loading..."), - description = fgettext_ne("Try reenabling public serverlist and check your internet connection.") - }} - end - menudata.favorites = menudata.public_known - menudata.favorites_is_public = true - - if not menudata.public_downloading then - menudata.public_downloading = true - else - return - end - - core.handle_async( - function(param) - return core.get_favorites("online") - end, - nil, - function(result) - menudata.public_downloading = nil - local favs = order_favorite_list(result) - if favs[1] then - menudata.public_known = favs - menudata.favorites = menudata.public_known - menudata.favorites_is_public = true - end - core.event_handler("Refresh") - end - ) -end - --------------------------------------------------------------------------------- function text2textlist(xpos, ypos, width, height, tl_name, textlen, text, transparency) local textlines = core.wrap_text(text, textlen, true) local retval = "textlist[" .. xpos .. "," .. ypos .. ";" .. width .. @@ -279,7 +179,6 @@ function text2textlist(xpos, ypos, width, height, tl_name, textlen, text, transp return retval end --------------------------------------------------------------------------------- function is_server_protocol_compat(server_proto_min, server_proto_max) if (not server_proto_min) or (not server_proto_max) then -- There is no info. Assume the best and act as if we would be compatible. @@ -287,7 +186,7 @@ function is_server_protocol_compat(server_proto_min, server_proto_max) end return min_supp_proto <= server_proto_max and max_supp_proto >= server_proto_min end --------------------------------------------------------------------------------- + function is_server_protocol_compat_or_error(server_proto_min, server_proto_max) if not is_server_protocol_compat(server_proto_min, server_proto_max) then local server_prot_ver_info, client_prot_ver_info @@ -315,7 +214,7 @@ function is_server_protocol_compat_or_error(server_proto_min, server_proto_max) return true end --------------------------------------------------------------------------------- + function menu_worldmt(selected, setting, value) local world = menudata.worldlist:get_list()[selected] if world then diff --git a/builtin/mainmenu/dlg_config_world.lua b/builtin/mainmenu/dlg_config_world.lua index 2cf70c9c9..9bdf92a74 100644 --- a/builtin/mainmenu/dlg_config_world.lua +++ b/builtin/mainmenu/dlg_config_world.lua @@ -74,7 +74,7 @@ local function get_formspec(data) "label[1.75,0;" .. data.worldspec.name .. "]" if mod.is_modpack or mod.type == "game" then - local info = minetest.formspec_escape( + local info = core.formspec_escape( core.get_content_info(mod.path).description) if info == "" then if mod.is_modpack then diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua index b3616bfc8..20a446d5d 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -15,7 +15,7 @@ --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -if not minetest.get_http_api then +if not core.get_http_api then function create_store_dlg() return messagebox("store", fgettext("ContentDB is not available when Minetest was compiled without cURL")) @@ -23,9 +23,11 @@ if not minetest.get_http_api then return end -local store = { packages = {}, packages_full = {} } +-- Unordered preserves the original order of the ContentDB API, +-- before the package list is ordered based on installed state. +local store = { packages = {}, packages_full = {}, packages_full_unordered = {} } -local http = minetest.get_http_api() +local http = core.get_http_api() -- Screenshot local screenshot_dir = core.get_cache_path() .. DIR_DELIM .. "cdb" @@ -150,7 +152,7 @@ local function start_install(package) end local function queue_download(package) - local max_concurrent_downloads = tonumber(minetest.settings:get("contentdb_max_concurrent_downloads")) + local max_concurrent_downloads = tonumber(core.settings:get("contentdb_max_concurrent_downloads")) if number_downloading < max_concurrent_downloads then start_install(package) else @@ -159,6 +161,331 @@ local function queue_download(package) end end +local function get_raw_dependencies(package) + if package.raw_deps then + return package.raw_deps + end + + local url_fmt = "/api/packages/%s/dependencies/?only_hard=1&protocol_version=%s&engine_version=%s" + local version = core.get_version() + local base_url = core.settings:get("contentdb_url") + local url = base_url .. url_fmt:format(package.id, core.get_max_supp_proto(), version.string) + + local response = http.fetch_sync({ url = url }) + if not response.succeeded then + return + end + + local data = core.parse_json(response.data) or {} + + local content_lookup = {} + for _, pkg in pairs(store.packages_full) do + content_lookup[pkg.id] = pkg + end + + for id, raw_deps in pairs(data) do + local package2 = content_lookup[id:lower()] + if package2 and not package2.raw_deps then + package2.raw_deps = raw_deps + + for _, dep in pairs(raw_deps) do + local packages = {} + for i=1, #dep.packages do + packages[#packages + 1] = content_lookup[dep.packages[i]:lower()] + end + dep.packages = packages + end + end + end + + return package.raw_deps +end + +local function has_hard_deps(raw_deps) + for i=1, #raw_deps do + if not raw_deps[i].is_optional then + return true + end + end + + return false +end + +-- Recursively resolve dependencies, given the installed mods +local function resolve_dependencies_2(raw_deps, installed_mods, out) + local function resolve_dep(dep) + -- Check whether it's already installed + if installed_mods[dep.name] then + return { + is_optional = dep.is_optional, + name = dep.name, + installed = true, + } + end + + -- Find exact name matches + local fallback + for _, package in pairs(dep.packages) do + if package.type ~= "game" then + if package.name == dep.name then + return { + is_optional = dep.is_optional, + name = dep.name, + installed = false, + package = package, + } + elseif not fallback then + fallback = package + end + end + end + + -- Otherwise, find the first mod that fulfils it + if fallback then + return { + is_optional = dep.is_optional, + name = dep.name, + installed = false, + package = fallback, + } + end + + return { + is_optional = dep.is_optional, + name = dep.name, + installed = false, + } + end + + for _, dep in pairs(raw_deps) do + if not dep.is_optional and not out[dep.name] then + local result = resolve_dep(dep) + out[dep.name] = result + if result and result.package and not result.installed then + local raw_deps2 = get_raw_dependencies(result.package) + if raw_deps2 then + resolve_dependencies_2(raw_deps2, installed_mods, out) + end + end + end + end + + return true +end + +-- Resolve dependencies for a package, calls the recursive version. +local function resolve_dependencies(raw_deps, game) + assert(game) + + local installed_mods = {} + + local mods = {} + pkgmgr.get_game_mods(game, mods) + for _, mod in pairs(mods) do + installed_mods[mod.name] = true + end + + for _, mod in pairs(pkgmgr.global_mods:get_list()) do + installed_mods[mod.name] = true + end + + local out = {} + if not resolve_dependencies_2(raw_deps, installed_mods, out) then + return nil + end + + local retval = {} + for _, dep in pairs(out) do + retval[#retval + 1] = dep + end + + table.sort(retval, function(a, b) + return a.name < b.name + end) + + return retval +end + +local install_dialog = {} +function install_dialog.get_formspec() + local package = install_dialog.package + local raw_deps = install_dialog.raw_deps + local will_install_deps = install_dialog.will_install_deps + + local selected_game_idx = 1 + local selected_gameid = core.settings:get("menu_last_game") + local games = table.copy(pkgmgr.games) + for i=1, #games do + if selected_gameid and games[i].id == selected_gameid then + selected_game_idx = i + end + + games[i] = core.formspec_escape(games[i].name) + end + + local selected_game = pkgmgr.games[selected_game_idx] + local deps_to_install = 0 + local deps_not_found = 0 + + install_dialog.dependencies = resolve_dependencies(raw_deps, selected_game) + local formatted_deps = {} + for _, dep in pairs(install_dialog.dependencies) do + formatted_deps[#formatted_deps + 1] = "#fff" + formatted_deps[#formatted_deps + 1] = core.formspec_escape(dep.name) + if dep.installed then + formatted_deps[#formatted_deps + 1] = "#ccf" + formatted_deps[#formatted_deps + 1] = fgettext("Already installed") + elseif dep.package then + formatted_deps[#formatted_deps + 1] = "#cfc" + formatted_deps[#formatted_deps + 1] = fgettext("$1 by $2", dep.package.title, dep.package.author) + deps_to_install = deps_to_install + 1 + else + formatted_deps[#formatted_deps + 1] = "#f00" + formatted_deps[#formatted_deps + 1] = fgettext("Not found") + deps_not_found = deps_not_found + 1 + end + end + + local message_bg = "#3333" + local message + if will_install_deps then + message = fgettext("$1 and $2 dependencies will be installed.", package.title, deps_to_install) + else + message = fgettext("$1 will be installed, and $2 dependencies will be skipped.", package.title, deps_to_install) + end + if deps_not_found > 0 then + message = fgettext("$1 required dependencies could not be found.", deps_not_found) .. + " " .. fgettext("Please check that the base game is correct.", deps_not_found) .. + "\n" .. message + message_bg = mt_color_orange + end + + local formspec = { + "formspec_version[3]", + "size[7,7.85]", + "style[title;border=false]", + "box[0,0;7,0.5;#3333]", + "button[0,0;7,0.5;title;", fgettext("Install $1", package.title) , "]", + + "container[0.375,0.70]", + + "label[0,0.25;", fgettext("Base Game:"), "]", + "dropdown[2,0;4.25,0.5;gameid;", table.concat(games, ","), ";", selected_game_idx, "]", + + "label[0,0.8;", fgettext("Dependencies:"), "]", + + "tablecolumns[color;text;color;text]", + "table[0,1.1;6.25,3;packages;", table.concat(formatted_deps, ","), "]", + + "container_end[]", + + "checkbox[0.375,5.1;will_install_deps;", + fgettext("Install missing dependencies"), ";", + will_install_deps and "true" or "false", "]", + + "box[0,5.4;7,1.2;", message_bg, "]", + "textarea[0.375,5.5;6.25,1;;;", message, "]", + + "container[1.375,6.85]", + "button[0,0;2,0.8;install_all;", fgettext("Install"), "]", + "button[2.25,0;2,0.8;cancel;", fgettext("Cancel"), "]", + "container_end[]", + } + + return table.concat(formspec, "") +end + +function install_dialog.handle_submit(this, fields) + if fields.cancel then + this:delete() + return true + end + + if fields.will_install_deps ~= nil then + install_dialog.will_install_deps = core.is_yes(fields.will_install_deps) + return true + end + + if fields.install_all then + queue_download(install_dialog.package) + + if install_dialog.will_install_deps then + for _, dep in pairs(install_dialog.dependencies) do + if not dep.is_optional and not dep.installed and dep.package then + queue_download(dep.package) + end + end + end + + this:delete() + return true + end + + if fields.gameid then + for _, game in pairs(pkgmgr.games) do + if game.name == fields.gameid then + core.settings:set("menu_last_game", game.id) + break + end + end + return true + end + + return false +end + +function install_dialog.create(package, raw_deps) + install_dialog.dependencies = nil + install_dialog.package = package + install_dialog.raw_deps = raw_deps + install_dialog.will_install_deps = true + return dialog_create("install_dialog", + install_dialog.get_formspec, + install_dialog.handle_submit, + nil) +end + + +local confirm_overwrite = {} +function confirm_overwrite.get_formspec() + local package = confirm_overwrite.package + + return "size[11.5,4.5,true]" .. + "label[2,2;" .. + fgettext("\"$1\" already exists. Would you like to overwrite it?", package.name) .. "]".. + "style[install;bgcolor=red]" .. + "button[3.25,3.5;2.5,0.5;install;" .. fgettext("Overwrite") .. "]" .. + "button[5.75,3.5;2.5,0.5;cancel;" .. fgettext("Cancel") .. "]" +end + +function confirm_overwrite.handle_submit(this, fields) + if fields.cancel then + this:delete() + return true + end + + if fields.install then + this:delete() + confirm_overwrite.callback() + return true + end + + return false +end + +function confirm_overwrite.create(package, callback) + assert(type(package) == "table") + assert(type(callback) == "function") + + confirm_overwrite.package = package + confirm_overwrite.callback = callback + return dialog_create("confirm_overwrite", + confirm_overwrite.get_formspec, + confirm_overwrite.handle_submit, + nil) +end + + local function get_file_extension(path) local parts = path:split(".") return parts[#parts] @@ -226,7 +553,7 @@ function store.load() end end - local timeout = tonumber(minetest.settings:get("curl_file_download_timeout")) + local timeout = tonumber(core.settings:get("curl_file_download_timeout")) local response = http.fetch_sync({ url = url, timeout = timeout }) if not response.succeeded then return @@ -247,6 +574,7 @@ function store.load() end end + store.packages_full_unordered = store.packages_full store.packages = store.packages_full store.loaded = true end @@ -255,7 +583,7 @@ function store.update_paths() local mod_hash = {} pkgmgr.refresh_globals() for _, mod in pairs(pkgmgr.clientmods:get_list()) do - if mod.author then + if mod.author and mod.release > 0 then mod_hash[mod.author:lower() .. "/" .. mod.name] = mod end end @@ -263,14 +591,14 @@ function store.update_paths() local game_hash = {} pkgmgr.update_gamelist() for _, game in pairs(pkgmgr.games) do - if game.author ~= "" then + if game.author ~= "" and game.release > 0 then game_hash[game.author:lower() .. "/" .. game.id] = game end end local txp_hash = {} for _, txp in pairs(pkgmgr.get_texture_packs()) do - if txp.author then + if txp.author and txp.release > 0 then txp_hash[txp.author:lower() .. "/" .. txp.name] = txp end end @@ -294,6 +622,33 @@ function store.update_paths() end end +function store.sort_packages() + local ret = {} + + -- Add installed content + for i=1, #store.packages_full_unordered do + local package = store.packages_full_unordered[i] + if package.path then + ret[#ret + 1] = package + end + end + + -- Sort installed content by title + table.sort(ret, function(a, b) + return a.title < b.title + end) + + -- Add uninstalled content + for i=1, #store.packages_full_unordered do + local package = store.packages_full_unordered[i] + if not package.path then + ret[#ret + 1] = package + end + end + + store.packages_full = ret +end + function store.filter_packages(query) if query == "" and filter_type == 1 then store.packages = store.packages_full @@ -327,7 +682,6 @@ function store.filter_packages(query) store.packages[#store.packages + 1] = package end end - end function store.get_formspec(dlgdata) @@ -340,7 +694,6 @@ function store.get_formspec(dlgdata) local W = 15.75 local H = 9.5 - local formspec if #store.packages_full > 0 then formspec = { @@ -348,12 +701,13 @@ function store.get_formspec(dlgdata) "size[15.75,9.5]", "position[0.5,0.55]", - "style[status;border=false]", + "style[status,downloading,queued;border=false]", "container[0.375,0.375]", "field[0,0;7.225,0.8;search_string;;", core.formspec_escape(search_string), "]", "field_close_on_enter[search_string;false]", - "button[7.225,0;2,0.8;search;", fgettext("Search"), "]", + "image_button[7.3,0;0.8,0.8;", core.formspec_escape(defaulttexturedir .. "search.png"), ";search;]", + "image_button[8.125,0;0.8,0.8;", core.formspec_escape(defaulttexturedir .. "clear.png"), ";clear;]", "dropdown[9.6,0;2.4,0.8;type;", table.concat(filter_types_titles, ","), ";", filter_type, "]", "container_end[]", @@ -374,7 +728,7 @@ function store.get_formspec(dlgdata) } if number_downloading > 0 then - formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;status;" + formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;downloading;" if #download_queue > 0 then formspec[#formspec + 1] = fgettext("$1 downloading,\n$2 queued", number_downloading, #download_queue) else @@ -418,11 +772,17 @@ function store.get_formspec(dlgdata) } end + -- download/queued tooltips always have the same message + local tooltip_colors = ";#dff6f5;#302c2e]" + formspec[#formspec + 1] = "tooltip[downloading;" .. fgettext("Downloading...") .. tooltip_colors + formspec[#formspec + 1] = "tooltip[queued;" .. fgettext("Queued") .. tooltip_colors + local start_idx = (cur_page - 1) * num_per_page + 1 for i=start_idx, math.min(#store.packages, start_idx+num_per_page-1) do local package = store.packages[i] + local container_y = (i - start_idx) * 1.375 + (2*0.375 + 0.8) formspec[#formspec + 1] = "container[0.375," - formspec[#formspec + 1] = (i - start_idx) * 1.375 + (2*0.375 + 0.8) + formspec[#formspec + 1] = container_y formspec[#formspec + 1] = "]" -- image @@ -433,57 +793,55 @@ function store.get_formspec(dlgdata) -- title formspec[#formspec + 1] = "label[1.875,0.1;" formspec[#formspec + 1] = core.formspec_escape( - minetest.colorize(mt_color_green, package.title) .. - minetest.colorize("#BFBFBF", " by " .. package.author)) + core.colorize(mt_color_green, package.title) .. + core.colorize("#BFBFBF", " by " .. package.author)) formspec[#formspec + 1] = "]" -- buttons - local description_width = W - 0.375*5 - 1 - 2*1.5 + local left_base = "image_button[-1.55,0;0.7,0.7;" .. core.formspec_escape(defaulttexturedir) formspec[#formspec + 1] = "container[" formspec[#formspec + 1] = W - 0.375*2 formspec[#formspec + 1] = ",0.1]" if package.downloading then - formspec[#formspec + 1] = "button[-3.5,0;2,0.8;status;" - formspec[#formspec + 1] = fgettext("Downloading...") - formspec[#formspec + 1] = "]" + formspec[#formspec + 1] = "animated_image[-1.7,-0.15;1,1;downloading;" + formspec[#formspec + 1] = core.formspec_escape(defaulttexturedir) + formspec[#formspec + 1] = "cdb_downloading.png;3;400;]" elseif package.queued then - formspec[#formspec + 1] = "button[-3.5,0;2,0.8;status;" - formspec[#formspec + 1] = fgettext("Queued") - formspec[#formspec + 1] = "]" + formspec[#formspec + 1] = left_base + formspec[#formspec + 1] = core.formspec_escape(defaulttexturedir) + formspec[#formspec + 1] = "cdb_queued.png;queued]" elseif not package.path then - formspec[#formspec + 1] = "button[-3,0;1.5,0.8;install_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("Install") - formspec[#formspec + 1] = "]" + local elem_name = "install_" .. i .. ";" + formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#71aa34]" + formspec[#formspec + 1] = left_base .. "cdb_add.png;" .. elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Install") .. tooltip_colors else if package.installed_release < package.release then - description_width = description_width - 1.5 -- The install_ action also handles updating - formspec[#formspec + 1] = "button[-4.5,0;1.5,0.8;install_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("Update") - formspec[#formspec + 1] = "]" - end + local elem_name = "install_" .. i .. ";" + formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#28ccdf]" + formspec[#formspec + 1] = left_base .. "cdb_update.png;" .. elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Update") .. tooltip_colors + else - formspec[#formspec + 1] = "button[-3,0;1.5,0.8;uninstall_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("Uninstall") - formspec[#formspec + 1] = "]" + local elem_name = "uninstall_" .. i .. ";" + formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#a93b3b]" + formspec[#formspec + 1] = left_base .. "cdb_clear.png;" .. elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Uninstall") .. tooltip_colors + end end - formspec[#formspec + 1] = "button[-1.5,0;1.5,0.8;view_" - formspec[#formspec + 1] = tostring(i) - formspec[#formspec + 1] = ";" - formspec[#formspec + 1] = fgettext("View") - formspec[#formspec + 1] = "]" + local web_elem_name = "view_" .. i .. ";" + formspec[#formspec + 1] = "image_button[-0.7,0;0.7,0.7;" .. + core.formspec_escape(defaulttexturedir) .. "cdb_viewonline.png;" .. web_elem_name .. "]" + formspec[#formspec + 1] = "tooltip[" .. web_elem_name .. + fgettext("View more information in a web browser") .. tooltip_colors formspec[#formspec + 1] = "container_end[]" -- description + local description_width = W - 0.375*5 - 0.85 - 2*0.7 formspec[#formspec + 1] = "textarea[1.855,0.3;" formspec[#formspec + 1] = tostring(description_width) formspec[#formspec + 1] = ",0.8;;;" @@ -504,6 +862,13 @@ function store.handle_submit(this, fields) return true end + if fields.clear then + search_string = "" + cur_page = 1 + store.filter_packages("") + return true + end + if fields.back then this:delete() return true @@ -563,15 +928,47 @@ function store.handle_submit(this, fields) assert(package) if fields["install_" .. i] then - queue_download(package) + local install_parent + if package.type == "mod" then + install_parent = core.get_modpath() + elseif package.type == "game" then + install_parent = core.get_gamepath() + elseif package.type == "txp" then + install_parent = core.get_texturepath() + else + error("Unknown package type: " .. package.type) + end + + + local function on_confirm() + local deps = get_raw_dependencies(package) + if deps and has_hard_deps(deps) then + local dlg = install_dialog.create(package, deps) + dlg:set_parent(this) + this:hide() + dlg:show() + else + queue_download(package) + end + end + + if not package.path and core.is_dir(install_parent .. DIR_DELIM .. package.name) then + local dlg = confirm_overwrite.create(package, on_confirm) + dlg:set_parent(this) + this:hide() + dlg:show() + else + on_confirm() + end + return true end if fields["uninstall_" .. i] then - local dlg_delmod = create_delete_content_dlg(package) - dlg_delmod:set_parent(this) + local dlg = create_delete_content_dlg(package) + dlg:set_parent(this) this:hide() - dlg_delmod:show() + dlg:show() return true end @@ -592,6 +989,9 @@ function create_store_dlg(type) store.load() end + store.update_paths() + store.sort_packages() + search_string = "" cur_page = 1 diff --git a/builtin/mainmenu/dlg_create_world.lua b/builtin/mainmenu/dlg_create_world.lua index 7566d2409..1938747fe 100644 --- a/builtin/mainmenu/dlg_create_world.lua +++ b/builtin/mainmenu/dlg_create_world.lua @@ -98,7 +98,7 @@ local function create_world_formspec(dialogdata) -- Error out when no games found if #pkgmgr.games == 0 then return "size[12.25,3,true]" .. - "box[0,0;12,2;#ff8800]" .. + "box[0,0;12,2;" .. mt_color_orange .. "]" .. "textarea[0.3,0;11.7,2;;;".. fgettext("You have no games installed.") .. "\n" .. fgettext("Download one from minetest.net") .. "]" .. @@ -443,7 +443,7 @@ local function create_world_buttonhandler(this, fields) end if fields["mgv6_biomes"] then - local entry = minetest.formspec_escape(fields["mgv6_biomes"]) + local entry = core.formspec_escape(fields["mgv6_biomes"]) for b=1, #mgv6_biomes do if entry == mgv6_biomes[b][1] then local ftable = core.settings:get_flags("mgv6_spflags") diff --git a/builtin/mainmenu/dlg_settings_advanced.lua b/builtin/mainmenu/dlg_settings_advanced.lua index d82ae6263..26f4fa4a7 100644 --- a/builtin/mainmenu/dlg_settings_advanced.lua +++ b/builtin/mainmenu/dlg_settings_advanced.lua @@ -400,7 +400,7 @@ local function parse_config_file(read_all, parse_mods) file:close() end end - + -- Parse clientmods local clientmods_category_initialized = false local clientmods = {} diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua index b7e867d2e..2481078e2 100644 --- a/builtin/mainmenu/init.lua +++ b/builtin/mainmenu/init.lua @@ -19,6 +19,7 @@ mt_color_grey = "#AAAAAA" mt_color_blue = "#6389FF" mt_color_green = "#72FF63" mt_color_dark_green = "#25C191" +mt_color_orange = "#FF8800" local menupath = core.get_mainmenu_path() local basepath = core.get_builtin_path() @@ -33,6 +34,7 @@ dofile(basepath .. "fstk" .. DIR_DELIM .. "ui.lua") dofile(menupath .. DIR_DELIM .. "async_event.lua") dofile(menupath .. DIR_DELIM .. "common.lua") dofile(menupath .. DIR_DELIM .. "pkgmgr.lua") +dofile(menupath .. DIR_DELIM .. "serverlistmgr.lua") dofile(menupath .. DIR_DELIM .. "textures.lua") dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua") @@ -47,7 +49,7 @@ local tabs = {} tabs.settings = dofile(menupath .. DIR_DELIM .. "tab_settings.lua") tabs.content = dofile(menupath .. DIR_DELIM .. "tab_content.lua") -tabs.credits = dofile(menupath .. DIR_DELIM .. "tab_credits.lua") +tabs.about = dofile(menupath .. DIR_DELIM .. "tab_about.lua") tabs.local_game = dofile(menupath .. DIR_DELIM .. "tab_local.lua") tabs.play_online = dofile(menupath .. DIR_DELIM .. "tab_online.lua") @@ -96,7 +98,7 @@ local function init_globals() tv_main:add(tabs.content) tv_main:add(tabs.settings) - tv_main:add(tabs.credits) + tv_main:add(tabs.about) tv_main:set_global_event_handler(main_event_handler) tv_main:set_fixed_size(false) @@ -105,6 +107,16 @@ local function init_globals() if last_tab and tv_main.current_tab ~= last_tab then tv_main:set_tab(last_tab) end + + -- In case the folder of the last selected game has been deleted, + -- display "Minetest" as a header + if tv_main.current_tab == "local" then + local game = pkgmgr.find_by_gameid(core.settings:get("menu_last_game")) + if game == nil then + mm_texture.reset() + end + end + ui.set_default("maintab") tv_main:show() diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua index d4acb2b6a..58a4ed8c1 100644 --- a/builtin/mainmenu/pkgmgr.lua +++ b/builtin/mainmenu/pkgmgr.lua @@ -72,6 +72,34 @@ local function cleanup_path(temppath) return temppath end +local function load_texture_packs(txtpath, retval) + local list = core.get_dir_list(txtpath, true) + local current_texture_path = core.settings:get("texture_path") + + for _, item in ipairs(list) do + if item ~= "base" then + local name = item + + local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM + if path == current_texture_path then + name = fgettext("$1 (Enabled)", name) + end + + local conf = Settings(path .. "texture_pack.conf") + + retval[#retval + 1] = { + name = item, + author = conf:get("author"), + release = tonumber(conf:get("release")) or 0, + list_name = name, + type = "txp", + path = path, + enabled = path == current_texture_path, + } + end + end +end + function get_mods(path,retval,modpack) local mods = core.get_dir_list(path, true) @@ -107,12 +135,12 @@ function get_mods(path,retval,modpack) -- Read from config toadd.name = name toadd.author = mod_conf.author - toadd.release = tonumber(mod_conf.release or "0") + toadd.release = tonumber(mod_conf.release) or 0 toadd.path = prefix toadd.type = "mod" -- Check modpack.txt - -- Note: modpack.conf is already checked above + -- Note: modpack.conf is already checked above local modpackfile = io.open(prefix .. DIR_DELIM .. "modpack.txt") if modpackfile then modpackfile:close() @@ -136,32 +164,13 @@ pkgmgr = {} function pkgmgr.get_texture_packs() local txtpath = core.get_texturepath() - local list = core.get_dir_list(txtpath, true) + local txtpath_system = core.get_texturepath_share() local retval = {} - local current_texture_path = core.settings:get("texture_path") - - for _, item in ipairs(list) do - if item ~= "base" then - local name = item - - local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM - if path == current_texture_path then - name = fgettext("$1 (Enabled)", name) - end - - local conf = Settings(path .. "texture_pack.conf") - - retval[#retval + 1] = { - name = item, - author = conf:get("author"), - release = tonumber(conf:get("release") or "0"), - list_name = name, - type = "txp", - path = path, - enabled = path == current_texture_path, - } - end + load_texture_packs(txtpath, retval) + -- on portable versions these two paths coincide. It avoids loading the path twice + if txtpath ~= txtpath_system then + load_texture_packs(txtpath_system, retval) end table.sort(retval, function(a, b) @@ -404,18 +413,7 @@ function pkgmgr.is_modpack_entirely_enabled(data, name) end ---------- toggles or en/disables a mod or modpack and its dependencies -------- -function pkgmgr.enable_mod(this, toset) - local list = this.data.list:get_list() - local mod = list[this.data.selected_mod] - - -- Game mods can't be enabled or disabled - if mod.is_game_content then - return - end - - local toggled_mods = {} - - local enabled_mods = {} +local function toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, mod) if not mod.is_modpack then -- Toggle or en/disable the mod if toset == nil then @@ -434,23 +432,29 @@ function pkgmgr.enable_mod(this, toset) -- interleaved unsupported for i = 1, #list do if list[i].modpack == mod.name then - if toset == nil then - toset = not list[i].enabled - end - if list[i].enabled ~= toset then - list[i].enabled = toset - toggled_mods[#toggled_mods+1] = list[i].name - end - if toset then - enabled_mods[list[i].name] = true - end + toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, list[i]) end end end +end + +function pkgmgr.enable_mod(this, toset) + local list = this.data.list:get_list() + local mod = list[this.data.selected_mod] + + -- Game mods can't be enabled or disabled + if mod.is_game_content then + return + end + + local toggled_mods = {} + local enabled_mods = {} + toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, mod) + if not toset then -- Mod(s) were disabled, so no dependencies need to be enabled table.sort(toggled_mods) - minetest.log("info", "Following mods were disabled: " .. + core.log("info", "Following mods were disabled: " .. table.concat(toggled_mods, ", ")) return end @@ -487,7 +491,7 @@ function pkgmgr.enable_mod(this, toset) enabled_mods[name] = true local mod_to_enable = list[mod_ids[name]] if not mod_to_enable then - minetest.log("warning", "Mod dependency \"" .. name .. + core.log("warning", "Mod dependency \"" .. name .. "\" not found!") else if mod_to_enable.enabled == false then @@ -508,7 +512,7 @@ function pkgmgr.enable_mod(this, toset) -- Log the list of enabled mods table.sort(toggled_mods) - minetest.log("info", "Following mods were enabled: " .. + core.log("info", "Following mods were enabled: " .. table.concat(toggled_mods, ", ")) end diff --git a/builtin/mainmenu/serverlistmgr.lua b/builtin/mainmenu/serverlistmgr.lua new file mode 100644 index 000000000..964d0c584 --- /dev/null +++ b/builtin/mainmenu/serverlistmgr.lua @@ -0,0 +1,252 @@ +--Minetest +--Copyright (C) 2020 rubenwardy +-- +--This program is free software; you can redistribute it and/or modify +--it under the terms of the GNU Lesser General Public License as published by +--the Free Software Foundation; either version 2.1 of the License, or +--(at your option) any later version. +-- +--This program is distributed in the hope that it will be useful, +--but WITHOUT ANY WARRANTY; without even the implied warranty of +--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +--GNU Lesser General Public License for more details. +-- +--You should have received a copy of the GNU Lesser General Public License along +--with this program; if not, write to the Free Software Foundation, Inc., +--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +serverlistmgr = {} + +-------------------------------------------------------------------------------- +local function order_server_list(list) + local res = {} + --orders the favorite list after support + for i = 1, #list do + local fav = list[i] + if is_server_protocol_compat(fav.proto_min, fav.proto_max) then + res[#res + 1] = fav + end + end + for i = 1, #list do + local fav = list[i] + if not is_server_protocol_compat(fav.proto_min, fav.proto_max) then + res[#res + 1] = fav + end + end + return res +end + +local public_downloading = false + +-------------------------------------------------------------------------------- +function serverlistmgr.sync() + if not serverlistmgr.servers then + serverlistmgr.servers = {{ + name = fgettext("Loading..."), + description = fgettext_ne("Try reenabling public serverlist and check your internet connection.") + }} + end + + local serverlist_url = core.settings:get("serverlist_url") or "" + if not core.get_http_api or serverlist_url == "" then + serverlistmgr.servers = {{ + name = fgettext("Public server list is disabled"), + description = "" + }} + return + end + + if public_downloading then + return + end + public_downloading = true + + core.handle_async( + function(param) + local http = core.get_http_api() + local url = ("%s/list?proto_version_min=%d&proto_version_max=%d"):format( + core.settings:get("serverlist_url"), + core.get_min_supp_proto(), + core.get_max_supp_proto()) + + local response = http.fetch_sync({ url = url }) + if not response.succeeded then + return {} + end + + local retval = core.parse_json(response.data) + return retval and retval.list or {} + end, + nil, + function(result) + public_downloading = nil + local favs = order_server_list(result) + if favs[1] then + serverlistmgr.servers = favs + end + core.event_handler("Refresh") + end + ) +end + +-------------------------------------------------------------------------------- +local function get_favorites_path(folder) + local base = core.get_user_path() .. DIR_DELIM .. "client" .. DIR_DELIM .. "serverlist" .. DIR_DELIM + if folder then + return base + end + return base .. core.settings:get("serverlist_file") +end + +-------------------------------------------------------------------------------- +local function save_favorites(favorites) + local filename = core.settings:get("serverlist_file") + -- If setting specifies legacy format change the filename to the new one + if filename:sub(#filename - 3):lower() == ".txt" then + core.settings:set("serverlist_file", filename:sub(1, #filename - 4) .. ".json") + end + + assert(core.create_dir(get_favorites_path(true))) + core.safe_file_write(get_favorites_path(), core.write_json(favorites)) +end + +-------------------------------------------------------------------------------- +function serverlistmgr.read_legacy_favorites(path) + local file = io.open(path, "r") + if not file then + return nil + end + + local lines = {} + for line in file:lines() do + lines[#lines + 1] = line + end + file:close() + + local favorites = {} + + local i = 1 + while i < #lines do + local function pop() + local line = lines[i] + i = i + 1 + return line and line:trim() + end + + if pop():lower() == "[server]" then + local name = pop() + local address = pop() + local port = tonumber(pop()) + local description = pop() + + if name == "" then + name = nil + end + + if description == "" then + description = nil + end + + if not address or #address < 3 then + core.log("warning", "Malformed favorites file, missing address at line " .. i) + elseif not port or port < 1 or port > 65535 then + core.log("warning", "Malformed favorites file, missing port at line " .. i) + elseif (name and name:upper() == "[SERVER]") or + (address and address:upper() == "[SERVER]") or + (description and description:upper() == "[SERVER]") then + core.log("warning", "Potentially malformed favorites file, overran at line " .. i) + else + favorites[#favorites + 1] = { + name = name, + address = address, + port = port, + description = description + } + end + end + end + + return favorites +end + +-------------------------------------------------------------------------------- +local function read_favorites() + local path = get_favorites_path() + + -- If new format configured fall back to reading the legacy file + if path:sub(#path - 4):lower() == ".json" then + local file = io.open(path, "r") + if file then + local json = file:read("*all") + file:close() + return core.parse_json(json) + end + + path = path:sub(1, #path - 5) .. ".txt" + end + + local favs = serverlistmgr.read_legacy_favorites(path) + if favs then + save_favorites(favs) + os.remove(path) + end + return favs +end + +-------------------------------------------------------------------------------- +local function delete_favorite(favorites, del_favorite) + for i=1, #favorites do + local fav = favorites[i] + + if fav.address == del_favorite.address and fav.port == del_favorite.port then + table.remove(favorites, i) + return + end + end +end + +-------------------------------------------------------------------------------- +function serverlistmgr.get_favorites() + if serverlistmgr.favorites then + return serverlistmgr.favorites + end + + serverlistmgr.favorites = {} + + -- Add favorites, removing duplicates + local seen = {} + for _, fav in ipairs(read_favorites() or {}) do + local key = ("%s:%d"):format(fav.address:lower(), fav.port) + if not seen[key] then + seen[key] = true + serverlistmgr.favorites[#serverlistmgr.favorites + 1] = fav + end + end + + return serverlistmgr.favorites +end + +-------------------------------------------------------------------------------- +function serverlistmgr.add_favorite(new_favorite) + assert(type(new_favorite.port) == "number") + + -- Whitelist favorite keys + new_favorite = { + name = new_favorite.name, + address = new_favorite.address, + port = new_favorite.port, + description = new_favorite.description, + } + + local favorites = serverlistmgr.get_favorites() + delete_favorite(favorites, new_favorite) + table.insert(favorites, 1, new_favorite) + save_favorites(favorites) +end + +-------------------------------------------------------------------------------- +function serverlistmgr.delete_favorite(del_favorite) + local favorites = serverlistmgr.get_favorites() + delete_favorite(favorites, del_favorite) + save_favorites(favorites) +end diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_about.lua similarity index 65% rename from builtin/mainmenu/tab_credits.lua rename to builtin/mainmenu/tab_about.lua index 617823319..cb566f773 100644 --- a/builtin/mainmenu/tab_credits.lua +++ b/builtin/mainmenu/tab_about.lua @@ -24,6 +24,7 @@ local dragonfire_team = { "joshia_wi [Developer]", "Code-Sploit [Developer]", "DerZombiiie [User Support]", + "Rtx [User Support]", } local core_developers = { @@ -32,28 +33,37 @@ local core_developers = { "Nathanaël Courant (Nore/Ekdohibs) ", "Loic Blot (nerzhul/nrz) ", "paramat", - "Auke Kok (sofar) ", "Andrew Ward (rubenwardy) ", "Krock/SmallJoker ", "Lars Hofhansl ", + "Pierre-Yves Rollo ", + "v-rob ", } +-- For updating active/previous contributors, see the script in ./util/gather_git_credits.py + local active_contributors = { - "Hugues Ross [Formspecs]", + "Wuzzy [devtest game, visual corrections]", + "Zughy [Visual improvements, various fixes]", "Maksim (MoNTE48) [Android]", - "DS [Formspecs]", - "pyrollo [Formspecs: Hypertext]", - "v-rob [Formspecs]", - "Jordach [set_sky]", - "random-geek [Formspecs]", - "Wuzzy [Pathfinder, builtin, translations]", - "ANAND (ClobberXD) [Fixes, per-player FOV]", - "Warr1024 [Fixes]", - "Paul Ouellette (pauloue) [Fixes, Script API]", - "Jean-Patrick G (kilbith) [Audiovisuals]", - "HybridDog [Script API]", + "numzero [Graphics and rendering]", + "appgurueu [Various internal fixes]", + "Desour [Formspec and vector API changes]", + "HybridDog [Rendering fixes and documentation]", + "Hugues Ross [Graphics-related improvements]", + "ANAND (ClobberXD) [Mouse buttons rebinding]", + "luk3yx [Fixes]", + "hecks [Audiovisuals, Lua API]", + "LoneWolfHT [Object crosshair, documentation fixes]", + "Lejo [Server-related improvements]", + "EvidenceB [Compass HUD element]", + "Paul Ouellette (pauloue) [Lua API, documentation]", + "TheTermos [Collision detection, physics]", + "David CARLIER [Unix & Haiku build fixes]", "dcbrwn [Object shading]", - "srifqi [Fixes]", + "Elias Fleckenstein [API features/fixes]", + "Jean-Patrick Guerrero (kilbith) [model element, visual fixes]", + "k.h.lai [Memory leak fixes, documentation]", } local previous_core_developers = { @@ -69,30 +79,23 @@ local previous_core_developers = { "sapier", "Zeno", "ShadowNinja ", + "Auke Kok (sofar) ", } local previous_contributors = { "Nils Dagsson Moskopp (erlehmann) [Minetest Logo]", - "Dániel Juhász (juhdanad) ", "red-001 ", - "numberZero [Audiovisuals: meshgen]", "Giuseppe Bilotta", + "Dániel Juhász (juhdanad) ", "MirceaKitsune ", "Constantin Wenger (SpeedProg)", "Ciaran Gultnieks (CiaranG)", "stujones11 [Android UX improvements]", - "Jeija [HTTP, particles]", - "Vincent Glize (Dumbeldor) [Cleanups, CSM APIs]", - "Ben Deutsch [Rendering, Fixes, SQLite auth]", - "TeTpaAka [Hand overriding, nametag colors]", - "Rui [Sound Pitch]", - "Duane Robertson [MGValleys]", - "Raymoo [Tool Capabilities]", "Rogier [Fixes]", "Gregory Currie (gregorycu) [optimisation]", - "TriBlade9 [Audiovisuals]", - "T4im [Profiler]", - "Jurgen Doser (doserj) ", + "srifqi [Fixes]", + "JacobF", + "Jeija [HTTP, particles]", } local function buildCreditList(source) @@ -104,14 +107,15 @@ local function buildCreditList(source) end return { - name = "credits", - caption = fgettext("Credits"), + name = "about", + caption = fgettext("About"), cbf_formspec = function(tabview, name, tabdata) local logofile = defaulttexturedir .. "logo.png" local version = core.get_version() - return "image[0.5,1;" .. core.formspec_escape(logofile) .. "]" .. - "label[0.5,2.8;" .. version.project .. " " .. version.string .. "]" .. - "button[0.5,3;2,2;homepage;minetest.net]" .. + local fs = "image[0.75,0.5;2.2,2.2;" .. core.formspec_escape(logofile) .. "]" .. + "style[label_button;border=false]" .. + "button[0.5,2;2.5,2;label_button;" .. version.project .. " " .. version.string .. "]" .. + "button[0.75,2.75;2,2;homepage;minetest.net]" .. "tablecolumns[color;text]" .. "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. "table[3.5,-0.25;8.5,6.05;list_credits;" .. @@ -126,10 +130,28 @@ return { "#FFFF00," .. fgettext("Previous Contributors") .. ",," .. buildCreditList(previous_contributors) .. "," .. ";1]" + + -- Render information + fs = fs .. "label[0.75,4.9;" .. + fgettext("Active renderer:") .. "\n" .. + core.formspec_escape(core.get_screen_info().render_info) .. "]" + + if PLATFORM ~= "Android" then + fs = fs .. "tooltip[userdata;" .. + fgettext("Opens the directory that contains user-provided worlds, games, mods,\n" .. + "and texture packs in a file manager / explorer.") .. "]" + fs = fs .. "button[0,4;3.5,1;userdata;" .. fgettext("Open User Data Directory") .. "]" + end + + return fs end, cbf_button_handler = function(this, fields, name, tabdata) if fields.homepage then core.open_url("https://www.minetest.net") end + + if fields.userdata then + core.open_dir(core.get_user_path()) + end end, } diff --git a/builtin/mainmenu/tab_content.lua b/builtin/mainmenu/tab_content.lua index 623210597..1bffeeb22 100644 --- a/builtin/mainmenu/tab_content.lua +++ b/builtin/mainmenu/tab_content.lua @@ -50,12 +50,12 @@ local function get_formspec(tabview, name, tabdata) packages = filterlist.create(get_data, pkgmgr.compare_package, is_equal, nil, {}) - + local filename = core.get_clientmodpath() .. DIR_DELIM .. "mods.conf" local conffile = Settings(filename) local mods = conffile:to_table() - + for i = 1, #packages_raw do local mod = packages_raw[i] if mod.is_clientside and not mod.is_modpack then @@ -71,7 +71,7 @@ local function get_formspec(tabview, name, tabdata) mods["load_mod_" .. mod.name] = nil end end - + -- Remove mods that are not present anymore for key in pairs(mods) do if key:sub(1, 9) == "load_mod_" then @@ -205,30 +205,44 @@ local function get_formspec(tabview, name, tabdata) return retval end +-------------------------------------------------------------------------------- +local function handle_doubleclick(pkg, pkg_name) + if pkg.type == "txp" then + if core.settings:get("texture_path") == pkg.path then + core.settings:set("texture_path", "") + else + core.settings:set("texture_path", pkg.path) + end + packages = nil + elseif pkg.is_clientside then + pkgmgr.enable_mod({data = {list = packages, selected_mod = pkg_name}}) + packages = nil + end +end + -------------------------------------------------------------------------------- local function handle_buttons(tabview, fields, tabname, tabdata) if fields["pkglist"] ~= nil then local event = core.explode_table_event(fields["pkglist"]) tabdata.selected_pkg = event.row - local mod = packages:get_list()[tabdata.selected_pkg] - - if event.type == "DCL" and mod.is_clientside then - pkgmgr.enable_mod({data = {list = packages, selected_mod = tabdata.selected_pkg}}) - packages = nil + if event.type == "DCL" then + handle_doubleclick(packages:get_list()[tabdata.selected_pkg], tabdata.selected_pkg) end return true end - + if fields.btn_mod_mgr_mp_enable ~= nil or fields.btn_mod_mgr_mp_disable ~= nil then - pkgmgr.enable_mod({data = {list = packages, selected_mod = tabdata.selected_pkg}}, fields.btn_mod_mgr_mp_enable ~= nil) + pkgmgr.enable_mod({data = {list = packages, selected_mod = tabdata.selected_pkg}}, + fields.btn_mod_mgr_mp_enable ~= nil) packages = nil return true end - + if fields.btn_mod_mgr_enable_mod ~= nil or fields.btn_mod_mgr_disable_mod ~= nil then - pkgmgr.enable_mod({data = {list = packages, selected_mod = tabdata.selected_pkg}}, fields.btn_mod_mgr_enable_mod ~= nil) + pkgmgr.enable_mod({data = {list = packages, selected_mod = tabdata.selected_pkg}}, + fields.btn_mod_mgr_enable_mod ~= nil) packages = nil return true end diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua index 1aee246fc..0e06c3bef 100644 --- a/builtin/mainmenu/tab_local.lua +++ b/builtin/mainmenu/tab_local.lua @@ -18,6 +18,7 @@ local enable_gamebar = PLATFORM ~= "Android" local current_game, singleplayer_refresh_gamebar + if enable_gamebar then function current_game() local last_game_id = core.settings:get("menu_last_game") @@ -115,7 +116,7 @@ local function get_formspec(tabview, name, tabdata) retval = retval .. "button[3.9,3.8;2.8,1;world_delete;".. fgettext("Delete") .. "]" .. - "button[6.55,3.8;2.8,1;world_configure;".. fgettext("Configure") .. "]" .. + "button[6.55,3.8;2.8,1;world_configure;".. fgettext("Select Mods") .. "]" .. "button[9.2,3.8;2.8,1;world_create;".. fgettext("New") .. "]" .. "label[3.9,-0.05;".. fgettext("Select World:") .. "]".. "checkbox[0,-0.20;cb_creative_mode;".. fgettext("Creative Mode") .. ";" .. diff --git a/builtin/mainmenu/tab_online.lua b/builtin/mainmenu/tab_online.lua index 7985fd84a..fb7409864 100644 --- a/builtin/mainmenu/tab_online.lua +++ b/builtin/mainmenu/tab_online.lua @@ -15,17 +15,50 @@ --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --------------------------------------------------------------------------------- +local function get_sorted_servers() + local servers = { + fav = {}, + public = {}, + incompatible = {} + } + + local favs = serverlistmgr.get_favorites() + local taken_favs = {} + local result = menudata.search_result or serverlistmgr.servers + for _, server in ipairs(result) do + server.is_favorite = false + for index, fav in ipairs(favs) do + if server.address == fav.address and server.port == fav.port then + taken_favs[index] = true + server.is_favorite = true + break + end + end + server.is_compatible = is_server_protocol_compat(server.proto_min, server.proto_max) + if server.is_favorite then + table.insert(servers.fav, server) + elseif server.is_compatible then + table.insert(servers.public, server) + else + table.insert(servers.incompatible, server) + end + end + + if not menudata.search_result then + for index, fav in ipairs(favs) do + if not taken_favs[index] then + table.insert(servers.fav, fav) + end + end + end + + return servers +end + local function get_formspec(tabview, name, tabdata) -- Update the cached supported proto info, -- it may have changed after a change by the settings menu. common_update_cached_supp_proto() - local fav_selected - if menudata.search_result then - fav_selected = menudata.search_result[tabdata.fav_selected] - else - fav_selected = menudata.favorites[tabdata.fav_selected] - end if not tabdata.search_for then tabdata.search_for = "" @@ -33,128 +66,221 @@ local function get_formspec(tabview, name, tabdata) local retval = -- Search - "field[0.15,0.075;5.91,1;te_search;;" .. core.formspec_escape(tabdata.search_for) .. "]" .. - "button[5.62,-0.25;1.5,1;btn_mp_search;" .. fgettext("Search") .. "]" .. - "image_button[6.97,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "refresh.png") - .. ";btn_mp_refresh;]" .. + "field[0.25,0.25;7,0.75;te_search;;" .. core.formspec_escape(tabdata.search_for) .. "]" .. + "container[7.25,0.25]" .. + "image_button[0,0;0.75,0.75;" .. core.formspec_escape(defaulttexturedir .. "search.png") .. ";btn_mp_search;]" .. + "image_button[0.75,0;0.75,0.75;" .. core.formspec_escape(defaulttexturedir .. "clear.png") .. ";btn_mp_clear;]" .. + "image_button[1.5,0;0.75,0.75;" .. core.formspec_escape(defaulttexturedir .. "refresh.png") .. ";btn_mp_refresh;]" .. + "tooltip[btn_mp_clear;" .. fgettext("Clear") .. "]" .. + "tooltip[btn_mp_search;" .. fgettext("Search") .. "]" .. + "tooltip[btn_mp_refresh;" .. fgettext("Refresh") .. "]" .. + "container_end[]" .. + + "container[9.75,0]" .. + "box[0,0;5.75,7;#666666]" .. -- Address / Port - "label[7.75,-0.25;" .. fgettext("Address / Port") .. "]" .. - "field[8,0.65;3.25,0.5;te_address;;" .. + "label[0.25,0.35;" .. fgettext("Address") .. "]" .. + "label[4.25,0.35;" .. fgettext("Port") .. "]" .. + "field[0.25,0.5;4,0.75;te_address;;" .. core.formspec_escape(core.settings:get("address")) .. "]" .. - "field[11.1,0.65;1.4,0.5;te_port;;" .. + "field[4.25,0.5;1.25,0.75;te_port;;" .. core.formspec_escape(core.settings:get("remote_port")) .. "]" .. -- Name / Password - "label[7.75,0.95;" .. fgettext("Name / Password") .. "]" .. - "field[8,1.85;2.9,0.5;te_name;;" .. + "label[0.25,1.55;" .. fgettext("Name") .. "]" .. + "label[3,1.55;" .. fgettext("Password") .. "]" .. + "field[0.25,1.75;2.75,0.75;te_name;;" .. core.formspec_escape(core.settings:get("name")) .. "]" .. - "pwdfield[10.73,1.85;1.77,0.5;te_pwd;]" .. + "pwdfield[3,1.75;2.5,0.75;te_pwd;]" .. -- Description Background - "box[7.73,2.25;4.25,2.6;#999999]".. + "label[0.25,2.75;" .. fgettext("Server Description") .. "]" .. + "box[0.25,3;5.25,2.75;#999999]".. -- Connect - "button[9.88,4.9;2.3,1;btn_mp_connect;" .. fgettext("Connect") .. "]" + "button[3,6;2.5,0.75;btn_mp_connect;" .. fgettext("Connect") .. "]" - if tabdata.fav_selected and fav_selected then + if tabdata.selected then if gamedata.fav then - retval = retval .. "button[7.73,4.9;2.3,1;btn_delete_favorite;" .. + retval = retval .. "button[0.25,6;2.5,0.75;btn_delete_favorite;" .. fgettext("Del. Favorite") .. "]" end - if fav_selected.description then - retval = retval .. "textarea[8.1,2.3;4.23,2.9;;;" .. - core.formspec_escape((gamedata.serverdescription or ""), true) .. "]" + if gamedata.serverdescription then + retval = retval .. "textarea[0.25,3;5.25,2.75;;;" .. + core.formspec_escape(gamedata.serverdescription) .. "]" end end - --favourites + retval = retval .. "container_end[]" + + -- Table retval = retval .. "tablecolumns[" .. - image_column(fgettext("Favorite"), "favorite") .. ";" .. - image_column(fgettext("Ping")) .. ",padding=0.25;" .. - "color,span=3;" .. - "text,align=right;" .. -- clients - "text,align=center,padding=0.25;" .. -- "/" - "text,align=right,padding=0.25;" .. -- clients_max - image_column(fgettext("Creative mode"), "creative") .. ",padding=1;" .. - image_column(fgettext("Damage enabled"), "damage") .. ",padding=0.25;" .. - --~ PvP = Player versus Player - image_column(fgettext("PvP enabled"), "pvp") .. ",padding=0.25;" .. + "image,tooltip=" .. fgettext("Ping") .. "," .. + "0=" .. core.formspec_escape(defaulttexturedir .. "blank.png") .. "," .. + "1=" .. core.formspec_escape(defaulttexturedir .. "server_ping_4.png") .. "," .. + "2=" .. core.formspec_escape(defaulttexturedir .. "server_ping_3.png") .. "," .. + "3=" .. core.formspec_escape(defaulttexturedir .. "server_ping_2.png") .. "," .. + "4=" .. core.formspec_escape(defaulttexturedir .. "server_ping_1.png") .. "," .. + "5=" .. core.formspec_escape(defaulttexturedir .. "server_favorite.png") .. "," .. + "6=" .. core.formspec_escape(defaulttexturedir .. "server_public.png") .. "," .. + "7=" .. core.formspec_escape(defaulttexturedir .. "server_incompatible.png") .. ";" .. "color,span=1;" .. - "text,padding=1]" .. - "table[-0.15,0.6;7.75,5.15;favourites;" + "text,align=inline;".. + "color,span=1;" .. + "text,align=inline,width=4.25;" .. + "image,tooltip=" .. fgettext("Creative mode") .. "," .. + "0=" .. core.formspec_escape(defaulttexturedir .. "blank.png") .. "," .. + "1=" .. core.formspec_escape(defaulttexturedir .. "server_flags_creative.png") .. "," .. + "align=inline,padding=0.25,width=1.5;" .. + --~ PvP = Player versus Player + "image,tooltip=" .. fgettext("Damage / PvP") .. "," .. + "0=" .. core.formspec_escape(defaulttexturedir .. "blank.png") .. "," .. + "1=" .. core.formspec_escape(defaulttexturedir .. "server_flags_damage.png") .. "," .. + "2=" .. core.formspec_escape(defaulttexturedir .. "server_flags_pvp.png") .. "," .. + "align=inline,padding=0.25,width=1.5;" .. + "color,align=inline,span=1;" .. + "text,align=inline,padding=1]" .. + "table[0.25,1;9.25,5.75;servers;" - if menudata.search_result then - for i = 1, #menudata.search_result do - local favs = core.get_favorites("local") - local server = menudata.search_result[i] + local servers = get_sorted_servers() - for fav_id = 1, #favs do - if server.address == favs[fav_id].address and - server.port == favs[fav_id].port then - server.is_favorite = true - end - end + local dividers = { + fav = "5,#ffff00," .. fgettext("Favorites") .. ",,,0,0,,", + public = "6,#4bdd42," .. fgettext("Public Servers") .. ",,,0,0,,", + incompatible = "7,"..mt_color_grey.."," .. fgettext("Incompatible Servers") .. ",,,0,0,," + } + local order = {"fav", "public", "incompatible"} - if i ~= 1 then - retval = retval .. "," + tabdata.lookup = {} -- maps row number to server + local rows = {} + for _, section in ipairs(order) do + local section_servers = servers[section] + if next(section_servers) ~= nil then + rows[#rows + 1] = dividers[section] + for _, server in ipairs(section_servers) do + tabdata.lookup[#rows + 1] = server + rows[#rows + 1] = render_serverlist_row(server) end - - retval = retval .. render_serverlist_row(server, server.is_favorite) - end - elseif #menudata.favorites > 0 then - local favs = core.get_favorites("local") - if #favs > 0 then - for i = 1, #favs do - for j = 1, #menudata.favorites do - if menudata.favorites[j].address == favs[i].address and - menudata.favorites[j].port == favs[i].port then - table.insert(menudata.favorites, i, table.remove(menudata.favorites, j)) - end - end - if favs[i].address ~= menudata.favorites[i].address then - table.insert(menudata.favorites, i, favs[i]) - end - end - end - retval = retval .. render_serverlist_row(menudata.favorites[1], (#favs > 0)) - for i = 2, #menudata.favorites do - retval = retval .. "," .. render_serverlist_row(menudata.favorites[i], (i <= #favs)) end end - if tabdata.fav_selected then - retval = retval .. ";" .. tabdata.fav_selected .. "]" + retval = retval .. table.concat(rows, ",") + + if tabdata.selected then + retval = retval .. ";" .. tabdata.selected .. "]" else retval = retval .. ";0]" end - return retval + return retval, "size[15.5,7,false]real_coordinates[true]" end -------------------------------------------------------------------------------- -local function main_button_handler(tabview, fields, name, tabdata) - local serverlist = menudata.search_result or menudata.favorites +local function search_server_list(input) + menudata.search_result = nil + if #serverlistmgr.servers < 2 then + return + end + + -- setup the keyword list + local keywords = {} + for word in input:gmatch("%S+") do + word = word:gsub("(%W)", "%%%1") + table.insert(keywords, word) + end + + if #keywords == 0 then + return + end + + menudata.search_result = {} + + -- 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 + end + if found > 0 then + local points = (#serverlistmgr.servers - i) / 5 + found + server.points = points + table.insert(search_result, server) + end + end + + if #search_result == 0 then + return + end + + table.sort(search_result, function(a, b) + return a.points > b.points + end) + menudata.search_result = search_result +end + +local function set_selected_server(tabdata, idx, server) + -- reset selection + if idx == nil or server == nil then + tabdata.selected = nil + + core.settings:set("address", "") + core.settings:set("remote_port", "30000") + return + end + + local address = server.address + local port = server.port + gamedata.serverdescription = server.description + + gamedata.fav = false + for _, fav in ipairs(serverlistmgr.get_favorites()) do + if address == fav.address and port == fav.port then + gamedata.fav = true + break + end + end + + if address and port then + core.settings:set("address", address) + core.settings:set("remote_port", port) + end + tabdata.selected = idx +end + +local function main_button_handler(tabview, fields, name, tabdata) if fields.te_name then gamedata.playername = fields.te_name core.settings:set("name", fields.te_name) end - if fields.favourites then - local event = core.explode_table_event(fields.favourites) - local fav = serverlist[event.row] + if fields.servers then + local event = core.explode_table_event(fields.servers) + local server = tabdata.lookup[event.row] - if event.type == "DCL" then - if event.row <= #serverlist then - if menudata.favorites_is_public and - not is_server_protocol_compat_or_error( - fav.proto_min, fav.proto_max) then + if server then + if event.type == "DCL" then + if not is_server_protocol_compat_or_error( + server.proto_min, server.proto_max) then return true end - gamedata.address = fav.address - gamedata.port = fav.port + gamedata.address = server.address + gamedata.port = server.port gamedata.playername = fields.te_name gamedata.selected_world = 0 @@ -162,150 +288,54 @@ local function main_button_handler(tabview, fields, name, tabdata) gamedata.password = fields.te_pwd end - gamedata.servername = fav.name - gamedata.serverdescription = fav.description + gamedata.servername = server.name + gamedata.serverdescription = server.description if gamedata.address and gamedata.port then core.settings:set("address", gamedata.address) core.settings:set("remote_port", gamedata.port) core.start() end + return true end - return true - end - - if event.type == "CHG" then - if event.row <= #serverlist then - gamedata.fav = false - local favs = core.get_favorites("local") - local address = fav.address - local port = fav.port - gamedata.serverdescription = fav.description - - for i = 1, #favs do - if fav.address == favs[i].address and - fav.port == favs[i].port then - gamedata.fav = true - end - end - - if address and port then - core.settings:set("address", address) - core.settings:set("remote_port", port) - end - tabdata.fav_selected = event.row + if event.type == "CHG" then + set_selected_server(tabdata, event.row, server) + return true end - return true end end - if fields.key_up or fields.key_down then - local fav_idx = core.get_table_index("favourites") - local fav = serverlist[fav_idx] - - if fav_idx then - if fields.key_up and fav_idx > 1 then - fav_idx = fav_idx - 1 - elseif fields.key_down and fav_idx < #menudata.favorites then - fav_idx = fav_idx + 1 - end - else - fav_idx = 1 - end - - if not menudata.favorites or not fav then - tabdata.fav_selected = 0 - return true - end - - local address = fav.address - local port = fav.port - gamedata.serverdescription = fav.description - if address and port then - core.settings:set("address", address) - core.settings:set("remote_port", port) - end - - tabdata.fav_selected = fav_idx - return true - end - if fields.btn_delete_favorite then - local current_favourite = core.get_table_index("favourites") - if not current_favourite then return end + local idx = core.get_table_index("servers") + if not idx then return end + local server = tabdata.lookup[idx] + if not server then return end - core.delete_favorite(current_favourite) - asyncOnlineFavourites() - tabdata.fav_selected = nil + serverlistmgr.delete_favorite(server) + -- the server at [idx+1] will be at idx once list is refreshed + set_selected_server(tabdata, idx, tabdata.lookup[idx+1]) + return true + end - core.settings:set("address", "") - core.settings:set("remote_port", "30000") + if fields.btn_mp_clear then + tabdata.search_for = "" + menudata.search_result = nil return true end if fields.btn_mp_search or fields.key_enter_field == "te_search" then - tabdata.fav_selected = 1 - local input = fields.te_search:lower() tabdata.search_for = fields.te_search - - if #menudata.favorites < 2 then - return true + search_server_list(fields.te_search:lower()) + if menudata.search_result then + -- first server in row 2 due to header + set_selected_server(tabdata, 2, menudata.search_result[1]) end - menudata.search_result = {} - - -- setup the keyword list - local keywords = {} - for word in input:gmatch("%S+") do - word = word:gsub("(%W)", "%%%1") - table.insert(keywords, word) - end - - if #keywords == 0 then - menudata.search_result = nil - return true - end - - -- Search the serverlist - local search_result = {} - for i = 1, #menudata.favorites do - local server = menudata.favorites[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 - end - if found > 0 then - local points = (#menudata.favorites - i) / 5 + found - server.points = points - table.insert(search_result, server) - end - end - if #search_result > 0 then - table.sort(search_result, function(a, b) - return a.points > b.points - end) - menudata.search_result = search_result - local first_server = search_result[1] - core.settings:set("address", first_server.address) - core.settings:set("remote_port", first_server.port) - gamedata.serverdescription = first_server.description - end return true end if fields.btn_mp_refresh then - asyncOnlineFavourites() + serverlistmgr.sync() return true end @@ -314,43 +344,51 @@ local function main_button_handler(tabview, fields, name, tabdata) gamedata.playername = fields.te_name gamedata.password = fields.te_pwd gamedata.address = fields.te_address - gamedata.port = fields.te_port + gamedata.port = tonumber(fields.te_port) gamedata.selected_world = 0 - local fav_idx = core.get_table_index("favourites") - local fav = serverlist[fav_idx] - if fav_idx and fav_idx <= #serverlist and - fav.address == fields.te_address and - fav.port == fields.te_port then + local idx = core.get_table_index("servers") + local server = idx and tabdata.lookup[idx] - gamedata.servername = fav.name - gamedata.serverdescription = fav.description + set_selected_server(tabdata) - if menudata.favorites_is_public and - not is_server_protocol_compat_or_error( - fav.proto_min, fav.proto_max) then + if server and server.address == gamedata.address and + server.port == gamedata.port then + + serverlistmgr.add_favorite(server) + + gamedata.servername = server.name + gamedata.serverdescription = server.description + + if not is_server_protocol_compat_or_error( + server.proto_min, server.proto_max) then return true end else gamedata.servername = "" gamedata.serverdescription = "" + + serverlistmgr.add_favorite({ + address = gamedata.address, + port = gamedata.port, + }) end - core.settings:set("address", fields.te_address) - core.settings:set("remote_port", fields.te_port) + core.settings:set("address", gamedata.address) + core.settings:set("remote_port", gamedata.port) core.start() return true end + return false end local function on_change(type, old_tab, new_tab) if type == "LEAVE" then return end - asyncOnlineFavourites() + serverlistmgr.sync() end --------------------------------------------------------------------------------- return { name = "online", caption = fgettext("Join Game"), diff --git a/builtin/mainmenu/tests/favorites_wellformed.txt b/builtin/mainmenu/tests/favorites_wellformed.txt new file mode 100644 index 000000000..8b87b4398 --- /dev/null +++ b/builtin/mainmenu/tests/favorites_wellformed.txt @@ -0,0 +1,29 @@ +[server] + +127.0.0.1 +30000 + + +[server] + +localhost +30000 + + +[server] + +vps.rubenwardy.com +30001 + + +[server] + +gundul.ddnss.de +39155 + + +[server] +VanessaE's Dreambuilder creative Server +daconcepts.com +30000 +VanessaE's Dreambuilder creative-mode server. Lots of mods, whitelisted buckets. diff --git a/builtin/mainmenu/tests/serverlistmgr_spec.lua b/builtin/mainmenu/tests/serverlistmgr_spec.lua new file mode 100644 index 000000000..148e9b794 --- /dev/null +++ b/builtin/mainmenu/tests/serverlistmgr_spec.lua @@ -0,0 +1,36 @@ +_G.core = {} +_G.unpack = table.unpack +_G.serverlistmgr = {} + +dofile("builtin/common/misc_helpers.lua") +dofile("builtin/mainmenu/serverlistmgr.lua") + +local base = "builtin/mainmenu/tests/" + +describe("legacy favorites", function() + it("loads well-formed correctly", function() + local favs = serverlistmgr.read_legacy_favorites(base .. "favorites_wellformed.txt") + + local expected = { + { + address = "127.0.0.1", + port = 30000, + }, + + { address = "localhost", port = 30000 }, + + { address = "vps.rubenwardy.com", port = 30001 }, + + { address = "gundul.ddnss.de", port = 39155 }, + + { + address = "daconcepts.com", + port = 30000, + name = "VanessaE's Dreambuilder creative Server", + description = "VanessaE's Dreambuilder creative-mode server. Lots of mods, whitelisted buckets." + }, + } + + assert.same(expected, favs) + end) +end) diff --git a/builtin/profiler/init.lua b/builtin/profiler/init.lua index a0033d752..7f63dfaea 100644 --- a/builtin/profiler/init.lua +++ b/builtin/profiler/init.lua @@ -15,6 +15,8 @@ --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +local S = core.get_translator("__builtin") + local function get_bool_default(name, default) local val = core.settings:get_bool(name) if val == nil then @@ -40,9 +42,9 @@ function profiler.init_chatcommand() instrumentation.init_chatcommand() end - local param_usage = "print [filter] | dump [filter] | save [format [filter]] | reset" + local param_usage = S("print [] | dump [] | save [ []] | reset") core.register_chatcommand("profiler", { - description = "handle the profiler and profiling data", + description = S("Handle the profiler and profiling data"), params = param_usage, privs = { server=true }, func = function(name, param) @@ -51,21 +53,19 @@ function profiler.init_chatcommand() if command == "dump" then core.log("action", reporter.print(sampler.profile, arg0)) - return true, "Statistics written to action log" + return true, S("Statistics written to action log.") elseif command == "print" then return true, reporter.print(sampler.profile, arg0) elseif command == "save" then return reporter.save(sampler.profile, args[1] or "txt", args[2]) elseif command == "reset" then sampler.reset() - return true, "Statistics were reset" + return true, S("Statistics were reset.") end - return false, string.format( - "Usage: %s\n" .. - "Format can be one of txt, csv, lua, json, json_pretty (structures may be subject to change).", - param_usage - ) + return false, + S("Usage: @1", param_usage) .. "\n" .. + S("Format can be one of txt, csv, lua, json, json_pretty (structures may be subject to change).") end }) diff --git a/builtin/profiler/instrumentation.lua b/builtin/profiler/instrumentation.lua index 237f048fb..6b951a2c2 100644 --- a/builtin/profiler/instrumentation.lua +++ b/builtin/profiler/instrumentation.lua @@ -160,6 +160,7 @@ local function init() -- Simple iteration would ignore lookup via __index. local entity_instrumentation = { "on_activate", + "on_deactivate", "on_step", "on_punch", "on_rightclick", diff --git a/builtin/profiler/reporter.lua b/builtin/profiler/reporter.lua index fed47a36b..5928a3718 100644 --- a/builtin/profiler/reporter.lua +++ b/builtin/profiler/reporter.lua @@ -15,6 +15,10 @@ --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +local S = core.get_translator("__builtin") +-- Note: In this file, only messages are translated +-- but not the table itself, to keep it simple. + local DIR_DELIM, LINE_DELIM = DIR_DELIM, "\n" local table, unpack, string, pairs, io, os = table, unpack, string, pairs, io, os local rep, sprintf, tonumber = string.rep, string.format, tonumber @@ -104,11 +108,11 @@ local TxtFormatter = Formatter:new { end, format = function(self, filter) local profile = self.profile - self:print("Values below show absolute/relative times spend per server step by the instrumented function.") - self:print("A total of %d samples were taken", profile.stats_total.samples) + self:print(S("Values below show absolute/relative times spend per server step by the instrumented function.")) + self:print(S("A total of @1 sample(s) were taken.", profile.stats_total.samples)) if filter then - self:print("The output is limited to '%s'", filter) + self:print(S("The output is limited to '@1'.", filter)) end self:print() @@ -259,19 +263,18 @@ function reporter.save(profile, format, filter) local output, io_err = io.open(path, "w") if not output then - return false, "Saving of profile failed with: " .. io_err + return false, S("Saving of profile failed: @1", io_err) end local content, err = serialize_profile(profile, format, filter) if not content then output:close() - return false, "Saving of profile failed with: " .. err + return false, S("Saving of profile failed: @1", err) end output:write(content) output:close() - local logmessage = "Profile saved to " .. path - core.log("action", logmessage) - return true, logmessage + core.log("action", "Profile saved to " .. path) + return true, S("Profile saved to @1", path) end return reporter diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 344762a6b..d8235b342 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -75,7 +75,7 @@ free_move (Flying) bool false # If enabled, makes move directions relative to the player's pitch when flying or swimming. pitch_move (Pitch move mode) bool false -# Fast movement (via the "special" key). +# Fast movement (via the "Aux1" key). # This requires the "fast" privilege on the server. fast_move (Fast movement) bool false @@ -99,14 +99,14 @@ invert_mouse (Invert mouse) bool false # Mouse sensitivity multiplier. mouse_sensitivity (Mouse sensitivity) float 0.2 -# If enabled, "special" key instead of "sneak" key is used for climbing down and +# If enabled, "Aux1" key instead of "Sneak" key is used for climbing down and # descending. -aux1_descends (Special key for climbing/descending) bool false +aux1_descends (Aux1 key for climbing/descending) bool false # Double-tapping the jump key toggles fly mode. doubletap_jump (Double tap jump for fly) bool false -# If disabled, "special" key is used to fly fast if both fly and fast mode are +# If disabled, "Aux1" key is used to fly fast if both fly and fast mode are # enabled. always_fly_fast (Always fly and fast) bool true @@ -135,9 +135,9 @@ touchscreen_threshold (Touch screen threshold) int 20 0 100 # If disabled, virtual joystick will center to first-touch's position. fixed_virtual_joystick (Fixed virtual joystick) bool false -# (Android) Use virtual joystick to trigger "aux" button. -# If enabled, virtual joystick will also tap "aux" button when out of main circle. -virtual_joystick_triggers_aux (Virtual joystick triggers aux button) bool false +# (Android) Use virtual joystick to trigger "Aux1" button. +# If enabled, virtual joystick will also tap "Aux1" button when out of main circle. +virtual_joystick_triggers_aux1 (Virtual joystick triggers Aux1 button) bool false # Enable joysticks enable_joysticks (Enable joysticks) bool false @@ -152,6 +152,9 @@ joystick_type (Joystick type) enum auto auto,generic,xbox # when holding down a joystick button combination. repeat_joystick_button_time (Joystick button repetition interval) float 0.17 0.001 +# The deadzone of the joystick +joystick_deadzone (Joystick deadzone) int 2048 + # The sensitivity of the joystick axes for moving the # ingame view frustum around. joystick_frustum_sensitivity (Joystick frustum sensitivity) float 170 @@ -200,7 +203,7 @@ keymap_special_inventory (Special inventory key) key KEY_KEY_O # Key for moving fast in fast mode. # See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -keymap_special1 (Special key) key KEY_KEY_E +keymap_aux1 (Aux1 key) key KEY_KEY_E # Key for opening the chat window. # See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 @@ -460,6 +463,10 @@ keymap_decrease_viewing_range_min (View range decrease key) key - [**Basic] +# Whether nametag backgrounds should be shown by default. +# Mods may still set a background. +show_nametag_backgrounds (Show nametag backgrounds by default) bool true + # Enable vertex buffer objects. # This should greatly improve graphics performance. enable_vbo (VBO) bool true @@ -509,18 +516,17 @@ bilinear_filter (Bilinear filtering) bool false trilinear_filter (Trilinear filtering) bool false # Filtered textures can blend RGB values with fully-transparent neighbors, -# which PNG optimizers usually discard, sometimes resulting in a dark or -# light edge to transparent textures. Apply this filter to clean that up -# at texture load time. +# which PNG optimizers usually discard, often resulting in dark or +# light edges to transparent textures. Apply a filter to clean that up +# at texture load time. This is automatically enabled if mipmapping is enabled. texture_clean_transparent (Clean transparent textures) bool false # When using bilinear/trilinear/anisotropic filters, low-resolution textures # can be blurred, so automatically upscale them with nearest-neighbor # interpolation to preserve crisp pixels. This sets the minimum texture size # for the upscaled textures; higher values look sharper, but require more -# memory. Powers of 2 are recommended. Setting this higher than 1 may not -# have a visible effect unless bilinear/trilinear/anisotropic filtering is -# enabled. +# memory. Powers of 2 are recommended. This setting is ONLY applies if +# bilinear/trilinear/anisotropic filtering is enabled. # This is also used as the base node texture size for world-aligned # texture autoscaling. texture_min_size (Minimum texture size) int 64 @@ -529,8 +535,8 @@ texture_min_size (Minimum texture size) int 64 # This algorithm smooths out the 3D viewport while keeping the image sharp, # but it doesn't affect the insides of textures # (which is especially noticeable with transparent textures). -# This option is experimental and might cause visible spaces between blocks -# when set above 0. +# Visible spaces appear between nodes when shaders are disabled. +# If set to 0, MSAA is disabled. # A restart is required after changing this option. fsaa (FSAA) enum 0 0,1,2,4,8,16 @@ -667,7 +673,7 @@ lighting_boost_spread (Light curve boost spread) float 0.2 0.0 0.4 # Path to texture directory. All textures are first searched from here. texture_path (Texture path) path -# The rendering back-end for Irrlicht. +# The rendering back-end. # A restart is required after changing this. # Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise. # On other platforms, OpenGL is recommended. @@ -759,7 +765,7 @@ mesh_generation_interval (Mapblock mesh generation delay) int 0 0 50 # Size of the MapBlock cache of the mesh generator. Increasing this will # increase the cache hit %, reducing the data being copied from the main # thread, thus reducing jitter. -meshgen_block_cache_size (Mapblock mesh generator's MapBlock cache size in MB) int 40 0 1000 +meshgen_block_cache_size (Mapblock mesh generator's MapBlock cache size in MB) int 20 0 1000 # Enables minimap. enable_minimap (Minimap) bool true @@ -864,7 +870,7 @@ font_path (Regular font path) filepath fonts/Arimo-Regular.ttf font_path_bold (Bold font path) filepath fonts/Arimo-Bold.ttf font_path_italic (Italic font path) filepath fonts/Arimo-Italic.ttf -font_path_bolditalic (Bold and italic font path) filepath fonts/Arimo-BoldItalic.ttf +font_path_bold_italic (Bold and italic font path) filepath fonts/Arimo-BoldItalic.ttf # Font size of the monospace font in point (pt). mono_font_size (Monospace font size) int 15 1 @@ -877,16 +883,7 @@ mono_font_path (Monospace font path) filepath fonts/Cousine-Regular.ttf mono_font_path_bold (Bold monospace font path) filepath fonts/Cousine-Bold.ttf mono_font_path_italic (Italic monospace font path) filepath fonts/Cousine-Italic.ttf -mono_font_path_bolditalic (Bold and italic monospace font path) filepath fonts/Cousine-BoldItalic.ttf - -# Font size of the fallback font in point (pt). -fallback_font_size (Fallback font size) int 15 1 - -# Shadow offset (in pixels) of the fallback font. If 0, then shadow will not be drawn. -fallback_font_shadow (Fallback font shadow) int 1 - -# Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255. -fallback_font_shadow_alpha (Fallback font shadow alpha) int 128 0 255 +mono_font_path_bold_italic (Bold and italic monospace font path) filepath fonts/Cousine-BoldItalic.ttf # Path of the fallback font. # If “freetype” setting is enabled: Must be a TrueType font. @@ -973,7 +970,7 @@ serverlist_url (Serverlist URL) string servers.minetest.net # File in client/serverlist/ that contains your favorite servers displayed in the # Multiplayer Tab. -serverlist_file (Serverlist file) string favoriteservers.txt +serverlist_file (Serverlist file) string favoriteservers.json # Maximum size of the out chat queue. # 0 to disable queueing and -1 to make the queue size unlimited. @@ -1049,7 +1046,7 @@ ipv6_server (IPv6 server) bool false # Maximum number of blocks that are simultaneously sent per client. # The maximum total count is calculated dynamically: # max_total = ceil((#clients + max_users) * per_client / 4) -max_simultaneous_block_sends_per_client (Maximum simultaneous block sends per client) int 128 +max_simultaneous_block_sends_per_client (Maximum simultaneous block sends per client) int 40 # To reduce lag, block transfers are slowed down when a player is building something. # This determines how long they are slowed down after placing or removing a node. @@ -1060,6 +1057,13 @@ full_block_send_enable_min_time_from_building (Delay in sending blocks after bui # client number. max_packets_per_iteration (Max. packets per iteration) int 1024 +# ZLib compression level to use when sending mapblocks to the client. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +map_compression_level_net (Map Compression Level for Network Transfer) int -1 -1 9 + [*Game] # Default game when creating a new world. @@ -1087,7 +1091,7 @@ default_stack_max (Default stack size) int 99 # Enable players getting damage and dying. enable_damage (Damage) bool false -# Enable creative mode for new created maps. +# Enable creative mode for all players creative_mode (Creative) bool false # A chosen map seed for a new map, leave empty for random. @@ -1134,6 +1138,10 @@ enable_rollback_recording (Rollback recording) bool false # @name, @message, @timestamp (optional) chat_message_format (Chat message format) string <@name> @message +# If the execution of a chat command takes longer than this specified time in +# seconds, add the time information to the chat command message +chatcommand_msg_time_threshold (Chat command time message threshold) float 0.1 + # A message to be displayed to all clients when the server shuts down. kick_msg_shutdown (Shutdown message) string Server shutting down. @@ -1255,6 +1263,13 @@ max_objects_per_block (Maximum objects per block) int 64 # See https://www.sqlite.org/pragma.html#pragma_synchronous sqlite_synchronous (Synchronous SQLite) enum 2 0,1,2 +# ZLib compression level to use when saving mapblocks to disk. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +map_compression_level_disk (Map Compression Level for Disk Storage) int 3 -1 9 + # Length of a server tick and the interval at which objects are generally updated over # network. dedicated_server_step (Dedicated server step) float 0.09 @@ -1385,7 +1400,7 @@ name (Player name) string # Set the language. Leave empty to use the system language. # A restart is required after changing this. -language (Language) enum ,ar,ca,cs,da,de,dv,el,en,eo,es,et,eu,fil,fr,hu,id,it,ja,ja_KS,jbo,kk,kn,lo,lt,ms,my,nb,nl,nn,pl,pt,pt_BR,ro,ru,sl,sr_Cyrl,sv,sw,th,tr,uk,vi +language (Language) enum ,be,bg,ca,cs,da,de,el,en,eo,es,et,eu,fi,fr,gd,gl,hu,id,it,ja,jbo,kk,ko,lt,lv,ms,nb,nl,nn,pl,pt,pt_BR,ro,ru,sk,sl,sr_Cyrl,sr_Latn,sv,sw,tr,uk,vi,zh_CN,zh_TW # Level of logging to be written to debug.txt: # - (no logging) @@ -1412,9 +1427,8 @@ enable_ipv6 (IPv6) bool true [*Advanced] -# Default timeout for cURL, stated in milliseconds. -# Only has an effect if compiled with cURL. -curl_timeout (cURL timeout) int 5000 +# Maximum time an interactive request (e.g. server list fetch) may take, stated in milliseconds. +curl_timeout (cURL interactive timeout) int 20000 # Limits number of parallel HTTP requests. Affects: # - Media fetch if server uses remote_media setting. @@ -1423,7 +1437,7 @@ curl_timeout (cURL timeout) int 5000 # Only has an effect if compiled with cURL. curl_parallel_limit (cURL parallel limit) int 8 -# Maximum time in ms a file download (e.g. a mod download) may take. +# Maximum time a file download (e.g. a mod download) may take, stated in milliseconds. curl_file_download_timeout (cURL file download timeout) int 300000 # Makes DirectX work with LuaJIT. Disable if it causes troubles. @@ -2203,6 +2217,7 @@ contentdb_url (ContentDB URL) string https://content.minetest.net contentdb_flag_blacklist (ContentDB Flag Blacklist) string nonfree, desktop_default # Maximum number of concurrent downloads. Downloads exceeding this limit will be queued. +# This should be lower than curl_parallel_limit. contentdb_max_concurrent_downloads (ContentDB Max Concurrent Downloads) int 3 [Cheat Menu] @@ -2230,6 +2245,12 @@ cheat_menu_selected_font_color (Selected font color) v3f 255, 252, 88 cheat_menu_selected_font_color_alpha (Selected font color alpha) int 255 +cheat_menu_head_height (Head height) int 50 + +cheat_menu_entry_height (Entry height) int 40 + +cheat_menu_entry_width (Entry width) int 200 + [Cheats] fullbright (Fullbright) bool false @@ -2252,19 +2273,13 @@ prevent_natural_damage (NoFallDamage) bool true freecam (Freecam) bool false -killaura (Killaura) bool false - no_hurt_cam (NoHurtCam) bool false -increase_tool_range (IncreasedRange) bool true - -increase_tool_range_plus (IncreasedRangePlus) bool true - hud_flags_bypass (HUDBypass) bool true antiknockback (AntiKnockback) bool false -entity_speed (GodMode) bool false +entity_speed (EntitySpeed) bool false jesus (Jesus) bool false @@ -2276,78 +2291,16 @@ coords (Coords) bool false point_liquids (PointLiquids) bool false -log_particles (ParticleExploit) bool false - spamclick (FastHit) bool false no_force_rotate (NoForceRotate) bool false no_slow (NoSlow) bool false -ignore_status_messages (IgnoreStatus) bool true - -mark_deathmessages (Deathmessages) bool true - -autosneak (AutoSneak) bool false - -autoeject (AutoEject) bool false - -eject_items (AutoEject Items) string - -autotool (AutoTool) bool false - -autorespawn (AutoRespawn) bool false - -scaffold (Scaffold) bool false - -scaffold_plus (ScaffoldPlus) bool false - -block_water (BlockWater) bool false - -autotnt (PlaceOnTop) bool false - -replace (Replace) bool false - -crystal_pvp (CrystalPvP) bool false - -autototem (AutoTotem) bool false - -dont_point_nodes (ThroughWalls) bool false - -strip (Strip) bool false - -autorefill (AutoRefill) bool false - -nuke (Nuke) bool false - -chat_color (Chat Color) string rainbow - -use_chat_color (ColoredChat) bool false - -chat_reverse (ReversedChat) bool false - -forcefield (Forcefield) bool false - -friendlist (Killaura / Forcefield Friendlist) string - cheat_hud (CheatHUD) bool true node_esp_nodes (NodeESP Nodes) string -autosprint (AutoSprint) bool false - -override_speed (SpeedOverride) bool false - -override_jump (JumpOverride) bool false - -override_gravity (GravityOverride) bool false - -override_speed_factor (SpeedOverride Factor) float 1.2 - -override_jump_factor (JumpOverride Factor) float 2.0 - -override_gravity_factor (GravityOverride) float 0.8 - jetpack (JetPack) bool false autohit (AutoHit) bool false @@ -2370,4 +2323,6 @@ entity_esp_color (EntityESP Color) v3f 255, 255, 255 player_esp_color (PlayerESP Color) v3f 0, 255, 0 -noweather (NoWeather) bool false +tool_range (Additional Tool Range) int 2 + +reach (Reach) bool false diff --git a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl index 7cba61b39..6d3ae5093 100644 --- a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl +++ b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl @@ -6,7 +6,7 @@ uniform sampler2D textureFlags; #define rightImage normalTexture #define maskImage textureFlags -varying mediump vec2 varTexCoord; +varying mediump vec4 varTexCoord; void main(void) { diff --git a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl index 860049481..224b7d183 100644 --- a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl +++ b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl @@ -1,4 +1,4 @@ -varying mediump vec2 varTexCoord; +varying mediump vec4 varTexCoord; void main(void) { diff --git a/client/shaders/default_shader/opengl_vertex.glsl b/client/shaders/default_shader/opengl_vertex.glsl index d95a3c2d3..a908ac953 100644 --- a/client/shaders/default_shader/opengl_vertex.glsl +++ b/client/shaders/default_shader/opengl_vertex.glsl @@ -3,5 +3,9 @@ varying lowp vec4 varColor; void main(void) { gl_Position = mWorldViewProj * inVertexPosition; +#ifdef GL_ES + varColor = inVertexColor.bgra; +#else varColor = inVertexColor; +#endif } diff --git a/client/shaders/minimap_shader/opengl_vertex.glsl b/client/shaders/minimap_shader/opengl_vertex.glsl index 1a9491805..b23d27181 100644 --- a/client/shaders/minimap_shader/opengl_vertex.glsl +++ b/client/shaders/minimap_shader/opengl_vertex.glsl @@ -7,5 +7,9 @@ void main(void) { varTexCoord = inTexCoord0.st; gl_Position = mWorldViewProj * inVertexPosition; +#ifdef GL_ES + varColor = inVertexColor.bgra; +#else varColor = inVertexColor; +#endif } diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index 82c87073a..b58095063 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -16,13 +16,17 @@ varying vec3 vPosition; // precision must be considered). varying vec3 worldPosition; varying lowp vec4 varColor; +#ifdef GL_ES varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; const float fogStart = FOG_START; const float fogShadingParameter = 1.0 / ( 1.0 - fogStart); -#ifdef ENABLE_TONE_MAPPING +#if ENABLE_TONE_MAPPING /* Hable's UC2 Tone mapping parameters A = 0.22; @@ -46,7 +50,7 @@ vec4 applyToneMapping(vec4 color) const float gamma = 1.6; const float exposureBias = 5.5; color.rgb = uncharted2Tonemap(exposureBias * color.rgb); - // Precalculated white_scale from + // Precalculated white_scale from //vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W)); vec3 whiteScale = vec3(1.036015346); color.rgb *= whiteScale; @@ -72,8 +76,8 @@ void main(void) color = base.rgb; vec4 col = vec4(color.rgb * varColor.rgb, 1.0); - -#ifdef ENABLE_TONE_MAPPING + +#if ENABLE_TONE_MAPPING col = applyToneMapping(col); #endif diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl index cb344f6e6..1a4840d35 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -16,7 +16,14 @@ varying vec3 vPosition; // precision must be considered). varying vec3 worldPosition; varying lowp vec4 varColor; +// The centroid keyword ensures that after interpolation the texture coordinates +// lie within the same bounds when MSAA is en- and disabled. +// This fixes the stripes problem with nearest-neighbour textures and MSAA. +#ifdef GL_ES varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; // Color of the light emitted by the light sources. @@ -139,10 +146,14 @@ void main(void) // the brightness, so now we have to multiply these // colors with the color of the incoming light. // The pre-baked colors are halved to prevent overflow. - vec4 color; +#ifdef GL_ES + vec4 color = inVertexColor.bgra; +#else + vec4 color = inVertexColor; +#endif // The alpha gives the ratio of sunlight in the incoming light. - float nightRatio = 1.0 - inVertexColor.a; - color.rgb = inVertexColor.rgb * (inVertexColor.a * dayLight.rgb + + float nightRatio = 1.0 - color.a; + color.rgb = color.rgb * (color.a * dayLight.rgb + nightRatio * artificialLight.rgb) * 2.0; color.a = 1.0; diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index 7ac182a63..9a81d8185 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -9,7 +9,11 @@ varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; varying lowp vec4 varColor; +#ifdef GL_ES varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; varying float vIDiff; @@ -19,7 +23,7 @@ const float BS = 10.0; const float fogStart = FOG_START; const float fogShadingParameter = 1.0 / (1.0 - fogStart); -#ifdef ENABLE_TONE_MAPPING +#if ENABLE_TONE_MAPPING /* Hable's UC2 Tone mapping parameters A = 0.22; @@ -43,7 +47,7 @@ vec4 applyToneMapping(vec4 color) const float gamma = 1.6; const float exposureBias = 5.5; color.rgb = uncharted2Tonemap(exposureBias * color.rgb); - // Precalculated white_scale from + // Precalculated white_scale from //vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W)); vec3 whiteScale = vec3(1.036015346); color.rgb *= whiteScale; @@ -75,7 +79,7 @@ void main(void) col.rgb *= emissiveColor.rgb * vIDiff; -#ifdef ENABLE_TONE_MAPPING +#if ENABLE_TONE_MAPPING col = applyToneMapping(col); #endif diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl index e44984dc8..f26224e82 100644 --- a/client/shaders/object_shader/opengl_vertex.glsl +++ b/client/shaders/object_shader/opengl_vertex.glsl @@ -7,7 +7,11 @@ varying vec3 vNormal; varying vec3 vPosition; varying vec3 worldPosition; varying lowp vec4 varColor; +#ifdef GL_ES varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; varying float vIDiff; @@ -45,5 +49,9 @@ void main(void) : directional_ambient(normalize(inVertexNormal)); #endif +#ifdef GL_ES + varColor = inVertexColor.bgra; +#else varColor = inVertexColor; +#endif } diff --git a/client/shaders/selection_shader/opengl_vertex.glsl b/client/shaders/selection_shader/opengl_vertex.glsl index 9ca87a9cf..39dde3056 100644 --- a/client/shaders/selection_shader/opengl_vertex.glsl +++ b/client/shaders/selection_shader/opengl_vertex.glsl @@ -6,5 +6,9 @@ void main(void) varTexCoord = inTexCoord0.st; gl_Position = mWorldViewProj * inVertexPosition; +#ifdef GL_ES + varColor = inVertexColor.bgra; +#else varColor = inVertexColor; +#endif } diff --git a/clientmods/dragonfire/world/init.lua b/clientmods/dragonfire/world/init.lua index 58f5a6c50..7568055b0 100644 --- a/clientmods/dragonfire/world/init.lua +++ b/clientmods/dragonfire/world/init.lua @@ -33,7 +33,7 @@ minetest.register_chatcommand("place", { minetest.register_chatcommand("screenshot", { description = "asdf", func = function() - minetest.take_screenshot() + minetest.make_screenshot() end, }) diff --git a/clientmods/preview/mod.conf b/clientmods/preview/mod.conf new file mode 100644 index 000000000..4e56ec293 --- /dev/null +++ b/clientmods/preview/mod.conf @@ -0,0 +1 @@ +name = preview diff --git a/clientmods/randomscreenshot/init.lua b/clientmods/randomscreenshot/init.lua index d7e94f877..44b176700 100644 --- a/clientmods/randomscreenshot/init.lua +++ b/clientmods/randomscreenshot/init.lua @@ -31,7 +31,7 @@ minetest.register_globalstep(function() minetest.after("15.0",function() minetest.hide_huds() --minetest.display_chat_message("\n\n\n\n\n\n\n\n\n") - minetest.after("0.05",minetest.take_screenshot) + minetest.after("0.05",minetest.make_screenshot) minetest.after("0.1",function() minetest.show_huds() end) diff --git a/cmake/Modules/FindGMP.cmake b/cmake/Modules/FindGMP.cmake index 7b45f16c7..190b7c548 100644 --- a/cmake/Modules/FindGMP.cmake +++ b/cmake/Modules/FindGMP.cmake @@ -12,8 +12,6 @@ if(ENABLE_SYSTEM_GMP) else() message (STATUS "Detecting GMP from system failed.") endif() -else() - message (STATUS "Detecting GMP from system disabled! (ENABLE_SYSTEM_GMP=0)") endif() if(NOT USE_SYSTEM_GMP) diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake index 529452a4a..b7681827c 100644 --- a/cmake/Modules/FindGettextLib.cmake +++ b/cmake/Modules/FindGettextLib.cmake @@ -42,15 +42,6 @@ if(WIN32) NAMES ${GETTEXT_LIB_NAMES} PATHS "${CUSTOM_GETTEXT_PATH}/lib" DOC "GetText library") - find_file(GETTEXT_DLL - NAMES libintl.dll intl.dll libintl3.dll intl3.dll - PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" - DOC "gettext *intl*.dll") - find_file(GETTEXT_ICONV_DLL - NAMES libiconv2.dll - PATHS "${CUSTOM_GETTEXT_PATH}/bin" "${CUSTOM_GETTEXT_PATH}/lib" - DOC "gettext *iconv*.lib") - set(GETTEXT_REQUIRED_VARS ${GETTEXT_REQUIRED_VARS} GETTEXT_DLL GETTEXT_ICONV_DLL) endif(WIN32) diff --git a/cmake/Modules/FindIrrlicht.cmake b/cmake/Modules/FindIrrlicht.cmake index 6f361e829..058e93878 100644 --- a/cmake/Modules/FindIrrlicht.cmake +++ b/cmake/Modules/FindIrrlicht.cmake @@ -1,73 +1,57 @@ -mark_as_advanced(IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR IRRLICHT_DLL) -set(IRRLICHT_SOURCE_DIR "" CACHE PATH "Path to irrlicht source directory (optional)") +mark_as_advanced(IRRLICHT_DLL) +# Find include directory and libraries -# Find include directory - -if(NOT IRRLICHT_SOURCE_DIR STREQUAL "") - set(IRRLICHT_SOURCE_DIR_INCLUDE - "${IRRLICHT_SOURCE_DIR}/include" - ) - - set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a Irrlicht Irrlicht.lib) - - if(WIN32) - if(MSVC) - set(IRRLICHT_SOURCE_DIR_LIBS "${IRRLICHT_SOURCE_DIR}/lib/Win32-visualstudio") - set(IRRLICHT_LIBRARY_NAMES Irrlicht.lib) - else() - set(IRRLICHT_SOURCE_DIR_LIBS "${IRRLICHT_SOURCE_DIR}/lib/Win32-gcc") - set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a libIrrlicht.dll.a) - endif() - else() - set(IRRLICHT_SOURCE_DIR_LIBS "${IRRLICHT_SOURCE_DIR}/lib/Linux") - set(IRRLICHT_LIBRARY_NAMES libIrrlicht.a) - endif() +# find our fork first, then upstream (TODO: remove this?) +foreach(libname IN ITEMS IrrlichtMt Irrlicht) + string(TOLOWER "${libname}" libname2) find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h + DOC "Path to the directory with IrrlichtMt includes" PATHS - ${IRRLICHT_SOURCE_DIR_INCLUDE} - NO_DEFAULT_PATH + /usr/local/include/${libname2} + /usr/include/${libname2} + /system/develop/headers/${libname2} #Haiku + PATH_SUFFIXES "include/${libname2}" ) - find_library(IRRLICHT_LIBRARY NAMES ${IRRLICHT_LIBRARY_NAMES} - PATHS - ${IRRLICHT_SOURCE_DIR_LIBS} - NO_DEFAULT_PATH - ) - -else() - find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h - PATHS - /usr/local/include/irrlicht - /usr/include/irrlicht - /system/develop/headers/irrlicht #Haiku - PATH_SUFFIXES "include/irrlicht" - ) - - find_library(IRRLICHT_LIBRARY NAMES libIrrlicht.so libIrrlicht.a Irrlicht + find_library(IRRLICHT_LIBRARY NAMES lib${libname} ${libname} + DOC "Path to the IrrlichtMt library file" PATHS /usr/local/lib /usr/lib /system/develop/lib # Haiku ) -endif() + if(IRRLICHT_INCLUDE_DIR OR IRRLICHT_LIBRARY) + break() + endif() +endforeach() + +# Handholding for users +if(IRRLICHT_INCLUDE_DIR AND (NOT IS_DIRECTORY "${IRRLICHT_INCLUDE_DIR}" OR + NOT EXISTS "${IRRLICHT_INCLUDE_DIR}/irrlicht.h")) + message(WARNING "IRRLICHT_INCLUDE_DIR was set to ${IRRLICHT_INCLUDE_DIR} " + "but irrlicht.h does not exist inside. The path will not be used.") + unset(IRRLICHT_INCLUDE_DIR CACHE) +endif() +if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE) + # (only on systems where we're sure how a valid library looks like) + if(IRRLICHT_LIBRARY AND (IS_DIRECTORY "${IRRLICHT_LIBRARY}" OR + NOT IRRLICHT_LIBRARY MATCHES "\\.(a|so|dylib|lib)([.0-9]+)?$")) + message(WARNING "IRRLICHT_LIBRARY was set to ${IRRLICHT_LIBRARY} " + "but is not a valid library file. The path will not be used.") + unset(IRRLICHT_LIBRARY CACHE) + endif() +endif() # On Windows, find the DLL for installation if(WIN32) # If VCPKG_APPLOCAL_DEPS is ON, dll's are automatically handled by VCPKG if(NOT VCPKG_APPLOCAL_DEPS) - if(MSVC) - set(IRRLICHT_COMPILER "VisualStudio") - else() - set(IRRLICHT_COMPILER "gcc") - endif() - find_file(IRRLICHT_DLL NAMES Irrlicht.dll - PATHS - "${IRRLICHT_SOURCE_DIR}/bin/Win32-${IRRLICHT_COMPILER}" - DOC "Path of the Irrlicht dll (for installation)" + find_file(IRRLICHT_DLL NAMES IrrlichtMt.dll + DOC "Path of the IrrlichtMt dll (for installation)" ) endif() endif(WIN32) diff --git a/cmake/Modules/FindJson.cmake b/cmake/Modules/FindJson.cmake index a5e9098f8..cce2d387f 100644 --- a/cmake/Modules/FindJson.cmake +++ b/cmake/Modules/FindJson.cmake @@ -1,26 +1,25 @@ -# Look for JSONCPP if asked to. -# We use a bundled version by default because some distros ship versions of -# JSONCPP that cause segfaults and other memory errors when we link with them. -# See https://github.com/minetest/minetest/issues/1793 +# Look for JsonCpp, with fallback to bundeled version mark_as_advanced(JSON_LIBRARY JSON_INCLUDE_DIR) -option(ENABLE_SYSTEM_JSONCPP "Enable using a system-wide JSONCPP. May cause segfaults and other memory errors!" FALSE) +option(ENABLE_SYSTEM_JSONCPP "Enable using a system-wide JsonCpp" TRUE) +set(USE_SYSTEM_JSONCPP FALSE) if(ENABLE_SYSTEM_JSONCPP) find_library(JSON_LIBRARY NAMES jsoncpp) find_path(JSON_INCLUDE_DIR json/allocator.h PATH_SUFFIXES jsoncpp) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Json DEFAULT_MSG JSON_LIBRARY JSON_INCLUDE_DIR) - - if(JSON_FOUND) - message(STATUS "Using system JSONCPP library.") + if(JSON_LIBRARY AND JSON_INCLUDE_DIR) + message(STATUS "Using JsonCpp provided by system.") + set(USE_SYSTEM_JSONCPP TRUE) endif() endif() -if(NOT JSON_FOUND) - message(STATUS "Using bundled JSONCPP library.") +if(NOT USE_SYSTEM_JSONCPP) + message(STATUS "Using bundled JsonCpp library.") set(JSON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jsoncpp) set(JSON_LIBRARY jsoncpp) add_subdirectory(lib/jsoncpp) endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Json DEFAULT_MSG JSON_LIBRARY JSON_INCLUDE_DIR) diff --git a/cmake/Modules/FindOpenGLES2.cmake b/cmake/Modules/FindOpenGLES2.cmake index a47126705..ce04191dd 100644 --- a/cmake/Modules/FindOpenGLES2.cmake +++ b/cmake/Modules/FindOpenGLES2.cmake @@ -42,7 +42,7 @@ else() ) include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(OPENGLES2 DEFAULT_MSG OPENGLES2_LIBRARY OPENGLES2_INCLUDE_DIR) + find_package_handle_standard_args(OpenGLES2 DEFAULT_MSG OPENGLES2_LIBRARY OPENGLES2_INCLUDE_DIR) find_path(EGL_INCLUDE_DIR EGL/egl.h PATHS /usr/openwin/share/include @@ -59,7 +59,6 @@ else() /usr/lib ) - include(FindPackageHandleStandardArgs) find_package_handle_standard_args(EGL DEFAULT_MSG EGL_LIBRARY EGL_INCLUDE_DIR) endif() diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index a8109fa59..22148ee51 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -1,4 +1,4 @@ -Minetest Lua Client Modding API Reference 5.4.0 +Minetest Lua Client Modding API Reference 5.5.0 ================================================ * More information at * Developer Wiki: @@ -627,7 +627,7 @@ Helper functions * `minetest.is_yes(arg)` * returns whether `arg` can be interpreted as yes * `minetest.is_nan(arg)` - * returns true true when the passed number represents NaN. + * returns true when the passed number represents NaN. * `table.copy(table)`: returns a table * returns a deep copy of `table` @@ -658,6 +658,9 @@ Minetest namespace reference * `minetest.sha1(data, [raw])`: returns the sha1 hash of data * `data`: string of data to hash * `raw`: return raw bytes instead of hex digits, default: false +* `minetest.colorspec_to_colorstring(colorspec)`: Converts a ColorSpec to a + ColorString. If the ColorSpec is invalid, returns `nil`. + * `colorspec`: The ColorSpec to convert * `minetest.get_csm_restrictions()`: returns a table of `Flags` indicating the restrictions applied to the current mod. * If a flag in this table is set to true, the feature is RESTRICTED. @@ -674,6 +677,11 @@ Minetest namespace reference ### Global callback registration functions Call these functions only at load time! +* `minetest.get_send_speed(speed)` + * This function is called every time the player's speed is sent to server + * The `speed` argument is the actual speed of the player + * If you define it, you can return a modified `speed`. This speed will be + sent to server instead. * `minetest.open_enderchest()` * This function is called if the client uses the Keybind for it (by default "O") * You can override it @@ -700,7 +708,7 @@ Call these functions only at load time! * Registers a chatcommand `command` to manage a list that takes the args `del | add | list ` * The list is stored comma-seperated in `setting` * `desc` is the description - * `add` adds something to the list + * `add` adds something to the list * `del` del removes something from the list * `list` lists all items on the list * `minetest.register_on_chatcommand(function(command, params))` @@ -762,7 +770,14 @@ Call these functions only at load time! * `minetest.register_on_spawn_partice(function(particle definition))` * Called when recieving a spawn particle command from server * Newest functions are called first - * If any function returns true, the particel does not spawn + * If any function returns true, the particle does not spawn +* `minetest.register_on_object_add(function(obj))` + * Called every time an object is added +* `minetest.register_on_object_properties_change(function(obj))` + * Called every time the properties of an object are changed server-side + * May modify the object's properties without the fear of infinite recursion +* `minetest.register_on_object_hp_change(function(obj))` + * Called every time the hp of an object are changes server-side ### Setting-related * `minetest.settings`: Settings object containing all of the settings from the @@ -793,6 +808,16 @@ Call these functions only at load time! * Returns the time of day: `0` for midnight, `0.5` for midday ### Map +* `minetest.interact(action, pointed_thing)` + * Sends an interaction to the server + * `pointed_thing` is a pointed_thing + * `action` is one of + * "start_digging": Use to punch nodes / objects + * "stop_digging": Use to abort digging a "start_digging" command + * "digging_completed": Use to finish a "start_digging" command or dig a node instantly + * "place": Use to rightclick nodes and objects + * "use": Use to leftclick an item in air (pointed_thing.type is usually "nothing") + * "activate": Same as "use", but rightclick * `minetest.place_node(pos)` * Places the wielded node/item of the player at pos. * `minetest.dig_node(pos)` @@ -919,11 +944,15 @@ Call these functions only at load time! * Convert between two privilege representations ### Client Environment +* `minetest.object_refs` + * Map of object references, indexed by active object id * `minetest.get_player_names()` * Returns list of player names on server (nil if CSM_RF_READ_PLAYERINFO is enabled by server) * `minetest.get_objects_inside_radius(pos, radius)`: returns a list of ClientObjectRefs. * `radius`: using an euclidean metric +* `minetest.get_nearby_objects(radius)` + * alias for minetest.get_objects_inside_radius(minetest.localplayer:get_pos(), radius) * `minetest.disconnect()` * Disconnect from the server and exit to main menu. * Returns `false` if the client is already disconnecting otherwise returns `true`. @@ -934,13 +963,21 @@ Call these functions only at load time! ### HTTP Requests -* `minetest.get_http_api()` - * returns `HTTPApiTable` containing http functions. - * The returned table contains the functions `fetch_sync`, `fetch_async` and +* `minetest.request_http_api()`: + * returns `HTTPApiTable` containing http functions if the calling mod has + been granted access by being listed in the `secure.http_mods` or + `secure.trusted_mods` setting, otherwise returns `nil`. + * The returned table contains the functions `fetch`, `fetch_async` and `fetch_async_get` described below. + * Only works at init time and must be called from the mod's main scope + (not from a function). * Function only exists if minetest server was built with cURL support. -* `HTTPApiTable.fetch_sync(HTTPRequest req)`: returns HTTPRequestResult - * Performs given request synchronously + * **DO NOT ALLOW ANY OTHER MODS TO ACCESS THE RETURNED TABLE, STORE IT IN + A LOCAL VARIABLE!** +* `HTTPApiTable.fetch(HTTPRequest req, callback)` + * Performs given request asynchronously and calls callback upon completion + * callback: `function(HTTPRequestResult res)` + * Use this HTTP function if you are unsure, the others are for advanced use * `HTTPApiTable.fetch_async(HTTPRequest req)`: returns handle * Performs given request asynchronously and returns handle for `HTTPApiTable.fetch_async_get` @@ -1102,6 +1139,14 @@ Passed to `HTTPApiTable.fetch` callback. Returned by * Checks if a global variable has been set, without triggering a warning. * `minetest.make_screenshot()` * Triggers the MT makeScreenshot functionality +* `minetest.request_insecure_environment()`: returns an environment containing + insecure functions if the calling mod has been listed as trusted in the + `secure.trusted_mods` setting or security is disabled, otherwise returns + `nil`. + * Only works at init time and must be called from the mod's main scope + (ie: the init.lua of the mod, not from another Lua file or within a function). + * **DO NOT ALLOW ANY OTHER MODS TO ACCESS THE RETURNED ENVIRONMENT, STORE + IT IN A LOCAL VARIABLE!** ### UI * `minetest.ui.minimap` @@ -1191,6 +1236,7 @@ Please do not try to access the reference until the camera is initialized, other ### LocalPlayer An interface to retrieve information about the player. +This object will only be available after the client is initialized. Earlier accesses will yield a `nil` value. Methods: @@ -1382,12 +1428,16 @@ This is basically a reference to a C++ `GenericCAO`. * `is_player()`: returns true if the object is a player * `is_local_player()`: returns true if the object is the local player * `get_attach()`: returns parent or nil if it isn't attached. -* `get_nametag()`: returns the nametag (string) -* `get_item_textures()`: returns the textures -* `get_max_hp()`: returns the maximum heath +* `get_nametag()`: returns the nametag (deprecated, use get_properties().nametag instead) +* `get_item_textures()`: returns the textures (deprecated, use get_properties().textures instead) +* `get_max_hp()`: returns the maximum heath (deprecated, use get_properties().hp_max instead) +* `set_properties(object property table)` +* `get_properties()`: returns object property table * `punch()`: punches the object * `rightclick()`: rightclicks the object - +* `remove()`: removes the object permanently +* `set_nametag_images(images)`: Provides a list of images to be drawn below the nametag + ### `Raycast` A raycast on the map. It works with selection boxes. @@ -1416,6 +1466,8 @@ It can be created via `Raycast(pos1, pos2, objects, liquids)` or ----------------- ### Definitions +* `minetest.inventorycube(img1, img2, img3)` + * Returns a string for making an image of a cube (useful as an item image) * `minetest.get_node_def(nodename)` * Returns [node definition](#node-definition) table of `nodename` * `minetest.get_item_def(itemstring)` @@ -1427,10 +1479,67 @@ It can be created via `Raycast(pos1, pos2, objects, liquids)` or {light_source=minetest.LIGHT_MAX})` * Doesnt really work yet an causes strange bugs, I'm working to make is better + +#### Tile definition + +* `"image.png"` +* `{name="image.png", animation={Tile Animation definition}}` +* `{name="image.png", backface_culling=bool, align_style="node"/"world"/"user", scale=int}` + * backface culling enabled by default for most nodes + * align style determines whether the texture will be rotated with the node + or kept aligned with its surroundings. "user" means that client + setting will be used, similar to `glasslike_framed_optional`. + Note: supported by solid nodes and nodeboxes only. + * scale is used to make texture span several (exactly `scale`) nodes, + instead of just one, in each direction. Works for world-aligned + textures only. + Note that as the effect is applied on per-mapblock basis, `16` should + be equally divisible by `scale` or you may get wrong results. +* `{name="image.png", color=ColorSpec}` + * the texture's color will be multiplied with this color. + * the tile's color overrides the owning node's color in all cases. + +##### Tile definition + + { + type = "vertical_frames", + + aspect_w = 16, + -- Width of a frame in pixels + + aspect_h = 16, + -- Height of a frame in pixels + + length = 3.0, + -- Full loop length + } + + { + type = "sheet_2d", + + frames_w = 5, + -- Width in number of frames + + frames_h = 3, + -- Height in number of frames + + frame_length = 0.5, + -- Length of a single frame + } + #### Node Definition ```lua { + tiles = {tile definition 1, def2, def3, def4, def5, def6}, + -- Textures of node; +Y, -Y, +X, -X, +Z, -Z + overlay_tiles = {tile definition 1, def2, def3, def4, def5, def6}, + -- Same as `tiles`, but these textures are drawn on top of the base + -- tiles. This is used to colorize only specific parts of the + -- texture. If the texture name is an empty string, that overlay is not + -- drawn + special_tiles = {tile definition 1, Tile definition 2}, + -- Special textures of node; used rarely. has_on_construct = bool, -- Whether the node has the on_construct callback defined has_on_destruct = bool, -- Whether the node has the on_destruct callback defined has_after_destruct = bool, -- Whether the node has the after_destruct callback defined @@ -1592,9 +1701,8 @@ The following functions provide escape sequences: Named colors are also supported and are equivalent to [CSS Color Module Level 4](http://dev.w3.org/csswg/css-color/#named-colors). -To specify the value of the alpha channel, append `#AA` to the end of the color name -(e.g. `colorname#08`). For named colors the hexadecimal string representing the alpha -value must (always) be two hexadecimal digits. +To specify the value of the alpha channel, append `#A` or `#AA` to the end of +the color name (e.g. `colorname#08`). `Color` ------------- @@ -1779,7 +1887,7 @@ A reference to a C++ InventoryAction. You can move, drop and craft items in all * it specifies how many items to drop / craft / move * `0` means move all items * default count: `0` - + #### example `local move_act = InventoryAction("move") move_act:from("current_player", "main", 1) @@ -1794,7 +1902,7 @@ A reference to a C++ InventoryAction. You can move, drop and craft items in all drop_act:apply() ` * e.g. In first hotbar slot there are tree logs: Move one to craft field, then craft wood out of it and immediately drop it - - + + diff --git a/doc/lua_api.txt b/doc/lua_api.txt index 0fe524035..7104af3e7 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -256,6 +256,9 @@ Subfolders with names starting with `_` or `.` are ignored. If a subfolder contains a media file with the same name as a media file in one of its parents, the parent's file is used. +Although it is discouraged, a mod can overwrite a media file of any mod that it +depends on by supplying a file with an equal name. + Naming conventions ------------------ @@ -1014,7 +1017,9 @@ The function of `param2` is determined by `paramtype2` in node definition. * `paramtype2 = "flowingliquid"` * Used by `drawtype = "flowingliquid"` and `liquidtype = "flowing"` * The liquid level and a flag of the liquid are stored in `param2` - * Bits 0-2: Liquid level (0-7). The higher, the more liquid is in this node + * Bits 0-2: Liquid level (0-7). The higher, the more liquid is in this node; + see `minetest.get_node_level`, `minetest.set_node_level` and `minetest.add_node_level` + to access/manipulate the content of this field * Bit 3: If set, liquid is flowing downwards (no graphical effect) * `paramtype2 = "wallmounted"` * Supported drawtypes: "torchlike", "signlike", "normal", "nodebox", "mesh" @@ -1043,9 +1048,9 @@ The function of `param2` is determined by `paramtype2` in node definition. * The height of the 'plantlike' section is stored in `param2`. * The height is (`param2` / 16) nodes. * `paramtype2 = "degrotate"` - * Only valid for "plantlike" drawtype. The rotation of the node is stored in - `param2`. - * Values range 0 - 179. The value stored in `param2` is multiplied by two to + * Valid for `plantlike` and `mesh` drawtypes. The rotation of the node is + stored in `param2`. + * Values range 0–239. The value stored in `param2` is multiplied by 1.5 to get the actual rotation in degrees of the node. * `paramtype2 = "meshoptions"` * Only valid for "plantlike" drawtype. `param2` encodes the shape and @@ -1083,6 +1088,11 @@ The function of `param2` is determined by `paramtype2` in node definition. * `param2` values 0-63 define 64 levels of internal liquid, 0 being empty and 63 being full. * Liquid texture is defined using `special_tiles = {"modname_tilename.png"}` +* `paramtype2 = "colordegrotate"` + * Same as `degrotate`, but with colors. + * The first (most-significant) three bits of `param2` tells which color + is picked from the palette. The palette should have 8 pixels. + * Remaining 5 bits store rotation in range 0–23 (i.e. in 15° steps) * `paramtype2 = "none"` * `param2` will not be used by the engine and can be used to store an arbitrary value @@ -1102,8 +1112,20 @@ Look for examples in `games/devtest` or `games/minetest_game`. * Invisible, uses no texture. * `liquid` * The cubic source node for a liquid. + * Faces bordering to the same node are never rendered. + * Connects to node specified in `liquid_alternative_flowing`. + * Use `backface_culling = false` for the tiles you want to make + visible when inside the node. * `flowingliquid` * The flowing version of a liquid, appears with various heights and slopes. + * Faces bordering to the same node are never rendered. + * Connects to node specified in `liquid_alternative_source`. + * Node textures are defined with `special_tiles` where the first tile + is for the top and bottom faces and the second tile is for the side + faces. + * `tiles` is used for the item/inventory/wield image rendering. + * Use `backface_culling = false` for the special tiles you want to make + visible when inside the node * `glasslike` * Often used for partially-transparent nodes. * Only external sides of textures are visible. @@ -1130,14 +1152,20 @@ Look for examples in `games/devtest` or `games/minetest_game`. used to compensate for how `glasslike` reduces visual thickness. * `torchlike` * A single vertical texture. - * If placed on top of a node, uses the first texture specified in `tiles`. - * If placed against the underside of a node, uses the second texture - specified in `tiles`. - * If placed on the side of a node, uses the third texture specified in - `tiles` and is perpendicular to that node. + * If `paramtype2="[color]wallmounted": + * If placed on top of a node, uses the first texture specified in `tiles`. + * If placed against the underside of a node, uses the second texture + specified in `tiles`. + * If placed on the side of a node, uses the third texture specified in + `tiles` and is perpendicular to that node. + * If `paramtype2="none"`: + * Will be rendered as if placed on top of a node (see + above) and only the first texture is used. * `signlike` * A single texture parallel to, and mounted against, the top, underside or side of a node. + * If `paramtype2="[color]wallmounted", it rotates according to `param2` + * If `paramtype2="none"`, it will always be on the floor. * `plantlike` * Two vertical and diagonal textures at right-angles to each other. * See `paramtype2 = "meshoptions"` above for other options. @@ -1245,6 +1273,9 @@ A box of a regular node would look like: {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, +To avoid collision issues, keep each value within the range of +/- 1.45. +This also applies to leveled nodeboxes, where the final height shall not +exceed this soft limit. @@ -1717,7 +1748,15 @@ to games. * `3`: the node always gets the digging time 0 seconds (torch) * `disable_jump`: Player (and possibly other things) cannot jump from node or if their feet are in the node. Note: not supported for `new_move = false` -* `fall_damage_add_percent`: damage speed = `speed * (1 + value/100)` +* `fall_damage_add_percent`: modifies the fall damage suffered when hitting + the top of this node. There's also an armor group with the same name. + The final player damage is determined by the following formula: + damage = + collision speed + * ((node_fall_damage_add_percent + 100) / 100) -- node group + * ((player_fall_damage_add_percent + 100) / 100) -- player armor group + - (14) -- constant tolerance + Negative damage values are discarded as no damage. * `falling_node`: if there is no walkable block under the node it will fall * `float`: the node will not fall through liquids * `level`: Can be used to give an additional sense of progression in the game. @@ -1737,11 +1776,15 @@ to games. `"toolrepair"` crafting recipe -### `ObjectRef` groups +### `ObjectRef` armor groups * `immortal`: Skips all damage and breath handling for an object. This group - will also hide the integrated HUD status bars for players, and is - automatically set to all players when damage is disabled on the server. + will also hide the integrated HUD status bars for players. It is + automatically set to all players when damage is disabled on the server and + cannot be reset (subject to change). +* `fall_damage_add_percent`: Modifies the fall damage suffered by players + when they hit the ground. It is analog to the node group with the same + name. See the node group above for the exact calculation. * `punch_operable`: For entities; disables the regular damage mechanism for players punching it by hand or a non-tool item, so that it can do something else than take damage. @@ -2109,6 +2152,22 @@ Examples list[current_player;craft;3,0;3,3;] list[current_player;craftpreview;7,1;1,1;] +Version History +--------------- + +* FORMSPEC VERSION 1: + * (too much) +* FORMSPEC VERSION 2: + * Forced real coordinates + * background9[]: 9-slice scaling parameters +* FORMSPEC VERSION 3: + * Formspec elements are drawn in the order of definition + * bgcolor[]: use 3 parameters (bgcolor, formspec (now an enum), fbgcolor) + * box[] and image[] elements enable clipping by default + * new element: scroll_container[] +* FORMSPEC VERSION 4: + * Allow dropdown indexing events + Elements -------- @@ -2120,6 +2179,7 @@ Elements * Clients older than this version can neither show newer elements nor display elements with new arguments correctly. * Available since feature `formspec_version_element`. +* See also: [Version History] ### `size[,,]` @@ -2204,7 +2264,8 @@ Elements * Show an inventory list if it has been sent to the client. Nothing will be shown if the inventory list is of size 0. * **Note**: With the new coordinate system, the spacing between inventory - slots is one-fourth the size of an inventory slot. + slots is one-fourth the size of an inventory slot by default. Also see + [Styling Formspecs] for changing the size of slots and spacing. ### `list[;;,;,;]` @@ -2272,7 +2333,7 @@ Elements * `frame duration`: Milliseconds between each frame. `0` means the frames don't advance. * `frame start` (Optional): The index of the frame to start on. Default `1`. -### `model[,;,;;;;;;]` +### `model[,;,;;;;;;;;]` * Show a mesh model. * `name`: Element name that can be used for styling @@ -2283,6 +2344,10 @@ Elements The axes are euler angles in degrees. * `continuous` (Optional): Whether the rotation is continuous. Default `false`. * `mouse control` (Optional): Whether the model can be controlled with the mouse. Default `true`. +* `frame loop range` (Optional): Range of the animation frames. + * Defaults to the full range of all available frames. + * Syntax: `,` +* `animation speed` (Optional): Sets the animation speed. Default 0 FPS. ### `item_image[,;,;]` @@ -2648,7 +2713,7 @@ Elements * `span=`: number of following columns to affect (default: infinite). -### `style[,;;;...]` +### `style[,,...;;;...]` * Set the style for the element(s) matching `selector` by name. * `selector` can be one of: @@ -2661,7 +2726,7 @@ Elements * See [Styling Formspecs]. -### `style_type[,;;;...]` +### `style_type[,,...;;;...]` * Set the style for the element(s) matching `selector` by type. * `selector` can be one of: @@ -2734,10 +2799,10 @@ Styling Formspecs Formspec elements can be themed using the style elements: - style[,;;;...] - style[:,:;;;...] - style_type[,;;;...] - style_type[:,:;;;...] + style[,,...;;;...] + style[:,:,...;;;...] + style_type[,,...;;;...] + style_type[:,:,...;;;...] Where a prop is: @@ -2784,6 +2849,8 @@ Some types may inherit styles from parent types. * image_button * item_image_button * label +* list +* model * pwdfield, inherits from field * scrollbar * tabheader @@ -2843,14 +2910,14 @@ Some types may inherit styles from parent types. * noclip - boolean, set to true to allow the element to exceed formspec bounds. * padding - rect, adds space between the edges of the button and the content. This value is relative to bgimg_middle. - * sound - a sound to be played when clicked. + * sound - a sound to be played when triggered. * textcolor - color, default white. * checkbox * noclip - boolean, set to true to allow the element to exceed formspec bounds. - * sound - a sound to be played when clicked. + * sound - a sound to be played when triggered. * dropdown * noclip - boolean, set to true to allow the element to exceed formspec bounds. - * sound - a sound to be played when clicked. + * sound - a sound to be played when the entry is changed. * field, pwdfield, textarea * border - set to false to hide the textbox background and border. Default true. * font - Sets font type. See button `font` property for more information. @@ -2870,6 +2937,10 @@ Some types may inherit styles from parent types. * font - Sets font type. See button `font` property for more information. * font_size - Sets font size. See button `font_size` property for more information. * noclip - boolean, set to true to allow the element to exceed formspec bounds. +* list + * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * size - 2d vector, sets the size of inventory slots in coordinates. + * spacing - 2d vector, sets the space between inventory slots in coordinates. * image_button (additional properties) * fgimg - standard image. Defaults to none. * fgimg_hovered - image when hovered. Defaults to fgimg when not provided. @@ -2877,12 +2948,12 @@ Some types may inherit styles from parent types. * fgimg_pressed - image when pressed. Defaults to fgimg when not provided. * This is deprecated, use states instead. * NOTE: The parameters of any given image_button will take precedence over fgimg/fgimg_pressed - * sound - a sound to be played when clicked. + * sound - a sound to be played when triggered. * scrollbar * noclip - boolean, set to true to allow the element to exceed formspec bounds. * tabheader * noclip - boolean, set to true to allow the element to exceed formspec bounds. - * sound - a sound to be played when clicked. + * sound - a sound to be played when a different tab is selected. * textcolor - color. Default white. * table, textlist * font - Sets font type. See button `font` property for more information. @@ -3041,9 +3112,8 @@ Colors Named colors are also supported and are equivalent to [CSS Color Module Level 4](http://dev.w3.org/csswg/css-color/#named-colors). -To specify the value of the alpha channel, append `#AA` to the end of the color -name (e.g. `colorname#08`). For named colors the hexadecimal string -representing the alpha value must (always) be two hexadecimal digits. +To specify the value of the alpha channel, append `#A` or `#AA` to the end of +the color name (e.g. `colorname#08`). `ColorSpec` ----------- @@ -3109,6 +3179,16 @@ For the following functions, `v`, `v1`, `v2` are vectors, * Returns a vector. * A copy of `a` if `a` is a vector. * `{x = a, y = b, z = c}`, if all of `a`, `b`, `c` are defined numbers. +* `vector.from_string(s[, init])`: + * Returns `v, np`, where `v` is a vector read from the given string `s` and + `np` is the next position in the string after the vector. + * Returns `nil` on failure. + * `s`: Has to begin with a substring of the form `"(x, y, z)"`. Additional + spaces, leaving away commas and adding an additional comma to the end + is allowed. + * `init`: If given starts looking for the vector at this string index. +* `vector.to_string(v)`: + * Returns a string of the form `"(x, y, z)"`. * `vector.direction(p1, p2)`: * Returns a vector of length 1 with direction `p1` to `p2`. * If `p1` and `p2` are identical, returns `{x = 0, y = 0, z = 0}`. @@ -3123,6 +3203,7 @@ For the following functions, `v`, `v1`, `v2` are vectors, * Returns a vector, each dimension rounded down. * `vector.round(v)`: * Returns a vector, each dimension rounded to nearest integer. + * At a multiple of 0.5, rounds away from zero. * `vector.apply(v, func)`: * Returns a vector where the function `func` has been applied to each component. @@ -3197,6 +3278,8 @@ Helper functions * If the absolute value of `x` is within the `tolerance` or `x` is NaN, `0` is returned. * `math.factorial(x)`: returns the factorial of `x` +* `math.round(x)`: Returns `x` rounded to the nearest integer. + * At a multiple of 0.5, rounds away from zero. * `string.split(str, separator, include_empty, max_splits, sep_is_pattern)` * `separator`: string, default: `","` * `include_empty`: boolean, default: `false` @@ -3244,7 +3327,8 @@ Helper functions * Appends all values in `other_table` to `table` - uses `#table + 1` to find new indices. * `table.key_value_swap(t)`: returns a table with keys and values swapped - * If multiple keys in `t` map to the same value, the result is undefined. + * If multiple keys in `t` map to the same value, it is unspecified which + value maps to that key. * `table.shuffle(table, [from], [to], [random_func])`: * Shuffles elements `from` to `to` in `table` in place * `from` defaults to `1` @@ -4182,6 +4266,8 @@ Callbacks: * Called when the object is instantiated. * `dtime_s` is the time passed since the object was unloaded, which can be used for updating the entity state. +* `on_deactivate(self) + * Called when the object is about to get removed or unloaded. * `on_step(self, dtime)` * Called on every server tick, after movement and collision processing. `dtime` is usually 0.1 seconds, as per the `dedicated_server_step` setting @@ -4302,11 +4388,14 @@ Utilities * `minetest.get_current_modname()`: returns the currently loading mod's name, when loading a mod. -* `minetest.get_modpath(modname)`: returns e.g. - `"/home/user/.minetest/usermods/modname"`. - * Useful for loading additional `.lua` modules or static data from mod -* `minetest.get_modnames()`: returns a list of installed mods - * Return a list of installed mods, sorted alphabetically +* `minetest.get_modpath(modname)`: returns the directory path for a mod, + e.g. `"/home/user/.minetest/usermods/modname"`. + * Returns nil if the mod is not enabled or does not exist (not installed). + * Works regardless of whether the mod has been loaded yet. + * Useful for loading additional `.lua` modules or static data from a mod, + or checking if a mod is enabled. +* `minetest.get_modnames()`: returns a list of enabled mods, sorted alphabetically. + * Does not include disabled mods, even if they are installed. * `minetest.get_worldpath()`: returns e.g. `"/home/user/.minetest/world"` * Useful for storing custom data * `minetest.is_singleplayer()` @@ -4349,6 +4438,11 @@ Utilities object_step_has_moveresult = true, -- Whether get_velocity() and add_velocity() can be used on players (5.4.0) direct_velocity_on_players = true, + -- nodedef's use_texture_alpha accepts new string modes (5.4.0) + use_texture_alpha_string_modes = true, + -- degrotate param2 rotates in units of 1.5° instead of 2° + -- thus changing the range of values from 0-179 to 0-240 (5.5.0) + degrotate_240_steps = true, } * `minetest.has_feature(arg)`: returns `boolean, missing_features` @@ -4408,6 +4502,9 @@ Utilities * `minetest.sha1(data, [raw])`: returns the sha1 hash of data * `data`: string of data to hash * `raw`: return raw bytes instead of hex digits, default: false +* `minetest.colorspec_to_colorstring(colorspec)`: Converts a ColorSpec to a + ColorString. If the ColorSpec is invalid, returns `nil`. + * `colorspec`: The ColorSpec to convert Logging ------- @@ -4557,6 +4654,10 @@ Call these functions only at load time! the puncher to the punched. * `damage`: Number that represents the damage calculated by the engine * should return `true` to prevent the default damage mechanism +* `minetest.register_on_rightclickplayer(function(player, clicker))` + * Called when a player is right-clicked + * `player`: ObjectRef - Player that was right-clicked + * `clicker`: ObjectRef - Object that right-clicked, may or may not be a player * `minetest.register_on_player_hpchange(function(player, hp_change, reason), modifier)` * Called when the player gets damaged or healed * `player`: ObjectRef of the player @@ -4607,6 +4708,7 @@ Call these functions only at load time! * `cheat`: `{type=}`, where `` is one of: * `moved_too_fast` * `interacted_too_far` + * `interacted_with_self` * `interacted_while_dead` * `finished_unknown_dig` * `dug_unbreakable` @@ -4847,7 +4949,7 @@ Environment access * Punch node with the same effects that a player would cause * `minetest.spawn_falling_node(pos)` * Change node into falling node - * Returns `true` if successful, `false` on failure + * Returns `true` and the ObjectRef of the spawned entity if successful, `false` on failure * `minetest.find_nodes_with_meta(pos1, pos2)` * Get a table of positions of nodes that have metadata within a region @@ -4866,6 +4968,9 @@ Environment access * `minetest.get_objects_inside_radius(pos, radius)`: returns a list of ObjectRefs. * `radius`: using an euclidean metric +* `minetest.get_objects_in_area(pos1, pos2)`: returns a list of + ObjectRefs. + * `pos1` and `pos2` are the min and max positions of the area to search. * `minetest.set_timeofday(val)` * `val` is between `0` and `1`; `0` for midnight, `0.5` for midday * `minetest.get_timeofday()` @@ -5399,20 +5504,22 @@ Server * Returns a code (0: successful, 1: no such player, 2: player is connected) * `minetest.remove_player_auth(name)`: remove player authentication data * Returns boolean indicating success (false if player nonexistant) -* `minetest.dynamic_add_media(filepath)` - * Adds the file at the given path to the media sent to clients by the server - on startup and also pushes this file to already connected clients. +* `minetest.dynamic_add_media(filepath, callback)` + * `filepath`: path to a media file on the filesystem + * `callback`: function with arguments `name`, where name is a player name + (previously there was no callback argument; omitting it is deprecated) + * Adds the file to the media sent to clients by the server on startup + and also pushes this file to already connected clients. The file must be a supported image, sound or model format. It must not be modified, deleted, moved or renamed after calling this function. The list of dynamically added media is not persisted. - * Returns boolean indicating success (duplicate files count as error) - * The media will be ready to use (in e.g. entity textures, sound_play) - immediately after calling this function. + * Returns false on error, true if the request was accepted + * The given callback will be called for every player as soon as the + media is available on the client. Old clients that lack support for this feature will not see the media - unless they reconnect to the server. - * Since media transferred this way does not use client caching or HTTP - transfers, dynamic media should not be used with big files or performance - will suffer. + unless they reconnect to the server. (callback won't be called) + * Since media transferred this way currently does not use client caching + or HTTP transfers, dynamic media should not be used with big files. Bans ---- @@ -5549,72 +5656,28 @@ Schematics HTTP Requests ------------- -* `minetest.get_http_api()` - * returns `HTTPApiTable` containing http functions. - * The returned table contains the functions `fetch_sync`, `fetch_async` and + +* `minetest.request_http_api()`: + * returns `HTTPApiTable` containing http functions if the calling mod has + been granted access by being listed in the `secure.http_mods` or + `secure.trusted_mods` setting, otherwise returns `nil`. + * The returned table contains the functions `fetch`, `fetch_async` and `fetch_async_get` described below. + * Only works at init time and must be called from the mod's main scope + (not from a function). * Function only exists if minetest server was built with cURL support. -* `HTTPApiTable.fetch_sync(HTTPRequest req)`: returns HTTPRequestResult - * Performs given request synchronously + * **DO NOT ALLOW ANY OTHER MODS TO ACCESS THE RETURNED TABLE, STORE IT IN + A LOCAL VARIABLE!** +* `HTTPApiTable.fetch(HTTPRequest req, callback)` + * Performs given request asynchronously and calls callback upon completion + * callback: `function(HTTPRequestResult res)` + * Use this HTTP function if you are unsure, the others are for advanced use * `HTTPApiTable.fetch_async(HTTPRequest req)`: returns handle * Performs given request asynchronously and returns handle for `HTTPApiTable.fetch_async_get` * `HTTPApiTable.fetch_async_get(handle)`: returns HTTPRequestResult * Return response data for given asynchronous HTTP request -### `HTTPRequest` definition - -Used by `HTTPApiTable.fetch` and `HTTPApiTable.fetch_async`. - - { - url = "http://example.org", - - timeout = 10, - -- Timeout for connection in seconds. Default is 3 seconds. - - post_data = "Raw POST request data string" OR {field1 = "data1", field2 = "data2"}, - -- Optional, if specified a POST request with post_data is performed. - -- Accepts both a string and a table. If a table is specified, encodes - -- table as x-www-form-urlencoded key-value pairs. - -- If post_data is not specified, a GET request is performed instead. - - user_agent = "ExampleUserAgent", - -- Optional, if specified replaces the default minetest user agent with - -- given string - - extra_headers = { "Accept-Language: en-us", "Accept-Charset: utf-8" }, - -- Optional, if specified adds additional headers to the HTTP request. - -- You must make sure that the header strings follow HTTP specification - -- ("Key: Value"). - - multipart = boolean - -- Optional, if true performs a multipart HTTP request. - -- Default is false. - } - -### `HTTPRequestResult` definition - -Passed to `HTTPApiTable.fetch` callback. Returned by -`HTTPApiTable.fetch_async_get`. - - { - completed = true, - -- If true, the request has finished (either succeeded, failed or timed - -- out) - - succeeded = true, - -- If true, the request was successful - - timeout = false, - -- If true, the request timed out - - code = 200, - -- HTTP status code - - data = "response" - } - - Storage API ----------- @@ -6034,18 +6097,18 @@ an itemstring, a table or `nil`. stack). * `set_metadata(metadata)`: (DEPRECATED) Returns true. * `get_description()`: returns the description shown in inventory list tooltips. - * The engine uses the same as this function for item descriptions. + * The engine uses this when showing item descriptions in tooltips. * Fields for finding the description, in order: * `description` in item metadata (See [Item Metadata].) * `description` in item definition * item name -* `get_short_description()`: returns the short description. +* `get_short_description()`: returns the short description or nil. * Unlike the description, this does not include new lines. - * The engine uses the same as this function for short item descriptions. * Fields for finding the short description, in order: * `short_description` in item metadata (See [Item Metadata].) * `short_description` in item definition - * first line of the description (See `get_description()`.) + * first line of the description (From item meta or def, see `get_description()`.) + * Returns nil if none of the above are set * `clear()`: removes all items from the stack, making it empty. * `replace(item)`: replace the contents of this stack. * `item` can also be an itemstring or table. @@ -6222,8 +6285,8 @@ object you are working with still exists. * `time_from_last_punch` = time since last punch action of the puncher * `direction`: can be `nil` * `right_click(clicker)`; `clicker` is another `ObjectRef` -* `get_hp()`: returns number of hitpoints (2 * number of hearts) -* `set_hp(hp, reason)`: set number of hitpoints (2 * number of hearts). +* `get_hp()`: returns number of health points +* `set_hp(hp, reason)`: set number of health points * See reason in register_on_player_hpchange * Is limited to the range of 0 ... 65535 (2^16 - 1) * For players: HP are also limited by `hp_max` specified in the player's @@ -6246,21 +6309,22 @@ object you are working with still exists. `frame_loop`. * `set_animation_frame_speed(frame_speed)` * `frame_speed`: number, default: `15.0` -* `set_attach(parent, bone, position, rotation, forced_visible)` - * `bone`: string - * `position`: `{x=num, y=num, z=num}` (relative) - * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees +* `set_attach(parent[, bone, position, rotation, forced_visible])` + * `bone`: string. Default is `""`, the root bone + * `position`: `{x=num, y=num, z=num}`, relative, default `{x=0, y=0, z=0}` + * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees. + Default `{x=0, y=0, z=0}` * `forced_visible`: Boolean to control whether the attached entity - should appear in first person. + should appear in first person. Default `false`. * `get_attach()`: returns parent, bone, position, rotation, forced_visible, or nil if it isn't attached. * `get_children()`: returns a list of ObjectRefs that are attached to the object. * `set_detach()` -* `set_bone_position(bone, position, rotation)` - * `bone`: string - * `position`: `{x=num, y=num, z=num}` (relative) - * `rotation`: `{x=num, y=num, z=num}` +* `set_bone_position([bone, position, rotation])` + * `bone`: string. Default is `""`, the root bone + * `position`: `{x=num, y=num, z=num}`, relative, `default {x=0, y=0, z=0}` + * `rotation`: `{x=num, y=num, z=num}`, default `{x=0, y=0, z=0}` * `get_bone_position(bone)`: returns position and rotation of the bone * `set_properties(object property table)` * `get_properties()`: returns object property table @@ -6268,15 +6332,21 @@ object you are working with still exists. * `get_nametag_attributes()` * returns a table with the attributes of the nametag of an object * { - color = {a=0..255, r=0..255, g=0..255, b=0..255}, text = "", + color = {a=0..255, r=0..255, g=0..255, b=0..255}, + bgcolor = {a=0..255, r=0..255, g=0..255, b=0..255}, } * `set_nametag_attributes(attributes)` * sets the attributes of the nametag of an object * `attributes`: { - color = ColorSpec, text = "My Nametag", + color = ColorSpec, + -- ^ Text color + bgcolor = ColorSpec or false, + -- ^ Sets background color of nametag + -- `false` will cause the background to be set automatically based on user settings + -- Default: false } #### Lua entity only (no-op for other objects) @@ -6469,6 +6539,8 @@ object you are working with still exists. * `selected_mode` is the mode index to be selected after modes have been changed (0 is the first mode). * `set_sky(sky_parameters)` + * The presence of the function `set_sun`, `set_moon` or `set_stars` indicates + whether `set_sky` accepts this format. Check the legacy format otherwise. * `sky_parameters` is a table with the following optional fields: * `base_color`: ColorSpec, changes fog in "skybox" and "plain". * `type`: Available types: @@ -6510,6 +6582,15 @@ object you are working with still exists. abides by, `"custom"` uses `sun_tint` and `moon_tint`, while `"default"` uses the classic Minetest sun and moon tinting. Will use tonemaps, if set to `"default"`. (default: `"default"`) +* `set_sky(base_color, type, {texture names}, clouds)` + * Deprecated. Use `set_sky(sky_parameters)` + * `base_color`: ColorSpec, defaults to white + * `type`: Available types: + * `"regular"`: Uses 0 textures, `bgcolor` ignored + * `"skybox"`: Uses 6 textures, `bgcolor` used + * `"plain"`: Uses 0 textures, `bgcolor` used + * `clouds`: Boolean for whether clouds appear in front of `"skybox"` or + `"plain"` custom skyboxes (default: `true`) * `get_sky()`: returns base_color, type, table of textures, clouds. * `get_sky_color()`: returns a table with the `sky_color` parameters as in `set_sky`. @@ -6577,8 +6658,8 @@ object you are working with still exists. * `frame_speed` sets the animations frame speed. Default is 30. * `get_local_animation()`: returns idle, walk, dig, walk_while_dig tables and `frame_speed`. -* `set_eye_offset(firstperson, thirdperson)`: defines offset vectors for camera - per player. +* `set_eye_offset([firstperson, thirdperson])`: defines offset vectors for + camera per player. An argument defaults to `{x=0, y=0, z=0}` if unspecified. * in first person view * in third person view (max. values `{x=-10/10,y=-10,15,z=-5/5}`) * `get_eye_offset()`: returns first and third person offsets. @@ -6934,10 +7015,18 @@ Player properties need to be saved manually. -- in mods. nametag = "", - -- By default empty, for players their name is shown if empty + -- The name to display on the head of the object. By default empty. + -- If the object is a player, a nil or empty nametag is replaced by the player's name. + -- For all other objects, a nil or empty string removes the nametag. + -- To hide a nametag, set its color alpha to zero. That will disable it entirely. nametag_color = , - -- Sets color of nametag + -- Sets text color of nametag + + nametag_bgcolor = , + -- Sets background color of nametag + -- `false` will cause the background to be set automatically based on user settings. + -- Default: false infotext = "", -- By default empty, text to be shown when pointed at object @@ -7150,8 +7239,9 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and short_description = "Steel Axe", -- Must not contain new lines. - -- Defaults to the first line of description. - -- See also: `get_short_description` in [`ItemStack`] + -- Defaults to nil. + -- Use an [`ItemStack`] to get the short description, eg: + -- ItemStack(itemname):get_short_description() groups = {}, -- key = name, value = rating; rating = 1..3. @@ -7324,10 +7414,18 @@ Used by `minetest.register_node`. -- If the node has a palette, then this setting only has an effect in -- the inventory and on the wield item. - use_texture_alpha = false, - -- Use texture's alpha channel - -- If this is set to false, the node will be rendered fully opaque - -- regardless of any texture transparency. + use_texture_alpha = ..., + -- Specifies how the texture's alpha channel will be used for rendering. + -- possible values: + -- * "opaque": Node is rendered opaque regardless of alpha channel + -- * "clip": A given pixel is either fully see-through or opaque + -- depending on the alpha channel being below/above 50% in value + -- * "blend": The alpha channel specifies how transparent a given pixel + -- of the rendered node is + -- The default is "opaque" for drawtypes normal, liquid and flowingliquid; + -- "clip" otherwise. + -- If set to a boolean value (deprecated): true either sets it to blend + -- or clip, false sets it to clip or opaque mode depending on the drawtype. palette = "palette.png", -- The node's `param2` is used to select a pixel from the image. @@ -7369,7 +7467,16 @@ Used by `minetest.register_node`. -- If true, liquids flow into and replace this node. -- Warning: making a liquid node 'floodable' will cause problems. - liquidtype = "none", -- "none" / "source" / "flowing" + liquidtype = "none", -- specifies liquid physics + -- * "none": no liquid physics + -- * "source": spawns flowing liquid nodes at all 4 sides and below; + -- recommended drawtype: "liquid". + -- * "flowing": spawned from source, spawns more flowing liquid nodes + -- around it until `liquid_range` is reached; + -- will drain out without a source; + -- recommended drawtype: "flowingliquid". + -- If it's "source" or "flowing" and `liquid_range > 0`, then + -- both `liquid_alternative_*` fields must be specified liquid_alternative_flowing = "", -- Flowing version of source liquid @@ -7390,8 +7497,12 @@ Used by `minetest.register_node`. leveled_max = 127, -- Maximum value for `leveled` (0-127), enforced in -- `minetest.set_node_level` and `minetest.add_node_level`. + -- Values above 124 might causes collision detection issues. - liquid_range = 8, -- Number of flowing nodes around source (max. 8) + liquid_range = 8, + -- Maximum distance that flowing liquid nodes can spread around + -- source on flat land; + -- maximum = 8; set to 0 to disable liquid flow drowning = 0, -- Player will take this amount of damage if no bubbles are left @@ -7417,6 +7528,7 @@ Used by `minetest.register_node`. type = "fixed", fixed = { {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + -- Node box format: see [Node boxes] }, }, -- Custom selection box definition. Multiple boxes can be defined. @@ -7427,13 +7539,12 @@ Used by `minetest.register_node`. type = "fixed", fixed = { {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + -- Node box format: see [Node boxes] }, }, -- Custom collision box definition. Multiple boxes can be defined. -- If "nodebox" drawtype is used and collision_box is nil, then node_box -- definition is used for the collision box. - -- Both of the boxes above are defined as: - -- {xmin, ymin, zmin, xmax, ymax, zmax} in nodes from node center. -- Support maps made in and before January 2012 legacy_facedir_simple = false, @@ -7601,6 +7712,8 @@ Used by `minetest.register_node`. on_dig = function(pos, node, digger), -- default: minetest.node_dig -- By default checks privileges, wears out tool and removes node. + -- return true if the node was dug successfully, false otherwise. + -- Deprecated: returning nil is the same as returning true. on_timer = function(pos, elapsed), -- default: nil @@ -7640,6 +7753,13 @@ Used by `minetest.register_node`. -- intensity: 1.0 = mid range of regular TNT. -- If defined, called when an explosion touches the node, instead of -- removing the node. + + mod_origin = "modname", + -- stores which mod actually registered a node + -- if it can not find a source, returns "??" + -- useful for getting what mod truly registered something + -- example: if a node is registered as ":othermodname:nodename", + -- nodename will show "othermodname", but mod_orgin will say "modname" } Crafting recipes @@ -8329,7 +8449,7 @@ Used by `HTTPApiTable.fetch` and `HTTPApiTable.fetch_async`. url = "http://example.org", timeout = 10, - -- Timeout for connection in seconds. Default is 3 seconds. + -- Timeout for request to be completed in seconds. Default depends on engine settings. method = "GET", "POST", "PUT" or "DELETE" -- The http method to use. Defaults to "GET". diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index 76bebe08b..f4dfff261 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -1,4 +1,4 @@ -Minetest Lua Mainmenu API Reference 5.4.0 +Minetest Lua Mainmenu API Reference 5.5.0 ========================================= Introduction @@ -43,10 +43,14 @@ core.get_max_supp_proto() core.open_url(url) ^ opens the URL in a web browser, returns false on failure. ^ Must begin with http:// or https:// +core.open_dir(path) +^ opens the path in the system file browser/explorer, returns false on failure. +^ Must be an existing directory. core.get_version() (possible in async calls) ^ returns current core version + Filesystem ---------- @@ -63,6 +67,8 @@ core.copy_dir(source,destination,keep_soure) (possible in async calls) ^ destination folder ^ keep_source DEFAULT true --> if set to false source is deleted after copying ^ returns true/false +core.is_dir(path) (possible in async calls) +^ returns true if path is a valid dir core.extract_zip(zipfile,destination) [unzip within path required] ^ zipfile to extract ^ destination folder to extract to @@ -79,6 +85,7 @@ core.get_video_drivers() core.get_mapgen_names([include_hidden=false]) -> table of map generator algorithms registered in the core (possible in async calls) core.get_cache_path() -> path of cache +core.get_temp_path() -> path of temp folder HTTP Requests @@ -197,7 +204,8 @@ core.get_screen_info() display_width = , display_height = , window_width = , - window_height = + window_height = , + render_info = } @@ -207,6 +215,9 @@ Content and Packages Content - an installed mod, modpack, game, or texture pack (txt) Package - content which is downloadable from the content db, may or may not be installed. +* core.get_user_path() (possible in async calls) + * returns path to global user data, + the directory that contains user-provided mods, worlds, games, and texture packs. * core.get_modpath() (possible in async calls) * returns path to global modpath * core.get_clientmodpath() (possible in async calls) @@ -244,32 +255,6 @@ Package - content which is downloadable from the content db, may or may not be i } -Favorites ---------- - -core.get_favorites(location) -> list of favorites (possible in async calls) -^ location: "local" or "online" -^ returns { - [1] = { - clients = , - clients_max = , - version = , - password = , - creative = , - damage = , - pvp = , - description = , - name = , - address =

, - port = - clients_list = - mods = - }, - ... -} -core.delete_favorite(id, location) -> success - - Logging ------- diff --git a/doc/world_format.txt b/doc/world_format.txt index 73a03e5ee..a8a9e463e 100644 --- a/doc/world_format.txt +++ b/doc/world_format.txt @@ -493,19 +493,8 @@ Static objects are persistent freely moving objects in the world. Object types: 1: Test object -2: Item -3: Rat (obsolete) -4: Oerkki (obsolete) -5: Firefly (obsolete) -6: MobV2 (obsolete) 7: LuaEntity -1: Item: - u8 version - version 0: - u16 len - u8[len] itemstring - 7: LuaEntity: u8 compatibility_byte (always 1) u16 len diff --git a/games/devtest/mods/basenodes/init.lua b/games/devtest/mods/basenodes/init.lua index 0cb85d808..2c808c35e 100644 --- a/games/devtest/mods/basenodes/init.lua +++ b/games/devtest/mods/basenodes/init.lua @@ -1,4 +1,4 @@ -local WATER_ALPHA = 160 +local WATER_ALPHA = "^[opacity:" .. 160 local WATER_VISC = 1 local LAVA_VISC = 7 @@ -128,12 +128,12 @@ minetest.register_node("basenodes:water_source", { "Drowning damage: 1", drawtype = "liquid", waving = 3, - tiles = {"default_water.png"}, + tiles = {"default_water.png"..WATER_ALPHA}, special_tiles = { - {name = "default_water.png", backface_culling = false}, - {name = "default_water.png", backface_culling = true}, + {name = "default_water.png"..WATER_ALPHA, backface_culling = false}, + {name = "default_water.png"..WATER_ALPHA, backface_culling = true}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", walkable = false, pointable = false, @@ -156,10 +156,12 @@ minetest.register_node("basenodes:water_flowing", { waving = 3, tiles = {"default_water_flowing.png"}, special_tiles = { - {name = "default_water_flowing.png", backface_culling = false}, - {name = "default_water_flowing.png", backface_culling = false}, + {name = "default_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, + {name = "default_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, @@ -181,12 +183,12 @@ minetest.register_node("basenodes:river_water_source", { "Drowning damage: 1", drawtype = "liquid", waving = 3, - tiles = { "default_river_water.png" }, + tiles = { "default_river_water.png"..WATER_ALPHA }, special_tiles = { - {name = "default_river_water.png", backface_culling = false}, - {name = "default_river_water.png", backface_culling = true}, + {name = "default_river_water.png"..WATER_ALPHA, backface_culling = false}, + {name = "default_river_water.png"..WATER_ALPHA, backface_culling = true}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", walkable = false, pointable = false, @@ -209,12 +211,14 @@ minetest.register_node("basenodes:river_water_flowing", { "Drowning damage: 1", drawtype = "flowingliquid", waving = 3, - tiles = {"default_river_water_flowing.png"}, + tiles = {"default_river_water_flowing.png"..WATER_ALPHA}, special_tiles = { - {name = "default_river_water_flowing.png", backface_culling = false}, - {name = "default_river_water_flowing.png", backface_culling = false}, + {name = "default_river_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, + {name = "default_river_water_flowing.png"..WATER_ALPHA, + backface_culling = false}, }, - alpha = WATER_ALPHA, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, diff --git a/games/devtest/mods/basenodes/textures/default_dirt.png b/games/devtest/mods/basenodes/textures/default_dirt.png index 58670305d..aa75bffb6 100644 Binary files a/games/devtest/mods/basenodes/textures/default_dirt.png and b/games/devtest/mods/basenodes/textures/default_dirt.png differ diff --git a/games/devtest/mods/basenodes/textures/dirt_with_grass/info.txt b/games/devtest/mods/basenodes/textures/dirt_with_grass/info.txt deleted file mode 100644 index 8db21ed9c..000000000 --- a/games/devtest/mods/basenodes/textures/dirt_with_grass/info.txt +++ /dev/null @@ -1,3 +0,0 @@ -This is for testing loading textures from subfolders. -If it works correctly, the default_grass_side.png file in this folder is used but -default_grass.png is not overwritten by the file in this folder. diff --git a/games/devtest/mods/basenodes/textures/info.txt b/games/devtest/mods/basenodes/textures/info.txt new file mode 100644 index 000000000..2d4ef7efa --- /dev/null +++ b/games/devtest/mods/basenodes/textures/info.txt @@ -0,0 +1,7 @@ + +The dirt_with_grass folder is for testing loading textures from subfolders. +If it works correctly, the default_grass_side.png file in the folder is used but +default_grass.png is not overwritten by the file in the folder. + +default_dirt.png should be overwritten by the default_dirt.png in the unittests +mod which depends on basenodes. diff --git a/games/devtest/mods/chest/init.lua b/games/devtest/mods/chest/init.lua index fc92bfdd1..5798c13e7 100644 --- a/games/devtest/mods/chest/init.lua +++ b/games/devtest/mods/chest/init.lua @@ -23,6 +23,18 @@ minetest.register_node("chest:chest", { local inv = meta:get_inventory() return inv:is_empty("main") end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "Allow put: " .. stack:to_string()) + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "Allow take: " .. stack:to_string()) + return stack:get_count() + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "On put: " .. stack:to_string()) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.chat_send_player(player:get_player_name(), "On take: " .. stack:to_string()) + end, }) - - diff --git a/games/devtest/mods/experimental/commands.lua b/games/devtest/mods/experimental/commands.lua index 132b08b0b..e42ae954d 100644 --- a/games/devtest/mods/experimental/commands.lua +++ b/games/devtest/mods/experimental/commands.lua @@ -131,10 +131,11 @@ local function place_nodes(param) p2_max = 63 elseif def.paramtype2 == "leveled" then p2_max = 127 - elseif def.paramtype2 == "degrotate" and def.drawtype == "plantlike" then - p2_max = 179 + elseif def.paramtype2 == "degrotate" and (def.drawtype == "plantlike" or def.drawtype == "mesh") then + p2_max = 239 elseif def.paramtype2 == "colorfacedir" or def.paramtype2 == "colorwallmounted" or + def.paramtype2 == "colordegrotate" or def.paramtype2 == "color" then p2_max = 255 end @@ -143,7 +144,8 @@ local function place_nodes(param) -- Skip undefined param2 values if not ((def.paramtype2 == "meshoptions" and p2 % 8 > 4) or (def.paramtype2 == "colorwallmounted" and p2 % 8 > 5) or - (def.paramtype2 == "colorfacedir" and p2 % 32 > 23)) then + ((def.paramtype2 == "colorfacedir" or def.paramtype2 == "colordegrotate") + and p2 % 32 > 23)) then minetest.set_node(pos, { name = itemstring, param2 = p2 }) nodes_placed = nodes_placed + 1 @@ -215,5 +217,5 @@ minetest.register_chatcommand("test_place_nodes", { }) core.register_on_chatcommand(function(name, command, params) - minetest.log("caught command '"..command.."', issued by '"..name.."'. Parameters: '"..params.."'") + minetest.log("action", "caught command '"..command.."', issued by '"..name.."'. Parameters: '"..params.."'") end) diff --git a/games/devtest/mods/soundstuff/init.lua b/games/devtest/mods/soundstuff/init.lua index 40ad8f562..b263a3f35 100644 --- a/games/devtest/mods/soundstuff/init.lua +++ b/games/devtest/mods/soundstuff/init.lua @@ -60,11 +60,13 @@ minetest.register_node("soundstuff:footstep_liquid", { description = "Liquid Footstep Sound Node", drawtype = "liquid", tiles = { - "soundstuff_node_sound.png^[colorize:#0000FF:127", + "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190", }, special_tiles = { - {name = "soundstuff_node_sound.png^[colorize:#0000FF:127", backface_culling = false}, - {name = "soundstuff_node_sound.png^[colorize:#0000FF:127", backface_culling = true}, + {name = "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190", + backface_culling = false}, + {name = "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190", + backface_culling = true}, }, liquids_pointable = true, liquidtype = "source", @@ -73,7 +75,7 @@ minetest.register_node("soundstuff:footstep_liquid", { liquid_renewable = false, liquid_range = 0, liquid_viscosity = 0, - alpha = 190, + use_texture_alpha = "blend", paramtype = "light", walkable = false, pointable = false, @@ -92,7 +94,6 @@ minetest.register_node("soundstuff:footstep_climbable", { tiles = { "soundstuff_node_climbable.png", }, - alpha = 120, paramtype = "light", sunlight_propagates = true, walkable = false, diff --git a/games/devtest/mods/testentities/callbacks.lua b/games/devtest/mods/testentities/callbacks.lua index 711079f87..320690b39 100644 --- a/games/devtest/mods/testentities/callbacks.lua +++ b/games/devtest/mods/testentities/callbacks.lua @@ -31,6 +31,9 @@ minetest.register_entity("testentities:callback", { on_activate = function(self, staticdata, dtime_s) message("Callback entity: on_activate! pos="..spos(self).."; dtime_s="..dtime_s) end, + on_deactivate = function(self) + message("Callback entity: on_deactivate! pos="..spos(self)) + end, on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir, damage) local name = get_object_name(puncher) message( diff --git a/games/devtest/mods/testentities/visuals.lua b/games/devtest/mods/testentities/visuals.lua index 8848ba49f..e382ec44c 100644 --- a/games/devtest/mods/testentities/visuals.lua +++ b/games/devtest/mods/testentities/visuals.lua @@ -94,3 +94,44 @@ minetest.register_entity("testentities:upright_animated", { self.object:set_sprite({x=0, y=0}, 4, 1.0, false) end, }) + +minetest.register_entity("testentities:nametag", { + initial_properties = { + visual = "sprite", + textures = { "testentities_sprite.png" }, + }, + + on_activate = function(self, staticdata) + if staticdata ~= "" then + local data = minetest.deserialize(staticdata) + self.color = data.color + self.bgcolor = data.bgcolor + else + self.color = { + r = math.random(0, 255), + g = math.random(0, 255), + b = math.random(0, 255), + } + + if math.random(0, 10) > 5 then + self.bgcolor = { + r = math.random(0, 255), + g = math.random(0, 255), + b = math.random(0, 255), + a = math.random(0, 255), + } + end + end + + assert(self.color) + self.object:set_properties({ + nametag = tostring(math.random(1000, 10000)), + nametag_color = self.color, + nametag_bgcolor = self.bgcolor, + }) + end, + + get_staticdata = function(self) + return minetest.serialize({ color = self.color, bgcolor = self.bgcolor }) + end, +}) diff --git a/games/devtest/mods/testfood/init.lua b/games/devtest/mods/testfood/init.lua index a6236ff68..39b121306 100644 --- a/games/devtest/mods/testfood/init.lua +++ b/games/devtest/mods/testfood/init.lua @@ -22,3 +22,10 @@ minetest.register_craftitem("testfood:bad5", { on_use = minetest.item_eat(-5), }) +minetest.register_craftitem("testfood:replace1", { + description = S("Replacing Food (+1)").."\n".. + S("Replaced with 'Good Food (+1)' when eaten"), + inventory_image = "testfood_replace.png", + on_use = minetest.item_eat(1, "testfood:good1"), +}) + diff --git a/games/devtest/mods/testfood/textures/testfood_replace.png b/games/devtest/mods/testfood/textures/testfood_replace.png new file mode 100644 index 000000000..1ef6876e5 Binary files /dev/null and b/games/devtest/mods/testfood/textures/testfood_replace.png differ diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua index 5495896ce..501b5e354 100644 --- a/games/devtest/mods/testformspec/formspec.lua +++ b/games/devtest/mods/testformspec/formspec.lua @@ -33,6 +33,34 @@ local tabheaders_fs = [[ tabheader[8,6;10,1.5;tabs_size2;Height=1.5;1;false;false] ]] +local inv_style_fs = [[ + style_type[list;noclip=true] + list[current_player;main;-0.75,0.75;2,2] + + real_coordinates[false] + list[current_player;main;1.5,0;3,2] + real_coordinates[true] + + real_coordinates[false] + style_type[list;size=1.1;spacing=0.1] + list[current_player;main;5,0;3,2] + real_coordinates[true] + + style_type[list;size=.001;spacing=0] + list[current_player;main;7,3.5;8,4] + + box[3,3.5;1,1;#000000] + box[5,3.5;1,1;#000000] + box[4,4.5;1,1;#000000] + box[3,5.5;1,1;#000000] + box[5,5.5;1,1;#000000] + style_type[list;spacing=.25,.125;size=.75,.875] + list[current_player;main;3,3.5;3,3] + + style_type[list;spacing=0;size=1.1] + list[current_player;main;.5,7;8,4] +]] + local hypertext_basic = [[ Normal test This is a normal text. @@ -199,6 +227,7 @@ local scroll_fs = "box[1,1;8,6;#00aa]".. "scroll_container[1,1;8,6;scrbar;vertical]".. "button[0,1;1,1;lorem;Lorem]".. + "animated_image[0,1;4.5,1;clip_animated_image;testformspec_animation.png;4;100]" .. "button[0,10;1,1;ipsum;Ipsum]".. "pwdfield[2,2;1,1;lorem2;Lorem]".. "list[current_player;main;4,4;1,5;]".. @@ -211,6 +240,8 @@ local scroll_fs = "tooltip[0,11;3,2;Buz;#f00;#000]".. "box[0,11;3,2;#00ff00]".. "hypertext[3,13;3,3;;" .. hypertext_basic .. "]" .. + "hypertext[3,17;3,3;;Hypertext with no scrollbar\\; the scroll container should scroll.]" .. + "textarea[3,21;3,1;textarea;;More scroll within scroll]" .. "container[0,18]".. "box[1,2;3,2;#0a0a]".. "scroll_container[1,2;3,2;scrbar2;horizontal;0.06]".. @@ -310,6 +341,9 @@ local pages = { "size[12,13]real_coordinates[true]" .. "container[0.5,1.5]" .. tabheaders_fs .. "container_end[]", + -- Inv + "size[12,13]real_coordinates[true]" .. inv_style_fs, + -- Animation [[ formspec_version[3] @@ -328,20 +362,51 @@ Number] animated_image[5.5,0.5;5,2;;testformspec_animation.png;4;100] animated_image[5.5,2.75;5,2;;testformspec_animation.jpg;4;100] + ]], + + -- Model + [[ + formspec_version[3] + size[12,13] style[m1;bgcolor=black] - model[0.5,6;4,4;m1;testformspec_character.b3d;testformspec_character.png] - model[5,6;4,4;m2;testformspec_chest.obj;default_chest_top.png,default_chest_top.png,default_chest_side.png,default_chest_side.png,default_chest_front.png,default_chest_inside.png;30,1;true;true] + style[m2;bgcolor=black] + label[5,1;all defaults] + label[5,5.1;angle = 0, 180 +continuous = false +mouse control = false +frame loop range = 0,30] + label[5,9.2;continuous = true +mouse control = true] + model[0.5,0.1;4,4;m1;testformspec_character.b3d;testformspec_character.png] + model[0.5,4.2;4,4;m2;testformspec_character.b3d;testformspec_character.png;0,180;false;false;0,30] + model[0.5,8.3;4,4;m3;testformspec_chest.obj;default_chest_top.png,default_chest_top.png,default_chest_side.png,default_chest_side.png,default_chest_front.png,default_chest_inside.png;30,1;true;true] ]], -- Scroll containers "formspec_version[3]size[12,13]" .. scroll_fs, + + -- Sound + [[ + formspec_version[3] + size[12,13] + style[snd_btn;sound=soundstuff_mono] + style[snd_ibtn;sound=soundstuff_mono] + style[snd_drp;sound=soundstuff_mono] + style[snd_chk;sound=soundstuff_mono] + style[snd_tab;sound=soundstuff_mono] + button[0.5,0.5;2,1;snd_btn;Sound] + image_button[0.5,2;2,1;testformspec_item.png;snd_ibtn;Sound] + dropdown[0.5,4;4;snd_drp;Sound,Two,Three;] + checkbox[0.5,5.5.5;snd_chk;Sound;] + tabheader[0.5,7;8,0.65;snd_tab;Soundtab1,Soundtab2,Soundtab3;1;false;false] + ]], } local function show_test_formspec(pname, page_id) page_id = page_id or 2 - local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Anim,ScrollC;" .. page_id .. ";false;false]" + local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Invs,Anim,Model,ScrollC,Sound;" .. page_id .. ";false;false]" minetest.show_formspec(pname, "testformspec:formspec", fs) end diff --git a/games/devtest/mods/testnodes/drawtypes.lua b/games/devtest/mods/testnodes/drawtypes.lua index b3ab2b322..2bc7ec2e3 100644 --- a/games/devtest/mods/testnodes/drawtypes.lua +++ b/games/devtest/mods/testnodes/drawtypes.lua @@ -15,22 +15,6 @@ testing this node easier and more convenient. local S = minetest.get_translator("testnodes") --- If set to true, will show an inventory image for nodes that have no inventory image as of Minetest 5.1.0. --- This is due to . --- This is only added to make the items more visible to avoid confusion, but you will no longer see --- the default inventory images for these items. When you want to test the default inventory image of drawtypes, --- this should be turned off. --- TODO: Remove support for fallback inventory image as soon #9209 is fixed. -local SHOW_FALLBACK_IMAGE = minetest.settings:get_bool("testnodes_show_fallback_image", false) - -local fallback_image = function(img) - if SHOW_FALLBACK_IMAGE then - return img - else - return nil - end -end - -- A regular cube minetest.register_node("testnodes:normal", { description = S("Normal Drawtype Test Node"), @@ -145,20 +129,15 @@ minetest.register_node("testnodes:fencelike", { }) minetest.register_node("testnodes:torchlike", { - description = S("Torchlike Drawtype Test Node"), + description = S("Floor Torchlike Drawtype Test Node"), drawtype = "torchlike", paramtype = "light", - tiles = { - "testnodes_torchlike_floor.png", - "testnodes_torchlike_ceiling.png", - "testnodes_torchlike_wall.png", - }, + tiles = { "testnodes_torchlike_floor.png^[colorize:#FF0000:64" }, walkable = false, sunlight_propagates = true, groups = { dig_immediate = 3 }, - inventory_image = fallback_image("testnodes_torchlike_floor.png"), }) minetest.register_node("testnodes:torchlike_wallmounted", { @@ -176,12 +155,22 @@ minetest.register_node("testnodes:torchlike_wallmounted", { walkable = false, sunlight_propagates = true, groups = { dig_immediate = 3 }, - inventory_image = fallback_image("testnodes_torchlike_floor.png"), +}) + +minetest.register_node("testnodes:signlike", { + description = S("Floor Signlike Drawtype Test Node"), + drawtype = "signlike", + paramtype = "light", + tiles = { "testnodes_signlike.png^[colorize:#FF0000:64" }, + + + walkable = false, + groups = { dig_immediate = 3 }, + sunlight_propagates = true, }) - -minetest.register_node("testnodes:signlike", { +minetest.register_node("testnodes:signlike_wallmounted", { description = S("Wallmounted Signlike Drawtype Test Node"), drawtype = "signlike", paramtype = "light", @@ -192,7 +181,6 @@ minetest.register_node("testnodes:signlike", { walkable = false, groups = { dig_immediate = 3 }, sunlight_propagates = true, - inventory_image = fallback_image("testnodes_signlike.png"), }) minetest.register_node("testnodes:plantlike", { @@ -223,6 +211,30 @@ minetest.register_node("testnodes:plantlike_waving", { -- param2 will rotate +local function rotate_on_rightclick(pos, node, clicker) + local def = minetest.registered_nodes[node.name] + local aux1 = clicker:get_player_control().aux1 + + local deg, deg_max + local color, color_mult = 0, 0 + if def.paramtype2 == "degrotate" then + deg = node.param2 + deg_max = 240 + elseif def.paramtype2 == "colordegrotate" then + -- MSB [3x color, 5x rotation] LSB + deg = node.param2 % 2^5 + deg_max = 24 + color_mult = 2^5 + color = math.floor(node.param2 / color_mult) + end + + deg = (deg + (aux1 and 10 or 1)) % deg_max + node.param2 = color * color_mult + deg + minetest.swap_node(pos, node) + minetest.chat_send_player(clicker:get_player_name(), + "Rotation is now " .. deg .. " / " .. deg_max) +end + minetest.register_node("testnodes:plantlike_degrotate", { description = S("Degrotate Plantlike Drawtype Test Node"), drawtype = "plantlike", @@ -230,12 +242,43 @@ minetest.register_node("testnodes:plantlike_degrotate", { paramtype2 = "degrotate", tiles = { "testnodes_plantlike_degrotate.png" }, - + on_rightclick = rotate_on_rightclick, + place_param2 = 7, walkable = false, sunlight_propagates = true, groups = { dig_immediate = 3 }, }) +minetest.register_node("testnodes:mesh_degrotate", { + description = S("Degrotate Mesh Drawtype Test Node"), + drawtype = "mesh", + paramtype = "light", + paramtype2 = "degrotate", + mesh = "testnodes_ocorner.obj", + tiles = { "testnodes_mesh_stripes2.png" }, + + on_rightclick = rotate_on_rightclick, + place_param2 = 10, -- 15° + sunlight_propagates = true, + groups = { dig_immediate = 3 }, +}) + +minetest.register_node("testnodes:mesh_colordegrotate", { + description = S("Color Degrotate Mesh Drawtype Test Node"), + drawtype = "mesh", + paramtype = "light", + paramtype2 = "colordegrotate", + palette = "testnodes_palette_facedir.png", + mesh = "testnodes_ocorner.obj", + tiles = { "testnodes_mesh_stripes3.png" }, + + on_rightclick = rotate_on_rightclick, + -- color index 1, 1 step (=15°) rotated + place_param2 = 1 * 2^5 + 1, + sunlight_propagates = true, + groups = { dig_immediate = 3 }, +}) + -- param2 will change height minetest.register_node("testnodes:plantlike_leveled", { description = S("Leveled Plantlike Drawtype Test Node"), @@ -350,68 +393,72 @@ minetest.register_node("testnodes:plantlike_rooted_degrotate", { }) -- Demonstrative liquid nodes, source and flowing form. -minetest.register_node("testnodes:liquid", { - description = S("Source Liquid Drawtype Test Node"), - drawtype = "liquid", - paramtype = "light", - tiles = { - "testnodes_liquidsource.png", - }, - special_tiles = { - {name="testnodes_liquidsource.png", backface_culling=false}, - {name="testnodes_liquidsource.png", backface_culling=true}, - }, - use_texture_alpha = true, +-- DRAWTYPE ONLY, NO LIQUID PHYSICS! +-- Liquid ranges 0 to 8 +for r = 0, 8 do + minetest.register_node("testnodes:liquid_"..r, { + description = S("Source Liquid Drawtype Test Node, Range @1", r), + drawtype = "liquid", + paramtype = "light", + tiles = { + "testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", + }, + special_tiles = { + {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, + {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=true}, + }, + use_texture_alpha = "blend", - walkable = false, - liquidtype = "source", - liquid_range = 1, - liquid_viscosity = 0, - liquid_alternative_flowing = "testnodes:liquid_flowing", - liquid_alternative_source = "testnodes:liquid", - groups = { dig_immediate = 3 }, -}) -minetest.register_node("testnodes:liquid_flowing", { - description = S("Flowing Liquid Drawtype Test Node"), - drawtype = "flowingliquid", - paramtype = "light", - paramtype2 = "flowingliquid", - tiles = { - "testnodes_liquidflowing.png", - }, - special_tiles = { - {name="testnodes_liquidflowing.png", backface_culling=false}, - {name="testnodes_liquidflowing.png", backface_culling=false}, - }, - use_texture_alpha = true, + walkable = false, + liquid_range = r, + liquid_viscosity = 0, + liquid_alternative_flowing = "testnodes:liquid_flowing_"..r, + liquid_alternative_source = "testnodes:liquid_"..r, + groups = { dig_immediate = 3 }, + }) + minetest.register_node("testnodes:liquid_flowing_"..r, { + description = S("Flowing Liquid Drawtype Test Node, Range @1", r), + drawtype = "flowingliquid", + paramtype = "light", + paramtype2 = "flowingliquid", + tiles = { + "testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", + }, + special_tiles = { + {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, + {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false}, + }, + use_texture_alpha = "blend", - walkable = false, - liquidtype = "flowing", - liquid_range = 1, - liquid_viscosity = 0, - liquid_alternative_flowing = "testnodes:liquid_flowing", - liquid_alternative_source = "testnodes:liquid", - groups = { dig_immediate = 3 }, -}) + walkable = false, + liquid_range = r, + liquid_viscosity = 0, + liquid_alternative_flowing = "testnodes:liquid_flowing_"..r, + liquid_alternative_source = "testnodes:liquid_"..r, + groups = { dig_immediate = 3 }, + }) + +end + +-- Waving liquid test (drawtype only) minetest.register_node("testnodes:liquid_waving", { description = S("Waving Source Liquid Drawtype Test Node"), drawtype = "liquid", paramtype = "light", tiles = { - "testnodes_liquidsource.png^[brighten", + "testnodes_liquidsource.png^[colorize:#0000FF:127", }, special_tiles = { - {name="testnodes_liquidsource.png^[brighten", backface_culling=false}, - {name="testnodes_liquidsource.png^[brighten", backface_culling=true}, + {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=false}, + {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=true}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", waving = 3, walkable = false, - liquidtype = "source", liquid_range = 1, liquid_viscosity = 0, liquid_alternative_flowing = "testnodes:liquid_flowing_waving", @@ -424,18 +471,17 @@ minetest.register_node("testnodes:liquid_flowing_waving", { paramtype = "light", paramtype2 = "flowingliquid", tiles = { - "testnodes_liquidflowing.png^[brighten", + "testnodes_liquidflowing.png^[colorize:#0000FF:127", }, special_tiles = { - {name="testnodes_liquidflowing.png^[brighten", backface_culling=false}, - {name="testnodes_liquidflowing.png^[brighten", backface_culling=false}, + {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, + {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", waving = 3, walkable = false, - liquidtype = "flowing", liquid_range = 1, liquid_viscosity = 0, liquid_alternative_flowing = "testnodes:liquid_flowing_waving", @@ -443,8 +489,6 @@ minetest.register_node("testnodes:liquid_flowing_waving", { groups = { dig_immediate = 3 }, }) - - -- Invisible node minetest.register_node("testnodes:airlike", { description = S("Airlike Drawtype Test Node"), @@ -455,7 +499,6 @@ minetest.register_node("testnodes:airlike", { walkable = false, groups = { dig_immediate = 3 }, sunlight_propagates = true, - inventory_image = fallback_image("testnodes_airlike.png"), }) -- param2 changes liquid height @@ -548,7 +591,7 @@ scale("plantlike", scale("torchlike_wallmounted", S("Double-sized Wallmounted Torchlike Drawtype Test Node"), S("Half-sized Wallmounted Torchlike Drawtype Test Node")) -scale("signlike", +scale("signlike_wallmounted", S("Double-sized Wallmounted Signlike Drawtype Test Node"), S("Half-sized Wallmounted Signlike Drawtype Test Node")) scale("firelike", diff --git a/games/devtest/mods/testnodes/liquids.lua b/games/devtest/mods/testnodes/liquids.lua index e316782ad..3d2ea17f5 100644 --- a/games/devtest/mods/testnodes/liquids.lua +++ b/games/devtest/mods/testnodes/liquids.lua @@ -9,11 +9,9 @@ for d=0, 8 do {name = "testnodes_liquidsource_r"..d..".png", backface_culling = false}, {name = "testnodes_liquidsource_r"..d..".png", backface_culling = true}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "source", @@ -30,12 +28,10 @@ for d=0, 8 do {name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false}, {name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "flowing", @@ -53,11 +49,9 @@ for d=0, 8 do {name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = false}, {name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = true}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "source", @@ -74,12 +68,10 @@ for d=0, 8 do {name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false}, {name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false}, }, - alpha = 192, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", walkable = false, - pointable = false, - diggable = false, buildable_to = true, is_ground_content = false, liquidtype = "flowing", diff --git a/games/devtest/mods/testnodes/nodeboxes.lua b/games/devtest/mods/testnodes/nodeboxes.lua index ebd858337..7e966fdce 100644 --- a/games/devtest/mods/testnodes/nodeboxes.lua +++ b/games/devtest/mods/testnodes/nodeboxes.lua @@ -18,7 +18,7 @@ minetest.register_node("testnodes:nodebox_fixed", { -- 50% higher than a regular node minetest.register_node("testnodes:nodebox_overhigh", { - description = S("Overhigh Nodebox Test Node"), + description = S("+50% high Nodebox Test Node"), tiles = {"testnodes_nodebox.png"}, drawtype = "nodebox", paramtype = "light", @@ -30,15 +30,16 @@ minetest.register_node("testnodes:nodebox_overhigh", { groups = {dig_immediate=3}, }) --- 100% higher than a regular node +-- 95% higher than a regular node minetest.register_node("testnodes:nodebox_overhigh2", { - description = S("Double-height Nodebox Test Node"), + description = S("+95% high Nodebox Test Node"), tiles = {"testnodes_nodebox.png"}, drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5}, + -- Y max: more is possible, but glitchy + fixed = {-0.5, -0.5, -0.5, 0.5, 1.45, 0.5}, }, groups = {dig_immediate=3}, diff --git a/games/devtest/mods/testnodes/properties.lua b/games/devtest/mods/testnodes/properties.lua index 01846a5f0..a52cd1d6f 100644 --- a/games/devtest/mods/testnodes/properties.lua +++ b/games/devtest/mods/testnodes/properties.lua @@ -114,11 +114,10 @@ minetest.register_node("testnodes:liquid_nojump", { {name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = false}, {name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = true}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", paramtype = "light", pointable = false, liquids_pointable = true, - diggable = false, buildable_to = true, is_ground_content = false, post_effect_color = {a = 70, r = 255, g = 0, b = 200}, @@ -143,12 +142,11 @@ minetest.register_node("testnodes:liquidflowing_nojump", { {name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false}, {name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", paramtype = "light", paramtype2 = "flowingliquid", pointable = false, liquids_pointable = true, - diggable = false, buildable_to = true, is_ground_content = false, post_effect_color = {a = 70, r = 255, g = 0, b = 200}, diff --git a/games/devtest/mods/testnodes/settingtypes.txt b/games/devtest/mods/testnodes/settingtypes.txt deleted file mode 100644 index 7f753bf3e..000000000 --- a/games/devtest/mods/testnodes/settingtypes.txt +++ /dev/null @@ -1,4 +0,0 @@ -# If set to true, will show an inventory image for nodes that have no inventory image as of Minetest 5.1.0. -# This is due to . -# This is only added to make the items more visible to avoid confusion, but you will no longer see the default inventory images for these items. When you want to test the default inventory image of drawtypes, this should be turned off. -testnodes_show_fallback_image (Use fallback inventory images) bool false diff --git a/games/devtest/mods/testnodes/textures.lua b/games/devtest/mods/testnodes/textures.lua index e0724c229..f6e6a0c2a 100644 --- a/games/devtest/mods/testnodes/textures.lua +++ b/games/devtest/mods/testnodes/textures.lua @@ -46,77 +46,22 @@ for a=1,#alphas do tiles = { "testnodes_alpha"..alpha..".png", }, - use_texture_alpha = true, + use_texture_alpha = "blend", groups = { dig_immediate = 3 }, }) - -- Transparency set via "alpha" parameter + -- Transparency set via texture modifier minetest.register_node("testnodes:alpha_"..alpha, { description = S("Alpha Test Node (@1)", alpha), - -- It seems that only the liquid drawtype supports the alpha parameter - drawtype = "liquid", + drawtype = "glasslike", paramtype = "light", tiles = { - "testnodes_alpha.png", + "testnodes_alpha.png^[opacity:" .. alpha, }, - alpha = alpha, + use_texture_alpha = "blend", - - liquidtype = "source", - liquid_range = 0, - liquid_viscosity = 0, - liquid_alternative_source = "testnodes:alpha_"..alpha, - liquid_alternative_flowing = "testnodes:alpha_"..alpha, groups = { dig_immediate = 3 }, }) end - --- Bumpmapping and Parallax Occlusion - --- This node has a normal map which corresponds to a pyramid with sides tilted --- by an angle of 45°, i.e. the normal map contains four vectors which point --- diagonally away from the surface (e.g. (0.7, 0.7, 0)), --- and the heights in the height map linearly increase towards the centre, --- so that the surface corresponds to a simple pyramid. --- The node can help to determine if e.g. tangent space transformations work --- correctly. --- If, for example, the light comes from above, then the (tilted) pyramids --- should look like they're lit from this light direction on all node faces. --- The white albedo texture has small black indicators which can be used to see --- how it is transformed ingame (and thus see if there's rotation around the --- normal vector). -minetest.register_node("testnodes:height_pyramid", { - description = "Bumpmapping and Parallax Occlusion Tester (height pyramid)", - tiles = {"testnodes_height_pyramid.png"}, - groups = {dig_immediate = 3}, -}) - --- The stairs nodes should help to validate if shading works correctly for --- rotated nodes (which have rotated textures). -stairs.register_stair_and_slab("height_pyramid", "experimantal:height_pyramid", - {dig_immediate = 3}, - {"testnodes_height_pyramid.png"}, - "Bumpmapping and Parallax Occlusion Tester Stair (height pyramid)", - "Bumpmapping and Parallax Occlusion Tester Slab (height pyramid)") - --- This node has a simple heightmap for parallax occlusion testing and flat --- normalmap. --- When parallax occlusion is enabled, the yellow scrawl should stick out of --- the texture when viewed at an angle. -minetest.register_node("testnodes:parallax_extruded", { - description = "Parallax Occlusion Tester", - tiles = {"testnodes_parallax_extruded.png"}, - groups = {dig_immediate = 3}, -}) - --- Analogously to the height pyramid stairs nodes, --- these nodes should help to validate if parallax occlusion works correctly for --- rotated nodes (which have rotated textures). -stairs.register_stair_and_slab("parallax_extruded", - "experimantal:parallax_extruded", - {dig_immediate = 3}, - {"testnodes_parallax_extruded.png"}, - "Parallax Occlusion Tester Stair", - "Parallax Occlusion Tester Slab") diff --git a/games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png b/games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png deleted file mode 100644 index 8c787b740..000000000 Binary files a/games/devtest/mods/testnodes/textures/testnodes_height_pyramid.png and /dev/null differ diff --git a/games/devtest/mods/testnodes/textures/testnodes_height_pyramid_normal.png b/games/devtest/mods/testnodes/textures/testnodes_height_pyramid_normal.png deleted file mode 100644 index 5ab7865f2..000000000 Binary files a/games/devtest/mods/testnodes/textures/testnodes_height_pyramid_normal.png and /dev/null differ diff --git a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png b/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png deleted file mode 100644 index 7e1c32398..000000000 Binary files a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded.png and /dev/null differ diff --git a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png b/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png deleted file mode 100644 index b134699d0..000000000 Binary files a/games/devtest/mods/testnodes/textures/testnodes_parallax_extruded_normal.png and /dev/null differ diff --git a/games/devtest/mods/testtools/README.md b/games/devtest/mods/testtools/README.md index 9cfe29ea4..a1eb95ed7 100644 --- a/games/devtest/mods/testtools/README.md +++ b/games/devtest/mods/testtools/README.md @@ -33,6 +33,13 @@ Usage: * Punch node: Make it fall * Place: Try to teleport up to 2 units upwards, then make it fall +## Node Meta Editor +Edit and view metadata of nodes. + +Usage: + +* Punch: Open node metadata editor + ## Entity Rotator Changes the entity rotation (with `set_rotation`). @@ -90,6 +97,13 @@ Usage: * Place: Increase move distance * Sneak+place: Decrease move distance +## Children Getter +Shows list of objects that are attached to an object (aka "children") in chat. + +Usage: +* Punch object: Show children of punched object +* Punch air: Show your own children + ## Entity Visual Scaler Change visual size of entities @@ -97,3 +111,10 @@ Usage: * Punch entity to increase visual size * Sneak+punch entity to decrease visual size + +## Light Tool +Show light level of node. + +Usage: +* Punch: Show light info of node in front of the punched node's side +* Place: Show light info of the node that you touched diff --git a/games/devtest/mods/testtools/init.lua b/games/devtest/mods/testtools/init.lua index d578b264a..1041acdeb 100644 --- a/games/devtest/mods/testtools/init.lua +++ b/games/devtest/mods/testtools/init.lua @@ -3,8 +3,6 @@ local F = minetest.formspec_escape dofile(minetest.get_modpath("testtools") .. "/light.lua") --- TODO: Add a Node Metadata tool - minetest.register_tool("testtools:param2tool", { description = S("Param2 Tool") .."\n".. S("Modify param2 value of nodes") .."\n".. @@ -111,25 +109,6 @@ minetest.register_tool("testtools:node_setter", { end, }) -minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname == "testtools:node_setter" then - local playername = player:get_player_name() - local witem = player:get_wielded_item() - if witem:get_name() == "testtools:node_setter" then - if fields.nodename and fields.param2 then - local param2 = tonumber(fields.param2) - if not param2 then - return - end - local meta = witem:get_meta() - meta:set_string("node", fields.nodename) - meta:set_int("node_param2", param2) - player:set_wielded_item(witem) - end - end - end -end) - minetest.register_tool("testtools:remover", { description = S("Remover") .."\n".. S("Punch: Remove pointed node or object"), @@ -634,6 +613,54 @@ minetest.register_tool("testtools:object_attacher", { end, }) +local function print_object(obj) + if obj:is_player() then + return "player '"..obj:get_player_name().."'" + elseif obj:get_luaentity() then + return "LuaEntity '"..obj:get_luaentity().name.."'" + else + return "object" + end +end + +minetest.register_tool("testtools:children_getter", { + description = S("Children Getter") .."\n".. + S("Shows list of objects attached to object") .."\n".. + S("Punch object to show its 'children'") .."\n".. + S("Punch air to show your own 'children'"), + inventory_image = "testtools_children_getter.png", + groups = { testtool = 1, disable_repair = 1 }, + on_use = function(itemstack, user, pointed_thing) + if user and user:is_player() then + local name = user:get_player_name() + local selected_object + local self_name + if pointed_thing.type == "object" then + selected_object = pointed_thing.ref + elseif pointed_thing.type == "nothing" then + selected_object = user + else + return + end + self_name = print_object(selected_object) + local children = selected_object:get_children() + local ret = "" + for c=1, #children do + ret = ret .. "* " .. print_object(children[c]) + if c < #children then + ret = ret .. "\n" + end + end + if ret == "" then + ret = S("No children attached to @1.", self_name) + else + ret = S("Children of @1:", self_name) .. "\n" .. ret + end + minetest.chat_send_player(user:get_player_name(), ret) + end + end, +}) + -- Use loadstring to parse param as a Lua value local function use_loadstring(param, player) -- For security reasons, require 'server' priv, just in case @@ -666,6 +693,68 @@ local function use_loadstring(param, player) return true, errOrResult end +-- Node Meta Editor +local node_meta_posses = {} +local node_meta_latest_keylist = {} + +local function show_node_meta_formspec(user, pos, key, value, keylist) + local textlist + if keylist then + textlist = "textlist[0,0.5;2.5,6.5;keylist;"..keylist.."]" + else + textlist = "" + end + minetest.show_formspec(user:get_player_name(), + "testtools:node_meta_editor", + "size[15,9]".. + "label[0,0;"..F(S("Current keys:")).."]".. + textlist.. + "field[3,0.5;12,1;key;"..F(S("Key"))..";"..F(key).."]".. + "textarea[3,1.5;12,6;value;"..F(S("Value (use empty value to delete key)"))..";"..F(value).."]".. + "button[0,8;3,1;get;"..F(S("Get value")).."]".. + "button[4,8;3,1;set;"..F(S("Set value")).."]".. + "label[0,7.2;"..F(S("pos = @1", minetest.pos_to_string(pos))).."]") +end + +local function get_node_meta_keylist(meta, playername, escaped) + local keys = {} + local ekeys = {} + local mtable = meta:to_table() + for k,_ in pairs(mtable.fields) do + table.insert(keys, k) + if escaped then + table.insert(ekeys, F(k)) + else + table.insert(ekeys, k) + end + end + if playername then + node_meta_latest_keylist[playername] = keys + end + return table.concat(ekeys, ",") +end + +minetest.register_tool("testtools:node_meta_editor", { + description = S("Node Meta Editor") .. "\n" .. + S("Place: Edit node metadata"), + inventory_image = "testtools_node_meta_editor.png", + groups = { testtool = 1, disable_repair = 1 }, + on_place = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + if not user:is_player() then + return itemstack + end + local pos = pointed_thing.under + node_meta_posses[user:get_player_name()] = pos + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + show_node_meta_formspec(user, pos, "", "", get_node_meta_keylist(meta, user:get_player_name(), true)) + return itemstack + end, +}) + minetest.register_on_player_receive_fields(function(player, formname, fields) if not (player and player:is_player()) then return @@ -728,5 +817,70 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) editor_formspec(name, selected_objects[name], prop_to_string(props[key]), sel) return end + elseif formname == "testtools:node_setter" then + local playername = player:get_player_name() + local witem = player:get_wielded_item() + if witem:get_name() == "testtools:node_setter" then + if fields.nodename and fields.param2 then + local param2 = tonumber(fields.param2) + if not param2 then + return + end + local meta = witem:get_meta() + meta:set_string("node", fields.nodename) + meta:set_int("node_param2", param2) + player:set_wielded_item(witem) + end + end + elseif formname == "testtools:node_meta_editor" then + local name = player:get_player_name() + local pos = node_meta_posses[name] + if fields.keylist then + local evnt = minetest.explode_textlist_event(fields.keylist) + if evnt.type == "DCL" or evnt.type == "CHG" then + local keylist_table = node_meta_latest_keylist[name] + if not pos then + return + end + local meta = minetest.get_meta(pos) + if not keylist_table then + return + end + if #keylist_table == 0 then + return + end + local key = keylist_table[evnt.index] + local value = meta:get_string(key) + local keylist_escaped = {} + for k,v in pairs(keylist_table) do + keylist_escaped[k] = F(v) + end + local keylist = table.concat(keylist_escaped, ",") + show_node_meta_formspec(player, pos, key, value, keylist) + return + end + elseif fields.key and fields.key ~= "" and fields.value then + if not pos then + return + end + local meta = minetest.get_meta(pos) + if fields.get then + local value = meta:get_string(fields.key) + show_node_meta_formspec(player, pos, fields.key, value, + get_node_meta_keylist(meta, name, true)) + return + elseif fields.set then + meta:set_string(fields.key, fields.value) + show_node_meta_formspec(player, pos, fields.key, fields.value, + get_node_meta_keylist(meta, name, true)) + return + end + end end end) + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + node_meta_latest_keylist[name] = nil + node_meta_posses[name] = nil +end) diff --git a/games/devtest/mods/testtools/light.lua b/games/devtest/mods/testtools/light.lua index a9458ca6b..afca9a489 100644 --- a/games/devtest/mods/testtools/light.lua +++ b/games/devtest/mods/testtools/light.lua @@ -1,22 +1,37 @@ local S = minetest.get_translator("testtools") -minetest.register_tool("testtools:lighttool", { - description = S("Light tool"), - inventory_image = "testtools_lighttool.png", - groups = { testtool = 1, disable_repair = 1 }, - on_use = function(itemstack, user, pointed_thing) - local pos = pointed_thing.above +local function get_func(is_place) + return function(itemstack, user, pointed_thing) + local pos + if is_place then + pos = pointed_thing.under + else + pos = pointed_thing.above + end if pointed_thing.type ~= "node" or not pos then return end local node = minetest.get_node(pos) + local pstr = minetest.pos_to_string(pos) local time = minetest.get_timeofday() local sunlight = minetest.get_natural_light(pos) local artificial = minetest.get_artificial_light(node.param1) - local message = ("param1 0x%02x | time %.5f | sunlight %d | artificial %d") - :format(node.param1, time, sunlight, artificial) + local message = ("pos=%s | param1=0x%02x | " .. + "sunlight=%d | artificial=%d | timeofday=%.5f" ) + :format(pstr, node.param1, sunlight, artificial, time) minetest.chat_send_player(user:get_player_name(), message) end +end + +minetest.register_tool("testtools:lighttool", { + description = S("Light Tool") .. "\n" .. + S("Show light values of node") .. "\n" .. + S("Punch: Light of node above touched node") .. "\n" .. + S("Place: Light of touched node itself"), + inventory_image = "testtools_lighttool.png", + groups = { testtool = 1, disable_repair = 1 }, + on_use = get_func(false), + on_place = get_func(true), }) diff --git a/games/devtest/mods/testtools/textures/testtools_children_getter.png b/games/devtest/mods/testtools/textures/testtools_children_getter.png new file mode 100644 index 000000000..b7fa34025 Binary files /dev/null and b/games/devtest/mods/testtools/textures/testtools_children_getter.png differ diff --git a/games/devtest/mods/testtools/textures/testtools_node_meta_editor.png b/games/devtest/mods/testtools/textures/testtools_node_meta_editor.png new file mode 100644 index 000000000..89eafd65c Binary files /dev/null and b/games/devtest/mods/testtools/textures/testtools_node_meta_editor.png differ diff --git a/games/devtest/mods/unittests/itemdescription.lua b/games/devtest/mods/unittests/itemdescription.lua index 1d0826545..d6ee6551a 100644 --- a/games/devtest/mods/unittests/itemdescription.lua +++ b/games/devtest/mods/unittests/itemdescription.lua @@ -26,15 +26,22 @@ minetest.register_chatcommand("item_description", { }) function unittests.test_short_desc() + local function get_short_description(item) + return ItemStack(item):get_short_description() + end + local stack = ItemStack("unittests:colorful_pick") assert(stack:get_short_description() == "Colorful Pickaxe") - assert(stack:get_short_description() == minetest.registered_items["unittests:colorful_pick"].short_description) + assert(get_short_description("unittests:colorful_pick") == "Colorful Pickaxe") + assert(minetest.registered_items["unittests:colorful_pick"].short_description == nil) assert(stack:get_description() == full_description) assert(stack:get_description() == minetest.registered_items["unittests:colorful_pick"].description) stack:get_meta():set_string("description", "Hello World") - assert(stack:get_short_description() == "Colorful Pickaxe") + assert(stack:get_short_description() == "Hello World") assert(stack:get_description() == "Hello World") + assert(get_short_description(stack) == "Hello World") + assert(get_short_description("unittests:colorful_pick") == "Colorful Pickaxe") stack:get_meta():set_string("short_description", "Foo Bar") assert(stack:get_short_description() == "Foo Bar") diff --git a/games/devtest/mods/unittests/mod.conf b/games/devtest/mods/unittests/mod.conf index 0d5e3c959..fa94e01a6 100644 --- a/games/devtest/mods/unittests/mod.conf +++ b/games/devtest/mods/unittests/mod.conf @@ -1,2 +1,3 @@ name = unittests description = Adds automated unit tests for the engine +depends = basenodes diff --git a/games/devtest/mods/unittests/textures/default_dirt.png b/games/devtest/mods/unittests/textures/default_dirt.png new file mode 100644 index 000000000..58670305d Binary files /dev/null and b/games/devtest/mods/unittests/textures/default_dirt.png differ diff --git a/games/devtest/settingtypes.txt b/games/devtest/settingtypes.txt index 40ee5845b..c4365643e 100644 --- a/games/devtest/settingtypes.txt +++ b/games/devtest/settingtypes.txt @@ -30,8 +30,3 @@ devtest_dungeon_mossycobble (Generate mossy cobblestone) bool false # If enabled, some very basic biomes will be registered. devtest_register_biomes (Register biomes) bool true - -# If set to true, will show an inventory image for nodes that have no inventory image as of Minetest 5.1.0. -# This is due to . -# This is only added to make the items more visible to avoid confusion, but you will no longer see the default inventory images for these items. When you want to test the default inventory image of drawtypes, this should be turned off. -testnodes_show_fallback_image (Use fallback inventory images) bool false diff --git a/lib/lua/CMakeLists.txt b/lib/lua/CMakeLists.txt index 119dd6302..5d0dc0f70 100644 --- a/lib/lua/CMakeLists.txt +++ b/lib/lua/CMakeLists.txt @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 2.4 FATAL_ERROR) - project(lua C) set(LUA_VERSION_MAJOR 5) @@ -15,9 +13,8 @@ set(LIBS) if(APPLE) set(DEFAULT_POSIX TRUE) - set(DEFAULT_DLOPEN ON) - # use this on Mac OS X 10.3- - option(LUA_USE_MACOSX "Mac OS X 10.3-" OFF) + set(DEFAULT_DLOPEN OFF) + set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX") elseif(UNIX OR CYGWIN) set(DEFAULT_POSIX TRUE) elseif(WIN32) @@ -32,12 +29,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(DEFAULT_DLOPEN ON) endif() -# For "Mac OS X 10.3-" -if(LUA_USE_MACOSX) - set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX") - set(LUA_USE_DLOPEN FALSE) -endif(LUA_USE_MACOSX) - option(LUA_USE_DLOPEN "Enable dlopen support." ${DEFAULT_DLOPEN}) mark_as_advanced(LUA_USE_DLOPEN) diff --git a/minetest.conf.example b/minetest.conf.example index 6b315b6ea..6343c8234 100644 --- a/minetest.conf.example +++ b/minetest.conf.example @@ -75,10 +75,10 @@ # type: bool # always_fly_fast = true -# The time in seconds it takes between repeated right clicks when holding the right -# mouse button. +# The time in seconds it takes between repeated node placements when holding +# the place button. # type: float min: 0.001 -# repeat_rightclick_time = 0.25 +# repeat_place_time = 0.25 # Automatically jump up single-node obstacles. # type: bool @@ -129,6 +129,10 @@ # type: float min: 0.001 # repeat_joystick_button_time = 0.17 +# The deadzone of the joystick +# type: int +# joystick_deadzone = 2048 + # The sensitivity of the joystick axes for moving the # ingame view frustum around. # type: float @@ -166,6 +170,16 @@ # type: key # keymap_sneak = KEY_LSHIFT +# Key for digging. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_dig = KEY_LBUTTON + +# Key for placing. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_place = KEY_RBUTTON + # Key for opening the inventory. # See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 # type: key @@ -489,6 +503,11 @@ ### Basic +# Whether nametag backgrounds should be shown by default. +# Mods may still set a background. +# type: bool +# show_nametag_backgrounds = true + # Enable vertex buffer objects. # This should greatly improve graphics performance. # type: bool @@ -569,8 +588,13 @@ # type: int # texture_min_size = 64 -# Experimental option, might cause visible spaces between blocks -# when set to higher number than 0. +# Use multi-sample antialiasing (MSAA) to smooth out block edges. +# This algorithm smooths out the 3D viewport while keeping the image sharp, +# but it doesn't affect the insides of textures +# (which is especially noticeable with transparent textures). +# Visible spaces appear between nodes when shaders are disabled. +# If set to 0, MSAA is disabled. +# A restart is required after changing this option. # type: enum values: 0, 1, 2, 4, 8, 16 # fsaa = 0 @@ -602,37 +626,6 @@ # type: bool # tone_mapping = false -#### Bumpmapping - -# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack. -# Requires shaders to be enabled. -# type: bool -# enable_bumpmapping = false - -#### Parallax Occlusion - -# Enables parallax occlusion mapping. -# Requires shaders to be enabled. -# type: bool -# enable_parallax_occlusion = false - -# 0 = parallax occlusion with slope information (faster). -# 1 = relief mapping (slower, more accurate). -# type: int min: 0 max: 1 -# parallax_occlusion_mode = 1 - -# Number of parallax occlusion iterations. -# type: int -# parallax_occlusion_iterations = 4 - -# Overall scale of parallax occlusion effect. -# type: float -# parallax_occlusion_scale = 0.08 - -# Overall bias of parallax occlusion effect, usually scale/2. -# type: float -# parallax_occlusion_bias = 0.04 - #### Waving Nodes # Set to true to enable waving liquids (like water). @@ -681,9 +674,9 @@ # type: int min: 1 # fps_max = 60 -# Maximum FPS when game is paused. +# Maximum FPS when the window is not focused, or when the game is paused. # type: int min: 1 -# pause_fps_max = 20 +# fps_max_unfocused = 20 # Open the pause menu when the window's focus is lost. Does not pause if a formspec is # open. @@ -692,7 +685,7 @@ # View distance in nodes. # type: int min: 20 max: 4000 -# viewing_range = 100 +# viewing_range = 190 # Camera 'near clipping plane' distance in nodes, between 0 and 0.25 # Only works on GLES platforms. Most users will not need to change this. @@ -768,11 +761,11 @@ # type: path # texture_path = -# The rendering back-end for Irrlicht. +# The rendering back-end. # A restart is required after changing this. # Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise. -# On other platforms, OpenGL is recommended, and it’s the only driver with -# shader support currently. +# On other platforms, OpenGL is recommended. +# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental) # type: enum values: null, software, burningsvideo, direct3d8, direct3d9, opengl, ogles1, ogles2 # video_driver = opengl @@ -845,10 +838,12 @@ # selectionbox_width = 2 # Crosshair color (R,G,B). +# Also controls the object crosshair color # type: string # crosshair_color = (255,255,255) # Crosshair alpha (opaqueness, between 0 and 255). +# Also controls the object crosshair color # type: int min: 0 max: 255 # crosshair_alpha = 255 @@ -1157,7 +1152,7 @@ # File in client/serverlist/ that contains your favorite servers displayed in the # Multiplayer Tab. # type: string -# serverlist_file = favoriteservers.txt +# serverlist_file = favoriteservers.json # Maximum size of the out chat queue. # 0 to disable queueing and -1 to make the queue size unlimited. @@ -1178,7 +1173,7 @@ # Maximum number of mapblocks for client to be kept in memory. # Set to -1 for unlimited amount. # type: int -# client_mapblock_limit = 5000 +# client_mapblock_limit = 7500 # Whether to show the client debug info (has the same effect as hitting F5). # type: bool @@ -1266,6 +1261,14 @@ # type: int # max_packets_per_iteration = 1024 +# ZLib compression level to use when sending mapblocks to the client. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +# type: int min: -1 max: 9 +# map_compression_level_net = -1 + ## Game # Default game when creating a new world. @@ -1300,7 +1303,7 @@ # type: bool # enable_damage = false -# Enable creative mode for new created maps. +# Enable creative mode for all players # type: bool # creative_mode = false @@ -1380,7 +1383,7 @@ # to maintain active objects up to this distance in the direction the # player is looking. (This can avoid mobs suddenly disappearing from view) # type: int -# active_object_send_range_blocks = 4 +# active_object_send_range_blocks = 8 # The radius of the volume of blocks around every player that is subject to the # active block stuff, stated in mapblocks (16 nodes). @@ -1388,11 +1391,11 @@ # This is also the minimum range in which active objects (mobs) are maintained. # This should be configured together with active_object_send_range_blocks. # type: int -# active_block_range = 3 +# active_block_range = 4 # From how far blocks are sent to clients, stated in mapblocks (16 nodes). # type: int -# max_block_send_distance = 10 +# max_block_send_distance = 12 # Maximum number of forceloaded mapblocks. # type: int @@ -1485,11 +1488,11 @@ ### Advanced # Handling for deprecated Lua API calls: -# - legacy: (try to) mimic old behaviour (default for release). -# - log: mimic and log backtrace of deprecated call (default for debug). +# - none: Do not log deprecated calls +# - log: mimic and log backtrace of deprecated call (default). # - error: abort on usage of deprecated call (suggested for mod developers). -# type: enum values: legacy, log, error -# deprecated_lua_api_handling = legacy +# type: enum values: none, log, error +# deprecated_lua_api_handling = log # Number of extra blocks that can be loaded by /clearobjects at once. # This is a trade-off between sqlite transaction overhead and @@ -1510,6 +1513,14 @@ # type: enum values: 0, 1, 2 # sqlite_synchronous = 2 +# ZLib compression level to use when saving mapblocks to disk. +# -1 - Zlib's default compression level +# 0 - no compresson, fastest +# 9 - best compression, slowest +# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method) +# type: int min: -1 max: 9 +# map_compression_level_disk = 3 + # Length of a server tick and the interval at which objects are generally updated over # network. # type: float @@ -1523,6 +1534,11 @@ # type: float # abm_interval = 1.0 +# The time budget allowed for ABMs to execute on each step +# (as a fraction of the ABM Interval) +# type: float min: 0.1 max: 0.9 +# abm_time_budget = 0.2 + # Length of time between NodeTimer execution cycles # type: float # nodetimer_interval = 0.2 @@ -1719,13 +1735,6 @@ # type: bool # high_precision_fpu = true -# Changes the main menu UI: -# - Full: Multiple singleplayer worlds, game choice, texture pack chooser, etc. -# - Simple: One singleplayer world, no game or texture pack choosers. May be -# necessary for smaller screens. -# type: enum values: full, simple -# main_menu_style = full - # Replaces the default main menu with a custom one. # type: string # main_menu_script = @@ -1752,7 +1761,7 @@ # From how far blocks are generated for clients, stated in mapblocks (16 nodes). # type: int -# max_block_generate_distance = 8 +# max_block_generate_distance = 10 # Limit of map generation, in nodes, in all 6 directions from (0, 0, 0). # Only mapchunks completely within the mapgen limit are generated. @@ -1763,8 +1772,8 @@ # Global map generation attributes. # In Mapgen v6 the 'decorations' flag controls all decorations except trees # and junglegrass, in all other mapgens this flag controls all decorations. -# type: flags possible values: caves, dungeons, light, decorations, biomes, nocaves, nodungeons, nolight, nodecorations, nobiomes -# mg_flags = caves,dungeons,light,decorations,biomes +# type: flags possible values: caves, dungeons, light, decorations, biomes, ores, nocaves, nodungeons, nolight, nodecorations, nobiomes, noores +# mg_flags = caves,dungeons,light,decorations,biomes,ores ## Biome API temperature and humidity noise parameters @@ -2750,8 +2759,8 @@ # Map generation attributes specific to Mapgen Flat. # Occasional lakes and hills can be added to the flat world. -# type: flags possible values: lakes, hills, nolakes, nohills -# mgflat_spflags = nolakes,nohills +# type: flags possible values: lakes, hills, caverns, nolakes, nohills, nocaverns +# mgflat_spflags = nolakes,nohills,nocaverns # Y of flat ground. # type: int @@ -2807,6 +2816,18 @@ # type: float # mgflat_hill_steepness = 64.0 +# Y-level of cavern upper limit. +# type: int +# mgflat_cavern_limit = -256 + +# Y-distance over which caverns expand to full size. +# type: int +# mgflat_cavern_taper = 256 + +# Defines full size of caverns, smaller values create larger caverns. +# type: float +# mgflat_cavern_threshold = 0.7 + # Lower Y limit of dungeons. # type: int # mgflat_dungeon_ymin = -31000 @@ -2869,6 +2890,19 @@ # flags = # } +# 3D noise defining giant caverns. +# type: noise_params_3d +# mgflat_np_cavern = { +# offset = 0, +# scale = 1, +# spread = (384, 128, 384), +# seed = 723, +# octaves = 5, +# persistence = 0.63, +# lacunarity = 2.0, +# flags = +# } + # 3D noise that determines number of dungeons per mapchunk. # type: noise_params_3d # mgflat_np_dungeons = { @@ -3319,17 +3353,17 @@ # Maximum number of blocks that can be queued for loading. # type: int -# emergequeue_limit_total = 512 +# emergequeue_limit_total = 1024 # Maximum number of blocks to be queued that are to be loaded from file. # This limit is enforced per player. # type: int -# emergequeue_limit_diskonly = 64 +# emergequeue_limit_diskonly = 128 # Maximum number of blocks to be queued that are to be generated. # This limit is enforced per player. # type: int -# emergequeue_limit_generate = 64 +# emergequeue_limit_generate = 128 # Number of emerge threads to use. # Value 0: @@ -3360,3 +3394,9 @@ # so see a full list at https://content.minetest.net/help/content_flags/ # type: string # contentdb_flag_blacklist = nonfree, desktop_default + +# Maximum number of concurrent downloads. Downloads exceeding this limit will be queued. +# This should be lower than curl_parallel_limit. +# type: int +# contentdb_max_concurrent_downloads = 3 + diff --git a/misc/Info.plist b/misc/Info.plist index 1498ee474..9460b273d 100644 --- a/misc/Info.plist +++ b/misc/Info.plist @@ -7,8 +7,14 @@ CFBundleExecutable minetest CFBundleIconFile - minetest-icon.icns + dragonfire-icon.icns + CFBundleName + Minetest + CFBundleDisplayName + Minetest CFBundleIdentifier net.minetest.minetest + NSHighResolutionCapable + diff --git a/misc/debpkg-control b/misc/debpkg-control index b228f4c79..1fef17fd9 100644 --- a/misc/debpkg-control +++ b/misc/debpkg-control @@ -2,25 +2,22 @@ Section: games Priority: extra Standards-Version: 3.6.2 Package: minetest-staging -Version: 0.4.15-DATEPLACEHOLDER -Depends: libc6, libcurl3-gnutls, libfreetype6, libirrlicht1.8, LEVELDB_PLACEHOLDER, liblua5.1-0, libluajit-5.1-2, libopenal1, libstdc++6, libvorbisfile3, libx11-6, zlib1g +Version: 5.4.0-DATEPLACEHOLDER +Depends: libc6, libcurl3-gnutls, libfreetype6, libgl1, JPEG_PLACEHOLDER, libjsoncpp1, LEVELDB_PLACEHOLDER, libopenal1, libpng16-16, libsqlite3-0, libstdc++6, libvorbisfile3, libx11-6, libxxf86vm1, zlib1g Maintainer: Loic Blot -Homepage: http://minetest.net/ +Homepage: https://www.minetest.net/ Vcs-Git: https://github.com/minetest/minetest.git Vcs-Browser: https://github.com/minetest/minetest.git Architecture: amd64 Build-Depends: cmake, gettext, - libbz2-dev, libcurl4-gnutls-dev, libfreetype6-dev, - libglu1-mesa-dev, - libirrlicht-dev (>= 1.7.0), + libgl1-mesa-dev, libjpeg-dev, libjsoncpp-dev, libleveldb-dev, - libluajit-5.1-dev | liblua5.1-dev, libogg-dev, libopenal-dev, libpng-dev, @@ -28,7 +25,7 @@ Build-Depends: libvorbis-dev, libx11-dev, zlib1g-dev -Description: Multiplayer infinite-world block sandbox (server) +Description: Multiplayer infinite-world block sandbox game Minetest is a minecraft-inspired game written from scratch and licensed under the LGPL (version 2.1 or later). It supports both survival and creative modes along with multiplayer support, dynamic lighting, and an "infinite" map diff --git a/misc/dragonfire-icon-24x24.png b/misc/dragonfire-icon-24x24.png new file mode 100644 index 000000000..0edc90e20 Binary files /dev/null and b/misc/dragonfire-icon-24x24.png differ diff --git a/misc/dragonfire-icon.icns b/misc/dragonfire-icon.icns new file mode 100644 index 000000000..bb20daf38 Binary files /dev/null and b/misc/dragonfire-icon.icns differ diff --git a/misc/dragonfire-icon.ico b/misc/dragonfire-icon.ico new file mode 100644 index 000000000..3ac1f5c81 Binary files /dev/null and b/misc/dragonfire-icon.ico differ diff --git a/misc/dragonfire-icon.ico.png b/misc/dragonfire-icon.ico.png new file mode 100644 index 000000000..6c04cf7ee Binary files /dev/null and b/misc/dragonfire-icon.ico.png differ diff --git a/misc/dragonfire-xorg-icon-128.png b/misc/dragonfire-xorg-icon-128.png new file mode 100644 index 000000000..b1ed4522f Binary files /dev/null and b/misc/dragonfire-xorg-icon-128.png differ diff --git a/misc/dragonfire.svg b/misc/dragonfire.svg new file mode 100644 index 000000000..350492649 --- /dev/null +++ b/misc/dragonfire.svg @@ -0,0 +1,118 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/misc/minetest-icon-24x24.png b/misc/minetest-icon-24x24.png deleted file mode 100644 index 334e2f6d6..000000000 Binary files a/misc/minetest-icon-24x24.png and /dev/null differ diff --git a/misc/minetest-icon.icns b/misc/minetest-icon.icns deleted file mode 100644 index 14731c2c1..000000000 Binary files a/misc/minetest-icon.icns and /dev/null differ diff --git a/misc/minetest-icon.ico b/misc/minetest-icon.ico deleted file mode 100644 index 82af67bf9..000000000 Binary files a/misc/minetest-icon.ico and /dev/null differ diff --git a/misc/minetest-xorg-icon-128.png b/misc/minetest-xorg-icon-128.png deleted file mode 100644 index 0241a911c..000000000 Binary files a/misc/minetest-xorg-icon-128.png and /dev/null differ diff --git a/misc/minetest.exe.manifest b/misc/minetest.exe.manifest index 3c32b0f8b..dcad3fcde 100644 --- a/misc/minetest.exe.manifest +++ b/misc/minetest.exe.manifest @@ -1,5 +1,6 @@ + @@ -10,6 +11,7 @@ true + UTF-8 diff --git a/misc/minetest.svg b/misc/minetest.svg deleted file mode 100644 index fe036c3dd..000000000 --- a/misc/minetest.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/misc/net.minetest.minetest.appdata.xml b/misc/net.minetest.minetest.appdata.xml index f41762564..0e5397b37 100644 --- a/misc/net.minetest.minetest.appdata.xml +++ b/misc/net.minetest.minetest.appdata.xml @@ -62,6 +62,6 @@ minetest sfan5@live.de - + diff --git a/misc/net.minetest.minetest.desktop b/misc/net.minetest.minetest.desktop old mode 100644 new mode 100755 index ca493c44e..737dfb29e --- a/misc/net.minetest.minetest.desktop +++ b/misc/net.minetest.minetest.desktop @@ -1,3 +1,4 @@ +#!/usr/bin/env xdg-open [Desktop Entry] Name=Minetest GenericName=Minetest @@ -9,7 +10,7 @@ Comment[ja]=マルチプレイに対応した、無限の世界のブロック Comment[ru]=Игра-песочница с безграничным миром, состоящим из блоков Comment[tr]=Tek-Çok oyuncuyla küplerden sonsuz dünyalar inşa et Exec=minetest -Icon=minetest +Icon=dragonfire Terminal=false Type=Application Categories=Game;Simulation; diff --git a/misc/winresource.rc b/misc/winresource.rc index e1e82581b..bd93be91d 100644 --- a/misc/winresource.rc +++ b/misc/winresource.rc @@ -14,7 +14,7 @@ #endif LANGUAGE 0, SUBLANG_NEUTRAL -130 ICON "minetest-icon.ico" +130 ICON "dragonfire-icon.ico" ///////////////////////////////////////////////////////////////////////////// // diff --git a/po/ar/minetest.po b/po/ar/minetest.po index f83f7c733..1ab09c2bd 100644 --- a/po/ar/minetest.po +++ b/po/ar/minetest.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-27 20:41+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-10-29 16:26+0000\n" "Last-Translator: abidin toumi \n" "Language-Team: Arabic \n" @@ -18,7 +18,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "أعِد الإحياء" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "مِت" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -44,10 +52,6 @@ msgstr "أعد الإتصال" msgid "The server has requested a reconnect:" msgstr "يطلب الخادم إعادة الإتصال:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "يحمل..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "لا تتطابق نسخ الميفاق. " @@ -60,10 +64,6 @@ msgstr "يفرظ الخادم إ ستخدام الميفاق $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "الخادم يدعم نسخ الميفاق ما بين $1 و $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "جرب إعادة تمكين قائمة الحوادم العامة وتحقق من إتصالك بالانترنت." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "نحن ندعم نسخة الميفاق $1فقط." @@ -72,7 +72,8 @@ msgstr "نحن ندعم نسخة الميفاق $1فقط." msgid "We support protocol versions between version $1 and $2." msgstr "نحن ندعم نسخ الميفاق ما بين $1 و $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -82,7 +83,8 @@ msgstr "نحن ندعم نسخ الميفاق ما بين $1 و $2." msgid "Cancel" msgstr "ألغِ" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "الإعتماديات:" @@ -155,17 +157,58 @@ msgstr "العالم:" msgid "enabled" msgstr "مُفعل" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "يحمل..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "كل الحزم" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "المفتاح مستخدم مسبقا" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "عُد للقائمة الرئيسة" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "استضف لعبة" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "لا يمكن استخدام ContentDB عند بناء Minetest بدون cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -184,6 +227,16 @@ msgstr "الألعاب" msgid "Install" msgstr "ثبت" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "ثبت" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "الإعتماديات الإختيارية:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -191,16 +244,32 @@ msgstr "التعديلات" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "تعذر استيراد الحزم" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "بدون نتائج" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "إبحث" +#, fuzzy +msgid "No updates" +msgstr "حدِث" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -215,8 +284,12 @@ msgid "Update" msgstr "حدِث" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "إعرض" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -224,31 +297,31 @@ msgstr "إسم العالم \"$1\" موجود مسبقاً" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "تضاريس إضافية" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "تبريد مع زيادة الارتفاع" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "نقص الرطوبة مع الارتفاع" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "دمج المواطن البيئية" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "مواطن بيئية" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "مغارات" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "كهوف" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -268,19 +341,17 @@ msgstr "نزِّل لعبة من minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "الزنزانات" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" msgstr "أرض مسطحة" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" msgstr "أرض عائمة في السماء" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" msgstr "أراضيٌ عائمة (تجريبية)" @@ -290,7 +361,7 @@ msgstr "اللعبة" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "ولد تضاريس غير كسورية: محيطات وباطن الأرض" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -298,11 +369,11 @@ msgstr "التلال" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "أنهار رطبة" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "زِد الرطوبة قرب الأنهار" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" @@ -330,7 +401,7 @@ msgstr "جبال" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "تدفق الطين" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -359,17 +430,17 @@ msgstr "أنهار بمستوى البحر" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "البذرة" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "تغيير سلس للمناطق البيئية" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "المنشآت السطحية (لا تأثر على الأشجار والأعشاب المنشأة ب v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" @@ -385,11 +456,11 @@ msgstr "معتدل، صحراء، غابة" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "المعتدلة, الصحراء, الغابة, التندرا, التايغا" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "تآكل التربة" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -468,10 +539,6 @@ msgstr "< عد لصفحة الإعدادات" msgid "Browse" msgstr "استعرض" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "عطِّل" @@ -516,6 +583,10 @@ msgstr "إستعِد الإفتراضي" msgid "Scale" msgstr "تكبير/تصغير" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "إبحث" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "إختر الدليل" @@ -538,7 +609,7 @@ msgstr "يحب أن لا تزيد القيمة عن $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" @@ -566,7 +637,7 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "" +msgstr "القيمة المطلقة" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options @@ -581,7 +652,7 @@ msgstr "إفتراضي" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "" +msgstr "مخفف" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" @@ -605,7 +676,7 @@ msgstr "تثبيت تعديل: لا يمكن العصور على اسم مجلد #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" +msgstr "يثبت: نوع الملف \"$1\" غير مدعوم أو هو أرشيف تالف" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" @@ -613,7 +684,7 @@ msgstr "ثبت: الملف: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "" +msgstr "فشل إيجاد تعديل أو حزمة تعديلات صالحة" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -621,7 +692,7 @@ msgstr "فشل تثبيت $1 كحزمة إكساء" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" -msgstr "فشل تثبيت اللعبة كـ $1" +msgstr "فشل تثبيت اللعبة ك $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" @@ -629,7 +700,20 @@ msgstr "فشل تثبيت التعديل كـ $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" -msgstr "" +msgstr "تعذر تثبيت حزمة التعديلات مثل $1" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "يحمل..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "البرمجة النصية للعميل معطلة" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "جرب إعادة تمكين قائمة الحوادم العامة وتحقق من إتصالك بالانترنت." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" @@ -661,7 +745,7 @@ msgstr "لايتوفر وصف للحزمة" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "" +msgstr "أعد التسمية" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" @@ -684,7 +768,14 @@ msgid "Credits" msgstr "إشادات" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "إختر الدليل" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -697,22 +788,18 @@ msgstr "المطورون الرئيسيون السابقون" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "" +msgstr "أعلن عن الخادوم" #: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "اضبط" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua #, fuzzy +msgid "Bind Address" +msgstr "العنوان المطلوب" + +#: builtin/mainmenu/tab_local.lua msgid "Creative Mode" msgstr "النمط الإبداعي" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "مكن الضرر" @@ -729,8 +816,8 @@ msgid "Install games from ContentDB" msgstr "ثبت العابا من ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "الاسم\\كلمة المرور" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -740,6 +827,11 @@ msgstr "جديد" msgid "No world created or selected!" msgstr "لم تنشئ او تحدد عالما!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "كلمة مرور جديدة" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "إلعب" @@ -748,6 +840,11 @@ msgstr "إلعب" msgid "Port" msgstr "المنفذ" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "حدد العالم:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "حدد العالم:" @@ -764,24 +861,23 @@ msgstr "ابدأ اللعبة" msgid "Address / Port" msgstr "العنوان \\ المنفذ" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "اتصل" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "النمط الإبداعي" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "الضرر ممكن" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "حذف المفضلة" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "المفضلة" @@ -789,23 +885,22 @@ msgstr "المفضلة" msgid "Join Game" msgstr "انضم للعبة" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "الاسم \\ كلمة المرور" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "قتال اللاعبين ممكن" #: builtin/mainmenu/tab_settings.lua msgid "2x" -msgstr "" +msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" @@ -813,11 +908,11 @@ msgstr "سحب 3D" #: builtin/mainmenu/tab_settings.lua msgid "4x" -msgstr "" +msgstr "4x" #: builtin/mainmenu/tab_settings.lua msgid "8x" -msgstr "" +msgstr "8x" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" @@ -825,11 +920,7 @@ msgstr "كل الإعدادات" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" +msgstr "التنعييم:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" @@ -837,11 +928,7 @@ msgstr "حفظ حجم الشاشة تلقائيا" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" +msgstr "مرشح خطي ثنائي" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" @@ -853,11 +940,7 @@ msgstr "زجاج متصل" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "ولِد خرائط عادية" +msgstr "اوراق بتفاصيل واضحة" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" @@ -867,10 +950,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "بدون مرشح" @@ -884,11 +963,11 @@ msgid "Node Highlighting" msgstr "إبراز العقد" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Node Outlining" -msgstr "" +msgstr "عدم إبراز العقد" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "None" msgstr "بدون" @@ -900,17 +979,9 @@ msgstr "اوراق معتِمة" msgid "Opaque Water" msgstr "مياه معتمة" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "أعد تعيين عالم اللاعب المنفرد" +msgstr "جسيمات" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" @@ -924,12 +995,16 @@ msgstr "إعدادات" msgid "Shaders" msgstr "مُظللات" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "أراضيٌ عائمة (تجريبية)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "مظللات (غير متوفر)" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Simple Leaves" msgstr "أوراق بسيطة" @@ -951,11 +1026,11 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "" +msgstr "حساسية اللمس: (بكسل)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "مرشح خطي ثلاثي" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" @@ -969,23 +1044,6 @@ msgstr "سوائل متموجة" msgid "Waving Plants" msgstr "نباتات متموجة" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "نعم" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "اضبط التعديلات" - -#: builtin/mainmenu/tab_simple_main.lua -#, fuzzy -msgid "Main" -msgstr "الرئيسية" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "إلعب فرديا" - #: src/client/client.cpp msgid "Connection timed out." msgstr "انتهت مهلة الاتصال." @@ -1023,7 +1081,6 @@ msgid "Invalid gamespec." msgstr "مواصفات اللعبة غير صالحة." #: src/client/clientlauncher.cpp -#, fuzzy msgid "Main Menu" msgstr "القائمة الرئيسية" @@ -1041,11 +1098,11 @@ msgstr "يرجى اختيار اسم!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "فشل فتح ملف كلمة المرور المدخل: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "" +msgstr "مسار العالم المدخل غير موجود: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1064,117 +1121,131 @@ msgid "" "\n" "Check debug.txt for details." msgstr "" +"\n" +"راجع debug.txt لمزيد من التفاصيل." #: src/client/game.cpp msgid "- Address: " -msgstr "" +msgstr "- العنوان: " #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "" +msgstr "- النمط الإبداعي: " #: src/client/game.cpp msgid "- Damage: " -msgstr "" +msgstr "- التضرر: " #: src/client/game.cpp msgid "- Mode: " -msgstr "" +msgstr "- النمط: " #: src/client/game.cpp msgid "- Port: " -msgstr "" +msgstr "- المنفذ: " #: src/client/game.cpp msgid "- Public: " -msgstr "" +msgstr "- عام: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "" +msgstr "- قتال اللاعبين: " #: src/client/game.cpp msgid "- Server Name: " -msgstr "" +msgstr "- اسم الخادم: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "" +msgstr "المشي التلقائي معطل" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "" +msgstr "المشي التلقائي ممكن" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "" +msgstr "تحديث الكاميرا معطل" #: src/client/game.cpp msgid "Camera update enabled" -msgstr "" +msgstr "تحديث الكاميرا مفعل" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "غير كلمة المرور" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "" +msgstr "الوضع السينمائي معطل" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "" +msgstr "الوضع السينمائي مفعل" #: src/client/game.cpp +#, fuzzy msgid "Client side scripting is disabled" -msgstr "" +msgstr "البرمجة النصية للعميل معطلة" #: src/client/game.cpp msgid "Connecting to server..." -msgstr "" +msgstr "يتصل بالخادوم…" #: src/client/game.cpp msgid "Continue" -msgstr "" +msgstr "تابع" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" +"أزرار التحكم:\n" +"- %s: سر للأمام\n" +"- %s: سر للخلف\n" +"- %s: سر يسارا\n" +"- %s: سر يمينا\n" +"- %s: اقفز/تسلق\n" +"- %s: ازحف/انزل\n" +"- %s: ارمي عنصر\n" +"- %s: افتح المخزن\n" +"- تحريك الفأرة: دوران\n" +"- زر الفأرة الأيمن: احفر/الكم\n" +"- زر الفأرة الأيسر: ضع/استخدم\n" +"- عجلة الفأرة: غيير العنصر\n" +"- -%s: دردشة\n" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "ينشىء عميلا…" #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "ينشىء خادوما…" #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "معلومات التنقيح ومنحنى محلل البيانات مخفيان" #: src/client/game.cpp msgid "Debug info shown" -msgstr "" +msgstr "معلومات التنقيح مرئية" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" @@ -1195,132 +1266,98 @@ msgid "" "- touch&drag, tap 2nd finger\n" " --> place single item to slot\n" msgstr "" +"اعدادات التحكم الافتراضية: \n" +"بدون قائمة مرئية: \n" +"- لمسة واحدة: زر تفعيل\n" +"- لمسة مزدوجة: ضع/استخدم\n" +"- تحريك إصبع: دوران\n" +"المخزن أو قائمة مرئية: \n" +"- لمسة مزدوجة (خارج القائمة): \n" +" --> اغلق القائمة\n" +"- لمس خانة أو تكديس: \n" +" --> حرك التكديس\n" +"- لمس وسحب, ولمس باصبع ثان: \n" +" --> وضع عنصر واحد في خانة\n" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "مدى الرؤية غير المحدود معطل" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "مدى الرؤية غير المحدود مفعل" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "" +msgstr "اخرج للقائمة" #: src/client/game.cpp msgid "Exit to OS" -msgstr "" +msgstr "اخرج لنظام التشغيل" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "" +msgstr "نمط السرعة معطل" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "" +msgstr "نمط السرعة مفعل" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "نمط السرعة مفعل (ملاحظة: لا تمتلك امتياز 'السرعة')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "" +msgstr "نمط الطيران معطل" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "" +msgstr "نمط الطيران مفعل" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "نمط الطيران مفعل (ملاحظة: لا تمتلك امتياز 'الطيران')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "" +msgstr "الضباب معطل" #: src/client/game.cpp msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "الضرر ممكن" +msgstr "الضباب مفعل" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "معلومات اللعبة:" #: src/client/game.cpp msgid "Game paused" -msgstr "" +msgstr "اللعبة موقفة مؤقتا" #: src/client/game.cpp msgid "Hosting server" -msgstr "" +msgstr "استضافة خادوم" #: src/client/game.cpp msgid "Item definitions..." -msgstr "" +msgstr "تعريف العنصر…" #: src/client/game.cpp msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "الضرر ممكن" +msgstr "كب\\ثا" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "وسائط…" #: src/client/game.cpp msgid "MiB/s" -msgstr "" +msgstr "مب\\ثا" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgstr "الخريطة المصغرة معطلة من قبل لعبة أو تعديل" #: src/client/game.cpp msgid "Noclip mode disabled" @@ -1336,15 +1373,15 @@ msgstr "" #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "تعريفات العقدة..." #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "معطّل" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "مفعل" #: src/client/game.cpp msgid "Pitch move mode disabled" @@ -1356,140 +1393,125 @@ msgstr "" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "منحنى محلل البيانات ظاهر" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "خادوم بعيد" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Respawn" -msgstr "أعِد الإحياء" +msgstr "يستورد العناوين…" #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "يغلق…" #: src/client/game.cpp msgid "Singleplayer" -msgstr "" +msgstr "لاعب منفرد" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "حجم الصوت" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "الصوت مكتوم" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "نظام الصوت معطل" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "نظام الصوت غير مدمج أثناء البناء" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "" +msgstr "الصوت غير مكتوم" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "غُيرَ مدى الرؤية الى %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "مدى الرؤية في أقصى حد: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "مدى الرؤية في أدنى حد: %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "غُير الحجم الى %d%%" #: src/client/game.cpp msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "مِت" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "التكبير معطل من قبل لعبة أو تعديل" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "موافق" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "الدردشة مخفية" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" +msgstr "الدردشة ظاهرة" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "الواجهة مخفية" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "الواجهة ظاهرة" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "محلل البيانات مخفي" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "محلل البيانات ظاهر ( صفحة %d من %d)" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "تطبيقات" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "امسح" #: src/client/keycode.cpp +#, fuzzy msgid "Control" -msgstr "" +msgstr "Control" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "أسفل" #: src/client/keycode.cpp msgid "End" @@ -1504,239 +1526,307 @@ msgid "Execute" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Help" -msgstr "" +msgstr "Help" #: src/client/keycode.cpp +#, fuzzy msgid "Home" -msgstr "" +msgstr "Home" #: src/client/keycode.cpp +#, fuzzy msgid "IME Accept" -msgstr "" +msgstr "IME Accept" #: src/client/keycode.cpp +#, fuzzy msgid "IME Convert" -msgstr "" +msgstr "IME Convert" #: src/client/keycode.cpp +#, fuzzy msgid "IME Escape" -msgstr "" +msgstr "IME Escape" #: src/client/keycode.cpp +#, fuzzy msgid "IME Mode Change" -msgstr "" +msgstr "IME Mode Change" #: src/client/keycode.cpp +#, fuzzy msgid "IME Nonconvert" -msgstr "" +msgstr "IME Nonconvert" #: src/client/keycode.cpp +#, fuzzy msgid "Insert" -msgstr "" +msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "يسار" #: src/client/keycode.cpp msgid "Left Button" -msgstr "" +msgstr "الزر الأيسر" #: src/client/keycode.cpp +#, fuzzy msgid "Left Control" -msgstr "" +msgstr "Left Control" #: src/client/keycode.cpp msgid "Left Menu" -msgstr "" +msgstr "القائمة اليسرى" #: src/client/keycode.cpp +#, fuzzy msgid "Left Shift" -msgstr "" +msgstr "Left Shift" #: src/client/keycode.cpp +#, fuzzy msgid "Left Windows" -msgstr "" +msgstr "Left Windows" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp +#, fuzzy msgid "Menu" -msgstr "" +msgstr "Menu" #: src/client/keycode.cpp +#, fuzzy msgid "Middle Button" -msgstr "" +msgstr "Middle Button" #: src/client/keycode.cpp +#, fuzzy msgid "Num Lock" -msgstr "" +msgstr "Num Lock" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad *" -msgstr "" +msgstr "Numpad *" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad +" -msgstr "" +msgstr "Numpad +" #: src/client/keycode.cpp msgid "Numpad -" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad ." -msgstr "" +msgstr "Numpad ." #: src/client/keycode.cpp +#, fuzzy msgid "Numpad /" -msgstr "" +msgstr "Numpad /" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 0" -msgstr "" +msgstr "Numpad 0" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 1" -msgstr "" +msgstr "Numpad 1" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 2" -msgstr "" +msgstr "Numpad 2" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 3" -msgstr "" +msgstr "Numpad 3" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 4" -msgstr "" +msgstr "Numpad 4" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 5" -msgstr "" +msgstr "Numpad 5" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 6" -msgstr "" +msgstr "Numpad 6" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 7" -msgstr "" +msgstr "Numpad 7" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 8" -msgstr "" +msgstr "Numpad 8" #: src/client/keycode.cpp +#, fuzzy msgid "Numpad 9" -msgstr "" +msgstr "Numpad 9" #: src/client/keycode.cpp +#, fuzzy msgid "OEM Clear" -msgstr "" +msgstr "OEM Clear" #: src/client/keycode.cpp +#, fuzzy msgid "Page down" -msgstr "" +msgstr "Page down" #: src/client/keycode.cpp +#, fuzzy msgid "Page up" -msgstr "" +msgstr "Page up" #: src/client/keycode.cpp +#, fuzzy msgid "Pause" -msgstr "" +msgstr "Pause" #: src/client/keycode.cpp +#, fuzzy msgid "Play" -msgstr "" +msgstr "Play" #. ~ "Print screen" key #: src/client/keycode.cpp +#, fuzzy msgid "Print" -msgstr "" +msgstr "Print" #: src/client/keycode.cpp +#, fuzzy msgid "Return" -msgstr "" +msgstr "Return" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +#, fuzzy msgid "Right" -msgstr "" +msgstr "Right" #: src/client/keycode.cpp msgid "Right Button" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Right Control" -msgstr "" +msgstr "Right Control" #: src/client/keycode.cpp +#, fuzzy msgid "Right Menu" -msgstr "" +msgstr "Right Menu" #: src/client/keycode.cpp +#, fuzzy msgid "Right Shift" -msgstr "" +msgstr "Right Shift" #: src/client/keycode.cpp +#, fuzzy msgid "Right Windows" -msgstr "" +msgstr "Right Windows" #: src/client/keycode.cpp +#, fuzzy msgid "Scroll Lock" -msgstr "" +msgstr "Scroll Lock" #. ~ Key name #: src/client/keycode.cpp +#, fuzzy msgid "Select" -msgstr "" +msgstr "Select" #: src/client/keycode.cpp +#, fuzzy msgid "Shift" -msgstr "" +msgstr "Shift" #: src/client/keycode.cpp +#, fuzzy msgid "Sleep" -msgstr "" +msgstr "Sleep" #: src/client/keycode.cpp +#, fuzzy msgid "Snapshot" -msgstr "" +msgstr "Snapshot" #: src/client/keycode.cpp msgid "Space" msgstr "" #: src/client/keycode.cpp +#, fuzzy msgid "Tab" -msgstr "" +msgstr "Tab" #: src/client/keycode.cpp +#, fuzzy msgid "Up" -msgstr "" +msgstr "Up" #: src/client/keycode.cpp +#, fuzzy msgid "X Button 1" -msgstr "" +msgstr "X Button 1" #: src/client/keycode.cpp +#, fuzzy msgid "X Button 2" -msgstr "" +msgstr "X Button 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "كبِر" + +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "الخريطة المصغرة مخفية" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "الخريطة المصغرة في وضع الرادار، تكبير x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "الخريطة المصغرة في وضع الأسطح، تكبير x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "الخريطة المصغرة في وضع الأسطح، تكبير x1" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "" +msgstr "كلمتا المرور غير متطابقتين!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "سجل وادخل" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1747,58 +1837,41 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"أنت على وشك دخول هذا الخادوم للمرة الأولى باسم \"%s\".\n" +"اذا رغبت بالاستمرار سيتم إنشاء حساب جديد باستخدام بياناتك الاعتمادية.\n" +"لتأكيد التسجيل ادخل كلمة مرورك وانقر 'سجل وادخل'، أو 'ألغ' للإلغاء." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" -msgstr "" +msgstr "تابع" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "" +msgstr "\"خاص\" = التسلق نزولا" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "" +msgstr "المشي التلقائي" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "القفز التلقائي" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" +msgstr "للخلف" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "غير الكاميرا" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "دردشة" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "الأوامر" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" @@ -1814,15 +1887,15 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "" +msgstr "اضغط مرتين على \"اقفز\" لتفعيل الطيران" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" -msgstr "" +msgstr "اسقاط" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" -msgstr "" +msgstr "للأمام" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" @@ -1834,15 +1907,15 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" -msgstr "" +msgstr "المخزن" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" -msgstr "" +msgstr "اقفز" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" -msgstr "" +msgstr "المفتاح مستخدم مسبقا" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" @@ -1854,23 +1927,23 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "اكتم" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "العنصر التالي" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "" +msgstr "العنصر السابق" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "" +msgstr "حدد المدى" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "صوّر الشاشة" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" @@ -1878,47 +1951,31 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" +msgstr "خاص" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" +msgstr "بدّل عرض الواجهة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "بدّل عرض سجل المحادثة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "بدّل وضع السرعة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "بدّل حالة الطيران" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "بدّل ظهور الضباب" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "بدّل ظهور الخريطة المصغرة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" @@ -1930,41 +1987,41 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "اضغط على زر" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "غيِّر" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "أكد كلمة المرور" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "كلمة مرور جديدة" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "كلمة المرور القديمة" #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "أخرج" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "مكتوم" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " -msgstr "" +msgstr "حجم الصوت: " #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "" +msgstr "أدخل " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -1978,6 +2035,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(أندرويد) ثبت موقع عصى التحكم.\n" +"اذا عُطل ستنتقل عصى التحكم لموقع اللمسة الأولى." #: src/settings_translation_file.cpp msgid "" @@ -2009,12 +2068,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2115,12 +2168,16 @@ msgstr "" #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "رسالة تعرض لكل العملاء عند اغلاق الخادم." #: src/settings_translation_file.cpp msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2354,10 +2411,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2428,16 +2481,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2589,6 +2632,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2646,7 +2693,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2654,7 +2703,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2753,12 +2804,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2829,6 +2874,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2890,7 +2939,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2977,14 +3026,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -2993,18 +3034,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3021,12 +3050,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3038,7 +3061,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3093,11 +3116,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Field of view" -msgstr "" +msgstr "حقل الرؤية" #: src/settings_translation_file.cpp msgid "Field of view in degrees." -msgstr "" +msgstr "حقل الرؤية بالدرجات." #: src/settings_translation_file.cpp msgid "" @@ -3339,10 +3362,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3397,8 +3416,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3864,6 +3883,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3943,6 +3966,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4042,6 +4072,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4574,7 +4611,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Load the game profiler" -msgstr "" +msgstr "حمّل محلل بيانات اللعبة" #: src/settings_translation_file.cpp msgid "" @@ -4599,10 +4636,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4616,6 +4649,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4780,7 +4821,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4828,6 +4869,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5057,14 +5105,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5090,10 +5130,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5119,34 +5155,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5212,6 +5220,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5367,10 +5383,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5622,6 +5634,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5751,10 +5773,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5848,6 +5866,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5907,8 +5929,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5932,6 +5954,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5940,9 +5968,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6077,6 +6104,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6279,6 +6317,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6401,6 +6445,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6413,11 +6475,59 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "موافق" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "هل أنت متأكد من إعادة تعيين عالم اللاعب الوحيد؟" #~ msgid "Back" #~ msgstr "عُد" +#~ msgid "Bump Mapping" +#~ msgstr "خريطة النتوءات" + +#~ msgid "Config mods" +#~ msgstr "اضبط التعديلات" + +#~ msgid "Configure" +#~ msgstr "اضبط" + #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "تنزيل وتثبيت $1, يرجى الإنتظار..." + +#~ msgid "Generate Normal Maps" +#~ msgstr "ولِد خرائط عادية" + +#~ msgid "Main" +#~ msgstr "الرئيسية" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "الخريطة المصغرة في وضع الرادار، تكبير x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "الخريطة المصغرة في وضع الرادار، تكبير x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "الخريطة المصغرة في وضع الأسطح، تكبير x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "الخريطة المصغرة في وضع الأسطح، تكبير x4" + +#~ msgid "Name/Password" +#~ msgstr "الاسم\\كلمة المرور" + +#~ msgid "No" +#~ msgstr "لا" + +#~ msgid "Ok" +#~ msgstr "موافق" + +#~ msgid "Reset singleplayer world" +#~ msgstr "أعد تعيين عالم اللاعب المنفرد" + +#~ msgid "Start Singleplayer" +#~ msgstr "إلعب فرديا" + +#~ msgid "View" +#~ msgstr "إعرض" + +#~ msgid "Yes" +#~ msgstr "نعم" diff --git a/po/be/minetest.po b/po/be/minetest.po index 07e628cc0..8b597ca4b 100644 --- a/po/be/minetest.po +++ b/po/be/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Belarusian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2019-11-19 23:04+0000\n" "Last-Translator: Viktar Vauchkevich \n" "Language-Team: Belarusian =20) ? 1 : 2;\n" "X-Generator: Weblate 3.10-dev\n" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Адрадзіцца" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Вы загінулі" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "" @@ -39,10 +47,6 @@ msgstr "Перазлучыцца" msgid "The server has requested a reconnect:" msgstr "Сервер патрабуе перазлучыцца:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Загрузка…" - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Версіі пратакола адрозніваюцца. " @@ -55,12 +59,6 @@ msgstr "Сервер патрабуе версію пратакола $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Сервер падтрымлівае версіі пратакола паміж $1 і $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Паспрабуйце паўторна ўключыць спіс публічных сервераў і праверце злучэнне з " -"сецівам." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Мы падтрымліваем толькі $1 версію пратакола." @@ -69,7 +67,8 @@ msgstr "Мы падтрымліваем толькі $1 версію прата msgid "We support protocol versions between version $1 and $2." msgstr "Мы падтрымліваем версіі пратакола паміж $1 і $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -79,7 +78,8 @@ msgstr "Мы падтрымліваем версіі пратакола памі msgid "Cancel" msgstr "Скасаваць" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Залежнасці:" @@ -152,14 +152,55 @@ msgstr "Свет:" msgid "enabled" msgstr "уключаны" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Загрузка…" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Усе пакункі" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Клавіша ўжо выкарыстоўваецца" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Вярнуцца ў галоўнае меню" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Гуляць (сервер)" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -182,6 +223,16 @@ msgstr "Гульні" msgid "Install" msgstr "Усталяваць" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Усталяваць" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Неабавязковыя залежнасці:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -196,9 +247,26 @@ msgid "No results" msgstr "Вынікі адсутнічаюць" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Пошук" +#, fuzzy +msgid "No updates" +msgstr "Абнавіць" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "Выключыць гук" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -213,7 +281,11 @@ msgid "Update" msgstr "Абнавіць" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -482,11 +554,6 @@ msgstr "< Назад на старонку налад" msgid "Browse" msgstr "Праглядзець" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Кліент" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Адключаны" @@ -531,6 +598,10 @@ msgstr "Аднавіць прадвызначанае" msgid "Scale" msgstr "Маштаб" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Пошук" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Абраць каталог" @@ -649,6 +720,21 @@ msgstr "Не атрымалася ўсталяваць мадыфікацыю я msgid "Unable to install a modpack as a $1" msgstr "Не атрымалася ўсталяваць пакунак мадыфікацый як $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Загрузка…" + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Кліентскія мадыфікацыі выключаныя" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Паспрабуйце паўторна ўключыць спіс публічных сервераў і праверце злучэнне з " +"сецівам." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Пошук у сеціве" @@ -702,7 +788,14 @@ msgid "Credits" msgstr "Падзякі" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Абраць каталог" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -722,14 +815,10 @@ msgid "Bind Address" msgstr "Адрас прывязкі" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Наладзіць" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Творчы рэжым" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Уключыць пашкоджанні" @@ -746,8 +835,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Імя/Пароль" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -757,6 +846,11 @@ msgstr "Новы" msgid "No world created or selected!" msgstr "Няма створанага альбо абранага свету!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Новы пароль" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Гуляць" @@ -765,6 +859,11 @@ msgstr "Гуляць" msgid "Port" msgstr "Порт" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Абраць свет:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Абраць свет:" @@ -781,23 +880,23 @@ msgstr "Пачаць гульню" msgid "Address / Port" msgstr "Адрас / Порт" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Злучыцца" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Творчы рэжым" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Пашкоджанні ўключаныя" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Прыбраць з упадабанага" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Упадабанае" @@ -805,16 +904,16 @@ msgstr "Упадабанае" msgid "Join Game" msgstr "Далучыцца да гульні" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Імя / Пароль" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Пінг" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP уключаны" @@ -842,10 +941,6 @@ msgstr "Усе налады" msgid "Antialiasing:" msgstr "Згладжванне:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Вы ўпэўненыя, што хочаце скінуць свет адзіночнай гульні?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Запамінаць памеры экрана" @@ -854,10 +949,6 @@ msgstr "Запамінаць памеры экрана" msgid "Bilinear Filter" msgstr "Білінейны фільтр" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Тэкстураванне маскамі" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Змяніць клавішы" @@ -870,10 +961,6 @@ msgstr "Суцэльнае шкло" msgid "Fancy Leaves" msgstr "Аздобленае лісце" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Генерацыя мапы нармаляў" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "MIP-тэкстураванне" @@ -882,10 +969,6 @@ msgstr "MIP-тэкстураванне" msgid "Mipmap + Aniso. Filter" msgstr "MIP-тэкстураванне + анізатропны фільтр" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Не" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Без фільтра" @@ -914,18 +997,10 @@ msgstr "Непразрыстае лісце" msgid "Opaque Water" msgstr "Непразрыстая вада" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Паралаксная аклюзія" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Часціцы" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Скінуць свет адзіночнай гульні" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Экран:" @@ -938,6 +1013,11 @@ msgstr "Налады" msgid "Shaders" msgstr "Шэйдэры" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Узровень лятучых астравоў" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Шэйдэры (недаступна)" @@ -982,22 +1062,6 @@ msgstr "Калыханне вадкасцяў" msgid "Waving Plants" msgstr "Дрыготкія расліны" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Так" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Налады мадыфікацый" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Галоўнае меню" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Пачаць адзіночную гульню" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Таймаут злучэння." @@ -1159,18 +1223,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Кіраванне:\n" "- %s: ісці ўперад\n" @@ -1283,16 +1344,6 @@ msgstr "Туман адключаны" msgid "Fog enabled" msgstr "Туман уключаны" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Туман адключаны" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Туман уключаны" - #: src/client/game.cpp msgid "Game info:" msgstr "Інфармацыя пра гульню:" @@ -1313,16 +1364,6 @@ msgstr "Апісанне прадметаў…" msgid "KiB/s" msgstr "КіБ/сек" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Туман адключаны" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Пашкоджанні ўключаныя" - #: src/client/game.cpp msgid "Media..." msgstr "Медыя…" @@ -1335,34 +1376,6 @@ msgstr "МіБ/сек" msgid "Minimap currently disabled by game or mod" msgstr "Мінімапа на дадзены момант адключаная гульнёй альбо мадыфікацыяй" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Мінімапа схаваная" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Мінімапа ў рэжыме радару, павелічэнне х1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Мінімапа ў рэжыме радару, павелічэнне х2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Мінімапа ў рэжыме радару, павелічэнне х4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Рэжым руху скрозь сцены адключаны" @@ -1407,10 +1420,6 @@ msgstr "Адлеглы сервер" msgid "Resolving address..." msgstr "Распазнаванне адраса…" -#: src/client/game.cpp -msgid "Respawn" -msgstr "Адрадзіцца" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Выключэнне…" @@ -1463,10 +1472,6 @@ msgstr "Гучнасць змененая на %d %%" msgid "Wireframe shown" msgstr "Каркас паказваецца" -#: src/client/game.cpp -msgid "You died" -msgstr "Вы загінулі" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Павелічэнне зараз выключана гульнёй альбо мадыфікацыяй" @@ -1483,16 +1488,6 @@ msgstr "Размова схаваная" msgid "Chat shown" msgstr "Размова паказваецца" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Размова схаваная" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Размова паказваецца" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD схаваны" @@ -1773,6 +1768,25 @@ msgstr "Дадат. кнопка 2" msgid "Zoom" msgstr "Павялічыць" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Мінімапа схаваная" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Мінімапа ў рэжыме радару, павелічэнне х1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Мінімальны памер тэкстуры" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Паролі не супадаюць!" @@ -1816,26 +1830,6 @@ msgstr "Аўтаскок" msgid "Backward" msgstr "Назад" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Змяніць камеру" @@ -1929,30 +1923,10 @@ msgstr "Красціся" msgid "Special" msgstr "Адмысловая" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Адмысловая" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Кінематаграфічнасць" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Кінематаграфічнасць" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Палёт" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Размова" @@ -2083,14 +2057,6 @@ msgstr "" "Для вертыкальна сціснутай фігуры, што падыходзіць\n" "востраву, зрабіце ўсе 3 лікі роўнымі для неапрацаванай формы." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = паралаксная аклюзія са звесткамі аб нахіле (хутка).\n" -"1 = рэльефнае тэкстураванне (павольней, але якасней)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "2D-шум, што кіруе формай/памерам горных хрыбтоў." @@ -2213,6 +2179,10 @@ msgstr "" msgid "ABM interval" msgstr "Інтэрвал захавання мапы" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "Absolute limit of queued blocks to emerge" @@ -2468,10 +2438,6 @@ msgstr "Будаваць на месцы гульца" msgid "Builtin" msgstr "Убудаваны" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Рэльефнае тэкстураванне" - #: src/settings_translation_file.cpp #, fuzzy msgid "" @@ -2548,22 +2514,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Змена інтэрфейсу галоўнага меню:\n" -"- full: выбар свету для адзіночнай альбо сеткавай гульні, асобны спіс " -"чужых сервераў.\n" -"- simple: адзін свет для адзіночнай гульні ў меню, дзе спіс чужых " -"сервераў; можа быць карысна для невелічкіх экранаў.\n" -"Прадвызначана: simple для Android, full для ўсіх астатніх." - #: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" @@ -2729,6 +2679,10 @@ msgstr "Вышыня кансолі" msgid "ContentDB Flag Blacklist" msgstr "Чорны спіс сцяжкоў ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "URL ContentDB" @@ -2790,7 +2744,10 @@ msgid "Crosshair alpha" msgstr "Празрыстасць перакрыжавання" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Празрыстасць перакрыжавання (паміж 0 і 255)." #: src/settings_translation_file.cpp @@ -2798,8 +2755,10 @@ msgid "Crosshair color" msgstr "Колер перакрыжавання" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Колер перакрыжавання (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2904,14 +2863,6 @@ msgstr "Вызначае буйнамаштабную структуру рэч msgid "Defines location and terrain of optional hills and lakes." msgstr "Вызначае размяшчэнне і рэльеф дадатковых пагоркаў і азёр." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Вызначае крок дыскрэтызацыі тэкстуры.\n" -"Больш высокае значэнне прыводзіць да больш гладкіх мапаў нармаляў." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Вызначае базавы ўзровень зямлі." @@ -2991,6 +2942,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Дэсінхранізаваць анімацыю блока" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Клавіша ўправа" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Часціцы пры капанні" @@ -3054,7 +3010,8 @@ msgid "Enable console window" msgstr "Уключаць акно кансолі" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Уключыць творчы рэжым для новых мап." #: src/settings_translation_file.cpp @@ -3158,17 +3115,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Уключае анімацыю прадметаў інвентару." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Уключае рэльефнае тэкстураванне. Мапы нармаляў мусяць быць пакункам тэкстур " -"ці створанымі аўтаматычна.\n" -"Патрабуюцца ўключаныя шэйдэры." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Уключае кэшаванне павернутых вонкі сетак." @@ -3177,22 +3123,6 @@ msgstr "Уключае кэшаванне павернутых вонкі сет msgid "Enables minimap." msgstr "Уключае мінімапу." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Уключае генерацыю мапаў нармаляў лётма (эфект Emboss).\n" -"Патрабуецца рэльефнае тэкстураванне." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Уключае паралакснае аклюзіўнае тэкстураванне.\n" -"Патрабуюцца ўключаныя шэйдэры." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3209,14 +3139,6 @@ msgstr "Інтэрвал друкавання даных прафіляванн msgid "Entity methods" msgstr "Метады сутнасці" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Эксперыментальны параметр, які можа прывесці да візуальных прагалаў\n" -"паміж блокамі пры значэнні большым за 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3228,8 +3150,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS у меню паўзы" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Максімальны FPS, калі гульня прыпыненая." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3560,10 +3483,6 @@ msgstr "Фільтр маштабавання графічнага інтэрф msgid "GUI scaling filter txr2img" msgstr "txr2img-фільтр маштабавання графічнага інтэрфейсу" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Генерацыя мапы нармаляў" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Глабальныя зваротныя выклікі" @@ -3625,8 +3544,8 @@ msgstr "Клавіша пераключэння HUD" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Апрацоўка састарэлых выклікаў Lua API:\n" @@ -4153,6 +4072,11 @@ msgstr "ID джойсціка" msgid "Joystick button repetition interval" msgstr "Інтэрвал паўтору кнопкі джойсціка" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Тып джойсціка" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Адчувальнасць джойсціка" @@ -4253,6 +4177,17 @@ msgstr "" "Глядзіце http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавіша скока.\n" +"Глядзіце http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4395,6 +4330,17 @@ msgstr "" "Глядзіце http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавіша скока.\n" +"Глядзіце http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5153,10 +5099,6 @@ msgstr "Ніжні ліміт Y для падзямелляў." msgid "Main menu script" msgstr "Скрыпт галоўнага меню" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Стыль галоўнага меню" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5173,6 +5115,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Робіць усе вадкасці непразрыстымі" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Каталог мапаў" @@ -5357,7 +5307,8 @@ msgid "Maximum FPS" msgstr "Максімальны FPS (кадраў за секунду)" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Максімальны FPS, калі гульня прыпыненая." #: src/settings_translation_file.cpp @@ -5417,6 +5368,13 @@ msgstr "" "Максімальная колькасць блокаў у чарзе на загрузку з файла.\n" "Пакінце пустым для аўтаматычнага выбару неабходнага значэння." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Максімальная колькасць прымусова загружаемых блокаў мапы." @@ -5674,14 +5632,6 @@ msgstr "Інтэрвал абнаўлення блокаў" msgid "Noises" msgstr "Шумы" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Дыскрэтызацыя мапы нармаляў" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Моц мапы нармаляў" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Колькасць узнікаючых патокаў" @@ -5728,10 +5678,6 @@ msgstr "" "Гэта кампраміс паміж дадатковымі выдаткамі на транзакцыю sqlite\n" "і спажываннем памяці (4096 = 100 МБ, як правіла)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Колькасць ітэрацый паралакснай аклюзіі." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Сеціўны рэпазіторый" @@ -5759,34 +5705,6 @@ msgstr "" "Адкрыць меню паўзы калі акно страціла фокус. Не будзе працаваць калі якое-" "небудзь меню ўжо адкрыта." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Агульны зрух эфекту паралакснай аклюзіі. Звычайна маштаб/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Агульны маштаб эфекту паралакснай аклюзіі." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Паралаксная аклюзія" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Зрух паралакснай аклюзіі" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Ітэрацыі паралакснай аклюзіі" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Рэжым паралакснай аклюзіі" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Маштаб паралакснай аклюзіі" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5855,6 +5773,16 @@ msgstr "Клавіша нахілення руху" msgid "Pitch move mode" msgstr "Рэжым нахілення руху" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Клавіша палёту" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Інтэрвал паўторнай пстрычкі правай кнопкі мышы" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6037,10 +5965,6 @@ msgstr "Памер шуму падводных хрыбтоў" msgid "Right key" msgstr "Клавіша ўправа" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Інтэрвал паўторнай пстрычкі правай кнопкі мышы" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Глыбіня рэчышча" @@ -6339,6 +6263,19 @@ msgstr "Паказваць адладачную інфармацыю" msgid "Show entity selection boxes" msgstr "Паказваць вобласць вылучэння" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Прызначыць мову. Пакіньце пустым, каб выкарыстаць мову сістэмы.\n" +"Пасля змены мовы патрэбна перазапусціць гульню." + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Паведамленне аб выключэнні" @@ -6493,10 +6430,6 @@ msgstr "Крок шуму распаўсюджвання гор" msgid "Strength of 3D mode parallax." msgstr "Моц паралакса." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Моц згенераваных мапаў нармаляў." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6603,6 +6536,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "URL рэпазіторыя" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "Ідэнтыфікатар джойсціка для выкарыстання" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6670,13 +6608,14 @@ msgstr "" "Неабходна наладжваць разам з active_object_range." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Рухавік адмалёўкі для Irrlicht.\n" "Пасля змены гэтага параметра спатрэбіцца перазупуск.\n" @@ -6715,6 +6654,12 @@ msgstr "" "элементы.\n" "Значэнне 0 выключае гэтую функцыю." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6724,10 +6669,10 @@ msgstr "" "джойсціка." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "Час у секундах паміж паўторамі падзей пры ўтрыманні правай кнопкі мышы." @@ -6889,6 +6834,17 @@ msgstr "" "пакета тэкстур з высокай раздзяляльнай здольнасцю.\n" "Гама-карэкцыя пры памяншэнні маштабу не падтрымліваецца." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Выкарыстоўваць трылінейную фільтрацыю пры маштабаванні тэкстур." @@ -7128,6 +7084,12 @@ msgstr "" "Выкарыстанне шрыфтоў FreeType. Падтрымка FreeType мусіць быць уключаная " "падчас кампіляцыі." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7269,6 +7231,24 @@ msgstr "Y-узровень нізкага рэльефу і марскога д msgid "Y-level of seabed." msgstr "Y-узровень марскога дна." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Таймаўт спампоўвання файла па cURL" @@ -7281,23 +7261,12 @@ msgstr "Ліміт адначасовых злучэнняў cURL" msgid "cURL timeout" msgstr "Таймаўт cURL" -#~ msgid "Ok" -#~ msgstr "Добра" - -#~ msgid "Back" -#~ msgstr "Назад" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Спампоўванне і ўсталёўка $1. Калі ласка, пачакайце…" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Абмежаванне чэргаў на дыску" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Інтэнсіўнасць паралакснай аклюзіі" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Каталог для захоўвання здымкаў экрана." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = паралаксная аклюзія са звесткамі аб нахіле (хутка).\n" +#~ "1 = рэльефнае тэкстураванне (павольней, але якасней)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7311,9 +7280,45 @@ msgstr "Таймаўт cURL" #~ msgid "Alters how mountain-type floatlands taper above and below midpoint." #~ msgstr "Кіруе звужэннем астравоў горнага тыпу ніжэй сярэдняй кропкі." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Вы ўпэўненыя, што хочаце скінуць свет адзіночнай гульні?" + +#~ msgid "Back" +#~ msgstr "Назад" + +#~ msgid "Bump Mapping" +#~ msgstr "Тэкстураванне маскамі" + +#~ msgid "Bumpmapping" +#~ msgstr "Рэльефнае тэкстураванне" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Цэнтр сярэдняга ўздыму крывой святла." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Змена інтэрфейсу галоўнага меню:\n" +#~ "- full: выбар свету для адзіночнай альбо сеткавай гульні, асобны спіс " +#~ "чужых сервераў.\n" +#~ "- simple: адзін свет для адзіночнай гульні ў меню, дзе спіс чужых " +#~ "сервераў; можа быць карысна для невелічкіх экранаў.\n" +#~ "Прадвызначана: simple для Android, full для ўсіх астатніх." + +#~ msgid "Config mods" +#~ msgstr "Налады мадыфікацый" + +#~ msgid "Configure" +#~ msgstr "Наладзіць" + +#~ msgid "Content Store" +#~ msgstr "Крама дадаткаў" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7325,6 +7330,9 @@ msgstr "Таймаўт cURL" #~ msgstr "" #~ "Кіруе шырынёй тунэляў. Меншае значэнне стварае больш шырокія тунэлі." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Колер перакрыжавання (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Рэзкасць цемры" @@ -7335,6 +7343,13 @@ msgstr "Таймаўт cURL" #~ "Вызначае вобласці гладкага рэльефу лятучых астравоў.\n" #~ "Гладкая паверхня з'яўляецца, калі шум больш нуля." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Вызначае крок дыскрэтызацыі тэкстуры.\n" +#~ "Больш высокае значэнне прыводзіць да больш гладкіх мапаў нармаляў." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7344,12 +7359,49 @@ msgstr "Таймаўт cURL" #~ "азначэнняў біёму.\n" #~ "Y верхняй мяжы лавы ў вялікіх пячорах." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Спампоўванне і ўсталёўка $1. Калі ласка, пачакайце…" + #~ msgid "Enable VBO" #~ msgstr "Уключыць VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Уключае рэльефнае тэкстураванне. Мапы нармаляў мусяць быць пакункам " +#~ "тэкстур ці створанымі аўтаматычна.\n" +#~ "Патрабуюцца ўключаныя шэйдэры." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Уключае кінематаграфічнае танальнае адлюстраванне" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Уключае генерацыю мапаў нармаляў лётма (эфект Emboss).\n" +#~ "Патрабуецца рэльефнае тэкстураванне." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Уключае паралакснае аклюзіўнае тэкстураванне.\n" +#~ "Патрабуюцца ўключаныя шэйдэры." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Эксперыментальны параметр, які можа прывесці да візуальных прагалаў\n" +#~ "паміж блокамі пры значэнні большым за 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS у меню паўзы" + #~ msgid "Floatland base height noise" #~ msgstr "Шум базавай вышыні лятучых астравоў" @@ -7362,47 +7414,15 @@ msgstr "Таймаўт cURL" #~ msgid "Gamma" #~ msgstr "Гама" +#~ msgid "Generate Normal Maps" +#~ msgstr "Генерацыя мапы нармаляў" + +#~ msgid "Generate normalmaps" +#~ msgstr "Генерацыя мапы нармаляў" + #~ msgid "IPv6 support." #~ msgstr "Падтрымка IPv6." -#~ msgid "Lava depth" -#~ msgstr "Глыбіня лавы" - -#~ msgid "Lightness sharpness" -#~ msgstr "Рэзкасць паваротлівасці" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Шлях да TrueTypeFont ці растравага шрыфту." - -#~ msgid "Shadow limit" -#~ msgstr "Ліміт ценяў" - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Моц сярэдняга ўздыму крывой святла." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Гэты шрыфт будзе выкарыстоўваецца для некаторых моў." - -#~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." -#~ msgstr "" -#~ "Тыповая максімальная вышыня, вышэй і ніжэй сярэдняй кропкі гор лятучых " -#~ "астравоў." - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Варыяцыя вышыні пагоркаў і глыбінь азёр на гладкай мясцовасці лятучых " -#~ "астравоў." - -#~ msgid "Waving water" -#~ msgstr "Хваляванне вады" - -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Y-узровень сярэдняй кропкі і паверхні азёр лятучых астравоў." - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-узровень, да якога распаўсюджваюцца цені лятучых астравоў." - #~ msgid "" #~ "If enabled together with fly mode, makes move directions relative to the " #~ "player's pitch." @@ -7410,34 +7430,20 @@ msgstr "Таймаўт cURL" #~ "Калі ўключана адначасова з рэжымам палёту, то вызначае напрамак руху " #~ "адносна кроку гульца." -#~ msgid "Projecting dungeons" -#~ msgstr "Праектаванне падзямелляў" +#~ msgid "Lava depth" +#~ msgstr "Глыбіня лавы" -#~ msgid "" -#~ "Map generation attributes specific to Mapgen v7.\n" -#~ "'ridges' enables the rivers.\n" -#~ "Flags that are not enabled are not modified from the default.\n" -#~ "Flags starting with 'no' are used to explicitly disable them." -#~ msgstr "" -#~ "Атрыбуты генерацыі мапы для генератара мапы 7.\n" -#~ "Параметр \"ridges\" (хрыбты) ўключае рэкі.\n" -#~ "Нявызначаныя параметры прадвызначана не змяняюцца.\n" -#~ "Параметры, што пачынаюцца з \"no\", выкарыстоўваюцца для выключэння." +#~ msgid "Lightness sharpness" +#~ msgstr "Рэзкасць паваротлівасці" -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Выступ падзямелляў па-над рэльефам." +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Абмежаванне чэргаў на дыску" -#~ msgid "Waving Water" -#~ msgstr "Хваляванне вады" +#~ msgid "Main" +#~ msgstr "Галоўнае меню" -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y верхняга ліміту лавы ў шырокіх пячорах." - -#~ msgid "Select Package File:" -#~ msgstr "Абраць файл пакунка:" - -#~ msgid "Content Store" -#~ msgstr "Крама дадаткаў" +#~ msgid "Main menu style" +#~ msgstr "Стыль галоўнага меню" #~ msgid "" #~ "Map generation attributes specific to Mapgen Carpathian.\n" @@ -7456,3 +7462,136 @@ msgstr "Таймаўт cURL" #~ "Атрыбуты генерацыі мапы для генератара мапы 5.\n" #~ "Нявызначаныя атрыбуты прадвызначана не змяняюцца.\n" #~ "Атрыбуты, што пачынаюцца з 'no' выкарыстоўваюцца для іх выключэння." + +#~ msgid "" +#~ "Map generation attributes specific to Mapgen v7.\n" +#~ "'ridges' enables the rivers.\n" +#~ "Flags that are not enabled are not modified from the default.\n" +#~ "Flags starting with 'no' are used to explicitly disable them." +#~ msgstr "" +#~ "Атрыбуты генерацыі мапы для генератара мапы 7.\n" +#~ "Параметр \"ridges\" (хрыбты) ўключае рэкі.\n" +#~ "Нявызначаныя параметры прадвызначана не змяняюцца.\n" +#~ "Параметры, што пачынаюцца з \"no\", выкарыстоўваюцца для выключэння." + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Мінімапа ў рэжыме радару, павелічэнне х2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Мінімапа ў рэжыме радару, павелічэнне х4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Мінімапа ў рэжыме паверхні, павелічэнне х4" + +#~ msgid "Name/Password" +#~ msgstr "Імя/Пароль" + +#~ msgid "No" +#~ msgstr "Не" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Дыскрэтызацыя мапы нармаляў" + +#~ msgid "Normalmaps strength" +#~ msgstr "Моц мапы нармаляў" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Колькасць ітэрацый паралакснай аклюзіі." + +#~ msgid "Ok" +#~ msgstr "Добра" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Агульны зрух эфекту паралакснай аклюзіі. Звычайна маштаб/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Агульны маштаб эфекту паралакснай аклюзіі." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Паралаксная аклюзія" + +#~ msgid "Parallax occlusion" +#~ msgstr "Паралаксная аклюзія" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Зрух паралакснай аклюзіі" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Ітэрацыі паралакснай аклюзіі" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Рэжым паралакснай аклюзіі" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Маштаб паралакснай аклюзіі" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Інтэнсіўнасць паралакснай аклюзіі" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Шлях да TrueTypeFont ці растравага шрыфту." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Каталог для захоўвання здымкаў экрана." + +#~ msgid "Projecting dungeons" +#~ msgstr "Праектаванне падзямелляў" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Скінуць свет адзіночнай гульні" + +#~ msgid "Select Package File:" +#~ msgstr "Абраць файл пакунка:" + +#~ msgid "Shadow limit" +#~ msgstr "Ліміт ценяў" + +#~ msgid "Start Singleplayer" +#~ msgstr "Пачаць адзіночную гульню" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Моц згенераваных мапаў нармаляў." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Моц сярэдняга ўздыму крывой святла." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Гэты шрыфт будзе выкарыстоўваецца для некаторых моў." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Кінематаграфічнасць" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Тыповая максімальная вышыня, вышэй і ніжэй сярэдняй кропкі гор лятучых " +#~ "астравоў." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Варыяцыя вышыні пагоркаў і глыбінь азёр на гладкай мясцовасці лятучых " +#~ "астравоў." + +#~ msgid "Waving Water" +#~ msgstr "Хваляванне вады" + +#~ msgid "Waving water" +#~ msgstr "Хваляванне вады" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Выступ падзямелляў па-над рэльефам." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y верхняга ліміту лавы ў шырокіх пячорах." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Y-узровень сярэдняй кропкі і паверхні азёр лятучых астравоў." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-узровень, да якога распаўсюджваюцца цені лятучых астравоў." + +#~ msgid "Yes" +#~ msgstr "Так" diff --git a/po/ja_KS/minetest.po b/po/bg/minetest.po similarity index 91% rename from po/ja_KS/minetest.po rename to po/bg/minetest.po index 257974819..62011a94a 100644 --- a/po/ja_KS/minetest.po +++ b/po/bg/minetest.po @@ -1,72 +1,78 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# msgid "" msgstr "" -"Project-Id-Version: Japanese (Kansai) (Minetest)\n" +"Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy \n" -"Language-Team: Japanese (Kansai) \n" -"Language: ja_KS\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-08-04 04:41+0000\n" +"Last-Translator: atomicbeef \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.2-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Прераждането" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Ти умря" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Добре" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "" +msgstr "Имаше грешка в Lua скрипт:" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Имаше грешка:" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "" +msgstr "Главното меню" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "Повтаряне на връзката" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" +msgstr "Сървърт поиска нова връзка:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " -msgstr "" +msgstr "Версията на протокола е грешна. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "" +msgstr "Сървърт налага версия $1 на протокола. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" +msgstr "Сървърът подкрепя версии на протокола между $1 и $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "" +msgstr "Ние само подкрепяме версия $1 на протокола." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "" +msgstr "Ние подкрепяме версии на протокола между $1 и $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -74,372 +80,448 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "Отказ" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "Зависимости:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "" +msgstr "Деактивиране на всички" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "Деактивиране на модпака" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "" +msgstr "Актиривране на всички" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "" +msgstr "Активиране на модпака" #: builtin/mainmenu/dlg_config_world.lua msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" +"Активиране на мода \"$1\" беше неуспешно, защото съдържа забранени символи. " +"Само символите [a-z0-9_] са разрешени." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Намиране на Още Модове" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "" +msgstr "Мод:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "Няма (незадължителни) зависимости" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "Няма описание за играта." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "" +msgstr "Няма задължителни зависимости" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "" +msgstr "Няма описание за модпака." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "Няма незадължителни зависимости" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "Незадължителни зависимости:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Записване" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Свят:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" +msgstr "Активиран" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Изтегля..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" +msgstr "Всички пакети" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" +msgstr "Обратно към Главното Меню" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB не е налично когато Minetest е съставен без cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "" +msgstr "Изтегля..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "Изтеглянето на $1 беше неуспешно" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "Игри" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "Инсталиране" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Инсталиране" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Незадължителни зависимости:" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "" +msgstr "Модове" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "Получаване на пакети беше неуспешно" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" +msgstr "Няма резултати" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "No updates" +msgstr "Актуализация" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "Пакети на текстури" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "Деинсталиране" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" +msgstr "Актуализация" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "" +msgstr "Вече има свят с името \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Допълнителен терен" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Студ от височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Сух от височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Смесване между природни зони" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Природни зони" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Пещери" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "Пещери" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "" +msgstr "Създаване" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "Украси" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" +msgstr "Изтегляне на игра, например Minetest Game, от minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "Изтегли един от minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "Тъмници" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Равен терен" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Земни маси в небето" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Земни маси в небето (експериментално)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "Игра" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Създаване на нефрактален терен: Морета и под земята" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Хълми" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Влажни реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Нараства влажност около реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Езера" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Ниска влажност и висока топлина причинява ниски или сухи реки" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "" +msgstr "Създаване на света" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Флагове за създаване на света" #: builtin/mainmenu/dlg_create_world.lua msgid "Mapgen-specific flags" -msgstr "" +msgstr "Флагове спесифични за създване на света" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Планини" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Кален поток" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Мрежа от тунели и пещери" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "Няма избрана игра" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Намалява топлина с височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Намалява влажност с височина" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Реки на морското ниво" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "Семе" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Гладка промяна между природни зони" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Появяване на структури на терена (няма ефект на трева от джунгла и дървета " +"създадени от v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Появяване на структури на терена, типично дървета и растения" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Умерен, Пустиня" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Умерен, Пустиня, Джунгла" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Умерен, Пустиня, Джунгла, Тундра, Тайга" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Ерозия на повърхност на терен" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Трева в джунглата и дървета" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Вариране на дълбочина на реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Много големи пещери дълбоко под земята" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." -msgstr "" +msgstr "Внимание: Тестът за Развитие е предназначен за разработници." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" -msgstr "" +msgstr "Име на света" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." -msgstr "" +msgstr "Нямаш инсалирани игри." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "" +msgstr "Сигурен ли си че искаш да изтриваш \"$1\"?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "" +msgstr "Изтриване" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" +msgstr "pkgmgr: Изтриване на \"$1\" беше неуспешно" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "" +msgstr "pkgmgr: Грешна пътека \"$1\"" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "" +msgstr "Да изтриe ли света \"$1\"?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "" +msgstr "Приемане" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "" +msgstr "Преименуване на модпак:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" +"Този модпак има изрично име дадено в неговия modpack.conf, което ще отменя " +"всяко преименуване тука." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -454,16 +536,13 @@ msgid "< Back to Settings page" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" +msgstr "Преглеждане" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "Изключено" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" @@ -471,7 +550,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "Включено" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" @@ -483,7 +562,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" -msgstr "" +msgstr "Изместване" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" @@ -502,8 +581,13 @@ msgid "Restore Default" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +#, fuzzy msgid "Scale" -msgstr "" +msgstr "Мащаб" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Търсене" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" @@ -530,8 +614,9 @@ msgid "X" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "X spread" -msgstr "" +msgstr "Разпространение на Х-оста" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" @@ -539,7 +624,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "" +msgstr "Разпространение на У-оста" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" @@ -620,6 +705,20 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Зарежда..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Опитай да включиш публичния списък на сървъри отново и си провай интернет " +"връзката." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -673,7 +772,13 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -693,14 +798,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -717,7 +818,7 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -728,6 +829,10 @@ msgstr "" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -736,6 +841,10 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -752,23 +861,23 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" @@ -776,16 +885,16 @@ msgstr "" msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -813,10 +922,6 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -825,10 +930,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -841,10 +942,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -853,10 +950,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -885,18 +978,10 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "" @@ -909,6 +994,11 @@ msgstr "" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Земни маси в небето (експериментално)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -953,22 +1043,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1039,7 +1113,7 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "yes" +msgstr "no" #: src/client/game.cpp msgid "" @@ -1128,18 +1202,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1226,14 +1297,6 @@ msgstr "" msgid "Fog enabled" msgstr "" -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam enabled" -msgstr "" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1254,14 +1317,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura enabled" -msgstr "" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1274,34 +1329,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1346,10 +1373,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1402,10 +1425,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1422,14 +1441,6 @@ msgstr "" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1710,6 +1721,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1748,26 +1777,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" @@ -1860,26 +1869,10 @@ msgstr "" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -1951,7 +1944,7 @@ msgstr "" #. language code (e.g. "de" for German). #: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp msgid "LANG_CODE" -msgstr "ja_KS" +msgstr "bg" #: src/settings_translation_file.cpp msgid "" @@ -1989,12 +1982,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2101,6 +2088,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2334,10 +2325,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2408,16 +2395,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2569,6 +2546,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2626,7 +2607,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2634,7 +2617,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2733,12 +2718,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2809,6 +2788,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2870,7 +2853,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2957,14 +2940,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -2973,18 +2948,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3001,12 +2964,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3018,7 +2975,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3319,10 +3276,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3377,8 +3330,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3844,6 +3797,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3923,6 +3880,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4022,6 +3986,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4579,10 +4550,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4596,6 +4563,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4760,7 +4735,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4808,6 +4783,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5037,14 +5019,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5070,10 +5044,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5099,34 +5069,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5192,6 +5134,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5347,10 +5297,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5602,6 +5548,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5731,10 +5687,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5828,6 +5780,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5887,8 +5843,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5912,6 +5868,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5920,9 +5882,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6057,6 +6018,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6259,6 +6231,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6381,6 +6359,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6392,3 +6388,6 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL timeout" msgstr "" + +#~ msgid "View" +#~ msgstr "Гледане" diff --git a/po/ca/minetest.po b/po/ca/minetest.po index a1ed767ff..f9aecf265 100644 --- a/po/ca/minetest.po +++ b/po/ca/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Catalan (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: Catalan \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-03 04:31+0000\n" +"Last-Translator: Vít Skalický \n" "Language-Team: Czech \n" "Language: cs\n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Oživit" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Zemřel jsi" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -38,10 +46,6 @@ msgstr "Znovu se připojit" msgid "The server has requested a reconnect:" msgstr "Server vyžaduje znovupřipojení se:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Nahrávám..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Neshoda verze protokolu. " @@ -54,12 +58,6 @@ msgstr "Server vyžaduje protokol verze $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Server podporuje verze protokolů mezi $1 a $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Zkuste znovu povolit seznam veřejných serverů a zkontrolujte své internetové " -"připojení." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Podporujeme pouze protokol verze $1." @@ -68,7 +66,8 @@ msgstr "Podporujeme pouze protokol verze $1." msgid "We support protocol versions between version $1 and $2." msgstr "Podporujeme verze protokolů mezi $1 a $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Podporujeme verze protokolů mezi $1 a $2." msgid "Cancel" msgstr "Zrušit" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Závislosti:" @@ -108,7 +108,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Najít více modů" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -151,14 +151,56 @@ msgstr "Svět:" msgid "enabled" msgstr "zapnuto" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" již existuje. Chcete jej přepsat?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 od $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 se stahuje,\n" +"$2 čeká ve frontě" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 se stahuje..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Všechny balíčky" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Klávesa je již používána" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Zpět do hlavní nabídky" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Založit hru" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -181,6 +223,16 @@ msgstr "Hry" msgid "Install" msgstr "Instalovat" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instalovat" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Volitelné závislosti:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -195,9 +247,25 @@ msgid "No results" msgstr "Žádné výsledky" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Hledat" +#, fuzzy +msgid "No updates" +msgstr "Aktualizovat" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,7 +280,11 @@ msgid "Update" msgstr "Aktualizovat" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -478,11 +550,6 @@ msgstr "< Zpět do Nastavení" msgid "Browse" msgstr "Procházet" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Klient" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Vypnuto" @@ -527,6 +594,10 @@ msgstr "Obnovit výchozí" msgid "Scale" msgstr "Přiblížení" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Hledat" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Vyberte adresář" @@ -645,6 +716,21 @@ msgstr "Selhala instalace rozšíření $1" msgid "Unable to install a modpack as a $1" msgstr "Selhala instalace rozšíření $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Nahrávám..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Uživatelské skripty nejsou povoleny" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Zkuste znovu povolit seznam veřejných serverů a zkontrolujte své internetové " +"připojení." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Procházet online obsah" @@ -698,7 +784,14 @@ msgid "Credits" msgstr "Autoři" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Vyberte adresář" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -718,14 +811,10 @@ msgid "Bind Address" msgstr "Poslouchat na Adrese" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Nastavit" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kreativní mód" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Povolit zranění" @@ -742,8 +831,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Jméno/Heslo" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -753,6 +842,11 @@ msgstr "Nový" msgid "No world created or selected!" msgstr "Žádný svět nebyl vytvořen ani vybrán!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Nové heslo" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Spustit hru" @@ -761,6 +855,11 @@ msgstr "Spustit hru" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Vyberte svět:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Vyberte svět:" @@ -777,23 +876,23 @@ msgstr "Spustit hru" msgid "Address / Port" msgstr "Adresa / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Připojit" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreativní mód" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Zranění povoleno" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Smazat oblíbené" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Oblíbené" @@ -801,16 +900,16 @@ msgstr "Oblíbené" msgid "Join Game" msgstr "Připojit se ke hře" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Jméno / Heslo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP (hráč proti hráči) povoleno" @@ -838,10 +937,6 @@ msgstr "Všechna Nastavení" msgid "Antialiasing:" msgstr "Antialiasing:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Jste si jisti, že chcete resetovat místní svět?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Pamatovat si velikost obrazovky" @@ -850,10 +945,6 @@ msgstr "Pamatovat si velikost obrazovky" msgid "Bilinear Filter" msgstr "Bilineární filtr" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump mapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Změnit klávesy" @@ -866,10 +957,6 @@ msgstr "Propojené sklo" msgid "Fancy Leaves" msgstr "Vícevrstevné listí" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Generovat Normální Mapy" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmapy zapnuté" @@ -878,10 +965,6 @@ msgstr "Mipmapy zapnuté" msgid "Mipmap + Aniso. Filter" msgstr "Mipmapy + anizotropní filtr" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ne" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Filtrování vypnuto" @@ -910,18 +993,10 @@ msgstr "Neprůhledné listí" msgid "Opaque Water" msgstr "Neprůhledná voda" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax occlusion" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Částice" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Reset místního světa" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Obrazovka:" @@ -934,6 +1009,11 @@ msgstr "Nastavení" msgid "Shaders" msgstr "Shadery" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Výška létajících ostrovů" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shadery (není dostupné)" @@ -978,22 +1058,6 @@ msgstr "Vlnění Kapalin" msgid "Waving Plants" msgstr "Vlnění rostlin" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ano" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Nastavení modů" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hlavní nabídka" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Start místní hry" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Vypršel časový limit připojení." @@ -1156,18 +1220,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Ovládání:\n" "- %s: pohyb dopředu\n" @@ -1280,16 +1341,6 @@ msgstr "Mlha je zakázána" msgid "Fog enabled" msgstr "Mlha je povolena" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Mlha je zakázána" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Mlha je povolena" - #: src/client/game.cpp msgid "Game info:" msgstr "Informace o hře:" @@ -1310,16 +1361,6 @@ msgstr "Definice věcí..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Mlha je zakázána" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Zranění povoleno" - #: src/client/game.cpp msgid "Media..." msgstr "Média..." @@ -1332,34 +1373,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Minimapa je aktuálně zakázána" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minimapa je skryta" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minimapa v režimu radar, Přiblížení x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minimapa v režimu radar, Přiblížení x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minimapa v režimu radar, Přiblížení x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimapa v režimu povrch, Přiblížení x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimapa v režimu povrch, Přiblížení x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimapa v režimu povrch, Přiblížení x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Režim bez ořezu zakázán" @@ -1404,10 +1417,6 @@ msgstr "Vzdálený server" msgid "Resolving address..." msgstr "Překládám adresu..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Oživit" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Vypínání..." @@ -1460,10 +1469,6 @@ msgstr "Hlasitost nastavena na %d%%" msgid "Wireframe shown" msgstr "Obrysy zobrazeny" -#: src/client/game.cpp -msgid "You died" -msgstr "Zemřel jsi" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Přiblížení je aktuálně zakázáno" @@ -1480,16 +1485,6 @@ msgstr "Chat skryt" msgid "Chat shown" msgstr "Chat zobrazen" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Chat skryt" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Chat zobrazen" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Ovládací prvky skryty" @@ -1770,6 +1765,25 @@ msgstr "X Tlačítko 2" msgid "Zoom" msgstr "Přiblížení" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimapa je skryta" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimapa v režimu radar, Přiblížení x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimapa v režimu povrch, Přiblížení x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Minimální velikost textury k filtrování" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Hesla se neshodují!" @@ -1813,26 +1827,6 @@ msgstr "Automaticky skákat" msgid "Backward" msgstr "Vzad" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Změnit nastavení kamery" @@ -1927,30 +1921,10 @@ msgstr "Plížit se" msgid "Special" msgstr "Speciální" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Speciální" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Plynulá kamera" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Plynulá kamera" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Zapnout/Vypnout ovládací prvky" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Zapnout/Vypnout létání" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Zapnout/Vypnout záznam chatu" @@ -2080,14 +2054,6 @@ msgstr "" "Výchozí je pro svisle stlačený tvar, vhodný například\n" "pro ostrov, nastavte všechna 3 čísla stejně pro ryzí tvar." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax occlusion s informacemi o sklonu (rychlejší).\n" -"1 = mapování reliéfu (pomalejší, ale přesnější)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "2D šum, který definuje tvar/velikost horských útvarů." @@ -2210,6 +2176,10 @@ msgstr "Zpráva, která se zobrazí všem klientům, když se server vypne." msgid "ABM interval" msgstr "Interval Aktivní Blokové Modifikace (ABM)" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "Absolute limit of queued blocks to emerge" @@ -2471,10 +2441,6 @@ msgstr "Stavění uvnitř hráče" msgid "Builtin" msgstr "Zabudované" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bump mapování" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2546,16 +2512,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" @@ -2717,6 +2673,10 @@ msgstr "Šírka konzole" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2779,7 +2739,10 @@ msgid "Crosshair alpha" msgstr "Průhlednost zaměřovače" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Průhlednost zaměřovače (mezi 0 a 255)." #: src/settings_translation_file.cpp @@ -2787,8 +2750,10 @@ msgid "Crosshair color" msgstr "Barva zaměřovače" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Barva zaměřovače (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2896,14 +2861,6 @@ msgstr "Určuje makroskopickou strukturu koryta řeky." msgid "Defines location and terrain of optional hills and lakes." msgstr "Určuje pozici a terén možných hor a jezer." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Určuje vyhlazovací krok textur.\n" -"Vyšší hodnota znamená vyhlazenější normálové mapy." - #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the base ground level." @@ -2987,6 +2944,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Nesynchronizovat animace bloků" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Klávesa doprava" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Částicové efekty při těžení" @@ -3052,7 +3014,8 @@ msgid "Enable console window" msgstr "Povolit konzolové okno" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Zapnout kreativní mód pro nové mapy." #: src/settings_translation_file.cpp @@ -3156,17 +3119,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Povolí animaci věcí v inventáři." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Povolí bump mapping textur. Balík textur buď poskytne normálové mapy,\n" -"nebo musí být automaticky vytvořeny.\n" -"Nastavení vyžaduje zapnuté shadery." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Zapnout cachování geom. sítí otočených pomocí facedir." @@ -3175,22 +3127,6 @@ msgstr "Zapnout cachování geom. sítí otočených pomocí facedir." msgid "Enables minimap." msgstr "Zapne minimapu." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Zapne generování normálových map za běhu (efekt protlačení).\n" -"Nastavení vyžaduje zapnutý bump mapping." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Zapne parallax occlusion mapping.\n" -"Nastavení vyžaduje zapnuté shadery." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3207,14 +3143,6 @@ msgstr "Interval vypisování profilovacích dat enginu" msgid "Entity methods" msgstr "Metody entit" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Experimentální nastavení, může zapříčinit viditelné mezery mezi bloky,\n" -"je-li nastaveno na vyšší číslo než 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3226,8 +3154,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS v menu pauzy" +msgid "FPS when unfocused or paused" +msgstr "" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3561,10 +3489,6 @@ msgstr "Filtrovat při škálování GUI" msgid "GUI scaling filter txr2img" msgstr "Filtrovat při škálování GUI (txr2img)" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Generovat normálové mapy" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Globální callback funkce" @@ -3629,8 +3553,8 @@ msgstr "Klávesa pro přepnutí HUD (Head-Up Display)" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Zacházení s voláními zastaralého Lua API:\n" @@ -4177,6 +4101,11 @@ msgstr "ID joysticku" msgid "Joystick button repetition interval" msgstr "Interval opakování tlačítek joysticku" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Typ joysticku" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Citlivost otáčení pohledu joystickem" @@ -4278,6 +4207,17 @@ msgstr "" "viz. http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"klávesy pro snížení hlasitosti.\n" +"viz. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4387,6 +4327,17 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"klávesy pro snížení hlasitosti.\n" +"viz. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp #, fuzzy msgid "" @@ -5090,11 +5041,6 @@ msgstr "Maximální počet emerge front" msgid "Main menu script" msgstr "Skript hlavní nabídky" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Skript hlavní nabídky" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5108,6 +5054,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -5308,7 +5262,7 @@ msgid "Maximum FPS" msgstr "Maximální FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -5356,6 +5310,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5587,14 +5548,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5620,10 +5573,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5649,35 +5598,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Náklon parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Počet iterací parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Režim parallax occlusion" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Škála parallax occlusion" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5736,14 +5656,23 @@ msgid "Physics" msgstr "Fyzika" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Klávesa létání" +msgstr "létání" #: src/settings_translation_file.cpp msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Klávesa létání" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Interval opakování pravého kliknutí" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5901,10 +5830,6 @@ msgstr "" msgid "Right key" msgstr "Klávesa doprava" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Interval opakování pravého kliknutí" - #: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" @@ -6198,6 +6123,16 @@ msgstr "Zobrazit ladící informace" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Zpráva o vypnutí" @@ -6331,10 +6266,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "Síla vygenerovaných normálových map." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Síla vygenerovaných normálových map." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6429,6 +6360,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6488,8 +6423,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6513,6 +6448,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6521,9 +6462,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6661,6 +6601,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6872,6 +6823,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6996,6 +6953,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -7008,14 +6983,12 @@ msgstr "cURL limit paralelních stahování" msgid "cURL timeout" msgstr "cURL timeout" -#~ msgid "Ok" -#~ msgstr "OK" - -#~ msgid "Back" -#~ msgstr "Zpět" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Stahuji a instaluji $1, prosím čekejte..." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion s informacemi o sklonu (rychlejší).\n" +#~ "1 = mapování reliéfu (pomalejší, ale přesnější)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7026,6 +6999,24 @@ msgstr "cURL timeout" #~ "hodnoty.\n" #~ "Toto nastavení ovlivňuje pouze klienta a serverem není použito." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Jste si jisti, že chcete resetovat místní svět?" + +#~ msgid "Back" +#~ msgstr "Zpět" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapování" + +#~ msgid "Config mods" +#~ msgstr "Nastavení modů" + +#~ msgid "Configure" +#~ msgstr "Nastavit" + #, fuzzy #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" @@ -7037,6 +7028,9 @@ msgstr "cURL timeout" #~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." #~ msgstr "Ovládá šířku tunelů, menší hodnota vytváří širší tunely." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Barva zaměřovače (R,G,B)." + #~ msgid "" #~ "Defines areas of floatland smooth terrain.\n" #~ "Smooth floatlands occur when noise > 0." @@ -7044,12 +7038,56 @@ msgstr "cURL timeout" #~ "Určuje oblasti létajících ostrovů s rovinný terénem.\n" #~ "Terén bude rovný v místech, kde hodnota šumu bude větší než 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Určuje vyhlazovací krok textur.\n" +#~ "Vyšší hodnota znamená vyhlazenější normálové mapy." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Stahuji a instaluji $1, prosím čekejte..." + #~ msgid "Enable VBO" #~ msgstr "Zapnout VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Povolí bump mapping textur. Balík textur buď poskytne normálové mapy,\n" +#~ "nebo musí být automaticky vytvořeny.\n" +#~ "Nastavení vyžaduje zapnuté shadery." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Zapne filmový tone mapping" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Zapne generování normálových map za běhu (efekt protlačení).\n" +#~ "Nastavení vyžaduje zapnutý bump mapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Zapne parallax occlusion mapping.\n" +#~ "Nastavení vyžaduje zapnuté shadery." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentální nastavení, může zapříčinit viditelné mezery mezi bloky,\n" +#~ "je-li nastaveno na vyšší číslo než 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS v menu pauzy" + #~ msgid "Floatland base height noise" #~ msgstr "Šum základní výšky létajících ostrovů" @@ -7059,6 +7097,12 @@ msgstr "cURL timeout" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Generovat Normální Mapy" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generovat normálové mapy" + #~ msgid "IPv6 support." #~ msgstr "" #~ "Nastavuje reálnou délku dne.\n" @@ -7069,12 +7113,74 @@ msgstr "cURL timeout" #~ msgid "Lava depth" #~ msgstr "Hloubka velké jeskyně" -#~ msgid "Waving water" -#~ msgstr "Vlnění vody" +#~ msgid "Main" +#~ msgstr "Hlavní nabídka" -#~ msgid "Waving Water" -#~ msgstr "Vlnění vody" +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Skript hlavní nabídky" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa v režimu radar, Přiblížení x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa v režimu radar, Přiblížení x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa v režimu povrch, Přiblížení x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa v režimu povrch, Přiblížení x4" + +#~ msgid "Name/Password" +#~ msgstr "Jméno/Heslo" + +#~ msgid "No" +#~ msgstr "Ne" + +#~ msgid "Ok" +#~ msgstr "OK" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Náklon parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Počet iterací parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Režim parallax occlusion" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Škála parallax occlusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reset místního světa" #, fuzzy #~ msgid "Select Package File:" #~ msgstr "Vybrat soubor s modem:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Start místní hry" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Síla vygenerovaných normálových map." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Plynulá kamera" + +#~ msgid "Waving Water" +#~ msgstr "Vlnění vody" + +#~ msgid "Waving water" +#~ msgstr "Vlnění vody" + +#~ msgid "Yes" +#~ msgstr "Ano" diff --git a/po/da/minetest.po b/po/da/minetest.po index 0eef49cbc..5a11a9779 100644 --- a/po/da/minetest.po +++ b/po/da/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Danish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-03-31 10:14+0000\n" "Last-Translator: sfan5 \n" "Language-Team: Danish \n" "Language-Team: German \n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Wiederbeleben" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Sie sind gestorben" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,27 +46,17 @@ msgstr "Erneut verbinden" msgid "The server has requested a reconnect:" msgstr "Der Server hat um eine Wiederverbindung gebeten:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Lädt …" - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokollversion stimmt nicht überein. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "Server erfordert Protokollversion $1. " +msgstr "Der Server erfordert Protokollversion $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Server unterstützt Protokollversionen zwischen $1 und $2. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Versuchen Sie, die öffentliche Serverliste neu zu laden und prüfen Sie Ihre " -"Internetverbindung." +msgstr "Der Server unterstützt die Protokollversionen von $1 bis $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." @@ -68,7 +66,8 @@ msgstr "Wir unterstützen nur Protokollversion $1." msgid "We support protocol versions between version $1 and $2." msgstr "Wir unterstützen Protokollversionen zwischen $1 und $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Wir unterstützen Protokollversionen zwischen $1 und $2." msgid "Cancel" msgstr "Abbrechen" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Abhängigkeiten:" @@ -103,8 +103,8 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Fehler beim Aktivieren der Mod „$1“, da sie unerlaubte Zeichen enthält. Nur " -"die folgenden Zeichen sind erlaubt: [a-z0-9_]." +"Die Mod „$1“ konnte nicht aktiviert werden, da sie unzulässige Zeichen " +"enthält. Nur die folgenden Zeichen sind erlaubt: [a-z0-9_]." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" @@ -124,7 +124,7 @@ msgstr "Keine Spielbeschreibung verfügbar." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "Keine harten Abhängigkeiten" +msgstr "Keine notwendigen Abhängigkeiten" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -145,20 +145,60 @@ msgstr "Speichern" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "Welt:" +msgstr "Weltname:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "Aktiviert" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "„$1“ existiert bereits. Wollen Sie es überschreiben?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "$1 und $2 Abhängigkeiten werden installiert." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 von $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 laden herunter,\n" +"$2 warten" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 laden herunter…" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 benötigte Abhängigkeiten konnten nicht gefunden werden." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 wird installiert und $2 Abhängigkeiten werden übersprungen." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Alle Pakete" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Bereits installiert" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Zurück zum Hauptmenü" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Basis-Spiel:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -181,6 +221,14 @@ msgstr "Spiele" msgid "Install" msgstr "Installieren" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "$1 installieren" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Fehlende Abhängigkeiten installieren" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -188,16 +236,31 @@ msgstr "Mods" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "Es konnten keine Pakete empfangen werden" +msgstr "Es konnten keine Pakete abgerufen werden" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "Keine Treffer" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Suchen" +msgid "No updates" +msgstr "Keine Updates" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Nicht gefunden" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Überschreiben" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Bitte prüfen Sie, ob das Basis-Spiel korrekt ist." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Eingereiht" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,8 +275,12 @@ msgid "Update" msgstr "Aktualisieren" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Ansehen" +msgid "Update All [$1]" +msgstr "Alle aktualisieren [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Mehr Informationen im Webbrowser anschauen" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -306,7 +373,7 @@ msgstr "Seen" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" -"Niedrige Luftfeuchtigkeit und hohe Hitze erzeugen seichte oder " +"Niedrige Luftfeuchtigkeit und große Wärme erzeugen seichte oder " "ausgetrocknete Flüsse" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp @@ -327,7 +394,7 @@ msgstr "Berge" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "Schlammfließen" +msgstr "Erosion" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -339,11 +406,11 @@ msgstr "Kein Spiel ausgewählt" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "Reduziert Hitze mit der Höhe" +msgstr "Reduziert die Wärme mit der Höhe" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "Reduziert Luftfeuchte mit der Höhe" +msgstr "Reduziert Luftfeuchtigkeit mit der Höhe" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" @@ -351,12 +418,12 @@ msgstr "Flüsse" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "Flüsse am Meeresspiegel" +msgstr "Flüsse auf Meeresspiegelhöhe" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "Seed" +msgstr "Startwert (Seed)" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -367,13 +434,13 @@ msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" -"Gebäude, die auf dem Gelände auftauchen (keine Wirkung auf von v6 erzeugte " -"Bäume u. Dschungelgras)" +"Strukturen, die auf dem Gelände auftauchen (keine Wirkung auf von v6 " +"erzeugte Bäume u. Dschungelgras)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" msgstr "" -"Gebäude, die auf dem Gelände auftauchen, üblicherweise Bäume und Pflanzen" +"Strukturen, die auf dem Gelände auftauchen, üblicherweise Bäume und Pflanzen" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -417,7 +484,7 @@ msgstr "Es sind keine Spiele installiert." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "Sind Sie sich sicher, dass Sie „$1“ löschen wollen?" +msgstr "Sind Sie sicher, dass „$1“ gelöscht werden soll?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua @@ -427,7 +494,7 @@ msgstr "Entfernen" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: Fehler beim Löschen von „$1“" +msgstr "pkgmgr: Fehler beim Entfernen von „$1“" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" @@ -435,7 +502,7 @@ msgstr "pkgmgr: Ungültiger Pfad „$1“" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "Welt „$1“ löschen?" +msgstr "Die Welt „$1“ löschen?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" @@ -469,18 +536,13 @@ msgstr "< Einstellungsseite" msgid "Browse" msgstr "Durchsuchen" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Client" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Deaktiviert" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "Ändern" +msgstr "Bearbeiten" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" @@ -518,6 +580,10 @@ msgstr "Zurücksetzen" msgid "Scale" msgstr "Skalierung" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Suchen" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Verzeichnis auswählen" @@ -528,7 +594,7 @@ msgstr "Datei auswählen" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "Technische Namen zeigen" +msgstr "Techn. Bezeichnung zeigen" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -599,12 +665,12 @@ msgstr "Fehler bei der Installation von $1 nach $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "Mod installieren: Echter Modname für $1 konnte nicht gefunden werden" +msgstr "Modinstallation: Richtiger Modname für $1 konnte nicht gefunden werden" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Mod installieren: Geeigneter Verzeichnisname für Modpack $1 konnte nicht " +"Modinstallation: Geeigneter Verzeichnisname für Modpack $1 konnte nicht " "gefunden werden" #: builtin/mainmenu/pkgmgr.lua @@ -622,23 +688,38 @@ msgstr "Keine gültige Mod oder Modpack gefunden" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" -msgstr "Fehler bei der Installation von $1 als Texturenpaket" +msgstr "Fehler bei der Texturenpaket-Installation von $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" -msgstr "Fehler bei der Installation eines Spiels als $1" +msgstr "Fehler bei der Spiel-Installation von $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" -msgstr "Fehler bei der Installation einer Mod als $1" +msgstr "Fehler bei der Mod-Installation von $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" -msgstr "Fehler bei der Installation eines Modpacks als $1" +msgstr "Fehler bei der Modpack-Installation von $1" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Lädt …" + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Clientseitige Skripte sind deaktiviert" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Versuchen Sie die öffentliche Serverliste neu zu laden und prüfen Sie Ihre " +"Internetverbindung." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Online-Inhalte durchsuchen" +msgstr "Onlineinhalte durchsuchen" #: builtin/mainmenu/tab_content.lua msgid "Content" @@ -689,8 +770,16 @@ msgid "Credits" msgstr "Mitwirkende" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Benutzerdatenverzeichnis öffnen" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Öffnet das Verzeichnis, welches die Welten, Spiele, Mods und\n" +"Texturenpakete des Benutzers enthält, im Datei-Manager." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -702,21 +791,17 @@ msgstr "Ehemalige Hauptentwickler" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "Server ankündigen" +msgstr "Server veröffentlichen" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "Bind-Adresse" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurieren" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kreativmodus" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Schaden einschalten" @@ -730,11 +815,11 @@ msgstr "Server hosten" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Spiele von ContentDB installieren" +msgstr "Spiele aus ContentDB installieren" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Name/Passwort" +msgid "Name" +msgstr "Name" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -744,6 +829,10 @@ msgstr "Neu" msgid "No world created or selected!" msgstr "Keine Welt angegeben oder ausgewählt!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Passwort" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Spiel starten" @@ -752,6 +841,10 @@ msgstr "Spiel starten" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Mods auswählen" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Welt wählen:" @@ -768,23 +861,23 @@ msgstr "Spiel starten" msgid "Address / Port" msgstr "Adresse / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Verbinden" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreativmodus" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Schaden aktiviert" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Favorit löschen" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favorit" @@ -792,16 +885,16 @@ msgstr "Favorit" msgid "Join Game" msgstr "Spiel beitreten" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Name / Passwort" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Latenz" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Spielerkampf aktiviert" @@ -829,25 +922,17 @@ msgstr "Alle Einstellungen" msgid "Antialiasing:" msgstr "Kantenglättung:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Sind Sie sicher, dass Sie die Einzelspielerwelt löschen wollen?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "Monitorgröße automatisch merken" +msgstr "Fenstergröße merken" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" msgstr "Bilinearer Filter" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bumpmapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" -msgstr "Tasten ändern" +msgstr "Tastenbelegung" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" @@ -857,10 +942,6 @@ msgstr "Verbundenes Glas" msgid "Fancy Leaves" msgstr "Schöne Blätter" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Normalmaps generieren" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -869,21 +950,17 @@ msgstr "Mipmap" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap u. Aniso. Filter" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nein" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Kein Filter" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "Keine Mipmap" +msgstr "Kein Mipmapping" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Blöcke leuchten" +msgstr "Blöcke aufhellen" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" @@ -901,18 +978,10 @@ msgstr "Undurchs. Blätter" msgid "Opaque Water" msgstr "Undurchs. Wasser" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax-Occlusion" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partikel" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Einzelspielerwelt zurücksetzen" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Monitor:" @@ -925,6 +994,10 @@ msgstr "Einstellungen" msgid "Shaders" msgstr "Shader" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Shader (experimentell)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shader (nicht verfügbar)" @@ -943,11 +1016,11 @@ msgstr "Texturierung:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "Um Shader zu benutzen, muss der OpenGL-Treiber benutzt werden." +msgstr "Um Shader zu aktivieren, muss der OpenGL-Treiber genutzt werden." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "Tone-Mapping" +msgstr "Dynamikkompression" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" @@ -969,22 +1042,6 @@ msgstr "Flüssigkeitswellen" msgid "Waving Plants" msgstr "Wehende Pflanzen" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ja" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Mods konfigurieren" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hauptmenü" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Einzelspieler starten" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Verbindungsfehler, Zeitüberschreitung." @@ -1019,7 +1076,7 @@ msgstr "Spiel konnte nicht gefunden oder geladen werden: \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." -msgstr "Ungültige Spielspezif." +msgstr "Ungültige Spielspezifikationen" #: src/client/clientlauncher.cpp msgid "Main Menu" @@ -1031,7 +1088,7 @@ msgstr "Keine Welt ausgewählt und keine Adresse angegeben. Nichts zu tun." #: src/client/clientlauncher.cpp msgid "Player name too long." -msgstr "Spielername zu lang." +msgstr "Der Spielername ist zu lang." #: src/client/clientlauncher.cpp msgid "Please choose a name!" @@ -1039,7 +1096,7 @@ msgstr "Bitte wählen Sie einen Namen!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "Fehler beim öffnen der ausgewählten Passwort-Datei: " +msgstr "Fehler beim Öffnen der angegebenen Passwortdatei: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -1063,7 +1120,7 @@ msgid "" "Check debug.txt for details." msgstr "" "\n" -"Siehe debug.txt für Details." +"Für mehr Details siehe debug.txt." #: src/client/game.cpp msgid "- Address: " @@ -1139,25 +1196,22 @@ msgid "Continue" msgstr "Weiter" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Steuerung:\n" "- %s: Vorwärts\n" @@ -1165,12 +1219,12 @@ msgstr "" "- %s: Nach links\n" "- %s: Nach rechts\n" "- %s: Springen/klettern\n" +"- %s: Graben/Schlagen\n" +"- %s: Bauen/Benutzen\n" "- %s: Kriechen/runter\n" "- %s: Gegenstand wegwerfen\n" "- %s: Inventar\n" "- Maus: Drehen/Umschauen\n" -"- Maus links: Graben/Schlagen\n" -"- Maus rechts: Bauen/Benutzen\n" "- Mausrad: Gegenstand wählen\n" "- %s: Chat\n" @@ -1192,7 +1246,7 @@ msgstr "Debug-Infos angezeigt" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "Debug-Infos, Profiler-Graph und Drahtmodell verborgen" +msgstr "Debug-Infos, Profiler und Drahtgitter deaktiviert" #: src/client/game.cpp msgid "" @@ -1232,7 +1286,7 @@ msgstr "Unbegrenzte Sichtweite aktiviert" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "Hauptmenü" +msgstr "Zum Hauptmenü" #: src/client/game.cpp msgid "Exit to OS" @@ -1270,16 +1324,6 @@ msgstr "Nebel deaktiviert" msgid "Fog enabled" msgstr "Nebel aktiviert" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Nebel deaktiviert" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Nebel aktiviert" - #: src/client/game.cpp msgid "Game info:" msgstr "Spielinfo:" @@ -1294,22 +1338,12 @@ msgstr "Gehosteter Server" #: src/client/game.cpp msgid "Item definitions..." -msgstr "Gegenstands-Definitionen …" +msgstr "Gegenstandsdefinitionen …" #: src/client/game.cpp msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Nebel deaktiviert" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Schaden aktiviert" - #: src/client/game.cpp msgid "Media..." msgstr "Medien …" @@ -1322,34 +1356,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Übersichtskarte momentan von Spiel oder Mod deaktiviert" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Übersichtskarte verborgen" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Übersichtskarte im Radarmodus, Zoom ×1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Übersichtskarte im Radarmodus, Zoom ×2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Übersichtskarte im Radarmodus, Zoom ×4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Übersichtskarte im Bodenmodus, Zoom ×1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Übersichtskarte im Bodenmodus, Zoom ×2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Übersichtskarte im Bodenmodus, Zoom ×4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Geistmodus deaktiviert" @@ -1392,11 +1398,7 @@ msgstr "Entfernter Server" #: src/client/game.cpp msgid "Resolving address..." -msgstr "Löse Adresse auf …" - -#: src/client/game.cpp -msgid "Respawn" -msgstr "Wiederbeleben" +msgstr "Adressauflösung …" #: src/client/game.cpp msgid "Shutting down..." @@ -1412,7 +1414,7 @@ msgstr "Tonlautstärke" #: src/client/game.cpp msgid "Sound muted" -msgstr "Ton verstummt" +msgstr "Ton stummgeschaltet" #: src/client/game.cpp msgid "Sound system is disabled" @@ -1424,7 +1426,7 @@ msgstr "Tonsystem ist in diesem Build nicht unterstützt" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "Ton nicht mehr verstummt" +msgstr "Ton nicht mehr stumm" #: src/client/game.cpp #, c-format @@ -1448,11 +1450,7 @@ msgstr "Lautstärke auf %d%% gesetzt" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "Drahtmodell angezeigt" - -#: src/client/game.cpp -msgid "You died" -msgstr "Sie sind gestorben" +msgstr "Drahtmodell aktiv" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1470,16 +1468,6 @@ msgstr "Chat verborgen" msgid "Chat shown" msgstr "Chat angezeigt" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Chat verborgen" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Chat angezeigt" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD verborgen" @@ -1760,6 +1748,24 @@ msgstr "X-Knopf 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Übersichtskarte verborgen" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Übersichtskarte im Radarmodus, Zoom ×%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Übersichtskarte im Bodenmodus, Zoom ×%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Übersichtskarte im Texturmodus" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Passwörter stimmen nicht überein!" @@ -1805,26 +1811,6 @@ msgstr "Auto-Springen" msgid "Backward" msgstr "Rückwärts" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Kamerawechsel" @@ -1919,30 +1905,10 @@ msgstr "Schleichen" msgid "Special" msgstr "Spezial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Spezial" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Filmmodus umschalten" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Filmmodus umschalten" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "HUD an/aus" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Flugmodus" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Chat an/aus" @@ -2078,14 +2044,6 @@ msgstr "" "welche geeignet für eine Insel ist; setzen Sie alle 3 Zahlen\n" "gleich für die Reinform." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = Parallax-Mapping mit Stufeninformation (schneller).\n" -"1 = Relief-Mapping (langsamer, genauer)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "2-D-Rauschen, welches die Form/Größe von gezahnten Bergen steuert." @@ -2126,7 +2084,7 @@ msgstr "3-Dimensionaler-Modus" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "3D-Modus-Parallaxstärke" +msgstr "3-D-Modus-Parallaxstärke" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2148,7 +2106,7 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" -"3D-Rauschen, das die Form von Schwebeländern definiert.\n" +"3-D-Rauschen, das die Form von Schwebeländern definiert.\n" "Falls vom Standardwert verschieden, müsste der Rauschwert „Skalierung“\n" "(standardmäßig 0.7) evtl. angepasst werden, da die Schwebeland-\n" "zuspitzung am Besten funktioniert, wenn dieses Rauschen\n" @@ -2225,6 +2183,10 @@ msgstr "" msgid "ABM interval" msgstr "ABM-Intervall" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "ABM-Zeitbudget" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "Absolute Grenze der zu erzeugenden Kartenblöcke in Warteschlange" @@ -2487,10 +2449,6 @@ msgstr "Innerhalb des Spielers bauen" msgid "Builtin" msgstr "Builtin" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bumpmapping" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2569,22 +2527,6 @@ msgstr "" "Mittelpunkt des Lichtkurvenverstärkungsintervalls.\n" "Wobei 0.0 die minimale Lichtstufe und 1.0 die höchste Lichtstufe ist." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Ändert die Hauptmenü-UI:\n" -"- Full: Mehrere Einzelspielerwelten, Spiel- und Texturenpaketauswahl, " -"usw.\n" -"- Simple: Eine Einzelspielerwelt, keine Spiel- oder Texturenpaketauswahl. " -"Könnte\n" -"für kleinere Bildschirme nötig sein." - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Chat-Schriftgröße" @@ -2752,6 +2694,10 @@ msgstr "Konsolenhöhe" msgid "ContentDB Flag Blacklist" msgstr "ContentDB: Schwarze Liste" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "ContentDB Max. gleichzeitige Downloads" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "ContentDB-URL" @@ -2819,16 +2765,24 @@ msgid "Crosshair alpha" msgstr "Fadenkreuzundurchsichtigkeit" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Fadenkreuzundurchsichtigkeit (Wert zwischen 0 und 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Fadenkreuzundurchsichtigkeit (Wert zwischen 0 und 255).\n" +"Gilt auch für das Objektfadenkreuz" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Fadenkreuzfarbe" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Fadenkreuzfarbe (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Fadenkreuzfarbe (R,G,B).\n" +"Gilt auch für das Objektfadenkreuz" #: src/settings_translation_file.cpp msgid "DPI" @@ -2935,14 +2889,6 @@ msgstr "Definiert große Flusskanalformationen." msgid "Defines location and terrain of optional hills and lakes." msgstr "Definiert Ort und Gelände der optionalen Hügel und Seen." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Definiert die Sampling-Schrittgröße der Textur.\n" -"Ein höherer Wert resultiert in weichere Normal-Maps." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Definiert die Basisgeländehöhe." @@ -3023,6 +2969,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Blockanimationen desynchronisieren" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Grabetaste" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Grabepartikel" @@ -3088,7 +3038,8 @@ msgid "Enable console window" msgstr "Konsolenfenster aktivieren" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Kreativmodus für neu erstellte Karten aktivieren." #: src/settings_translation_file.cpp @@ -3196,7 +3147,7 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" -"Aktiviert filmisches Tone-Mapping wie in Hables „Uncharted 2“.\n" +"Aktiviert filmische Dynamikkompression wie in Hables „Uncharted 2“.\n" "Simuliert die Tonkurve von fotografischem Film und wie dies das Aussehen\n" "von „High Dynamic Range“-Bildern annähert. Mittlerer Kontrast wird leicht\n" "verstärkt, aufleuchtende Bereiche und Schatten werden graduell komprimiert." @@ -3205,19 +3156,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Aktiviert die Animation von Inventargegenständen." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Aktiviert das Bump-Mapping für Texturen. Normal-Maps müssen im " -"Texturenpaket\n" -"vorhanden sein oder müssen automatisch erzeugt werden.\n" -"Shader müssen aktiviert werden, bevor diese Einstellung aktiviert werden " -"kann." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3228,22 +3166,6 @@ msgstr "" msgid "Enables minimap." msgstr "Aktiviert die Übersichtskarte." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Aktiviert die spontane Normalmap-Erzeugung (Prägungseffekt).\n" -"Für diese Einstellung muss außerdem Bump-Mapping aktiviert sein." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Aktiviert Parralax-Occlusion-Mapping.\n" -"Hierfür müssen Shader aktiviert sein." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3264,14 +3186,6 @@ msgstr "Engine-Profiling-Datenausgabeintervall" msgid "Entity methods" msgstr "Entity-Methoden" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Experimentelle Einstellung, könnte sichtbare Leerräume zwischen\n" -"Blöcken verursachen, wenn auf einen Wert größer 0 gesetzt." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3290,8 +3204,10 @@ msgstr "" "geeignet." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "Bildwiederholrate im Pausenmenü" +msgid "FPS when unfocused or paused" +msgstr "" +"Maximale Bildwiederholrate, während das Spiel pausiert oder nicht fokussiert " +"ist" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3372,7 +3288,7 @@ msgstr "Fülltiefenrauschen" #: src/settings_translation_file.cpp msgid "Filmic tone mapping" -msgstr "Filmisches Tone-Mapping" +msgstr "Filmische Dynamikkompression" #: src/settings_translation_file.cpp msgid "" @@ -3629,10 +3545,6 @@ msgstr "GUI-Skalierfilter" msgid "GUI scaling filter txr2img" msgstr "GUI-Skalierungsfilter txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Normalmaps generieren" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Globale Rückruffunktionen" @@ -3695,17 +3607,17 @@ msgstr "Taste zum Umschalten des HUD" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Handhabung für veraltete Lua-API-Aufrufe:\n" -"- legacy: Versuchen, altes Verhalten zu imitieren (Standard für Release).\n" -"- log: Imitieren, und den Backtrace des veralteten Funktionsaufrufs " +"- none: Veraltete Aufrufe nicht protokollieren.\n" +"- log: Imitieren und den Backtrace des veralteten Funktionsaufrufs " "protokollieren\n" -" (Standard für Debug).\n" +" (Standard).\n" "- error: Bei Verwendung eines veralteten Funktionsaufrufs abbrechen\n" -" (empfohlen für Mod- Entwickler)." +" (empfohlen für Mod-Entwickler)." #: src/settings_translation_file.cpp msgid "" @@ -4246,6 +4158,10 @@ msgstr "Joystick-ID" msgid "Joystick button repetition interval" msgstr "Joystick-Button-Wiederholungsrate" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Joystick-Totbereich" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Joystick-Pyramidenstumpf-Empfindlichkeit" @@ -4348,6 +4264,16 @@ msgstr "" "Siehe http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Taste zum Graben.\n" +"Siehe http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4490,6 +4416,16 @@ msgstr "" "Siehe http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Taste zum Bauen.\n" +"Siehe http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5243,10 +5179,6 @@ msgstr "Y-Untergrenze von Schwebeländern." msgid "Main menu script" msgstr "Hauptmenü-Skript" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Hauptmenü-Stil" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5264,6 +5196,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Macht alle Flüssigkeiten undurchsichtig" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Kartenkompressionsstufe für Festspeicher" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Kartenkompressionsstufe für Netzwerkverkehr" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Kartenverzeichnis" @@ -5449,8 +5389,10 @@ msgid "Maximum FPS" msgstr "Maximale Bildwiederholrate" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Maximale Bildwiederholrate, während das Spiel pausiert ist." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"Maximale Bildwiederholrate, während das Fenster nicht fokussiert oder das " +"Spiel pausiert ist." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5508,6 +5450,16 @@ msgstr "" "einer Datei eingereiht werden.\n" "Diese Grenze wird für jeden Spieler einzeln erzwungen." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Maximale Anzahl an gleichzeitigen Downloads. Weitere werden in einer " +"Warteschlange eingereiht.\n" +"Dies sollte niedriger als das curl_parallel_limit sein." + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Maximale Anzahl der zwangsgeladenen Kartenblöcke." @@ -5773,14 +5725,6 @@ msgstr "NodeTimer-Intervall" msgid "Noises" msgstr "Rauschen" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Normalmaps-Sampling" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Normalmap-Stärke" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Anzahl der Erzeugerthreads" @@ -5821,10 +5765,6 @@ msgstr "" "geladen werden können. Dies ist ein Kompromiss zwischen SQLite-\n" "Transaktions-Overhead und Speicherverbrauch (Faustregel: 4096=100MB)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Anzahl der Parallax-Occlusion-Iterationen." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Online-Inhaltespeicher" @@ -5856,36 +5796,6 @@ msgstr "" "Das Pausemenü öffnen, wenn der Fokus des Fensters verloren geht.\n" "Wird nicht pausieren, wenn ein Formspec geöffnet ist." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Startwert des Parallax-Occlusion-Effektes, üblicherweise Skalierung geteilt " -"durch 2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Gesamtskalierung des Parallax-Occlusion-Effektes." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax-Occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Parallax-Occlusion-Startwert" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Parallax-Occlusion-Iterationen" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Parallax-Occlusion-Modus" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Parallax-Occlusion-Skalierung" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5977,6 +5887,14 @@ msgstr "Nick-Bewegungstaste" msgid "Pitch move mode" msgstr "Nick-Bewegungsmodus" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Bautaste" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Bauen-Wiederholungsrate" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6164,10 +6082,6 @@ msgstr "Rauschen für Größe gezahnter Berge" msgid "Right key" msgstr "Rechtstaste" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Rechtsklick-Wiederholungsrate" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Flusskanaltiefe" @@ -6210,7 +6124,7 @@ msgstr "Runde Übersichtskarte" #: src/settings_translation_file.cpp msgid "Safe digging and placing" -msgstr "Sicheres graben und bauen" +msgstr "Sicheres Graben und Bauen" #: src/settings_translation_file.cpp msgid "Sandy beaches occur when np_beach exceeds this value." @@ -6467,6 +6381,19 @@ msgstr "Debug-Info zeigen" msgid "Show entity selection boxes" msgstr "Entity-Auswahlboxen zeigen" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Entityauswahlboxen zeigen\n" +"Nach Änderung ist ein Neustart erforderlich." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Schrift standardmäßig fett" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Herunterfahrnachricht" @@ -6623,11 +6550,7 @@ msgstr "Stufenbergsausbreitungsrauschen" #: src/settings_translation_file.cpp msgid "Strength of 3D mode parallax." -msgstr "Stärke von 3D-Modus-Parallax." - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Stärke der generierten Normalmaps." +msgstr "Stärke von 3-D-Modus-Parallax." #: src/settings_translation_file.cpp msgid "" @@ -6752,6 +6675,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "Die URL für den Inhaltespeicher" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "Der Totbereich des Joysticks" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6831,17 +6758,17 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Das Renderer-Backend für Irrlicht.\n" "Ein Neustart ist erforderlich, wenn dies geändert wird.\n" "Anmerkung: Auf Android belassen Sie dies bei OGLES1, wenn Sie sich unsicher " "sind.\n" -"Die App könnte sonst unfähig sein, zu starten.\n" -"Auf anderen Plattformen wird OpelGL empfohlen, dies ist momentan der " -"einzige\n" -"Treiber mit Shader-Unterstützung." +"Die App könnte sonst nicht mehr starten.\n" +"Auf anderen Plattformen wird OpenGL empfohlen.\n" +"Shader werden unter OpenGL (nur Desktop) und OGLES2 (experimentell) " +"unterstützt." #: src/settings_translation_file.cpp msgid "" @@ -6876,6 +6803,14 @@ msgstr "" "Verwerfen alter Warteschlangeneinträge zu reduzieren. Der Wert 0 deaktiviert " "diese Funktion." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"Das erlaubte Zeitbudget für ABM-Ausführung jeden Schritt\n" +"(als Bruchteil des ABM-Intervalls)" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6886,13 +6821,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" -"Die Zeit in Sekunden, in dem Rechtsklicks wiederholt werden, wenn die " -"rechte\n" -"Maustaste gedrückt gehalten wird." +"Die Zeit in Sekunden, in dem die Blockplatzierung wiederholt wird, wenn\n" +"die Bautaste gedrückt gehalten wird." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -7059,6 +6992,26 @@ msgstr "" "wird.\n" "Eine gammakorrigierte Herunterskalierung wird nicht unterstützt." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Multi-Sample-Antialiasing (MSAA) benutzen, um Blockecken zu glätten.\n" +"Dieser Algorithmus glättet das 3-D-Sichtfeld während das Bild scharf " +"bleibt,\n" +"beeinträchtigt jedoch nicht die Textureninnenflächen\n" +"(was sich insbesondere bei transparenten Texturen bemerkbar macht).\n" +"Sichtbare Lücken erscheinen zwischen Blöcken, wenn Shader ausgeschaltet " +"sind.\n" +"Wenn der Wert auf 0 steht, ist MSAA deaktiviert.\n" +"Ein Neustart ist erforderlich, nachdem diese Option geändert worden ist." + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Trilineare Filterung bei der Skalierung von Texturen benutzen." @@ -7302,6 +7255,12 @@ msgstr "" "Falls deaktiviert, werden stattdessen Bitmap- und XML-Vektor-Schriften " "benutzt." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7460,6 +7419,36 @@ msgstr "Y-Höhe von niedrigerem Gelände und dem Meeresgrund." msgid "Y-level of seabed." msgstr "Y-Höhe vom Meeresgrund." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"ZLib-Kompressionsniveau für Kartenblöcke im Festspeicher.\n" +"-1 - Zlib-Standard-Kompressionsniveau\n" +"0 - keine Kompression, am schnellsten\n" +"9 - beste Kompression, am langsamsten\n" +"(Niveaus 1-3 verwenden Zlibs „schnelles“ Verfahren, 4-9 das normale " +"Verfahren)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"ZLib-Kompressionsniveau für Kartenblöcke, die zu Clients gesendet werden.\n" +"-1 - Zlib-Standard-Kompressionsniveau\n" +"0 - keine Kompression, am schnellsten\n" +"9 - beste Kompression, am langsamsten\n" +"(Niveaus 1-3 verwenden Zlibs „schnelles“ Verfahren, 4-9 das normale " +"Verfahren)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL-Dateidownload-Zeitüberschreitung" @@ -7472,23 +7461,12 @@ msgstr "cURL-Parallel-Begrenzung" msgid "cURL timeout" msgstr "cURL-Zeitüberschreitung" -#~ msgid "Ok" -#~ msgstr "OK" - -#~ msgid "Back" -#~ msgstr "Rücktaste" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 wird heruntergeladen und installiert, bitte warten …" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Erzeugungswarteschlangengrenze auf Festspeicher" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Parallax-Occlusion-Stärke" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = Parallax-Mapping mit Stufeninformation (schneller).\n" +#~ "1 = Relief-Mapping (langsamer, genauer)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7503,9 +7481,42 @@ msgstr "cURL-Zeitüberschreitung" #~ "Verändert, wie Schwebeländer des Bergtyps sich über und unter dem " #~ "Mittelpunkt zuspitzen." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Sind Sie sicher, dass Sie die Einzelspielerwelt löschen wollen?" + +#~ msgid "Back" +#~ msgstr "Rücktaste" + +#~ msgid "Bump Mapping" +#~ msgstr "Bumpmapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Mitte der Lichtkurven-Mittenverstärkung." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Ändert die Hauptmenü-UI:\n" +#~ "- Full: Mehrere Einzelspielerwelten, Spiel- und Texturenpaketauswahl, " +#~ "usw.\n" +#~ "- Simple: Eine Einzelspielerwelt, keine Spiel- oder " +#~ "Texturenpaketauswahl. Könnte\n" +#~ "für kleinere Bildschirme nötig sein." + +#~ msgid "Config mods" +#~ msgstr "Mods konfigurieren" + +#~ msgid "Configure" +#~ msgstr "Konfigurieren" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7518,6 +7529,9 @@ msgstr "cURL-Zeitüberschreitung" #~ "Legt die Breite von Tunneln fest; ein kleinerer Wert erzeugt breitere " #~ "Tunnel." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Fadenkreuzfarbe (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Dunkelheits-Steilheit" @@ -7530,6 +7544,13 @@ msgstr "cURL-Zeitüberschreitung" #~ "Schwebeländer treten auf, wenn der\n" #~ "Rauschwert > 0 ist." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definiert die Sampling-Schrittgröße der Textur.\n" +#~ "Ein höherer Wert resultiert in weichere Normal-Maps." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7539,12 +7560,51 @@ msgstr "cURL-Zeitüberschreitung" #~ "Höhlenflüssigkeiten in Biomdefinitionen.\n" #~ "Y der Obergrenze von Lava in großen Höhlen." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 wird heruntergeladen und installiert, bitte warten …" + #~ msgid "Enable VBO" #~ msgstr "VBO aktivieren" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktiviert das Bump-Mapping für Texturen. Normal-Maps müssen im " +#~ "Texturenpaket\n" +#~ "vorhanden sein oder müssen automatisch erzeugt werden.\n" +#~ "Shader müssen aktiviert werden, bevor diese Einstellung aktiviert werden " +#~ "kann." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Aktiviert filmisches Tone-Mapping" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Aktiviert die spontane Normalmap-Erzeugung (Prägungseffekt).\n" +#~ "Für diese Einstellung muss außerdem Bump-Mapping aktiviert sein." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktiviert Parralax-Occlusion-Mapping.\n" +#~ "Hierfür müssen Shader aktiviert sein." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentelle Einstellung, könnte sichtbare Leerräume zwischen\n" +#~ "Blöcken verursachen, wenn auf einen Wert größer 0 gesetzt." + +#~ msgid "FPS in pause menu" +#~ msgstr "Bildwiederholrate im Pausenmenü" + #~ msgid "Floatland base height noise" #~ msgstr "Schwebeland-Basishöhenrauschen" @@ -7558,6 +7618,12 @@ msgstr "cURL-Zeitüberschreitung" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Normalmaps generieren" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normalmaps generieren" + #~ msgid "IPv6 support." #~ msgstr "IPv6-Unterstützung." @@ -7567,18 +7633,107 @@ msgstr "cURL-Zeitüberschreitung" #~ msgid "Lightness sharpness" #~ msgstr "Helligkeitsschärfe" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Erzeugungswarteschlangengrenze auf Festspeicher" + +#~ msgid "Main" +#~ msgstr "Hauptmenü" + +#~ msgid "Main menu style" +#~ msgstr "Hauptmenü-Stil" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×4" + +#~ msgid "Name/Password" +#~ msgstr "Name/Passwort" + +#~ msgid "No" +#~ msgstr "Nein" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normalmaps-Sampling" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmap-Stärke" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Anzahl der Parallax-Occlusion-Iterationen." + +#~ msgid "Ok" +#~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Startwert des Parallax-Occlusion-Effektes, üblicherweise Skalierung " +#~ "geteilt durch 2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Gesamtskalierung des Parallax-Occlusion-Effektes." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax-Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax-Occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Parallax-Occlusion-Startwert" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Parallax-Occlusion-Iterationen" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax-Occlusion-Modus" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax-Occlusion-Skalierung" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Parallax-Occlusion-Stärke" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Pfad zu einer TrueType- oder Bitmap-Schrift." +#~ msgid "Path to save screenshots at." +#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden." + +#~ msgid "Projecting dungeons" +#~ msgstr "Herausragende Verliese" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Einzelspielerwelt zurücksetzen" + +#~ msgid "Select Package File:" +#~ msgstr "Paket-Datei auswählen:" + #~ msgid "Shadow limit" #~ msgstr "Schattenbegrenzung" +#~ msgid "Start Singleplayer" +#~ msgstr "Einzelspieler starten" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Stärke der generierten Normalmaps." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Stärke der Lichtkurven-Mittenverstärkung." #~ msgid "This font will be used for certain languages." #~ msgstr "Diese Schrift wird von bestimmten Sprachen benutzt." +#~ msgid "Toggle Cinematic" +#~ msgstr "Filmmodus umschalten" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7590,9 +7745,21 @@ msgstr "cURL-Zeitüberschreitung" #~ "Variierung der Hügelhöhe und Seetiefe in den ruhig verlaufenden\n" #~ "Regionen der Schwebeländer." +#~ msgid "View" +#~ msgstr "Ansehen" + +#~ msgid "Waving Water" +#~ msgstr "Wasserwellen" + #~ msgid "Waving water" #~ msgstr "Wasserwellen" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Ob Verliese manchmal aus dem Gelände herausragen." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y-Wert der Obergrenze von Lava in großen Höhlen." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "" #~ "Y-Höhe vom Mittelpunkt der Schwebeländer sowie\n" @@ -7601,17 +7768,5 @@ msgstr "cURL-Zeitüberschreitung" #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Y-Höhe, bis zu der sich die Schatten der Schwebeländer ausbreiten." -#~ msgid "Projecting dungeons" -#~ msgstr "Herausragende Verliese" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Ob Verliese manchmal aus dem Gelände herausragen." - -#~ msgid "Waving Water" -#~ msgstr "Wasserwellen" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y-Wert der Obergrenze von Lava in großen Höhlen." - -#~ msgid "Select Package File:" -#~ msgstr "Paket-Datei auswählen:" +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/dv/minetest.po b/po/dv/minetest.po index 49a27d271..4c4b53954 100644 --- a/po/dv/minetest.po +++ b/po/dv/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Dhivehi (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2019-11-10 15:04+0000\n" "Last-Translator: Krock \n" "Language-Team: Dhivehi " msgid "Browse" msgstr "ފުންކޮށް ހޯދާ" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "އޮފްކޮށްފަ" @@ -516,6 +583,10 @@ msgstr "ޑިފޯލްޓައަށް ރައްދުކުރޭ" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "ހޯދާ" + #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" @@ -639,6 +710,18 @@ msgstr "$1 $2އަށް ނޭޅުނު" msgid "Unable to install a modpack as a $1" msgstr "$1 $2އަށް ނޭޅުނު" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "ލޯޑްވަނީ..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "ޕަބްލިކް ސާވަރ ލިސްޓު އަލުން ޖައްސަވާ.އަދި އިންޓަނެޓް ކަނެކްޝަން ޗެކްކުރައްވާ." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -696,7 +779,14 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "މޮޑްގެ ފައިލް އިހްތިޔާރުކުރޭ:" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -716,14 +806,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "ބަދަލުގެނޭ" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "ކްރިއޭޓިވް މޯޑް" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "ގެއްލުން ޖައްސާ" @@ -740,8 +826,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "ޕާސްވޯޑް / ނަން" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -751,6 +837,11 @@ msgstr "އައު" msgid "No world created or selected!" msgstr "އެއްވެސް ދުނިޔެއެއް އުފެދިފައެއް ނުވަތަ އިހްތިޔާރުވެފައެއް ނެޠް!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "ޕާސްވޯޑް / ނަން" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "ގޭމް ކުޅޭ" @@ -759,6 +850,11 @@ msgstr "ގޭމް ކުޅޭ" msgid "Port" msgstr "ޕޯޓް" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "ދުނިޔެ އިހްތިޔާރު ކުރޭ:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "ދުނިޔެ އިހްތިޔާރު ކުރޭ:" @@ -776,23 +872,23 @@ msgstr "ގޭމް ހޮސްޓްކުރޭ" msgid "Address / Port" msgstr "އެޑްރެސް / ޕޯޓް" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "ކަނެކްޓްކުރޭ" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "ކްރިއޭޓިވް މޯޑް" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "އަނިޔާވުން ޖައްސާފައި" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "އެންމެ ގަޔާނުވޭ" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "އެންމެ ގަޔާވޭ" @@ -801,16 +897,16 @@ msgstr "އެންމެ ގަޔާވޭ" msgid "Join Game" msgstr "ގޭމް ހޮސްޓްކުރޭ" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "ޕާސްވޯޑް / ނަން" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "ޕީ.ވީ.ޕީ ޖައްސާ" @@ -838,10 +934,6 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -850,10 +942,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -866,10 +954,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -878,10 +962,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "ނޫން" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -910,18 +990,10 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "ސްކްރީން:" @@ -934,6 +1006,10 @@ msgstr "" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -978,22 +1054,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1156,18 +1216,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1270,16 +1327,6 @@ msgstr "އޮފްކޮށްފަ" msgid "Fog enabled" msgstr "ޖައްސާފަ" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "އޮފްކޮށްފަ" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "ޖައްސާފަ" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1300,16 +1347,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "އޮފްކޮށްފަ" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "އަނިޔާވުން ޖައްސާފައި" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1322,34 +1359,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1395,10 +1404,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "އަލުން ސްޕައުންވޭ" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1451,10 +1456,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "މަރުވީ" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1471,14 +1472,6 @@ msgstr "" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1759,6 +1752,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1797,26 +1808,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Change camera" @@ -1910,26 +1901,10 @@ msgstr "" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -2039,12 +2014,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2151,6 +2120,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2388,10 +2361,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2462,16 +2431,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2623,6 +2582,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2681,7 +2644,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2689,7 +2654,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2790,12 +2757,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2866,6 +2827,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2927,7 +2892,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3014,14 +2979,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3030,18 +2987,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3058,12 +3003,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3075,8 +3014,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "ޕޯސް މެނޫގައި އެފް.ޕީ.އެސް" +msgid "FPS when unfocused or paused" +msgstr "" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3376,10 +3315,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3434,8 +3369,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3901,6 +3836,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3980,6 +3919,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4079,6 +4025,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4636,11 +4589,6 @@ msgstr "" msgid "Main menu script" msgstr "މެއިން މެނޫ ސްކްރިޕްޓް" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "މެއިން މެނޫ ސްކްރިޕްޓް" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4654,6 +4602,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4824,7 +4780,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4872,6 +4828,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5104,14 +5067,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5137,10 +5092,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5166,34 +5117,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5259,6 +5182,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5414,10 +5345,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5669,6 +5596,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5798,10 +5735,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5895,6 +5828,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5954,8 +5891,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5979,6 +5916,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5987,9 +5930,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6124,6 +6066,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6326,6 +6279,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6449,6 +6408,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6461,12 +6438,25 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "emme rangalhu" +#~ msgid "Configure" +#~ msgstr "ބަދަލުގެނޭ" #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "$1 ޑައުންލޯޑޮކޮށް އިންސްޓޯލްކުރަނީ، މަޑުކުރައްވާ..." +#~ msgid "FPS in pause menu" +#~ msgstr "ޕޯސް މެނޫގައި އެފް.ޕީ.އެސް" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "މެއިން މެނޫ ސްކްރިޕްޓް" + +#~ msgid "No" +#~ msgstr "ނޫން" + +#~ msgid "Ok" +#~ msgstr "emme rangalhu" + #, fuzzy #~ msgid "Select Package File:" #~ msgstr "މޮޑްގެ ފައިލް އިހްތިޔާރުކުރޭ:" diff --git a/po/el/minetest.po b/po/el/minetest.po index 46b525e9c..b9b6182bf 100644 --- a/po/el/minetest.po +++ b/po/el/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Greek (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-03-31 20:29+0000\n" -"Last-Translator: THANOS SIOURDAKIS \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Michalis \n" "Language-Team: Greek \n" "Language: el\n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Πέθανες" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "Επανασύνδεση" msgid "The server has requested a reconnect:" msgstr "Ο διακομιστής ζήτησε επανασύνδεση:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Φόρτωση..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Ασυμφωνία έκδοσης πρωτοκόλλου. " @@ -54,12 +58,6 @@ msgstr "Ο διακομιστής επιβάλλει το πρωτόκολλο msgid "Server supports protocol versions between $1 and $2. " msgstr "Ο διακομιστής υποστηρίζει εκδόσεις πρωτοκόλλων μεταξύ $1 και $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Δοκιμάστε να ενεργοποιήσετε ξανά τη δημόσια λίστα διακομιστών και ελέγξτε τη " -"σύνδεσή σας στο διαδίκτυο." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Υποστηρίζουμε μόνο το πρωτόκολλο έκδοσης $1." @@ -68,7 +66,8 @@ msgstr "Υποστηρίζουμε μόνο το πρωτόκολλο έκδοσ msgid "We support protocol versions between version $1 and $2." msgstr "Υποστηρίζουμε τις εκδόσεις πρωτοκόλλων μεταξύ της έκδοσης $1 και $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -76,9 +75,10 @@ msgstr "Υποστηρίζουμε τις εκδόσεις πρωτοκόλλω #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "Ματαίωση" +msgstr "Άκυρο" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Εξαρτήσεις:" @@ -149,22 +149,60 @@ msgstr "" msgid "enabled" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Λήψη ..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Φόρτωση..." +msgstr "Λήψη ..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -179,6 +217,14 @@ msgstr "" msgid "Install" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -193,8 +239,23 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -210,7 +271,11 @@ msgid "Update" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -460,10 +525,6 @@ msgstr "" msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "" @@ -508,6 +569,10 @@ msgstr "" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -623,6 +688,20 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Φόρτωση..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Δοκιμάστε να ενεργοποιήσετε ξανά τη δημόσια λίστα διακομιστών και ελέγξτε τη " +"σύνδεσή σας στο διαδίκτυο." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -676,7 +755,13 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -696,14 +781,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -720,7 +801,7 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -731,6 +812,10 @@ msgstr "" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -739,6 +824,10 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -755,23 +844,23 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" @@ -779,16 +868,16 @@ msgstr "" msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -816,10 +905,6 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -828,10 +913,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -844,10 +925,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -856,10 +933,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -888,18 +961,10 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "" @@ -912,6 +977,10 @@ msgstr "" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -956,22 +1025,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1042,7 +1095,7 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "yes" +msgstr "no" #: src/client/game.cpp msgid "" @@ -1131,18 +1184,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1229,14 +1279,6 @@ msgstr "" msgid "Fog enabled" msgstr "" -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam enabled" -msgstr "" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1257,14 +1299,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura enabled" -msgstr "" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1277,34 +1311,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1349,10 +1355,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1405,10 +1407,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "Πέθανες" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1425,14 +1423,6 @@ msgstr "" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1713,6 +1703,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1751,26 +1759,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" @@ -1863,26 +1851,10 @@ msgstr "" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -1992,12 +1964,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2104,6 +2070,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2337,10 +2307,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2411,16 +2377,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2572,6 +2528,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2629,7 +2589,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2637,7 +2599,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2736,12 +2700,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2812,6 +2770,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2873,7 +2835,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2960,14 +2922,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -2976,18 +2930,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3004,12 +2946,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3021,7 +2957,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3322,10 +3258,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3380,8 +3312,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3847,6 +3779,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3926,6 +3862,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4025,6 +3968,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4582,10 +4532,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4599,6 +4545,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4763,7 +4717,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4811,6 +4765,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5040,14 +5001,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5073,10 +5026,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5102,34 +5051,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5195,6 +5116,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5350,10 +5279,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5605,6 +5530,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5734,10 +5669,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5831,6 +5762,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5890,8 +5825,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5915,6 +5850,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5923,9 +5864,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6060,6 +6000,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6262,6 +6213,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6384,6 +6341,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" diff --git a/po/eo/minetest.po b/po/eo/minetest.po index 570da68ba..64db5dd71 100644 --- a/po/eo/minetest.po +++ b/po/eo/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Esperanto (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-07-17 08:41+0000\n" "Last-Translator: Tirifto \n" "Language-Team: Esperanto \n" @@ -14,6 +14,14 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.2-dev\n" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Renaskiĝi" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Vi mortis" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "Bone" @@ -38,10 +46,6 @@ msgstr "Rekonekti" msgid "The server has requested a reconnect:" msgstr "La servilo petis rekonekton:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Enlegante…" - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokola versia miskongruo. " @@ -54,11 +58,6 @@ msgstr "La servilo postulas protokolan version $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "La servilo subtenas protokolajn versiojn inter $1 kaj $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Provu reŝalti la publikan liston de serviloj kaj kontroli vian retkonekton." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Ni nur subtenas protokolan version $1." @@ -67,7 +66,8 @@ msgstr "Ni nur subtenas protokolan version $1." msgid "We support protocol versions between version $1 and $2." msgstr "Ni subtenas protokolajn versiojn inter versioj $1 kaj $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -77,7 +77,8 @@ msgstr "Ni subtenas protokolajn versiojn inter versioj $1 kaj $2." msgid "Cancel" msgstr "Nuligi" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dependas de:" @@ -150,22 +151,62 @@ msgstr "Mondo:" msgid "enabled" msgstr "ŝaltita" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Elŝutante…" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Ĉiuj pakaĵoj" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Klavo jam estas uzata" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Reeniri al ĉefmenuo" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +#, fuzzy +msgid "Base Game:" +msgstr "Gastigi ludon" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "ContentDB ne estas disponebla per Minetest kodotradukita sen cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Enlegante…" +msgstr "Elŝutante…" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -180,6 +221,16 @@ msgstr "Ludoj" msgid "Install" msgstr "Instali" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instali" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Malnepraj dependaĵoj:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -194,9 +245,26 @@ msgid "No results" msgstr "Neniuj rezultoj" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Serĉi" +#, fuzzy +msgid "No updates" +msgstr "Ĝisdatigi" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "Silentigi sonon" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -211,8 +279,12 @@ msgid "Update" msgstr "Ĝisdatigi" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Vido" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -326,7 +398,7 @@ msgstr "Montoj" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Fluo de koto" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -468,11 +540,6 @@ msgstr "< Reiri al agorda paĝo" msgid "Browse" msgstr "Foliumi" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Kliento" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Malŝaltita" @@ -517,6 +584,10 @@ msgstr "Restarigi pravaloron" msgid "Scale" msgstr "Skalo" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Serĉi" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Elekti dosierujon" @@ -633,6 +704,20 @@ msgstr "Malsukcesis instali modifaĵon kiel $1" msgid "Unable to install a modpack as a $1" msgstr "Malsukcesis instali modifaĵaron kiel $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Enlegante…" + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Klient-flanka skriptado malŝaltita" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Provu reŝalti la publikan liston de serviloj kaj kontroli vian retkonekton." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Foliumi enretan enhavon" @@ -686,7 +771,14 @@ msgid "Credits" msgstr "Kontribuantaro" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Elekti dosierujon" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -706,14 +798,10 @@ msgid "Bind Address" msgstr "Asocii adreso" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Agordi" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Krea reĝimo" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Ŝalti difektadon" @@ -727,11 +815,11 @@ msgstr "Gastigi servilon" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instali ludojn de ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nomo/Pasvorto" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -741,6 +829,11 @@ msgstr "Nova" msgid "No world created or selected!" msgstr "Neniu mondo estas kreita aŭ elektita!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Nova pasvorto" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Ludi" @@ -749,6 +842,11 @@ msgstr "Ludi" msgid "Port" msgstr "Pordo" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Elektu mondon:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Elektu mondon:" @@ -765,23 +863,23 @@ msgstr "Ekigi ludon" msgid "Address / Port" msgstr "Adreso / Pordo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Konekti" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Krea reĝimo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Difektado estas ŝaltita" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Forigi ŝataton" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Ŝati" @@ -789,16 +887,16 @@ msgstr "Ŝati" msgid "Join Game" msgstr "Aliĝi al ludo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nomo / Pasvorto" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Retprokrasto" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Dueloj ŝaltitas" @@ -826,10 +924,6 @@ msgstr "Ĉiuj agordoj" msgid "Antialiasing:" msgstr "Glatigo:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Ĉu vi certas, ke vi volas rekomenci vian mondon por unu ludanto?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Memori grandecon de ekrano" @@ -838,10 +932,6 @@ msgstr "Memori grandecon de ekrano" msgid "Bilinear Filter" msgstr "Dulineara filtrilo" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Tubera mapado" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Ŝanĝi klavojn" @@ -854,10 +944,6 @@ msgstr "Ligata vitro" msgid "Fancy Leaves" msgstr "Ŝikaj folioj" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Estigi Normalmapojn" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Etmapo" @@ -866,10 +952,6 @@ msgstr "Etmapo" msgid "Mipmap + Aniso. Filter" msgstr "Etmapo + Neizotropa filtrilo" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ne" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Neniu filtrilo" @@ -898,18 +980,10 @@ msgstr "Netravideblaj folioj" msgid "Opaque Water" msgstr "Netravidebla akvo" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Paralaksa ombrigo" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partikloj" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Rekomenci mondon por unu ludanto" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Ekrano:" @@ -922,6 +996,11 @@ msgstr "Agordoj" msgid "Shaders" msgstr "Ombrigiloj" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Fluginsuloj (eksperimentaj)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Ombrigiloj (nehaveblaj)" @@ -966,22 +1045,6 @@ msgstr "Ondantaj fluaĵoj" msgid "Waving Plants" msgstr "Ondantaj plantoj" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Jes" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Agordi modifaĵojn" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Ĉefmenuo" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Komenci ludon por unu" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Konekto eltempiĝis." @@ -1143,18 +1206,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Stirado:\n" "– %s: moviĝi antaŭen\n" @@ -1267,16 +1327,6 @@ msgstr "Nebulo malŝaltita" msgid "Fog enabled" msgstr "Nebulo ŝaltita" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Nebulo malŝaltita" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Nebulo ŝaltita" - #: src/client/game.cpp msgid "Game info:" msgstr "Ludaj informoj:" @@ -1297,16 +1347,6 @@ msgstr "Objektaj difinoj…" msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Nebulo malŝaltita" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Difektado estas ŝaltita" - #: src/client/game.cpp msgid "Media..." msgstr "Vidaŭdaĵoj…" @@ -1319,34 +1359,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Mapeto nuntempe malŝaltita de ludo aŭ modifaĵo" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Mapeto kaŝita" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Mapeto en radara reĝimo, zomo ×1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Mapeto en radara reĝimo, zomo ×2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Mapeto en radara reĝimo, zomo ×4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Mapeto en supraĵa reĝimo, zomo ×1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Mapeto en supraĵa reĝimo, zomo ×2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Mapeto en supraĵa reĝimo, zomo ×4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Trapasa reĝimo malŝaltita" @@ -1391,10 +1403,6 @@ msgstr "Fora servilo" msgid "Resolving address..." msgstr "Serĉante adreson…" -#: src/client/game.cpp -msgid "Respawn" -msgstr "Renaskiĝi" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Malŝaltiĝante…" @@ -1447,10 +1455,6 @@ msgstr "Laŭteco agordita al %d%%" msgid "Wireframe shown" msgstr "Dratostaro montrita" -#: src/client/game.cpp -msgid "You died" -msgstr "Vi mortis" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Zomado nuntempe malŝaltita de ludo aŭ modifaĵo" @@ -1467,16 +1471,6 @@ msgstr "Babilo kaŝita" msgid "Chat shown" msgstr "Babilo montrita" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Babilo kaŝita" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Babilo montrita" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Travida fasado kaŝita" @@ -1757,6 +1751,25 @@ msgstr "X-Butono 2" msgid "Zoom" msgstr "Zomo" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Mapeto kaŝita" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Mapeto en radara reĝimo, zomo ×1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Mapeto en supraĵa reĝimo, zomo ×1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Minimuma grandeco de teksturoj" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Pasvortoj ne kongruas!" @@ -1799,26 +1812,6 @@ msgstr "Memaga saltado" msgid "Backward" msgstr "Malantaŭen" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Ŝanĝi vidpunkton" @@ -1912,30 +1905,10 @@ msgstr "Kaŝiri" msgid "Special" msgstr "Speciala" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Speciala" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Baskuligi glitan vidpunkton" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Baskuligi glitan vidpunkton" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Baskuligi travidan fasadon" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Baskuligi flugan reĝimon" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Baskuligi babilan protokolon" @@ -2066,14 +2039,6 @@ msgstr "" "La normo estas vertikale ŝrumpita formo taŭga por insulo;\n" "egaligu ĉiujn tri nombrojn por akiri la krudan formon." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = paralaksa ombrigo kun klinaj informoj (pli rapida).\n" -"1 = reliefa mapado (pli preciza)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "2d-a bruo, kiu regas la formon/grandon de krestaj montoj." @@ -2133,6 +2098,10 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3d-bruo difinanta la strukturon de fluginsuloj.\n" +"Ŝanĝite de la implicita valoro, la bruo «scale» (implicite 0.7) eble\n" +"bezonos alĝustigon, ĉar maldikigaj funkcioj de fluginsuloj funkcias\n" +"plej bone kiam la bruo havas valoron inter -2.0 kaj 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2197,9 +2166,12 @@ msgid "ABM interval" msgstr "Intertempo de ABM (aktiva modifilo de monderoj)" #: src/settings_translation_file.cpp -#, fuzzy +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "Maksimumo de mondestigaj vicoj" +msgstr "Absoluta maksimumo de atendantaj estigotaj monderoj" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2256,6 +2228,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Alĝustigas densecon de la fluginsula tavolo.\n" +"Plialtigu la valoron por pliigi densecon. Eblas plusa aŭ minusa.\n" +"Valoro = 0.0: 50% de volumeno estas fluginsuloj.\n" +"Valoro = 2.0 (povas esti pli alta, depende de «mgv7_np_floatland»; ĉiam\n" +"kontrolu certige) kreas solidan tavolon de fluginsulaĵo." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2450,10 +2427,6 @@ msgstr "Konstruado en ludanto" msgid "Builtin" msgstr "Primitivaĵo" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Mapado de elstaraĵoj" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2531,22 +2504,6 @@ msgstr "" "Centro de amplekso de pliigo de la luma kurbo.\n" "Kie 0.0 estas minimuma lumnivelo, 1.0 estas maksimuma numnivelo." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Ŝanĝoj al fasado de la ĉefmenuo:\n" -"- full (plena): Pluraj mondoj por unu ludanto, elektilo de ludo, " -"teksturaro, ktp.\n" -"- simple (simpla): Unu mondo por unu ludanto, neniuj elektiloj de ludo aŭ " -"teksturaro.\n" -"Povus esti bezona por malgrandaj ekranoj." - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Grandeco de babiluja tiparo" @@ -2556,9 +2513,8 @@ msgid "Chat key" msgstr "Babila klavo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Erarserĉa protokola nivelo" +msgstr "Babileja protokola nivelo" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2713,6 +2669,10 @@ msgstr "Alteco de konzolo" msgid "ContentDB Flag Blacklist" msgstr "Malpermesitaj flagoj de ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "URL de la datena deponejo" @@ -2778,7 +2738,10 @@ msgid "Crosshair alpha" msgstr "Travidebleco de celilo" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Travidebleco de celilo (maltravidebleco, inter 0 kaj 255)." #: src/settings_translation_file.cpp @@ -2786,8 +2749,10 @@ msgid "Crosshair color" msgstr "Koloro de celilo" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Koloro de celilo (R,V,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2850,9 +2815,8 @@ msgid "Default report format" msgstr "Implicita raporta formo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Norma ludo" +msgstr "Implicita grandeco de la kolumno" #: src/settings_translation_file.cpp msgid "" @@ -2892,14 +2856,6 @@ msgstr "Difinas vastan sturkturon de akvovojo." msgid "Defines location and terrain of optional hills and lakes." msgstr "Difinas lokon kaj terenon de malnepraj montetoj kaj lagoj." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Difinas glatigan paŝon de teksturoj.\n" -"Pli alta valoro signifas pli glatajn normalmapojn." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Difinas la bazan ternivelon." @@ -2979,6 +2935,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Malsamtempigi bildmovon de monderoj" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Dekstren-klavo" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Fosaj partikloj" @@ -3044,7 +3005,8 @@ msgid "Enable console window" msgstr "Ŝalti konzolan fenestron" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Ŝalti krean reĝimon por novaj mapoj." #: src/settings_translation_file.cpp @@ -3153,18 +3115,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Ŝaltas movbildojn en portaĵujo." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Ŝaltas mapadon de elstaraĵoj por teksturoj. Normalmapoj devas veni kun la " -"teksturaro,\n" -"aŭ estiĝi memage.\n" -"Bezonas ŝaltitajn ombrigilojn." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Ŝaltas kaŝmemoradon de maŝoj turnitaj per «facedir»." @@ -3173,22 +3123,6 @@ msgstr "Ŝaltas kaŝmemoradon de maŝoj turnitaj per «facedir»." msgid "Enables minimap." msgstr "Ŝaltas mapeton." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Ŝaltas dumludan estigadon de normalmapoj (Reliefiga efekto).\n" -"Bezonas ŝaltitan mapadon de elstaraĵoj." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Ŝaltas mapadon de paralaksa ombrigo.\n" -"Bezonas ŝaltitajn ombrigilojn." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3209,14 +3143,6 @@ msgstr "Intervalo inter presoj de profilaj datenoj de la motoro" msgid "Entity methods" msgstr "Metodoj de estoj" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Prova elekteblo; povas estigi videblajn spacojn inter monderoj\n" -"je nombro super 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3226,10 +3152,18 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Eksponento de maldikigo de fluginsuloj. Ŝanĝas la konduton\n" +"de maldikigo.\n" +"Valoro = 1.0 kreas unuforman, linearan maldikigon.\n" +"Valoroj > 1.0 kreas glatan maldikigon taŭgan por la implicitaj apartaj\n" +"fluginsuloj.\n" +"Valoroj < 1.0 (ekzemple 0.25) kreas pli difinitan ternivelon kun\n" +"pli plataj malaltejoj, taŭgaj por solida tavolo de fluginsulaĵo." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "Kadroj sekunde en paŭza menuo" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Maksimumaj KS paŭze." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3348,39 +3282,32 @@ msgid "Fixed virtual joystick" msgstr "Fiksita virtuala stirstango" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Denseco de fluginsulaj montoj" +msgstr "Denseco de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Maksimuma Y de forgeskelo" +msgstr "Maksimuma Y de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Minimuma Y de forgeskeloj" +msgstr "Minimuma Y de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Baza bruo de fluginsuloj" +msgstr "Bruo de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Eksponento de fluginsulaj montoj" +msgstr "Eksponento de maldikigo de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Baza bruo de fluginsuloj" +msgstr "Distanco de maldikigo de fluginsuloj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Alteco de fluginsuloj" +msgstr "Akvonivelo de fluginsuloj" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3439,6 +3366,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Grandeco de tiparo de freŝa babila teksto kaj babilujo en punktoj (pt).\n" +"Valoro 0 uzos la implicitan grandecon de tiparo." #: src/settings_translation_file.cpp msgid "" @@ -3558,10 +3487,6 @@ msgstr "Skala filtrilo de grafika interfaco" msgid "GUI scaling filter txr2img" msgstr "Skala filtrilo de grafika interfaco txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Estigi normalmapojn" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Mallokaj revokoj" @@ -3572,6 +3497,10 @@ msgid "" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Ĉieaj atributoj de mondestigo.\n" +"En mondestigo v6, la parametro «decorations» regas ĉiujn ornamojn\n" +"krom arboj kaj ĝangala herbo; en ĉiuj ailaj mondestigiloj, ĉi tiu parametro\n" +"regas ĉiujn ornamojn." #: src/settings_translation_file.cpp msgid "" @@ -3618,10 +3547,11 @@ msgid "HUD toggle key" msgstr "Baskula klavo por travida fasado" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Traktado de evitindaj Lua-API-vokoj:\n" @@ -4117,7 +4047,7 @@ msgstr "Dosierindiko al kursiva egallarĝa tiparo" #: src/settings_translation_file.cpp msgid "Item entity TTL" -msgstr "" +msgstr "Daŭro de lasita portaĵo" #: src/settings_translation_file.cpp msgid "Iterations" @@ -4144,6 +4074,11 @@ msgstr "Identigilo de stirstango" msgid "Joystick button repetition interval" msgstr "Ripeta periodo de stirstangaj klavoj" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Speco de stirstango" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Sentemo de stirstanga vidamplekso" @@ -4246,6 +4181,17 @@ msgstr "" "Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Klavo por salti.\n" +"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4388,6 +4334,17 @@ msgstr "" "Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Klavo por salti.\n" +"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5127,18 +5084,13 @@ msgid "Lower Y limit of dungeons." msgstr "Suba Y-limo de forgeskeloj." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Suba Y-limo de forgeskeloj." +msgstr "Suba Y-limo de fluginsuloj." #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "Ĉefmenua skripto" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Stilo de ĉefmenuo" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5155,6 +5107,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Igas fluaĵojn netravideblaj" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Dosierujo kun mapoj" @@ -5214,15 +5174,16 @@ msgstr "" "kaj la flago «jungles» estas malatentata." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Mapestigilaj ecoj speciale por Mapestigilo v7.\n" -"«ridges» ŝaltas la riverojn." +"Mapestigaj ecoj speciale por Mapestigilo v7.\n" +"«ridges»: Riveroj.\n" +"«floatlands»: Flugantaj teramasoj en la atmosfero.\n" +"«caverns»: Grandaj kavernegoj profunde sub tero." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5337,7 +5298,8 @@ msgid "Maximum FPS" msgstr "Maksimumaj KS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Maksimumaj KS paŭze." #: src/settings_translation_file.cpp @@ -5381,22 +5343,27 @@ msgid "Maximum number of blocks that can be queued for loading." msgstr "Maksimuma nombro da mondopecoj atendantaj legon." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" "Maksimumo nombro de mondopecoj atendantaj estigon.\n" -"Vakigu por memaga elekto de ĝusta kvanto." +"Ĉi tiu limo estas devigata al ĉiu ludanto aparte." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" "Maksimuma nombro de atendantaj mondopecoj legotaj de loka dosiero.\n" -"Agordi vake por memaga elekto de ĝusta nombro." +"Ĉi tiu limo estas devigata al ĉiu ludanto aparte." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5492,7 +5459,7 @@ msgstr "Metodo emfazi elektitan objekton." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Minimuma nivelo de protokolado skribota al la babilujo." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5611,9 +5578,8 @@ msgid "" msgstr "Nomo de la servilo, montrota al ludantoj kaj en la listo de serviloj." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near plane" -msgstr "Proksime tonda ebeno" +msgstr "Proksima ebeno" #: src/settings_translation_file.cpp msgid "Network" @@ -5651,14 +5617,6 @@ msgstr "Intervalo de NodeTimer" msgid "Noises" msgstr "Bruoj" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Normalmapa specimenado" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Normalmapa potenco" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Nombro da mondestigaj fadenoj" @@ -5704,10 +5662,6 @@ msgstr "" "Ĉi tio decidas preferon inter superŝarĝaj negocoj de «sqlite»\n" "kaj uzon de memoro (4096=100MB, proksimume)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Nombro da iteracioj de paralaksa ombrigo." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Enreta deponejo de enhavo" @@ -5738,34 +5692,6 @@ msgstr "" "enluda\n" "fenestro estas malfermita." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Entuta ekarto de la efiko de paralaksa ombrigo, kutime skalo/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Entuta vasteco de paralaksa ombrigo." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Paralaksa ombrigo" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Ekarto de paralaksa okludo" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Iteracioj de paralaksa ombrigo" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Reĝimo de paralaksa ombrigo" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Skalo de paralaksa ombrigo" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5786,6 +5712,8 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Dosierindiko por konservotaj ekrankopioj. Povas esti absoluta\n" +"aŭ relativa. La dosierujo estos kreita, se ĝi ne jam ekzistas." #: src/settings_translation_file.cpp msgid "" @@ -5850,6 +5778,16 @@ msgstr "Celilsekva klavo" msgid "Pitch move mode" msgstr "Celilsekva reĝimo" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Fluga klavo" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Periodo inter ripetoj de dekstra klako" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6029,10 +5967,6 @@ msgstr "Bruo de grandeco de krestaj montoj" msgid "Right key" msgstr "Dekstren-klavo" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Periodo inter ripetoj de dekstra klako" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Profundeco de rivera akvovojo" @@ -6326,6 +6260,20 @@ msgstr "Montri erarserĉajn informojn" msgid "Show entity selection boxes" msgstr "Montri elektujojn de estoj" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Agordi la lingvon. Lasu malplena por uzi la sisteman.\n" +"Rerulo necesas post la ŝanĝo." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Implice grasa tiparo" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Ferma mesaĝo" @@ -6474,10 +6422,6 @@ msgstr "Bruo de disvastiĝo de terasaj montoj" msgid "Strength of 3D mode parallax." msgstr "Potenco de paralakso." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Forteco de estigitaj normalmapoj." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6586,6 +6530,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "URL al la deponejo de enhavo" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "Identigilo de la uzota stirstango" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6651,13 +6600,14 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "La bildiga internaĵo por Irrlicht.\n" "Rerulo necesas post ĉi tiu ŝanĝo.\n" @@ -6697,6 +6647,12 @@ msgstr "" "la datentraktan kapablon, ĝis oni provos ĝin malgrandigi per forĵeto de\n" "malnovaj viceroj. Nula valoro malŝaltas la funkcion." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6706,10 +6662,10 @@ msgstr "" "de stirstangaj klavoj." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "Tempo (en sekundoj) inter ripetaj klakoj dum premo de la dekstra musbutono." @@ -6864,6 +6820,17 @@ msgstr "" "precipe dum uzo de teksturaro je alta distingumo.\n" "Gamae ĝusta malgrandigado ne estas subtenata." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Uzi trilinearan filtradon skalante teksturojn." @@ -7097,6 +7064,12 @@ msgstr "" "Ĉu tiparoj de FreeType uziĝas; postulas entradukitan subtenon de FreeType.\n" "Malŝaltite, ĉi tio anstataŭe uzigas tiparojn bitbildajn kaj XML-vektorajn." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "Ĉu teksturaj movbildoj de monderoj malsamtempiĝu en ĉiu mondopeco." @@ -7240,6 +7213,24 @@ msgstr "Y-nivelo de malsupra tereno kaj marfundo." msgid "Y-level of seabed." msgstr "Y-nivelo de marplanko." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Tempolimo de dosiere elŝuto de cURL" @@ -7252,23 +7243,12 @@ msgstr "Samtempa limo de cURL" msgid "cURL timeout" msgstr "cURL tempolimo" -#~ msgid "Ok" -#~ msgstr "Bone" - -#~ msgid "Back" -#~ msgstr "Reeniri" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Elŝutante kaj instalante $1, bonvolu atendi…" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limo de viceroj enlegotaj de disko" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Potenco de paralaksa ombrigo" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Dosierindiko por konservi ekrankopiojn." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = paralaksa ombrigo kun klinaj informoj (pli rapida).\n" +#~ "1 = reliefa mapado (pli preciza)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7283,6 +7263,39 @@ msgstr "cURL tempolimo" #~ msgstr "" #~ "Ŝanĝas kiel montecaj fluginsuloj maldikiĝas super kaj sub la mezpunkto." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ĉu vi certas, ke vi volas rekomenci vian mondon por unu ludanto?" + +#~ msgid "Back" +#~ msgstr "Reeniri" + +#~ msgid "Bump Mapping" +#~ msgstr "Tubera mapado" + +#~ msgid "Bumpmapping" +#~ msgstr "Mapado de elstaraĵoj" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Ŝanĝoj al fasado de la ĉefmenuo:\n" +#~ "- full (plena): Pluraj mondoj por unu ludanto, elektilo de ludo, " +#~ "teksturaro, ktp.\n" +#~ "- simple (simpla): Unu mondo por unu ludanto, neniuj elektiloj de ludo " +#~ "aŭ teksturaro.\n" +#~ "Povus esti bezona por malgrandaj ekranoj." + +#~ msgid "Config mods" +#~ msgstr "Agordi modifaĵojn" + +#~ msgid "Configure" +#~ msgstr "Agordi" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7295,6 +7308,9 @@ msgstr "cURL tempolimo" #~ "Regas larĝecon de tuneloj; pli malgranda valoro kreas pri larĝajn " #~ "tunelojn." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Koloro de celilo (R,V,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Akreco de mallumo" @@ -7305,6 +7321,13 @@ msgstr "cURL tempolimo" #~ "Difinas zonojn de glata tereno sur fluginsuloj.\n" #~ "Glataj fluginsuloj okazas kiam bruo superas nulon." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Difinas glatigan paŝon de teksturoj.\n" +#~ "Pli alta valoro signifas pli glatajn normalmapojn." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7314,9 +7337,47 @@ msgstr "cURL tempolimo" #~ "difinoj\n" #~ "Y de supra limo de lafo en grandaj kavernoj." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Elŝutante kaj instalante $1, bonvolu atendi…" + #~ msgid "Enable VBO" #~ msgstr "Ŝalti VBO(Vertex Buffer Object)" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ŝaltas mapadon de elstaraĵoj por teksturoj. Normalmapoj devas veni kun la " +#~ "teksturaro,\n" +#~ "aŭ estiĝi memage.\n" +#~ "Bezonas ŝaltitajn ombrigilojn." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Ŝaltas dumludan estigadon de normalmapoj (Reliefiga efekto).\n" +#~ "Bezonas ŝaltitan mapadon de elstaraĵoj." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ŝaltas mapadon de paralaksa ombrigo.\n" +#~ "Bezonas ŝaltitajn ombrigilojn." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Prova elekteblo; povas estigi videblajn spacojn inter monderoj\n" +#~ "je nombro super 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "Kadroj sekunde en paŭza menuo" + #~ msgid "Floatland base height noise" #~ msgstr "Bruo de baza alteco de fluginsuloj" @@ -7329,6 +7390,12 @@ msgstr "cURL tempolimo" #~ msgid "Gamma" #~ msgstr "Helĝustigo" +#~ msgid "Generate Normal Maps" +#~ msgstr "Estigi Normalmapojn" + +#~ msgid "Generate normalmaps" +#~ msgstr "Estigi normalmapojn" + #~ msgid "IPv6 support." #~ msgstr "Subteno de IPv6." @@ -7338,15 +7405,102 @@ msgstr "cURL tempolimo" #~ msgid "Lightness sharpness" #~ msgstr "Akreco de heleco" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limo de viceroj enlegotaj de disko" + +#~ msgid "Main" +#~ msgstr "Ĉefmenuo" + +#~ msgid "Main menu style" +#~ msgstr "Stilo de ĉefmenuo" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mapeto en radara reĝimo, zomo ×2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mapeto en radara reĝimo, zomo ×4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Mapeto en supraĵa reĝimo, zomo ×2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Mapeto en supraĵa reĝimo, zomo ×4" + +#~ msgid "Name/Password" +#~ msgstr "Nomo/Pasvorto" + +#~ msgid "No" +#~ msgstr "Ne" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normalmapa specimenado" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmapa potenco" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Nombro da iteracioj de paralaksa ombrigo." + +#~ msgid "Ok" +#~ msgstr "Bone" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Entuta ekarto de la efiko de paralaksa ombrigo, kutime skalo/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Entuta vasteco de paralaksa ombrigo." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaksa ombrigo" + +#~ msgid "Parallax occlusion" +#~ msgstr "Paralaksa ombrigo" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Ekarto de paralaksa okludo" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iteracioj de paralaksa ombrigo" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Reĝimo de paralaksa ombrigo" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skalo de paralaksa ombrigo" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Potenco de paralaksa ombrigo" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Dosierindiko al tiparo «TrueType» aŭ bitbildo." +#~ msgid "Path to save screenshots at." +#~ msgstr "Dosierindiko por konservi ekrankopiojn." + +#~ msgid "Projecting dungeons" +#~ msgstr "Planante forgeskelojn" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Rekomenci mondon por unu ludanto" + +#~ msgid "Select Package File:" +#~ msgstr "Elekti pakaĵan dosieron:" + #~ msgid "Shadow limit" #~ msgstr "Limo por ombroj" +#~ msgid "Start Singleplayer" +#~ msgstr "Komenci ludon por unu" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Forteco de estigitaj normalmapoj." + #~ msgid "This font will be used for certain languages." #~ msgstr "Tiu ĉi tiparo uziĝos por iuj lingvoj." +#~ msgid "Toggle Cinematic" +#~ msgstr "Baskuligi glitan vidpunkton" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7357,21 +7511,21 @@ msgstr "cURL tempolimo" #~ "Variaĵo de alteco de montetoj kaj profundeco de lagoj sur glata tereno de " #~ "fluginsuloj." -#~ msgid "Waving water" -#~ msgstr "Ondanta akvo" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-nivelo kien etendiĝas ombroj de fluginsuloj." - -#~ msgid "Projecting dungeons" -#~ msgstr "Planante forgeskelojn" +#~ msgid "View" +#~ msgstr "Vido" #~ msgid "Waving Water" #~ msgstr "Ondanta akvo" +#~ msgid "Waving water" +#~ msgstr "Ondanta akvo" + #, fuzzy #~ msgid "Y of upper limit of lava in large caves." #~ msgstr "Y de supera limo de grandaj kvazaŭ-hazardaj kavernoj." -#~ msgid "Select Package File:" -#~ msgstr "Elekti pakaĵan dosieron:" +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-nivelo kien etendiĝas ombroj de fluginsuloj." + +#~ msgid "Yes" +#~ msgstr "Jes" diff --git a/po/es/minetest.po b/po/es/minetest.po index 7a873f452..4d26f2b5c 100644 --- a/po/es/minetest.po +++ b/po/es/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Spanish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" -"Last-Translator: Agustin Calderon \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-05 09:40+0000\n" +"Last-Translator: j45 minetest \n" "Language-Team: Spanish \n" "Language: es\n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Reaparecer" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Has muerto" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "Reconectar" msgid "The server has requested a reconnect:" msgstr "El servidor ha solicitado una reconexión:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Cargando..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "La versión del protocolo no coincide. " @@ -54,12 +58,6 @@ msgstr "El servidor utiliza el protocolo versión $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "El servidor soporta versiones del protocolo entre $1 y $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Intente rehabilitar la lista de servidores públicos y verifique su conexión " -"a Internet." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Solo se soporta la versión de protocolo $1." @@ -68,7 +66,8 @@ msgstr "Solo se soporta la versión de protocolo $1." msgid "We support protocol versions between version $1 and $2." msgstr "Nosotros soportamos versiones de protocolo entre la versión $1 y $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Nosotros soportamos versiones de protocolo entre la versión $1 y $2." msgid "Cancel" msgstr "Cancelar" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dependencias:" @@ -151,14 +151,54 @@ msgstr "Mundo:" msgid "enabled" msgstr "activado" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" ya existe. Quieres remplazarlo?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "Las dependencias $1 y $2 serán instaladas." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 por $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 descargando,\n" +"$2 en espera" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 descargando..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 dependencias requeridas no se encuentran." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 serán instalados, y $2 dependencias serán ignoradas." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Todos los paquetes" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Ya está instalado" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Volver al menú principal" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Juego Base:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -181,6 +221,14 @@ msgstr "Juegos" msgid "Install" msgstr "Instalar" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Instalar $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Instalar dependencias faltantes" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -195,9 +243,24 @@ msgid "No results" msgstr "Sin resultados" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Buscar" +msgid "No updates" +msgstr "No hay actualizaciones" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "No encontrado" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Sobreescribir" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Por favor verifica que el juego base está bien." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "En cola" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,8 +275,12 @@ msgid "Update" msgstr "Actualizar" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Ver" +msgid "Update All [$1]" +msgstr "Actualizar Todo [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Ver más información en un navegador web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -469,11 +536,6 @@ msgstr "< Volver a la página de configuración" msgid "Browse" msgstr "Explorar" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Cliente" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Desactivado" @@ -518,6 +580,10 @@ msgstr "Restablecer por defecto" msgid "Scale" msgstr "Escala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Buscar" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Seleccionar carpeta" @@ -635,6 +701,21 @@ msgstr "Fallo al instalar un mod como $1" msgid "Unable to install a modpack as a $1" msgstr "Fallo al instalar un paquete de mod como $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Cargando..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "El Scripting en el lado del cliente está desactivado" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Intente rehabilitar la lista de servidores públicos y verifique su conexión " +"a Internet." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Explorar contenido en línea" @@ -688,8 +769,16 @@ msgid "Credits" msgstr "Créditos" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Abrir Directorio de Datos de Usuario" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Abre el directorio que contiene los mundos, juegos, mods, y paquetes de\n" +"textura, del usuario, en un gestor / explorador de archivos." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -708,32 +797,28 @@ msgid "Bind Address" msgstr "Asociar dirección" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Configurar" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Modo creativo" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Permitir daños" #: builtin/mainmenu/tab_local.lua msgid "Host Game" -msgstr "Juego anfitrión" +msgstr "Hospedar juego" #: builtin/mainmenu/tab_local.lua msgid "Host Server" -msgstr "Servidor anfitrión" +msgstr "Hospedar servidor" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" msgstr "Instalar juegos desde ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nombre / contraseña" +msgid "Name" +msgstr "Nombre" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -743,6 +828,10 @@ msgstr "Nuevo" msgid "No world created or selected!" msgstr "¡No se ha dado un nombre al mundo o no se ha seleccionado uno!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Contraseña" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Jugar juego" @@ -751,6 +840,10 @@ msgstr "Jugar juego" msgid "Port" msgstr "Puerto" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Selecciona Mods" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Selecciona un mundo:" @@ -767,23 +860,23 @@ msgstr "Empezar juego" msgid "Address / Port" msgstr "Dirección / puerto" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Conectar" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Modo creativo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Daño activado" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Borrar Fav." -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favorito" @@ -791,16 +884,16 @@ msgstr "Favorito" msgid "Join Game" msgstr "Unirse al juego" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nombre / contraseña" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP activado" @@ -828,10 +921,6 @@ msgstr "Todos los ajustes" msgid "Antialiasing:" msgstr "Suavizado:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "¿Estás seguro de querer reiniciar el mundo de un jugador?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Auto-guardar tamaño de pantalla" @@ -840,10 +929,6 @@ msgstr "Auto-guardar tamaño de pantalla" msgid "Bilinear Filter" msgstr "Filtrado bilineal" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Mapeado de relieve" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Configurar teclas" @@ -856,10 +941,6 @@ msgstr "Vidrio conectado" msgid "Fancy Leaves" msgstr "Hojas elegantes" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Generar mapas normales" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -868,10 +949,6 @@ msgstr "Mipmap" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Filtro aniso." -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "No" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Sin filtrado" @@ -900,18 +977,10 @@ msgstr "Hojas opacas" msgid "Opaque Water" msgstr "Agua opaca" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Oclusión de paralaje" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partículas" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Reiniciar mundo de un jugador" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Pantalla:" @@ -924,6 +993,10 @@ msgstr "Configuración" msgid "Shaders" msgstr "Sombreadores" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Sombreadores (experimental)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Sombreadores (no disponible)" @@ -968,22 +1041,6 @@ msgstr "Movimiento de líquidos" msgid "Waving Plants" msgstr "Movimiento de plantas" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Sí" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Configurar mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Principal" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Comenzar un jugador" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Tiempo de espera de la conexión agotado." @@ -1140,25 +1197,22 @@ msgid "Continue" msgstr "Continuar" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Controles:\n" "- %s: moverse adelante\n" @@ -1166,12 +1220,12 @@ msgstr "" "- %s: moverse a la izquierda\n" "- %s: moverse a la derecha\n" "- %s: saltar/escalar\n" -"- %s: agacharse/bajar\n" +"- %s: excavar/golpear\n" +"- %s: colocar/usar\n" +"- %s: a hurtadillas/bajar\n" "- %s: soltar objeto\n" "- %s: inventario\n" "- Ratón: girar/mirar\n" -"- Ratón izq.: cavar/golpear\n" -"- Ratón der.: colocar/usar\n" "- Rueda del ratón: elegir objeto\n" "- %s: chat\n" @@ -1271,16 +1325,6 @@ msgstr "Niebla desactivada" msgid "Fog enabled" msgstr "Niebla activada" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Niebla desactivada" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Niebla activada" - #: src/client/game.cpp msgid "Game info:" msgstr "Información del juego:" @@ -1301,16 +1345,6 @@ msgstr "Definiciones de objetos..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Niebla desactivada" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Daño activado" - #: src/client/game.cpp msgid "Media..." msgstr "Media..." @@ -1323,34 +1357,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "El minimapa se encuentra actualmente desactivado por el juego o un mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minimapa oculto" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minimapa en modo radar, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minimapa en modo radar, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minimapa en modo radar, Zoom x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimapa en modo superficie, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimapa en modo superficie, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimapa en modo superficie, Zoom x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Modo 'Noclip' desactivado" @@ -1361,7 +1367,7 @@ msgstr "Modo 'Noclip' activado" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Modo \"noclip\" activado (nota: sin privilegio 'noclip')" +msgstr "Modo 'Noclip' activado (nota: sin privilegio 'noclip')" #: src/client/game.cpp msgid "Node definitions..." @@ -1395,10 +1401,6 @@ msgstr "Servidor remoto" msgid "Resolving address..." msgstr "Resolviendo dirección..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Reaparecer" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Cerrando..." @@ -1449,11 +1451,7 @@ msgstr "Volumen cambiado a %d%%" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "Wireframe mostrado" - -#: src/client/game.cpp -msgid "You died" -msgstr "Has muerto" +msgstr "Líneas 3D mostradas" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1461,7 +1459,7 @@ msgstr "El zoom está actualmente desactivado por el juego o un mod" #: src/client/game.cpp msgid "ok" -msgstr "aceptar" +msgstr "Aceptar" #: src/client/gameui.cpp msgid "Chat hidden" @@ -1469,17 +1467,7 @@ msgstr "Chat oculto" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "Chat mostrado" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Chat oculto" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Chat mostrado" +msgstr "Chat visible" #: src/client/gameui.cpp msgid "HUD hidden" @@ -1761,6 +1749,24 @@ msgstr "X Botón 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimapa oculto" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimapa en modo radar, Zoom x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimapa en modo superficie, Zoom x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Minimapa en modo textura" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "¡Las contraseñas no coinciden!" @@ -1804,26 +1810,6 @@ msgstr "Salto automático" msgid "Backward" msgstr "Atrás" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Cambiar cámara" @@ -1918,30 +1904,10 @@ msgstr "Caminar" msgid "Special" msgstr "Especial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Especial" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Activar cinemático" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Activar cinemático" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Alternar el HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Activar volar" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Alternar el registro del chat" @@ -2035,7 +2001,6 @@ msgstr "" "del círculo principal." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" @@ -2048,14 +2013,17 @@ msgid "" msgstr "" "Desvío (X,Y,Z) del fractal desde el centro del mundo en unidades de " "'escala'.\n" -"Puede ser utilizado para mover el punto deseado (0, 0) para crear un\n" +"Puede ser utilizado para mover el punto deseado al inicio de coordenadas (0, " +"0) para crear un\n" "punto de aparición mejor, o permitir 'ampliar' en un punto deseado si\n" "se incrementa la 'escala'.\n" -"El valor por defecto está ajustado para un punto de aparición adecuado para\n" -"los conjuntos Madelbrot con parámetros por defecto, podría ser necesario\n" -"modificarlo para otras situaciones.\n" -"El rango de está comprendido entre -2 y 2. Multiplicar por 'escala' para el\n" -"desvío en nodos." +"El valor por defecto está ajustado para un punto de aparición adecuado " +"para \n" +"los conjuntos Madelbrot\n" +"Con parámetros por defecto, podría ser necesariomodificarlo para otras \n" +"situaciones.\n" +"El rango de está comprendido entre -2 y 2. Multiplicar por la 'escala' para " +"el desvío en nodos." #: src/settings_translation_file.cpp msgid "" @@ -2073,15 +2041,7 @@ msgstr "" "limitado en tamaño por el mundo.\n" "Incrementa estos valores para 'ampliar' el detalle del fractal.\n" "El valor por defecto es para ajustar verticalmente la forma para\n" -"una isla, establece los 3 números igual para la forma pura." - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = oclusión de paralaje con información de inclinación (más rápido).\n" -"1 = mapa de relieve (más lento, más preciso)." +"una isla, establece los 3 números iguales para la forma inicial." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -2096,28 +2056,22 @@ msgid "2D noise that controls the shape/size of step mountains." msgstr "Ruido 2D para controlar la forma/tamaño de las montañas inclinadas." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" -"Ruido 2D que controla los rangos de tamaño/aparición de las montañas " -"escarpadas." +msgstr "Ruido 2D que controla el tamaño/aparición de cordilleras montañosas." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "Ruido 2D para controlar el tamaño/aparición de las colinas." +msgstr "Ruido 2D que controla el tamaño/aparición de las colinas ondulantes." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" -"Ruido 2D para controlar las rangos de tamaño/aparición de las montañas " +"Ruido 2D que controla el tamaño/aparición de los intervalos de montañas " "inclinadas." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Ruido 2D para controlar la forma/tamaño de las colinas." +msgstr "Ruido 2D para ubicar los ríos, valles y canales." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2128,9 +2082,8 @@ msgid "3D mode" msgstr "Modo 3D" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Oclusión de paralaje" +msgstr "Fuerza de paralaje en modo 3D" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2151,6 +2104,12 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Ruido 3D que define las estructuras flotantes.\n" +"Si se altera la escala de ruido por defecto (0,7), puede ser necesario " +"ajustarla, \n" +"los valores de ruido que definen la estrechez de islas flotantes funcionan " +"mejor \n" +"cuando están en un rango de aproximadamente -2.0 a 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2219,9 +2178,12 @@ msgid "ABM interval" msgstr "Intervalo ABM" #: src/settings_translation_file.cpp -#, fuzzy +msgid "ABM time budget" +msgstr "Límite de tiempo para MBA" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "Limite absoluto de colas emergentes" +msgstr "Límite absoluto de bloques en proceso" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2278,6 +2240,12 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajusta la densidad de la isla flotante.\n" +"Incrementar el valor para incrementar la densidad. Este puede ser negativo o " +"positivo\n" +"Valor = 0.0: 50% del volumen está flotando \n" +"Valor = 2.0 (puede ser mayor dependiendo de 'mgv7_np_floatland',\n" +"siempre pruébelo para asegurarse) crea una isla flotante compacta." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2479,11 +2447,6 @@ msgid "Builtin" msgstr "Incorporado" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Mapeado de relieve" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2491,9 +2454,10 @@ msgid "" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" "Distancia de la cámara 'cerca del plano delimitador' en nodos, entre 0 y " -"0,5.\n" -"La mayoría de los usuarios no necesitarán cambiar esto.\n" -"El aumento puede reducir los artefactos en GPU más débiles.\n" +"0,25.\n" +"Solo funciona en plataformas GLES. La mayoría de los usuarios no necesitarán " +"cambiar esto.\n" +"Aumentarlo puede reducir el artifacting en GPU más débiles.\n" "0.1 = Predeterminado, 0,25 = Buen valor para comprimidos más débiles." #: src/settings_translation_file.cpp @@ -2561,33 +2525,16 @@ msgstr "" "Cuando 0.0 es el nivel mínimo de luz, 1.0 es el nivel de luz máximo." #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Cambia la UI del menú principal:\n" -"-\tCompleto:\tMúltiples mundos, elección de juegos y texturas, etc.\n" -"-\tSimple:\tUn solo mundo, sin elección de juegos o texturas.\n" -"Puede ser necesario en pantallas pequeñas.\n" -"-\tAutomático:\tSimple en Android, completo en otras plataformas." - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Tamaño de la fuente" +msgstr "Tamaño de la fuente del chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tecla del Chat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Nivel de registro de depuración" +msgstr "Nivel de registro del chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2683,12 +2630,12 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" -"Lista de banderas a ocultar en el repositorio de contenido. La lista usa la " +"Lista de 'marcas' a ocultar en el repositorio de contenido. La lista usa la " "coma como separador.\n" "Se puede usar la etiqueta \"nonfree\" para ocultar paquetes que no tienen " -"licencia libre (tal como define la Funcación de software libre (FSF).\n" -"También puedes especificar proporciones de contenido.\n" -"Estas banderas son independientes de la versión de Minetest.\n" +"licencia libre (tal como define la Fundación de software libre (FSF)).\n" +"También puedes especificar clasificaciones de contenido.\n" +"Estas 'marcas' son independientes de la versión de Minetest.\n" "Si quieres ver una lista completa visita https://content.minetest.net/help/" "content_flags/" @@ -2697,8 +2644,9 @@ msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" -"Lista separada por comas de mods que son permitidos de acceder a APIs de " -"HTTP, las cuales les permiten subir y descargar archivos al/desde internet." +"Lista (separada por comas) de mods a los que se les permite acceder a APIs " +"de HTTP, las cuales \n" +"les permiten subir y descargar archivos al/desde internet." #: src/settings_translation_file.cpp msgid "" @@ -2741,6 +2689,10 @@ msgstr "Altura de consola" msgid "ContentDB Flag Blacklist" msgstr "Lista negra de banderas de ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Descargas máximas simultáneas para ContentDB" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "Dirección URL de ContentDB" @@ -2768,8 +2720,9 @@ msgid "" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" "Controla la duración del ciclo día/noche.\n" -"Ejemplos: 72 = 20min, 360 = 4min, 1 = 24hora, 0 = día/noche/lo que sea se " -"queda inalterado." +"Ejemplos: \n" +"72 = 20min, 360 = 4min, 1 = 24hs, 0 = día/noche/lo que sea se queda " +"inalterado." #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." @@ -2808,16 +2761,24 @@ msgid "Crosshair alpha" msgstr "Opacidad del punto de mira" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Alfa del punto de mira (opacidad, entre 0 y 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Alfa del punto de mira (opacidad, entre 0 y 255).\n" +"También controla el color del objeto punto de mira." #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Color de la cruz" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Color de la cruz (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Color del punto de mira (R,G,B).\n" +"También controla el color del objeto punto de mira" #: src/settings_translation_file.cpp msgid "DPI" @@ -2880,9 +2841,8 @@ msgid "Default report format" msgstr "Formato de Reporte por defecto" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Juego por defecto" +msgstr "Tamaño por defecto del stack (Montón)" #: src/settings_translation_file.cpp msgid "" @@ -2922,14 +2882,6 @@ msgstr "Define la estructura del canal fluvial a gran escala." msgid "Defines location and terrain of optional hills and lakes." msgstr "Define la localización y terreno de colinas y lagos opcionales." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Define el intervalo de muestreo de las texturas.\n" -"Un valor más alto causa mapas de relieve más suaves." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Define el nivel base del terreno." @@ -2991,8 +2943,8 @@ msgid "" "Description of server, to be displayed when players join and in the " "serverlist." msgstr "" -"Descripción del servidor, que se muestra cuando los jugadores se unen, y en\n" -"la lista de servidores." +"Descripción del servidor, que se muestra en la lista de servidores y cuando " +"los jugadores se unen." #: src/settings_translation_file.cpp msgid "Desert noise threshold" @@ -3010,6 +2962,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Desincronizar la animación de los bloques" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Tecla Excavar" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Partículas de excavación" @@ -3076,7 +3032,8 @@ msgid "Enable console window" msgstr "Habilitar la ventana de la consola" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Habilitar el modo creativo para los nuevos mapas creados." #: src/settings_translation_file.cpp @@ -3170,7 +3127,6 @@ msgstr "" "Necesita habilitar enable_ipv6 para ser activado." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enables Hable's 'Uncharted 2' filmic tone mapping.\n" "Simulates the tone curve of photographic film and how this approximates the\n" @@ -3188,18 +3144,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Habilita la animación de objetos en el inventario." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Habilita mapeado de relieves para las texturas. El mapeado de normales " -"necesita ser\n" -"suministrados por el paquete de texturas, o será generado automaticamente.\n" -"Requiere habilitar sombreadores." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Habilitar cacheado de mallas giradas." @@ -3208,23 +3152,6 @@ msgstr "Habilitar cacheado de mallas giradas." msgid "Enables minimap." msgstr "Activar mini-mapa." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Habilita la generación de mapas de normales (efecto realzado) en el " -"momento.\n" -"Requiere habilitar mapeado de relieve." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Habilita mapeado de oclusión de paralaje.\n" -"Requiere habilitar sombreadores." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3245,14 +3172,6 @@ msgstr "Intervalo de impresión de datos del perfil del motor" msgid "Entity methods" msgstr "Métodos de entidad" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Opción experimental, puede causar espacios visibles entre los\n" -"bloques si se le da un valor mayor a 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3264,8 +3183,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS (cuadros/s) en el menú de pausa" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "FPS máximos cuando el juego está pausado." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3333,8 +3253,9 @@ msgid "" "the\n" "Multiplayer Tab." msgstr "" -"Fichero en client/serverlist/ que contiene sus servidores favoritos que se " -"mostrarán en la página de Multijugador." +"Archivo en client/serverlist/ que contiene sus servidores favoritos " +"mostrados en la \n" +"página de Multijugador." #: src/settings_translation_file.cpp msgid "Filler depth" @@ -3355,9 +3276,10 @@ msgid "" "light edge to transparent textures. Apply this filter to clean that up\n" "at texture load time." msgstr "" -"Las texturas filtradas pueden mezclar los valores RGB de los vecinos\n" -"completamete tranparentes, los cuales los optimizadores de ficheros\n" -"PNG usualmente descartan, lo que a veces resulta en un borde claro u\n" +"Las texturas filtradas pueden mezclar valores RGB con sus vecinos " +"completamente transparentes, \n" +"los cuales los optimizadores de PNG usualmente descartan, lo que a veces " +"resulta en un borde claro u\n" "oscuro en las texturas transparentes. Aplica éste filtro para limpiar ésto\n" "al cargar las texturas." @@ -3473,6 +3395,9 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"El tamaño de la fuente del texto del chat reciente y el indicador del chat " +"en punto (pt).\n" +"El valor 0 utilizará el tamaño de fuente predeterminado." #: src/settings_translation_file.cpp msgid "" @@ -3554,11 +3479,10 @@ msgstr "" msgid "" "From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" -"Desde cuán lejos se envían bloques a los clientes, especificado en\n" -"bloques de mapa (mapblocks, 16 nodos)." +"Desde cuán lejos se envían bloques a los clientes, especificado en bloques " +"de mapa (mapblocks, 16 nodos)." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "From how far clients know about objects, stated in mapblocks (16 nodes).\n" "\n" @@ -3570,8 +3494,8 @@ msgstr "" "\n" "Establecer esto a más de 'active_block_range' tambien causará que\n" "el servidor mantenga objetos activos hasta ésta distancia en la dirección\n" -"que el jugador está mirando. (Ésto puede evitar que los\n" -"enemigos desaparezcan)" +"que el jugador está mirando. (Ésto puede evitar que los enemigos " +"desaparezcan)" #: src/settings_translation_file.cpp msgid "Full screen" @@ -3597,16 +3521,11 @@ msgstr "Filtro de escala de IGU" msgid "GUI scaling filter txr2img" msgstr "Filtro de escala de IGU \"txr2img\"" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Generar mapas normales" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Llamadas globales" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Global map generation attributes.\n" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" @@ -3614,13 +3533,9 @@ msgid "" msgstr "" "Atributos del generador de mapas globales.\n" "En el generador de mapas V6 la opción (o marcador) \"decorations\" controla " -"todos los elementos decorativos excepto los árboles y la hierba de la " -"jungla, en todos los otros generadores de mapas esta opción controla todas " -"las decoraciones.\n" -"Las opciones que no son incluidas en el texto con la cadena de opciones no " -"serán modificadas y mantendrán su valor por defecto.\n" -"Las opciones que comienzan con el prefijo \"no\" son utilizadas para " -"inhabilitar esas opciones." +"todos los elementos decorativos excepto los árboles \n" +"y la hierba de la jungla, en todos los otros generadores de mapas esta " +"opción controla todas las decoraciones." #: src/settings_translation_file.cpp msgid "" @@ -3667,10 +3582,11 @@ msgid "HUD toggle key" msgstr "Tecla de cambio del HUD" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Manejo de llamadas a la API de Lua en desuso:\n" @@ -3682,7 +3598,6 @@ msgstr "" "desarrolladores de mods)." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Have the profiler instrument itself:\n" "* Instrument an empty function.\n" @@ -3694,7 +3609,7 @@ msgstr "" "* Instrumente una función vacía.\n" "Esto estima la sobrecarga, que la instrumentación está agregando (+1 llamada " "de función).\n" -"* Instrumente el muestreador que se utiliza para actualizar las estadísticas." +"* Instrumente el sampler que se utiliza para actualizar las estadísticas." #: src/settings_translation_file.cpp msgid "Heat blend noise" @@ -3975,7 +3890,6 @@ msgstr "" "habilitados." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled the server will perform map block occlusion culling based on\n" "on the eye position of the player. This can reduce the number of blocks\n" @@ -3984,11 +3898,11 @@ msgid "" "so that the utility of noclip mode is reduced." msgstr "" "Si está habilitado, el servidor realizará la selección de la oclusión del " -"bloque del mapa basado en\n" +"bloque del mapa basado\n" "en la posición del ojo del jugador. Esto puede reducir el número de bloques\n" -"enviados al cliente en un 50-80%. El cliente ya no recibirá la mayoría de " -"las invisibles\n" -"para que la utilidad del modo nocturno se reduzca." +"enviados al cliente en un 50-80%. El cliente ya no recibirá lo mas " +"invisible\n" +"por lo que la utilidad del modo \"NoClip\" se reduce." #: src/settings_translation_file.cpp msgid "" @@ -4033,7 +3947,6 @@ msgstr "" "Actívelo sólo si sabe lo que hace." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." @@ -4220,6 +4133,11 @@ msgstr "ID de Joystick" msgid "Joystick button repetition interval" msgstr "Intervalo de repetición del botón del Joystick" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Tipo de Joystick" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Sensibilidad del Joystick" @@ -4322,6 +4240,17 @@ msgstr "" "Ver http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para saltar.\n" +"Véase http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4373,7 +4302,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" @@ -4381,6 +4309,8 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Tecla para desplazar el jugador hacia atrás.\n" +"Cuando esté activa, También desactivará el desplazamiento automático hacia " +"adelante.\n" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4464,6 +4394,17 @@ msgstr "" "Véase http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para saltar.\n" +"Véase http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp #, fuzzy msgid "" @@ -4948,6 +4889,10 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tecla para activar/desactivar la actualización de la cámara. Solo usada para " +"desarrollo\n" +"Ver http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp #, fuzzy @@ -4998,6 +4943,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tecla para activar/desactivar la consola de chat larga.\n" +"Ver http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -5032,6 +4980,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Kick players who sent more than X messages per 10 seconds." msgstr "" +"Expulsa a los jugadores que enviaron más de X mensajes cada 10 segundos." #: src/settings_translation_file.cpp msgid "Lake steepness" @@ -5047,19 +4996,19 @@ msgstr "Idioma" #: src/settings_translation_file.cpp msgid "Large cave depth" -msgstr "" +msgstr "Profundidad de la cueva grande" #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "" +msgstr "Numero máximo de cuevas grandes" #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "" +msgstr "Numero mínimo de cuevas grandes" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Proporción de cuevas grandes inundadas" #: src/settings_translation_file.cpp #, fuzzy @@ -5092,24 +5041,30 @@ msgid "" "updated over\n" "network." msgstr "" +"Duración de un tick del servidor y el intervalo en el que los objetos se " +"actualizan generalmente sobre la\n" +"red." #: src/settings_translation_file.cpp msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" +"Longitud de las ondas líquidas.\n" +"Requiere que se habiliten los líquidos ondulados." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" +"Período de tiempo entre ciclos de ejecución de Active Block Modifier (ABM)" #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" -msgstr "" +msgstr "Cantidad de tiempo entre ciclos de ejecución de NodeTimer" #: src/settings_translation_file.cpp msgid "Length of time between active block management cycles" -msgstr "" +msgstr "Periodo de tiempo entre ciclos de gestión de bloques activos" #: src/settings_translation_file.cpp msgid "" @@ -5122,6 +5077,14 @@ msgid "" "- info\n" "- verbose" msgstr "" +"Nivel de registro que se escribirá en debug.txt:\n" +"- (sin registro)\n" +"- ninguno (mensajes sin nivel)\n" +"- error\n" +"- advertencia\n" +"- acción\n" +"- información\n" +"- detallado" #: src/settings_translation_file.cpp msgid "Light curve boost" @@ -5148,11 +5111,16 @@ msgid "Light curve low gradient" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." msgstr "" +"Límite de la generación de mapa, en nodos, en todas las 6 direcciones desde " +"(0, 0, 0).\n" +"Solo las porciones de terreno dentro de los límites son generadas.\n" +"Los valores se guardan por mundo." #: src/settings_translation_file.cpp msgid "" @@ -5165,11 +5133,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Liquid fluidity" -msgstr "" +msgstr "Fluidez líquida" #: src/settings_translation_file.cpp msgid "Liquid fluidity smoothing" -msgstr "" +msgstr "Suavizado de la fluidez líquida" #: src/settings_translation_file.cpp msgid "Liquid loop max" @@ -5210,7 +5178,7 @@ msgstr "Intervalo de modificador de bloques activos" #: src/settings_translation_file.cpp msgid "Lower Y limit of dungeons." -msgstr "" +msgstr "Límite inferior en Y de mazmorras." #: src/settings_translation_file.cpp msgid "Lower Y limit of floatlands." @@ -5220,63 +5188,52 @@ msgstr "Límite inferior Y de las tierras flotantes." msgid "Main menu script" msgstr "Script del menú principal" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Estilo del menú principal" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" +"Hace que la niebla y los colores del cielo dependan de la hora del día " +"(amanecer / atardecer) y la dirección de vista." #: src/settings_translation_file.cpp msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" +"Hace que DirectX funcione con LuaJIT. Desactivar si ocasiona problemas." #: src/settings_translation_file.cpp msgid "Makes all liquids opaque" +msgstr "Vuelve opacos a todos los líquidos" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" msgstr "" #: src/settings_translation_file.cpp msgid "Map directory" -msgstr "" +msgstr "Directorio de mapas" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"Atributos del generador de mapas globales.\n" -"En el generador de mapas V6 la opción (o marcador) \"decorations\" controla " -"todos los elementos decorativos excepto los árboles y la hierba de la " -"jungla, en todos los otros generadores de mapas esta opción controla todas " -"las decoraciones.\n" -"Las opciones que no son incluidas en el texto con la cadena de opciones no " -"serán modificadas y mantendrán su valor por defecto.\n" -"Las opciones que comienzan con el prefijo \"no\" son utilizadas para " -"inhabilitar esas opciones." +"Atributos de generación de mapa específicos para generador de mapas planos.\n" +"Ocasionalmente pueden agregarse lagos y colinas al mundo plano." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Atributos del generador de mapas globales.\n" -"En el generador de mapas V6 la opción (o marcador) \"decorations\" controla " -"todos los elementos decorativos excepto los árboles y la hierba de la " -"jungla, en todos los otros generadores de mapas esta opción controla todas " -"las decoraciones.\n" -"Las opciones que no son incluidas en el texto con la cadena de opciones no " -"serán modificadas y mantendrán su valor por defecto.\n" -"Las opciones que comienzan con el prefijo \"no\" son utilizadas para " -"inhabilitar esas opciones." #: src/settings_translation_file.cpp msgid "" @@ -5330,11 +5287,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Map generation limit" -msgstr "" +msgstr "Límite de generación de mapa" #: src/settings_translation_file.cpp msgid "Map save interval" -msgstr "" +msgstr "Intervalo de guardado de mapa" #: src/settings_translation_file.cpp msgid "Mapblock limit" @@ -5366,54 +5323,48 @@ msgid "Mapgen Flat" msgstr "Generador de mapas plano" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas plano" #: src/settings_translation_file.cpp msgid "Mapgen Fractal" msgstr "Generador de mapas fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas fractal" #: src/settings_translation_file.cpp msgid "Mapgen V5" msgstr "Generador de mapas V5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5 specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas V5" #: src/settings_translation_file.cpp msgid "Mapgen V6" msgstr "Generador de mapas V6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6 specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas V6" #: src/settings_translation_file.cpp msgid "Mapgen V7" msgstr "Generador de mapas v7" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7 specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas V7" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" -msgstr "Valles de Mapgen" +msgstr "Generador de mapas Valleys" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys specific flags" -msgstr "Banderas planas de Mapgen" +msgstr "Banderas de generador de mapas Valleys" #: src/settings_translation_file.cpp msgid "Mapgen debug" @@ -5446,11 +5397,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum FPS" -msgstr "FPS máximos" +msgstr "FPS máximo" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "FPS máximos cuando el juego está pausado." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "FPS máximo cuando el juego está pausado." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5500,6 +5451,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5557,6 +5515,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" +"Tiempo máximo en ms que puede demorar una descarga (por ejemplo, la descarga " +"de un mod)." #: src/settings_translation_file.cpp msgid "Maximum users" @@ -5568,7 +5528,7 @@ msgstr "Menús" #: src/settings_translation_file.cpp msgid "Mesh cache" -msgstr "" +msgstr "Caché de mallas poligonales" #: src/settings_translation_file.cpp msgid "Message of the day" @@ -5584,7 +5544,7 @@ msgstr "Método utilizado para resaltar el objeto seleccionado." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Nivel mínimo de logging a ser escrito al chat." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5626,11 +5586,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Monospace font path" -msgstr "" +msgstr "Ruta de fuente monoespaciada" #: src/settings_translation_file.cpp msgid "Monospace font size" -msgstr "" +msgstr "Tamaño de fuente monoespaciada" #: src/settings_translation_file.cpp msgid "Mountain height noise" @@ -5650,11 +5610,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mouse sensitivity" -msgstr "" +msgstr "Sensibilidad del ratón" #: src/settings_translation_file.cpp msgid "Mouse sensitivity multiplier." -msgstr "" +msgstr "Multiplicador de sensiblidad del ratón." #: src/settings_translation_file.cpp msgid "Mud noise" @@ -5688,6 +5648,10 @@ msgid "" "When running a server, clients connecting with this name are admins.\n" "When starting from the main menu, this is overridden." msgstr "" +"Nombre del jugador.\n" +"Cuando se ejecuta un servidor, los clientes que se conecten con este nombre " +"son administradores.\n" +"Al comenzar desde el menú principal, esto se anula." #: src/settings_translation_file.cpp msgid "" @@ -5710,7 +5674,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "New users need to input this password." -msgstr "" +msgstr "Los usuarios nuevos deben ingresar esta contraseña." #: src/settings_translation_file.cpp msgid "Noclip" @@ -5732,14 +5696,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5765,17 +5721,13 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Contenido del repositorio en linea" #: src/settings_translation_file.cpp msgid "Opaque liquids" -msgstr "" +msgstr "Líquidos opacos" #: src/settings_translation_file.cpp msgid "" @@ -5794,39 +5746,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion" -msgstr "Oclusión de paralaje" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion bias" -msgstr "Oclusión de paralaje" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion iterations" -msgstr "Oclusión de paralaje" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion mode" -msgstr "Oclusión de paralaje" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Oclusión de paralaje" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5894,6 +5813,16 @@ msgstr "Tecla vuelo" msgid "Pitch move mode" msgstr "Modo de movimiento de inclinación activado" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tecla vuelo" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Intervalo de repetición del botón del Joystick" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5948,7 +5877,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Profiling" -msgstr "" +msgstr "Perfilando" #: src/settings_translation_file.cpp msgid "Prometheus listener address" @@ -6051,10 +5980,6 @@ msgstr "" msgid "Right key" msgstr "Tecla derecha" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" @@ -6074,7 +5999,7 @@ msgstr "Ruido de río" #: src/settings_translation_file.cpp msgid "River size" -msgstr "" +msgstr "Tamaño del río" #: src/settings_translation_file.cpp #, fuzzy @@ -6342,6 +6267,17 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Fuente en negrita por defecto" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -6472,10 +6408,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "La fuerza del paralaje del modo 3D." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Fuerza de los mapas normales generados." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6570,6 +6502,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6629,8 +6565,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6654,6 +6590,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6662,9 +6604,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6801,6 +6742,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -7011,6 +6963,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7134,9 +7092,27 @@ msgid "Y-level of seabed." msgstr "" #: src/settings_translation_file.cpp -msgid "cURL file download timeout" +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "Tiempo de espera de descarga por cURL" + #: src/settings_translation_file.cpp msgid "cURL parallel limit" msgstr "" @@ -7145,17 +7121,12 @@ msgstr "" msgid "cURL timeout" msgstr "Tiempo de espera de cURL" -#~ msgid "Ok" -#~ msgstr "Aceptar" - -#~ msgid "Back" -#~ msgstr "Atrás" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Descargando e instalando $1, por favor espere..." - -#~ msgid "Path to save screenshots at." -#~ msgstr "Ruta para guardar las capturas de pantalla." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = oclusión de paralaje con información de inclinación (más rápido).\n" +#~ "1 = mapa de relieve (más lento, más preciso)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7171,6 +7142,37 @@ msgstr "Tiempo de espera de cURL" #~ "Modifica cómo las tierras flotantes del tipo montaña aparecen arriba y " #~ "abajo del punto medio." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "¿Estás seguro de querer reiniciar el mundo de un jugador?" + +#~ msgid "Back" +#~ msgstr "Atrás" + +#~ msgid "Bump Mapping" +#~ msgstr "Mapeado de relieve" + +#~ msgid "Bumpmapping" +#~ msgstr "Mapeado de relieve" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Cambia la UI del menú principal:\n" +#~ "- Completo: Múltiples mundos, elección de juegos y texturas, etc.\n" +#~ "- Simple: Un solo mundo, sin elección de juegos o texturas.\n" +#~ "Puede ser necesario en pantallas pequeñas." + +#~ msgid "Config mods" +#~ msgstr "Configurar mods" + +#~ msgid "Configure" +#~ msgstr "Configurar" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7182,6 +7184,9 @@ msgstr "Tiempo de espera de cURL" #~ msgstr "" #~ "Controla el ancho de los túneles, un valor menor crea túneles más anchos." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Color de la cruz (R,G,B)." + #, fuzzy #~ msgid "Darkness sharpness" #~ msgstr "Agudeza de la obscuridad" @@ -7193,12 +7198,59 @@ msgstr "Tiempo de espera de cURL" #~ "Define áreas de terreno liso flotante.\n" #~ "Las zonas flotantes lisas se producen cuando el ruido > 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Define el intervalo de muestreo de las texturas.\n" +#~ "Un valor más alto causa mapas de relieve más suaves." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Descargando e instalando $1, por favor espere..." + #~ msgid "Enable VBO" #~ msgstr "Activar VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Habilita mapeado de relieves para las texturas. El mapeado de normales " +#~ "necesita ser\n" +#~ "suministrados por el paquete de texturas, o será generado " +#~ "automaticamente.\n" +#~ "Requiere habilitar sombreadores." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Habilita el mapeado de tonos fílmico" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Habilita la generación de mapas de normales (efecto realzado) en el " +#~ "momento.\n" +#~ "Requiere habilitar mapeado de relieve." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Habilita mapeado de oclusión de paralaje.\n" +#~ "Requiere habilitar sombreadores." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opción experimental, puede causar espacios visibles entre los\n" +#~ "bloques si se le da un valor mayor a 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS (cuadros/s) en el menú de pausa" + #~ msgid "Floatland base height noise" #~ msgstr "Ruido de altura base para tierra flotante" @@ -7211,6 +7263,12 @@ msgstr "Tiempo de espera de cURL" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Generar mapas normales" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generar mapas normales" + #~ msgid "IPv6 support." #~ msgstr "soporte IPv6." @@ -7218,11 +7276,82 @@ msgstr "Tiempo de espera de cURL" #~ msgid "Lava depth" #~ msgstr "Características de la Lava" -#~ msgid "Waving water" -#~ msgstr "Oleaje en el agua" +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Estilo del menú principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa en modo radar, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa en modo radar, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa en modo superficie, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa en modo superficie, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Nombre / contraseña" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "Ok" +#~ msgstr "Aceptar" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion bias" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion mode" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Oclusión de paralaje" + +#~ msgid "Path to save screenshots at." +#~ msgstr "Ruta para guardar las capturas de pantalla." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reiniciar mundo de un jugador" + +#~ msgid "Select Package File:" +#~ msgstr "Seleccionar el archivo del paquete:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Comenzar un jugador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Fuerza de los mapas normales generados." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Activar cinemático" + +#~ msgid "View" +#~ msgstr "Ver" #~ msgid "Waving Water" #~ msgstr "Oleaje" -#~ msgid "Select Package File:" -#~ msgstr "Seleccionar el archivo del paquete:" +#~ msgid "Waving water" +#~ msgstr "Oleaje en el agua" + +#~ msgid "Yes" +#~ msgstr "Sí" diff --git a/po/et/minetest.po b/po/et/minetest.po index c9da5e664..5feb9be60 100644 --- a/po/et/minetest.po +++ b/po/et/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Estonian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-05-03 19:14+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-12-05 15:29+0000\n" "Last-Translator: Janar Leas \n" "Language-Team: Estonian \n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.4-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Ärka ellu" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Said surma" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Valmis" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -32,16 +40,12 @@ msgstr "Peamenüü" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "Taasta ühendus" +msgstr "Taasühenda" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" msgstr "Server taotles taasühendumist:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Laadimine..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokolli versioon ei sobi. " @@ -54,12 +58,6 @@ msgstr "Server jõustab protokolli versiooni $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Server toetab protokolli versioone $1 kuni $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Proovi lubada uuesti avalike serverite loend ja kontrolli oma Interneti " -"ühendust." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Meie toetame ainult protokolli versiooni $1." @@ -68,7 +66,8 @@ msgstr "Meie toetame ainult protokolli versiooni $1." msgid "We support protocol versions between version $1 and $2." msgstr "Meie toetame protokolli versioone $1 kuni $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Meie toetame protokolli versioone $1 kuni $2." msgid "Cancel" msgstr "Tühista" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Sõltuvused:" @@ -103,12 +103,12 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Tõrge MOD-i \"$1\" lubamisel, kuna sisaldab keelatud sümboleid. Lubatud on " +"MOD-i \"$1\" kasutamine nurjus, kuna sisaldab keelatud sümboleid. Lubatud on " "ainult [a-z0-9_] märgid." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Leia rohkem MODe" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -151,22 +151,62 @@ msgstr "Maailm:" msgid "enabled" msgstr "Sisse lülitatud" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Allalaadimine..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Kõik pakid" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Nupp juba kasutuses" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Tagasi peamenüüsse" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Võõrusta" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Laadimine..." +msgstr "Allalaadimine..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -181,6 +221,16 @@ msgstr "Mängud" msgid "Install" msgstr "Paigalda" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Paigalda" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Valikulised sõltuvused:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -195,9 +245,25 @@ msgid "No results" msgstr "Tulemused puuduvad" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Otsi" +#, fuzzy +msgid "No updates" +msgstr "Uuenda" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,7 +278,11 @@ msgid "Update" msgstr "Uuenda" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -221,42 +291,39 @@ msgstr "Maailm nimega \"$1\" on juba olemas" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Täiendav maastik" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Külmetus kõrgus" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Põua kõrgus" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Loodusvööndi hajumine" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Loodusvööndid" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Koobaste läve" +msgstr "Koopasaalid" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Oktaavid" +msgstr "Koopad" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Loo" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Teave:" +msgstr "Ilmestused" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -267,21 +334,20 @@ msgid "Download one from minetest.net" msgstr "Laadi minetest.net-st üks mäng alla" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Dungeon noise" +msgstr "Keldrid" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Lame maastik" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Taevas hõljuvad saared" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Lendsaared (katseline)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -289,53 +355,51 @@ msgstr "Mäng" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Mitte-fraktaalse maastiku tekitamine: mered ja süvapinnas" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Künkad" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Rõsked jõed" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Suurendab niiskust jõe lähistel" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Järved" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Madal niiskus ja suur kuum põhjustavad madala või kuiva jõesängi" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" msgstr "Kaardi generaator" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen flags" -msgstr "Põlvkonna kaardid" +msgstr "Kaartiloome lipud" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Kaartiloome-põhised lipud" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Mäed" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Muda voog" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Käikude ja koobaste võrgustik" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -343,72 +407,72 @@ msgstr "Mäng valimata" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Ilma jahenemine kõrgemal" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Ilma kuivenemine kõrgemal" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Parem Windowsi nupp" +msgstr "Jõed" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Jõed merekõrgusel" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "Seed" +msgstr "Külv" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Sujuv loodusvööndi vaheldumine" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Rajatised ilmuvad maastikul (v6 tekitatud puudele ja tihniku rohule mõju ei " +"avaldu)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Struktuurid ilmuvad maastikul, enamasti puud ja teised taimed" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Rohtla, Lagendik" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Rohtla, Lagendik, Tihnik" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Rohtla, Lagendik, Tihnik, Tundra, Laas" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Maapinna kulumine" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Puud ja tihniku rohi" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Muutlik jõe sügavus" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Väga suured koopasaalid maapõue sügavuses" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "Hoiatus: minimaalne arendustest on mõeldud arendajatele." +msgstr "Hoiatus: \"Arendustest\" on mõeldud arendajatele." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -446,7 +510,7 @@ msgstr "Nõustu" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Nimetad ümber MOD-i paki:" +msgstr "Taasnimeta MOD-i pakk:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -462,7 +526,7 @@ msgstr "(Kirjeldus seadistusele puudub)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "2-mõõtmeline müra" +msgstr "kahemõõtmeline müra" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -472,10 +536,6 @@ msgstr "< Tagasi lehele „Seaded“" msgid "Browse" msgstr "Sirvi" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Keelatud" @@ -490,11 +550,11 @@ msgstr "Lubatud" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" -msgstr "Lakunaarsus" +msgstr "Pinna auklikus" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" -msgstr "Oktaavid" +msgstr "Oktavid" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" @@ -520,6 +580,10 @@ msgstr "Taasta vaikeväärtus" msgid "Scale" msgstr "Ulatus" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Otsi" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Vali kataloog" @@ -546,7 +610,7 @@ msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "X levitus" +msgstr "X levi" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" @@ -554,7 +618,7 @@ msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "Y levitus" +msgstr "Y levi" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" @@ -562,7 +626,7 @@ msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "Z levitus" +msgstr "Z levi" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -570,14 +634,14 @@ msgstr "Z levitus" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "absoluutväärtus" +msgstr "täisväärtus" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "vaikesätted" +msgstr "algne" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -636,6 +700,21 @@ msgstr "Mod nimega $1 paigaldamine nurjus" msgid "Unable to install a modpack as a $1" msgstr "Mod-komplekt nimega $1 paigaldamine nurjus" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Laadimine..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Kliendipoolne skriptimine on keelatud" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Proovi lubada uuesti avalike serverite loend ja kontrolli oma Interneti " +"ühendust." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Sirvi veebist sisu" @@ -678,63 +757,66 @@ msgstr "Vali tekstuurikomplekt" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "Co-arendaja" +msgstr "Tegevad panustajad" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Põhiline arendaja" +msgstr "Põhi arendajad" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "Tänuavaldused" +msgstr "Tegijad" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Vali kataloog" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "Early arendajad" +msgstr "Eelnevad panustajad" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Eelmised põhilised arendajad" +msgstr "Eelnevad põhi-arendajad" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "Kuuluta serverist" +msgstr "Võõrustamise kuulutamine" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" -msgstr "Aadress" +msgstr "Seo aadress" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigureeri" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "Kujunduslik mängumood" +msgstr "Looja" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "Lülita valu sisse" +msgstr "Ellujääja" #: builtin/mainmenu/tab_local.lua msgid "Host Game" -msgstr "Majuta mäng" +msgstr "Võõrusta" #: builtin/mainmenu/tab_local.lua msgid "Host Server" -msgstr "Majuta server" +msgstr "Majuta külastajatele" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Lisa mänge sisuvaramust" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nimi/Parool" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -742,7 +824,12 @@ msgstr "Uus" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "Ühtegi maailma pole loodud ega valitud!" +msgstr "Pole valitud ega loodud ühtegi maailma!" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Uus parool" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -752,58 +839,63 @@ msgstr "Mängi" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Vali maailm:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Vali maailm:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "Serveri port" +msgstr "Võõrustaja kanal" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Alusta mäng" +msgstr "Alusta mängu" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "Aadress / Port" +msgstr "Aadress / kanal" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" -msgstr "Liitu" +msgstr "Ühine" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" -msgstr "Loov režiim" +msgstr "Looja" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" -msgstr "Kahjustamine lubatud" +msgstr "Ellujääja" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "Eemalda lemmik" +msgstr "Pole lemmik" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" -msgstr "Lisa lemmikuks" +msgstr "On lemmik" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Liitu mänguga" +msgstr "Ühine" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "Nimi / Salasõna" +msgstr "Nimi / salasõna" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" -msgstr "Ping" +msgstr "Viivitus" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" -msgstr "PvP lubatud" +msgstr "Vaenulikus lubatud" #: builtin/mainmenu/tab_settings.lua msgid "2x" @@ -811,7 +903,7 @@ msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "3D pilved" +msgstr "Ruumilised pilved" #: builtin/mainmenu/tab_settings.lua msgid "4x" @@ -827,24 +919,16 @@ msgstr "Kõik sätted" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "Antialiasing:" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Olete kindel, et lähtestate oma üksikmängija maailma?" +msgstr "Silu servad:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "Salvesta ekraani suurus" +msgstr "Mäleta ekraani suurust" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" msgstr "Bi-lineaarne filtreerimine" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Muhkkaardistamine" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Vaheta klahve" @@ -857,22 +941,14 @@ msgstr "Ühendatud klaas" msgid "Fancy Leaves" msgstr "Uhked lehed" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Loo normaalkaardistusi" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" -msgstr "Mipmap" +msgstr "KaugVaatEsemeKaart" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ei" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Filtrita" @@ -883,11 +959,11 @@ msgstr "Mipmapita" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "Blokkide esiletõstmine" +msgstr "Valitud klotsi ilme" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "Blokkide kontuur" +msgstr "Klotsi servad" #: builtin/mainmenu/tab_settings.lua msgid "None" @@ -901,18 +977,10 @@ msgstr "Läbipaistmatud lehed" msgid "Opaque Water" msgstr "Läbipaistmatu vesi" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Osakesed" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Lähtesta üksikmängija maailm" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Ekraan:" @@ -925,6 +993,11 @@ msgstr "Sätted" msgid "Shaders" msgstr "Varjutajad" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Lendsaared (katseline)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Varjutajad (pole saadaval)" @@ -969,22 +1042,6 @@ msgstr "Lainetavad vedelikud" msgid "Waving Plants" msgstr "Lehvivad taimed" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Jah" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Seadista mod-e" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Peamine" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Alusta üksikmängu" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Ühendus aegus." @@ -995,11 +1052,11 @@ msgstr "Valmis!" #: src/client/client.cpp msgid "Initializing nodes" -msgstr "Blokkide häälestamine" +msgstr "Klotsidega täitmine" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "Blokkide häälestamine..." +msgstr "Klotsidega täitmine..." #: src/client/client.cpp msgid "Loading textures..." @@ -1092,7 +1149,7 @@ msgstr "- Avalik: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "- PvP: " +msgstr "- Üksteise vastu: " #: src/client/game.cpp msgid "- Server Name: " @@ -1146,18 +1203,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Klahvid:\n" "- %s: liigu edasi\n" @@ -1270,16 +1324,6 @@ msgstr "Udu keelatud" msgid "Fog enabled" msgstr "Udu lubatud" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Udu keelatud" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Udu lubatud" - #: src/client/game.cpp msgid "Game info:" msgstr "Mängu teave:" @@ -1300,16 +1344,6 @@ msgstr "Esemete määratlused..." msgid "KiB/s" msgstr "" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Udu keelatud" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Kahjustamine lubatud" - #: src/client/game.cpp msgid "Media..." msgstr "Meedia..." @@ -1322,34 +1356,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "Pisikaardi keelab hetkel mäng või MOD" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Pisikaart peidetud" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Radarkaart, Suurendus ×1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Radarkaart, Suurendus ×2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Radarkaart, Suurendus ×4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Pinnakaart, Suurendus ×1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Pinnakaart, Suurendus ×2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Pinnakaart, Suurendus ×4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Haakumatus keelatud" @@ -1364,15 +1370,15 @@ msgstr "Haakumatus lubatud (pole 'haakumatus' volitust)" #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "Klotsi määratlused..." #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "Väljas" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "Sees" #: src/client/game.cpp msgid "Pitch move mode disabled" @@ -1388,19 +1394,15 @@ msgstr "" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "Kaug võõrustaja" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Respawn" -msgstr "Ärka ellu" +msgstr "Aadressi lahendamine..." #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "Sulgemine..." #: src/client/game.cpp msgid "Singleplayer" @@ -1416,11 +1418,11 @@ msgstr "Heli vaigistatud" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Heli süsteem on keelatud" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "See kooste ei toeta heli süsteemi" #: src/client/game.cpp msgid "Sound unmuted" @@ -1429,17 +1431,17 @@ msgstr "Heli taastatud" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "Vaate kaugus on nüüd: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "Vaate kaugus on suurim võimalik: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "Vaate kaugus on vähim võimalik: %d" #: src/client/game.cpp #, c-format @@ -1450,10 +1452,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "Said surma" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1470,15 +1468,6 @@ msgstr "Vestlus peidetud" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Vestlus peidetud" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1501,9 +1490,8 @@ msgid "Apps" msgstr "Aplikatsioonid" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" -msgstr "Tagasi" +msgstr "Tagasinihe" #: src/client/keycode.cpp msgid "Caps Lock" @@ -1542,29 +1530,24 @@ msgid "Home" msgstr "Kodu" #: src/client/keycode.cpp -#, fuzzy msgid "IME Accept" -msgstr "Nõustu" +msgstr "Sisendviisiga nõustumine" #: src/client/keycode.cpp -#, fuzzy msgid "IME Convert" -msgstr "Konverteeri" +msgstr "Sisendviisi teisendamine" #: src/client/keycode.cpp -#, fuzzy msgid "IME Escape" -msgstr "Põgene" +msgstr "Sisendviisi paoklahv" #: src/client/keycode.cpp -#, fuzzy msgid "IME Mode Change" -msgstr "Moodi vahetamine" +msgstr "Sisendviisi laadi vahetus" #: src/client/keycode.cpp -#, fuzzy msgid "IME Nonconvert" -msgstr "Konverteerimatta" +msgstr "Sisendviisi mitte-teisendada" #: src/client/keycode.cpp msgid "Insert" @@ -1765,6 +1748,25 @@ msgstr "X Nupp 2" msgid "Zoom" msgstr "Suumi" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Pisikaart peidetud" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Radarkaart, Suurendus ×1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Pinnakaart, Suurendus ×1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Pinnakaart, Suurendus ×1" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Paroolid ei ole samad!" @@ -1792,9 +1794,8 @@ msgid "\"Special\" = climb down" msgstr "\"Eriline\" = roni alla" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Autoforward" -msgstr "Automaatedasiliikumine" +msgstr "Iseastuja" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" @@ -1804,26 +1805,6 @@ msgstr "" msgid "Backward" msgstr "Tagasi" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Muuda kaamerat" @@ -1918,30 +1899,10 @@ msgstr "Hiilimine" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Hiilimine" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Lülita kiirus sisse" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Lülita kiirus sisse" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Lülita HUD sisse/välja" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Lülita lendamine sisse" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Lülita vestluslogi sisse/välja" @@ -2051,12 +2012,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2163,6 +2118,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2173,7 +2132,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Raskuskiirendus, (klotsi sekundis) sekundi kohta." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2200,7 +2159,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "" +msgstr "Lendlevad osakesed klotsi kaevandamisel." #: src/settings_translation_file.cpp msgid "" @@ -2306,7 +2265,7 @@ msgstr "Automaatse edasiliikumise klahv" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "Iseseisvalt hüppab üle ühe klotsi kordse tõkke." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." @@ -2396,10 +2355,6 @@ msgstr "Ehitamine mängija sisse" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Muhkkaardistamine" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2470,16 +2425,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2489,9 +2434,8 @@ msgid "Chat key" msgstr "Vestlusklahv" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Vestluse lülitusklahv" +msgstr "Vestlus päeviku täpsus" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2502,9 +2446,8 @@ msgid "Chat message format" msgstr "Vestluse sõnumi formaat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message kick threshold" -msgstr "Vestlussõnumi kick läve" +msgstr "Vestlus sõnumi väljaviskamis lävi" #: src/settings_translation_file.cpp msgid "Chat message max length" @@ -2615,7 +2558,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "" +msgstr "Ühendab klaasi, kui klots võimaldab." #: src/settings_translation_file.cpp msgid "Console alpha" @@ -2633,9 +2576,13 @@ msgstr "Konsooli kõrgus" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" -msgstr "ContentDB URL" +msgstr "ContentDB aadress" #: src/settings_translation_file.cpp msgid "Continuous forward" @@ -2690,7 +2637,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2698,7 +2647,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2706,9 +2657,8 @@ msgid "DPI" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Damage" -msgstr "Damage" +msgstr "Vigastused" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2761,9 +2711,8 @@ msgid "Default report format" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Vaikemäng" +msgstr "Vaike lasu hulk" #: src/settings_translation_file.cpp msgid "" @@ -2799,12 +2748,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2863,18 +2806,25 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Desert noise threshold" -msgstr "" +msgstr "Müra künnis lagendikule" #: src/settings_translation_file.cpp msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" +"Lagendikud ilmuvad kui np_biome ületab selle väärtuse.\n" +"Seda eiratakse, kui lipp 'lumistud' on lubatud." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Parem klahv" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Kaevamisel tekkivad osakesed" @@ -2916,9 +2866,8 @@ msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Dungeon noise" +msgstr "Müra keldritele" #: src/settings_translation_file.cpp msgid "" @@ -2937,7 +2886,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3024,14 +2973,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3040,18 +2981,6 @@ msgstr "" msgid "Enables minimap." msgstr "Lubab minikaarti." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3068,12 +2997,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3085,7 +3008,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3174,9 +3097,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Filtering" -msgstr "Anisotroopne Filtreerimine" +msgstr "Filtreerimine" #: src/settings_translation_file.cpp msgid "First of 4 2D noises that together define hill/mountain range height." @@ -3207,9 +3129,8 @@ msgid "Floatland minimum Y" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Põlvkonna kaardid" +msgstr "Müra lendsaartele" #: src/settings_translation_file.cpp msgid "Floatland taper exponent" @@ -3325,9 +3246,8 @@ msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Forward key" -msgstr "Edasi" +msgstr "Edasi klahv" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." @@ -3389,10 +3309,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3403,6 +3319,10 @@ msgid "" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Üldised maailma-loome omadused.\n" +"Maailma loome v6 puhul lipp 'Ilmestused' ei avalda mõju puudele ja \n" +"tihniku rohule, kõigi teiste versioonide puhul mõjutab see lipp \n" +"kõiki ilmestusi (nt: lilled, seened, vetikad, korallid, jne)." #: src/settings_translation_file.cpp msgid "" @@ -3425,14 +3345,12 @@ msgid "Gravity" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground level" -msgstr "Põlvkonna kaardid" +msgstr "Pinna tase" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground noise" -msgstr "Põlvkonna kaardid" +msgstr "Müra pinnasele" #: src/settings_translation_file.cpp msgid "HTTP mods" @@ -3449,8 +3367,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3476,9 +3394,8 @@ msgid "Height component of the initial window size." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Height noise" -msgstr "Parem Windowsi nupp" +msgstr "Müra kõrgusele" #: src/settings_translation_file.cpp msgid "Height select noise" @@ -3489,14 +3406,12 @@ msgid "High-precision FPU" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill steepness" -msgstr "Põlvkonna kaardid" +msgstr "Küngaste järskus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill threshold" -msgstr "Põlvkonna kaardid" +msgstr "Küngaste lävi" #: src/settings_translation_file.cpp msgid "Hilliness1 noise" @@ -3806,9 +3721,8 @@ msgid "Ignore world errors" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "In-Game" -msgstr "Mäng" +msgstr "Mängu-sisene" #: src/settings_translation_file.cpp msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." @@ -3823,9 +3737,8 @@ msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Inc. volume key" -msgstr "Konsool" +msgstr "Heli valjemaks" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." @@ -3878,9 +3791,8 @@ msgid "Inventory items animations" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Inventory key" -msgstr "Seljakott" +msgstr "Varustuse klahv" #: src/settings_translation_file.cpp msgid "Invert mouse" @@ -3922,6 +3834,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3980,9 +3896,8 @@ msgid "Julia z" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Jump key" -msgstr "Hüppamine" +msgstr "Hüppa" #: src/settings_translation_file.cpp msgid "Jumping speed" @@ -4002,6 +3917,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4101,6 +4023,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4479,14 +4408,12 @@ msgid "Kick players who sent more than X messages per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lake steepness" -msgstr "Põlvkonna kaardid" +msgstr "Sügavus järvedele" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lake threshold" -msgstr "Põlvkonna kaardid" +msgstr "Järvede lävi" #: src/settings_translation_file.cpp msgid "Language" @@ -4509,9 +4436,8 @@ msgid "Large cave proportion flooded" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Large chat console key" -msgstr "Konsool" +msgstr "Suure vestlus-viiba klahv" #: src/settings_translation_file.cpp msgid "Leaves style" @@ -4526,9 +4452,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Left key" -msgstr "Vasak Menüü" +msgstr "Vasak klahv" #: src/settings_translation_file.cpp msgid "" @@ -4659,14 +4584,8 @@ msgid "Lower Y limit of floatlands." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Main menu script" -msgstr "Menüü" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Menüü" +msgstr "Peamenüü skript" #: src/settings_translation_file.cpp msgid "" @@ -4681,6 +4600,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4723,6 +4650,11 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" +"Maailma-loome v6 spetsiifilised omadused. \n" +"Lipp 'lumistud' võimaldab uudse 5-e loodusvööndi süsteemi.\n" +"Kui lipp 'lumistud' on lubatud, siis võimaldatakse ka tihnikud ning " +"eiratakse \n" +"lippu 'tihnikud'." #: src/settings_translation_file.cpp msgid "" @@ -4757,84 +4689,68 @@ msgid "Mapblock unload timeout" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Mäestik" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Mäestiku spetsiifilised omadused" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Lamemaa" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Lamemaa spetsiifilised omadused" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Fraktaalne" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Fraktaalse maailma spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: V5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5 specific flags" -msgstr "Põlvkonna kaardid" +msgstr "V5 spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: V6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6 specific flags" -msgstr "Põlvkonna kaardid" +msgstr "V6 spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: V7" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7 specific flags" -msgstr "Põlvkonna kaardid" +msgstr "V7 spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: Vooremaa" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys specific flags" -msgstr "Põlvkonna kaardid" +msgstr "Vooremaa spetsiifilised lipud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen debug" -msgstr "Põlvkonna kaardid" +msgstr "Maailmaloome: veaproov" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen name" -msgstr "Põlvkonna kaardid" +msgstr "Maailma tekitus-valemi nimi" #: src/settings_translation_file.cpp msgid "Max block generate distance" @@ -4861,7 +4777,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4909,6 +4825,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -4971,9 +4894,8 @@ msgid "Maximum users" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Menus" -msgstr "Menüü" +msgstr "Menüüd" #: src/settings_translation_file.cpp msgid "Mesh cache" @@ -5020,9 +4942,8 @@ msgid "Minimum texture size" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mipmapping" -msgstr "Väga hea kvaliteet" +msgstr "Astmik-tapeetimine" #: src/settings_translation_file.cpp msgid "Mod channels" @@ -5075,9 +4996,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mute key" -msgstr "Vajuta nuppu" +msgstr "Vaigista" #: src/settings_translation_file.cpp msgid "Mute sound" @@ -5141,14 +5061,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5174,10 +5086,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5203,34 +5111,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5289,14 +5169,22 @@ msgid "Physics" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Kujunduslik mängumood" +msgstr "Kõrvale astumise klahv" #: src/settings_translation_file.cpp msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Kõrvale astumise klahv" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5385,18 +5273,16 @@ msgid "Random input" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Range select key" -msgstr "Kauguse valik" +msgstr "Valiku ulatuse klahv" #: src/settings_translation_file.cpp msgid "Recent Chat Messages" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Vali" +msgstr "Tavafondi asukoht" #: src/settings_translation_file.cpp msgid "Remote media" @@ -5417,9 +5303,8 @@ msgid "Replaces the default main menu with a custom one." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Report path" -msgstr "Vali" +msgstr "Aruande asukoht" #: src/settings_translation_file.cpp msgid "" @@ -5452,13 +5337,8 @@ msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Right key" -msgstr "Parem Menüü" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" +msgstr "Parem klahv" #: src/settings_translation_file.cpp msgid "River channel depth" @@ -5473,9 +5353,8 @@ msgid "River depth" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "River noise" -msgstr "Parem Windowsi nupp" +msgstr "Jõe müra" #: src/settings_translation_file.cpp msgid "River size" @@ -5543,14 +5422,12 @@ msgid "Screenshot folder" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Screenshot format" -msgstr "Mängupilt" +msgstr "Kuvapildi vorming" #: src/settings_translation_file.cpp -#, fuzzy msgid "Screenshot quality" -msgstr "Mängupilt" +msgstr "Kuvapildi tase" #: src/settings_translation_file.cpp msgid "" @@ -5615,9 +5492,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Server / Singleplayer" -msgstr "Üksikmäng" +msgstr "Võõrusta / Üksi" #: src/settings_translation_file.cpp msgid "Server URL" @@ -5644,14 +5520,12 @@ msgid "Server side occlusion culling" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Serverlist URL" -msgstr "Avatud serverite nimekiri:" +msgstr "Võõrustaja-loendi aadress" #: src/settings_translation_file.cpp -#, fuzzy msgid "Serverlist file" -msgstr "Avatud serverite nimekiri:" +msgstr "Võõrustaja-loendi fail" #: src/settings_translation_file.cpp msgid "" @@ -5682,9 +5556,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Shader path" -msgstr "Varjutajad" +msgstr "Varjutaja asukoht" #: src/settings_translation_file.cpp msgid "" @@ -5718,6 +5591,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5764,9 +5647,8 @@ msgid "Small-scale temperature variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Smooth lighting" -msgstr "Ilus valgustus" +msgstr "Hajus valgus" #: src/settings_translation_file.cpp msgid "" @@ -5783,14 +5665,12 @@ msgid "Smooths rotation of camera. 0 to disable." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneak key" -msgstr "Hiilimine" +msgstr "Hiilimis klahv" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneaking speed" -msgstr "Hiilimine" +msgstr "Hiilimis kiirus" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." @@ -5801,9 +5681,8 @@ msgid "Sound" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "Hiilimine" +msgstr "Eri klahv" #: src/settings_translation_file.cpp msgid "Special key for climbing/descending" @@ -5851,10 +5730,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5931,9 +5806,8 @@ msgid "Terrain persistence noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Texture path" -msgstr "Vali graafika:" +msgstr "Tapeedi kaust" #: src/settings_translation_file.cpp msgid "" @@ -5949,6 +5823,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6008,8 +5886,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6033,6 +5911,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6041,9 +5925,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6100,18 +5983,16 @@ msgid "Tooltip delay" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" -msgstr "Põlvkonna kaardid" +msgstr "Puuteekraani lävi" #: src/settings_translation_file.cpp msgid "Trees noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Trilinear filtering" -msgstr "Tri-Linear Filtreerimine" +msgstr "kolmik-lineaar filtreerimine" #: src/settings_translation_file.cpp msgid "" @@ -6180,6 +6061,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6258,7 +6150,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "" +msgstr "Vaate kaugus klotsides." #: src/settings_translation_file.cpp msgid "View range decrease key" @@ -6281,9 +6173,8 @@ msgid "Virtual joystick triggers aux button" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Volume" -msgstr "Hääle volüüm" +msgstr "Valjus" #: src/settings_translation_file.cpp msgid "" @@ -6318,40 +6209,35 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Water surface level of the world." -msgstr "" +msgstr "Merepinna kõrgus maailmas." #: src/settings_translation_file.cpp msgid "Waving Nodes" -msgstr "" +msgstr "Lainetavad klotsid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving leaves" -msgstr "Uhked puud" +msgstr "Lehvivad lehed" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" msgstr "Lainetavad vedelikud" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Uhked puud" +msgstr "Vedeliku laine kõrgus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "Uhked puud" +msgstr "Vedeliku laine kiirus" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Uhked puud" +msgstr "Vedeliku laine pikkus" #: src/settings_translation_file.cpp msgid "Waving plants" -msgstr "" +msgstr "Õõtsuvad taimed" #: src/settings_translation_file.cpp msgid "" @@ -6388,6 +6274,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6400,7 +6292,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "Kas mängjail on võimalus teineteist tappa." #: src/settings_translation_file.cpp msgid "" @@ -6410,7 +6302,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to fog out the end of the visible area." -msgstr "" +msgstr "Kas nähtava ala lõpp udutada." #: src/settings_translation_file.cpp msgid "" @@ -6447,9 +6339,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "Maailma nimi" +msgstr "Aeg alustatavas maailmas" #: src/settings_translation_file.cpp msgid "" @@ -6511,6 +6402,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL faili allalaadimine aegus" @@ -6521,20 +6430,32 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL timeout" -msgstr "" +msgstr "cURL aegus" -#~ msgid "Ok" -#~ msgstr "Olgu." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Kindlasti lähtestad oma üksikmängija maailma algseks?" #~ msgid "Back" #~ msgstr "Tagasi" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Palun oota $1 allalaadimist ja paigaldamist…" +#~ msgid "Bump Mapping" +#~ msgstr "Konarlik tapeet" + +#~ msgid "Bumpmapping" +#~ msgstr "Muhkkaardistamine" + +#~ msgid "Config mods" +#~ msgstr "Seadista mod-e" + +#~ msgid "Configure" +#~ msgstr "Kohanda" #~ msgid "Darkness sharpness" #~ msgstr "Pimeduse teravus" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Palun oota $1 allalaadimist ja paigaldamist…" + #~ msgid "Enable VBO" #~ msgstr "Luba VBO" @@ -6542,6 +6463,52 @@ msgstr "" #~ msgid "Enables filmic tone mapping" #~ msgstr "Lubab filmic tone mapping" +#~ msgid "Generate Normal Maps" +#~ msgstr "Loo normaalkaardistusi" + +#~ msgid "Main" +#~ msgstr "Peamine" + +#~ msgid "Main menu style" +#~ msgstr "Peamenüü ilme" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Radarkaart, Suurendus ×2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Radarkaart, Suurendus ×4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Pinnakaart, Suurendus ×2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Pinnakaart, Suurendus ×4" + +#~ msgid "Name/Password" +#~ msgstr "Nimi/Salasõna" + +#~ msgid "No" +#~ msgstr "Ei" + +#~ msgid "Ok" +#~ msgstr "Olgu." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Lähtesta üksikmängija maailm" + #, fuzzy #~ msgid "Select Package File:" #~ msgstr "Vali modifikatsiooni fail:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Alusta üksikmängu" + +#, fuzzy +#~ msgid "Toggle Cinematic" +#~ msgstr "Lülita kiirus sisse" + +#~ msgid "View" +#~ msgstr "Vaade" + +#~ msgid "Yes" +#~ msgstr "Jah" diff --git a/po/eu/minetest.po b/po/eu/minetest.po index c12d2f9ab..d639a79ed 100644 --- a/po/eu/minetest.po +++ b/po/eu/minetest.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"Last-Translator: Osoitz \n" "Language-Team: Basque \n" "Language: eu\n" @@ -17,11 +17,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Birsortu" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Hil zara" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Ados" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -43,10 +51,6 @@ msgstr "Birkonektatu" msgid "The server has requested a reconnect:" msgstr "Zerbitzariak birkonexioa eskatu du:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Kargatzen..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokoloaren bertsioen desadostasuna. " @@ -59,12 +63,6 @@ msgstr "Zerbitzariak $1 protokolo bertsioa darabil. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Zerbitzariak $1 eta $2 arteko protokolo bertsioak onartzen ditu. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Saia zaitez zerbitzari publikoen zerrenda birgaitzen eta egiazta ezazu zure " -"internet konexioa." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "$1 bertsioa soilik onartzen dugu." @@ -73,7 +71,8 @@ msgstr "$1 bertsioa soilik onartzen dugu." msgid "We support protocol versions between version $1 and $2." msgstr "$1 eta $2 arteko protokolo bertsioak onartzen ditugu." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -83,7 +82,8 @@ msgstr "$1 eta $2 arteko protokolo bertsioak onartzen ditugu." msgid "Cancel" msgstr "Utzi" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Mendekotasunak:" @@ -113,7 +113,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Mod gehiago aurkitu" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -156,22 +156,62 @@ msgstr "Mundua:" msgid "enabled" msgstr "gaituta" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" existitzen da. Gainidatzi egin nahi al duzu?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "$1 et $2 mendekotasunak instalatuko dira." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 deskargatzen,\n" +"$2 ilaran" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 deskargatzen..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1-ek behar dituen mendekotasunak ezin dira aurkitu." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" +"$1 instalatua izango da, eta $2-ren mendekotasunak baztertu egingo dira." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Pakete guztiak" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Instalaturik jada" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Itzuli menu nagusira" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgid "Base Game:" +msgstr "Oinarri jokoa:" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "ContentDB ez dago erabilgarri Minetest cURL gabe konpilatzean" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Kargatzen..." +msgstr "Deskargatzen..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -186,6 +226,14 @@ msgstr "Jolasak" msgid "Install" msgstr "Instalatu" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "$1 Instalatu" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Falta diren mendekotasunak instalatu" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -200,13 +248,28 @@ msgid "No results" msgstr "Emaitzarik ez" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Bilatu" +msgid "No updates" +msgstr "Eguneraketarik ez" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Ez da aurkitu" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Gainidatzi" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Mesedez, egiaztatu oinarri jokoa zuzena dela." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Ilaran" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "testura paketeak" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -217,8 +280,12 @@ msgid "Update" msgstr "Eguneratu" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" +msgid "Update All [$1]" +msgstr "Guztia eguneratu [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Ikusi informazio gehiago web nabigatzailean" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -226,40 +293,39 @@ msgstr "Badago \"$1\" izeneko mundu bat" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Lurrazal gehigarria" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Garaierako hotza" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Garaierako lehortasuna" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Bioma nahasketa" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Biomak" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Leizeak" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "Leizeak" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Sortu" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informazioa:" +msgstr "Apaingarriak" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -272,11 +338,11 @@ msgstr "Deskargatu minetest.net zerbitzaritik" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "Leotzak" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Lurrazal laua" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" @@ -292,27 +358,29 @@ msgstr "Jolasa" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Lurrazal ez fraktalak sortu: Ozeanoak eta lurpekoak" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Mendiak" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Erreka hezeak" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Hezetasuna areagotu erreka inguruetan" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lakuak" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Hezetasun baxuak eta bero handiak sakonera gutxikoak edo lehorrak diren " +"ibaiak sortzen dituzte" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -320,7 +388,7 @@ msgstr "Mapa sortzailea" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Mapgen banderatxoak" #: builtin/mainmenu/dlg_create_world.lua msgid "Mapgen-specific flags" @@ -472,10 +540,6 @@ msgstr "< Itzuli ezarpenen orrira" msgid "Browse" msgstr "Arakatu" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Desgaituta" @@ -520,6 +584,10 @@ msgstr "Berrezarri lehenespena" msgid "Scale" msgstr "Eskala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Bilatu" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Hautatu direktorioa" @@ -638,6 +706,20 @@ msgstr "Ezinezkoa mod bat $1 moduan instalatzea" msgid "Unable to install a modpack as a $1" msgstr "Ezinezkoa mod pakete bat $1 moduan instalatzea" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Kargatzen..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Saia zaitez zerbitzari publikoen zerrenda birgaitzen eta egiazta ezazu zure " +"internet konexioa." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Lineako edukiak esploratu" @@ -660,7 +742,7 @@ msgstr "Instalaturiko paketeak:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "Menpekotasunik gabe." +msgstr "Mendekotasunik gabe." #: builtin/mainmenu/tab_content.lua msgid "No package description available" @@ -691,7 +773,14 @@ msgid "Credits" msgstr "Kredituak" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Hautatu direktorioa" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -711,14 +800,10 @@ msgid "Bind Address" msgstr "Helbidea lotu" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfiguratu" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Sormen modua" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Kalteak baimendu" @@ -732,10 +817,10 @@ msgstr "Zerbitzari ostalaria" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalatu ContentDB-ko jolasak" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -746,6 +831,10 @@ msgstr "" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -754,6 +843,11 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Hautatu" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -764,46 +858,46 @@ msgstr "" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "" +msgstr "Hasi partida" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" -msgstr "" +msgstr "Sormen modua" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "" +msgstr "Elkartu partidara" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -825,16 +919,12 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "" +msgstr "Ezarpen guztiak" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -843,10 +933,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -859,10 +945,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -871,10 +953,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -897,36 +975,32 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" -msgstr "" +msgstr "Hosto opakoak" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" +msgstr "Ur opakoa" #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "" +msgstr "Ezarpenak" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -971,22 +1045,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1071,11 +1129,11 @@ msgstr "" #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "" +msgstr "- Sormen modua: " #: src/client/game.cpp msgid "- Damage: " -msgstr "" +msgstr "- Kaltea: " #: src/client/game.cpp msgid "- Mode: " @@ -1146,27 +1204,24 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "Bezeroa sortzen..." #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "Zerbitzaria sortzen..." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" @@ -1244,15 +1299,6 @@ msgstr "" msgid "Fog enabled" msgstr "" -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "gaituta" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1273,15 +1319,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "gaituta" - #: src/client/game.cpp msgid "Media..." msgstr "Multimedia..." @@ -1294,34 +1331,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1366,10 +1375,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "Birsortu" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1422,10 +1427,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "Hil zara" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1442,14 +1443,6 @@ msgstr "" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1730,6 +1723,24 @@ msgstr "2. X botoia" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Pasahitzak ez datoz bat!" @@ -1768,26 +1779,6 @@ msgstr "" msgid "Backward" msgstr "Atzera" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Aldatu kamera" @@ -1880,29 +1871,10 @@ msgstr "isilean mugitu" msgid "Special" msgstr "Berezia" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Berezia" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Txandakatu hegaz egitea" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Txandakatu hegaz egitea" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -2012,12 +1984,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2124,6 +2090,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2357,10 +2327,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2431,16 +2397,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2592,6 +2548,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2642,14 +2602,16 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Creative" -msgstr "" +msgstr "Sormena" #: src/settings_translation_file.cpp msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2657,7 +2619,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2666,7 +2630,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "Kaltea" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2756,12 +2720,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2834,6 +2792,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Eskuinera tekla" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2895,8 +2858,9 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" +#, fuzzy +msgid "Enable creative mode for all players" +msgstr "Gaitu sormen modua mapa sortu berrietan." #: src/settings_translation_file.cpp msgid "Enable joysticks" @@ -2912,7 +2876,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable players getting damage and dying." -msgstr "" +msgstr "Ahalbidetu jokalariek kaltea jasotzea eta hiltzea." #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." @@ -2986,14 +2950,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3002,18 +2958,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3030,12 +2974,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3047,7 +2985,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3355,10 +3293,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3413,8 +3347,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3880,6 +3814,11 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Joystick mota" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3962,6 +3901,17 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Ikusmen barrutia txikitzeko tekla.\n" +"Ikusi http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4067,6 +4017,17 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Ikusmen barrutia txikitzeko tekla.\n" +"Ikusi http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4639,10 +4600,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4656,6 +4613,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4820,7 +4785,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4868,6 +4833,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5097,14 +5069,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5130,13 +5094,9 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" -msgstr "" +msgstr "Sareko eduki biltegia" #: src/settings_translation_file.cpp msgid "Opaque liquids" @@ -5159,34 +5119,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5252,6 +5184,15 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Hegaz egin tekla" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5407,10 +5348,6 @@ msgstr "" msgid "Right key" msgstr "Eskuinera tekla" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5662,6 +5599,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5791,10 +5738,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5886,7 +5829,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The URL for the content repository" -msgstr "" +msgstr "Eduki biltegiaren URL helbidea" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "Joystick mota" #: src/settings_translation_file.cpp msgid "" @@ -5949,8 +5897,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5974,6 +5922,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5982,9 +5936,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6122,6 +6075,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6324,6 +6288,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6338,7 +6308,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "Jokalariak elkarren artean hil daitezkeen ala ez." #: src/settings_translation_file.cpp msgid "" @@ -6448,6 +6418,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6460,11 +6448,14 @@ msgstr "" msgid "cURL timeout" msgstr "cURL-en denbora muga" -#~ msgid "Ok" -#~ msgstr "Ados" - #~ msgid "Back" #~ msgstr "Atzera" +#~ msgid "Configure" +#~ msgstr "Konfiguratu" + #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "$1 deskargatu eta instalatzen, itxaron mesedez..." + +#~ msgid "Ok" +#~ msgstr "Ados" diff --git a/po/my/minetest.po b/po/fi/minetest.po similarity index 95% rename from po/my/minetest.po rename to po/fi/minetest.po index 45be63bb8..57682ebba 100644 --- a/po/my/minetest.po +++ b/po/fi/minetest.po @@ -1,22 +1,35 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# msgid "" msgstr "" -"Project-Id-Version: Burmese (Minetest)\n" +"Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy \n" -"Language-Team: Burmese \n" -"Language: my\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: Tviljan \n" +"Language-Team: Finnish \n" +"Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Synny uudelleen" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Kuolit" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -24,7 +37,7 @@ msgstr "" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Tapahtui virhe:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -32,16 +45,12 @@ msgstr "" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "Yhdistä uudelleen" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" msgstr "" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "" @@ -54,10 +63,6 @@ msgstr "" msgid "Server supports protocol versions between $1 and $2. " msgstr "" -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "" @@ -66,7 +71,8 @@ msgstr "" msgid "We support protocol versions between version $1 and $2." msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -76,7 +82,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "" @@ -137,24 +144,63 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Tallenna" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Maailma:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Ladataan..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -176,6 +222,14 @@ msgstr "" msgid "Install" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -190,8 +244,23 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -207,7 +276,11 @@ msgid "Update" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -457,10 +530,6 @@ msgstr "" msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "" @@ -505,6 +574,10 @@ msgstr "" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -620,6 +693,18 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Ladataan..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -673,7 +758,13 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -693,14 +784,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -717,7 +804,7 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -728,6 +815,10 @@ msgstr "" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -736,6 +827,10 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -752,23 +847,23 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" @@ -776,16 +871,16 @@ msgstr "" msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -813,10 +908,6 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -825,10 +916,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -841,10 +928,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -853,10 +936,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -885,18 +964,10 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "" @@ -909,6 +980,10 @@ msgstr "" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -953,22 +1028,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1039,7 +1098,7 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "yes" +msgstr "no" #: src/client/game.cpp msgid "" @@ -1128,18 +1187,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1226,14 +1282,6 @@ msgstr "" msgid "Fog enabled" msgstr "" -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam enabled" -msgstr "" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1254,14 +1302,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura enabled" -msgstr "" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1274,34 +1314,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1346,10 +1358,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1402,10 +1410,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1422,14 +1426,6 @@ msgstr "" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1710,6 +1706,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1748,26 +1762,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" @@ -1860,26 +1854,10 @@ msgstr "" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -1951,7 +1929,7 @@ msgstr "" #. language code (e.g. "de" for German). #: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp msgid "LANG_CODE" -msgstr "my" +msgstr "fi" #: src/settings_translation_file.cpp msgid "" @@ -1989,12 +1967,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2101,6 +2073,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2334,10 +2310,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2408,16 +2380,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2569,6 +2531,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2626,7 +2592,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2634,7 +2602,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2733,12 +2703,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2809,6 +2773,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2870,7 +2838,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2957,14 +2925,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -2973,18 +2933,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3001,12 +2949,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3018,7 +2960,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3319,10 +3261,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3377,8 +3315,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3844,6 +3782,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3923,6 +3865,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4022,6 +3971,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4579,10 +4535,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4596,6 +4548,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4760,7 +4720,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4808,6 +4768,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5037,14 +5004,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5070,10 +5029,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5099,34 +5054,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5192,6 +5119,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5347,10 +5282,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5602,6 +5533,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5731,10 +5672,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5828,6 +5765,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5887,8 +5828,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5912,6 +5853,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5920,9 +5867,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6057,6 +6003,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6259,6 +6216,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6381,6 +6344,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" diff --git a/po/fr/minetest.po b/po/fr/minetest.po index d84247b51..98478e035 100644 --- a/po/fr/minetest.po +++ b/po/fr/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: French (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" -"Last-Translator: Estébastien Robespi \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: cafou \n" "Language-Team: French \n" "Language: fr\n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Réapparaître" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Vous êtes mort" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "Se reconnecter" msgid "The server has requested a reconnect:" msgstr "Le serveur souhaite rétablir une connexion :" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Chargement..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "La version du protocole ne correspond pas. " @@ -54,12 +58,6 @@ msgstr "Le serveur impose la version $1 du protocole. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Le serveur supporte les versions de protocole entre $1 et $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Essayez de rechargez la liste des serveurs publics et vérifiez votre " -"connexion Internet." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Nous supportons seulement la version du protocole $1." @@ -68,7 +66,8 @@ msgstr "Nous supportons seulement la version du protocole $1." msgid "We support protocol versions between version $1 and $2." msgstr "Nous supportons seulement les versions du protocole entre $1 et $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Nous supportons seulement les versions du protocole entre $1 et $2." msgid "Cancel" msgstr "Annuler" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dépend de :" @@ -152,14 +152,55 @@ msgstr "Sélectionner un monde :" msgid "enabled" msgstr "activé" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Chargement..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "Les dépendances nécessaires à 1 $ n'ont pas pu être trouvées." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 sera installé, et les dépendances de $2 seront ignorées." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Tous les paquets" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Touche déjà utilisée" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Retour au menu principal" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Héberger une partie" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB n'est pas disponible quand Minetest est compilé sans cURL" @@ -181,6 +222,16 @@ msgstr "Jeux" msgid "Install" msgstr "Installer" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Installer" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Dépendances optionnelles :" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -195,9 +246,26 @@ msgid "No results" msgstr "Aucun résultat" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Rechercher" +#, fuzzy +msgid "No updates" +msgstr "Mise à jour" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "Couper le son" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Écraser" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "En file d'attente" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,8 +280,12 @@ msgid "Update" msgstr "Mise à jour" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Affichage" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Voir plus d'informations dans un navigateur web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -468,11 +540,6 @@ msgstr "< Revenir aux paramètres" msgid "Browse" msgstr "Parcourir" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Client" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Désactivé" @@ -517,6 +584,10 @@ msgstr "Réinitialiser" msgid "Scale" msgstr "Echelle" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Rechercher" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Choisissez un répertoire" @@ -574,7 +645,7 @@ msgstr "Valeur absolue" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "par défaut" +msgstr "Paramètres par défaut" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -637,6 +708,21 @@ msgstr "Impossible d'installer un mod comme un $1" msgid "Unable to install a modpack as a $1" msgstr "Impossible d'installer un pack de mods comme un $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Chargement..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Les scripts côté client sont désactivés" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Essayez de rechargez la liste des serveurs publics et vérifiez votre " +"connexion Internet." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Parcourir le contenu en ligne" @@ -690,8 +776,18 @@ msgid "Credits" msgstr "Crédits" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Choisissez un répertoire" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Ouvre le répertoire qui contient les mondes fournis par les utilisateurs, " +"les jeux, les mods,\n" +"et des paquets de textures dans un gestionnaire de fichiers." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -710,14 +806,10 @@ msgid "Bind Address" msgstr "Adresse à assigner" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Configurer" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Mode créatif" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Activer les dégâts" @@ -734,8 +826,8 @@ msgid "Install games from ContentDB" msgstr "Installer à partir de ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nom / Mot de passe" +msgid "Name" +msgstr "Nom" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -745,6 +837,11 @@ msgstr "Nouveau" msgid "No world created or selected!" msgstr "Aucun monde créé ou sélectionné !" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Nouveau mot de passe" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Jouer" @@ -753,6 +850,11 @@ msgstr "Jouer" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Sélectionner un monde :" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Sélectionner un monde :" @@ -767,25 +869,25 @@ msgstr "Démarrer" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "Adresse / Port :" +msgstr "Adresse / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Rejoindre" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Mode créatif" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Dégâts activés" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "Supprimer favori :" +msgstr "Supprimer favori" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favori" @@ -793,16 +895,16 @@ msgstr "Favori" msgid "Join Game" msgstr "Rejoindre une partie" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nom / Mot de passe" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "JcJ activé" @@ -830,10 +932,6 @@ msgstr "Tous les paramètres" msgid "Antialiasing:" msgstr "Anti-crénelage :" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Êtes-vous sûr de vouloir réinitialiser votre monde ?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Sauvegarder automatiquement la taille d'écran" @@ -842,10 +940,6 @@ msgstr "Sauvegarder automatiquement la taille d'écran" msgid "Bilinear Filter" msgstr "Filtrage bilinéaire" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Placage de relief" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Changer les touches" @@ -858,10 +952,6 @@ msgstr "Verre unifié" msgid "Fancy Leaves" msgstr "Arbres détaillés" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Génération de Normal Maps" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "MIP mapping" @@ -870,10 +960,6 @@ msgstr "MIP mapping" msgid "Mipmap + Aniso. Filter" msgstr "MIP map + anisotropie" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Non" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Aucun filtre" @@ -902,18 +988,10 @@ msgstr "Arbres minimaux" msgid "Opaque Water" msgstr "Eau opaque" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Occlusion parallaxe" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Activer les particules" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Réinitialiser le monde" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Écran :" @@ -926,6 +1004,11 @@ msgstr "Réglages" msgid "Shaders" msgstr "Shaders" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Îles volantes (expérimental)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shaders (indisponible)" @@ -971,22 +1054,6 @@ msgstr "Liquides ondulants" msgid "Waving Plants" msgstr "Plantes ondulantes" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Oui" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Configurer les mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Principal" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Démarrer une partie solo" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Connexion perdue." @@ -1148,20 +1215,17 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" -"Contrôles:\n" +"Contrôles :\n" "- %s : avancer\n" "- %s : reculer\n" "- %s : à gauche\n" @@ -1247,7 +1311,7 @@ msgstr "Vitesse en mode rapide activée" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Vitesse en mode rapide activée (note: pas de privilège 'fast')" +msgstr "Vitesse en mode rapide activée (note : pas de privilège 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" @@ -1259,7 +1323,7 @@ msgstr "Mode vol activé" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Mode vol activé (note: pas de privilège 'fly')" +msgstr "Mode vol activé (note : pas de privilège 'fly')" #: src/client/game.cpp msgid "Fog disabled" @@ -1269,16 +1333,6 @@ msgstr "Brouillard désactivé" msgid "Fog enabled" msgstr "Brouillard activé" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Brouillard désactivé" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Brouillard activé" - #: src/client/game.cpp msgid "Game info:" msgstr "Infos de jeu :" @@ -1299,16 +1353,6 @@ msgstr "Définitions des items..." msgid "KiB/s" msgstr "Kio/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Brouillard désactivé" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Dégâts activés" - #: src/client/game.cpp msgid "Media..." msgstr "Média..." @@ -1321,34 +1365,6 @@ msgstr "Mio/s" msgid "Minimap currently disabled by game or mod" msgstr "La minimap est actuellement désactivée par un jeu ou un mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Mini-carte cachée" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Mini-carte en mode radar, zoom x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Mini-carte en mode radar, zoom x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Mini-carte en mode radar, zoom x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Mini-carte en mode surface, zoom x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Mini-carte en mode surface, zoom x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Mini-carte en mode surface, zoom x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Collisions activées" @@ -1359,7 +1375,7 @@ msgstr "Collisions désactivées" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Collisions activées (note: pas de privilège 'noclip')" +msgstr "Collisions activées (note : pas de privilège 'noclip')" #: src/client/game.cpp msgid "Node definitions..." @@ -1393,10 +1409,6 @@ msgstr "Serveur distant" msgid "Resolving address..." msgstr "Résolution de l'adresse..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Réapparaître" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Fermeture du jeu..." @@ -1428,7 +1440,7 @@ msgstr "Son rétabli" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "Distance de vue réglée sur %d%1" +msgstr "Distance de vue réglée sur %d" #: src/client/game.cpp #, c-format @@ -1449,10 +1461,6 @@ msgstr "Volume réglé sur %d%%" msgid "Wireframe shown" msgstr "Fils de fer affichés" -#: src/client/game.cpp -msgid "You died" -msgstr "Vous êtes mort" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Le zoom est actuellement désactivé par un jeu ou un mod" @@ -1469,16 +1477,6 @@ msgstr "Tchat caché" msgid "Chat shown" msgstr "Tchat affiché" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Tchat caché" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Tchat affiché" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Interface cachée" @@ -1759,6 +1757,25 @@ msgstr "Bouton X 2" msgid "Zoom" msgstr "Zoomer" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Mini-carte cachée" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Mini-carte en mode radar, zoom x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Mini-carte en mode surface, zoom x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Taille minimum des textures" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Les mots de passe ne correspondent pas !" @@ -1804,26 +1821,6 @@ msgstr "Sauts automatiques" msgid "Backward" msgstr "Reculer" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Changer la caméra" @@ -1842,7 +1839,7 @@ msgstr "Console" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "Plage de visualisation" +msgstr "Reduire champ vision" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" @@ -1916,30 +1913,10 @@ msgstr "Marcher lentement" msgid "Special" msgstr "Spécial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Spécial" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Mode cinématique" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Mode cinématique" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Afficher/retirer l'interface" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Voler" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Afficher/retirer le canal de discussion" @@ -1970,7 +1947,7 @@ msgstr "Activer/désactiver vol vertical" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "appuyez sur une touche" +msgstr "Appuyez sur une touche" #: src/gui/guiPasswordChange.cpp msgid "Change" @@ -2043,17 +2020,18 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"(X ; Y ; Z) de décalage fractal à partir du centre du monde en \n" -"unités « échelle ». Peut être utilisé pour déplacer un point\n" -"désiré en (0 ; 0) pour créer un point d'apparition convenable,\n" -"ou pour « zoomer » sur un point désiré en augmentant\n" -"« l'échelle ».\n" -"La valeur par défaut est réglée pour créer une zone\n" -"d'apparition convenable pour les ensembles de Mandelbrot\n" -"avec les paramètres par défaut, elle peut nécessité une \n" -"modification dans d'autres situations.\n" -"Interval environ de -2 à 2. Multiplier par « échelle » convertir\n" -"le décalage en nœuds." +"(X,Y,Z) de décalage du fractal à partir du centre du monde en unités " +"« échelle ».\n" +"Peut être utilisé pour déplacer un point désiré à (0, 0) pour créer une\n" +"zone d'apparition convenable, ou pour autoriser à « zoomer » sur un\n" +"point désiré en augmentant l'« échelle ».\n" +"La valeur par défaut est adaptée pour créer une zone d'apparition convenable " +"pour les ensembles\n" +"de Mandelbrot crées avec des paramètres par défaut. Elle peut nécessiter une " +"modification dans\n" +"d'autres situations.\n" +"La gamme est d'environ -2 à 2. Multiplier par « échelle » pour le décalage " +"en nœuds." #: src/settings_translation_file.cpp msgid "" @@ -2074,14 +2052,6 @@ msgstr "" "appropriée pour\n" "un île, rendez les 3 nombres égaux pour la forme de base." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = occlusion parallaxe avec des informations de pente (plus rapide).\n" -"1 = cartographie en relief (plus lent, plus précis)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Bruit 2D controllant la forme et taille des montagnes crantées." @@ -2108,7 +2078,7 @@ msgstr "Bruit 2D contrôlant la taille et la fréquence des plateaux montagneux. #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "Bruit 2D qui localise les vallées fluviales et les canaux" +msgstr "Bruit 2D qui localise les vallées et les chenaux des rivières." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2211,6 +2181,10 @@ msgstr "" msgid "ABM interval" msgstr "Intervalle des ABM" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "Limite stricte de la file de blocs émergents" @@ -2457,15 +2431,15 @@ msgstr "Chemin de la police en gras et en italique" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "Chemin de la police Monospace" +msgstr "Chemin de la police Monospace en gras et en italique" #: src/settings_translation_file.cpp msgid "Bold font path" -msgstr "Chemin de police audacieux" +msgstr "Chemin du fichier de police en gras" #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "Chemin de police monospace audacieux" +msgstr "Chemin de la police Monospace en gras" #: src/settings_translation_file.cpp msgid "Build inside player" @@ -2475,10 +2449,6 @@ msgstr "Placement de bloc à la position du joueur" msgid "Builtin" msgstr "Intégré" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bump mapping" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2486,11 +2456,13 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Caméra « près de la coupure de distance » dans les nœuds, entre 0 et 0,25.\n" -"Fonctionne uniquement sur plateformes GLES.\n" +"Distance en nœuds du plan de coupure rapproché de la caméra, entre 0 et " +"0,25.\n" +"Ne fonctionne uniquement que sur les plateformes GLES.\n" "La plupart des utilisateurs n’auront pas besoin de changer cela.\n" -"L’augmentation peut réduire les anomalies sur des petites cartes graphique.\n" -"0,1 par défaut, 0,25 bonne valeur pour des composants faibles." +"L’augmentation peut réduire les anomalies sur des cartes graphique plus " +"faibles.\n" +"0,1 par défaut, 0,25 est une bonne valeur pour des composants faibles." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2557,23 +2529,6 @@ msgstr "" "Lorsque 0,0 est le niveau de lumière minimum, et 1,0 est le niveau de " "lumière maximum." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Change l’interface du menu principal :\n" -"- Complet : Mondes solo, choix du jeu, sélecteur du pack de textures, " -"etc.\n" -"- Simple : un monde solo, pas de sélecteurs de jeu ou de pack de textures. " -"Peut être\n" -"nécessaire pour les plus petits écrans.\n" -"- Auto : Simple sur Android, complet pour le reste." - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Taille de police du chat" @@ -2740,6 +2695,10 @@ msgstr "Hauteur de la console" msgid "ContentDB Flag Blacklist" msgstr "Drapeaux ContentDB en liste noire" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Maximum de téléchargement en parallèle pour ContentDB" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "Adresse de la ContentDB" @@ -2792,8 +2751,8 @@ msgid "" msgstr "" "Contrôle la largeur des tunnels, une valeur plus faible crée des tunnels " "plus large.\n" -"Valeur >= 10,0 désactive complètement la génération de tunnel et évite le " -"calcul intensif de bruit." +"Valeur >= 10,0 désactive complètement la génération de tunnel et évite\n" +"le calcul intensif de bruit." #: src/settings_translation_file.cpp msgid "Crash message" @@ -2808,7 +2767,10 @@ msgid "Crosshair alpha" msgstr "Opacité du réticule" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Opacité du réticule (entre 0 et 255)." #: src/settings_translation_file.cpp @@ -2816,8 +2778,10 @@ msgid "Crosshair color" msgstr "Couleur du réticule" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Couleur du réticule (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2922,14 +2886,6 @@ msgid "Defines location and terrain of optional hills and lakes." msgstr "" "Définit l'emplacement et le terrain des collines facultatives et des lacs." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Niveau de lissage des normal maps.\n" -"Une valeur plus grande lisse davantage les normal maps." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Définit le niveau du sol de base." @@ -3009,6 +2965,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Désynchroniser les textures animées par mapblock" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Droite" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Particules au minage" @@ -3074,7 +3035,8 @@ msgid "Enable console window" msgstr "Activer la console" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Activer le mode créatif pour les cartes nouvellement créées." #: src/settings_translation_file.cpp @@ -3143,7 +3105,7 @@ msgstr "" "Activer l'usage d'un serveur de média distant (si pourvu par le serveur).\n" "Les serveurs de média distants offrent un moyen significativement plus " "rapide de télécharger\n" -"des données média (ex.: textures) lors de la connexion au serveur." +"des données média (ex. : textures) lors de la connexion au serveur." #: src/settings_translation_file.cpp msgid "" @@ -3188,19 +3150,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Active la rotation des items d'inventaire." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Active le bumpmapping pour les textures.\n" -"Les normalmaps peuvent être fournies par un pack de textures pour un " -"meilleur effet de relief,\n" -"ou bien celui-ci est auto-généré.\n" -"Nécessite les shaders pour être activé." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Active la mise en cache des meshnodes." @@ -3209,22 +3158,6 @@ msgstr "Active la mise en cache des meshnodes." msgid "Enables minimap." msgstr "Active la mini-carte." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Active la génération à la volée des normalmaps.\n" -"Nécessite le bumpmapping pour être activé." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Active l'occlusion parallaxe.\n" -"Nécessite les shaders pour être activé." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3246,14 +3179,6 @@ msgstr "Intervalle d'impression des données du moteur de profil" msgid "Entity methods" msgstr "Systèmes d'entité" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Option expérimentale, peut causer un espace vide visible entre les blocs\n" -"quand paramétré avec un nombre supérieur à 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3271,8 +3196,9 @@ msgstr "" "définie en bas, plus pour une couche solide de massif volant." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS maximum sur le menu pause" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "FPS maximum quand le jeu est en pause." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3602,10 +3528,6 @@ msgstr "Filtrage des images du GUI" msgid "GUI scaling filter txr2img" msgstr "Filtrage txr2img du GUI" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Normal mapping" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Rappels globaux" @@ -3667,18 +3589,19 @@ msgid "HUD toggle key" msgstr "HUD" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Traitement des appels d'API Lua obsolètes :\n" -"- legacy : imite l'ancien comportement (par défaut en mode release).\n" -"- log : imite et enregistre les appels obsolètes (par défaut en mode " -"debug).\n" -"- error : interruption à l'usage d'un appel obsolète (recommandé pour les " -"développeurs de mods)." +"- legacy : imite l'ancien comportement (par défaut en mode release).\n" +"- log : imite et enregistre la trace des appels obsolètes (par défaut en " +"mode debug).\n" +"- error : (=erreur) interruption à l'usage d'un appel obsolète " +"(recommandé pour les développeurs de mods)." #: src/settings_translation_file.cpp msgid "" @@ -3688,7 +3611,7 @@ msgid "" "call).\n" "* Instrument the sampler being used to update the statistics." msgstr "" -"Auto-instrumentaliser le profileur:\n" +"Auto-instrumentaliser le profileur :\n" "* Instrumentalise une fonction vide.\n" "La surcharge sera évaluée. (l'auto-instrumentalisation ajoute 1 appel de " "fonction à chaque fois).\n" @@ -3733,11 +3656,11 @@ msgstr "Bruit de collines1" #: src/settings_translation_file.cpp msgid "Hilliness2 noise" -msgstr "Bruit de colline2" +msgstr "Bruit de collines2" #: src/settings_translation_file.cpp msgid "Hilliness3 noise" -msgstr "Bruit de colline3" +msgstr "Bruit de collines3" #: src/settings_translation_file.cpp msgid "Hilliness4 noise" @@ -3970,7 +3893,7 @@ msgid "" "are\n" "enabled." msgstr "" -"Si désactivé, la touche \"special\" est utilisée si le vole et le mode " +"Si désactivé, la touche \"special\" est utilisée si le vole et le mode " "rapide sont tous les deux activés." #: src/settings_translation_file.cpp @@ -4211,6 +4134,11 @@ msgstr "ID de manette" msgid "Joystick button repetition interval" msgstr "Intervalle de répétition du bouton du Joystick" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Type de manette" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Sensibilité tronconique du joystick" @@ -4229,9 +4157,9 @@ msgid "" msgstr "" "Réglage Julia uniquement.\n" "La composante W de la constante hypercomplexe.\n" -"Transforme la forme de la fractale.\n" +"Modifie la forme de la fractale.\n" "N'a aucun effet sur les fractales 3D.\n" -"Portée environ -2 à 2." +"Gamme d'environ -2 à 2." #: src/settings_translation_file.cpp msgid "" @@ -4313,6 +4241,17 @@ msgstr "" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Touche pour sauter.\n" +"Voir http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4455,6 +4394,17 @@ msgstr "" "Voir http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Touche pour sauter.\n" +"Voir http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5063,8 +5013,8 @@ msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Longueur des vagues.\n" -"Nécessite que l'ondulation des liquides soit active." +"Longueur des vagues de liquides.\n" +"Nécessite que les liquides ondulatoires soit activé." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" @@ -5144,7 +5094,7 @@ msgstr "" "Nombre limite de requête HTTP en parallèle. Affecte :\n" "- L'obtention de média si le serveur utilise l'option remote_media.\n" "- Le téléchargement de la liste des serveurs et l'annonce du serveur.\n" -"- Les téléchargements effectués par le menu (ex.: gestionnaire de mods).\n" +"- Les téléchargements effectués par le menu (ex. : gestionnaire de mods).\n" "Prend seulement effet si Minetest est compilé avec cURL." #: src/settings_translation_file.cpp @@ -5205,10 +5155,6 @@ msgstr "Borne inférieure Y des massifs volants." msgid "Main menu script" msgstr "Script du menu principal" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Style du menu principal" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5226,6 +5172,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Rendre toutes les liquides opaques" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Répertoire de la carte du monde" @@ -5240,7 +5194,8 @@ msgid "" "Occasional lakes and hills can be added to the flat world." msgstr "" "Attributs de terrain spécifiques au générateur de monde plat.\n" -"Des lacs et des collines occasionnels peuvent être ajoutés au monde plat." +"Des lacs et des collines peuvent être occasionnellement ajoutés au monde " +"plat." #: src/settings_translation_file.cpp msgid "" @@ -5315,7 +5270,7 @@ msgstr "Délai de génération des maillages de MapBlocks" #: src/settings_translation_file.cpp msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "Taille du cache du générateur de maillage pour les MapBloc en Mio" +msgstr "Taille du cache du générateur de maillage pour les MapBloc en Mo" #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" @@ -5410,7 +5365,8 @@ msgid "Maximum FPS" msgstr "FPS maximum" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "FPS maximum quand le jeu est en pause." #: src/settings_translation_file.cpp @@ -5470,6 +5426,13 @@ msgstr "" "fichier.\n" "Laisser ce champ vide pour un montant approprié défini automatiquement." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Nombre maximum de mapblocks chargés de force." @@ -5537,7 +5500,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" -"Délais maximaux de téléchargement d'un fichier (ex.: un mod), établi en " +"Délais maximaux de téléchargement d'un fichier (ex. : un mod), établi en " "millisecondes." #: src/settings_translation_file.cpp @@ -5726,14 +5689,6 @@ msgstr "Intervalle de temps d'un nœud" msgid "Noises" msgstr "Bruits" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Échantillonnage de normalmaps" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Force des normalmaps" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Nombre de tâches en cours" @@ -5775,10 +5730,6 @@ msgstr "" "mémoire\n" "(4096 = 100 Mo, comme règle fondamentale)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Nombre d'itérations sur l'occlusion parallaxe." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Dépôt de contenu en ligne" @@ -5808,34 +5759,6 @@ msgstr "" "Ouvrir le mesure pause lorsque le focus sur la fenêtre est perdu. Ne met pas " "en pause si un formspec est ouvert." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Bias général de l'occlusion parallaxe, habituellement échelle/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Echelle générale de l'effet de l'occlusion parallaxe." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Occlusion parallaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Bias de l'occlusion parallaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Nombre d'itérations sur l'occlusion parallaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Mode occlusion parallaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Echelle de l'occlusion parallaxe" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5924,6 +5847,16 @@ msgstr "Touche de vol libre" msgid "Pitch move mode" msgstr "Mode de mouvement libre" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Voler" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Intervalle de répétition du clic droit" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6112,10 +6045,6 @@ msgstr "Bruit pour la taille des crêtes de montagne" msgid "Right key" msgstr "Droite" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Intervalle de répétition du clic droit" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Profondeur des rivières" @@ -6221,7 +6150,7 @@ msgid "" "Use 0 for default quality." msgstr "" "Qualité de capture d'écran. Utilisé uniquement pour le format JPEG.\n" -"1 signifie mauvaise qualité; 100 signifie la meilleure qualité.\n" +"1 signifie mauvaise qualité ; 100 signifie la meilleure qualité.\n" "Utilisez 0 pour la qualité par défaut." #: src/settings_translation_file.cpp @@ -6419,6 +6348,20 @@ msgstr "Afficher les infos de débogage" msgid "Show entity selection boxes" msgstr "Afficher les boîtes de sélection de l'entité" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Détermine la langue. Laisser vide pour utiliser celui de votre système.\n" +"Un redémarrage du jeu est nécessaire pour prendre effet." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "La police est en gras par défaut" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Message d'arrêt du serveur" @@ -6434,12 +6377,12 @@ msgid "" msgstr "" "Taille des mapchunks générés par mapgen, indiquée dans les mapblocks (16 " "nœuds).\n" -"ATTENTION !: Il n’ya aucun avantage, et il y a plusieurs dangers, dans\n" +"ATTENTION ! : Il n’y a aucun avantage, et plusieurs dangers, à\n" "augmenter cette valeur au-dessus de 5.\n" "Réduire cette valeur augmente la densité de cavernes et de donjons.\n" -"La modification de cette valeur est réservée à un usage spécial, elle reste " -"inchangée.\n" -"conseillé." +"La modification de cette valeur est réservée à un usage spécial. Il est " +"conseillé\n" +"de la laisser inchangée." #: src/settings_translation_file.cpp msgid "" @@ -6579,10 +6522,6 @@ msgstr "Bruit pour l’étalement des montagnes en escalier" msgid "Strength of 3D mode parallax." msgstr "Intensité de parallaxe en mode 3D." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Force des normalmaps autogénérés." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6614,6 +6553,19 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Niveau de la surface de l'eau (facultative) placée sur une couche solide de " +"terre suspendue.\n" +"L'eau est désactivée par défaut et ne sera placée que si cette valeur est\n" +"fixée à plus de 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n" +"(début de l’effilage du haut)\n" +"***ATTENTION, DANGER POTENTIEL AU MONDES ET AUX PERFORMANCES DES " +"SERVEURS*** :\n" +"Lorsque le placement de l'eau est activé, les île volantes doivent être\n" +"configurées avec une couche solide en mettant 'mgv7_floatland_density' à " +"2.0\n" +"(ou autre valeur dépendante de 'mgv7_np_floatland'), pour éviter\n" +"les chutes d'eaux énormes qui surchargent les serveurs et pourraient\n" +"inonder les terres en dessous." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6692,6 +6644,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "L'URL du dépôt de contenu en ligne" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "L'identifiant de la manette à utiliser" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6750,7 +6707,6 @@ msgstr "" "Entrer /privs dans le jeu pour voir une liste complète des privilèges." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6761,21 +6717,21 @@ msgid "" "This should be configured together with active_object_send_range_blocks." msgstr "" "Le rayon du volume de blocs autour de chaque joueur soumis à la\n" -"truc de bloc actif, indiqué dans mapblocks (16 noeuds).\n" -"Dans les blocs actifs, les objets sont chargés et les guichets automatiques " -"sont exécutés.\n" -"C'est également la plage minimale dans laquelle les objets actifs (mobs) " +"matière de bloc actif, indiqué dans mapblocks (16 nœuds).\n" +"Les objets sont chargés et les ABMs sont exécutés dans les blocs actifs.\n" +"C'est également la distance minimale pour laquelle les objets actifs (mobs) " "sont conservés.\n" -"Ceci devrait être configuré avec active_object_range." +"Ceci devrait être configuré avec 'active_object_send_range_blocks'." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Le moteur de rendu utilisé par Irrlicht.\n" "Un redémarrage est nécessaire après avoir changé cette option.\n" @@ -6818,6 +6774,12 @@ msgstr "" "sa taille en vidant\n" "l'ancienne file d'articles. Une valeur de 0 désactive cette fonctionnalité." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6827,10 +6789,10 @@ msgstr "" "le bouton droit de la souris." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "L'intervalle en secondes entre des clics droits répétés lors de l'appui sur " "le bouton droit de la souris." @@ -6918,7 +6880,6 @@ msgid "Trilinear filtering" msgstr "Filtrage trilinéaire" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6942,7 +6903,6 @@ msgid "Undersampling" msgstr "Sous-échantillonage" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6950,11 +6910,12 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"Le sous-échantillonage ressemble à l'utilisation d'une définition d'écran\n" -"plus faible, mais il ne s'applique qu'au rendu 3D, gardant l'interface " -"intacte.\n" +"Le sous-échantillonage ressemble à l'utilisation d'une résolution d'écran " +"inférieure,\n" +"mais il ne s'applique qu'au rendu 3D, gardant l'interface usager intacte.\n" "Cela peut donner lieu à un bonus de performance conséquent, au détriment de " -"la qualité d'image." +"la qualité d'image.\n" +"Les valeurs plus élevées réduisent la qualité du détail des images." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6969,9 +6930,8 @@ msgid "Upper Y limit of dungeons." msgstr "Limite haute Y des donjons." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Limite haute Y des donjons." +msgstr "Limite en Y des îles volantes." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -7003,6 +6963,17 @@ msgstr "" "surtout si vous utilisez un pack de textures haute résolution.\n" "La réduction d'échelle gamma correcte n'est pas prise en charge." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Utilisation du filtrage trilinéaire." @@ -7113,13 +7084,12 @@ msgid "Volume" msgstr "Volume du son" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Active l'occlusion parallaxe.\n" -"Nécessite les shaders pour être activé." +"Volume de tous les sons.\n" +"Exige que le son du système soit activé." #: src/settings_translation_file.cpp msgid "" @@ -7165,24 +7135,20 @@ msgid "Waving leaves" msgstr "Feuilles d'arbres mouvantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" msgstr "Liquides ondulants" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" msgstr "Hauteur des vagues" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" msgstr "Vitesse de mouvement des liquides" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Durée du mouvement des liquides" +msgstr "Espacement des vagues de liquides" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -7196,7 +7162,7 @@ msgid "" msgstr "" "Quand gui_scaling_filter est activé, tous les images du GUI sont\n" "filtrées dans Minetest, mais quelques images sont générées directement\n" -"par le matériel (ex.: textures des blocs dans l'inventaire)." +"par le matériel (ex. : textures des blocs dans l'inventaire)." #: src/settings_translation_file.cpp msgid "" @@ -7212,7 +7178,6 @@ msgstr "" "qui ne supportent pas le chargement des textures depuis le matériel." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -7226,28 +7191,35 @@ msgid "" msgstr "" "En utilisant le filtrage bilinéaire/trilinéaire/anisotrope, les textures de " "basse résolution\n" -"peuvent être floutées, agrandissez-les donc automatiquement avec " -"l'interpolation du plus proche voisin\n" -"pour garder des pixels nets. Ceci détermine la taille de la texture " -"minimale\n" -"pour les textures agrandies ; les valeurs plus hautes rendent les textures " -"plus détaillées, mais nécessitent\n" +"peuvent être brouillées. Elles seront donc automatiquement agrandies avec " +"l'interpolation\n" +"du plus proche voisin pour garder des pixels moins floues. Ceci détermine la " +"taille de la texture minimale\n" +"pour les textures agrandies ; les valeurs plus hautes rendent plus " +"détaillées, mais nécessitent\n" "plus de mémoire. Les puissances de 2 sont recommandées. Définir une valeur " "supérieure à 1 peut ne pas\n" "avoir d'effet visible sauf si le filtrage bilinéaire / trilinéaire / " "anisotrope est activé.\n" -"ceci est également utilisée comme taille de texture de nœud par défaut pour\n" +"Ceci est également utilisée comme taille de texture de nœud par défaut pour\n" "l'agrandissement des textures basé sur le monde." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" "Détermine l'utilisation des polices Freetype. Nécessite une compilation avec " -"le support Freetype." +"le support Freetype.\n" +"Si désactivée, des polices bitmap et en vecteurs XML seront utilisé en " +"remplacement." + +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7278,7 +7250,6 @@ msgid "Whether to fog out the end of the visible area." msgstr "Détermine la visibilité de la brume au bout de l'aire visible." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether to mute sounds. You can unmute sounds at any time, unless the\n" "sound system is disabled (enable_sound=false).\n" @@ -7286,10 +7257,10 @@ msgid "" "pause menu." msgstr "" "S'il faut mettre les sons en sourdine. Vous pouvez désactiver les sons à " -"tout moment, sauf si le\n" +"tout moment, sauf si\n" "le système de sonorisation est désactivé (enable_sound=false).\n" "Dans le jeu, vous pouvez passer en mode silencieux avec la touche de mise en " -"sourdine ou en utilisant la\n" +"sourdine ou en utilisant le\n" "menu pause." #: src/settings_translation_file.cpp @@ -7381,6 +7352,11 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Hauteur-Y à laquelle les îles volantes commence à rétrécir.\n" +"L'effilage comment à cette distance de la limite en Y.\n" +"Pour une courche solide de terre suspendue, ceci contrôle la hauteur des " +"montagnes.\n" +"Doit être égale ou moindre à la moitié de la distance entre les limites Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7402,6 +7378,24 @@ msgstr "Hauteur Y du plus bas terrain et des fonds marins." msgid "Y-level of seabed." msgstr "Hauteur (Y) du fond marin." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Délais d'interruption de cURL lors d'un téléchargement de fichier" @@ -7414,23 +7408,12 @@ msgstr "Limite parallèle de cURL" msgid "cURL timeout" msgstr "Délais d'interruption de cURL" -#~ msgid "Ok" -#~ msgstr "Ok" - -#~ msgid "Back" -#~ msgstr "Retour" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Téléchargement et installation de $1, veuillez patienter..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite des files émergentes sur le disque" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Force de l'occlusion parallaxe" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Chemin où les captures d'écran sont sauvegardées." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = occlusion parallaxe avec des informations de pente (plus rapide).\n" +#~ "1 = cartographie en relief (plus lent, plus précis)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7445,9 +7428,42 @@ msgstr "Délais d'interruption de cURL" #~ "Modifie la façon dont les terres flottantes montagneuses s’effilent au-" #~ "dessus et au-dessous du point médian." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Êtes-vous sûr de vouloir réinitialiser votre monde ?" + +#~ msgid "Back" +#~ msgstr "Retour" + +#~ msgid "Bump Mapping" +#~ msgstr "Placage de relief" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Milieu de la courbe de lumière mi-boost." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Change l’interface du menu principal :\n" +#~ "- Complet : Mondes solo, choix du jeu, sélecteur du pack de textures, " +#~ "etc.\n" +#~ "- Simple : un monde solo, pas de sélecteurs de jeu ou de pack de " +#~ "textures. Peut être\n" +#~ "nécessaire pour les plus petits écrans." + +#~ msgid "Config mods" +#~ msgstr "Configurer les mods" + +#~ msgid "Configure" +#~ msgstr "Configurer" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7460,6 +7476,9 @@ msgstr "Délais d'interruption de cURL" #~ "Contrôle la largeur des tunnels, une valeur plus petite crée des tunnels " #~ "plus larges." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Couleur du réticule (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Démarcation de l'obscurité" @@ -7470,12 +7489,58 @@ msgstr "Délais d'interruption de cURL" #~ "Défini les zones de terrain plat flottant.\n" #~ "Des terrains plats flottants apparaissent lorsque le bruit > 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Niveau de lissage des normal maps.\n" +#~ "Une valeur plus grande lisse davantage les normal maps." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Téléchargement et installation de $1, veuillez patienter..." + #~ msgid "Enable VBO" #~ msgstr "Activer Vertex Buffer Object: objet tampon de vertex" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Active le bumpmapping pour les textures.\n" +#~ "Les normalmaps peuvent être fournies par un pack de textures pour un " +#~ "meilleur effet de relief,\n" +#~ "ou bien celui-ci est auto-généré.\n" +#~ "Nécessite les shaders pour être activé." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Autorise le mappage tonal cinématographique" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Active la génération à la volée des normalmaps.\n" +#~ "Nécessite le bumpmapping pour être activé." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Active l'occlusion parallaxe.\n" +#~ "Nécessite les shaders pour être activé." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Option expérimentale, peut causer un espace vide visible entre les blocs\n" +#~ "quand paramétré avec un nombre supérieur à 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS maximum sur le menu pause" + #~ msgid "Floatland base height noise" #~ msgstr "Le bruit de hauteur de base des terres flottantes" @@ -7488,6 +7553,12 @@ msgstr "Délais d'interruption de cURL" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Génération de Normal Maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normal mapping" + #~ msgid "IPv6 support." #~ msgstr "Support IPv6." @@ -7497,18 +7568,105 @@ msgstr "Délais d'interruption de cURL" #~ msgid "Lightness sharpness" #~ msgstr "Démarcation de la luminosité" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite des files émergentes sur le disque" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Style du menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mini-carte en mode radar, zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mini-carte en mode radar, zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Mini-carte en mode surface, zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Mini-carte en mode surface, zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Nom / Mot de passe" + +#~ msgid "No" +#~ msgstr "Non" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Échantillonnage de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Force des normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe." + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Bias général de l'occlusion parallaxe, habituellement échelle/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Echelle générale de l'effet de l'occlusion parallaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Occlusion parallaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Occlusion parallaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Bias de l'occlusion parallaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mode occlusion parallaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Echelle de l'occlusion parallaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Force de l'occlusion parallaxe" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Chemin vers police TrueType ou Bitmap." +#~ msgid "Path to save screenshots at." +#~ msgstr "Chemin où les captures d'écran sont sauvegardées." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projection des donjons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Réinitialiser le monde" + +#~ msgid "Select Package File:" +#~ msgstr "Sélectionner le fichier du mod :" + #~ msgid "Shadow limit" #~ msgstr "Limite des ombres" +#~ msgid "Start Singleplayer" +#~ msgstr "Démarrer une partie solo" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Force des normalmaps autogénérés." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Force de la courbe de lumière mi-boost." #~ msgid "This font will be used for certain languages." #~ msgstr "Cette police sera utilisée pour certaines langues." +#~ msgid "Toggle Cinematic" +#~ msgstr "Mode cinématique" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7520,28 +7678,28 @@ msgstr "Délais d'interruption de cURL" #~ "Variation de la hauteur des collines et de la profondeur des lacs sur les " #~ "terrains plats flottants." +#~ msgid "View" +#~ msgstr "Voir" + +#~ msgid "Waving Water" +#~ msgstr "Eau ondulante" + #~ msgid "Waving water" #~ msgstr "Vagues" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Si les donjons font parfois saillie du terrain." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Coordonnée Y de la limite supérieure des grandes grottes pseudo-" +#~ "aléatoires." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "Hauteur (Y) du point de flottaison et de la surface des lacs." #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Hauteur (Y) auquel les ombres portées s’étendent." -#~ msgid "Projecting dungeons" -#~ msgstr "Projection des donjons" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Si les donjons font parfois saillie du terrain." - -#~ msgid "Waving Water" -#~ msgstr "Eau ondulante" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "" -#~ "Coordonnée Y de la limite supérieure des grandes grottes pseudo-" -#~ "aléatoires." - -#~ msgid "Select Package File:" -#~ msgstr "Sélectionner le fichier du mod :" +#~ msgid "Yes" +#~ msgstr "Oui" diff --git a/po/gd/minetest.po b/po/gd/minetest.po index 83ac36bb5..e7147d3b5 100644 --- a/po/gd/minetest.po +++ b/po/gd/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-06-22 17:56+0000\n" "Last-Translator: GunChleoc \n" "Language-Team: Gaelic 2 && n < 20) ? 2 : 3;\n" "X-Generator: Weblate 4.2-dev\n" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "" @@ -44,10 +52,6 @@ msgstr "" msgid "The server has requested a reconnect:" msgstr "" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - #: builtin/mainmenu/common.lua #, fuzzy msgid "Protocol version mismatch. " @@ -63,10 +67,6 @@ msgstr " " msgid "Server supports protocol versions between $1 and $2. " msgstr " " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "" @@ -75,7 +75,8 @@ msgstr "" msgid "We support protocol versions between version $1 and $2." msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -85,7 +86,8 @@ msgstr "" msgid "Cancel" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "" @@ -156,14 +158,52 @@ msgstr "" msgid "enabled" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -185,6 +225,14 @@ msgstr "" msgid "Install" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -199,8 +247,23 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -216,7 +279,11 @@ msgid "Update" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -466,10 +533,6 @@ msgstr "" msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "" @@ -514,6 +577,10 @@ msgstr "" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -630,6 +697,18 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -683,7 +762,13 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -703,14 +788,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -727,7 +808,7 @@ msgid "Install games from ContentDB" msgstr "Stàlaich geamannan o ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -738,6 +819,10 @@ msgstr "" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -746,6 +831,10 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -762,23 +851,23 @@ msgstr "" msgid "Address / Port" msgstr "Seòladh / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" @@ -786,16 +875,16 @@ msgstr "" msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -823,10 +912,6 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -835,10 +920,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -851,10 +932,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -863,10 +940,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -895,18 +968,10 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Sgrìn:" @@ -919,6 +984,10 @@ msgstr "" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -965,22 +1034,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1149,18 +1202,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Stiùireadh:\n" "- %s: gluais an comhair a’ bheòil\n" @@ -1261,16 +1311,6 @@ msgstr "" msgid "Fog enabled" msgstr "" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Tha am modh sgiathaidh à comas" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Tha am modh sgiathaidh an comas" - #: src/client/game.cpp msgid "Game info:" msgstr "Fiosrachadh mun gheama:" @@ -1291,14 +1331,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura enabled" -msgstr "" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1311,34 +1343,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Tha am modh gun bhearradh à comas" @@ -1383,10 +1387,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1439,10 +1439,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1459,15 +1455,6 @@ msgstr "" msgid "Chat shown" msgstr "Tha a’ chabadaich ’ga shealltainn" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Tha a’ chabadaich ’ga shealltainn" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1748,6 +1735,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1786,26 +1791,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" @@ -1898,28 +1883,10 @@ msgstr "Tàislich" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Toglaich am modh gun bhearradh" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Toglaich sgiathadh" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -2030,12 +1997,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2150,6 +2111,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2388,10 +2353,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2464,16 +2425,6 @@ msgstr "" "Meadhan rainse meudachadh lùb an t-solais.\n" "Is 0.0 an ìre as fhainne agus 1.0 an ìre as soilleire air an solas." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2625,6 +2576,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2682,7 +2637,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2690,7 +2647,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2789,12 +2748,6 @@ msgstr "Mìnichidh seo structar sruth nan aibhnean mòra." msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Mìnichidh seo àirde bhunasach a’ ghrunnda." @@ -2867,6 +2820,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2928,7 +2885,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3015,14 +2972,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3031,18 +2980,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3059,12 +2996,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3084,7 +3015,7 @@ msgstr "" "do bhreath tìre air fhleòd sholadach." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3389,10 +3320,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3456,8 +3383,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3943,6 +3870,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4022,6 +3953,17 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thoglaicheas an sgiathadh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4130,6 +4072,17 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"An iuchair a thoglaicheas an sgiathadh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4812,10 +4765,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4829,6 +4778,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Dèan gach lionn trìd-dhoilleir" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -5014,7 +4971,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -5064,6 +5021,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5304,14 +5268,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5337,10 +5293,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Ionad-tasgaidh susbaint air loidhne" @@ -5368,36 +5320,6 @@ msgstr "" "Fosgail clàr-taice a’ chuir ’na stad nuair a chailleas an uinneag am fòcas.\n" "Cha dèid a chur ’na stad nuair a bhios formspec fosgailte." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Claonadh na h-èifeachd occlusion na paraileig air fheadh, seo sgèile/2 mar " -"as àbhaist." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5463,6 +5385,15 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Iuchair an sgiathaidh" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5622,10 +5553,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Doimhne sruth nan aibhnean" @@ -5877,6 +5804,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -6013,10 +5950,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6125,6 +6058,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6187,8 +6124,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6212,6 +6149,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6220,9 +6163,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6361,6 +6303,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6565,6 +6518,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6698,6 +6657,24 @@ msgstr "Àirde-Y a’ chrutha-thìre ìosal agus grunnd na mara." msgid "Y-level of seabed." msgstr "Àirde-Y aig grunnd na mara." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6709,3 +6686,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL timeout" msgstr "" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Claonadh na h-èifeachd occlusion na paraileig air fheadh, seo sgèile/2 " +#~ "mar as àbhaist." diff --git a/po/gl/minetest.po b/po/gl/minetest.po index b2cb6246b..6f5b479bc 100644 --- a/po/gl/minetest.po +++ b/po/gl/minetest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-07-08 20:47+0000\n" "Last-Translator: sfan5 \n" "Language-Team: Galician \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-17 22:50+0000\n" +"Last-Translator: Yossi Cohen \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -13,21 +13,27 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.5\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "הזדמן" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "מתת" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "אישור" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "אירעה שגיאה בקוד לואה (Lua), כנראה באחד המודים:" +msgstr "אירעה שגיאה בתסריט Lua:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" -msgstr "התרחשה שגיאה:" +msgstr "אירעה שגיאה:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -35,15 +41,11 @@ msgstr "תפריט ראשי" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "התחבר מחדש" +msgstr "התחברות מחדש" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "השרת מבקש שתתחבר מחדש:" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "טוען..." +msgstr "השרת מבקש התחברות מחדש:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -51,16 +53,12 @@ msgstr "שגיאה בגרסאות הפרוטוקול. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "השרת יפעיל את פרוטוקול גרסה $1. בכוח " +msgstr "השרת מחייב שימוש בגרסת פרוטוקול $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " msgstr "השרת תומך בפרוטוקולים בין גרסה $1 וגרסה $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "נסה לצאת והכנס מחדש לרשימת השרתים ובדוק את חיבור האינטרנט שלך." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "אנו תומכים רק בגירסה 1$ של הפרוטוקול." @@ -69,7 +67,8 @@ msgstr "אנו תומכים רק בגירסה 1$ של הפרוטוקול." msgid "We support protocol versions between version $1 and $2." msgstr "אנו תומכים בגרסאות בין 1$ ל-2$ של הפרוטוקול." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -79,42 +78,38 @@ msgstr "אנו תומכים בגרסאות בין 1$ ל-2$ של הפרוטוקו msgid "Cancel" msgstr "ביטול" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -#, fuzzy +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "תלוי ב:" +msgstr "תלויות:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable all" -msgstr "אפשר הכל" +msgstr "להשבית הכול" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable modpack" -msgstr "אפשר הכל" +msgstr "השבתת ערכת המודים" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "אפשר הכל" +msgstr "להפעיל הכול" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Enable modpack" -msgstr "אפשר הכל" +msgstr "הפעלת ערכת המודים" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"טעינת המוד \"1$\" נכשלה מכיוון שהוא מכיל תווים לא חוקיים. רק התווים [a-" +"הפעלת המוד \"1$\" נכשלה מכיוון שהוא מכיל תווים לא חוקיים. רק התווים [a-" "z0-9_] מותרים." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "מציאת מודים נוספים" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -122,33 +117,32 @@ msgstr "מוד:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "אין תלויות (רשות)" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "לא סופק תיאור משחק." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "תלוי ב:" +msgstr "ללא תלויות קשות" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "" +msgstr "לא סופק תיאור לחבילת המוד." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "אין תלויות רשות" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "תלויות אופציונאליות:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "שמור" +msgstr "שמירה" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" @@ -159,26 +153,64 @@ msgid "enabled" msgstr "מופעל" #: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "" +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" כבר קיים. האם תרצה להחליף אותו?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "התלויות $1 ו $2 יותקנו." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 ליד $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 מוריד,\n" +"$2 ממתין" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 כעת בהורדה..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "לא ניתן למצוא תלות חובה של $1." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 יותקן ו $2 תלויות שידולגו." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "All packages" +msgstr "כל החבילות" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "כבר מותקן" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Back to Main Menu" -msgstr "תפריט ראשי" +msgstr "חזרה לתפריט הראשי" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "משחק בסיסי:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "בסיס נתוני התוכן לא זמין כאשר מיינטסט מקומפל בלי cUrl" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "טוען..." +msgstr "כעת בהורדה..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "הורדת $1 נכשלה" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -187,7 +219,15 @@ msgstr "משחקים" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "החקן" +msgstr "התקנה" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "התקנת $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "מתקין תלויות חסרות" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -196,99 +236,115 @@ msgstr "מודים" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "לא ניתן להביא את החבילות" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "" +msgstr "אין תוצאות" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "חפש" +msgid "No updates" +msgstr "אין עדכונים" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "לא נמצא" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "דרוס" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "אנא בדוק שמשחק הבסיס תקין." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "נכנס לתור" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Texture packs" -msgstr "חבילות מרקם" +msgstr "חבילות טקסטורה (מרקם)" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Uninstall" -msgstr "החקן" +msgstr "הסרה" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" -msgstr "" +msgstr "עדכון" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" +msgid "Update All [$1]" +msgstr "עדכן הכל [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "צפה במידע נוסף בדפדפן האינטרנט" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "עולם בשם \"1$\" כבר קיים" +msgstr "כבר קיים עולם בשם \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "שטח נוסף" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "קור בגבהים" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "יובש בגבהים" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "מיזוג ביומים (אקולוגי)" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "ביומים (צמחיה אקולוגית)" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "מערות (טבעיות בחלקן מוארות)" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "מערות (ללא אור שמש)" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" -msgstr "ליצור" +msgstr "יצירה" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "קישוטים" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "הורד מפעיל משחק, למשל \"minetest_game\", מהאתר: minetest.net" +msgstr "הורדת משחק, כמו משחק Minetest, מאתר minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "הורד אחד מ-\"minetest.net\"" +msgstr "הורד אחד מאתר minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "מבוכים" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "עולם שטוח" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "גושי אדמה צפים בשמים" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "אדמה צפה (נסיוני)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -296,281 +352,276 @@ msgstr "משחק" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "צור שטח לא פרקטלי: אוקיינוסים ותת קרקעי" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "גבעות" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "נהרות לחים" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "הגברת הלחות בסביבת נהרות" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "אגמים" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "לחות נמוכה וחום גבוה גורמים לנהרות רדודים או יבשים" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" -msgstr "מנוע מפות" +msgstr "מנוע (מחולל) מפות" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "אפשרויות מנוע מפות" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "מנוע מפות" +msgstr "אפשרויות ספציפיות למנוע מפות" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "הרים" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "זרימת בוץ" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "רשת מערות ומחילות" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "No game selected" -msgstr "אין עולם נוצר או נבחר!" +msgstr "לא נבחר משחק" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "הפחתה בחום בגובה רב" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "הפחתת הלחות בגובה רב" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "נהרות" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "נהרות בגובה פני הים" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "" +msgstr "זרע" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "מעבר חלק בין אזורי אקלים שונים" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "מבנים המופיעים בשטח (אין השפעה על עצים ועשבי ג'ונגל שנוצרו על ידי v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "מבנים המופיעים בשטח, בדרך כלל עצים וצמחים" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "ממוזג, מדברי" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "ממוזג, מדברי, ג'ונגל" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "ממוזג, מדברי, ג'ונגל, טונדרה, טייגה" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "סחף פני השטח" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "עצים ודשא של ג׳ונגל" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "עומק נהרות משתנה" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "מערות גדולות מאוד עמוק מתחת לאדמה" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "אזהרה: מצב המפתחים נועד למפתחים!." +msgstr "אזהרה: מצב בדיקת הפיתוח נועד למפתחים." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "שם העולם" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "You have no games installed." -msgstr "אין לך אף מפעיל משחק מותקן." +msgstr "אין לך משחקים מותקנים." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "האם ברצונך למחוק את \"$1\"?" +msgstr "האם אכן ברצונך למחוק את \"$1\"?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua #: src/client/keycode.cpp msgid "Delete" -msgstr "מחק" +msgstr "מחיקה" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" +msgstr "pkgmgr: מחיקת \"$1\" נכשלה" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "" +msgstr "pkgmgr: נתיב לא חוקי \"$1\"" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "למחוק עולם \"$1\"?" +msgstr "למחוק את העולם \"$1\"?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "קבל" +msgstr "הסכמה" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "" +msgstr "שנה את שם חבילת המודים:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" +"ל- modpack (חבילת תוספות) זה יש שם מפורש שניתן ב modpack.conf שלו אשר יעקוף " +"כל שינוי-שם כאן." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" -msgstr "" +msgstr "(לא נוסף תיאור להגדרה)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "" +msgstr "רעש דו-מיימדי" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "" +msgstr "חזור לדף ההגדרות >" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "קלינט" +msgstr "דפדף" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "מושבת" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "" +msgstr "עריכה" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "מופעל" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" -msgstr "" +msgstr "מרווחיות" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" -msgstr "" +msgstr "אוקטבות" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" -msgstr "" +msgstr "היסט" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" -msgstr "" +msgstr "התמדה" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "" +msgstr "הכנס מספר שלם חוקי." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "" +msgstr "הכנס מספר חוקי." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "" +msgstr "שחזור לברירת המחדל" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" -msgstr "" +msgstr "קנה מידה" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "חיפוש" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select directory" -msgstr "בחר עולם:" +msgstr "נא לבחור תיקיה" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select file" -msgstr "בחר עולם:" +msgstr "נא לבחור קובץ" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "" +msgstr "הצגת שמות טכניים" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." -msgstr "" +msgstr "הערך חייב להיות לפחות $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must not be larger than $1." -msgstr "" +msgstr "הערך לא יכול להיות גדול מ־$1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "" +msgstr "מרווחיות X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "" +msgstr "מרווחיות Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "" +msgstr "מרווחיות Z" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -578,14 +629,14 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "" +msgstr "ערך מוחלט" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "" +msgstr "ברירת מחדל" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -593,161 +644,173 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "" +msgstr "החלקת ערכים" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 (Enabled)" -msgstr "מופעל" +msgstr "$1 (מופעל)" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 mods" -msgstr "מודים" +msgstr "$1 מודים" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "" +msgstr "התקנת $1 אל $2 נכשלה" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" +msgstr "התקנת מוד: לא ניתן למצוא את שם המוד האמיתי עבור: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" +msgstr "התקנת מוד: לא ניתן למצוא שם תיקייה מתאים עבור חבילת המודים $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" +msgstr "התקנה: סוג קובץ לא נתמך \"$1\" או שהארכיב פגום" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "" +msgstr "התקנה: מקובץ: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "" +msgstr "לא ניתן למצוא מוד/חבילת מודים תקינה" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" -msgstr "" +msgstr "לא ניתן להתקין $1 כחבילת טקסטורות" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" -msgstr "" +msgstr "לא ניתן להתקין משחק בתור $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" -msgstr "" +msgstr "לא ניתן להתקין מוד בתור $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" +msgstr "לא ניתן להתקין חבילת מודים בתור $1" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "כעת בטעינה..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "סקריפטים בצד לקוח מבוטלים" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." msgstr "" +"נא לנסות לצאת ולהיכנס מחדש לרשימת השרתים ולבדוק את החיבור שלך לאינטרנט." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "" +msgstr "עיון בתוכן מקוון" #: builtin/mainmenu/tab_content.lua msgid "Content" -msgstr "" +msgstr "תוכן" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Disable Texture Pack" -msgstr "חבילות מרקם" +msgstr "השבתת חבילת המרקם" #: builtin/mainmenu/tab_content.lua msgid "Information:" -msgstr "" +msgstr "מידע:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "" +msgstr "חבילות מותקנות:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "" +msgstr "אין תלויות." #: builtin/mainmenu/tab_content.lua msgid "No package description available" -msgstr "" +msgstr "אין תיאור חבילה זמין" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "" +msgstr "שנה שם" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" -msgstr "" +msgstr "הסרת החבילה" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Use Texture Pack" -msgstr "חבילות מרקם" +msgstr "שימוש בחבילת המרקם" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "" +msgstr "תורמים פעילים" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "" +msgstr "מפתחים עיקריים" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "קרדיטים" +msgstr "תודות" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "נא לבחור תיקיית משתמש" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"פותח את התיקייה המכילה עולמות, משחקים, מודים,\n" +"וחבילות טקסטורה במנהל קבצים." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "" +msgstr "תורמים קודמים" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "" +msgstr "מפתחי ליבה קודמים" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "" +msgstr "הכרז על השרת" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" -msgstr "" +msgstr "הצמד כתובת" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "קביעת תצורה" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "משחק יצירתי" +msgstr "מצב יצירתי" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "אפשר נזק" +msgstr "לאפשר חבלה" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Game" -msgstr "הסתר משחק" +msgstr "אירוח משחק" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Server" -msgstr "שרת" +msgstr "אכסון שרת" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "התקנת משחק מContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "שם/סיסמה" +msgid "Name" +msgstr "שם" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -755,186 +818,164 @@ msgstr "חדש" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "אין עולם נוצר או נבחר!" +msgstr "אין עולם שנוצר או נבחר!" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "סיסמה" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Play Game" -msgstr "התחל משחק" +msgstr "להתחיל לשחק" #: builtin/mainmenu/tab_local.lua msgid "Port" msgstr "פורט" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "בחירת מודים" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" -msgstr "בחר עולם:" +msgstr "נא לבחור עולם:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "" +msgstr "פורט לשרת" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Start Game" -msgstr "הסתר משחק" +msgstr "התחלת המשחק" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" msgstr "כתובת / פורט" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" -msgstr "התחבר" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" +msgstr "התחברות" #: builtin/mainmenu/tab_online.lua -#, fuzzy -msgid "Join Game" -msgstr "הסתר משחק" +msgid "Creative mode" +msgstr "מצב יצירתי" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua +msgid "Damage enabled" +msgstr "נזק מופעל" + +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" +msgstr "מחק מועדף" + +#: builtin/mainmenu/tab_online.lua +msgid "Favorite" +msgstr "מועדף" + +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "הצטרפות למשחק" + +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "שם/סיסמה" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" -msgstr "" +msgstr "פינג" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" -msgstr "PvP אפשר" +msgstr "לאפשר קרבות" #: builtin/mainmenu/tab_settings.lua msgid "2x" -msgstr "" +msgstr "x2" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "" +msgstr "עננים תלת מימדיים" #: builtin/mainmenu/tab_settings.lua msgid "4x" -msgstr "" +msgstr "x4" #: builtin/mainmenu/tab_settings.lua msgid "8x" -msgstr "" +msgstr "x8" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "All Settings" -msgstr "הגדרות" +msgstr "כל ההגדרות" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" +msgstr "החלקת קצוות (AA):" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "" +msgstr "שמור אוטומטית גודל מסך" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" +msgstr "פילטר בילינארי" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" -msgstr "" +msgstr "שנה מקשים" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Connected Glass" -msgstr "התחבר" +msgstr "זכוכיות מחוברות" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" +msgstr "עלים מגניבים" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" -msgstr "" +msgstr "מיפמאפ" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "לא" +msgstr "מיפמאפ + פילטר אניסוטרופי" #: builtin/mainmenu/tab_settings.lua msgid "No Filter" -msgstr "" +msgstr "בלי פילטר" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "" +msgstr "בלי מיפמאפ" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "" +msgstr "הבלטת קוביות" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "" +msgstr "הדגשת מסגרת קוביות" #: builtin/mainmenu/tab_settings.lua msgid "None" -msgstr "" +msgstr "ללא" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" -msgstr "" +msgstr "עלים אטומים" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" +msgstr "מים אטומים לאור" #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "חלקיקים" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Reset singleplayer world" -msgstr "שרת" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "" +msgstr "מסך:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" @@ -942,127 +983,115 @@ msgstr "הגדרות" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" -msgstr "" +msgstr "שיידרים" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "שיידרים (נסיוני)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" -msgstr "" +msgstr "שיידרים (לא זמינים)" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" -msgstr "" +msgstr "עלים פשוטים" #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" -msgstr "" +msgstr "החלקת תאורה" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "" +msgstr "טקסטורות:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" +msgstr "כדי לאפשר שיידרים יש להשתמש בדרייבר של OpenGL." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "" +msgstr "מיפוי גוונים" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "" +msgstr "סף נגיעה: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "פילטר תלת לינארי" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" -msgstr "" +msgstr "עלים מתנופפים" #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" -msgstr "" +msgstr "נוזלים עם גלים" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "כן" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" +msgstr "צמחים מתנוענעים" #: src/client/client.cpp msgid "Connection timed out." -msgstr "" +msgstr "זמן המתנה לחיבור אזל." #: src/client/client.cpp msgid "Done!" -msgstr "" +msgstr "הסתיים!" #: src/client/client.cpp msgid "Initializing nodes" -msgstr "" +msgstr "מאתחל קוביות" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "" +msgstr "מאתחל קוביות..." #: src/client/client.cpp msgid "Loading textures..." -msgstr "" +msgstr "טוען טקסטורות..." #: src/client/client.cpp msgid "Rebuilding shaders..." -msgstr "" +msgstr "בונה מחדש שיידרים..." #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" -msgstr "" +msgstr "בעיה בחיבור (נגמר זמן ההמתנה?)" #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" -msgstr "" +msgstr "לא מצליח למצוא או לטעון משחק \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." -msgstr "" +msgstr "הגדרת משחק לא תקינה." #: src/client/clientlauncher.cpp msgid "Main Menu" -msgstr "" +msgstr "תפריט ראשי" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." -msgstr "" +msgstr "לא נבחר עולם ולא נתנה כתובת. לא עושה כלום." #: src/client/clientlauncher.cpp msgid "Player name too long." -msgstr "" +msgstr "שם השחקן ארוך מידי." #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "" +msgstr "נא לבחור שם!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "הסיסמה שניתנה לא פתחה: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "" +msgstr "נתיב העולם שניתן לא קיים: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1081,84 +1110,81 @@ msgid "" "\n" "Check debug.txt for details." msgstr "" +"\n" +"בדוק את debug.txt לפרטים נוספים." #: src/client/game.cpp -#, fuzzy msgid "- Address: " -msgstr "כתובת / פורט" +msgstr "- כתובת: " #: src/client/game.cpp -#, fuzzy msgid "- Creative Mode: " -msgstr "משחק יצירתי" +msgstr "- מצב יצירתי: " #: src/client/game.cpp -#, fuzzy msgid "- Damage: " -msgstr "אפשר נזק" +msgstr "- חבלה: " #: src/client/game.cpp msgid "- Mode: " -msgstr "" +msgstr "- מצב: " #: src/client/game.cpp -#, fuzzy msgid "- Port: " -msgstr "פורט" +msgstr "- פורט: " #: src/client/game.cpp -#, fuzzy msgid "- Public: " -msgstr "ציבורי" +msgstr "- ציבורי: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "" +msgstr "- קרב: " #: src/client/game.cpp msgid "- Server Name: " -msgstr "" +msgstr "- שם שרת: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "" +msgstr "התקדמות אוטומטית קדימה מבוטלת" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "" +msgstr "תנועה קדימה אוטומטית מופעל" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "" +msgstr "עדכון מצלמה מבוטל" #: src/client/game.cpp msgid "Camera update enabled" -msgstr "" +msgstr "עדכון מצלמה מופעל" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "שנה סיסמה" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "" +msgstr "מצב קולנועי מבוטל" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "" +msgstr "מצב קולנועי מופעל" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "" +msgstr "סקריפטים בצד לקוח מבוטלים" #: src/client/game.cpp msgid "Connecting to server..." -msgstr "" +msgstr "מתחבר לשרת..." #: src/client/game.cpp msgid "Continue" -msgstr "" +msgstr "המשך" #: src/client/game.cpp #, c-format @@ -1168,39 +1194,50 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" +"פקדים:\n" +"- %s: כדי לזוז קדימה\n" +"- %s: כדי לזוז אחורה\n" +"- %s: כדי לזוז שמאלה\n" +"- %s: כדי לזוז ימינה\n" +"- %s: כדי לקפוץ או לטפס למעלה\n" +"- %s: כדי לחפור או לחבוט\n" +"- %s: כדי להניח או להשתמש\n" +"- %s: כדי להתכופף או לטפס למטה\n" +"- %s: כדי לזרוק פריט\n" +"- %s: כדי לפתוח את תיק החפצים\n" +"- עכבר: כדי להסתובב או להסתכל\n" +"- גלגלת העכבר: כדי לבחור פריט\n" +"- %s: כדי לפתוח את הצ׳אט\n" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "יוצר לקוח..." #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "יוצר שרת..." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "מידע דיבאג וגרף פרופיילר מוסתר" #: src/client/game.cpp msgid "Debug info shown" -msgstr "" +msgstr "מידע דיבאג מוצג" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "מידע דיבאג, גרף פרופיילר, ומצב שלד מוסתר" #: src/client/game.cpp msgid "" @@ -1217,187 +1254,146 @@ msgid "" "- touch&drag, tap 2nd finger\n" " --> place single item to slot\n" msgstr "" +"פקדי ברירת מחדל:\n" +"לא נראה תפריט:\n" +"- לחיצה בודדת: הפעלת כפתור\n" +"- הקשה כפולה: מקום / שימוש\n" +"- החלק אצבע: הביט סביב\n" +"תפריט / מלאי גלוי:\n" +"- לחיצה כפולה (בחוץ):\n" +"--> סגור\n" +"- מחסנית מגע, חריץ מגע:\n" +"--> הזז מחסנית\n" +"- גע וגרור, הקש על האצבע השנייה\n" +"--> מקם פריט יחיד לחריץ\n" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "ביטול טווח ראיה בלתי מוגבל" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "הפעלת טווח ראיה בלתי מוגבל" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "" +msgstr "יציאה לתפריט" #: src/client/game.cpp msgid "Exit to OS" -msgstr "" +msgstr "יציאה למערכת ההפעלה" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "" +msgstr "מצב מהיר מבוטל" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "" +msgstr "מצב מהיר מופעל" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "מצב מהיר מופעל (שים לב, אין הרשאת 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "" +msgstr "מצב תעופה מבוטל" #: src/client/game.cpp -#, fuzzy msgid "Fly mode enabled" -msgstr "מופעל" +msgstr "מצב תעופה הופעל" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "מצב תעופה מופעל (שים לב, אין הרשאת 'fly')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "" +msgstr "ערפל מבוטל" #: src/client/game.cpp -#, fuzzy msgid "Fog enabled" -msgstr "מופעל" - -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "מופעל" +msgstr "ערפל מופעל" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "מידע על המשחק:" #: src/client/game.cpp -#, fuzzy msgid "Game paused" -msgstr "משחקים" +msgstr "המשחק הושהה" #: src/client/game.cpp msgid "Hosting server" -msgstr "" +msgstr "שרת מארח" #: src/client/game.cpp msgid "Item definitions..." -msgstr "" +msgstr "הגדרות פריט..." #: src/client/game.cpp msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "מופעל" +msgstr "קילובייט/שניה" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "מדיה..." #: src/client/game.cpp msgid "MiB/s" -msgstr "" +msgstr "מגהבייט/שניה" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgstr "מיפמאפ כרגע מבוטל ע\"י המשחק או המוד" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "" +msgstr "מעבר דרך קירות מבוטל" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "" +msgstr "מעבר דרך קירות מופעל" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" +msgstr "מעבר דרך קירות מופעל (שים לב, אין הרשאת 'noclip')" #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "הגדרות קוביה..." #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "מכובה" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "דולק" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "תנועה לכיוון מבט מכובה" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "תנועה לכיוון מבט מופעל" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "גרף פרופיילר מוצג" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "שרת מרוחק" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Respawn" -msgstr "" +msgstr "מפענח כתובת..." #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "מכבה..." #: src/client/game.cpp msgid "Singleplayer" @@ -1405,274 +1401,261 @@ msgstr "שחקן יחיד" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "ווליום שמע" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "שמע מושתק" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "מערכת שמע לא מופעלת" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "מערכת שמע לא נתמכת בבניה הנוכחית" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "" +msgstr "מערכת שמע מופעלת" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "טווח ראיה השתנה ל %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "טווח ראיה הגיע למקסימום: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "טווח ראיה הגיע למינימום: %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "עוצמת שמע שונתה ל %d%%" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "You died" -msgstr "" +msgstr "מסגרת שלדית מוצגת" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "זום גרגע מבוטל על-ידי המשחק או המוד" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "אוקיי" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "צ'אט מוסתר" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" +msgstr "צ'אט מוצג" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "מידע-על-מסך מוסתר" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "מידע-על-מסך מוצג" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "פרופיילר מוסתר" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "פרופיילר מוצג (עמוד %d מתוך %d)" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "אפליקציות" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "נקה" #: src/client/keycode.cpp msgid "Control" -msgstr "" +msgstr "קונטרול" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "למטה" #: src/client/keycode.cpp msgid "End" -msgstr "" +msgstr "End" #: src/client/keycode.cpp msgid "Erase EOF" -msgstr "" +msgstr "מחק EOF" #: src/client/keycode.cpp msgid "Execute" -msgstr "" +msgstr "בצע" #: src/client/keycode.cpp msgid "Help" -msgstr "" +msgstr "עזרה" #: src/client/keycode.cpp msgid "Home" -msgstr "" +msgstr "Home" #: src/client/keycode.cpp -#, fuzzy msgid "IME Accept" -msgstr "קבל" +msgstr "קבל IME" #: src/client/keycode.cpp msgid "IME Convert" -msgstr "" +msgstr "המרת IME" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "יציאת IME" #: src/client/keycode.cpp msgid "IME Mode Change" -msgstr "" +msgstr "שינוי מצב IME" #: src/client/keycode.cpp msgid "IME Nonconvert" -msgstr "" +msgstr "IME ללא המרה" #: src/client/keycode.cpp msgid "Insert" -msgstr "" +msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "שמאלה" #: src/client/keycode.cpp msgid "Left Button" -msgstr "" +msgstr "הלחצן השמאלי" #: src/client/keycode.cpp msgid "Left Control" -msgstr "" +msgstr "מקש Control השמאלי" #: src/client/keycode.cpp msgid "Left Menu" -msgstr "" +msgstr "תפריט שמאלי" #: src/client/keycode.cpp msgid "Left Shift" -msgstr "" +msgstr "מקש Shift השמאלי" #: src/client/keycode.cpp msgid "Left Windows" -msgstr "" +msgstr "מקש Windows השמאלי" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" -msgstr "" +msgstr "תפריט" #: src/client/keycode.cpp msgid "Middle Button" -msgstr "" +msgstr "כפתור אמצעי" #: src/client/keycode.cpp msgid "Num Lock" -msgstr "" +msgstr "נעילה נומרית" #: src/client/keycode.cpp msgid "Numpad *" -msgstr "" +msgstr "מקלדת נומרית *" #: src/client/keycode.cpp msgid "Numpad +" -msgstr "" +msgstr "מקלדת נומרית +" #: src/client/keycode.cpp msgid "Numpad -" -msgstr "" +msgstr "מקלדת נומרית -" #: src/client/keycode.cpp msgid "Numpad ." -msgstr "" +msgstr "מקלדת נומרית ." #: src/client/keycode.cpp msgid "Numpad /" -msgstr "" +msgstr "מקלדת נומרית /" #: src/client/keycode.cpp msgid "Numpad 0" -msgstr "" +msgstr "מקלדת נומרית 0" #: src/client/keycode.cpp msgid "Numpad 1" -msgstr "" +msgstr "מקלדת נומרית 1" #: src/client/keycode.cpp msgid "Numpad 2" -msgstr "" +msgstr "מקלדת נומרית 2" #: src/client/keycode.cpp msgid "Numpad 3" -msgstr "" +msgstr "מקלדת נומרית 3" #: src/client/keycode.cpp msgid "Numpad 4" -msgstr "" +msgstr "מקלדת נומרית 4" #: src/client/keycode.cpp msgid "Numpad 5" -msgstr "" +msgstr "מקלדת נומרית 5" #: src/client/keycode.cpp msgid "Numpad 6" -msgstr "" +msgstr "מקלדת נומרית 6" #: src/client/keycode.cpp msgid "Numpad 7" -msgstr "" +msgstr "מקלדת נומרית 7" #: src/client/keycode.cpp msgid "Numpad 8" -msgstr "" +msgstr "מקלדת נומרית 8" #: src/client/keycode.cpp msgid "Numpad 9" -msgstr "" +msgstr "מקלדת נומרית 9" #: src/client/keycode.cpp msgid "OEM Clear" -msgstr "" +msgstr "ניקוי OME" #: src/client/keycode.cpp msgid "Page down" -msgstr "" +msgstr "Page down" #: src/client/keycode.cpp msgid "Page up" -msgstr "" +msgstr "Page up" #: src/client/keycode.cpp msgid "Pause" -msgstr "" +msgstr "Pause" #: src/client/keycode.cpp msgid "Play" @@ -1681,88 +1664,106 @@ msgstr "שחק" #. ~ "Print screen" key #: src/client/keycode.cpp msgid "Print" -msgstr "" +msgstr "PrintScreen" #: src/client/keycode.cpp msgid "Return" -msgstr "" +msgstr "Enter" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" -msgstr "" +msgstr "ימינה" #: src/client/keycode.cpp msgid "Right Button" -msgstr "" +msgstr "הלחצן הימני" #: src/client/keycode.cpp msgid "Right Control" -msgstr "" +msgstr "מקש Control הימני" #: src/client/keycode.cpp msgid "Right Menu" -msgstr "" +msgstr "תפריט ימני" #: src/client/keycode.cpp msgid "Right Shift" -msgstr "" +msgstr "מקש Shift הימני" #: src/client/keycode.cpp msgid "Right Windows" -msgstr "" +msgstr "מקש Windows הימני" #: src/client/keycode.cpp msgid "Scroll Lock" -msgstr "" +msgstr "Scroll Lock" #. ~ Key name #: src/client/keycode.cpp msgid "Select" -msgstr "" +msgstr "Select" #: src/client/keycode.cpp msgid "Shift" -msgstr "" +msgstr "Shift" #: src/client/keycode.cpp msgid "Sleep" -msgstr "" +msgstr "שינה" #: src/client/keycode.cpp msgid "Snapshot" -msgstr "" +msgstr "צילום רגעי" #: src/client/keycode.cpp msgid "Space" -msgstr "" +msgstr "רווח" #: src/client/keycode.cpp msgid "Tab" -msgstr "" +msgstr "Tab" #: src/client/keycode.cpp msgid "Up" -msgstr "" +msgstr "למעלה" #: src/client/keycode.cpp msgid "X Button 1" -msgstr "" +msgstr "X כפתור 1" #: src/client/keycode.cpp msgid "X Button 2" -msgstr "" +msgstr "X כפתור 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "זום" + +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "מפה קטנה מוסתרת" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "מפה קטנה במצב ראדר, זום x %d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "מפה קטנה במצב שטח, זום x %d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "מפה קטנה במצב טקסטורה" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "" +msgstr "סיסמאות לא תואמות!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "הרשם והצטרף" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1773,224 +1774,192 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"אתה עומד להצטרף לשרת זה עם השם \"%s\" בפעם הראשונה.\n" +"אם תמשיך, ייווצר חשבון חדש באמצעות אישוריך בשרת זה.\n" +"אנא הקלד מחדש את הסיסמה שלך ולחץ על 'הירשם והצטרף' כדי לאשר את יצירת החשבון, " +"או לחץ על 'ביטול' כדי לבטל." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" -msgstr "" +msgstr "להמשיך" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "" +msgstr "\"מיוחד\" = טפס למטה" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "" +msgstr "קדימה אוטומטי" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "קפיצה אוטומטית" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" +msgstr "אחורה" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "שנה מצלמה" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "צ'אט" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "פקודה" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" -msgstr "" +msgstr "קונסולה" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "" +msgstr "הקטן טווח" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "" +msgstr "הנמך ווליום" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "" +msgstr "לחיצה כפולה על \"קפיצה\" כדי לכבות או להדליק את מצב התעופה" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" -msgstr "" +msgstr "הפל" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" -msgstr "" +msgstr "קדימה" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "" +msgstr "הגדל טווח" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "הגבר ווליום" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" -msgstr "" +msgstr "תיק חפצים" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" -msgstr "" +msgstr "קפיצה" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" -msgstr "" +msgstr "מקש כבר בשימוש" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" +msgstr "קישור מקשים (אם התפריט מתקלקל, הסר דברים מminetest.conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "" +msgstr "פקודה מקומית" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "השתק" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "הפריט הבא" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "" +msgstr "הפריט הקודם" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "" +msgstr "בחר טווח" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "צילום מסך" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "" +msgstr "התכופף" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" +msgstr "מיוחד" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" +msgstr "מתג מידע על מסך" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "מתג צא'ט לוג" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "מתג מצב מהיר" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "מתג תעופה" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "מתג ערפל" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "מתג מפה קטנה" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "" +msgstr "מתג מעבר דרך קירות" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "" +msgstr "מתג תנועה לכיוון מבט" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "לחץ מקש" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "שנה" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "אשר סיסמה" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "סיסמה חדשה" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "סיסמה ישנה" #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "יציאה" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "מושתק" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " -msgstr "" +msgstr "עוצמת שמע: " #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "" +msgstr "הכנס " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -2004,6 +1973,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) מתקן את המיקום של הג'ויסטיק הווירטואלי.\n" +"אם מושבת, הג'ויסטיק הווירטואלי יעמוד במיקום המגע הראשון." #: src/settings_translation_file.cpp msgid "" @@ -2011,6 +1982,9 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) השתמש בג'ויסטיק וירטואלי כדי להפעיל את כפתור \"aux\".\n" +"אם הוא מופעל, הג'ויסטיק הווירטואלי ילחץ גם על כפתור \"aux\" כשהוא מחוץ למעגל " +"הראשי." #: src/settings_translation_file.cpp msgid "" @@ -2023,6 +1997,14 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X, Y, Z) היסט של פרקטל ממרכז עולמי ביחידות 'סקאלה'.\n" +"ניתן להשתמש בה כדי להעביר נקודה רצויה ל (0, 0) כדי ליצור\n" +"נקודת הופעה מתאימה, או כדי לאפשר 'התקרבות' לנקודה רצויה\n" +"על ידי הגדלת 'סקאלה'.\n" +"ברירת המחדל מכוונת לנקודת הופעה מתאימה למנדלברוט\n" +"קבוצות עם פרמטרי ברירת מחדל, יתכן שיהיה צורך לשנות זאת\n" +"מצבים.\n" +"טווח בערך -2 עד 2. הכפל באמצעות 'קנה מידה' עבור קיזוז בצמתים." #: src/settings_translation_file.cpp msgid "" @@ -2034,62 +2016,65 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" +"(X, Y, Z) סקאלה של פרקטל בצמתים.\n" +"גודל הפרקטל בפועל יהיה גדול פי 2 עד 3.\n" +"ניתן להפוך את המספרים הללו לגדולים מאוד, כך הפרקטל\n" +"לא צריך להשתלב בעולם.\n" +"הגדל את אלה ל\"התקרב \"לפרטי הפרקטל.\n" +"ברירת המחדל היא לצורה מעוכה אנכית המתאימה ל\n" +"אי, קבע את כל 3 המספרים שווים לצורה הגולמית." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "רעש דו-ממדי השולט על צורתם / גודל ההרים המחורצים." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "רעש דו-ממדי השולט על צורתם / גודל הגבעות המתונות." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "רעש דו-ממדי השולט על צורתם / גודל ההרים הנישאים." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "רעש דו-ממדי השולט על תדירות/ גודל רכסי ההרים." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "רעש דו-ממדי השולט על תדירות/גודל הגבעות המתונות." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "רעש דו-ממדי השולט על תדירות/גודל רכסי ההרים." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "רעש דו-ממדי שמאתר את עמקי הנהרות ותעלותיהם." #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "" +msgstr "עננים תלת מימדיים" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "מצב תלת מימדי" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "חוזק פרלקסה במצב תלת ממדי" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "רעשי תלת מימד המגדירים מערות ענק." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"רעש תלת ממדי המגדיר את מבנה ההרים וגובהם.\n" +"מגדיר גם מבנה שטח הרים צפים." #: src/settings_translation_file.cpp msgid "" @@ -2098,22 +2083,27 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"רעש תלת ממדי מגדיר מבנה של שטחי צף.\n" +"אם משתנה מברירת המחדל, ייתכן ש\"סקאלת\" הרעש (0.7 כברירת מחדל) זקוקה\n" +"להיות מותאמת, מכיוון שההתפשטות של שטחי צף מתפקדת בצורה הטובה ביותר כאשר יש " +"לרעש זה\n" +"טווח ערכים של כ -2.0 עד 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "מבנה מגדיר רעש תלת ממדי של קירות קניון הנהר." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "רעש תלת ממדי המגדיר שטח." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "רעש תלת ממדי להרים תלויים, צוקים וכו'בדרך כלל וריאציות קטנות." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "רעש תלת ממדי הקובע את מספר הצינוקים בנתח מפה." #: src/settings_translation_file.cpp msgid "" @@ -2128,52 +2118,68 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" +"תמיכה בתלת מימד.\n" +"נתמך כרגע:\n" +"- ללא: אין פלט תלת-ממדי.\n" +"- אנאגליף: צבע ציאן / מגנטה 3d.\n" +"- interlaced: תמיכה במסך קיטוב מבוסס מוזר / שווה\n" +"- topbottom: מסך מפוצל למעלה / למטה.\n" +"- צדדי: פיצול מסך זה לצד זה.\n" +"- תצוגת רוחב: 3D עם עיניים צולבות\n" +"- pageflip: quadbuffer מבוסס 3d.\n" +"שים לב שמצב interlaced מחייב הפעלת shaders." #: src/settings_translation_file.cpp msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"זרע מפה שנבחר עבור מפה חדשה, השאר ריק לאקראי.\n" +"יבוטל בעת יצירת עולם חדש בתפריט הראשי." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "הודעה שתוצג בפני כל הלקוחות כאשר השרת קורס." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "הודעה שתוצג בפני כל הלקוחות כאשר השרת יכבה." #: src/settings_translation_file.cpp msgid "ABM interval" -msgstr "" +msgstr "אינטרוול ABM" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "הקצאת זמן ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgstr "מגבלה מוחלטת של בלוקים בתור שיופיעו" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "תאוצה באויר" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "האצת כוח הכבידה, בקוביות לשנייה בריבוע." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "משניי בלוק פעיל" #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "אינטרוול ניהול בלוק פעיל" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "טווח בלוק פעיל" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "טווח שליחת אובייקט פעיל" #: src/settings_translation_file.cpp msgid "" @@ -2181,16 +2187,19 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"כתובת להתחברות אליה.\n" +"השאר את זה ריק כדי להפעיל שרת מקומי.\n" +"שים לב ששדה הכתובת בתפריט הראשי עוקף הגדרה זו." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "" +msgstr "הוסף חלקיקים כשחופרים בקוביה." #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." -msgstr "" +msgstr "התאם את תצורת dpi למסך שלך (לא X11 / Android בלבד) למשל. למסכי 4k." #: src/settings_translation_file.cpp #, c-format @@ -2201,10 +2210,15 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"מכוון את הצפיפות של שכבת אדמות צותף.\n" +"הגדל את הערך כדי להגדיל את הצפיפות. יכול להיות חיובי או שלילי.\n" +"ערך = 0.0: 50% מהנפח הוא שטח צף.\n" +"ערך = 2.0 (יכול להיות גבוה יותר בהתאם ל- 'mgv7_np_floatland', בדוק תמיד\n" +"כדי להיות בטוח) יוצר שכבת צף מוצקה." #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "מתקדם" #: src/settings_translation_file.cpp msgid "" @@ -2214,60 +2228,67 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"משנה את עקומת האור על ידי החלת 'תיקון גמא' עליה.\n" +"ערכים גבוהים הופכים את רמות האור האמצעיות והתחתונות לבהירות יותר.\n" +"הערך '1.0' משאיר את עקומת האור ללא שינוי.\n" +"יש לכך השפעה משמעותית רק על אור יום ומלאכותי\n" +"זה משפיע מעט מאוד על אור הלילה הטבעי." #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "" +msgstr "תמיד לעוף ומהר" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" -msgstr "" +msgstr "גמא חסימה סביבתית" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "כמות ההודעות ששחקן עשוי לשלוח לכל 10 שניות." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "מגביר את העמקים." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" -msgstr "" +msgstr "פילטר אנטיסטרופי" #: src/settings_translation_file.cpp msgid "Announce server" -msgstr "" +msgstr "הכרזת שרת" #: src/settings_translation_file.cpp msgid "Announce to this serverlist." -msgstr "" +msgstr "הכרז לרשימת השרתים." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "הוסף שם פריט" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." -msgstr "" +msgstr "הוסף את שם הפריט לטיפ הכלים." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "" +msgstr "רעש עצי תפוחים" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "אינרציה בזרוע" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"אינרציה בזרוע, נותנת תנועה מציאותית יותר של\n" +"הזרוע כשהמצלמה נעה." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" -msgstr "" +msgstr "שאל האם להתחבר מחדש לאחר קריסה" #: src/settings_translation_file.cpp msgid "" @@ -2283,106 +2304,110 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"במרחק זה השרת יעשה אופטימיזציה לאילו בלוקים נשלחים\n" +"ללקוחות.\n" +"ערכים קטנים עשויים לשפר ביצועים רבות, על חשבון גלוי\n" +"עיבוד תקלות (חלק מהבלוקים לא יועברו מתחת למים ובמערות,\n" +"כמו גם לפעמים ביבשה).\n" +"הגדרת ערך זה יותר מ- max_block_send_distance מבטלת זאת\n" +"אופטימיזציה.\n" +"מצוין במפה (16 קוביות)." #: src/settings_translation_file.cpp msgid "Automatic forward key" -msgstr "" +msgstr "מקש התקדמות אוטומטית" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "קפיצה אוטומטית של מכשולים בקוביה יחידה." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "דווח אוטומטית לרשימת השרתים." #: src/settings_translation_file.cpp msgid "Autosave screen size" -msgstr "" +msgstr "שמור אוטומטית גודל מסך" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "מצב סקאלה אוטומטית (Autoscale)" #: src/settings_translation_file.cpp msgid "Backward key" -msgstr "" +msgstr "מקש התזוזה אחורה" #: src/settings_translation_file.cpp msgid "Base ground level" -msgstr "" +msgstr "מפלס בסיס האדמה" #: src/settings_translation_file.cpp msgid "Base terrain height." -msgstr "" +msgstr "גובה השטח." #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "בסיסי" #: src/settings_translation_file.cpp msgid "Basic privileges" -msgstr "" +msgstr "הרשאות בסיסיות" #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "" +msgstr "רעש חופים" #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "" +msgstr "סף רעש חופים" #: src/settings_translation_file.cpp msgid "Bilinear filtering" -msgstr "" +msgstr "סינון בילינארי" #: src/settings_translation_file.cpp msgid "Bind address" -msgstr "" +msgstr "הצמד כתובת" #: src/settings_translation_file.cpp msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgstr "פרמטרי רעש טמפרטורה ולחות של Biome API" #: src/settings_translation_file.cpp msgid "Biome noise" -msgstr "" +msgstr "רעש Biome" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" +msgstr "ביטים לפיקסל (עומק צבע) במצב מסך מלא." #: src/settings_translation_file.cpp msgid "Block send optimize distance" -msgstr "" +msgstr "אופטימיזצית שליחת בלוק" #: src/settings_translation_file.cpp msgid "Bold and italic font path" -msgstr "" +msgstr "נתיב גופן עבה/מוטה" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "" +msgstr "נתיב גופן עם מרווח אחיד עבה/מוטה" #: src/settings_translation_file.cpp msgid "Bold font path" -msgstr "" +msgstr "נתיב גופן עבה" #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "" +msgstr "נתיב גופן מרווח אחיד" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "" +msgstr "בנה בתוך שחקן" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" +msgstr "בילדאין" #: src/settings_translation_file.cpp msgid "" @@ -2391,138 +2416,134 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"מרחק מצלמה 'קרוב לקיר' בקוביות, בין 0 ל -0.25\n" +"עובד רק בפלטפורמות GLES. רוב המשתמשים לא יצטרכו לשנות זאת.\n" +"הגדלה יכולה להפחית חפצים על גרפי GPU חלשים יותר.\n" +"0.1 = ברירת מחדל, 0.25 = ערך טוב לטאבלטים חלשים יותר." #: src/settings_translation_file.cpp msgid "Camera smoothing" -msgstr "" +msgstr "החלקת מצלמה" #: src/settings_translation_file.cpp msgid "Camera smoothing in cinematic mode" -msgstr "" +msgstr "החלקת מצלמה ומצב קולנועי" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "" +msgstr "מקש החלפת עדכון המצלמה" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "" +msgstr "רעש מערות" #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "" +msgstr "רעש מערות #1" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "" +msgstr "רעש מערות #2" #: src/settings_translation_file.cpp msgid "Cave width" -msgstr "" +msgstr "רוחב מערות" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "רעש מערה1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "רעש מערה2" #: src/settings_translation_file.cpp msgid "Cavern limit" -msgstr "" +msgstr "גבול מנהרות" #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "" +msgstr "רעש מנהרות" #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "מחדד מערות" #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "" +msgstr "סף מערות" #: src/settings_translation_file.cpp msgid "Cavern upper limit" -msgstr "" +msgstr "גבול עליון מערות" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" +"טווח דחיפה של מרכז עקומת אור.\n" +"כאשר 0.0 הוא רמת אור מינימלית, 1.0 הוא רמת אור מקסימלית." #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "גודל גופן צ'אט" #: src/settings_translation_file.cpp msgid "Chat key" -msgstr "" +msgstr "מקש צ'אט" #: src/settings_translation_file.cpp msgid "Chat log level" -msgstr "" +msgstr "רמת לוג צ'אט" #: src/settings_translation_file.cpp msgid "Chat message count limit" -msgstr "" +msgstr "הגבלת מספר הודעות צ'אט" #: src/settings_translation_file.cpp msgid "Chat message format" -msgstr "" +msgstr "פורמט הודעות צ'אט" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" -msgstr "" +msgstr "סף בעיטה להודעות צ'אט" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "אורך הודעת צ'אט מקסימלי" #: src/settings_translation_file.cpp msgid "Chat toggle key" -msgstr "" +msgstr "מתג הפעלת צ'אט" #: src/settings_translation_file.cpp msgid "Chatcommands" -msgstr "" +msgstr "פקודות צ'אט" #: src/settings_translation_file.cpp msgid "Chunk size" -msgstr "" +msgstr "גודל חתיכה" #: src/settings_translation_file.cpp msgid "Cinematic mode" -msgstr "" +msgstr "מצב קולנועי" #: src/settings_translation_file.cpp msgid "Cinematic mode key" -msgstr "" +msgstr "מקש מצב קולנועי" #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "" +msgstr "טקסטורות נקיות ושקופות" #: src/settings_translation_file.cpp msgid "Client" -msgstr "קלינט" +msgstr "לקוח" #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "שרת ולקוח" #: src/settings_translation_file.cpp #, fuzzy @@ -2617,6 +2638,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2666,16 +2691,17 @@ msgid "Crash message" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Creative" -msgstr "ליצור" +msgstr "יצירתי" #: src/settings_translation_file.cpp msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2683,7 +2709,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2692,7 +2720,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "חבלה" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2782,12 +2810,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2858,6 +2880,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "מקש התזוזה ימינה" + #: src/settings_translation_file.cpp #, fuzzy msgid "Digging particles" @@ -2877,7 +2904,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Double tap jump for fly" -msgstr "" +msgstr "הקשה כפולה על \"קפיצה\" לתעופה" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." @@ -2920,7 +2947,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2937,7 +2964,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Enable players getting damage and dying." -msgstr "" +msgstr "לאפשר חבלה ומוות של השחקנים." #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." @@ -3007,14 +3034,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3023,18 +3042,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3051,12 +3058,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3068,7 +3069,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3307,7 +3308,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Forward key" -msgstr "" +msgstr "מקש התזוזה קדימה" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." @@ -3369,10 +3370,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3428,8 +3425,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3895,6 +3892,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3954,11 +3955,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Jump key" -msgstr "" +msgstr "מקש הקפיצה" #: src/settings_translation_file.cpp msgid "Jumping speed" -msgstr "" +msgstr "מהירות הקפיצה" #: src/settings_translation_file.cpp msgid "" @@ -3974,6 +3975,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4073,6 +4081,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4496,7 +4511,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Left key" -msgstr "" +msgstr "מקש התזוזה שמאלה" #: src/settings_translation_file.cpp msgid "" @@ -4630,11 +4645,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "תפריט ראשי" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4648,6 +4658,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4818,7 +4836,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4866,6 +4884,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -4977,7 +5002,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mipmapping" -msgstr "" +msgstr "מיפמאפינג" #: src/settings_translation_file.cpp msgid "Mod channels" @@ -5095,14 +5120,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5128,10 +5145,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5157,34 +5170,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5250,6 +5235,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5403,11 +5396,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" +msgstr "מקש התזוזה ימינה" #: src/settings_translation_file.cpp msgid "River channel depth" @@ -5562,7 +5551,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Server / Singleplayer" -msgstr "שרת" +msgstr "שרת / שחקן יחיד" #: src/settings_translation_file.cpp msgid "Server URL" @@ -5660,6 +5649,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5789,10 +5788,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5886,6 +5881,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5945,8 +5944,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5970,6 +5969,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5978,9 +5983,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6115,6 +6119,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6193,37 +6208,39 @@ msgstr "" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "" +msgstr "טווח ראיה בקוביות." #: src/settings_translation_file.cpp msgid "View range decrease key" -msgstr "" +msgstr "מקש הקטנת טווח ראיה" #: src/settings_translation_file.cpp msgid "View range increase key" -msgstr "" +msgstr "מקש הגדלת טוחח ראיה" #: src/settings_translation_file.cpp msgid "View zoom key" -msgstr "" +msgstr "מקש זום (משקפת)" #: src/settings_translation_file.cpp msgid "Viewing range" -msgstr "" +msgstr "טווח ראיה" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "מקש הפעלת ג'ויסטיק וירטואלי" #: src/settings_translation_file.cpp msgid "Volume" -msgstr "" +msgstr "ווליום" #: src/settings_translation_file.cpp msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" +"עוצמת הקול של כל הצלילים.\n" +"דורש הפעלת מערכת הקול." #: src/settings_translation_file.cpp msgid "" @@ -6240,19 +6257,19 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking speed" -msgstr "" +msgstr "מהירות הליכה" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "מהירות הליכה, טיסה וטיפוס במצב מהיר, בקוביות לשנייה." #: src/settings_translation_file.cpp msgid "Water level" -msgstr "" +msgstr "מפלס המים" #: src/settings_translation_file.cpp msgid "Water surface level of the world." -msgstr "" +msgstr "מפלס פני המים בעולם." #: src/settings_translation_file.cpp msgid "Waving Nodes" @@ -6272,15 +6289,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Waving liquids wave speed" -msgstr "" +msgstr "מהירות גל של נוזלים עם גלים" #: src/settings_translation_file.cpp msgid "Waving liquids wavelength" -msgstr "" +msgstr "אורך גל של נוזלים עם גלים" #: src/settings_translation_file.cpp msgid "Waving plants" -msgstr "" +msgstr "צמחים מתנופפים" #: src/settings_translation_file.cpp msgid "" @@ -6317,6 +6334,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6329,7 +6352,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "האם לאפשר לשחקנים להרוג אחד־את־השני." #: src/settings_translation_file.cpp msgid "" @@ -6356,7 +6379,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Width component of the initial window size." -msgstr "" +msgstr "רכיב רוחב של גודל החלון הראשוני." #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." @@ -6392,25 +6415,25 @@ msgstr "" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "" +msgstr "מצב טקסטורות מיושרות לעולם" #: src/settings_translation_file.cpp msgid "Y of flat ground." -msgstr "" +msgstr "Y לקרקע שטוחה." #: src/settings_translation_file.cpp msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." -msgstr "" +msgstr "Y של צפיפות הרים שיפוע רמת אפס. משמש להעברת הרים אנכית." #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "" +msgstr "Y של הגבול העליון של מערות גדולות." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." -msgstr "" +msgstr "מרחק Y שעליו מתרחבות מערות לגודל מלא." #: src/settings_translation_file.cpp msgid "" @@ -6441,20 +6464,57 @@ msgid "Y-level of seabed." msgstr "" #: src/settings_translation_file.cpp -msgid "cURL file download timeout" +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "(cURL) זמן להורדה נגמר" + #: src/settings_translation_file.cpp msgid "cURL parallel limit" -msgstr "" +msgstr "(cURL) מגבלה לפעולות במקביל" #: src/settings_translation_file.cpp msgid "cURL timeout" -msgstr "" +msgstr "(cURL) מגבלת זמן" + +#~ msgid "Configure" +#~ msgstr "קביעת תצורה" + +#, fuzzy +#~ msgid "Enable VBO" +#~ msgstr "אפשר בכל" + +#~ msgid "Main menu style" +#~ msgstr "סגנון התפריט הראשי" + +#~ msgid "No" +#~ msgstr "לא" #~ msgid "Ok" #~ msgstr "אישור" #, fuzzy -#~ msgid "Enable VBO" -#~ msgstr "אפשר בכל" +#~ msgid "Reset singleplayer world" +#~ msgstr "שרת" + +#~ msgid "View" +#~ msgstr "תצוגה" + +#~ msgid "Yes" +#~ msgstr "כן" diff --git a/po/hi/minetest.po b/po/hi/minetest.po index 83043b3df..2c88b00f0 100644 --- a/po/hi/minetest.po +++ b/po/hi/minetest.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-29 07:53+0000\n" -"Last-Translator: Agastya \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-10-06 14:26+0000\n" +"Last-Translator: Eyekay49 \n" "Language-Team: Hindi \n" "Language: hi\n" @@ -17,11 +17,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "वापस ज़िंदा होएं" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "आपकी मौत हो गयी" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "Okay" +msgstr "ठीक है" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -43,10 +51,6 @@ msgstr "वापस कनेक्ट करें" msgid "The server has requested a reconnect:" msgstr "सर्वर वापस कनेक्ट करना चाहता है :" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "लोड हो रहा है ..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "प्रोटोकॉल संख्या एक नहीं है। " @@ -59,10 +63,6 @@ msgstr "सर्वर केवल प्रोटोकॉल $1 लेता msgid "Server supports protocol versions between $1 and $2. " msgstr "सर्वर केवल प्रोटोकॉल $1 से $2 ही लेता है। " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "सार्वजनिक सर्वर शृंखला (सर्वर लिस्ट) को 'हां' करें और इंटरनेट कनेक्शन जांचें।" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "हम केवल प्रोटोकॉल $1 ही लेते हैं।" @@ -71,7 +71,8 @@ msgstr "हम केवल प्रोटोकॉल $1 ही लेते msgid "We support protocol versions between version $1 and $2." msgstr "हम प्रोटोकॉल $1 से $2 ही लेते हैं।" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -81,7 +82,8 @@ msgstr "हम प्रोटोकॉल $1 से $2 ही लेते ह msgid "Cancel" msgstr "रोकें" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "निर्भरताएं :" @@ -154,20 +156,60 @@ msgstr "दुनिया :" msgid "enabled" msgstr "चालू" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "लोड हो रहा है ..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "सभी पैकेज" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "की पहले से इस्तेमाल में है" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "वापस मुख्य पृष्ठ पर जाएं" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +#, fuzzy +msgid "Base Game:" +msgstr "खेल चलाएं" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "cURL के बगैर कंपाइल होने के कारण Content DB उपलब्ध नहीं है" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." msgstr "लोड हो रहा है ..." @@ -184,6 +226,16 @@ msgstr "अनेक खेल" msgid "Install" msgstr "इन्स्टाल करें" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "इन्स्टाल करें" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "अनावश्यक निर्भरताएं :" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -198,9 +250,25 @@ msgid "No results" msgstr "कुछ नहीं मिला" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "ढूंढें" +#, fuzzy +msgid "No updates" +msgstr "नया संस्करण इन्स्टाल करें" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -215,8 +283,12 @@ msgid "Update" msgstr "नया संस्करण इन्स्टाल करें" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "दृश्य" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -224,32 +296,31 @@ msgstr "\"$1\" नामक दुनिया पहले से ही है #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "अतिरिक्त भूमि" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "ऊंचाई की ठंडक" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "ऊंचाई का सूखापन" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "बायोम परिवर्तन नज़र न आना (Biome Blending)" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "बायोम" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "गुफाएं" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "सप्टक (आक्टेव)" +msgstr "गुफाएं" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -269,19 +340,19 @@ msgstr "आप किसी भी खेल को minetest.net से डा #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "कालकोठरियां" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "समतल भूमि" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "आसमान में तैरते हुए भूमि-खंड" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "फ्लोटलैंड्स (आसमान में तैरते हुए भूमि-खंड) (प्रायोगिक)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -289,11 +360,11 @@ msgstr "खेल" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Non-fractal भूमि तैयार हो : समुद्र व भूमि के नीचे" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "छोटे पहाड़" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -362,13 +433,13 @@ msgstr "बीज" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "बायोम के बीच में धीरे-धीरे परिवर्तन" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "भूमि पर बनावटें (v6 के पेड़ व जंगली घास पर कोई असर नहीं)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" @@ -396,14 +467,13 @@ msgstr "पेड़ और जंगल की घास" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "नदी की गहराईयों में अंतर" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." msgstr "" "चेतावनी : न्यूनतम विकास खेल (Minimal development test) खेल बनाने वालों के लिए है।" @@ -468,10 +538,6 @@ msgstr "वापस सेटिंग पृष्ठ पर जाएं" msgid "Browse" msgstr "ढूंढें" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "रुका हुआ" @@ -516,6 +582,10 @@ msgstr "मूल चुनें" msgid "Scale" msgstr "स्केल" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "ढूंढें" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "फाईल पाथ चुनें" @@ -631,6 +701,19 @@ msgstr "मॉड को $1 के रूप में इन्स्टाल msgid "Unable to install a modpack as a $1" msgstr "माॅडपैक को $1 के रूप में इन्स्टाल नहीं किया जा सका" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "लोड हो रहा है ..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "क्लाइंट की तरफ से स्क्रिप्ट लगाना मना है" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "सार्वजनिक सर्वर शृंखला (सर्वर लिस्ट) को 'हां' करें और इंटरनेट कनेक्शन जांचें।" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "नेट पर वस्तुएं ढूंढें" @@ -684,7 +767,14 @@ msgid "Credits" msgstr "आभार सूची" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "फाईल पाथ चुनें" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -704,14 +794,10 @@ msgid "Bind Address" msgstr "बाईंड एड्रेस" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "सेटिंग बदलें" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "असीमित संसाधन" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "हानि व मृत्यु हो सकती है" @@ -728,8 +814,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "नाम/पासवर्ड" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -739,6 +825,11 @@ msgstr "नया" msgid "No world created or selected!" msgstr "कोई दुनिया उपस्थित या चुनी गयी नहीं है !" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "नया पासवर्ड" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "खेल खेलें" @@ -747,6 +838,11 @@ msgstr "खेल खेलें" msgid "Port" msgstr "पोर्ट" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "दुनिया चुन्हें :" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "दुनिया चुन्हें :" @@ -763,23 +859,23 @@ msgstr "खेल शुरू करें" msgid "Address / Port" msgstr "ऐडरेस / पोर्ट" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "कनेक्ट करें" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "असीमित संसाधन" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "हानि व मृत्यु हो सकती है" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "पसंद हटाएं" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "पसंद" @@ -787,16 +883,16 @@ msgstr "पसंद" msgid "Join Game" msgstr "खेल में शामिल होएं" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "नाम/पासवर्ड" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "पिंग" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "खिलाडियों में मारा-पीटी की अनुमती है" @@ -824,10 +920,6 @@ msgstr "सभी सेटिंग देखें" msgid "Antialiasing:" msgstr "ऐन्टी एलियासिंग :" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "क्या आप सचमुच अपने एक-खिलाडी दुनिया रद्द करना चाहते हैं?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "स्क्रीन परिमाण स्वयं सेव हो" @@ -836,10 +928,6 @@ msgstr "स्क्रीन परिमाण स्वयं सेव ह msgid "Bilinear Filter" msgstr "द्विरेखिय फिल्टर" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "टकराव मैपिंग" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "की बदलें" @@ -852,10 +940,6 @@ msgstr "जुडे शिशे" msgid "Fancy Leaves" msgstr "रोचक पत्ते" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "मामूली नक्शे बनाएं" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "मिपमैप" @@ -864,10 +948,6 @@ msgstr "मिपमैप" msgid "Mipmap + Aniso. Filter" msgstr "मिपमैप व अनीसो. फिल्टर" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "नहीं" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "कोई फिल्टर नहीं" @@ -896,18 +976,10 @@ msgstr "अपारदर्शी पत्ते" msgid "Opaque Water" msgstr "अपारदर्शी पानी" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "पेरलेक्स ऑक्लूजन" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "कण" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "एक-खिलाडी दुनिया रीसेट करें" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "स्क्रीन :" @@ -920,6 +992,11 @@ msgstr "सेटिंग" msgid "Shaders" msgstr "छाया बनावट" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "फ्लोटलैंड्स (आसमान में तैरते हुए भूमि-खंड) (प्रायोगिक)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "छाया बनावट (अनुपलब्ध)" @@ -964,22 +1041,6 @@ msgstr "पानी में लहरें बनें" msgid "Waving Plants" msgstr "पाैधे लहराएं" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "हां" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "मॉड कॆ सेटिंग बदलें" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "मुख्य" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "एक-खिलाडी शुरू करें" - #: src/client/client.cpp msgid "Connection timed out." msgstr "कनेक्शन समय अंत|" @@ -1141,18 +1202,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "कंट्रोल्स:\n" "- %s : आगे बढ़ने के लिए\n" @@ -1265,16 +1323,6 @@ msgstr "कोहरा रुका हुआ" msgid "Fog enabled" msgstr "कोहरा चालू" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "कोहरा रुका हुआ" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "कोहरा चालू" - #: src/client/game.cpp msgid "Game info:" msgstr "खेल की जानकारी :" @@ -1295,16 +1343,6 @@ msgstr "वस्तुओं के अर्थ ..." msgid "KiB/s" msgstr "कि॰बी॰/एस॰" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "कोहरा रुका हुआ" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "हानि व मृत्यु हो सकती है" - #: src/client/game.cpp msgid "Media..." msgstr "कला एवं आवाज़ें ..." @@ -1317,34 +1355,6 @@ msgstr "एम॰ आई॰ बी॰/ एस॰" msgid "Minimap currently disabled by game or mod" msgstr "खेल या मॉड़ के वजह से छोटा नक्शा मना है" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "छोटा नक्शा गायब" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "छोटा नक्शा रेडार मोड, 1 गुना ज़ूम" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "छोटा नक्शा रेडर मोड, दोगुना जूम" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "छोटा नक्शा रेडार मोड, 4 गुना ज़ूम" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "छोटा नक्शा जमीन मोड, 1 गुना ज़ूम" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "छोटा नक्शा जमीन मोड, दोगुना जूम" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "छोटा नक्शा जमीन मोड, 4 गुना जून" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "तरल चाल रुका हुआ" @@ -1389,10 +1399,6 @@ msgstr "बाहर का सर्वर" msgid "Resolving address..." msgstr "एड्रेस समझा जा रहा है ..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "वापस ज़िंदा होएं" - #: src/client/game.cpp msgid "Shutting down..." msgstr "शट डाउन हो रहा है ..." @@ -1445,10 +1451,6 @@ msgstr "वॉल्यूम को बदलकर %d%%" msgid "Wireframe shown" msgstr "डिब्बे रेखांकित" -#: src/client/game.cpp -msgid "You died" -msgstr "आपकी मौत हो गयी" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "खेल या मॉड़ के वजह से इस समय ज़ूम मना है" @@ -1465,16 +1467,6 @@ msgstr "बातें दिखाई नहीं देंगी" msgid "Chat shown" msgstr "बातें दिखाई देंगी" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "बातें दिखाई नहीं देंगी" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "बातें दिखाई देंगी" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "हे॰अ॰डि॰ दिखाई नहीं देंगी" @@ -1755,9 +1747,28 @@ msgstr "X बटन २" msgid "Zoom" msgstr "ज़ूम" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "छोटा नक्शा गायब" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "छोटा नक्शा रेडार मोड, 1 गुना ज़ूम" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "छोटा नक्शा जमीन मोड, 1 गुना ज़ूम" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "छोटा नक्शा जमीन मोड, 1 गुना ज़ूम" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "पासवर्ड अलग अलग हैं!" +msgstr "पासवर्ड अलग-अलग हैं!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" @@ -1798,26 +1809,6 @@ msgstr "कूदने के लिए बटन दबाना अनाव msgid "Backward" msgstr "पीछे जाएं" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "कैमरा बदलना" @@ -1910,29 +1901,10 @@ msgstr "संभल के चलना" msgid "Special" msgstr "स्पेशल" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "स्पेशल" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "तरल चाल" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "हे. अ. डि" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "उड़ना" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "बातें दिखना" @@ -2042,12 +2014,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2154,6 +2120,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2387,10 +2357,6 @@ msgstr "खिलाडी पर डिब्बे डालना" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2461,16 +2427,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2622,6 +2578,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2679,7 +2639,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2687,7 +2649,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2786,12 +2750,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2862,6 +2820,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2923,7 +2885,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3010,14 +2972,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3026,18 +2980,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3054,12 +2996,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3071,7 +3007,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3374,10 +3310,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3432,8 +3364,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3907,6 +3839,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3986,6 +3922,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4085,6 +4028,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4642,10 +4592,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4659,6 +4605,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4823,7 +4777,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4871,6 +4825,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5100,14 +5061,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5133,10 +5086,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5162,34 +5111,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5255,6 +5176,15 @@ msgstr "" msgid "Pitch move mode" msgstr "पिच चलन" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "राइट क्लिक के दोहराने का समय" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5412,10 +5342,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "राइट क्लिक के दोहराने का समय" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5667,6 +5593,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5798,10 +5734,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5895,6 +5827,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5954,8 +5890,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5979,6 +5915,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5987,9 +5929,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6124,6 +6065,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6326,6 +6278,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6448,6 +6406,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6460,11 +6436,62 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "ठीक है" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "क्या आप सचमुच अपने एक-खिलाडी दुनिया रद्द करना चाहते हैं?" + +#~ msgid "Back" +#~ msgstr "पीछे" + +#~ msgid "Bump Mapping" +#~ msgstr "टकराव मैपिंग" + +#~ msgid "Config mods" +#~ msgstr "मॉड कॆ सेटिंग बदलें" + +#~ msgid "Configure" +#~ msgstr "सेटिंग बदलें" #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "$1 का डाऊनलोड व इन्स्टाल चल रहा है, कृपया ठहरें ..." -#~ msgid "Back" -#~ msgstr "पीछे" +#~ msgid "Generate Normal Maps" +#~ msgstr "मामूली नक्शे बनाएं" + +#~ msgid "Main" +#~ msgstr "मुख्य" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "छोटा नक्शा रेडर मोड, दोगुना जूम" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "छोटा नक्शा रेडार मोड, 4 गुना ज़ूम" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "छोटा नक्शा जमीन मोड, दोगुना जूम" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "छोटा नक्शा जमीन मोड, 4 गुना जून" + +#~ msgid "Name/Password" +#~ msgstr "नाम/पासवर्ड" + +#~ msgid "No" +#~ msgstr "नहीं" + +#~ msgid "Ok" +#~ msgstr "ठीक है" + +#~ msgid "Parallax Occlusion" +#~ msgstr "पेरलेक्स ऑक्लूजन" + +#~ msgid "Reset singleplayer world" +#~ msgstr "एक-खिलाडी दुनिया रीसेट करें" + +#~ msgid "Start Singleplayer" +#~ msgstr "एक-खिलाडी शुरू करें" + +#~ msgid "View" +#~ msgstr "दृश्य" + +#~ msgid "Yes" +#~ msgstr "हां" diff --git a/po/hu/minetest.po b/po/hu/minetest.po index be96cf523..090d92454 100644 --- a/po/hu/minetest.po +++ b/po/hu/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Hungarian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-22 17:56+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" "Last-Translator: Ács Zoltán \n" "Language-Team: Hungarian \n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Újraéledés" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Meghaltál" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -38,10 +46,6 @@ msgstr "Újrakapcsolódás" msgid "The server has requested a reconnect:" msgstr "A kiszolgáló újrakapcsolódást kért:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Betöltés…" - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokollverzió-eltérés. " @@ -54,12 +58,6 @@ msgstr "A szerver által megkövetelt protokollverzió: $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "A kiszolgáló $1 és $2 protokollverzió közötti verziókat támogat. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Próbáld újra engedélyezni a nyilvános kiszolgálólistát, és ellenőrizd az " -"internetkapcsolatot." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Csak $1 protokollverziót támogjuk." @@ -68,7 +66,8 @@ msgstr "Csak $1 protokollverziót támogjuk." msgid "We support protocol versions between version $1 and $2." msgstr "$1 és $2 közötti protokollverziókat támogatjuk." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "$1 és $2 közötti protokollverziókat támogatjuk." msgid "Cancel" msgstr "Mégse" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Függőségek:" @@ -151,17 +151,60 @@ msgstr "Világ:" msgid "enabled" msgstr "engedélyezve" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 letöltése,\n" +"$2 sorba állítva" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Letöltés…" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Minden csomag" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "A gomb már használatban van" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Vissza a főmenübe" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Játék létrehozása" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "A ContentDB nem elérhető, ha a Minetest cURL nélkül lett lefordítva" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -180,6 +223,16 @@ msgstr "Játékok" msgid "Install" msgstr "Telepítés" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Telepítés" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Választható függőségek:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -194,9 +247,26 @@ msgid "No results" msgstr "Nincs találat" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Keresés" +#, fuzzy +msgid "No updates" +msgstr "Frissítés" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "Hang némítása" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Felülírás" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Sorbaállítva" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -211,8 +281,12 @@ msgid "Update" msgstr "Frissítés" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Megtekintés" +msgid "Update All [$1]" +msgstr "Összes frissítése [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "További információ megnyitása a böngészőben" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -223,9 +297,8 @@ msgid "Additional terrain" msgstr "További terep" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -#, fuzzy msgid "Altitude chill" -msgstr "Hőmérsékletcsökkenés a magassággal" +msgstr "Hőmérséklet-csökkenés a magassággal" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" @@ -264,13 +337,12 @@ msgid "Download one from minetest.net" msgstr "Letöltés a minetest.net címről" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Tömlöc zaj" +msgstr "Tömlöcök" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Lapos terep" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" @@ -285,8 +357,9 @@ msgid "Game" msgstr "Játék" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Nem-fraktál terep generálása: Óceánok és földalatti rész" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" @@ -364,14 +437,17 @@ msgid "Smooth transition between biomes" msgstr "Sima átmenet a biomok között" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"A terepen megjelenő struktúrák (nincs hatása a fákra és a dzsungelfűre, " +"amelyet a v6 készített)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "A terepen megjelenő struktúrák, általában fák és növények" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -388,7 +464,7 @@ msgstr "Mérsékelt, Sivatag, Dzsungel, Tundra, Tajga" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Terrain surface erosion" -msgstr "Terep alapzaj" +msgstr "Terepfelület erózió" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" @@ -468,11 +544,6 @@ msgstr "< Vissza a Beállításokra" msgid "Browse" msgstr "Tallózás" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Kliens" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Letiltva" @@ -517,6 +588,10 @@ msgstr "Alapértelmezés visszaállítása" msgid "Scale" msgstr "Mérték" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Keresés" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Útvonal kiválasztása" @@ -633,6 +708,21 @@ msgstr "$1 mod telepítése meghiúsult" msgid "Unable to install a modpack as a $1" msgstr "$1 modcsomag telepítése meghiúsult" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Betöltés…" + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Kliens oldali szkriptek letiltva" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Próbáld újra engedélyezni a nyilvános kiszolgálólistát, és ellenőrizd az " +"internetkapcsolatot." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Online tartalmak böngészése" @@ -686,8 +776,18 @@ msgid "Credits" msgstr "Köszönetnyilvánítás" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Útvonal kiválasztása" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Megnyitja a fájlkezelőben / intézőben azt a könyvtárat, amely a felhasználó " +"világait,\n" +"játékait, modjait, és textúráit tartalmazza." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -706,14 +806,10 @@ msgid "Bind Address" msgstr "Cím csatolása" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Beállítás" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kreatív mód" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Sérülés engedélyezése" @@ -730,8 +826,8 @@ msgid "Install games from ContentDB" msgstr "Játékok telepítése ContentDB-ről" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Név/jelszó" +msgid "Name" +msgstr "Név" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -741,6 +837,11 @@ msgstr "Új" msgid "No world created or selected!" msgstr "Nincs létrehozott vagy kiválasztott világ!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Új jelszó" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Játék indítása" @@ -749,6 +850,11 @@ msgstr "Játék indítása" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Világ kiválasztása:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Világ kiválasztása:" @@ -765,23 +871,23 @@ msgstr "Indítás" msgid "Address / Port" msgstr "Cím / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Kapcsolódás" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreatív mód" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Sérülés engedélyezve" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Kedvenc törlése" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Kedvenc" @@ -789,16 +895,16 @@ msgstr "Kedvenc" msgid "Join Game" msgstr "Csatlakozás játékhoz" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Név / Jelszó" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP engedélyezve" @@ -826,10 +932,6 @@ msgstr "Minden beállítás" msgid "Antialiasing:" msgstr "Élsimítás:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Biztosan visszaállítod az egyjátékos világod?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Képernyőméret automatikus mentése" @@ -838,10 +940,6 @@ msgstr "Képernyőméret automatikus mentése" msgid "Bilinear Filter" msgstr "Bilineáris szűrés" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump mapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Gombok megváltoztatása" @@ -854,10 +952,6 @@ msgstr "Csatlakozó üveg" msgid "Fancy Leaves" msgstr "Szép levelek" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Normál felületek generálása" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap effekt" @@ -866,10 +960,6 @@ msgstr "Mipmap effekt" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Anizotróp szűrés" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nem" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Nincs szűrés" @@ -898,18 +988,10 @@ msgstr "Átlátszatlan levelek" msgid "Opaque Water" msgstr "Átlátszatlan víz" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax Occlusion ( domború textúra )" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Részecskék" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Egyjátékos világ visszaállítása" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Képernyő:" @@ -922,6 +1004,11 @@ msgstr "Beállítások" msgid "Shaders" msgstr "Árnyalók" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Lebegő földek" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Árnyalók (nem elérhető)" @@ -966,22 +1053,6 @@ msgstr "Hullámzó folyadékok" msgid "Waving Plants" msgstr "Hullámzó növények" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Igen" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Modok beállítása" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Fő" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Egyjátékos mód indítása" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Csatlakozási idő lejárt." @@ -1143,18 +1214,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Irányítás:\n" "- %s: mozgás előre\n" @@ -1267,16 +1335,6 @@ msgstr "Köd letiltva" msgid "Fog enabled" msgstr "köd engedélyezve" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Köd letiltva" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "köd engedélyezve" - #: src/client/game.cpp msgid "Game info:" msgstr "Játékinformációk:" @@ -1297,16 +1355,6 @@ msgstr "Tárgyak meghatározása…" msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Köd letiltva" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Sérülés engedélyezve" - #: src/client/game.cpp msgid "Media..." msgstr "Tartalom..." @@ -1319,34 +1367,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "A kistérkép letiltva (szerver, vagy mod által)" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Kistérkép letiltva" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Kistérkép radar módban x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Kistérkép radar módban x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Kistérkép radar módban x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Kistérkép terület módban x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Kistérkép terület módban x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Kistérkép terület módban x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Noclip mód letiltva" @@ -1391,10 +1411,6 @@ msgstr "Távoli kiszolgáló" msgid "Resolving address..." msgstr "Cím feloldása…" -#: src/client/game.cpp -msgid "Respawn" -msgstr "Újraéledés" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Leállítás…" @@ -1447,10 +1463,6 @@ msgstr "Hangerő átállítva: %d%%" msgid "Wireframe shown" msgstr "Drótváz megjelenítése" -#: src/client/game.cpp -msgid "You died" -msgstr "Meghaltál" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Nagyítás letiltva (szerver, vagy mod által)" @@ -1467,16 +1479,6 @@ msgstr "Csevegés elrejtve" msgid "Chat shown" msgstr "Csevegés megjelenítése" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Csevegés elrejtve" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Csevegés megjelenítése" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD elrejtése" @@ -1757,6 +1759,25 @@ msgstr "X Gomb 2" msgid "Zoom" msgstr "Nagyítás" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Kistérkép letiltva" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Kistérkép radar módban x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Kistérkép terület módban x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Minimum textúra méret" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "A jelszavak nem egyeznek!" @@ -1801,26 +1822,6 @@ msgstr "Automatikus ugrás" msgid "Backward" msgstr "Hátra" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Nézet váltása" @@ -1915,30 +1916,10 @@ msgstr "Lopakodás" msgid "Special" msgstr "Különleges" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Különleges" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Váltás „mozi” módba" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Váltás „mozi” módba" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "HUD váltása" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Repülés váltása" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Csevegésnapló váltása" @@ -2032,7 +2013,6 @@ msgstr "" "gombot ha kint van a fő körből." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" @@ -2043,13 +2023,6 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"A fraktál (X,Y,Z) eltolása a világ középpontjától, 'scale' egységekben.\n" -"Egy megfelelő, alacsony magasságú keletkezési pont (0, 0) közelébe " -"mozgatására használható.\n" -"Az alapértelmezés megfelelő Mandelbrot-halmazokhoz, a szerkesztés Julia-" -"halmazok esetén szükséges.\n" -"Körülbelül -2 és 2 közötti érték. Szorozd be 'scale'-lel, hogy kockákban " -"kapd meg az eltolást." #: src/settings_translation_file.cpp msgid "" @@ -2062,14 +2035,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax occlusion with slope information (gyorsabb).\n" -"1 = relief mapping (lassabb, pontosabb)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "2D zaj, amely a hegyvonulatok az alakját/méretét szabályozza." @@ -2109,9 +2074,8 @@ msgid "3D mode" msgstr "3D mód" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Parallax Occlusion hatás ereje" +msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2194,9 +2158,12 @@ msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "A világgeneráló szálak számának abszolút határa" +msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2309,17 +2276,16 @@ msgid "Apple trees noise" msgstr "Almafa zaj" #: src/settings_translation_file.cpp -#, fuzzy msgid "Arm inertia" msgstr "Kar tehetetlenség" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" "A kar tehetetlensége reálisabb mozgást biztosít\n" +"a karnak, amikor a kamera mozog.\n" "a karnak, amikor a kamera mozog." #: src/settings_translation_file.cpp @@ -2366,7 +2332,6 @@ msgid "Autosave screen size" msgstr "Képernyőméret automatikus mentése" #: src/settings_translation_file.cpp -#, fuzzy msgid "Autoscaling mode" msgstr "Automatikus méretezés mód" @@ -2431,9 +2396,8 @@ msgid "Bold and italic monospace font path" msgstr "Félkövér dőlt monospace betűtípus útvonal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold font path" -msgstr "Betűtípus helye" +msgstr "Félkövér betűtípus útvonala" #: src/settings_translation_file.cpp msgid "Bold monospace font path" @@ -2447,10 +2411,6 @@ msgstr "Építés játékos helyére" msgid "Builtin" msgstr "Beépített" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bumpmappolás" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2521,22 +2481,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Megváltoztatja a főmenü felhasználói felületét:\n" -"- Teljes: Több egyjátékos világ, játékválasztás, textúracsomag-választó " -"stb.\n" -"- Egyszerű: Egy egyjátékos világ, nincs játék- vagy textúracsomag-választó.\n" -"Szükséges lehet a kisebb képernyőkhöz." - #: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" @@ -2699,6 +2643,10 @@ msgstr "Konzol magasság" msgid "ContentDB Flag Blacklist" msgstr "ContentDB zászló feketelista" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "ContentDB URL" @@ -2760,7 +2708,10 @@ msgid "Crosshair alpha" msgstr "Célkereszt átlátszóság" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Célkereszt átlátszóság (0 és 255 között)." #: src/settings_translation_file.cpp @@ -2768,8 +2719,10 @@ msgid "Crosshair color" msgstr "Célkereszt színe" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Célkereszt színe (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2878,14 +2831,6 @@ msgstr "A nagy léptékű folyómeder-struktúrát határozza meg." msgid "Defines location and terrain of optional hills and lakes." msgstr "Az opcionális hegyek és tavak helyzetét és terepét határozza meg." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"A textúrák mintavételezési lépésközét adja meg.\n" -"Nagyobb érték simább normal map-et eredményez." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Meghatározza az alap talajszintet." @@ -2964,6 +2909,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Blokkanimáció deszinkronizálása" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Jobb gomb" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Ásási részecskék" @@ -3029,7 +2979,8 @@ msgid "Enable console window" msgstr "Konzolablak engedélyezése" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Kreatív mód engedélyezése az újonnan létrehozott térképekhez." #: src/settings_translation_file.cpp @@ -3141,14 +3092,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Az eszköztárelemek animációjának engedélyezése." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "Enables caching of facedir rotated meshes." @@ -3158,20 +3101,6 @@ msgstr "Engedélyezi az elforgatott rácsvonalak gyorsítótárazását." msgid "Enables minimap." msgstr "Engedélyezi a kistérképet." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Parallax occlusion mapping bekapcsolása.\n" -"A shaderek engedélyezve kell hogy legyenek." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3189,14 +3118,6 @@ msgstr "Játékmotor profiler adatok kiírási időköze" msgid "Entity methods" msgstr "Egység módszerek" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Kísérleti opció, látható rések jelenhetnek meg a blokkok között\n" -"ha nagyobbra van állítva, mint 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3208,8 +3129,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS a szünet menüben" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Maximum FPS a játék szüneteltetésekor." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3375,11 +3297,11 @@ msgstr "Köd váltása gomb" #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "" +msgstr "Félkövér betűtípus alapértelmezetten" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "" +msgstr "Dőlt betűtípus alapértelmezetten" #: src/settings_translation_file.cpp msgid "Font shadow" @@ -3532,10 +3454,6 @@ msgstr "Felhasználói felület méretarány szűrő" msgid "GUI scaling filter txr2img" msgstr "Felhasználói felület méretarány szűrő txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Normálfelületek generálása" - #: src/settings_translation_file.cpp #, fuzzy msgid "Global callbacks" @@ -3601,8 +3519,8 @@ msgstr "HUD váltás gomb" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Az elavult lua API hívások kezelése:\n" @@ -4121,6 +4039,11 @@ msgstr "Joystick ID" msgid "Joystick button repetition interval" msgstr "Joystick gomb ismétlési időköz" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Joystick típus" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Joystick frustum érzékenység" @@ -4224,6 +4147,17 @@ msgstr "" "Lásd: http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Gomb az ugráshoz.\n" +"Lásd: http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4366,6 +4300,17 @@ msgstr "" "Lásd: http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Gomb az ugráshoz.\n" +"Lásd: http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5102,10 +5047,6 @@ msgstr "A lebegő földek alsó Y határa." msgid "Main menu script" msgstr "Főmenü szkript" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Főmenü stílusa" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5124,6 +5065,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Az összes folyadékot átlátszatlanná teszi" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Térkép mappája" @@ -5324,7 +5273,8 @@ msgid "Maximum FPS" msgstr "Maximum FPS (képkocka/mp)" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Maximum FPS a játék szüneteltetésekor." #: src/settings_translation_file.cpp @@ -5379,6 +5329,13 @@ msgstr "" "Maximum blokkok száma, amik sorban állhatnak egy fájlból való betöltésre.\n" "Hagyd üresen, hogy automatikusan legyen kiválasztva a megfelelő mennyiség." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5624,14 +5581,6 @@ msgstr "" msgid "Noises" msgstr "Zajok" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5657,10 +5606,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Online tartalomtár" @@ -5686,34 +5631,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax Occlusion effekt" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Parallax Occlusion módja" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Parallax Occlusion mértéke" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5779,6 +5696,16 @@ msgstr "Pályamozgás mód gomb" msgid "Pitch move mode" msgstr "Pályamozgás mód" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Repülés gomb" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Jobb kattintás ismétlési időköz" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5947,10 +5874,6 @@ msgstr "" msgid "Right key" msgstr "Jobb gomb" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Jobb kattintás ismétlési időköz" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Folyómeder mélysége" @@ -6246,6 +6169,20 @@ msgstr "Hibakereső információ megjelenítése" msgid "Show entity selection boxes" msgstr "Entitások kijelölő dobozának megjelenítése" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Nyelv beállítása. Hagyd üresen a rendszer nyelvének használatához.\n" +"A változtatás után a játék újraindítása szükséges." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Félkövér betűtípus alapértelmezetten" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Leállítási üzenet" @@ -6380,10 +6317,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "Generált normálfelületek erőssége." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Generált normálfelületek erőssége." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6478,6 +6411,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "Az URL a tartalomtárhoz" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "A használni kívánt joystick azonosítója" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6540,8 +6478,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6565,6 +6503,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "" @@ -6577,9 +6521,8 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "Ennyi másodperc szükséges az ismételt jobb kattintáshoz a jobb egérgomb " "nyomva tartásakor." @@ -6729,6 +6672,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Trilineáris szűrés a textúrák méretezéséhez." @@ -6940,6 +6894,12 @@ msgstr "" "Használatban vannak-e freetype betűtípusok. Szükséges a beépített freetype " "támogatás." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7071,6 +7031,24 @@ msgstr "Alacsony terep és tengerfenék Y szintje." msgid "Y-level of seabed." msgstr "Tengerfenék Y szintje." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL fájlletöltés időkorlát" @@ -7083,17 +7061,12 @@ msgstr "cURL párhuzamossági korlát" msgid "cURL timeout" msgstr "cURL időkorlát" -#~ msgid "Ok" -#~ msgstr "Ok" - -#~ msgid "Back" -#~ msgstr "Vissza" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 letöltése és telepítése, kérlek várj…" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Képernyőmentések mappája." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion with slope information (gyorsabb).\n" +#~ "1 = relief mapping (lassabb, pontosabb)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7104,6 +7077,40 @@ msgstr "cURL időkorlát" #~ "fényerő.\n" #~ "Ez a beállítás csak a kliensre érvényes, a szerver nem veszi figyelembe." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Biztosan visszaállítod az egyjátékos világod?" + +#~ msgid "Back" +#~ msgstr "Vissza" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmappolás" + +#, fuzzy +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Megváltoztatja a főmenü felhasználói felületét:\n" +#~ "- Teljes: Több egyjátékos világ, játékválasztás, textúracsomag-választó " +#~ "stb.\n" +#~ "- Egyszerű: Egy egyjátékos világ, nincs játék- vagy textúracsomag-" +#~ "választó.\n" +#~ "Szükséges lehet a kisebb képernyőkhöz." + +#~ msgid "Config mods" +#~ msgstr "Modok beállítása" + +#~ msgid "Configure" +#~ msgstr "Beállítás" + #, fuzzy #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" @@ -7117,6 +7124,9 @@ msgstr "cURL időkorlát" #~ "A járatok szélességét határozza meg, alacsonyabb érték szélesebb " #~ "járatokat hoz létre." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Célkereszt színe (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "a sötétség élessége" @@ -7127,12 +7137,39 @@ msgstr "cURL időkorlát" #~ "A lebegő szigetek sima területeit határozza meg.\n" #~ "Lapos szigetek ott fordulnak elő, ahol a zaj értéke pozitív." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "A textúrák mintavételezési lépésközét adja meg.\n" +#~ "Nagyobb érték simább normal map-et eredményez." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 letöltése és telepítése, kérlek várj…" + #~ msgid "Enable VBO" #~ msgstr "VBO engedélyez" #~ msgid "Enables filmic tone mapping" #~ msgstr "filmes tónus effektek bekapcsolása" +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Parallax occlusion mapping bekapcsolása.\n" +#~ "A shaderek engedélyezve kell hogy legyenek." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Kísérleti opció, látható rések jelenhetnek meg a blokkok között\n" +#~ "ha nagyobbra van állítva, mint 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS a szünet menüben" + #, fuzzy #~ msgid "Floatland base height noise" #~ msgstr "A lebegő hegyek alapmagassága" @@ -7147,6 +7184,12 @@ msgstr "cURL időkorlát" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Normál felületek generálása" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normálfelületek generálása" + #~ msgid "IPv6 support." #~ msgstr "IPv6 támogatás." @@ -7158,21 +7201,81 @@ msgstr "cURL időkorlát" #~ msgid "Lightness sharpness" #~ msgstr "Fényélesség" +#~ msgid "Main" +#~ msgstr "Fő" + +#~ msgid "Main menu style" +#~ msgstr "Főmenü stílusa" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Kistérkép radar módban x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Kistérkép radar módban x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Kistérkép terület módban x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Kistérkép terület módban x4" + +#~ msgid "Name/Password" +#~ msgstr "Név/jelszó" + +#~ msgid "No" +#~ msgstr "Nem" + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion ( domború textúra )" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax Occlusion effekt" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax Occlusion módja" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax Occlusion mértéke" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "A TrueType betűtípus (ttf) vagy bitmap útvonala." +#~ msgid "Path to save screenshots at." +#~ msgstr "Képernyőmentések mappája." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Egyjátékos világ visszaállítása" + +#~ msgid "Select Package File:" +#~ msgstr "csomag fájl kiválasztása:" + #, fuzzy #~ msgid "Shadow limit" #~ msgstr "Térképblokk korlát" +#~ msgid "Start Singleplayer" +#~ msgstr "Egyjátékos mód indítása" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Generált normálfelületek erőssége." + #~ msgid "This font will be used for certain languages." #~ msgstr "Ezt a betűtípust bizonyos nyelvek használják." -#~ msgid "Waving water" -#~ msgstr "Hullámzó víz" +#~ msgid "Toggle Cinematic" +#~ msgstr "Váltás „mozi” módba" + +#~ msgid "View" +#~ msgstr "Megtekintés" #~ msgid "Waving Water" #~ msgstr "Hullámzó víz" -#~ msgid "Select Package File:" -#~ msgstr "csomag fájl kiválasztása:" +#~ msgid "Waving water" +#~ msgstr "Hullámzó víz" + +#~ msgid "Yes" +#~ msgstr "Igen" diff --git a/po/id/minetest.po b/po/id/minetest.po index 26c1b7ff5..5f62541b5 100644 --- a/po/id/minetest.po +++ b/po/id/minetest.po @@ -2,10 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Indonesian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-25 16:39+0000\n" -"Last-Translator: Muhammad Rifqi Priyo Susanto " -"\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"Last-Translator: Reza Almanda \n" "Language-Team: Indonesian \n" "Language: id\n" @@ -13,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Bangkit kembali" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Anda mati" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -39,10 +46,6 @@ msgstr "Sambung ulang" msgid "The server has requested a reconnect:" msgstr "Server ini meminta untuk menyambung ulang:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Memuat..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Versi protokol tidak sesuai. " @@ -55,11 +58,6 @@ msgstr "Server mengharuskan protokol versi $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Server mendukung protokol antara versi $1 dan versi $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Coba nyalakan ulang daftar server publik dan periksa sambungan internet Anda." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Kami hanya mendukung protokol versi $1." @@ -68,7 +66,8 @@ msgstr "Kami hanya mendukung protokol versi $1." msgid "We support protocol versions between version $1 and $2." msgstr "Kami mendukung protokol antara versi $1 dan versi $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Kami mendukung protokol antara versi $1 dan versi $2." msgid "Cancel" msgstr "Batal" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dependensi:" @@ -151,14 +151,54 @@ msgstr "Dunia:" msgid "enabled" msgstr "dinyalakan" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" telah ada. Apakah Anda mau menimpanya?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "Dependensi $1 dan $2 akan dipasang." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 oleh $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 sedang diunduh,\n" +"$2 dalam antrean" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 mengunduh..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 membutuhkan dependensi yang tidak bisa ditemukan." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 akan dipasang dan $2 dependensi akan dilewati." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Semua paket" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Telah terpasang" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Kembali ke menu utama" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Permainan Dasar:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB tidak tersedia ketika Minetest tidak dikompilasi dengan cURL" @@ -180,6 +220,14 @@ msgstr "Permainan" msgid "Install" msgstr "Pasang" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Pasang $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Pasang dependensi yang belum ada" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -194,9 +242,24 @@ msgid "No results" msgstr "Tiada hasil" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Cari" +msgid "No updates" +msgstr "Tiada pembaruan" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Tidak ditemukan" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Timpa" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Harap pastikan bahwa permainan dasar telah sesuai." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Diantrekan" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -211,8 +274,12 @@ msgid "Update" msgstr "Perbarui" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Tinjau" +msgid "Update All [$1]" +msgstr "Perbarui Semua [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Lihat informasi lebih lanjut di peramban web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -276,7 +343,7 @@ msgstr "Tanah mengambang di langit" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "Floatland (uji coba)" +msgstr "Floatland (tahap percobaan)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -465,11 +532,6 @@ msgstr "< Halaman pengaturan" msgid "Browse" msgstr "Jelajahi" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Klien" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Dimatikan" @@ -514,6 +576,10 @@ msgstr "Atur ke bawaan" msgid "Scale" msgstr "Skala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Cari" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Pilih direktori" @@ -631,6 +697,20 @@ msgstr "Gagal memasang mod sebagai $1" msgid "Unable to install a modpack as a $1" msgstr "Gagal memasang paket mod sebagai $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Memuat..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Skrip sisi klien dimatikan" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Coba nyalakan ulang daftar server publik dan periksa sambungan internet Anda." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Jelajahi konten daring" @@ -684,8 +764,16 @@ msgid "Credits" msgstr "Penghargaan" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Pilih direktori" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Membuka direktori yang berisi dunia, permainan, mod, dan paket tekstur\n" +"dari pengguna dalam pengelola/penjelajah berkas." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -704,14 +792,10 @@ msgid "Bind Address" msgstr "Alamat Sambungan" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurasi" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Mode Kreatif" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Nyalakan Kerusakan" @@ -728,8 +812,8 @@ msgid "Install games from ContentDB" msgstr "Pasang permainan dari ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nama/Kata Sandi" +msgid "Name" +msgstr "Nama" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -739,6 +823,10 @@ msgstr "Baru" msgid "No world created or selected!" msgstr "Tiada dunia yang dibuat atau dipilih!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Kata sandi" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Mainkan Permainan" @@ -747,6 +835,10 @@ msgstr "Mainkan Permainan" msgid "Port" msgstr "Porta" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Pilih Mod" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Pilih Dunia:" @@ -763,23 +855,23 @@ msgstr "Mulai Permainan" msgid "Address / Port" msgstr "Alamat/Porta" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Sambung" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Mode kreatif" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Kerusakan dinyalakan" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Hapus favorit" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favorit" @@ -787,16 +879,16 @@ msgstr "Favorit" msgid "Join Game" msgstr "Gabung Permainan" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nama/Kata Sandi" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP dinyalakan" @@ -824,10 +916,6 @@ msgstr "Semua Pengaturan" msgid "Antialiasing:" msgstr "Antialiasing:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Apakah Anda yakin ingin mengatur ulang dunia Anda?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Simpan Ukuran Layar" @@ -836,10 +924,6 @@ msgstr "Simpan Ukuran Layar" msgid "Bilinear Filter" msgstr "Filter Bilinear" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump Mapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Ubah Tombol" @@ -852,10 +936,6 @@ msgstr "Kaca Tersambung" msgid "Fancy Leaves" msgstr "Daun Megah" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Buat Normal Maps" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -864,10 +944,6 @@ msgstr "Mipmap" msgid "Mipmap + Aniso. Filter" msgstr "Filter Aniso. + Mipmap" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Tidak" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Tanpa Filter" @@ -896,18 +972,10 @@ msgstr "Daun Opak" msgid "Opaque Water" msgstr "Air Opak" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax Occlusion" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partikel" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Atur ulang dunia pemain tunggal" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Layar:" @@ -920,6 +988,10 @@ msgstr "Pengaturan" msgid "Shaders" msgstr "Shader" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Shader (tahap percobaan)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shader (tidak tersedia)" @@ -942,7 +1014,7 @@ msgstr "Untuk menggunakan shader, pengandar OpenGL harus digunakan." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "Tone Mapping" +msgstr "Pemetaan Nada" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" @@ -964,22 +1036,6 @@ msgstr "Air Berombak" msgid "Waving Plants" msgstr "Tanaman Berayun" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ya" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Konfigurasi mod" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Beranda" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Mulai Pemain Tunggal" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Sambungan kehabisan waktu." @@ -1134,25 +1190,22 @@ msgid "Continue" msgstr "Lanjutkan" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Kontrol:\n" "- %s: maju\n" @@ -1160,12 +1213,12 @@ msgstr "" "- %s: geser kiri\n" "- %s: geser kanan\n" "- %s: lompat/panjat\n" +"- %s: gali/pukul\n" +"- %s: taruh/pakai\n" "- %s: menyelinap/turun\n" "- %s: jatuhkan barang\n" "- %s: inventaris\n" "- Tetikus: belok/lihat\n" -"- Klik kiri: gali/pukul\n" -"- Klik kanan: taruh/pakai\n" "- Roda tetikus: pilih barang\n" "- %s: obrolan\n" @@ -1265,16 +1318,6 @@ msgstr "Kabut dimatikan" msgid "Fog enabled" msgstr "Kabut dinyalakan" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Kabut dimatikan" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Kabut dinyalakan" - #: src/client/game.cpp msgid "Game info:" msgstr "Informasi permainan:" @@ -1295,16 +1338,6 @@ msgstr "Definisi barang..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Kabut dimatikan" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Kerusakan dinyalakan" - #: src/client/game.cpp msgid "Media..." msgstr "Media..." @@ -1317,34 +1350,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Peta mini sedang dilarang oleh permainan atau mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Peta mini disembunyikan" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Peta mini mode radar, perbesaran 1x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Peta mini mode radar, perbesaran 2x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Peta mini mode radar, perbesaran 4x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Peta mini mode permukaan, perbesaran 1x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Peta mini mode permukaan, perbesaran 2x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Peta mini mode permukaan, perbesaran 4x" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Mode tembus blok dimatikan" @@ -1389,10 +1394,6 @@ msgstr "Server jarak jauh" msgid "Resolving address..." msgstr "Mencari alamat..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Bangkit kembali" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Mematikan..." @@ -1445,10 +1446,6 @@ msgstr "Volume diubah ke %d%%" msgid "Wireframe shown" msgstr "Rangka kawat ditampilkan" -#: src/client/game.cpp -msgid "You died" -msgstr "Anda mati" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Zum sedang dilarang oleh permainan atau mod" @@ -1465,16 +1462,6 @@ msgstr "Obrolan disembunyikan" msgid "Chat shown" msgstr "Obrolan ditampilkan" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Obrolan disembunyikan" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Obrolan ditampilkan" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD disembunyikan" @@ -1755,6 +1742,24 @@ msgstr "Tombol X 2" msgid "Zoom" msgstr "Zum" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Peta mini disembunyikan" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Peta mini mode radar, perbesaran %dx" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Peta mini mode permukaan, perbesaran %dx" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Peta mini mode tekstur" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Kata sandi tidak cocok!" @@ -1798,26 +1803,6 @@ msgstr "Lompat otomatis" msgid "Backward" msgstr "Mundur" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Ubah kamera" @@ -1912,30 +1897,10 @@ msgstr "Menyelinap" msgid "Special" msgstr "Spesial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Spesial" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Mode sinema" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Mode sinema" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Alih HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Terbang" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Alih log obrolan" @@ -2065,14 +2030,6 @@ msgstr "" "Nilai bawaannya untuk bentuk pipih vertikal yang cocok\n" "untuk pulau, atur ketiga angka menjadi sama untuk bentuk mentah." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax occlusion dengan informasi kemiringan (cepat).\n" -"1 = relief mapping (pelan, lebih akurat)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Noise 2D yang mengatur bentuk/ukuran punggung gunung." @@ -2199,6 +2156,10 @@ msgstr "" msgid "ABM interval" msgstr "Selang waktu ABM" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "Anggaran waktu ABM" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "Batas mutlak antrean kemunculan blok" @@ -2260,7 +2221,7 @@ msgid "" msgstr "" "Sesuaikan kepadatan lapisan floatland.\n" "Tambahkan nilai untuk menambah kepadatan. Dapat positif atau negatif.\n" -"Nilai = 0.0: 50% volume adalah floatland.\n" +"Nilai = 0.0: 50% o volume adalah floatland.\n" "Nilai = 2.0 (dapat lebih tinggi tergantung 'mgv7_np_floatland', selalu uji\n" "terlebih dahulu) membuat lapisan floatland padat (penuh)." @@ -2457,10 +2418,6 @@ msgstr "Bangun di dalam pemain" msgid "Builtin" msgstr "Terpasang bawaan" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bumpmapping" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2537,20 +2494,6 @@ msgstr "" "Pertengahan rentang penguatan kurva cahaya.\n" "Nilai 0.0 adalah minimum, 1.0 adalah maksimum." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Mengubah antarmuka menu utama:\n" -"- Full: Banyak dunia pemain tunggal, pilih permainan, paket tekstur, dll.\n" -"- Simple: Satu dunia pemain tunggal, tanpa pilihan permainan atau paket\n" -"tekstur. Cocok untuk layar kecil." - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Ukuran fon obrolan" @@ -2672,8 +2615,8 @@ msgid "" "allow them to upload and download data to/from the internet." msgstr "" "Daftar yang dipisahkan dengan koma dari mod yang dibolehkan untuk\n" -"mengakses HTTP API, membolehkan mereka untuk mengunggah dan\n" -"mengunduh data ke/dari internet." +"mengakses HTTP API, membolehkan mereka untuk mengunggah dan mengunduh data " +"ke/dari internet." #: src/settings_translation_file.cpp msgid "" @@ -2681,7 +2624,7 @@ msgid "" "functions even when mod security is on (via request_insecure_environment())." msgstr "" "Daftar yang dengan dipisahkan koma dari mod terpercaya yang diperbolehkan\n" -"untuk mengakses fungsi yang tidak aman bahkan ketika mod security aktif\n" +"untuk mengakses fungsi yang tidak aman bahkan ketika mod security aktif " "(melalui request_insecure_environment())." #: src/settings_translation_file.cpp @@ -2716,6 +2659,10 @@ msgstr "Tombol konsol" msgid "ContentDB Flag Blacklist" msgstr "Daftar Hitam Flag ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Jumlah Maks Pengunduhan ContentDB Bersamaan" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "URL ContentDB" @@ -2782,16 +2729,24 @@ msgid "Crosshair alpha" msgstr "Keburaman crosshair" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Keburaman crosshair (keopakan, dari 0 sampai 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Keburaman crosshair (keopakan, dari 0 sampai 255).\n" +"Juga mengatur warna crosshair objek" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Warna crosshair" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Warna crosshair: (merah,hijau,biru) atau (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Warna crosshair (R,G,B),\n" +"sekaligus mengatur warna crosshair objek" #: src/settings_translation_file.cpp msgid "DPI" @@ -2894,14 +2849,6 @@ msgstr "Menetapkan struktur kanal sungai skala besar." msgid "Defines location and terrain of optional hills and lakes." msgstr "Menetapkan lokasi dan medan dari danau dan bukit pilihan." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Menentukan langkah penyampelan tekstur.\n" -"Nilai lebih tinggi menghasilkan peta lebih halus." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Mengatur ketinggian dasar tanah." @@ -2980,6 +2927,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Putuskan sinkronasi animasi blok" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Tombol gali" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Partikel menggali" @@ -3045,7 +2996,8 @@ msgid "Enable console window" msgstr "Gunakan jendela konsol" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Gunakan mode kreatif pada peta baru." #: src/settings_translation_file.cpp @@ -3154,17 +3106,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Jalankan animasi barang inventaris." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Gunakan bumpmapping untuk tekstur. Normalmap harus disediakan oleh paket\n" -"tekstur atau harus dihasilkan otomatis.\n" -"Membutuhkan penggunaan shader." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Gunakan tembolok untuk facedir mesh yang diputar." @@ -3173,22 +3114,6 @@ msgstr "Gunakan tembolok untuk facedir mesh yang diputar." msgid "Enables minimap." msgstr "Gunakan peta mini." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Buat normalmap secara langsung (efek Emboss).\n" -"Membutuhkan penggunaan bumpmapping." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Gunakan pemetaan parallax occlusion.\n" -"Membutuhkan penggunaan shader." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3209,14 +3134,6 @@ msgstr "Jarak pencetakan data profiling mesin" msgid "Entity methods" msgstr "Metode benda (entity)" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Masih tahap percobaan, dapat menyebabkan terlihatnya spasi antarblok\n" -"saat diatur dengan angka yang lebih besar dari 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3234,8 +3151,8 @@ msgstr "" "yang rata dan cocok untuk lapisan floatland padat (penuh)." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS (bingkai per detik) pada menu jeda" +msgid "FPS when unfocused or paused" +msgstr "FPS (bingkai per detik) saat dijeda atau tidak difokuskan" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3555,10 +3472,6 @@ msgstr "Filter skala GUI" msgid "GUI scaling filter txr2img" msgstr "Filter txr2img skala GUI" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Buat normalmap" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Callback global" @@ -3570,9 +3483,9 @@ msgid "" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" "Atribut pembuatan peta global.\n" -"Dalam pembuat peta v6, flag \"decorations\" mengatur semua hiasan kecuali\n" -"pohon dan rumput rimba. Dalam pembuat peta lain, flag ini mengatur\n" -"semua dekorasi." +"Dalam pembuat peta v6, flag \"decorations\" mengatur semua hiasan, kecuali\n" +"pohon dan rumput rimba. Dalam pembuat peta lain, flag ini mengatur semua " +"dekorasi." #: src/settings_translation_file.cpp msgid "" @@ -3621,12 +3534,12 @@ msgstr "Tombol beralih HUD" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Penanganan panggilan Lua API usang:\n" -"- legacy: (mencoba untuk) menyerupai aturan lawas (bawaan untuk rilis).\n" +"- none: jangan catat panggilan usang\n" "- log: menyerupai dan mencatat asal-usul panggilan usang (bawaan untuk " "awakutu).\n" "- error: batalkan penggunaan panggilan usang (disarankan untuk pengembang " @@ -3909,9 +3822,8 @@ msgid "" "If FPS would go higher than this, limit it by sleeping\n" "to not waste CPU power for no benefit." msgstr "" -"Jika FPS (bingkai per detik) lebih tinggi dari ini, akan\n" -"dibatasi dengan jeda agar tidak menghabiskan tenaga\n" -"CPU dengan percuma." +"Jika FPS (bingkai per detik) lebih tinggi daripada ini, akan dibatasi\n" +"dengan jeda agar tidak membuang tenaga CPU dengan percuma." #: src/settings_translation_file.cpp msgid "" @@ -3997,8 +3909,8 @@ msgid "" msgstr "" "Jika dinyalakan, Anda dapat menaruh blok pada posisi (kaki + ketinggian " "mata)\n" -"tempat Anda berdiri.\n" -"Ini berguna saat bekerja dengan kotak nodus (nodebox) dalam daerah sempit." +"tempat Anda berdiri. Ini berguna saat bekerja dengan kotak nodus (nodebox) " +"dalam daerah sempit." #: src/settings_translation_file.cpp msgid "" @@ -4073,8 +3985,7 @@ msgid "" "Instrument global callback functions on registration.\n" "(anything you pass to a minetest.register_*() function)" msgstr "" -"Melengkapi fungsi panggil balik (callback) global saat didaftarkan,\n" -"dengan perkakas.\n" +"Melengkapi fungsi panggil balik (callback) global saat didaftarkan.\n" "(semua yang dimasukkan ke fungsi minetest.register_*())" #: src/settings_translation_file.cpp @@ -4149,8 +4060,7 @@ msgstr "" "Perulangan fungsi rekursif.\n" "Menaikkan nilai ini menaikkan detail, tetapi juga menambah\n" "beban pemrosesan.\n" -"Saat perulangan = 20, pembuat peta ini memiliki beban yang\n" -"mirip dengan pembuat peta v7." +"Saat perulangan = 20, beban pembuat peta ini mirip dengan v7." #: src/settings_translation_file.cpp msgid "Joystick ID" @@ -4160,6 +4070,10 @@ msgstr "ID Joystick" msgid "Joystick button repetition interval" msgstr "Jarak penekanan tombol joystick terus-menerus" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Zona mati joystick" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Kepekaan ruang gerak joystick" @@ -4262,6 +4176,16 @@ msgstr "" "Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tombol untuk gali.\n" +"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4404,6 +4328,16 @@ msgstr "" "Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tombol untuk taruh.\n" +"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5152,10 +5086,6 @@ msgstr "Batas bawah Y floatland." msgid "Main menu script" msgstr "Skrip menu utama" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Gaya menu utama" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5171,6 +5101,14 @@ msgstr "Buat DirectX bekerja dengan LuaJIT. Matikan jika bermasalah." msgid "Makes all liquids opaque" msgstr "Buat semua cairan buram" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Tingkat Kompresi Peta untuk Penyimpanan Diska" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Tingkat Kompresi Peta untuk Transfer Jaringan" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Direktori peta" @@ -5354,8 +5292,10 @@ msgid "Maximum FPS" msgstr "FPS (bingkai per detik) maksimum" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "FPS (bingkai per detik) maksimum saat permainan dijeda." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"FPS (bingkai per detik) maksimum saat permainan dijeda atau saat jendela " +"tidak difokuskan." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5411,6 +5351,16 @@ msgstr "" "Jumlah maksimum blok yang akan diantrekan untuk dimuat dari berkas.\n" "Batasan ini diatur per pemain." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Jumlah maksimum pengunduhan bersamaan. Pengunduhan yang melebihi batas ini " +"akan\n" +"diantrekan. Nilai ini harus lebih rendah daripada curl_parallel_limit." + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Jumlah maksimum blok peta yang dipaksa muat." @@ -5663,14 +5613,6 @@ msgstr "Jarak NodeTimer" msgid "Noises" msgstr "Noise" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Sampling normalmap" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Kekuatan normalmap" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Jumlah utas kemunculan" @@ -5711,10 +5653,6 @@ msgstr "" "Ini adalah pemilihan antara transaksi sqlite dan\n" "penggunaan memori (4096=100MB, kasarannya)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Jumlah pengulangan parallax occlusion." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Gudang konten daring" @@ -5739,37 +5677,10 @@ msgid "" "formspec is\n" "open." msgstr "" -"Buka menu jeda saat jendela hilang fokus. Tidak menjeda jika formspec sedang " +"Buka menu jeda saat jendela hilang fokus. Tidak menjeda jika formspec " +"sedang \n" "dibuka." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Bias keseluruhan dari efek parallax occlusion, biasanya skala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Skala keseluruhan dari efek parallax occlusion." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Pergeseran parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Pengulangan parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Mode parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Skala parallax occlusion" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5850,6 +5761,14 @@ msgstr "Tombol gerak sesuai pandang" msgid "Pitch move mode" msgstr "Mode gerak sesuai pandang" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Tombol taruh" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Jeda waktu taruh berulang" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5918,7 +5837,7 @@ msgstr "Profiling" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Alamat pendengar Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -5927,6 +5846,10 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Alamat pendengar Prometheus.\n" +"Jika Minetest dikompilasi dengan pilihan ENABLE_PROMETHEUS dinyalakan,\n" +"ini menyalakan pendengar metrik untuk Prometheus pada alamat itu.\n" +"Metrik dapat diambil pada http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." @@ -5967,7 +5890,7 @@ msgstr "Media jarak jauh" #: src/settings_translation_file.cpp msgid "Remote port" -msgstr "Porta server jarak jauh" +msgstr "Port utk Kendali Jarak Jauh" #: src/settings_translation_file.cpp msgid "" @@ -6030,10 +5953,6 @@ msgstr "Noise ukuran punggung gunung" msgid "Right key" msgstr "Tombol kanan" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Jarak klik kanan berulang" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Kedalaman kanal sungai" @@ -6103,12 +6022,11 @@ msgid "" "edge pixels when images are scaled by non-integer sizes." msgstr "" "Perbesar/perkecil GUI sesuai pengguna.\n" -"Menggunakan filter nearest-neighbor-anti-alias untuk\n" -"perbesar/perkecil GUI.\n" +"Menggunakan filter nearest-neighbor-anti-alias untuk perbesar/perkecil GUI.\n" "Ini akan menghaluskan beberapa tepi kasar dan\n" "mencampurkan piksel-piksel saat diperkecil dengan\n" -"mengaburkan beberapa piksel tepi saat diperkecil dengan\n" -"skala bukan bilangan bulat." +"mengaburkan beberapa piksel tepi saat diperkecil dengan skala bukan bilangan " +"bulat." #: src/settings_translation_file.cpp msgid "Screen height" @@ -6330,6 +6248,19 @@ msgstr "Tampilkan info awakutu" msgid "Show entity selection boxes" msgstr "Tampilkan kotak pilihan benda" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Tampilkan kotak pilihan entitas\n" +"Dibutuhkan mulai ulang setelah mengganti ini." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Fon tebal bawaan" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Pesan saat server dimatikan" @@ -6348,7 +6279,8 @@ msgstr "" "PERINGATAN! Tidak ada untungnya dan berbahaya jika menaikkan\n" "nilai ini di atas 5.\n" "Mengecilkan nilai ini akan meningkatkan kekerapan gua dan dungeon.\n" -"Mengubah nilai ini untuk kegunaan khusus, membiarkannya disarankan." +"Mengubah nilai ini untuk kegunaan khusus, membiarkannya \n" +"disarankan." #: src/settings_translation_file.cpp msgid "" @@ -6482,10 +6414,6 @@ msgstr "Noise persebaran teras gunung" msgid "Strength of 3D mode parallax." msgstr "Kekuatan mode paralaks 3D." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Kekuatan normalmap yang dibuat." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6517,6 +6445,16 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Tingkat permukaan peletakan air pada lapisan floatland padat.\n" +"Air tidak ditaruh secara bawaan dan akan ditaruh jika nilai ini diatur ke\n" +"atas 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (mulai dari\n" +"penirusan atas).\n" +"***PERINGATAN, POTENSI BAHAYA TERHADAP DUNIA DAN KINERJA SERVER***\n" +"Ketika penaruhan air dinyalakan, floatland wajib diatur dan diuji agar\n" +"berupa lapisan padat dengan mengatur 'mgv7_floatland_density' ke 2.0\n" +"(atau nilai wajib lainnya sesuai 'mgv7_np_floatland') untuk menghindari\n" +"aliran air ekstrem yang membebani server dan menghindari banjir\n" +"bandang di permukaan dunia bawah." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6594,6 +6532,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "URL dari gudang konten" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "Zona mati joystick yang digunakan" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6650,7 +6592,6 @@ msgstr "" "server Anda." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6660,8 +6601,8 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"Jari-jari ruang di sekitar pemain yang menjadi blok aktif, dalam blok peta\n" -"(16 nodus).\n" +"Jari-jari volume blok di sekitar pemain yang menjadi blok aktif, dalam\n" +"blok peta (16 nodus).\n" "Dalam blok aktif, objek dimuat dan ABM berjalan.\n" "Ini juga jangkauan minimum pengelolaan objek aktif (makhluk).\n" "Ini harus diatur bersama dengan active_object_range." @@ -6672,14 +6613,14 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Penggambar untuk Irrlicht.\n" "Mulai ulang dibutuhkan setelah mengganti ini.\n" "Catatan: Pada Android, gunakan OGLES1 jika tidak yakin! Apl mungkin gagal\n" -"berjalan pada lainnya. Pada platform lain, OpenGL disarankan yang menjadi\n" -"satu-satunya pengandar yang mendukung shader untuk saat ini." +"berjalan untuk pilihan lainnya. Pada platform lain, OpenGL disarankan.\n" +"Shader didukung oleh OpenGL (khusus desktop) dan OGLES2 (tahap percobaan)" #: src/settings_translation_file.cpp msgid "" @@ -6712,6 +6653,14 @@ msgstr "" "pemrosesan sampai usaha dilakukan untuk mengurangi ukurannya dengan\n" "membuang antrean lama. Nilai 0 mematikan fungsi ini." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"Anggaran waktu yang dibolehkan untuk ABM dalam menjalankan\n" +"tiap langkah (dalam pecahan dari jarak ABM)" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6722,11 +6671,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" -"Jeda dalam detik antarklik kanan berulang saat menekan tombol kanan tetikus." +"Jeda dalam detik antar-penaruhan berulang saat menekan \n" +"tombol taruh." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6878,11 +6827,28 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" -"Gunakan mip mapping untuk penyekalaan tekstur. Dapat sedikit\n" -"meningkatkan kinerja, terutama saat menggunakan paket tekstur\n" -"beresolusi tinggi.\n" +"Pakai mip mapping untuk penyekalaan tekstur. Bisa sedikit menaikkan\n" +"kinerja, terutama pada saat memakai paket tekstur beresolusi tinggi.\n" "Pengecilan dengan tepat gamma tidak didukung." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Pakai antialias multisampel (MSAA) untuk memperhalus tepian blok.\n" +"Algoritme ini memperhalus tampilan 3D sambil menjaga ketajaman gambar,\n" +"tetapi tidak memengaruhi tekstur bagian dalam (yang terlihat khususnya\n" +"dengan tekstur transparan).\n" +"Muncul spasi tampak di antara nodus ketika shader dimatikan.\n" +"Jika diatur 0, MSAA dimatikan.\n" +"Dibutuhkan mulai ulang setelah penggantian pengaturan ini." + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Gunakan pemfilteran trilinear saat mengubah ukuran tekstur." @@ -7069,10 +7035,9 @@ msgid "" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" -"Saat gui_scaling_filter diatur ke true, semua gambar GUI harus\n" -"difilter dalam perangkat lunak, tetapi beberapa gambar dibuat\n" -"langsung ke perangkat keras (misal. render ke tekstur untuk nodus\n" -"dalam inventaris)." +"Saat gui_scaling_filter diatur ke true, semua gambar GUI harus difilter\n" +"dalam perangkat lunak, tetapi beberapa gambar dibuat langsung ke\n" +"perangkat keras (misal. render ke tekstur untuk nodus dalam inventaris)." #: src/settings_translation_file.cpp msgid "" @@ -7081,11 +7046,10 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" -"Saat gui_scaling_filter_txr2img dibolehkan, salin gambar-gambar\n" -"tersebut dari perangkat keras ke perangkat lunak untuk perbesar/\n" -"perkecil. Saat tidak dibolehkan, kembali ke cara lama, untuk\n" -"pengandar video yang tidak mendukung pengunduhan tekstur dari\n" -"perangkat keras." +"Saat gui_scaling_filter_txr2img dibolehkan, salin gambar-gambar tersebut\n" +"dari perangkat keras ke perangkat lunak untuk perbesar/perkecil. Saat tidak\n" +"dibolehkan, kembali ke cara lama, untuk pengandar video yang tidak\n" +"mendukung pengunduhan tekstur dari perangkat keras." #: src/settings_translation_file.cpp msgid "" @@ -7119,6 +7083,12 @@ msgstr "" "dikompilasi.\n" "Jika dimatikan, fon bitmap dan vektor XML akan dipakai." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "Apakah animasi tekstur nodus harus tidak disinkronkan tiap blok peta." @@ -7223,8 +7193,8 @@ msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." msgstr "" -"Titik acuan kemiringan kepadatan gunung pada sumbu Y.\n" -"Digunakan untuk menggeser gunung secara vertikal." +"Titik acuan kemiringan kepadatan gunung pada sumbu Y. Digunakan untuk " +"menggeser gunung secara vertikal." #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." @@ -7241,6 +7211,10 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Jarak Y penirusan floatland dari padat sampai kosong.\n" +"Penirusan dimulai dari jarak ini sampai batas Y.\n" +"Untuk lapisan floatland padat, nilai ini mengatur tinggi bukit/gunung.\n" +"Nilai ini harus kurang dari atau sama dengan setengah jarak antarbatas Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7262,6 +7236,34 @@ msgstr "Ketinggian Y dari medan yang lebih rendah dan dasar laut." msgid "Y-level of seabed." msgstr "Ketinggian Y dari dasar laut." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Tingkat kompresi ZLib saat pengiriman blok peta kepada klien.\n" +"-1 - tingkat kompresi Zlib bawaan\n" +"0 - tanpa kompresi, tercepat\n" +"9 - kompresi terbaik, terlambat\n" +"(tingkat 1-3 pakai metode \"cepat\" Zlib, 4-9 pakai metode normal)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Tingkat kompresi ZLib saat penyimpanan blok peta kepada klien.\n" +"-1 - tingkat kompresi Zlib bawaan\n" +"0 - tanpa kompresi, tercepat\n" +"9 - kompresi terbaik, terlambat\n" +"(tingkat 1-3 pakai metode \"cepat\" Zlib, 4-9 pakai metode normal)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Batas waktu cURL mengunduh berkas" @@ -7274,23 +7276,12 @@ msgstr "Batas cURL paralel" msgid "cURL timeout" msgstr "Waktu habis untuk cURL" -#~ msgid "Ok" -#~ msgstr "Oke" - -#~ msgid "Back" -#~ msgstr "Kembali" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Mengunduh dan memasang $1, mohon tunggu..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Batas antrean kemunculan (emerge queue) pada diska" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Kekuatan parallax occlusion" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Jalur untuk menyimpan tangkapan layar." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion dengan informasi kemiringan (cepat).\n" +#~ "1 = relief mapping (pelan, lebih akurat)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7305,9 +7296,42 @@ msgstr "Waktu habis untuk cURL" #~ msgstr "" #~ "Ubah cara gunung floatland meramping di atas dan di bawah titik tengah." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Apakah Anda yakin ingin mengatur ulang dunia Anda?" + +#~ msgid "Back" +#~ msgstr "Kembali" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Titik tengah penguatan tengah kurva cahaya." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Mengubah antarmuka menu utama:\n" +#~ "- Full: Banyak dunia pemain tunggal, pilih permainan, paket tekstur, " +#~ "dll.\n" +#~ "- Simple: Satu dunia pemain tunggal, tanpa pilihan permainan atau " +#~ "paket\n" +#~ "tekstur. Cocok untuk layar kecil." + +#~ msgid "Config mods" +#~ msgstr "Konfigurasi mod" + +#~ msgid "Configure" +#~ msgstr "Konfigurasi" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7319,6 +7343,9 @@ msgstr "Waktu habis untuk cURL" #~ msgstr "" #~ "Mengatur lebar terowongan, nilai lebih kecil terowongan semakin lebar." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Warna crosshair: (merah,hijau,biru) atau (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Kecuraman kegelapan" @@ -7329,12 +7356,56 @@ msgstr "Waktu habis untuk cURL" #~ "Mengatur daerah dari medan halus floatland.\n" #~ "Floatland halus muncul saat noise > 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Menentukan langkah penyampelan tekstur.\n" +#~ "Nilai lebih tinggi menghasilkan peta lebih halus." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Mengunduh dan memasang $1, mohon tunggu..." + #~ msgid "Enable VBO" #~ msgstr "Gunakan VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Gunakan bumpmapping untuk tekstur. Normalmap harus disediakan oleh paket\n" +#~ "tekstur atau harus dihasilkan otomatis.\n" +#~ "Membutuhkan penggunaan shader." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Gunakan pemetaan suasana (tone mapping) filmis" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Buat normalmap secara langsung (efek Emboss).\n" +#~ "Membutuhkan penggunaan bumpmapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Gunakan pemetaan parallax occlusion.\n" +#~ "Membutuhkan penggunaan shader." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Masih tahap percobaan, dapat menyebabkan terlihatnya spasi antarblok\n" +#~ "saat diatur dengan angka yang lebih besar dari 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS (bingkai per detik) pada menu jeda" + #~ msgid "Floatland base height noise" #~ msgstr "Noise ketinggian dasar floatland" @@ -7347,6 +7418,12 @@ msgstr "Waktu habis untuk cURL" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Buat Normal Maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Buat normalmap" + #~ msgid "IPv6 support." #~ msgstr "Dukungan IPv6." @@ -7356,18 +7433,105 @@ msgstr "Waktu habis untuk cURL" #~ msgid "Lightness sharpness" #~ msgstr "Kecuraman keterangan" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Batas antrean kemunculan (emerge queue) pada diska" + +#~ msgid "Main" +#~ msgstr "Beranda" + +#~ msgid "Main menu style" +#~ msgstr "Gaya menu utama" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Peta mini mode radar, perbesaran 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Peta mini mode radar, perbesaran 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Peta mini mode permukaan, perbesaran 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Peta mini mode permukaan, perbesaran 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nama/Kata Sandi" + +#~ msgid "No" +#~ msgstr "Tidak" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Sampling normalmap" + +#~ msgid "Normalmaps strength" +#~ msgstr "Kekuatan normalmap" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Jumlah pengulangan parallax occlusion." + +#~ msgid "Ok" +#~ msgstr "Oke" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Bias keseluruhan dari efek parallax occlusion, biasanya skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Skala keseluruhan dari efek parallax occlusion." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Pergeseran parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Pengulangan parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mode parallax occlusion" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala parallax occlusion" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Kekuatan parallax occlusion" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Jalur ke TrueTypeFont atau bitmap." +#~ msgid "Path to save screenshots at." +#~ msgstr "Jalur untuk menyimpan tangkapan layar." + +#~ msgid "Projecting dungeons" +#~ msgstr "Dungeon yang menonjol" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Atur ulang dunia pemain tunggal" + +#~ msgid "Select Package File:" +#~ msgstr "Pilih berkas paket:" + #~ msgid "Shadow limit" #~ msgstr "Batas bayangan" +#~ msgid "Start Singleplayer" +#~ msgstr "Mulai Pemain Tunggal" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Kekuatan normalmap yang dibuat." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Kekuatan penguatan tengah kurva cahaya." #~ msgid "This font will be used for certain languages." #~ msgstr "Fon ini akan digunakan pada bahasa tertentu." +#~ msgid "Toggle Cinematic" +#~ msgstr "Mode sinema" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7379,26 +7543,26 @@ msgstr "Waktu habis untuk cURL" #~ "Variasi dari ketinggian bukit dan kedalaman danau pada medan halus " #~ "floatland." +#~ msgid "View" +#~ msgstr "Tinjau" + +#~ msgid "Waving Water" +#~ msgstr "Air Berombak" + #~ msgid "Waving water" #~ msgstr "Air berombak" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Apakah dungeon terkadang muncul dari medan." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Batas atas Y untuk lava dalam gua besar." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "Ketinggian Y dari titik tengah floatland dan permukaan danau." #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Ketinggian Y tempat bayangan floatland diperpanjang." -#~ msgid "Projecting dungeons" -#~ msgstr "Dungeon yang menonjol" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Apakah dungeon terkadang muncul dari medan." - -#~ msgid "Waving Water" -#~ msgstr "Air Berombak" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Batas atas Y untuk lava dalam gua besar." - -#~ msgid "Select Package File:" -#~ msgstr "Pilih berkas paket:" +#~ msgid "Yes" +#~ msgstr "Ya" diff --git a/po/it/minetest.po b/po/it/minetest.po index 13de365a2..897859222 100644 --- a/po/it/minetest.po +++ b/po/it/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Italian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-26 10:41+0000\n" -"Last-Translator: Hamlet \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Jacques Lagrange \n" "Language-Team: Italian \n" "Language: it\n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Rinasci" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Sei morto" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "Riconnettiti" msgid "The server has requested a reconnect:" msgstr "Il server ha richiesto una riconnessione:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Caricamento..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "La versione del protocollo non coincide. " @@ -54,12 +58,6 @@ msgstr "Il server impone la versione $1 del protocollo. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Il server supporta versioni di protocollo comprese tra la $1 e la $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Prova a riabilitare l'elenco dei server pubblici e controlla la tua " -"connessione internet." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Supportiamo solo la versione $1 del protocollo." @@ -68,7 +66,8 @@ msgstr "Supportiamo solo la versione $1 del protocollo." msgid "We support protocol versions between version $1 and $2." msgstr "Supportiamo solo le versioni di protocollo comprese tra la $1 e la $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Supportiamo solo le versioni di protocollo comprese tra la $1 e la $2." msgid "Cancel" msgstr "Annulla" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dipendenze:" @@ -88,7 +88,7 @@ msgstr "Disattiva tutto" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Disattiva la raccolta di mod" +msgstr "Disattiva il pacchetto mod" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -96,7 +96,7 @@ msgstr "Attiva tutto" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Attiva la raccolta di mod" +msgstr "Attiva il pacchetto mod" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -128,7 +128,7 @@ msgstr "Nessuna dipendenza" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "Non è stata fornita nessuna descrizione per la raccolta di mod." +msgstr "Non è stata fornita alcuna descrizione per il pacchetto mod." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" @@ -151,14 +151,54 @@ msgstr "Mondo:" msgid "enabled" msgstr "abilitato" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" già esiste. Vuoi sovrascriverlo?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "Le dipendenze $1 e $2 verranno installate." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 di $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 in scaricamento,\n" +"$2 in coda" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "Scaricando $1..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "Le dipendeze richieste per $1 non sono state trovate." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 verrà installato, e $2 dipendenze verranno ignorate." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Tutti i pacchetti" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Già installato" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Torna al Menu Principale" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Gioco base:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB non è disponibile quando Minetest viene compilato senza cuRL" @@ -180,6 +220,14 @@ msgstr "Giochi" msgid "Install" msgstr "Installa" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Installa $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Installa le dipendenze mancanti" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -194,13 +242,28 @@ msgid "No results" msgstr "Nessun risultato" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Cerca" +msgid "No updates" +msgstr "Nessun aggiornamento" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Non trovato" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Sovrascrivi" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Per favore, controlla che il gioco base sia corretto." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "In coda" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "Raccolte di immagini" +msgstr "Pacchetti texture" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -211,8 +274,12 @@ msgid "Update" msgstr "Aggiorna" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Vedi" +msgid "Update All [$1]" +msgstr "Aggiornat tutti [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Visualizza ulteriori informazioni in un browser web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -440,15 +507,15 @@ msgstr "Accetta" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Rinomina la raccolta di mod:" +msgstr "Rinomina il pacchetto mod:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" -"Questa raccolta di mod esplicita un nome in modpack.conf che sovrascriverà " -"ogni modifica qui fatta." +"Questo pacchetto mod esplicita un nome in modpack.conf che sovrascriverà " +"ogni modifica qui effettuata." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -466,11 +533,6 @@ msgstr "< Torna a Impostazioni" msgid "Browse" msgstr "Scorri" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Client" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Disabilitato" @@ -515,6 +577,10 @@ msgstr "Ripristina" msgid "Scale" msgstr "Scala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Cerca" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Scegli la cartella" @@ -601,8 +667,8 @@ msgstr "Installa mod: Impossibile trovare il vero nome del mod per: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Installa mod: Impossibile trovare un nome cartella corretto per la raccolta " -"di mod $1" +"Installa mod: Impossibile trovare un nome cartella corretto per il pacchetto " +"mod $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" @@ -614,11 +680,11 @@ msgstr "Install: File: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "Impossibile trovare un mod o una raccolta di mod validi" +msgstr "Impossibile trovare un mod o un pacchetto mod validi" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" -msgstr "Impossibile installare un $1 come una raccolta di immagini" +msgstr "Impossibile installare un $1 come un pacchetto texture" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" @@ -630,11 +696,26 @@ msgstr "Impossibile installare un mod come un $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" -msgstr "Impossibile installare una raccolta di mod come un $1" +msgstr "Impossibile installare un pacchetto mod come un $1" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Caricamento..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Scripting su lato client disabilitato" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Prova a riabilitare l'elenco dei server pubblici e controlla la tua " +"connessione internet." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Mostra contenuti in linea" +msgstr "Mostra contenuti online" #: builtin/mainmenu/tab_content.lua msgid "Content" @@ -642,7 +723,7 @@ msgstr "Contenuti" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Disattiva raccolta immagini" +msgstr "Disattiva pacchetto texture" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -670,7 +751,7 @@ msgstr "Disinstalla la raccolta" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "Usa la raccolta di immagini" +msgstr "Usa pacchetto texture" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" @@ -685,8 +766,16 @@ msgid "Credits" msgstr "Riconoscimenti" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Apri la cartella dei dati utente" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Apre la cartella che contiene mondi, giochi, mod e pacchetti \n" +"texture forniti dall'utente in un gestore di file / explorer." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -705,14 +794,10 @@ msgid "Bind Address" msgstr "Legare indirizzo" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Configura" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Modalità creativa" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Abilita il ferimento" @@ -726,11 +811,11 @@ msgstr "Ospita un server" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Installa giochi dal ContentDB" +msgstr "Installa giochi da ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nome/Password" +msgid "Name" +msgstr "Nome" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -740,6 +825,10 @@ msgstr "Nuovo" msgid "No world created or selected!" msgstr "Nessun mondo creato o selezionato!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Password" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Avvia il gioco" @@ -748,6 +837,10 @@ msgstr "Avvia il gioco" msgid "Port" msgstr "Porta" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Seleziona mod" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Seleziona mondo:" @@ -758,46 +851,46 @@ msgstr "Porta del server" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Comincia gioco" +msgstr "Gioca" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" msgstr "Indirizzo / Porta" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Connettiti" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Modalità creativa" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Danno fisico abilitato" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Elimina preferito" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Preferito" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Entra in un gioco" +msgstr "Gioca online" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nome / Password" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP abilitato" @@ -825,10 +918,6 @@ msgstr "Tutte le impostazioni" msgid "Antialiasing:" msgstr "Antialiasing:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Sei sicuro di azzerare il tuo mondo locale?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Ricorda dim. finestra" @@ -837,10 +926,6 @@ msgstr "Ricorda dim. finestra" msgid "Bilinear Filter" msgstr "Filtro bilineare" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump Mapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Cambia i tasti" @@ -853,10 +938,6 @@ msgstr "Vetro contiguo" msgid "Fancy Leaves" msgstr "Foglie di qualità" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Genera Normal Map" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -865,10 +946,6 @@ msgstr "Mipmap" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Filtro aniso." -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "No" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Nessun filtro" @@ -897,18 +974,10 @@ msgstr "Foglie opache" msgid "Opaque Water" msgstr "Acqua opaca" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax Occlusion" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Particelle" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Azzera mondo locale" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Schermo:" @@ -921,6 +990,10 @@ msgstr "Impostazioni" msgid "Shaders" msgstr "Shaders" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Shader (sperimentali)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shaders (non disponibili)" @@ -965,22 +1038,6 @@ msgstr "Liquidi ondeggianti" msgid "Waving Plants" msgstr "Piante ondeggianti" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Sì" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Config mod" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Principale" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Avvia in locale" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Connessione scaduta." @@ -999,7 +1056,7 @@ msgstr "Inizializzazione nodi..." #: src/client/client.cpp msgid "Loading textures..." -msgstr "Caricamento immagini..." +msgstr "Caricando le texture..." #: src/client/client.cpp msgid "Rebuilding shaders..." @@ -1135,38 +1192,35 @@ msgid "Continue" msgstr "Continua" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Controlli:\n" "- %s: avanza\n" "- %s: arretra\n" "- %s: sinistra\n" "- %s: destra\n" -"- %s: salta/arrampica\n" -"- %s: striscia/scendi\n" -"- %s: butta oggetto\n" +"- %s: salta/arrampicati\n" +"- %s: scava/colpisci\n" +"- %s: piazza/usa\n" +"- %s: furtivo/scendi\n" +"- %s: lascia oggetto\n" "- %s: inventario\n" "- Mouse: gira/guarda\n" -"- Mouse sx: scava/colpisci\n" -"- Mouse dx: piazza/usa\n" "- Rotella mouse: scegli oggetto\n" "- %s: chat\n" @@ -1266,16 +1320,6 @@ msgstr "Nebbia disabilitata" msgid "Fog enabled" msgstr "Nebbia abilitata" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Nebbia disabilitata" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Nebbia abilitata" - #: src/client/game.cpp msgid "Game info:" msgstr "Info gioco:" @@ -1296,16 +1340,6 @@ msgstr "Definizioni oggetti..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Nebbia disabilitata" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Danno fisico abilitato" - #: src/client/game.cpp msgid "Media..." msgstr "File multimediali..." @@ -1318,34 +1352,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Minimappa attualmente disabilitata dal gioco o da una mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minimappa nascosta" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minimappa in modalità radar, ingrandimento x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minimappa in modalità radar, ingrandimento x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minimappa in modalità radar, ingrandimento x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimappa in modalità superficie, ingrandimento x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimappa in modalità superficie, ingrandimento x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimappa in modalità superficie, ingrandimento x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Modalità incorporea disabilitata" @@ -1372,11 +1378,11 @@ msgstr "Attivato" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "Modalità movimento inclinazione disabilitata" +msgstr "Modalità inclinazione movimento disabilitata" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "Modalità movimento inclinazione abilitata" +msgstr "Modalità inclinazione movimento abilitata" #: src/client/game.cpp msgid "Profiler graph shown" @@ -1390,10 +1396,6 @@ msgstr "Server remoto" msgid "Resolving address..." msgstr "Risoluzione indirizzo..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Rinasci" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Chiusura..." @@ -1446,10 +1448,6 @@ msgstr "Volume cambiato a %d%%" msgid "Wireframe shown" msgstr "Struttura visualizzata" -#: src/client/game.cpp -msgid "You died" -msgstr "Sei morto" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Ingrandimento attualmente disabilitato dal gioco o da un mod" @@ -1466,23 +1464,13 @@ msgstr "Chat nascosta" msgid "Chat shown" msgstr "Chat visualizzata" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Chat nascosta" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Chat visualizzata" - #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "Visore nascosto" +msgstr "HUD nascosto" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "Visore visualizzato" +msgstr "HUD visibile" #: src/client/gameui.cpp msgid "Profiler hidden" @@ -1756,6 +1744,24 @@ msgstr "Pulsante X 2" msgid "Zoom" msgstr "Ingrandimento" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimappa nascosta" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimappa in modalità radar, ingrandimento x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimappa in modalità superficie, ingrandimento x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Minimappa in modalità texture" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Le password non corrispondono!" @@ -1799,26 +1805,6 @@ msgstr "Salto automatico" msgid "Backward" msgstr "Indietreggia" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Cambia vista" @@ -1845,7 +1831,7 @@ msgstr "Diminuisci volume" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "Doppio \"salta\" per scegliere il volo" +msgstr "Doppio \"salta\" per volare" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1886,7 +1872,7 @@ msgstr "Comando locale" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "Silenzio" +msgstr "Muta audio" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" @@ -1906,63 +1892,43 @@ msgstr "Schermata" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "Striscia" +msgstr "Furtivo" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" msgstr "Speciale" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Speciale" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Scegli cinematica" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Scegli cinematica" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Scegli visore" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Scegli volo" +msgstr "HUD sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "Scegli registro chat" +msgstr "Log chat sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "Scegli rapido" +msgstr "Corsa sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "Scegli volo" +msgstr "Volo sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "Scegli nebbia" +msgstr "Nebbia sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "Scegli minimappa" +msgstr "Minimappa sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "Scegli incorporea" +msgstr "Incorporeità sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "Modalità beccheggio" +msgstr "Beccheggio sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -2070,14 +2036,6 @@ msgstr "" "a un'isola, si impostino tutti e tre i numeri sullo stesso valore per la " "forma grezza." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = occlusione di parallasse con informazione di inclinazione (più veloce).\n" -"1 = relief mapping (più lenta, più accurata)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Rumore 2D che controlla forma/dimensione delle montagne con dirupi." @@ -2210,6 +2168,10 @@ msgstr "Un messaggio da mostrare a tutti i client quando il server chiude." msgid "ABM interval" msgstr "Intervallo ABM" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "Budget di tempo ABM" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "Limite assoluto di blocchi in coda da fare apparire" @@ -2473,10 +2435,6 @@ msgstr "Costruisci dentro giocatore" msgid "Builtin" msgstr "Incorporato" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bumpmapping" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2500,7 +2458,7 @@ msgstr "Fluidità della telecamera in modalità cinematic" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "Tasto di scelta dell'aggiornamento della telecamera" +msgstr "Tasto di (dis)attivazione dell'aggiornamento della telecamera" #: src/settings_translation_file.cpp msgid "Cave noise" @@ -2554,22 +2512,6 @@ msgstr "" "Centro della gamma di amplificazione della curva di luce.\n" "Dove 0.0 è il livello di luce minimo, 1.0 è il livello di luce massimo." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Cambia l'UI del menu principale:\n" -"- Completa: mondi locali multipli, scelta del gioco, selettore pacchetti " -"grafici, ecc.\n" -"- Semplice: un mondo locale, nessun selettore di gioco o pacchetti " -"grafici.\n" -"Potrebbe servire per gli schermi più piccoli." - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Dimensione del carattere dell'area di messaggistica" @@ -2600,7 +2542,7 @@ msgstr "Lunghezza massima dei messaggi di chat" #: src/settings_translation_file.cpp msgid "Chat toggle key" -msgstr "Tasto di scelta della chat" +msgstr "Tasto di (dis)attivazione della chat" #: src/settings_translation_file.cpp msgid "Chatcommands" @@ -2620,7 +2562,7 @@ msgstr "Tasto modalità cinematic" #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "Pulizia delle immagini trasparenti" +msgstr "Pulizia delle texture trasparenti" #: src/settings_translation_file.cpp msgid "Client" @@ -2676,8 +2618,8 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" -"Elenco separato da virgole di valori da nascondere nel deposito dei " -"contenuti.\n" +"Elenco di valori separato da virgole che si vuole nascondere dall'archivio " +"dei contenuti.\n" "\"nonfree\" può essere usato per nascondere pacchetti che non si " "qualificano\n" "come \"software libero\", così come definito dalla Free Software " @@ -2735,7 +2677,11 @@ msgstr "Altezza della console" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "Lista nera dei valori per il ContentDB" +msgstr "Contenuti esclusi da ContentDB" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Massimi download contemporanei di ContentDB" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2750,9 +2696,9 @@ msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" -"Avanzamento continuo, scelto dal tasto avanzamento automatico.\n" -"Premi nuovamente il tasto avanzamento automatico o il tasto di arretramento " -"per disabilitarlo." +"Avanzamento continuo, attivato dal tasto avanzamento automatico.\n" +"Premi nuovamente il tasto di avanzamento automatico o il tasto di " +"arretramento per disabilitarlo." #: src/settings_translation_file.cpp msgid "Controls" @@ -2805,16 +2751,24 @@ msgid "Crosshair alpha" msgstr "Trasparenza del mirino" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Trasparenza del mirino (opacità, tra 0 e 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Trasparenza del mirino (opacità, tra 0 e 255).\n" +"Controlla anche il colore del mirino dell'oggetto" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Colore del mirino" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Colore del mirino (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Colore del mirino (R,G,B).\n" +"Controlla anche il colore del mirino dell'oggetto" #: src/settings_translation_file.cpp msgid "DPI" @@ -2826,7 +2780,7 @@ msgstr "Ferimento" #: src/settings_translation_file.cpp msgid "Debug info toggle key" -msgstr "Tasto di scelta delle informazioni di debug" +msgstr "Tasto di (dis)attivazione delle informazioni di debug" #: src/settings_translation_file.cpp msgid "Debug log file size threshold" @@ -2919,14 +2873,6 @@ msgstr "Definisce la struttura dei canali fluviali di ampia scala." msgid "Defines location and terrain of optional hills and lakes." msgstr "Definisce posizione e terreno di colline e laghi facoltativi." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Stabilisce il passo di campionamento dell'immagine.\n" -"Un valore maggiore dà normalmap più uniformi." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Definisce il livello base del terreno." @@ -3006,6 +2952,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "De-sincronizza l'animazione del blocco" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Tasto scava" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Particelle di scavo" @@ -3028,7 +2978,8 @@ msgstr "Doppio \"salta\" per volare" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." -msgstr "Premendo due volte il tasto di salto si sceglie la modalità di volo." +msgstr "" +"Premendo due volte il tasto di salto si (dis)attiva la modalità di volo." #: src/settings_translation_file.cpp msgid "Drop item key" @@ -3071,7 +3022,8 @@ msgid "Enable console window" msgstr "Attivare la finestra della console" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Abilitare la modalità creativa per le nuove mappe create." #: src/settings_translation_file.cpp @@ -3141,7 +3093,7 @@ msgstr "" "server).\n" "I server remoti offrono un sistema significativamente più rapido per " "scaricare\n" -"contenuti multimediali (es. immagini) quando ci si connette al server." +"contenuti multimediali (es. texture) quando ci si connette al server." #: src/settings_translation_file.cpp msgid "" @@ -3187,17 +3139,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Attiva l'animazione degli oggetti dell'inventario." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Attiva il bumpmapping per le immagini. È necessario fornire le normalmap\n" -"con la raccolta di immagini, o devono essere generate automaticamente.\n" -"Necessita l'attivazione degli shader." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Attiva la cache delle mesh ruotate con facedir." @@ -3206,22 +3147,6 @@ msgstr "Attiva la cache delle mesh ruotate con facedir." msgid "Enables minimap." msgstr "Attiva la minimappa." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Attiva la generazione istantanea delle normalmap (effetto rilievo).\n" -"Necessita l'attivazione del bumpmapping." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Attiva la parallax occlusion mapping.\n" -"Necessita l'attivazione degli shader." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3243,14 +3168,6 @@ msgstr "Intervallo di stampa dei dati di profilo del motore di gioco" msgid "Entity methods" msgstr "Sistemi di entità" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Opzione sperimentale, potrebbe causare spazi visibili tra i blocchi\n" -"quando impostata su numeri maggiori di 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3270,8 +3187,8 @@ msgstr "" "pianure più piatte, adatti a uno strato solido di terre fluttuanti." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS nel menu di pausa" +msgid "FPS when unfocused or paused" +msgstr "FPS quando il gioco è in pausa o in secondo piano" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3362,12 +3279,12 @@ msgid "" "light edge to transparent textures. Apply this filter to clean that up\n" "at texture load time." msgstr "" -"Le immagini a cui si applicano i filtri possono amalgamare i valori RGB con " +"Le texture a cui si applicano i filtri possono amalgamare i valori RGB con " "quelle vicine completamente trasparenti,\n" "che normalmente vengono scartati dagli ottimizzatori PNG, risultando a volte " -"in immagini trasparenti scure o\n" +"in texture trasparenti scure o\n" "dai bordi chiari. Applicare questo filtro aiuta a ripulire tutto ciò\n" -"al momento del caricamento dell'immagine." +"al momento del caricamento della texture." #: src/settings_translation_file.cpp msgid "Filtering" @@ -3437,7 +3354,7 @@ msgstr "Inizio nebbia" #: src/settings_translation_file.cpp msgid "Fog toggle key" -msgstr "Tasto scelta nebbia" +msgstr "Tasto (dis)attivazione nebbia" #: src/settings_translation_file.cpp msgid "Font bold by default" @@ -3604,10 +3521,6 @@ msgstr "Filtro di scala dell'interfaccia grafica" msgid "GUI scaling filter txr2img" msgstr "Filtro di scala txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Generare le normalmap" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Callback globali" @@ -3662,26 +3575,25 @@ msgstr "Moduli HTTP" #: src/settings_translation_file.cpp msgid "HUD scale factor" -msgstr "Fattore di scala del visore" +msgstr "Fattore di scala dell'HUD" #: src/settings_translation_file.cpp msgid "HUD toggle key" -msgstr "Tasto di scelta del visore" +msgstr "Tasto di (dis)attivazione dell'HUD" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Gestione delle chiamate deprecate alle API Lua:\n" -"- legacy (ereditaria): (prova a) simulare il vecchio comportamento " -"(predefinito per i rilasci).\n" -"- log (registro): simula e registra la traccia della chiamata deprecata " -"(predefinito per il debug).\n" -"- error (errore): interrompere all'uso della chiamata deprecata (suggerito " -"per lo sviluppo di moduli)." +"Gestione delle chiamate API Lua deprecate:\n" +"- none (nessuno): non registra le chiamate obsolete\n" +"- log (registro): imita e registra il backtrace di una chiamata obsoleta " +"(impostazione predefinita).\n" +"- error (errore): interrompe l'utilizzo della chiamata deprecata " +"(consigliata per gli sviluppatori di mod)." #: src/settings_translation_file.cpp msgid "" @@ -4004,7 +3916,7 @@ msgid "" "down and\n" "descending." msgstr "" -"Se abilitata, si usa il tasto \"speciale\" invece di \"striscia\" per " +"Se abilitata, si usa il tasto \"speciale\" invece di \"furtivo\" per " "arrampicarsi e\n" "scendere." @@ -4214,6 +4126,10 @@ msgstr "ID del joystick" msgid "Joystick button repetition interval" msgstr "Intervallo di ripetizione del pulsante del joystick" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Deadzone joystick" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Sensibilità del tronco del joystick" @@ -4316,6 +4232,16 @@ msgstr "" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tasto per scavare.\n" +"Vedi http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4458,6 +4384,16 @@ msgstr "" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tasto per piazzare.\n" +"Vedi http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4806,7 +4742,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per strisciare.\n" +"Tasto per muoversi furtivamente.\n" "Usato anche per scendere, e per immergersi in acqua se aux1_descends è " "disattivato.\n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4898,7 +4834,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per scegliere la modalità di movimento di pendenza.\n" +"Tasto per scegliere la modalità di inclinazione del movimento. \n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4939,7 +4875,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per scegliere la visualizzazione della nebbia.\n" +"Tasto per attivare/disattivare la visualizzazione della nebbia.\n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4949,7 +4885,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tasto per scegliere la visualizzazione del visore.\n" +"Tasto per attivare/disattivare la visualizzazione dell'HUD.\n" "Si veda http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5213,10 +5149,6 @@ msgstr "Limite inferiore Y delle terre fluttuanti." msgid "Main menu script" msgstr "Script del menu principale" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Stile del menu principale" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5232,6 +5164,14 @@ msgstr "Fa lavorare DirectX con LuaJIT. Disabilitare se provoca problemi." msgid "Makes all liquids opaque" msgstr "Rende opachi tutti i liquidi" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Livello di compressione della mappa per l'archiviazione su disco" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Livello di compressione della mappa per il trasferimento in rete" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Cartella della mappa" @@ -5421,8 +5361,10 @@ msgid "Maximum FPS" msgstr "FPS massimi" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "FPS massimi quando il gioco è in pausa." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"FPS massimi quando la finestra è in secondo piano o quando il gioco è in " +"pausa." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5480,6 +5422,16 @@ msgstr "" "Numero massimo di blocchi da accodarsi che devono essere caricati da file.\n" "Questo limite viene imposto per ciascun giocatore." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Numero massimo di download simultanei. I download che superano questo limite " +"verranno messi in coda.\n" +"Dovrebbe essere inferiore a curl_parallel_limit." + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Numero massimo di blocchi mappa caricati a forza." @@ -5604,7 +5556,7 @@ msgstr "Limite minimo di piccole grotte casuali per pezzo di mappa." #: src/settings_translation_file.cpp msgid "Minimum texture size" -msgstr "Dimensione minima dell'immagine" +msgstr "Dimensione minima della texture" #: src/settings_translation_file.cpp msgid "Mipmapping" @@ -5616,7 +5568,7 @@ msgstr "Canali mod" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." -msgstr "Modifica la dimensione degli elementi della barra del visore." +msgstr "Modifica la dimensione degli elementi della barra dell'HUD." #: src/settings_translation_file.cpp msgid "Monospace font path" @@ -5664,7 +5616,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mute key" -msgstr "Tasto silenzio" +msgstr "Tasto muta" #: src/settings_translation_file.cpp msgid "Mute sound" @@ -5740,14 +5692,6 @@ msgstr "Intervallo NodeTimer" msgid "Noises" msgstr "Rumori" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Campionamento normalmap" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Intensità normalmap" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Numero di thread emerge" @@ -5791,10 +5735,6 @@ msgstr "" "Questo è un controbilanciare tra spesa di transazione sqlite e\n" "consumo di memoria (4096 = 100MB, come regola generale)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Numero di iterazioni dell'occlusione di parallasse." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Deposito dei contenuti in linea" @@ -5823,36 +5763,6 @@ msgstr "" "Apre il menu di pausa quando si perde la messa a fuoco della finestra. Non\n" "mette in pausa se è aperta una finestra di dialogo." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Deviazione complessiva dell'effetto di occlusione di parallasse, solitamente " -"scala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Scala globale dell'effetto di occlusione di parallasse." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax Occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Deviazione dell'occlusione di parallasse" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Iterazioni dell'occlusione di parallasse" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Modalità dell'occlusione di parallasse" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Scala dell'occlusione di parallasse" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5889,8 +5799,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Path to texture directory. All textures are first searched from here." msgstr "" -"Percorso della cartella immagini. Tutte le immagini vengono cercate a " -"partire da qui." +"Percorso della cartella contenente le texture. Tutte le texture vengono " +"cercate a partire da qui." #: src/settings_translation_file.cpp msgid "" @@ -5940,11 +5850,19 @@ msgstr "Fisica" #: src/settings_translation_file.cpp msgid "Pitch move key" -msgstr "Modalità movimento pendenza" +msgstr "Modalità inclinazione movimento" #: src/settings_translation_file.cpp msgid "Pitch move mode" -msgstr "Modalità movimento pendenza" +msgstr "Modalità inclinazione movimento" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Tasto piazza" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Intervallo di ripetizione per il piazzamento" #: src/settings_translation_file.cpp msgid "" @@ -6009,7 +5927,7 @@ msgstr "Generatore di profili" #: src/settings_translation_file.cpp msgid "Profiler toggle key" -msgstr "Tasto di scelta del generatore di profili" +msgstr "Tasto di (dis)attivazione del generatore di profili" #: src/settings_translation_file.cpp msgid "Profiling" @@ -6136,10 +6054,6 @@ msgstr "Dimensione del rumore dei crinali montani" msgid "Right key" msgstr "Tasto des." -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Intervallo di ripetizione del click destro" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Profondità dell'alveo dei fiumi" @@ -6442,6 +6356,19 @@ msgstr "Mostra le informazioni di debug" msgid "Show entity selection boxes" msgstr "Mostrare le aree di selezione delle entità" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Mostra la casella di selezione delle entità\n" +"È necessario riavviare dopo aver cambiato questo." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Carattere grassetto per impostazione predefinita" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Messaggio di chiusura" @@ -6524,11 +6451,11 @@ msgstr "Rende fluida la rotazione della telecamera. 0 per disattivare." #: src/settings_translation_file.cpp msgid "Sneak key" -msgstr "Tasto striscia" +msgstr "Tasto furtivo" #: src/settings_translation_file.cpp msgid "Sneaking speed" -msgstr "Velocità di strisciamento" +msgstr "Velocità furtiva" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." @@ -6599,10 +6526,6 @@ msgstr "Rumore della diffusione del passo montano" msgid "Strength of 3D mode parallax." msgstr "Intensità della parallasse della modalità 3D." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Intensità delle normalmap generate." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6705,7 +6628,7 @@ msgstr "Rumore di continuità del terreno" #: src/settings_translation_file.cpp msgid "Texture path" -msgstr "Percorso delle immagini" +msgstr "Percorso delle texture" #: src/settings_translation_file.cpp msgid "" @@ -6716,7 +6639,7 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"Le immagini su un nodo possono essere allineate sia al nodo che al mondo.\n" +"Le texture su un nodo possono essere allineate sia al nodo che al mondo.\n" "Il primo modo si addice meglio a cose come macchine, arredamento, ecc.,\n" "mentre il secondo fa sì che scale e microblocchi si adattino meglio ai " "dintorni.\n" @@ -6729,6 +6652,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "L'URL per il deposito dei contenuti" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "La deadzone del joystick" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6807,15 +6734,15 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" -"Il motore di resa per Irrlicht.\n" +"Il back-end di rendering per Irrlicht.\n" "Dopo averlo cambiato è necessario un riavvio.\n" -"Nota: su Android, si resti con OGLES1 se incerti! Altrimenti l'app potrebbe " +"Nota: su Android, restare con OGLES1 se incerti! Altrimenti l'app potrebbe " "non partire.\n" -"Su altre piattaforme, si raccomanda OpenGL, ed è attualmente l'unico driver\n" -"con supporto degli shader." +"Su altre piattaforme, si raccomanda OpenGL\n" +"Le shader sono supportate da OpenGL (solo su desktop) e OGLES2 (sperimentale)" #: src/settings_translation_file.cpp msgid "" @@ -6852,6 +6779,14 @@ msgstr "" "scaricando gli oggetti della vecchia coda. Un valore di 0 disabilita la " "funzionalità." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"Il budget di tempo ha consentito agli ABM per eseguire ogni passaggio\n" +"(come frazione dell'intervallo ABM)" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6862,12 +6797,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" -"Il tempo in secondi richiesto tra click destri ripetuti quando\n" -"si tiene premuto il tasto destro del mouse." +"Il tempo in secondi che intercorre tra il piazzamento dei nodi quando si " +"tiene\n" +"premuto il pulsante piazza." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6931,7 +6866,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Toggle camera mode key" -msgstr "Tasto di scelta della modalità telecamera" +msgstr "Tasto di (dis)attivazione della modalità telecamera" #: src/settings_translation_file.cpp msgid "Tooltip delay" @@ -7014,12 +6949,12 @@ msgstr "Usare un'animazione con le nuvole per lo sfondo del menu principale." #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." msgstr "" -"Usare il filtraggio anisotropico quando si guardano le immagini da " +"Usare il filtraggio anisotropico quando si guardano le texture da " "un'angolazione." #: src/settings_translation_file.cpp msgid "Use bilinear filtering when scaling textures." -msgstr "Usare il filtraggio bilineare quando si ridimensionano le immagini." +msgstr "Usare il filtraggio bilineare quando si ridimensionano le texture." #: src/settings_translation_file.cpp msgid "" @@ -7027,14 +6962,34 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" -"Usare il mip mapping per ridimensionare le immagini. Potrebbe aumentare " +"Usare il mip mapping per ridimensionare le texture. Potrebbe aumentare " "leggermente le prestazioni,\n" -"specialmente quando si usa una raccolta di immagini ad alta risoluzione.\n" +"specialmente quando si usa un pacchetto texture ad alta risoluzione.\n" "La correzione gamma del downscaling non è supportata." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Utilizzare l'antialiasing multi-campione (MSAA) per smussare i bordi del " +"blocco.\n" +"Questo algoritmo uniforma la visualizzazione 3D mantenendo l'immagine " +"nitida,\n" +"ma non influenza l'interno delle texture\n" +"(che è particolarmente evidente con trame trasparenti).\n" +"Gli spazi visibili appaiono tra i nodi quando gli shader sono disabilitati.\n" +"Se impostato a 0, MSAA è disabilitato.\n" +"È necessario riavviare dopo aver modificato questa opzione." + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." -msgstr "Usare il filtraggio trilineare quando si ridimensionano le immagini." +msgstr "Usare il filtraggio trilineare quando si ridimensionano le texture." #: src/settings_translation_file.cpp msgid "VBO" @@ -7234,7 +7189,7 @@ msgstr "" "Quando gui_scaling_filter_txr2img è Vero, copia quelle immagini\n" "dall'hardware al software per il ridimensionamento. Quando è Falso,\n" "ripiega sul vecchio metodo di ridimensionamento, per i driver video che\n" -"non supportano correttamente lo scaricamento delle immagini dall'hardware." +"non supportano correttamente lo scaricamento delle texture dall'hardware." #: src/settings_translation_file.cpp msgid "" @@ -7248,13 +7203,13 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"Quando si usano i filtri bilineare/trilineare/anisotropico, le immagini a " +"Quando si usano i filtri bilineare/trilineare/anisotropico, le texture a " "bassa risoluzione\n" -"possono essere sfocate, così si esegue l'upscaling automatico con " +"possono essere sfocate, così viene eseguito l'ingrandimento automatico con " "l'interpolazione nearest-neighbor\n" "per conservare pixel chiari. Questo imposta la dimensione minima delle " "immagini\n" -"per le immagini upscaled; valori più alti hanno un aspetto più nitido, ma " +"per le texture ingrandite; valori più alti hanno un aspetto più nitido, ma " "richiedono più memoria.\n" "Sono raccomandate le potenze di 2. Impostarla a un valore maggiore di 1 " "potrebbe non avere\n" @@ -7274,10 +7229,16 @@ msgstr "" "FreeType.\n" "Se disabilitati, si utilizzano invece i caratteri bitmap e XML vettoriali." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" -"Se le animazioni delle immagini dei nodi dovrebbero essere asincrone per " +"Se le animazioni delle texture dei nodi dovrebbero essere asincrone per " "blocco mappa." #: src/settings_translation_file.cpp @@ -7315,8 +7276,7 @@ msgstr "" "Se silenziare i suoni. È possibile de-silenziare i suoni in qualsiasi " "momento, a meno che\n" "il sistema audio non sia disabilitato (enable_sound=false).\n" -"Nel gioco, puoi alternare lo stato silenziato col tasto di silenzio o " -"usando\n" +"Nel gioco, puoi alternare lo stato silenziato col tasto muta o usando\n" "il menu di pausa." #: src/settings_translation_file.cpp @@ -7365,19 +7325,19 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" -"Le immagini allineate al mondo possono essere ridimensionate per estendersi " +"Le texture allineate al mondo possono essere ridimensionate per estendersi " "su diversi nodi.\n" "Comunque, il server potrebbe non inviare la scala che vuoi, specialmente se " -"usi una raccolta di immagini\n" -"progettata specificamente; con questa opzione, il client prova a stabilire " +"usi un pacchetto texture\n" +"progettato specificamente; con questa opzione, il client prova a stabilire " "automaticamente la scala\n" -"basandosi sulla dimensione dell'immagine.\n" +"basandosi sulla dimensione della texture.\n" "Si veda anche texture_min_size.\n" "Avviso: questa opzione è SPERIMENTALE!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "Modalità immagini allineate al mondo" +msgstr "Modalità texture allineate al mondo" #: src/settings_translation_file.cpp msgid "Y of flat ground." @@ -7433,6 +7393,38 @@ msgstr "Livello Y del terreno inferiore e del fondale marino." msgid "Y-level of seabed." msgstr "Livello Y del fondale marino." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Livello di compressione ZLib da utilizzare quando si salvano i blocchi mappa " +"su disco.\n" +"-1 - Livello di compressione predefinito di Zlib\n" +"0 - nessuna compressione, più veloce\n" +"9 - migliore compressione, più lenta\n" +"(i livelli 1-3 usano il metodo \"veloce\" di Zlib, 4-9 usano il metodo " +"normale)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Livello di compressione ZLib da utilizzare quando si inviano i blocchi mappa " +"al client.\n" +"-1 - Livello di compressione predefinito di Zlib\n" +"0 - nessuna compressione, più veloce\n" +"9 - migliore compressione, più lenta\n" +"(i livelli 1-3 usano il metodo \"veloce\" di Zlib, 4-9 usano il metodo " +"normale)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Scadenza cURL scaricamento file" @@ -7445,23 +7437,13 @@ msgstr "Limite parallelo cURL" msgid "cURL timeout" msgstr "Scadenza cURL" -#~ msgid "Ok" -#~ msgstr "OK" - -#~ msgid "Back" -#~ msgstr "Indietro" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Scaricamento e installazione di $1, attendere prego..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite di code emerge su disco" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Intensità dell'occlusione di parallasse" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Percorso dove salvare le schermate." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = occlusione di parallasse con informazione di inclinazione (più " +#~ "veloce).\n" +#~ "1 = relief mapping (più lenta, più accurata)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7477,9 +7459,42 @@ msgstr "Scadenza cURL" #~ "Modifica il restringimento superiore e inferiore rispetto al punto " #~ "mediano delle terre fluttuanti di tipo montagnoso." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Sei sicuro di azzerare il tuo mondo locale?" + +#~ msgid "Back" +#~ msgstr "Indietro" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Centro dell'aumento mediano della curva della luce." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Cambia l'UI del menu principale:\n" +#~ "- Completa: mondi locali multipli, scelta del gioco, selettore " +#~ "pacchetti texture, ecc.\n" +#~ "- Semplice: un mondo locale, nessun selettore di gioco o pacchetti " +#~ "grafici.\n" +#~ "Potrebbe servire per gli schermi più piccoli." + +#~ msgid "Config mods" +#~ msgstr "Config mod" + +#~ msgid "Configure" +#~ msgstr "Configura" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7493,6 +7508,9 @@ msgstr "Scadenza cURL" #~ "Controlla la larghezza delle gallerie, un valore più piccolo crea " #~ "gallerie più larghe." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Colore del mirino (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Nitidezza dell'oscurità" @@ -7503,6 +7521,13 @@ msgstr "Scadenza cURL" #~ "Definisce aree di terreno uniforme nelle terre fluttuanti.\n" #~ "Le terre fluttuanti uniformi avvengono quando il rumore è > 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Stabilisce il passo di campionamento della texture.\n" +#~ "Un valore maggiore dà normalmap più uniformi." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7512,12 +7537,49 @@ msgstr "Scadenza cURL" #~ "posizionare le caverne di liquido.\n" #~ "Limite verticale della lava nelle caverne grandi." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Scaricamento e installazione di $1, attendere prego..." + #~ msgid "Enable VBO" #~ msgstr "Abilitare i VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Attiva il bumpmapping per le texture. È necessario fornire le normalmap\n" +#~ "con i pacchetti texture, o devono essere generate automaticamente.\n" +#~ "Necessita l'attivazione degli shader." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Attiva il filmic tone mapping" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Attiva la generazione istantanea delle normalmap (effetto rilievo).\n" +#~ "Necessita l'attivazione del bumpmapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Attiva la parallax occlusion mapping.\n" +#~ "Necessita l'attivazione degli shader." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opzione sperimentale, potrebbe causare spazi visibili tra i blocchi\n" +#~ "quando impostata su numeri maggiori di 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS nel menu di pausa" + #~ msgid "Floatland base height noise" #~ msgstr "Rumore base dell'altezza delle terre fluttuanti" @@ -7530,6 +7592,12 @@ msgstr "Scadenza cURL" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Genera Normal Map" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generare le normalmap" + #~ msgid "IPv6 support." #~ msgstr "Supporto IPv6." @@ -7539,18 +7607,107 @@ msgstr "Scadenza cURL" #~ msgid "Lightness sharpness" #~ msgstr "Nitidezza della luminosità" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite di code emerge su disco" + +#~ msgid "Main" +#~ msgstr "Principale" + +#~ msgid "Main menu style" +#~ msgstr "Stile del menu principale" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimappa in modalità radar, ingrandimento x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimappa in modalità radar, ingrandimento x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimappa in modalità superficie, ingrandimento x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimappa in modalità superficie, ingrandimento x4" + +#~ msgid "Name/Password" +#~ msgstr "Nome/Password" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Campionamento normalmap" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensità normalmap" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Numero di iterazioni dell'occlusione di parallasse." + +#~ msgid "Ok" +#~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Deviazione complessiva dell'effetto di occlusione di parallasse, " +#~ "solitamente scala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Scala globale dell'effetto di occlusione di parallasse." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Deviazione dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterazioni dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modalità dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Scala dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Intensità dell'occlusione di parallasse" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Percorso del carattere TrueType o bitmap." +#~ msgid "Path to save screenshots at." +#~ msgstr "Percorso dove salvare le schermate." + +#~ msgid "Projecting dungeons" +#~ msgstr "Sotterranei protundenti" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Azzera mondo locale" + +#~ msgid "Select Package File:" +#~ msgstr "Seleziona pacchetto file:" + #~ msgid "Shadow limit" #~ msgstr "Limite dell'ombra" +#~ msgid "Start Singleplayer" +#~ msgstr "Avvia in locale" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensità delle normalmap generate." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Intensità dell'aumento mediano della curva di luce." #~ msgid "This font will be used for certain languages." #~ msgstr "Questo carattere sarà usato per certe Lingue." +#~ msgid "Toggle Cinematic" +#~ msgstr "Scegli cinematica" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7562,9 +7719,21 @@ msgstr "Scadenza cURL" #~ "Variazione dell'altezza delle colline, e della profondità dei laghi sul\n" #~ "terreno uniforme delle terre fluttuanti." +#~ msgid "View" +#~ msgstr "Vedi" + +#~ msgid "Waving Water" +#~ msgstr "Acqua ondeggiante" + #~ msgid "Waving water" #~ msgstr "Acqua ondeggiante" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se i sotterranei saltuariamente si protendono dal terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y del limite superiore della lava nelle caverne grandi." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "" #~ "Livello Y del punto medio delle terre fluttuanti e della superficie dei " @@ -7573,17 +7742,5 @@ msgstr "Scadenza cURL" #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Livello Y a cui si estendono le ombre delle terre fluttuanti." -#~ msgid "Projecting dungeons" -#~ msgstr "Sotterranei protundenti" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Se i sotterranei saltuariamente si protendono dal terreno." - -#~ msgid "Waving Water" -#~ msgstr "Acqua ondeggiante" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y del limite superiore della lava nelle caverne grandi." - -#~ msgid "Select Package File:" -#~ msgstr "Seleziona pacchetto file:" +#~ msgid "Yes" +#~ msgstr "Sì" diff --git a/po/ja/minetest.po b/po/ja/minetest.po index 356e1ce02..c3a5e3522 100644 --- a/po/ja/minetest.po +++ b/po/ja/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Japanese (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-15 22:41+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" "Last-Translator: BreadW \n" "Language-Team: Japanese \n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "リスポーン" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "死んでしまった" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "再接続" msgid "The server has requested a reconnect:" msgstr "サーバが再接続を要求しました:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "読み込み中..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "プロトコルのバージョンが一致していません。 " @@ -54,10 +58,6 @@ msgstr "サーバはバージョン$1のプロトコルを強制しています msgid "Server supports protocol versions between $1 and $2. " msgstr "サーバは$1から$2までのプロトコルのバージョンをサポートしています。 " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "インターネット接続を確認し、公開サーバ一覧を再有効化してください。" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "プロトコルはバージョン$1のみをサポートしています。" @@ -66,7 +66,8 @@ msgstr "プロトコルはバージョン$1のみをサポートしています msgid "We support protocol versions between version $1 and $2." msgstr "バージョン$1から$2までのプロトコルをサポートしています。" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -76,9 +77,10 @@ msgstr "バージョン$1から$2までのプロトコルをサポートして msgid "Cancel" msgstr "キャンセル" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "依存関係:" +msgstr "依存Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" @@ -114,7 +116,7 @@ msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "(任意)依存関係なし" +msgstr "(任意)依存Modなし" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." @@ -122,7 +124,7 @@ msgstr "ゲームの説明がありません。" #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "依存関係なし" +msgstr "必須依存Modなし" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -130,11 +132,11 @@ msgstr "Modパックの説明がありません。" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "任意依存関係なし" +msgstr "任意依存Modなし" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "任意:" +msgstr "任意依存Mod:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -149,13 +151,53 @@ msgstr "ワールド:" msgid "enabled" msgstr "有効" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "「$1」はすでに存在します。上書きしますか?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "$1 と依存Mod $2 がインストールされます。" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 by $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 ダウンロード中、\n" +"$2 ダウンロード待機中" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 ダウンロード中..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 つの必要な依存Modが見つかりませんでした。" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 がインストールされ、依存Mod $2 はスキップされます。" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "すべて" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "インストール済み" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "メインメニューへ戻る" +msgstr "メインメニューへ" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "基盤ゲーム:" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" @@ -178,6 +220,14 @@ msgstr "ゲーム" msgid "Install" msgstr "入手" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "$1 のインストール" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "不足依存Modインストール" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -192,9 +242,24 @@ msgid "No results" msgstr "何も見つかりませんでした" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "検索" +msgid "No updates" +msgstr "更新なし" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "見つかりません" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "上書き" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "基盤となるゲームが正しいかどうか確認してください。" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "待機中" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -209,12 +274,16 @@ msgid "Update" msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "見る" +msgid "Update All [$1]" +msgstr "すべて更新 [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Webブラウザで詳細を見る" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "ワールド名「$1」は既に存在します" +msgstr "ワールド名「$1」はすでに存在します" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" @@ -462,11 +531,6 @@ msgstr "< 設定ページに戻る" msgid "Browse" msgstr "参照" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "クライアント" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "無効" @@ -511,6 +575,10 @@ msgstr "初期設定に戻す" msgid "Scale" msgstr "スケール" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "検索" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "ディレクトリの選択" @@ -626,6 +694,19 @@ msgstr "Modを$1としてインストールすることができません" msgid "Unable to install a modpack as a $1" msgstr "Modパックを$1としてインストールすることができません" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "読み込み中..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "クライアント側のスクリプトは無効" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "インターネット接続を確認し、公開サーバ一覧を再有効化してください。" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "オンラインコンテンツ参照" @@ -648,7 +729,7 @@ msgstr "インストール済みのパッケージ:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "依存なし。" +msgstr "依存Modなし。" #: builtin/mainmenu/tab_content.lua msgid "No package description available" @@ -679,8 +760,16 @@ msgid "Credits" msgstr "クレジット" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "ディレクトリを開く" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"ファイルマネージャー/エクスプローラーで、ワールド、ゲーム、Mod、\n" +"およびテクスチャパックを含むディレクトリを開きます。" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -699,14 +788,10 @@ msgid "Bind Address" msgstr "バインドアドレス" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "設定" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "クリエイティブモード" +msgstr "クリエイティブ" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "ダメージ有効" @@ -723,8 +808,8 @@ msgid "Install games from ContentDB" msgstr "コンテンツDBからゲームをインストール" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "名前 / パスワード" +msgid "Name" +msgstr "名前" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -734,6 +819,10 @@ msgstr "新規作成" msgid "No world created or selected!" msgstr "ワールドが作成または選択されていません!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "パスワード" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "ゲームプレイ" @@ -742,6 +831,10 @@ msgstr "ゲームプレイ" msgid "Port" msgstr "ポート" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Modを選択" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "ワールドを選択:" @@ -758,23 +851,23 @@ msgstr "ゲームスタート" msgid "Address / Port" msgstr "アドレス / ポート" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "接続" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "クリエイティブモード" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "ダメージ有効" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "お気に入り削除" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "お気に入り" @@ -782,16 +875,16 @@ msgstr "お気に入り" msgid "Join Game" msgstr "ゲームに参加" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "名前 / パスワード" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "応答速度" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP有効" @@ -819,22 +912,14 @@ msgstr "すべての設定" msgid "Antialiasing:" msgstr "アンチエイリアス:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "シングルプレイヤーのワールドをリセットしてよろしいですか?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "画面の大きさを自動保存" +msgstr "大きさを自動保存" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" msgstr "バイリニアフィルタ" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "バンプマッピング" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "キー変更" @@ -847,10 +932,6 @@ msgstr "ガラスを繋げる" msgid "Fancy Leaves" msgstr "綺麗な葉" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "法線マップの生成" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "ミップマップ" @@ -859,10 +940,6 @@ msgstr "ミップマップ" msgid "Mipmap + Aniso. Filter" msgstr "ミップマップと異方性フィルタ" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "いいえ" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "フィルタ無し" @@ -891,18 +968,10 @@ msgstr "不透明な葉" msgid "Opaque Water" msgstr "不透明な水" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "視差遮蔽" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "パーティクル" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "ワールドをリセット" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "画面:" @@ -915,6 +984,10 @@ msgstr "設定" msgid "Shaders" msgstr "シェーダー" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "シェーダー(実験的)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "シェーダー (無効)" @@ -959,22 +1032,6 @@ msgstr "揺れる液体" msgid "Waving Plants" msgstr "揺れる草花" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "はい" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Mod設定" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "メイン" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "シングルプレイスタート" - #: src/client/client.cpp msgid "Connection timed out." msgstr "接続がタイムアウトしました。" @@ -1129,39 +1186,36 @@ msgid "Continue" msgstr "再開" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" -"操作:\n" +"操作方法:\n" "- %s: 前進\n" "- %s: 後退\n" "- %s: 左移動\n" "- %s: 右移動\n" "- %s: ジャンプ/登る\n" +"- %s: 掘削/パンチ\n" +"- %s: 設置/使用\n" "- %s: スニーク/降りる\n" "- %s: アイテムを落とす\n" "- %s: インベントリ\n" "- マウス: 見回す\n" -"- 左クリック: 掘削/パンチ\n" -"- 右クリック: 設置/使用\n" -"- ホイール: アイテム選択\n" +"- マウスホイール: アイテム選択\n" "- %s: チャット\n" #: src/client/game.cpp @@ -1260,16 +1314,6 @@ msgstr "霧 無効" msgid "Fog enabled" msgstr "霧 有効" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "霧 無効" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "霧 有効" - #: src/client/game.cpp msgid "Game info:" msgstr "ゲーム情報:" @@ -1290,16 +1334,6 @@ msgstr "アイテムを定義中..." msgid "KiB/s" msgstr "KiB/秒" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "霧 無効" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "ダメージ有効" - #: src/client/game.cpp msgid "Media..." msgstr "メディアを受信中..." @@ -1312,34 +1346,6 @@ msgstr "MiB/秒" msgid "Minimap currently disabled by game or mod" msgstr "ミニマップは現在ゲームまたはModにより無効" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "ミニマップ 非表示" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "ミニマップ レーダーモード、ズーム x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "ミニマップ レーダーモード、ズーム x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "ミニマップ レーダーモード、ズーム x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "ミニマップ 表面モード、ズーム x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "ミニマップ 表面モード、ズーム x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "ミニマップ 表面モード、ズーム x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "すり抜けモード 無効" @@ -1384,10 +1390,6 @@ msgstr "リモートサーバ" msgid "Resolving address..." msgstr "アドレスを解決中..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "リスポーン" - #: src/client/game.cpp msgid "Shutting down..." msgstr "終了中..." @@ -1440,10 +1442,6 @@ msgstr "音量を %d%% に変更" msgid "Wireframe shown" msgstr "ワイヤーフレーム 表示" -#: src/client/game.cpp -msgid "You died" -msgstr "死んでしまった" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "ズームは現在ゲームまたはModにより無効" @@ -1460,16 +1458,6 @@ msgstr "チャット 非表示" msgid "Chat shown" msgstr "チャット 表示" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "チャット 非表示" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "チャット 表示" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD 非表示" @@ -1750,6 +1738,24 @@ msgstr "Xボタン2" msgid "Zoom" msgstr "ズーム" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "ミニマップ 非表示" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "ミニマップ レーダーモード、ズーム x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "ミニマップ 表面モード、ズーム x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "ミニマップ テクスチャモード" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "パスワードが一致しません!" @@ -1794,26 +1800,6 @@ msgstr "自動ジャンプ" msgid "Backward" msgstr "後退" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "視点変更" @@ -1840,7 +1826,7 @@ msgstr "音量を下げる" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "\"ジャンプ\"二度押しで飛行モード切替" +msgstr "\"ジャンプ\"2回で飛行モード切替" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1873,7 +1859,7 @@ msgstr "キーが重複しています" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" -"キー設定です。 (このメニューで失敗する場合は、minetest.confから該当する設定を" +"キー設定です。 (このメニューで失敗する場合は minetest.conf から該当する設定を" "削除してください)" #: src/gui/guiKeyChangeMenu.cpp @@ -1908,30 +1894,10 @@ msgstr "スニーク" msgid "Special" msgstr "スペシャル" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "スペシャル" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "映画風モード切替" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "映画風モード切替" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "HUD表示切替" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "飛行モード切替" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "チャット表示切替" @@ -2060,14 +2026,6 @@ msgstr "" "既定値は島に適した垂直方向に押しつぶされた形状のためのもので、\n" "加工していないの形状のためには3つの数字をすべて等しく設定します。" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = 斜面情報付きの視差遮蔽マッピング(高速)。\n" -"1 = リリーフマッピング(正確だが低速)。" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "尾根の形状/大きさを制御する2Dノイズ。" @@ -2192,6 +2150,10 @@ msgstr "サーバ終了時に全てのクライアントへ表示するメッセ msgid "ABM interval" msgstr "ABMの間隔" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "ABMの時間予算" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "キューに入れられたブロックが出現する絶対制限" @@ -2449,10 +2411,6 @@ msgstr "プレイヤーの位置に設置" msgid "Builtin" msgstr "ビルトイン" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "バンプマッピング" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2530,21 +2488,6 @@ msgstr "" "光度曲線ブースト範囲の中心。\n" "0.0は最小光レベル、1.0は最大光レベルです。" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"メインメニューUIを変更:\n" -"- Full: 複数のシングルプレイヤーのワールド、ゲームの選択、\n" -"テクスチャパックの選択、その他。\n" -"- Simple: 1つのシングルプレイヤーのワールド、ゲームや\n" -"テクスチャパックの選択はありません。小さな画面で必要かもしれません。" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "チャットのフォントサイズ" @@ -2708,6 +2651,10 @@ msgstr "コンソールの高さ" msgid "ContentDB Flag Blacklist" msgstr "コンテンツDBフラグのブラックリスト" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "コンテンツDBの最大同時ダウンロード数" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "コンテンツDBのURL" @@ -2770,19 +2717,27 @@ msgstr "クリエイティブ" #: src/settings_translation_file.cpp msgid "Crosshair alpha" -msgstr "照準線の透過度" +msgstr "十字カーソルの透過度" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "照準線の透過 (不透明、0~255の間)。" +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"十字カーソルの透過度(不透明、0~255の間)。\n" +"オブジェクト十字カーソルの色も制御" #: src/settings_translation_file.cpp msgid "Crosshair color" -msgstr "照準線の色" +msgstr "十字カーソルの色" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "照準線の色 (R,G,B)。" +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"十字カーソルの色(R,G,B)。\n" +"オブジェクト十字カーソルの色も制御" #: src/settings_translation_file.cpp msgid "DPI" @@ -2884,14 +2839,6 @@ msgstr "大規模な河川構造を定義します。" msgid "Defines location and terrain of optional hills and lakes." msgstr "オプションの丘と湖の場所と地形を定義します。" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"テクスチャのサンプリング手順を定義します。\n" -"値が大きいほど、法線マップが滑らかになります。" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "基準地上レベルを定義します。" @@ -2934,7 +2881,7 @@ msgstr "ツールチップを表示するまでの遅延、ミリ秒で定めま #: src/settings_translation_file.cpp msgid "Deprecated Lua API handling" -msgstr "廃止予定のLua APIの処理" +msgstr "非推奨の Lua API の処理" #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." @@ -2966,6 +2913,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "ブロックのアニメーションの非同期化" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "掘削キー" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "掘削時パーティクル" @@ -3031,7 +2982,8 @@ msgid "Enable console window" msgstr "コンソールウィンドウを有効化" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "新しく作成されたマップでクリエイティブモードを有効にします。" #: src/settings_translation_file.cpp @@ -3141,17 +3093,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "インベントリのアイテムのアニメーションを有効にします。" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"テクスチャのバンプマッピングを有効にします。法線マップは\n" -"テクスチャパックによって提供されるかまたは自動生成される必要があります。\n" -"シェーダーが有効である必要があります。" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "facedir回転メッシュのキャッシングを有効にします。" @@ -3160,22 +3101,6 @@ msgstr "facedir回転メッシュのキャッシングを有効にします。" msgid "Enables minimap." msgstr "ミニマップを有効にする。" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"法線マップ生成を臨機応変に有効にします(エンボス効果)。\n" -"バンプマッピングが有効である必要があります。" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"視差遮蔽マッピングを有効にします。\n" -"シェーダーが有効である必要があります。" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3196,14 +3121,6 @@ msgstr "エンジンプロファイリングデータの出力間隔" msgid "Entity methods" msgstr "エンティティメソッド" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"実験的なオプションで、0 より大きい数値に設定すると、ブロック間に\n" -"目に見えるスペースが生じる可能性があります。" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3221,8 +3138,8 @@ msgstr "" "作成し、密な浮遊大陸層に適しています。" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "ポーズメニューでのFPS" +msgid "FPS when unfocused or paused" +msgstr "非アクティブまたはポーズメニュー表示中のFPS" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3546,10 +3463,6 @@ msgstr "GUI拡大縮小フィルタ" msgid "GUI scaling filter txr2img" msgstr "GUI拡大縮小フィルタ txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "法線マップの生成" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "グローバルコールバック" @@ -3612,15 +3525,14 @@ msgstr "HUD表示切り替えキー" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"廃止予定のLua API呼び出しの処理:\n" -"- legacy: 古い振る舞いを模倣する(試みる) (リリース版の既定値)。\n" -"- log: 廃止予定の呼び出しを模倣してバックトレースを記録 (デバッグ版の既定" -"値)。\n" -"- error: 廃止予定の呼び出しの使用を中止する (Mod開発者向けに推奨)。" +"非推奨の Lua API 呼び出しの処理:\n" +"- none: 非推奨の呼び出しを記録しない\n" +"- log: 非推奨の呼び出しのバックトレースを模倣して記録します(既定値)。\n" +"- error: 非推奨の呼び出しの使用を中止します(Mod開発者に推奨)。" #: src/settings_translation_file.cpp msgid "" @@ -4141,6 +4053,10 @@ msgstr "ジョイスティックID" msgid "Joystick button repetition interval" msgstr "ジョイスティックボタンの繰り返し間隔" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "ジョイスティックのデッドゾーン" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "ジョイスティック視錐台感度" @@ -4243,6 +4159,16 @@ msgstr "" "参照 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"掘削するキーです。\n" +"参照 http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4385,6 +4311,16 @@ msgstr "" "参照 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"設置するキーです。\n" +"参照 http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5128,10 +5064,6 @@ msgstr "浮遊大陸の Y の下限。" msgid "Main menu script" msgstr "メインメニュースクリプト" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "メインメニューのスタイル" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5145,6 +5077,14 @@ msgstr "DirectX を LuaJIT と連携させます。問題がある場合は無 msgid "Makes all liquids opaque" msgstr "すべての液体を不透明にする" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "ディスクストレージのマップ圧縮レベル" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "ネットワーク転送のためのマップ圧縮レベル" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "マップディレクトリ" @@ -5328,8 +5268,10 @@ msgid "Maximum FPS" msgstr "最大FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "ポーズメニューでの最大FPS。" +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"ウィンドウにフォーカスが合っていないとき、またはポーズメニュー表示中の最大" +"FPS。" #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5383,6 +5325,16 @@ msgstr "" "ファイルから読み込まれてキューに入れられる最大ブロック数。\n" "この制限はプレイヤーごとに適用されます。" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"同時ダウンロードの最大数です。この制限を超えるダウンロードはキューに入れられ" +"ます。\n" +"これは curl_parallel_limit よりも低い値でなければなりません。" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "強制読み込みマップブロックの最大数。" @@ -5633,14 +5585,6 @@ msgstr "ノードタイマーの間隔" msgid "Noises" msgstr "ノイズ" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "法線マップのサンプリング" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "法線マップの強さ" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "出現するスレッド数" @@ -5680,10 +5624,6 @@ msgstr "" "これは、SQLiteトランザクションのオーバーヘッドとメモリ消費の間の\n" "トレードオフです (経験則として、4096 = 100MB)。" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "視差遮蔽反復の回数です。" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "オンラインコンテンツリポジトリ" @@ -5711,34 +5651,6 @@ msgstr "" "ウィンドウのフォーカスが失われたときにポーズメニューを開きます。\n" "フォームスペックが開かれているときはポーズメニューを開きません。" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "視差遮蔽効果の全体的バイアス、通常 スケール/2 です。" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "視差遮蔽効果の全体的なスケールです。" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "視差遮蔽" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "視差遮蔽バイアス" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "視差遮蔽反復" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "視差遮蔽モード" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "視差遮蔽スケール" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5829,6 +5741,14 @@ msgstr "ピッチ移動モード切替キー" msgid "Pitch move mode" msgstr "ピッチ移動モード" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "設置キー" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "設置の繰り返し間隔" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6012,10 +5932,6 @@ msgstr "尾根の大きさノイズ" msgid "Right key" msgstr "右キー" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "右クリック繰り返しの間隔" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "河道の深さ" @@ -6307,7 +6223,20 @@ msgstr "デバッグ情報を表示" #: src/settings_translation_file.cpp msgid "Show entity selection boxes" -msgstr "エンティティの選択ボックスを表示" +msgstr "エンティティの選択ボックス表示" + +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"エンティティの選択ボックスを表示\n" +"変更後は再起動が必要です。" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "既定で太字のフォント" #: src/settings_translation_file.cpp msgid "Shutdown message" @@ -6460,10 +6389,6 @@ msgstr "ステップマウンテンの広がりノイズ" msgid "Strength of 3D mode parallax." msgstr "3Dモード視差の強さです。" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "生成された法線マップの強さです。" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6583,6 +6508,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "コンテンツリポジトリのURL" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "ジョイスティックのデッドゾーン" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6657,15 +6586,15 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Irrlichtのレンダリングバックエンド。\n" "変更後は再起動が必要です。\n" -"メモ: Androidでは、不明な場合は OGLES1 を使用してください! \n" -"それ以外の場合アプリは起動に失敗することがあります。\n" -"他のプラットフォームでは、OpenGL が推奨されており、現在それが\n" -"シェーダーをサポートする唯一のドライバです。" +"注意:Android の場合、よくわからない場合は OGLES1 を使用してください!\n" +"そうしないとアプリの起動に失敗することがあります。\n" +"その他のプラットフォームでは、OpenGL が推奨されています。\n" +"シェーダーは OpenGL(デスクトップのみ)と OGLES2(実験的)でサポート" #: src/settings_translation_file.cpp msgid "" @@ -6693,6 +6622,14 @@ msgstr "" "古いキューアイテムを出力してサイズを減らそうとするまでに、液体キューが\n" "処理能力を超えて拡張できる時間(秒単位)。値 0 は機能を無効にします。" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"ABM が各ステップで実行できる時間予算\n" +"(ABM間隔の一部として)" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6703,10 +6640,9 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "マウスの右ボタンを押したまま右クリックを繰り返す秒単位の間隔。" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." +msgstr "設置ボタンを押したままノードの設置を繰り返す秒単位の間隔。" #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6860,6 +6796,25 @@ msgstr "" "可能性があります。\n" "ガンマ補正縮小はサポートされていません。" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"マルチサンプルアンチエイリアス(MSAA)を使用して、ブロックエッジを滑らかにし" +"ます。\n" +"このアルゴリズムは、画像を鮮明に保ちながら3Dビューポートを滑らかにします。\n" +"しかし、それはテクスチャの内部には影響しません\n" +"(これは、透明なテクスチャで特に目立ちます)。\n" +"シェーダーを無効にすると、ノード間に可視スペースが表示されます。\n" +"0 に設定すると、MSAAは無効になります。\n" +"このオプションを変更した場合、再起動が必要です。" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "テクスチャを拡大縮小する場合はトライリニアフィルタリングを使用します。" @@ -7095,6 +7050,12 @@ msgstr "" "無効にした場合、代わりにビットマップおよび XML ベクターフォントが使用されま" "す。" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7107,7 +7068,7 @@ msgid "" "Deprecated, use the setting player_transfer_distance instead." msgstr "" "プレイヤーが範囲制限なしでクライアントに表示されるかどうかです。\n" -"廃止予定、代わりに設定 player_transfer_distance を使用してください。" +"非推奨。代わりに設定 player_transfer_distance を使用してください。" #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." @@ -7249,6 +7210,34 @@ msgstr "低い地形と海底のYレベル。" msgid "Y-level of seabed." msgstr "海底のYレベル。" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"マップブロックをディスクに保存するときに使用する ZLib圧縮レベル。\n" +"-1 - Zlib の規定の圧縮レベル\n" +"0 - 圧縮なし、最速\n" +"9 - 最高の圧縮、最も遅い\n" +"(レベル 1〜3 はZlibの「高速」方式を使用し、4〜9 は通常方式を使用)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"マップブロックをクライアントに送信するときに使用する ZLib圧縮レベル。\n" +"-1 - Zlib の規定の圧縮レベル\n" +"0 - 圧縮なし、最速\n" +"9 - 最高の圧縮、最も遅い\n" +"(レベル 1〜3 はZlibの「高速」方式を使用し、4〜9 は通常方式を使用)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURLファイルダウンロードタイムアウト" @@ -7261,23 +7250,12 @@ msgstr "cURL並行処理制限" msgid "cURL timeout" msgstr "cURLタイムアウト" -#~ msgid "Ok" -#~ msgstr "決定" - -#~ msgid "Back" -#~ msgstr "戻る" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1をインストールしています、お待ちください..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "ディスク上に出現するキューの制限" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差遮蔽強度" - -#~ msgid "Path to save screenshots at." -#~ msgstr "スクリーンショットを保存するパス。" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = 斜面情報付きの視差遮蔽マッピング(高速)。\n" +#~ "1 = リリーフマッピング(正確だが低速)。" #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7290,9 +7268,41 @@ msgstr "cURLタイムアウト" #~ msgid "Alters how mountain-type floatlands taper above and below midpoint." #~ msgstr "山型浮遊大陸が中間点の上下でどのように先細くなるかを変更します。" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "シングルプレイヤーのワールドをリセットしてよろしいですか?" + +#~ msgid "Back" +#~ msgstr "戻る" + +#~ msgid "Bump Mapping" +#~ msgstr "バンプマッピング" + +#~ msgid "Bumpmapping" +#~ msgstr "バンプマッピング" + #~ msgid "Center of light curve mid-boost." #~ msgstr "光度曲線ミッドブーストの中心。" +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "メインメニューUIを変更:\n" +#~ "- Full: 複数のシングルプレイヤーのワールド、ゲームの選択、\n" +#~ "テクスチャパックの選択、その他。\n" +#~ "- Simple: 1つのシングルプレイヤーのワールド、ゲームや\n" +#~ "テクスチャパックの選択はありません。小さな画面で必要かもしれません。" + +#~ msgid "Config mods" +#~ msgstr "Mod設定" + +#~ msgid "Configure" +#~ msgstr "設定" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7303,6 +7313,9 @@ msgstr "cURLタイムアウト" #~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." #~ msgstr "トンネルの幅を制御、小さい方の値ほど広いトンネルを生成します。" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "照準線の色 (R,G,B)。" + #~ msgid "Darkness sharpness" #~ msgstr "暗さの鋭さ" @@ -7313,6 +7326,13 @@ msgstr "cURLタイムアウト" #~ "浮遊大陸の滑らかな地形の地域を定義します。\n" #~ "ノイズが 0 より大きいとき、滑らかな浮遊大陸になります。" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "テクスチャのサンプリング手順を定義します。\n" +#~ "値が大きいほど、法線マップが滑らかになります。" + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7322,12 +7342,49 @@ msgstr "cURLタイムアウト" #~ "す。\n" #~ "大きな洞窟内の溶岩のY高さ上限。" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1をインストールしています、お待ちください..." + #~ msgid "Enable VBO" #~ msgstr "VBOを有効化" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "テクスチャのバンプマッピングを有効にします。法線マップは\n" +#~ "テクスチャパックによって提供されるかまたは自動生成される必要があります。\n" +#~ "シェーダーが有効である必要があります。" + #~ msgid "Enables filmic tone mapping" #~ msgstr "フィルム調トーンマッピング有効にする" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "法線マップ生成を臨機応変に有効にします(エンボス効果)。\n" +#~ "バンプマッピングが有効である必要があります。" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "視差遮蔽マッピングを有効にします。\n" +#~ "シェーダーが有効である必要があります。" + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "実験的なオプションで、0 より大きい数値に設定すると、ブロック間に\n" +#~ "目に見えるスペースが生じる可能性があります。" + +#~ msgid "FPS in pause menu" +#~ msgstr "ポーズメニューでのFPS" + #~ msgid "Floatland base height noise" #~ msgstr "浮遊大陸の基準高さノイズ" @@ -7340,6 +7397,12 @@ msgstr "cURLタイムアウト" #~ msgid "Gamma" #~ msgstr "ガンマ" +#~ msgid "Generate Normal Maps" +#~ msgstr "法線マップの生成" + +#~ msgid "Generate normalmaps" +#~ msgstr "法線マップの生成" + #~ msgid "IPv6 support." #~ msgstr "IPv6 サポート。" @@ -7349,18 +7412,105 @@ msgstr "cURLタイムアウト" #~ msgid "Lightness sharpness" #~ msgstr "明るさの鋭さ" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "ディスク上に出現するキューの制限" + +#~ msgid "Main" +#~ msgstr "メイン" + +#~ msgid "Main menu style" +#~ msgstr "メインメニューのスタイル" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "ミニマップ レーダーモード、ズーム x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "ミニマップ レーダーモード、ズーム x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "ミニマップ 表面モード、ズーム x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "ミニマップ 表面モード、ズーム x4" + +#~ msgid "Name/Password" +#~ msgstr "名前 / パスワード" + +#~ msgid "No" +#~ msgstr "いいえ" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法線マップのサンプリング" + +#~ msgid "Normalmaps strength" +#~ msgstr "法線マップの強さ" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "視差遮蔽反復の回数です。" + +#~ msgid "Ok" +#~ msgstr "決定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "視差遮蔽効果の全体的バイアス、通常 スケール/2 です。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "視差遮蔽効果の全体的なスケールです。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "視差遮蔽バイアス" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "視差遮蔽反復" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "視差遮蔽モード" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "視差遮蔽スケール" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差遮蔽強度" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "TrueTypeフォントまたはビットマップへのパス。" +#~ msgid "Path to save screenshots at." +#~ msgstr "スクリーンショットを保存するパス。" + +#~ msgid "Projecting dungeons" +#~ msgstr "突出するダンジョン" + +#~ msgid "Reset singleplayer world" +#~ msgstr "ワールドをリセット" + +#~ msgid "Select Package File:" +#~ msgstr "パッケージファイルを選択:" + #~ msgid "Shadow limit" #~ msgstr "影の制限" +#~ msgid "Start Singleplayer" +#~ msgstr "シングルプレイスタート" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成された法線マップの強さです。" + #~ msgid "Strength of light curve mid-boost." #~ msgstr "光度曲線ミッドブーストの強さ。" #~ msgid "This font will be used for certain languages." #~ msgstr "このフォントは特定の言語で使用されます。" +#~ msgid "Toggle Cinematic" +#~ msgstr "映画風モード切替" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "浮遊大陸の山の中間点の上と下の典型的な最大高さ。" @@ -7368,26 +7518,26 @@ msgstr "cURLタイムアウト" #~ msgid "Variation of hill height and lake depth on floatland smooth terrain." #~ msgstr "浮遊大陸の滑らかな地形における丘の高さと湖の深さの変動。" +#~ msgid "View" +#~ msgstr "見る" + +#~ msgid "Waving Water" +#~ msgstr "揺れる水" + #~ msgid "Waving water" #~ msgstr "揺れる水" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "ダンジョンが時折地形から突出するかどうか。" + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大きな洞窟内の溶岩のY高さ上限。" + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "浮遊大陸の中間点と湖面のYレベル。" #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "浮遊大陸の影が広がるYレベル。" -#~ msgid "Projecting dungeons" -#~ msgstr "突出するダンジョン" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "ダンジョンが時折地形から突出するかどうか。" - -#~ msgid "Waving Water" -#~ msgstr "揺れる水" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "大きな洞窟内の溶岩のY高さ上限。" - -#~ msgid "Select Package File:" -#~ msgstr "パッケージファイルを選択:" +#~ msgid "Yes" +#~ msgstr "はい" diff --git a/po/jbo/minetest.po b/po/jbo/minetest.po index 35cb5b401..83ccdb9df 100644 --- a/po/jbo/minetest.po +++ b/po/jbo/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Lojban (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-03-15 18:36+0000\n" -"Last-Translator: Robin Townsend \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Wuzzy \n" "Language-Team: Lojban \n" "Language: jbo\n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "tolcanci" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr ".i do morsi" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "fitytu'i" #: builtin/fstk/ui.lua #, fuzzy @@ -41,10 +49,6 @@ msgstr "za'u re'u samjo'e" msgid "The server has requested a reconnect:" msgstr ".i le samtcise'u cu cpedu pa nu za'u re'u co'a samjo'e" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr ".i ca'o samymo'i" - #: builtin/mainmenu/common.lua #, fuzzy msgid "Protocol version mismatch. " @@ -59,12 +63,6 @@ msgstr "le samci'ejudri cu jitro lo du'u ve judrnporte favytcini li $1 " msgid "Server supports protocol versions between $1 and $2. " msgstr "" -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -".i ko troci lo nu za'u re'u samymo'i lo liste be lo'i samse'u .i ko cipcta " -"lo do te samjo'e" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "" @@ -73,7 +71,8 @@ msgstr "" msgid "We support protocol versions between version $1 and $2." msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -81,9 +80,10 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "sisti" +msgstr "fitytoltu'i" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "jai se nitcu" @@ -157,14 +157,54 @@ msgstr "munje" msgid "enabled" msgstr "katci" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr ".i ca'o samymo'i" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "se cmima ro bakfu" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "xruti fi tu'a le ralju liste" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "cfari fa lo nu kelci" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -187,6 +227,16 @@ msgstr "se kelci" msgid "Install" msgstr "samtcise'a" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "samtcise'a" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "na'e se nitcu" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -201,9 +251,24 @@ msgid "No results" msgstr ".i no da ckaji lo se sisku" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "sisku" +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -219,7 +284,11 @@ msgid "Update" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -252,7 +321,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "kevzda" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -275,7 +344,7 @@ msgstr ".i ko kibycpa pa se kelci la'o zoi. minetest.net .zoi" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "kevdi'u" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" @@ -283,11 +352,12 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "lo tumla cu fulta lo tsani" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Floatlands (experimental)" -msgstr "" +msgstr "fulta tumla" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -332,7 +402,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "cmana" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -356,7 +426,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "rirxe" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" @@ -364,9 +434,8 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Seed" -msgstr "cunso jai krasi" +msgstr "cunso namcu" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" @@ -475,11 +544,6 @@ msgstr "" msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "lo samtciselse'u" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "ganda" @@ -524,6 +588,10 @@ msgstr "xruti fi le zmiselcu'a" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "sisku" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "cuxna fi lu'i le datnyveimei" @@ -641,6 +709,20 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr ".i ca'o samymo'i" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +".i ko troci lo nu za'u re'u samymo'i lo liste be lo'i samse'u .i ko cipcta " +"lo do te samjo'e" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -697,7 +779,14 @@ msgid "Credits" msgstr "liste lu'i ro gunka" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "cuxna fi lu'i le datnyveimei" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -717,16 +806,12 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "tcimi'e" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "finti se kelci" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "" +msgstr "pilno lo selxai" #: builtin/mainmenu/tab_local.lua #, fuzzy @@ -742,8 +827,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "cmene .i lerpoijaspu" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -753,6 +838,10 @@ msgstr "cnino" msgid "No world created or selected!" msgstr ".i do no munje cu cupra ja cu cuxna" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "lo lerpoijaspu" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "co'a kelci" @@ -761,6 +850,11 @@ msgstr "co'a kelci" msgid "Port" msgstr "judrnporte" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr ".i ko cuxna fi lu'i le munje" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr ".i ko cuxna fi lu'i le munje" @@ -775,25 +869,25 @@ msgstr "co'a kelci" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "judri .i judrnporte" +msgstr "lo samjudri jo'u judrnporte" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "co'a samjo'e" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "finti se kelci" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "co'u cmima lu'i ro nelci se tcita" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "nelci se tcita" @@ -801,16 +895,16 @@ msgstr "nelci se tcita" msgid "Join Game" msgstr "co'a kansa fi le ka kelci" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "cmene .i lerpoijaspu" +msgstr "lo cmene .e lo lerpoijaspu" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr ".pin. temci" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -819,9 +913,8 @@ msgid "2x" msgstr "" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "3D Clouds" -msgstr "le bliku dilnu" +msgstr "cibyca'u dilnu" #: builtin/mainmenu/tab_settings.lua msgid "4x" @@ -839,10 +932,6 @@ msgstr "se cmima ro te tcimi'e" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr ".i xu do djica le nu xruti le do nonselkansa munje" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -851,11 +940,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "puvyrelyli'iju'e" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Bump Mapping" -msgstr "lo puvrmipmepi" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -871,31 +955,20 @@ msgid "Fancy Leaves" msgstr "lo tolkli pezli" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Mipmap" msgstr "lo puvrmipmepi" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Mipmap + Aniso. Filter" msgstr "lo puvrmipmepi .e lo puvytolmanfyju'e" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "na go'i" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "No Mipmap" -msgstr "lo puvrmipmepi" +msgstr "" #: builtin/mainmenu/tab_settings.lua #, fuzzy @@ -917,22 +990,12 @@ msgid "Opaque Leaves" msgstr "lo tolkli pezli" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Opaque Water" -msgstr "lo tolkli djacu" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" +msgstr "tolkli djacu" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Particles" -msgstr "lo kantu" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "xruti le nonselkansa munje" +msgstr "kantu" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" @@ -946,6 +1009,11 @@ msgstr "te tcimi'e" msgid "Shaders" msgstr "ti'orkemsamtci" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "ti'orkemsamtci to na kakne toi" + #: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Shaders (unavailable)" @@ -997,22 +1065,6 @@ msgstr ".i ca'o samymo'i lo me la'o gy.node.gy." msgid "Waving Plants" msgstr "lo melbi pezli" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "go'i" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "ralju" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "co'a nonselkansa kelci" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1186,18 +1238,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1287,16 +1336,6 @@ msgstr "selpli" msgid "Fog enabled" msgstr "selpli" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "selpli" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "selpli" - #: src/client/game.cpp msgid "Game info:" msgstr ".i datni le se kelci" @@ -1318,16 +1357,6 @@ msgstr ".i ca'o samymo'i tu'a le dacti" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "selpli" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "katci" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1340,34 +1369,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1413,10 +1414,6 @@ msgstr ".i da poi na du le samtci pe do cu samtcise'u" msgid "Resolving address..." msgstr ".i ca'o sisku le ka se judri da kau" -#: src/client/game.cpp -msgid "Respawn" -msgstr "tolcanci" - #: src/client/game.cpp msgid "Shutting down..." msgstr ".i ca'o sisti" @@ -1427,7 +1424,7 @@ msgstr "nonselkansa" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "ni sance" #: src/client/game.cpp #, fuzzy @@ -1465,16 +1462,12 @@ msgstr "" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr ".i fe lo ni sance cu cenba fi li %d ce'i" #: src/client/game.cpp msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr ".i do morsi" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1491,16 +1484,6 @@ msgstr ".i ca mipri le tavla .uidje" msgid "Chat shown" msgstr ".i ca viska le tavla .uidje" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr ".i ca mipri le tavla .uidje" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr ".i ca viska le tavla .uidje" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr ".i ca mipri le crakemsazycimde" @@ -1590,9 +1573,8 @@ msgid "Insert" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Left" -msgstr "za'i zu'e muvdu" +msgstr "zu'e muvdu" #: src/client/keycode.cpp msgid "Left Button" @@ -1718,9 +1700,8 @@ msgid "Return" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Right" -msgstr "za'i ri'u muvdu" +msgstr "ri'u muvdu" #: src/client/keycode.cpp msgid "Right Button" @@ -1789,6 +1770,24 @@ msgstr "la'o gy.X Button 2.gy." msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr ".i lu'i le re lerpoijaspu na simxu le ka mintu" @@ -1825,29 +1824,8 @@ msgid "Automatic jumping" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Backward" -msgstr "za'i ti'a muvdu" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" +msgstr "ti'a muvdu" #: src/gui/guiKeyChangeMenu.cpp #, fuzzy @@ -1872,21 +1850,19 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "" +msgstr "jdikygau lo ni sance" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Drop" -msgstr "mu'e falcru" +msgstr "falcru" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Forward" -msgstr "za'i ca'u muvdu" +msgstr "ca'u muvdu" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" @@ -1894,7 +1870,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "zengau lo ni sance" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" @@ -1945,30 +1921,11 @@ msgstr "masno cadzu" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "za'i masno cadzu" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "mu'e co'a jonai mo'u vofli" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Toggle HUD" msgstr "mu'e co'a jonai mo'u vofli" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "mu'e co'a jonai mo'u vofli" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Toggle chat log" @@ -2090,12 +2047,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2125,9 +2076,8 @@ msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D clouds" -msgstr "le bliku dilnu" +msgstr "cibyca'u dilnu" #: src/settings_translation_file.cpp msgid "3D mode" @@ -2204,6 +2154,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2440,10 +2394,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2514,16 +2464,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2685,6 +2625,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2743,7 +2687,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2751,7 +2697,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2850,12 +2798,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2928,8 +2870,12 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "za'i ri'u muvdu" + +#: src/settings_translation_file.cpp msgid "Digging particles" -msgstr "lo kantu" +msgstr "kakpa kantu" #: src/settings_translation_file.cpp #, fuzzy @@ -2989,7 +2935,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3076,14 +3022,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3092,18 +3030,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3120,12 +3046,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3137,7 +3057,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3440,10 +3360,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3498,8 +3414,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3966,6 +3882,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4046,6 +3966,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4145,6 +4072,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4704,11 +4638,6 @@ msgstr "" msgid "Main menu script" msgstr "lo ralju" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "lo ralju" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4722,6 +4651,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4886,7 +4823,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4934,6 +4871,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5044,7 +4988,6 @@ msgid "Minimum texture size" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mipmapping" msgstr "lo puvrmipmepi" @@ -5165,14 +5108,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5198,10 +5133,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5227,34 +5158,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5321,6 +5224,15 @@ msgstr "le nu finti kelci" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "le nu finti kelci" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5478,10 +5390,6 @@ msgstr "" msgid "Right key" msgstr "za'i ri'u muvdu" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5735,6 +5643,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5868,10 +5786,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5965,6 +5879,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6024,8 +5942,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6049,6 +5967,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6057,9 +5981,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6195,6 +6118,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6296,9 +6230,8 @@ msgid "Virtual joystick triggers aux button" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Volume" -msgstr "lo ni sance " +msgstr "lo ni sance" #: src/settings_translation_file.cpp msgid "" @@ -6404,6 +6337,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6527,6 +6466,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6539,15 +6496,47 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "je'e" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr ".i xu do djica le nu xruti le do nonselkansa munje" #~ msgid "Back" #~ msgstr "xruti" +#, fuzzy +#~ msgid "Bump Mapping" +#~ msgstr "lo puvrmipmepi" + +#~ msgid "Configure" +#~ msgstr "tcimi'e" + #~ msgid "Downloading and installing $1, please wait..." #~ msgstr ".i ca'o kibycpa la'o zoi. $1 .zoi je cu samtcise'a ri .i ko denpa" #, fuzzy #~ msgid "Enable VBO" #~ msgstr "selpli" + +#~ msgid "Main" +#~ msgstr "ralju" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "lo ralju" + +#~ msgid "Name/Password" +#~ msgstr "cmene .i lerpoijaspu" + +#~ msgid "No" +#~ msgstr "na go'i" + +#~ msgid "Ok" +#~ msgstr "je'e" + +#~ msgid "Reset singleplayer world" +#~ msgstr "xruti le nonselkansa munje" + +#~ msgid "Start Singleplayer" +#~ msgstr "co'a nonselkansa kelci" + +#~ msgid "Yes" +#~ msgstr "go'i" diff --git a/po/kk/minetest.po b/po/kk/minetest.po index 23185bc1b..26fdf44e8 100644 --- a/po/kk/minetest.po +++ b/po/kk/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Kazakh (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-09-09 01:23+0000\n" "Last-Translator: Fontan 030 \n" "Language-Team: Kazakh \n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "" msgid "The server has requested a reconnect:" msgstr "" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Жүктелуде..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "" @@ -54,10 +58,6 @@ msgstr "" msgid "Server supports protocol versions between $1 and $2. " msgstr "" -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "" @@ -66,7 +66,8 @@ msgstr "" msgid "We support protocol versions between version $1 and $2." msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -76,7 +77,8 @@ msgstr "" msgid "Cancel" msgstr "Болдырмау" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "" @@ -147,14 +149,53 @@ msgstr "" msgid "enabled" msgstr "қосылған" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Жүктелуде..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -176,6 +217,15 @@ msgstr "Ойындар" msgid "Install" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Жою" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -190,9 +240,25 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Іздеу" +#, fuzzy +msgid "No updates" +msgstr "Жаңарту" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -207,7 +273,11 @@ msgid "Update" msgstr "Жаңарту" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -457,10 +527,6 @@ msgstr "" msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "" @@ -505,6 +571,10 @@ msgstr "" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Іздеу" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -620,6 +690,18 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Жүктелуде..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -673,7 +755,13 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -693,14 +781,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -717,7 +801,7 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -728,6 +812,11 @@ msgstr "Жаңа" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Құпия сөзді өзгерту" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -736,6 +825,10 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -752,23 +845,23 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" @@ -776,16 +869,16 @@ msgstr "" msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -813,21 +906,13 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" +msgstr "Бисызықты фильтрация" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" @@ -841,10 +926,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -853,10 +934,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Жоқ" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -875,7 +952,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "None" -msgstr "" +msgstr "Жоқ" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" @@ -885,17 +962,9 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" +msgstr "Бөлшектер" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" @@ -909,6 +978,10 @@ msgstr "Баптаулар" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -923,7 +996,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "" +msgstr "Текстурлеу:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." @@ -939,7 +1012,7 @@ msgstr "" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "Үшсызықты фильтрация" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" @@ -953,22 +1026,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Иә" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1098,7 +1155,7 @@ msgstr "" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "Құпия сөзді өзгерту" #: src/client/game.cpp msgid "Cinematic mode disabled" @@ -1128,18 +1185,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1226,15 +1280,6 @@ msgstr "" msgid "Fog enabled" msgstr "Тұман қосылды" -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Тұман қосылды" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1255,15 +1300,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "қосылған" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1276,34 +1312,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Миникарта жасырылды" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1348,10 +1356,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1404,10 +1408,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1424,16 +1424,6 @@ msgstr "Чат жасырылды" msgid "Chat shown" msgstr "Чат көрсетілді" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Чат жасырылды" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Чат көрсетілді" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD жасырылды" @@ -1714,6 +1704,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Миникарта жасырылды" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1752,26 +1760,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" @@ -1864,26 +1852,10 @@ msgstr "" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -1993,12 +1965,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2105,6 +2071,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2338,10 +2308,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2412,16 +2378,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2573,6 +2529,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2630,7 +2590,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2638,7 +2600,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2737,12 +2701,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2813,6 +2771,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2874,7 +2836,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2961,14 +2923,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -2977,18 +2931,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3005,12 +2947,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3022,7 +2958,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3323,10 +3259,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3381,8 +3313,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3848,6 +3780,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3927,6 +3863,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4026,6 +3969,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4583,10 +4533,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4600,6 +4546,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4764,7 +4718,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4812,6 +4766,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5041,14 +5002,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5074,10 +5027,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5103,34 +5052,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5196,6 +5117,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5351,10 +5280,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5606,6 +5531,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5735,10 +5670,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5832,6 +5763,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5891,8 +5826,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5916,6 +5851,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5924,9 +5865,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6061,6 +6001,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6131,7 +6082,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Video driver" -msgstr "" +msgstr "Видеодрайвер" #: src/settings_translation_file.cpp msgid "View bobbing factor" @@ -6186,7 +6137,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking speed" -msgstr "" +msgstr "Жүру жылдамдығы" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." @@ -6263,6 +6214,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6351,7 +6308,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "" +msgstr "Үлкен үңгірлердің жоғарғы шегінің Y координаты." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." @@ -6385,6 +6342,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6396,3 +6371,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL timeout" msgstr "" + +#~ msgid "Main" +#~ msgstr "Басты мәзір" + +#~ msgid "No" +#~ msgstr "Жоқ" + +#~ msgid "Yes" +#~ msgstr "Иә" diff --git a/po/kn/minetest.po b/po/kn/minetest.po index e34131e52..d820e246c 100644 --- a/po/kn/minetest.po +++ b/po/kn/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Kannada (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-01-02 07:29+0000\n" +"Last-Translator: Tejaswi Hegde \n" "Language-Team: Kannada \n" "Language: kn\n" @@ -12,21 +12,27 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "ಮತ್ತೆ ಹುಟ್ಟು" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "ನೀನು ಸತ್ತುಹೋದೆ" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "ಸರಿ" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "ಒಂದು ಲುವಾ ಸ್ಕ್ರಿಪ್ಟ್ ನಲ್ಲಿ ತಪ್ಪಾಗಿದೆ, ಉದಾಹರಣೆ ಮಾಡ್‍ನಲ್ಲಿ" +msgstr "ಒಂದು ಲುವಾ ಸ್ಕ್ರಿಪ್ಟ್ ನಲ್ಲಿ ತಪ್ಪಾಗಿದೆ:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" -msgstr "ಒಂದು ತಪ್ಪಾಗಿದೆ:" +msgstr "ದೋಷ ವೊಂದು ಸಂಭವಿಸಿದೆ:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -40,10 +46,6 @@ msgstr "ಮರುಸಂಪರ್ಕಿಸು" msgid "The server has requested a reconnect:" msgstr "ಸರ್ವರ್ ಮರುಸಂಪರ್ಕ ಮಾಡಲು ಕೇಳಿದೆ:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "ಲೋಡ್ ಆಗುತ್ತಿದೆ..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "ಪ್ರೋಟೋಕಾಲ್ ಆವೃತ್ತಿ ಹೊಂದಿಕೆಯಾಗಿಲ್ಲ. " @@ -53,17 +55,8 @@ msgid "Server enforces protocol version $1. " msgstr "ಸರ್ವರ್ ಪ್ರೋಟೋಕಾಲ್ ಆವೃತ್ತಿ $1 ಅನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ. " #: builtin/mainmenu/common.lua -#, fuzzy msgid "Server supports protocol versions between $1 and $2. " -msgstr "" -"ಸರ್ವರ್ $1 ಮತ್ತು $2 ನಡುವೆಯ ಪ್ರೋಟೋಕಾಲ್ \n" -"ಅವೃತ್ತಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"ಪಬ್ಲಿಕ್ ಸರ್ವರ್ಲಿಸ್ಟ್ಅನ್ನು ರಿಎನೆಬಲ್ ಮಾಡಿ ಮತ್ತು ಅಂತರ್ಜಾಲ ಸಂಪರ್ಕ \n" -"ಪರಿಶೀಲಿಸಿ." +msgstr "ಸರ್ವರ್ $1 ಮತ್ತು $2 ನಡುವೆಯ ಪ್ರೋಟೋಕಾಲ್ ಅವೃತ್ತಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." @@ -73,7 +66,8 @@ msgstr "ನಾವು $ 1 ಪ್ರೋಟೋಕಾಲ್ ಆವೃತ್ತಿಯ msgid "We support protocol versions between version $1 and $2." msgstr "ಆವೃತ್ತಿ $1 ಮತ್ತು $2 ನಡುವಿನ ಪ್ರೋಟೋಕಾಲ್ ಆವೃತ್ತಿಯನ್ನು ನಾವು ಬೆಂಬಲಿಸುತ್ತೇವೆ." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -83,7 +77,8 @@ msgstr "ಆವೃತ್ತಿ $1 ಮತ್ತು $2 ನಡುವಿನ ಪ್ರ msgid "Cancel" msgstr "ರದ್ದುಮಾಡಿ" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "ಅವಲಂಬನೆಗಳು:" @@ -93,7 +88,7 @@ msgstr "ಎಲ್ಲವನ್ನೂ ನಿಷ್ಕ್ರಿಯೆಗೊಳ #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "ಮಾಡ್ ಪ್ಯಾಕ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -101,47 +96,43 @@ msgstr "ಎಲ್ಲವನ್ನೂ ಸಕ್ರಿಯಗೊಳಿಸಿ" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "" +msgstr "ಮಾಡ್ ಪ್ಯಾಕ್ ಕ್ರಿಯಾತ್ಮಕಗೊಳಿಸಿ" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"\"$1\" ಮಾಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಅದು ಅನುಮತಿಸದ ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. " -"ಮಾತ್ರ chararacters [a-z0-9_] ಅನುಮತಿಸಲಾಗಿದೆ." +"ಅನುಮತಿಸದೇ ಇರುವ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುವ ುದರಿಂದ mod \"$1\" ಅನ್ನು ಕ್ರಿಯಾತ್ಮಕಗೊಳಿಸಲು " +"ವಿಫಲವಾಗಿದೆ. ಕೇವಲ ಅಕ್ಷರಗಳನ್ನು [a-z0-9_] ಗೆ ಮಾತ್ರ ಅನುಮತಿಸಲಾಗುತ್ತದೆ." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "ಇನ್ನಷ್ಟು ಮಾಡ್ ಗಳನ್ನು ಹುಡುಕಿ" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "ಮಾಡ್:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳು:" +msgstr "(ಐಚ್ಛಿಕ) ಅವಲಂಬನೆಗಳು ಇಲ್ಲ" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "ಯಾವುದೇ ಆಟದ ವಿವರಣೆ ಒದಗಿಸಿಲ್ಲ." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳು:" +msgstr "ಯಾವುದೇ ಗಟ್ಟಿ ಅವಲಂಬನೆಗಳಿಲ್ಲ" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "ಯಾವುದೇ ಮಾಡ್ಪ್ಯಾಕ್ ವಿವರಣೆ ಕೊಟ್ಟಿಲ್ಲ." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳು:" +msgstr "ಯಾವುದೇ ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳಿಲ್ಲ" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -160,22 +151,60 @@ msgstr "ಪ್ರಪಂಚ:" msgid "enabled" msgstr "ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "ಡೌನ್ ಲೋಡ್ ಆಗುತ್ತಿದೆ..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "ಎಲ್ಲಾ ಪ್ಯಾಕೇಜುಗಳು" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "ಮುಖ್ಯ ಮೆನುಗೆ ಹಿಂತಿರುಗಿ" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" +msgid "Base Game:" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "cURL ಇಲ್ಲದೆ ಮೈನ್ ಟೆಸ್ಟ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಿದಾಗ ContentDB ಲಭ್ಯವಿಲ್ಲ" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "ಲೋಡ್ ಆಗುತ್ತಿದೆ..." +msgstr "ಡೌನ್ ಲೋಡ್ ಆಗುತ್ತಿದೆ..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -190,6 +219,16 @@ msgstr "ಆಟಗಳು" msgid "Install" msgstr "ಇನ್ಸ್ಟಾಲ್" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "ಇನ್ಸ್ಟಾಲ್" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "ಐಚ್ಛಿಕ ಅವಲಂಬನೆಗಳು:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -197,16 +236,32 @@ msgstr "ಮಾಡ್‍ಗಳು" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "ಯಾವುದೇ ಪ್ಯಾಕೇಜ್ ಗಳನ್ನು ಪಡೆಯಲಾಗಲಿಲ್ಲ" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "ಫಲಿತಾಂಶಗಳಿಲ್ಲ" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "ಹುಡುಕು" +#, fuzzy +msgid "No updates" +msgstr "ನವೀಕರಿಸಿ" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -221,16 +276,20 @@ msgid "Update" msgstr "ನವೀಕರಿಸಿ" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "" +msgstr "\"$1\" ಹೆಸರಿನ ಒಂದು ಪ್ರಪಂಚವು ಈಗಾಗಲೇ ಇದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "ಹೆಚ್ಚುವರಿ ಭೂಪ್ರದೇಶ" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -241,133 +300,149 @@ msgid "Altitude dry" msgstr "" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biome blending" -msgstr "" +msgstr "ಪ್ರದೇಶ ಮಿಶ್ರಣ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biomes" -msgstr "" +msgstr "ಪ್ರದೇಶಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Caverns" -msgstr "" +msgstr "ಗುಹೆಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Caves" -msgstr "" +msgstr "ಗುಹೆಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Create" -msgstr "" +msgstr "ರಚಿಸು" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "ಅಲಂಕಾರಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" +msgstr "minetest.net ನಿಂದ ಮೈನ್ಟೆಸ್ಟ್ ಗೇಮ್ ನಂತಹ ಆಟವನ್ನು ಡೌನ್ ಲೋಡ್ ಮಾಡಿ" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "minetest.net ಇಂದ ಒಂದನ್ನು ಡೌನ್ ಲೋಡ್ ಮಾಡಿ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Dungeons" -msgstr "" +msgstr "ಡಂಗೆನ್ಸ್" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "ಸಮತಟ್ಟಾದ ಭೂಪ್ರದೇಶ" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "ಆಕಾಶದಲ್ಲಿ ತೇಲುತ್ತಿರುವ ಭೂಭಾಗಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Floatlands (experimental)" -msgstr "" +msgstr "ತೇಲುವ ಭೂಮಿಗಳು (ಪ್ರಾಯೋಗಿಕ)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "" +msgstr "ಆಟ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "ಫ್ರಾಕ್ಟಲ್ ಅಲ್ಲದ ಭೂಪ್ರದೇಶ ಸೃಷ್ಟಿಸಿ: ಸಾಗರಗಳು ಮತ್ತು ಭೂಗರ್ಭ" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "ಬೆಟ್ಟಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Humid rivers" -msgstr "" +msgstr "ಆರ್ದ್ರ ನದಿಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "ನದಿಗಳ ಸುತ್ತ ತೇವಾಂಶ ವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "ಕೆರೆ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "ಕಡಿಮೆ ಆರ್ದ್ರತೆ ಮತ್ತು ಅಧಿಕ ಶಾಖವು ಆಳವಿಲ್ಲದ ಅಥವಾ ಶುಷ್ಕ ನದಿಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +#, fuzzy msgid "Mapgen" -msgstr "" +msgstr "ಮ್ಯಾಪ್ಜೆನ್" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +#, fuzzy msgid "Mapgen flags" -msgstr "" +msgstr "ಮ್ಯಾಪ್ಜೆನ್ ಧ್ವಜಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Mapgen-specific flags" -msgstr "" +msgstr "ಮ್ಯಾಪ್ಜೆನ್-ನಿರ್ದಿಷ್ಟ ಧ್ವಜಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "ಪರ್ವತಗಳು" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Mud flow" -msgstr "" +msgstr "ಮಣ್ಣಿನ ಹರಿವು" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "ಸುರಂಗಗಳು ಮತ್ತು ಗುಹೆಗಳ ಜಾಲ" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" -msgstr "" +msgstr "ಯಾವುದೇ ಆಟ ಆಯ್ಕೆಯಾಗಿಲ್ಲ" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "ಎತ್ತರದಲ್ಲಿ ಶಾಖವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "ಎತ್ತರದಲ್ಲಿ ತೇವಾಂಶವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "ನದಿಗಳು" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "ಸಮುದ್ರ ಮಟ್ಟದಲ್ಲಿರುವ ನದಿಗಳು" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Seed" -msgstr "" +msgstr "ಬೀಜ" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Smooth transition between biomes" -msgstr "" +msgstr "ಪ್ರದೇಶಗಳ ನಡುವೆ ಸುಗಮವಾದ ಸ್ಥಿತ್ಯಂತರ" #: builtin/mainmenu/dlg_create_world.lua msgid "" @@ -471,10 +546,6 @@ msgstr "" msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "" @@ -519,6 +590,10 @@ msgstr "" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "ಹುಡುಕು" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -634,6 +709,18 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "ಲೋಡ್ ಆಗುತ್ತಿದೆ..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "ಪಬ್ಲಿಕ್ ಸರ್ವರ್ಲಿಸ್ಟ್ಅನ್ನು ರಿಎನೆಬಲ್ ಮಾಡಿ ಮತ್ತು ಅಂತರ್ಜಾಲ ಸಂಪರ್ಕ ಪರಿಶೀಲಿಸಿ." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -687,7 +774,13 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -707,14 +800,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -731,7 +820,7 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -742,6 +831,10 @@ msgstr "" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -750,6 +843,10 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -766,23 +863,23 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" @@ -790,16 +887,16 @@ msgstr "" msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -827,10 +924,6 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -839,10 +932,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -855,10 +944,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -867,10 +952,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -899,18 +980,10 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "" @@ -923,6 +996,11 @@ msgstr "" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "ತೇಲುವ ಭೂಮಿಗಳು (ಪ್ರಾಯೋಗಿಕ)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -967,22 +1045,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1142,18 +1204,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1240,15 +1299,6 @@ msgstr "" msgid "Fog enabled" msgstr "" -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1269,15 +1319,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1290,34 +1331,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1362,10 +1375,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "ಮತ್ತೆ ಹುಟ್ಟು" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1418,10 +1427,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "ನೀನು ಸತ್ತುಹೋದೆ" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1438,14 +1443,6 @@ msgstr "" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1726,6 +1723,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1764,26 +1779,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" @@ -1876,26 +1871,10 @@ msgstr "" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -2005,12 +1984,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2117,6 +2090,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2350,10 +2327,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2424,16 +2397,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2585,6 +2548,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2642,7 +2609,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2650,7 +2619,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2749,12 +2720,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2825,6 +2790,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2886,7 +2855,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2973,14 +2942,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -2989,18 +2950,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3017,12 +2966,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3034,7 +2977,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3335,10 +3278,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3393,8 +3332,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3860,6 +3799,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3939,6 +3882,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4038,6 +3988,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4595,10 +4552,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4612,6 +4565,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4776,7 +4737,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4824,6 +4785,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5053,14 +5021,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5086,10 +5046,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5115,34 +5071,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5208,6 +5136,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5363,10 +5299,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5618,6 +5550,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5747,10 +5689,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5844,6 +5782,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5903,8 +5845,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5928,6 +5870,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5936,9 +5884,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6073,6 +6020,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6275,6 +6233,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6397,6 +6361,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6409,11 +6391,15 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "ಸರಿ" - #~ msgid "Back" #~ msgstr "ಹಿಂದೆ" #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "$1 ಡೌನ್ಲೋಡ್ ಮತ್ತು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ, ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ..." + +#~ msgid "Ok" +#~ msgstr "ಸರಿ" + +#, fuzzy +#~ msgid "View" +#~ msgstr "ತೋರಿಸು" diff --git a/po/ko/minetest.po b/po/ko/minetest.po index 7e9dcfaca..d08dc7d72 100644 --- a/po/ko/minetest.po +++ b/po/ko/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Korean (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-12-05 15:29+0000\n" +"Last-Translator: HunSeongPark \n" "Language-Team: Korean \n" "Language: ko\n" @@ -12,19 +12,25 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 4.4-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "리스폰" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "사망했습니다" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "확인" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Lua 스크립트에서 오류가 발생했습니다. 해당 모드:" +msgstr "Lua 스크립트에서 오류가 발생했습니다:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" msgstr "오류가 발생했습니다:" @@ -40,10 +46,6 @@ msgstr "재접속" msgid "The server has requested a reconnect:" msgstr "서버에 재접속 하세요:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "불러오는 중..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "프로토콜 버전이 알맞지 않습니다. " @@ -56,10 +58,6 @@ msgstr "서버는 프로토콜 버전 $1을(를) 사용합니다. " msgid "Server supports protocol versions between $1 and $2. " msgstr "서버가 프로토콜 버전 $1와(과) $2 두 가지를 제공합니다. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "인터넷 연결을 확인한 후 서버 목록을 새로 고쳐보세요." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "프로토콜 버전 $1만 제공합니다." @@ -68,7 +66,8 @@ msgstr "프로토콜 버전 $1만 제공합니다." msgid "We support protocol versions between version $1 and $2." msgstr "프로토콜 버전 $1와(과) $2 사이의 버전을 제공합니다." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,73 +77,66 @@ msgstr "프로토콜 버전 $1와(과) $2 사이의 버전을 제공합니다." msgid "Cancel" msgstr "취소" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "필수적인 모드:" +msgstr "의존:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "모두 비활성화" +msgstr "모두 사용안함" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable modpack" -msgstr "비활성화됨" +msgstr "모드 팩 비활성화" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" msgstr "모두 활성화" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Enable modpack" -msgstr "모드 팩 이름 바꾸기:" +msgstr "모드 팩 활성화" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"\"$1\"은(는) 사용할 수 없는 문자이기에 모드를 활성화하지 못 했습니다. 이름에" -"는 [a-z0-9_]만 사용할 수 있습니다." +"\"$1\"은(는) 사용할 수 없는 문자이기에 모드를 활성화하지 못했습니다. 이름에" +"는 [a-z,0-9,_]만 사용할 수 있습니다." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "더 많은 모드 찾기" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "모드:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "선택적인 모드:" +msgstr "종속성 없음 (옵션)" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No game description provided." -msgstr "모드 설명이 없습니다" +msgstr "게임 설명이 제공되지 않았습니다." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "요구사항 없음." +msgstr "요구사항 없음" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No modpack description provided." -msgstr "모드 설명이 없습니다" +msgstr "모드 설명이 제공되지 않았습니다." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "선택적인 모드:" +msgstr "선택되지 않은 종속성" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "선택적인 모드:" +msgstr "종속성 선택:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -159,28 +151,66 @@ msgstr "세계:" msgid "enabled" msgstr "활성화됨" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "다운 받는 중..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "모든 패키지" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy +msgid "Already installed" +msgstr "이미 사용하고 있는 키입니다" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" -msgstr "주 메뉴" +msgstr "주 메뉴로 돌아가기" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "호스트 게임" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "cURL 없이 Minetest를 컴파일한 경우 ContentDB를 사용할 수 없습니다" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "불러오는 중..." +msgstr "다운 받는 중..." #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Failed to download $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1을 다운로드하는 데에 실패했습니다" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -191,6 +221,16 @@ msgstr "게임" msgid "Install" msgstr "설치" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "설치" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "종속성 선택:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -205,100 +245,109 @@ msgid "No results" msgstr "결과 없음" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "찾기" +#, fuzzy +msgid "No updates" +msgstr "업데이트" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Texture packs" -msgstr "텍스쳐 팩" +msgstr "텍스처 팩" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Uninstall" -msgstr "설치" +msgstr "제거" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" msgstr "업데이트" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "\"$1\" 이름의 세계가 이미 존재합니다" +msgstr "\"$1\" 이름의 세계은(는) 이미 존재합니다" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "추가 지형" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "한랭 고도" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "건조한 고도" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "강 소리" +msgstr "혼합 생물 군계" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "강 소리" +msgstr "생물 군계" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "동굴 잡음 #1" +msgstr "석회동굴" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "동굴 잡음 #1" +msgstr "동굴" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "만들기" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "모드 정보:" +msgstr "장식" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "minetest.net에서 minetest_game 같은 서브 게임을 다운로드하세요." +msgstr "minetest.net에서 Minetest Game 같은 서브 게임을 다운로드하세요" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" msgstr "minetest.net에서 다운로드 하세요" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "강 소리" +msgstr "던전" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "평평한 지형" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Floatland의 산 밀집도" +msgstr "하늘에 떠있는 광대한 대지" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Floatland의 높이" +msgstr "평평한 땅 (실험용)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -306,28 +355,27 @@ msgstr "게임" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "추상적이지 않은 지형 생성: 바다와 지하" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "언덕" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "비디오 드라이버" +msgstr "습한 강" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "강 주변의 습도 증가" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "호수" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "낮은 습도와 높은 열로 인해 얕거나 건조한 강이 발생함" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -335,46 +383,43 @@ msgstr "세계 생성기" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "세계 생성기 신호" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Mapgen 이름" +msgstr "세계 생성기-특정 신호" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "산" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "진흙 흐름" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "터널과 동굴의 네트워크" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "No game selected" -msgstr "범위 선택" +msgstr "선택된 게임이 없습니다" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "고도에 따른 열 감소" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "고도에 따른 습도 감소" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "강 크기" +msgstr "강" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "해수면 강" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -383,61 +428,58 @@ msgstr "시드" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "생물 군계 간 부드러운 전환" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"지형에 나타나는 구조물 (v6에서 만든 나무와 정글 및 풀에는 영향을 주지 않음)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "지형에 나타나는 구조물(일반적으로 나무와 식물)" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "온대, 사막" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "온대, 사막, 정글" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "온대, 사막, 정글, 툰드라(한대), 침엽수 삼림 지대" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "지형 높이" +msgstr "침식된 지형" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "나무와 정글 , 풀" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "강 깊이" +msgstr "강 깊이 변화" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "지하의 큰 동굴의 깊이 변화" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "경고: 'minimal develop test'는 개발자를 위한 것입니다." +msgstr "경고: Development Test는 개발자를 위한 모드입니다." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "세계 이름" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "You have no games installed." -msgstr "서브게임을 설치하지 않았습니다." +msgstr "게임이 설치되어 있지 않습니다." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -450,14 +492,12 @@ msgid "Delete" msgstr "삭제" #: builtin/mainmenu/dlg_delete_content.lua -#, fuzzy msgid "pkgmgr: failed to delete \"$1\"" -msgstr "Modmgr: \"$1\"을(를) 삭제하지 못했습니다" +msgstr "pkgmgr: \"$1\"을(를) 삭제하지 못했습니다" #: builtin/mainmenu/dlg_delete_content.lua -#, fuzzy msgid "pkgmgr: invalid path \"$1\"" -msgstr "Modmgr: \"$1\"을(를) 인식할 수 없습니다" +msgstr "pkgmgr: 잘못된 경로\"$1\"" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" @@ -476,15 +516,16 @@ msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" +"이 모드팩에는 modpack.conf에 명시적인 이름이 부여되어 있으며, 이는 여기서 이" +"름을 바꾸는 것을 적용하지 않습니다." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" msgstr "(설정에 대한 설명이 없습니다)" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "2D Noise" -msgstr "소리" +msgstr "2차원 소음" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -494,11 +535,6 @@ msgstr "< 설정 페이지로 돌아가기" msgid "Browse" msgstr "열기" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "클라이언트" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "비활성화됨" @@ -512,20 +548,18 @@ msgid "Enabled" msgstr "활성화됨" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Lacunarity" -msgstr "보안" +msgstr "빈약도" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" -msgstr "" +msgstr "옥타브" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Offset" -msgstr "" +msgstr "오프셋" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Persistance" msgstr "플레이어 전송 거리" @@ -543,17 +577,19 @@ msgstr "기본값 복원" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" -msgstr "" +msgstr "스케일" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "찾기" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select directory" -msgstr "선택한 모드 파일:" +msgstr "경로를 선택하세요" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select file" -msgstr "선택한 모드 파일:" +msgstr "파일 선택" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -569,27 +605,27 @@ msgstr "값이 $1을 초과하면 안 됩니다." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" -msgstr "" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "" +msgstr "X 분산" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" -msgstr "" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "" +msgstr "Y 분산" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" -msgstr "" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "" +msgstr "Z 분산" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -597,15 +633,14 @@ msgstr "" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "absvalue" -msgstr "" +msgstr "절댓값" #. ~ "defaults" is a noise parameter flag. #. It describes the default processing options #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "defaults" -msgstr "기본 게임" +msgstr "기본값" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -613,115 +648,110 @@ msgstr "기본 게임" #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "eased" -msgstr "" +msgstr "맵 부드러움" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 (Enabled)" -msgstr "활성화됨" +msgstr "$1 (활성화됨)" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "$1 mods" -msgstr "3D 모드" +msgstr "$1 모드" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "$1을 $2에 설치하는데 실패했습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install Mod: Unable to find real mod name for: $1" msgstr "모드 설치: $1를(을) 찾을 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "설치 모드: 모드 팩 $1 (이)의 올바른 폴더이름을 찾을 수 없습니다" +msgstr "모드 설치: 모드 팩 $1 (이)의 올바른 폴더이름을 찾을 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" -"\n" -"모드 설치: \"$1\"는(은) 지원 되지 않는 파일 형식 이거나 깨진 압축 파일입니다" +"모드 설치: \"$1\"는(은) 지원 되지 않는 파일 형식 이거나 손상된 압축 파일입니" +"다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install: file: \"$1\"" msgstr "모드 설치: 파일: \"$1\"" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to find a valid mod or modpack" msgstr "설치 모드: 모드 팩 $1 (이)의 올바른 폴더이름을 찾을 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a $1 as a texture pack" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1을 텍스쳐팩으로 설치할 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a game as a $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1을 설치할 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a mod as a $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1 모드를 설치할 수 없습니다" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a modpack as a $1" -msgstr "$1을 $2에 설치하는데 실패했습니다" +msgstr "$1 모드팩을 설치할 수 없습니다" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "불러오는 중..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "클라이언트 스크립트가 비활성화됨" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "인터넷 연결을 확인한 후 서버 목록을 새로 고쳐보세요." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "온라인 컨텐츠 검색" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Content" -msgstr "계속" +msgstr "컨텐츠" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Disable Texture Pack" -msgstr "선택한 텍스쳐 팩:" +msgstr "비활성화된 텍스쳐 팩" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Information:" -msgstr "모드 정보:" +msgstr "정보:" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Installed Packages:" -msgstr "설치한 모드:" +msgstr "설치된 패키지:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." msgstr "요구사항 없음." #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "No package description available" -msgstr "모드 설명이 없습니다" +msgstr "사용 가능한 패키지 설명이 없습니다" #: builtin/mainmenu/tab_content.lua msgid "Rename" msgstr "이름 바꾸기" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Uninstall Package" -msgstr "선택한 모드 삭제" +msgstr "패키지 삭제" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Use Texture Pack" -msgstr "텍스쳐 팩" +msgstr "텍스쳐 팩 사용" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" @@ -736,7 +766,14 @@ msgid "Credits" msgstr "만든이" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "경로를 선택하세요" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -748,43 +785,36 @@ msgid "Previous Core Developers" msgstr "이전 코어 개발자들" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Announce Server" -msgstr "서버 발표" +msgstr "서버 알리기" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" msgstr "바인딩 주소" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "환경설정" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "크리에이티브 모드" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "데미지 활성화" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Game" -msgstr "게임 호스트하기" +msgstr "호스트 게임" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Host Server" -msgstr "서버 호스트하기" +msgstr "호스트 서버" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "ContentDB에서 게임 설치" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "이름/비밀번호" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -794,6 +824,11 @@ msgstr "새로 만들기" msgid "No world created or selected!" msgstr "월드를 만들거나 선택하지 않았습니다!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "새로운 비밀번호" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "게임하기" @@ -802,6 +837,11 @@ msgstr "게임하기" msgid "Port" msgstr "포트" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "월드 선택:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "월드 선택:" @@ -811,49 +851,47 @@ msgid "Server Port" msgstr "서버 포트" #: builtin/mainmenu/tab_local.lua -#, fuzzy msgid "Start Game" -msgstr "게임 호스트하기" +msgstr "게임 시작" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" msgstr "주소/포트" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "연결" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "크리에이티브 모드" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "데미지 활성화" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "즐겨찾기 삭제" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "즐겨찾기" #: builtin/mainmenu/tab_online.lua -#, fuzzy msgid "Join Game" -msgstr "게임 호스트하기" +msgstr "게임 참가" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "이름/비밀번호" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "핑" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP 가능" @@ -874,20 +912,14 @@ msgid "8x" msgstr "8 배속" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "All Settings" -msgstr "설정" +msgstr "모든 설정" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "매끄럽게 표현하기:" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "싱글 플레이어 월드를 리셋하겠습니까?" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Autosave Screen Size" msgstr "스크린 크기 자동 저장" @@ -895,10 +927,6 @@ msgstr "스크린 크기 자동 저장" msgid "Bilinear Filter" msgstr "이중 선형 필터" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "범프 매핑" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "키 변경" @@ -911,11 +939,6 @@ msgstr "연결된 유리" msgid "Fancy Leaves" msgstr "아름다운 나뭇잎 효과" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Generate Normal Maps" -msgstr "Normalmaps 생성" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "밉 맵" @@ -924,10 +947,6 @@ msgstr "밉 맵" msgid "Mipmap + Aniso. Filter" msgstr "밉맵 + Aniso. 필터" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "아니오" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "필터 없음" @@ -956,22 +975,13 @@ msgstr "불투명한 나뭇잎 효과" msgid "Opaque Water" msgstr "불투명한 물 효과" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "시차 교합" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "입자 효과" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "싱글 플레이어 월드 초기화" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Screen:" -msgstr "스크린:" +msgstr "화면:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" @@ -981,6 +991,11 @@ msgstr "설정" msgid "Shaders" msgstr "쉐이더" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "평평한 땅 (실험용)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "쉐이더 (사용할 수 없음)" @@ -1006,9 +1021,8 @@ msgid "Tone Mapping" msgstr "톤 매핑" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Touchthreshold: (px)" -msgstr "터치임계값 (픽셀)" +msgstr "터치 임계값: (픽셀)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -1019,30 +1033,13 @@ msgid "Waving Leaves" msgstr "움직이는 나뭇잎 효과" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "움직이는 Node" +msgstr "물 등의 물결효과" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "움직이는 식물 효과" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "예" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "모드 설정" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "메인" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "싱글 플레이어 시작" - #: src/client/client.cpp msgid "Connection timed out." msgstr "연결 시간이 초과했습니다." @@ -1097,7 +1094,7 @@ msgstr "이름을 선택하세요!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "패스워드 파일을 여는데 실패했습니다: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -1124,9 +1121,8 @@ msgstr "" "자세한 내용은 debug.txt을 확인 합니다." #: src/client/game.cpp -#, fuzzy msgid "- Address: " -msgstr "바인딩 주소" +msgstr "- 주소: " #: src/client/game.cpp msgid "- Creative Mode: " @@ -1145,56 +1141,49 @@ msgid "- Port: " msgstr "- 포트: " #: src/client/game.cpp -#, fuzzy msgid "- Public: " -msgstr "일반" +msgstr "- 공개: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "- PvP: " +msgstr "- Player vs Player: " #: src/client/game.cpp msgid "- Server Name: " msgstr "- 서버 이름: " #: src/client/game.cpp -#, fuzzy msgid "Automatic forward disabled" -msgstr "앞으로 가는 키" +msgstr "자동 전진 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Automatic forward enabled" -msgstr "앞으로 가는 키" +msgstr "자동 전진 활성화" #: src/client/game.cpp -#, fuzzy msgid "Camera update disabled" -msgstr "카메라 업데이트 토글 키" +msgstr "카메라 업데이트 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Camera update enabled" -msgstr "카메라 업데이트 토글 키" +msgstr "카메라 업데이트 활성화" #: src/client/game.cpp msgid "Change Password" msgstr "비밀번호 변경" #: src/client/game.cpp -#, fuzzy msgid "Cinematic mode disabled" -msgstr "시네마틱 모드 스위치" +msgstr "시네마틱 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Cinematic mode enabled" -msgstr "시네마틱 모드 스위치" +msgstr "시네마틱 모드 활성화" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "" +msgstr "클라이언트 스크립트가 비활성화됨" #: src/client/game.cpp msgid "Connecting to server..." @@ -1212,29 +1201,30 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" -"기본 컨트롤:-WASD: 이동\n" -"-스페이스: 점프/오르기\n" -"-쉬프트:살금살금/내려가기\n" -"-Q: 아이템 드롭\n" -"-I: 인벤토리\n" -"-마우스: 돌아보기/보기\n" -"-마우스 왼쪽: 파내기/공격\n" -"-마우스 오른쪽: 배치/사용\n" -"-마우스 휠: 아이템 선택\n" -"-T: 채팅\n" +"조작:\n" +"-%s: 앞으로 이동\n" +"-%s:뒤로 이동\n" +"-%s:왼쪽으로 이동\n" +"-%s:오른쪽으로 이동\n" +"-%s: 점프/오르기\n" +"-%s:조용히 걷기/내려가기\n" +"-%s:아이템 버리기\n" +"-%s:인벤토리\n" +"-마우스: 돌기/보기\n" +"-마우스 왼쪽 클릭: 땅파기/펀치\n" +"-마우스 오른쪽 클릭: 두기/사용하기\n" +"-마우스 휠:아이템 선택\n" +"-%s: 채팅\n" #: src/client/game.cpp msgid "Creating client..." @@ -1246,16 +1236,15 @@ msgstr "서버 만드는 중..." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "디버그 정보 및 프로파일러 그래프 숨기기" #: src/client/game.cpp -#, fuzzy msgid "Debug info shown" -msgstr "디버그 정보 토글 키" +msgstr "디버그 정보 표시" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "디버그 정보, 프로파일러 그래프 , 선 표현 숨김" #: src/client/game.cpp msgid "" @@ -1287,11 +1276,11 @@ msgstr "" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "제한없는 시야 범위 비활성화" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "제한없는 시야 범위 활성화" #: src/client/game.cpp msgid "Exit to Menu" @@ -1302,52 +1291,36 @@ msgid "Exit to OS" msgstr "게임 종료" #: src/client/game.cpp -#, fuzzy msgid "Fast mode disabled" -msgstr "고속 모드 속도" +msgstr "고속 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Fast mode enabled" -msgstr "고속 모드 속도" +msgstr "고속 모드 활성화" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "고속 모드 활성화(참고 : '고속'에 대한 권한 없음)" #: src/client/game.cpp -#, fuzzy msgid "Fly mode disabled" -msgstr "고속 모드 속도" +msgstr "비행 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Fly mode enabled" -msgstr "데미지 활성화" +msgstr "비행 모드 활성화" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "비행 모드 활성화 (참고 : '비행'에 대한 권한 없음)" #: src/client/game.cpp -#, fuzzy msgid "Fog disabled" -msgstr "비활성화됨" +msgstr "안개 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Fog enabled" -msgstr "활성화됨" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "비활성화됨" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "활성화됨" +msgstr "안개 활성화" #: src/client/game.cpp msgid "Game info:" @@ -1358,9 +1331,8 @@ msgid "Game paused" msgstr "게임 일시정지" #: src/client/game.cpp -#, fuzzy msgid "Hosting server" -msgstr "서버 만드는 중..." +msgstr "호스팅 서버" #: src/client/game.cpp msgid "Item definitions..." @@ -1370,16 +1342,6 @@ msgstr "아이템 정의중..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "비활성화됨" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "데미지 활성화" - #: src/client/game.cpp msgid "Media..." msgstr "미디어..." @@ -1390,49 +1352,19 @@ msgstr "MiB/s" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Minimap hidden" -msgstr "미니맵 키" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgstr "게임 또는 모드에 의해 현재 미니맵 비활성화" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "" +msgstr "Noclip 모드 비활성화" #: src/client/game.cpp -#, fuzzy msgid "Noclip mode enabled" -msgstr "데미지 활성화" +msgstr "Noclip 모드 활성화" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" +msgstr "Noclip 모드 활성화 (참고 : 'noclip'에 대한 권한 없음)" #: src/client/game.cpp msgid "Node definitions..." @@ -1448,29 +1380,24 @@ msgstr "켜기" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "피치 이동 모드 비활성화" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "피치 이동 모드 활성화" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "프로파일러 그래프 보이기" #: src/client/game.cpp -#, fuzzy msgid "Remote server" -msgstr "원격 포트" +msgstr "원격 서버" #: src/client/game.cpp msgid "Resolving address..." msgstr "주소 분석중..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "리스폰" - #: src/client/game.cpp msgid "Shutting down..." msgstr "서버가 닫혔습니다..." @@ -1484,102 +1411,83 @@ msgid "Sound Volume" msgstr "볼륨 조절" #: src/client/game.cpp -#, fuzzy msgid "Sound muted" -msgstr "볼륨 조절" +msgstr "음소거" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "사운드 시스템 비활성화" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "본 빌드에서 지원되지 않는 사운드 시스템" #: src/client/game.cpp -#, fuzzy msgid "Sound unmuted" -msgstr "볼륨 조절" +msgstr "음소거 해제" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "Viewing range changed to %d" -msgstr "시야 범위" +msgstr "시야 범위 %d로 바꿈" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "시야 범위 최대치 : %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "시야 범위 최소치 : %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "볼륨 %d%%로 바꿈" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "You died" -msgstr "사망했습니다." +msgstr "선 표면 보이기" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "게임 또는 모드에 의해 현재 확대 비활성화" #: src/client/game.cpp msgid "ok" msgstr "확인" #: src/client/gameui.cpp -#, fuzzy msgid "Chat hidden" -msgstr "채팅" +msgstr "채팅 숨기기" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "채팅" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" +msgstr "채팅 보이기" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "HUD 숨기기" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "HUD 보이기" #: src/client/gameui.cpp -#, fuzzy msgid "Profiler hidden" -msgstr "프로파일러" +msgstr "프로파일러 숨기기" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "프로파일러 보이기 (%d중 %d 페이지)" #: src/client/keycode.cpp msgid "Apps" msgstr "애플리케이션" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" msgstr "뒤로" @@ -1604,9 +1512,8 @@ msgid "End" msgstr "끝" #: src/client/keycode.cpp -#, fuzzy msgid "Erase EOF" -msgstr "OEF를 지우기" +msgstr "EOF 지우기" #: src/client/keycode.cpp msgid "Execute" @@ -1630,7 +1537,7 @@ msgstr "IME 변환" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "IME 종료" #: src/client/keycode.cpp msgid "IME Mode Change" @@ -1650,7 +1557,7 @@ msgstr "왼쪽" #: src/client/keycode.cpp msgid "Left Button" -msgstr "왼쪽된 버튼" +msgstr "왼쪽 버튼" #: src/client/keycode.cpp msgid "Left Control" @@ -1678,7 +1585,6 @@ msgid "Middle Button" msgstr "가운데 버튼" #: src/client/keycode.cpp -#, fuzzy msgid "Num Lock" msgstr "Num Lock" @@ -1744,20 +1650,19 @@ msgstr "숫자 키패드 9" #: src/client/keycode.cpp msgid "OEM Clear" -msgstr "" +msgstr "OEM 초기화" #: src/client/keycode.cpp msgid "Page down" -msgstr "" +msgstr "페이지 내리기" #: src/client/keycode.cpp msgid "Page up" -msgstr "" +msgstr "페이지 올리기" #: src/client/keycode.cpp -#, fuzzy msgid "Pause" -msgstr "일시 중지" +msgstr "일시 정지" #: src/client/keycode.cpp msgid "Play" @@ -1765,9 +1670,8 @@ msgstr "시작" #. ~ "Print screen" key #: src/client/keycode.cpp -#, fuzzy msgid "Print" -msgstr "인쇄" +msgstr "출력" #: src/client/keycode.cpp msgid "Return" @@ -1798,7 +1702,6 @@ msgid "Right Windows" msgstr "오른쪽 창" #: src/client/keycode.cpp -#, fuzzy msgid "Scroll Lock" msgstr "스크롤 락" @@ -1820,9 +1723,8 @@ msgid "Snapshot" msgstr "스냅샷" #: src/client/keycode.cpp -#, fuzzy msgid "Space" -msgstr "스페이스" +msgstr "스페이스바" #: src/client/keycode.cpp msgid "Tab" @@ -1844,13 +1746,32 @@ msgstr "X 버튼 2" msgid "Zoom" msgstr "확대/축소" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "미니맵 숨김" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "레이더 모드의 미니맵, 1배 확대" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "표면 모드의 미니맵, 1배 확대" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "최소 텍스처 크기" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "비밀번호가 맞지 않습니다!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "등록하고 참여" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1861,53 +1782,34 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"당신은 처음 \"%s\"라는 이름으로 이 서버에 참여하려고 합니다. \n" +"계속한다면, 자격이 갖춰진 새 계정이 이 서버에 생성됩니다. \n" +"비밀번호를 다시 입력하고 '등록 하고 참여'를 누르거나 '취소'를 눌러 중단하십시" +"오." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "계속하기" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "\"Special\" = climb down" -msgstr "\"Use\" = 내려가기" +msgstr "\"특별함\" = 아래로 타고 내려가기" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Autoforward" -msgstr "앞으로" +msgstr "자동전진" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "자동 점프" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" msgstr "뒤로" #: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Change camera" -msgstr "키 변경" +msgstr "카메라 변경" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" @@ -1922,9 +1824,8 @@ msgid "Console" msgstr "콘솔" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Dec. range" -msgstr "시야 범위" +msgstr "범위 감소" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" @@ -1943,9 +1844,8 @@ msgid "Forward" msgstr "앞으로" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Inc. range" -msgstr "시야 범위" +msgstr "범위 증가" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" @@ -1969,9 +1869,8 @@ msgstr "" "Keybindings. (이 메뉴를 고정하려면 minetest.cof에서 stuff를 제거해야합니다.)" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Local command" -msgstr "채팅 명렁어" +msgstr "지역 명령어" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" @@ -1999,37 +1898,15 @@ msgstr "살금살금" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "특별함" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "살금살금걷기 키" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "시네마틱 스위치" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "시네마틱 스위치" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle HUD" -msgstr "비행 스위치" +msgstr "HUD 토글" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "비행 스위치" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle chat log" -msgstr "고속 스위치" +msgstr "채팅 기록 토글" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -2040,23 +1917,20 @@ msgid "Toggle fly" msgstr "비행 스위치" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle fog" -msgstr "비행 스위치" +msgstr "안개 토글" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle minimap" -msgstr "자유시점 스위치" +msgstr "미니맵 토글" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" msgstr "자유시점 스위치" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "고속 스위치" +msgstr "피치 이동 토글" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -2083,7 +1957,6 @@ msgid "Exit" msgstr "나가기" #: src/gui/guiVolumeChange.cpp -#, fuzzy msgid "Muted" msgstr "음소거" @@ -2109,6 +1982,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) 가상 조이스틱의 위치를 수정합니다.\n" +"비활성화하면, 가상 조이스틱이 첫번째 터치 위치의 중앙에 위치합니다." #: src/settings_translation_file.cpp msgid "" @@ -2116,6 +1991,9 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) 가상 조이스틱을 사용하여 \"aux\"버튼을 트리거합니다.\n" +"활성화 된 경우 가상 조이스틱은 메인 서클에서 벗어날 때 \"aux\"버튼도 탭합니" +"다." #: src/settings_translation_file.cpp msgid "" @@ -2128,6 +2006,15 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X, Y, Z) '스케일' 단위로 세계 중심을 기준으로 프랙탈 오프셋을 정합니다.\n" +"원하는 지점을 (0, 0)으로 이동하여 적합한 스폰 지점을 만들거나 \n" +"'스케일'을 늘려 원하는 지점에서 '확대'할 수 있습니다.\n" +"기본값은 기본 매개 변수가있는 Mandelbrot 세트에 적합한 스폰 지점에 맞게 조정" +"되어 있으며 \n" +"다른 상황에서 변경해야 할 수도 있습니다. \n" +"범위는 대략 -2 ~ 2입니다. \n" +"노드의 오프셋에 대해\n" +"'스케일'을 곱합니다." #: src/settings_translation_file.cpp msgid "" @@ -2139,40 +2026,41 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" +"노드에서 프랙탈의 (X, Y, Z) 스케일.\n" +"실제 프랙탈 크기는 2 ~ 3 배 더 큽니다.\n" +"이 숫자는 매우 크게 만들 수 있으며 프랙탈은 세계에 맞지 않아도됩니다.\n" +"프랙탈의 세부 사항을 '확대'하도록 늘리십시오.\n" +"기본값은 섬에 적합한 수직으로 쪼개진 모양이며 \n" +"기존 모양에 대해 3 개의 숫자를 \n" +"모두 동일하게 설정합니다." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "산의 모양 / 크기를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "언덕의 모양 / 크기를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "계단 형태 산의 모양 / 크기를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "능선 산맥의 크기 / 발생정도를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "언덕의 크기 / 발생정도를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "계단 형태의 산맥의 크기 / 발생정도를 제어하는 2D 노이즈." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "강 계곡과 채널에 위치한 2D 노이즈." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2183,19 +2071,20 @@ msgid "3D mode" msgstr "3D 모드" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Normalmaps 강도" +msgstr "3D 모드 시차 강도" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "거대한 동굴을 정의하는 3D 노이즈." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"산의 구조와 높이를 정의하는 3D 노이즈.\n" +"또한 수상 지형 산악 지형의 구조를 정의합니다." #: src/settings_translation_file.cpp msgid "" @@ -2204,25 +2093,30 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"플롯랜드의 구조를 정의하는 3D 노이즈.\n" +"기본값에서 변경하면 노이즈 '스케일'(기본값 0.7)이 필요할 수 있습니다.\n" +"이 소음의 값 범위가 약 -2.0 ~ 2.0 일 때 플로 트랜드 테이퍼링이 가장 잘 작동하" +"므로 \n" +"조정해야합니다." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "강 협곡 벽의 구조를 정의하는 3D 노이즈." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "지형을 정의하는 3D 노이즈." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." msgstr "" +"산 돌출부, 절벽 등에 대한 3D 노이즈. 일반적으로 작은 변화로 나타납니다." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "맵 당 던전 수를 결정하는 3D 노이즈." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "3D support.\n" "Currently supported:\n" @@ -2261,13 +2155,16 @@ msgid "A message to be displayed to all clients when the server shuts down." msgstr "서버가 닫힐 때 모든 사용자들에게 표시 될 메시지입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "ABM interval" -msgstr "맵 저장 간격" +msgstr "ABM 간격" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgstr "대기중인 블록의 절대 한계" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2275,16 +2172,15 @@ msgstr "공중에서 가속" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "중력 가속도, 노드는 초당 노드입니다." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" msgstr "블록 수식어 활성" #: src/settings_translation_file.cpp -#, fuzzy msgid "Active block management interval" -msgstr "블록 관리 간격 활성" +msgstr "블록 관리 간격 활성화" #: src/settings_translation_file.cpp msgid "Active block range" @@ -2292,7 +2188,7 @@ msgstr "블록 범위 활성" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "객체 전달 범위 활성화" #: src/settings_translation_file.cpp msgid "" @@ -2300,17 +2196,20 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"연결할 주소입니다.\n" +"로컬 서버를 시작하려면 공백으로 두십시오.\n" +"주 메뉴의 주소 공간은 이 설정에 중복됩니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Adds particles when digging a node." -msgstr "node를 부술 때의 파티클 효과를 추가합니다" +msgstr "node를 부술 때의 파티클 효과를 추가합니다." #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." msgstr "" +"화면에 맞게 dpi 구성을 조정합니다 (X11 미지원 / Android 만 해당). 4k 화면 용." #: src/settings_translation_file.cpp #, c-format @@ -2321,6 +2220,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"플롯랜드 레이어의 밀도를 조정합니다.\n" +"밀도를 높이려면 값을 늘리십시오. 양수 또는 음수입니다.\n" +"값 = 0.0 : 부피의 50 % o가 플롯랜드입니다.\n" +"값 = 2.0 ( 'mgv7_np_floatland'에 따라 더 높을 수 있음, \n" +"항상 확실하게 테스트 후 사용)는 단단한 플롯랜드 레이어를 만듭니다." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2334,59 +2238,63 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"'감마 보정'을 적용하여 조명 곡선을 변경합니다.\n" +"값이 높을수록 중간 및 낮은 조명 수준이 더 밝아집니다.\n" +"값 '1.0'은 조명 곡선을 변경하지 않습니다.\n" +"이것은 일광 및 인공 조명에만 중요한 영향을 미칩니다.\n" +"빛은, 자연적인 야간 조명에 거의 영향을 미치지 않습니다." #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "항상 비행하고 빠르게" +msgstr "항상 비행 및 고속 모드" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" -msgstr "" +msgstr "주변 occlusion 감마" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "플레이어가 10 초당 보낼 수있는 메시지의 양." #: src/settings_translation_file.cpp -#, fuzzy msgid "Amplifies the valleys." -msgstr "계곡 증폭" +msgstr "계곡 증폭." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" msgstr "이방성 필터링" #: src/settings_translation_file.cpp -#, fuzzy msgid "Announce server" -msgstr "서버 발표" +msgstr "서버 공지" #: src/settings_translation_file.cpp -#, fuzzy msgid "Announce to this serverlist." -msgstr "서버 발표" +msgstr "이 서버 목록에 알림." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "아이템 이름 추가" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." -msgstr "" +msgstr "툴팁에 아이템 이름 추가." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "" +msgstr "사과 나무 노이즈" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "팔 관성" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"팔 관성,보다 현실적인 움직임을 제공합니다.\n" +"카메라가 움직일 때 팔도 함께 움직입니다." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2406,19 +2314,26 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"이 거리에서 서버는 클라이언트로 전송되는 블록의 최적화를\n" +"활성화합니다.\n" +"작은 값은 눈에 띄는 렌더링 결함을 통해 \n" +"잠재적으로 성능을 크게 향상시킵니다 \n" +"(일부 블록은 수중과 동굴, 때로는 육지에서도 렌더링되지 않습니다).\n" +"이 값을 max_block_send_distance보다 큰 값으로 설정하면 \n" +"최적화가 비활성화됩니다.\n" +"맵 블록 (16 개 노드)에 명시되어 있습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Automatic forward key" -msgstr "앞으로 가는 키" +msgstr "자동 전진 키" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "단일 노드 장애물에 대한 자동 점프." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "서버 목록에 자동으로 보고." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2426,38 +2341,35 @@ msgstr "스크린 크기 자동 저장" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "자동 스케일링 모드" #: src/settings_translation_file.cpp msgid "Backward key" msgstr "뒤로 이동하는 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Base ground level" -msgstr "물의 높이" +msgstr "기본 지면 수준" #: src/settings_translation_file.cpp -#, fuzzy msgid "Base terrain height." -msgstr "기본 지형 높이" +msgstr "기본 지형 높이." #: src/settings_translation_file.cpp msgid "Basic" msgstr "기본" #: src/settings_translation_file.cpp -#, fuzzy msgid "Basic privileges" msgstr "기본 권한" #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "" +msgstr "해변 잡음" #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "" +msgstr "해변 잡음 임계치" #: src/settings_translation_file.cpp msgid "Bilinear filtering" @@ -2469,54 +2381,44 @@ msgstr "바인딩 주소" #: src/settings_translation_file.cpp msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgstr "Biome API 온도 및 습도 소음 매개 변수" #: src/settings_translation_file.cpp -#, fuzzy msgid "Biome noise" -msgstr "강 소리" +msgstr "Biome 노이즈" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." msgstr "전체 화면 모드에서 (일명 색 농도) 픽셀 당 비트." #: src/settings_translation_file.cpp -#, fuzzy msgid "Block send optimize distance" -msgstr "최대 블록 전송 거리" +msgstr "블록 전송 최적화 거리" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic font path" -msgstr "고정 폭 글꼴 경로" +msgstr "굵은 기울임 꼴 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic monospace font path" -msgstr "고정 폭 글꼴 경로" +msgstr "굵은 기울임 꼴 고정 폭 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold font path" -msgstr "글꼴 경로" +msgstr "굵은 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold monospace font path" -msgstr "고정 폭 글꼴 경로" +msgstr "굵은 고정 폭 글꼴 경로" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "" +msgstr "내부 사용자 빌드" #: src/settings_translation_file.cpp msgid "Builtin" msgstr "기본 제공" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "범프맵핑" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2524,6 +2426,11 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"0에서 0.25 사이의 노드에서 카메라 '깎인 평면 근처'거리는 GLES 플랫폼에서만 작" +"동합니다. \n" +"대부분의 사용자는 이것을 변경할 필요가 없습니다.\n" +"값이 증가하면 약한 GPU에서 아티팩트를 줄일 수 있습니다. \n" +"0.1 = 기본값, 0.25 = 약한 태블릿에 적합한 값." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2538,9 +2445,8 @@ msgid "Camera update toggle key" msgstr "카메라 업데이트 토글 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cave noise" -msgstr "동굴 잡음 #1" +msgstr "동굴 잡음" #: src/settings_translation_file.cpp msgid "Cave noise #1" @@ -2555,85 +2461,68 @@ msgid "Cave width" msgstr "동굴 너비" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cave1 noise" -msgstr "동굴 잡음 #1" +msgstr "동굴1 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cave2 noise" -msgstr "동굴 잡음 #1" +msgstr "동굴2 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cavern limit" -msgstr "동굴 너비" +msgstr "동굴 제한" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cavern noise" -msgstr "동굴 잡음 #1" +msgstr "동굴 잡음" #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "동굴 테이퍼" #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "" +msgstr "동굴 임계치" #: src/settings_translation_file.cpp -#, fuzzy msgid "Cavern upper limit" -msgstr "동굴 너비" +msgstr "동굴 상한선" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"빛 굴절 중심 범위 .\n" +"0.0은 최소 조명 수준이고 1.0은 최대 조명 수준입니다." #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "글꼴 크기" +msgstr "채팅 글자 크기" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "채팅" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "디버그 로그 수준" +msgstr "채팅 기록 수준" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message count limit" -msgstr "접속 시 status메시지" +msgstr "채팅 메세지 수 제한" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "접속 시 status메시지" +msgstr "채팅 메세지 포맷" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" -msgstr "" +msgstr "채팅 메세지 강제퇴장 임계값" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "채팅 메세지 최대 길이" #: src/settings_translation_file.cpp msgid "Chat toggle key" @@ -2656,7 +2545,6 @@ msgid "Cinematic mode key" msgstr "시네마틱 모드 스위치" #: src/settings_translation_file.cpp -#, fuzzy msgid "Clean transparent textures" msgstr "깨끗하고 투명한 텍스처" @@ -2673,13 +2561,12 @@ msgid "Client modding" msgstr "클라이언트 모딩" #: src/settings_translation_file.cpp -#, fuzzy msgid "Client side modding restrictions" -msgstr "클라이언트 모딩" +msgstr "클라이언트 측 모딩 제한" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" -msgstr "" +msgstr "클라이언트 측 노드 조회 범위 제한" #: src/settings_translation_file.cpp msgid "Climbing speed" @@ -2715,14 +2602,20 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"컨텐츠 저장소에서 쉼표로 구분된 숨겨진 플래그 목록입니다.\n" +"\"nonfree\"는 Free Software Foundation에서 정의한대로 '자유 소프트웨어'로 분" +"류되지 않는 패키지를 숨기는 데 사용할 수 있습니다,\n" +"콘텐츠 등급을 지정할 수도 있습니다.\n" +"이 플래그는 Minetest 버전과 독립적이므로. \n" +"https://content.minetest.net/help/content_flags/에서,\n" +"전체 목록을 참조하십시오." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" -"쉼표로 구분된 모드의 리스트는 HTTP API에 접근 할 수 있습니다.\n" +"쉼표로 구분된 모드의 리스트는 HTTP API에 접근 할 수 있습니다,\n" "인터넷에서 데이터를 다운로드 하거나 업로드 할 수 있습니다." #: src/settings_translation_file.cpp @@ -2730,6 +2623,9 @@ msgid "" "Comma-separated list of trusted mods that are allowed to access insecure\n" "functions even when mod security is on (via request_insecure_environment())." msgstr "" +"mod 보안이 켜져있는 경우에도 안전하지 않은 기능에 액세스 할 수있는 쉼표로 구" +"분 된 신뢰 할 수 있는 모드의 목록입니다\n" +"(request_insecure_environment ()를 통해)." #: src/settings_translation_file.cpp msgid "Command key" @@ -2745,7 +2641,7 @@ msgstr "외부 미디어 서버에 연결" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "" +msgstr "노드에서 지원하는 경우 유리를 연결합니다." #: src/settings_translation_file.cpp msgid "Console alpha" @@ -2761,40 +2657,45 @@ msgstr "콘솔 높이" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" +msgstr "콘텐츠DB 블랙리스트 플래그" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB URL" -msgstr "계속" +msgstr "ContentDB URL주소" #: src/settings_translation_file.cpp msgid "Continuous forward" -msgstr "" +msgstr "연속 전진" #: src/settings_translation_file.cpp msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" +"연속 전진 이동, 자동 전진 키로 전환.\n" +"비활성화하려면 자동 앞으로 이동 키를 다시 누르거나 뒤로 이동합니다." #: src/settings_translation_file.cpp msgid "Controls" msgstr "컨트롤" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Controls length of day/night cycle.\n" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" "낮/밤 주기의 길이를 컨트롤.\n" -"예: 72 = 20 분, 360 = 4 분, 1 = 24 시간, 0 = 낮/밤/바뀌지 않고 그대로." +"예: \n" +"72 = 20 분, 360 = 4 분, 1 = 24 시간, 0 = 낮/밤/바뀌지 않고 그대로." #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "액체의 하강 속도 제어." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." @@ -2810,6 +2711,9 @@ msgid "" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" +"터널 너비를 제어하고 값이 작을수록 더 넓은 터널이 생성됩니다.\n" +"값> = 10.0은 터널 생성을 완전히 비활성화하고 집중적인 노이즈 계산을 \n" +"방지합니다." #: src/settings_translation_file.cpp msgid "Crash message" @@ -2824,7 +2728,10 @@ msgid "Crosshair alpha" msgstr "십자선 투명도" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "십자선 투명도 (불투명 함, 0과 255 사이)." #: src/settings_translation_file.cpp @@ -2832,8 +2739,10 @@ msgid "Crosshair color" msgstr "십자선 색" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "십자선 색 (빨, 초, 파)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2848,9 +2757,8 @@ msgid "Debug info toggle key" msgstr "디버그 정보 토글 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Debug log file size threshold" -msgstr "디버그 로그 수준" +msgstr "디버그 로그 파일 크기 임계치" #: src/settings_translation_file.cpp msgid "Debug log level" @@ -2862,11 +2770,11 @@ msgstr "볼륨 낮추기 키" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgstr "움직임에 대한 액체 저항을 높이려면 이 값을 줄입니다." #: src/settings_translation_file.cpp msgid "Dedicated server step" -msgstr "" +msgstr "전용 서버 단계" #: src/settings_translation_file.cpp msgid "Default acceleration" @@ -2877,7 +2785,6 @@ msgid "Default game" msgstr "기본 게임" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Default game when creating a new world.\n" "This will be overridden when creating a world from the main menu." @@ -2898,31 +2805,32 @@ msgid "Default report format" msgstr "기본 보고서 형식" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "기본 게임" +msgstr "기본 스택 크기" #: src/settings_translation_file.cpp msgid "" "Default timeout for cURL, stated in milliseconds.\n" "Only has an effect if compiled with cURL." msgstr "" +"cURL에 대한 기본 제한 시간 (밀리 초 단위).\n" +"cURL로 컴파일 된 경우에만 효과가 있습니다." #: src/settings_translation_file.cpp msgid "Defines areas where trees have apples." -msgstr "" +msgstr "나무에 사과가 있는 영역 정의." #: src/settings_translation_file.cpp msgid "Defines areas with sandy beaches." -msgstr "" +msgstr "모래 해변이 있는 지역을 정의합니다." #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" +msgstr "높은 지형의 분포와 절벽의 가파른 정도를 정의합니다." #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain." -msgstr "" +msgstr "더 높은 지형의 분포를 정의합니다." #: src/settings_translation_file.cpp msgid "Defines full size of caverns, smaller values create larger caverns." @@ -2936,15 +2844,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"텍스처의 샘플링 단계를 정의합니다.\n" -"일반 맵에 부드럽게 높은 값을 나타냅니다." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2954,7 +2853,6 @@ msgid "Defines the depth of the river channel." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "블록에 최대 플레이어 전송 거리를 정의 합니다 (0 = 무제한)." @@ -2981,7 +2879,6 @@ msgid "Delay in sending blocks after building" msgstr "건축 후 블록 전송 지연" #: src/settings_translation_file.cpp -#, fuzzy msgid "Delay showing tooltips, stated in milliseconds." msgstr "도구 설명 표시 지연, 1000분의 1초." @@ -2990,12 +2887,10 @@ msgid "Deprecated Lua API handling" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Depth below which you'll find giant caverns." msgstr "큰 동굴을 발견할 수 있는 깊이." #: src/settings_translation_file.cpp -#, fuzzy msgid "Depth below which you'll find large caves." msgstr "큰 동굴을 발견할 수 있는 깊이." @@ -3021,6 +2916,10 @@ msgstr "블록 애니메이션 비동기화" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "오른쪽 키" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "입자 효과" @@ -3049,7 +2948,6 @@ msgid "Drop item key" msgstr "아이템 드랍 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dump the mapgen debug information." msgstr "Mapgen 디버그 정보를 덤프 합니다." @@ -3062,9 +2960,8 @@ msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "강 소리" +msgstr "던전 잡음" #: src/settings_translation_file.cpp msgid "" @@ -3083,18 +2980,17 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "새로 만든 맵에서 creative모드를 활성화시킵니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable joysticks" -msgstr "조이스틱 적용" +msgstr "조이스틱 활성화" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable mod channels support." -msgstr "모드 보안 적용" +msgstr "모드 채널 지원 활성화." #: src/settings_translation_file.cpp msgid "Enable mod security" @@ -3133,7 +3029,8 @@ msgid "" "expecting." msgstr "" "오래된 클라이언트 연결을 허락하지 않는것을 사용.\n" -"이전 클라이언트는 서버에서 당신이 기대하는 새로운 특징들을 지원하지 않는다면 " +"이전 클라이언트는 서버에서 당신이 기대하는 새로운 특징들을 지원하지 않는다" +"면 \n" "새로운 서버로 연결할 때 충돌하지 않을 것입니다." #: src/settings_translation_file.cpp @@ -3143,9 +3040,9 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" -"(만약 서버에서 제공한다면)원격 미디어 서버 사용 가능.\n" -"원격 서버들은 서버에 연결할 때 매우 빠르게 미디어를 다운로드 할 수 있도록 제" -"공합니다.(예: 텍스처)" +"원격 미디어 서버 사용 가능(만약 서버에서 제공한다면).\n" +"원격 서버들은 서버에 연결할 때 매우 빠르게 미디어를\n" +"다운로드 할 수 있도록 제공합니다.(예: 텍스처)" #: src/settings_translation_file.cpp msgid "" @@ -3162,14 +3059,13 @@ msgstr "" "예 : 0은 화면 흔들림 없음; 1.0은 노멀; 2.0은 더블." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" -"IPv6 서버를 실행 활성화/비활성화. IPv6 서버는 IPv6 클라이언트 시스템 구성에 " -"따라 제한 될 수 있습니다.\n" +"IPv6 서버를 실행 활성화/비활성화.\n" +"IPv6 서버는 IPv6 클라이언트 시스템 구성에 따라 제한 될 수 있습니다.\n" "만약 Bind_address가 설정 된 경우 무시 됩니다." #: src/settings_translation_file.cpp @@ -3184,17 +3080,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "인벤토리 아이템의 애니메이션 적용." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"텍스처에 bumpmapping을 할 수 있습니다. Normalmaps는 텍스쳐 팩에서 받거나 자" -"동 생성될 필요가 있습니다.\n" -"쉐이더를 활성화 해야 합니다." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3203,23 +3088,6 @@ msgstr "" msgid "Enables minimap." msgstr "미니맵 적용." -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"비행 노멀맵 생성 적용 (엠보스 효과).\n" -"Bumpmapping를 활성화 해야 합니다." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"시차 교합 맵핑 적용.\n" -"쉐이더를 활성화 해야 합니다." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3236,12 +3104,6 @@ msgstr "엔진 프로 파일링 데이터 출력 간격" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3253,8 +3115,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "일시정지 메뉴에서 FPS" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "게임이 일시정지될때의 최대 FPS." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3265,14 +3128,12 @@ msgid "Factor noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fall bobbing factor" msgstr "낙하 흔들림" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fallback font path" -msgstr "yes" +msgstr "대체 글꼴 경로" #: src/settings_translation_file.cpp msgid "Fallback font shadow" @@ -3303,13 +3164,12 @@ msgid "Fast movement" msgstr "빠른 이동" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" -"빠른 이동('use'키 사용).\n" -"서버에서는 \"fast\"권한이 요구됩니다." +"빠른 이동 ( \"특수\"키 사용).\n" +"이를 위해서는 서버에 대한 \"빠른\"권한이 필요합니다." #: src/settings_translation_file.cpp msgid "Field of view" @@ -3320,15 +3180,15 @@ msgid "Field of view in degrees." msgstr "각도에 대한 시야." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "File in client/serverlist/ that contains your favorite servers displayed in " "the\n" "Multiplayer Tab." -msgstr "클라이언트/서버리스트/멀티플레이어 탭에서 당신이 가장 좋아하는 서버" +msgstr "" +"멀티 플레이어 탭에 표시되는 즐겨 찾는 서버가 포함 된 \n" +"client / serverlist /의 파일입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Filler depth" msgstr "강 깊이" @@ -3369,39 +3229,32 @@ msgid "Fixed virtual joystick" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Floatland의 산 밀집도" +msgstr "Floatland의 밀집도" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Floatland의 산 높이" +msgstr "Floatland의 Y 최대값" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Floatland의 산 높이" +msgstr "Floatland의 Y 최소값" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Floatland의 높이" +msgstr "Floatland 노이즈" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Floatland의 산 밀집도" +msgstr "Floatland의 테이퍼 지수" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Floatland의 산 밀집도" +msgstr "Floatland의 테이퍼링 거리" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Floatland의 높이" +msgstr "Floatland의 물 높이" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3489,22 +3342,18 @@ msgid "Formspec Full-Screen Background Opacity" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background color (R,G,B)." -msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨,초,파)." +msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨강, 초록, 파랑)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background opacity (between 0 and 255)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background color (R,G,B)." -msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨,초,파)." +msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨강, 초록, 파랑)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." @@ -3525,7 +3374,6 @@ msgid "Fraction of the visible distance at which fog starts to be rendered" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "FreeType fonts" msgstr "Freetype 글꼴" @@ -3573,10 +3421,6 @@ msgstr "GUI 크기 조정 필터" msgid "GUI scaling filter txr2img" msgstr "GUI 크기 조정 필터 txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Normalmaps 생성" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "글로벌 콜백" @@ -3609,17 +3453,14 @@ msgid "Gravity" msgstr "중력" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground level" -msgstr "물의 높이" +msgstr "지면 수준" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground noise" -msgstr "물의 높이" +msgstr "지면 노이즈" #: src/settings_translation_file.cpp -#, fuzzy msgid "HTTP mods" msgstr "HTTP 모드" @@ -3634,8 +3475,8 @@ msgstr "HUD 토글 키" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3653,18 +3494,16 @@ msgid "Heat blend noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Heat noise" -msgstr "동굴 잡음 #1" +msgstr "용암 잡음" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." msgstr "초기 창 크기의 높이 구성 요소입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Height noise" -msgstr "오른쪽 창" +msgstr "높이 노이즈" #: src/settings_translation_file.cpp msgid "Height select noise" @@ -3683,24 +3522,20 @@ msgid "Hill threshold" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness1 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕1 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness2 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕2 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness3 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕3 잡음" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness4 noise" -msgstr "동굴 잡음 #1" +msgstr "언덕4 잡음" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." @@ -3746,7 +3581,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Hotbar slot 12 key" -msgstr "" +msgstr "핫바 슬롯 키 12" #: src/settings_translation_file.cpp msgid "Hotbar slot 13 key" @@ -3861,9 +3696,8 @@ msgid "Hotbar slot 9 key" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "How deep to make rivers." -msgstr "얼마나 강을 깊게 만들건가요" +msgstr "제작할 강의 깊이." #: src/settings_translation_file.cpp msgid "" @@ -3879,9 +3713,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "How wide to make rivers." -msgstr "게곡을 얼마나 넓게 만들지" +msgstr "제작할 강의 너비." #: src/settings_translation_file.cpp msgid "Humidity blend noise" @@ -3933,12 +3766,13 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, \"special\" key instead of \"sneak\" key is used for climbing " "down and\n" "descending." -msgstr "활성화시, \"sneak\"키 대신 \"use\"키가 내려가는데 사용됩니다." +msgstr "" +"활성화시, \"sneak\"키 대신 \"특수\"키가 내려가는데 \n" +"사용됩니다." #: src/settings_translation_file.cpp msgid "" @@ -3967,12 +3801,13 @@ msgid "If enabled, new players cannot join with an empty password." msgstr "적용할 경우, 새로운 플레이어는 빈 암호로 가입 할 수 없습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, you can place blocks at the position (feet + eye level) where " "you stand.\n" "This is helpful when working with nodeboxes in small areas." -msgstr "활성화시, 당신이 서 있는 자리에도 블록을 놓을 수 있습니다." +msgstr "" +"활성화시,\n" +"당신이 서 있는 자리에도 블록을 놓을 수 있습니다." #: src/settings_translation_file.cpp msgid "" @@ -4002,7 +3837,6 @@ msgid "In-Game" msgstr "인게임" #: src/settings_translation_file.cpp -#, fuzzy msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." @@ -4011,14 +3845,12 @@ msgid "In-game chat console background color (R,G,B)." msgstr "게임 내에서 채팅 콘솔 배경 색상 (빨,초,파)." #: src/settings_translation_file.cpp -#, fuzzy msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "게임 내에서 채팅 콘솔 배경 알파 (불투명 함, 0와 255 사이)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Inc. volume key" -msgstr "콘솔 키" +msgstr "볼륨 증가 키" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." @@ -4083,19 +3915,16 @@ msgid "Invert vertical mouse movement." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic font path" -msgstr "고정 폭 글꼴 경로" +msgstr "기울임꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic monospace font path" -msgstr "고정 폭 글꼴 경로" +msgstr "고정 폭 기울임 글꼴 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "Item entity TTL" -msgstr "아이템의 TTL(Time To Live)" +msgstr "아이템의 TTL(Time To Live)" #: src/settings_translation_file.cpp msgid "Iterations" @@ -4117,6 +3946,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4202,6 +4035,17 @@ msgstr "" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"점프키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3 참조" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4223,7 +4067,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for increasing the volume.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4254,14 +4097,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"플레이어가 뒤쪽으로 움직이는 키입니다.\n" +"플레이어가 \n" +"뒤쪽으로 움직이는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" @@ -4296,7 +4139,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for muting the game.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4349,6 +4191,16 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"점프키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3 참조" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4358,7 +4210,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 12th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4369,354 +4220,322 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 13th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"13번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 14th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"14번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 15th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"15번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 16th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"16번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 17th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"17번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 18th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"18번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 19th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"19번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 20th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"20번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 21st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"21번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 22nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"22번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 23rd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"23번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 24th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"24번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 25th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"25번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 26th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"26번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 27th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"27번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 28th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"28번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 29th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"29번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 30th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"30번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 31st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"31번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 32nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"32번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the eighth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"8번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fifth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"5번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the first hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"1번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fourth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"4번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the next item in the hotbar.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"다음 아이템 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the ninth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"9번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the previous item in the hotbar.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"이전 아이템 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the second hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"2번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the seventh hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"7번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the sixth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"6번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the tenth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"10번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the third hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"인벤토리를 여는 키입니다.\n" +"3번째 hotbar 슬롯을 선택하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" @@ -4755,14 +4574,13 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling autoforward.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"자동으로 달리는 기능을 켜는 키입니다.\n" -"http://irrlicht.sourceforge.net/docu/namespaceirr." +"자동전진 토글에 대한 키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp @@ -4816,13 +4634,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling pitch move mode.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"자유시점 모드 스위치 키입니다.\n" +"피치 이동 모드 토글에 대한 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" @@ -4837,13 +4654,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of chat.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"채팅 스위치 키입니다.\n" +"채팅 디스플레이 토글 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" @@ -4858,13 +4674,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of fog.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"안개 스위치 키입니다.\n" +"안개 디스플레이 토글 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" @@ -4879,13 +4694,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of the large chat console.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"채팅 스위치 키입니다.\n" +"채팅 콘솔 디스플레이 토글 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" @@ -4907,13 +4721,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key to use view zoom when possible.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"점프키입니다.\n" +"가능한 경우 시야 확대를 사용하는 키입니다.\n" "Http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3 참조" @@ -4950,16 +4763,14 @@ msgid "Large cave proportion flooded" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Large chat console key" -msgstr "콘솔 키" +msgstr "큰 채팅 콘솔 키" #: src/settings_translation_file.cpp msgid "Leaves style" msgstr "나뭇잎 스타일" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Leaves style:\n" "- Fancy: all faces visible\n" @@ -4983,7 +4794,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." @@ -5040,12 +4850,14 @@ msgid "Light curve low gradient" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." -msgstr "(0,0,0)으로부터 6방향으로 뻗어나갈 맵 크기" +msgstr "" +"(0, 0, 0)에서 모든 6 개 방향의 노드에서 맵 생성 제한.\n" +"mapgen 제한 내에 완전히 포함 된 맵 청크 만 생성됩니다.\n" +"값은 세계별로 저장됩니다." #: src/settings_translation_file.cpp msgid "" @@ -5073,7 +4885,6 @@ msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" msgstr "하강 속도" @@ -5112,11 +4923,6 @@ msgstr "" msgid "Main menu script" msgstr "주 메뉴 스크립트" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "주 메뉴 스크립트" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5130,6 +4936,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "모든 액체를 불투명하게 만들기" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -5194,14 +5008,12 @@ msgid "Mapblock limit" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generation delay" -msgstr "맵 생성 제한" +msgstr "맵 블록 생성 지연" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "맵 생성 제한" +msgstr "Mapblock 메시 생성기의 MapBlock 캐시 크기 (MB)" #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" @@ -5216,46 +5028,40 @@ msgid "Mapgen Carpathian specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat" -msgstr "Mapgen 이름" +msgstr "Mapgen 플랫" #: src/settings_translation_file.cpp msgid "Mapgen Flat specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal" -msgstr "Mapgen 이름" +msgstr "Mapgen 형태" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Mapgen 이름" +msgstr "Mapgen 형태 상세 플래그" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5" -msgstr "맵젠v5" +msgstr "맵젠 V5" #: src/settings_translation_file.cpp msgid "Mapgen V5 specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6" -msgstr "세계 생성기" +msgstr "맵젠 V6" #: src/settings_translation_file.cpp msgid "Mapgen V6 specific flags" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7" -msgstr "세계 생성기" +msgstr "맵젠 V7" #: src/settings_translation_file.cpp msgid "Mapgen V7 specific flags" @@ -5302,12 +5108,13 @@ msgid "Maximum FPS" msgstr "최대 FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "게임이 일시정지될때의 최대 FPS." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" -msgstr "" +msgstr "최대 강제 로딩 블럭" #: src/settings_translation_file.cpp msgid "Maximum hotbar width" @@ -5350,6 +5157,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5368,9 +5182,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum number of players that can be connected simultaneously." -msgstr "동시접속 할 수 있는 최대 인원수." +msgstr "동시접속 할 수 있는 최대 인원 수." #: src/settings_translation_file.cpp msgid "Maximum number of recent chat messages to show" @@ -5385,7 +5198,6 @@ msgid "Maximum objects per block" msgstr "블록 당 최대 개체" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum proportion of current window to be used for hotbar.\n" "Useful if there's something to be displayed right or left of hotbar." @@ -5394,7 +5206,6 @@ msgstr "" "hotbar의 오른쪽이나 왼쪽에 무언가를 나타낼 때 유용합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum simultaneous block sends per client" msgstr "클라이언트 당 최대 동시 블록 전송" @@ -5463,9 +5274,8 @@ msgid "Minimum limit of random number of small caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum texture size" -msgstr "필터 최소 텍스처 크기" +msgstr "최소 텍스처 크기" #: src/settings_translation_file.cpp msgid "Mipmapping" @@ -5500,9 +5310,8 @@ msgid "Mountain variation noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain zero level" -msgstr "물의 높이" +msgstr "산 0 수준" #: src/settings_translation_file.cpp msgid "Mouse sensitivity" @@ -5525,9 +5334,8 @@ msgstr "" "예 : 0은 화면 흔들림 없음; 1.0은 노말; 2.0은 더블." #: src/settings_translation_file.cpp -#, fuzzy msgid "Mute key" -msgstr "키 사용" +msgstr "음소거 키" #: src/settings_translation_file.cpp msgid "Mute sound" @@ -5594,14 +5402,6 @@ msgstr "NodeTimer 간격" msgid "Noises" msgstr "소리" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Normalmaps 샘플링" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Normalmaps 강도" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5627,10 +5427,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "시차 교합 반복의 수" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5656,37 +5452,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "일반적인 규모/2의 시차 교합 효과의 전반적인 바이어스." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Overall scale of parallax occlusion effect." -msgstr "시차 교합 효과의 전체 규모" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "시차 교합" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "시차 교합 바이어스" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "시차 교합 반복" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion mode" -msgstr "시차 교합 모드" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "시차 교합 규모" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5746,14 +5511,23 @@ msgid "Physics" msgstr "물리학" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "비행 키" +msgstr "피치 이동 키" #: src/settings_translation_file.cpp msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "비행 키" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "오른쪽 클릭 반복 간격" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5771,12 +5545,10 @@ msgid "Player transfer distance" msgstr "플레이어 전송 거리" #: src/settings_translation_file.cpp -#, fuzzy msgid "Player versus player" msgstr "PVP" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Port to connect to (UDP).\n" "Note that the port field in the main menu overrides this setting." @@ -5791,12 +5563,10 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Prevent mods from doing insecure things like running shell commands." msgstr "shell 명령어 실행 같은 안전 하지 않은 것으로부터 모드를 보호합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." @@ -5817,7 +5587,6 @@ msgid "Profiler toggle key" msgstr "프로파일러 토글 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Profiling" msgstr "프로 파일링" @@ -5847,12 +5616,10 @@ msgstr "" "26보다 큰 수치들은 구름을 선명하게 만들고 모서리를 잘라낼 것입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Raises terrain to make valleys around the rivers." msgstr "강 주변에 계곡을 만들기 위해 지형을 올립니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Random input" msgstr "임의 입력" @@ -5865,7 +5632,6 @@ msgid "Recent Chat Messages" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" msgstr "보고서 경로" @@ -5884,12 +5650,10 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Replaces the default main menu with a custom one." msgstr "기본 주 메뉴를 커스텀 메뉴로 바꿉니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Report path" msgstr "보고서 경로" @@ -5912,9 +5676,8 @@ msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridge noise" -msgstr "강 소리" +msgstr "능선 노이즈" #: src/settings_translation_file.cpp msgid "Ridge underwater noise" @@ -5929,41 +5692,30 @@ msgid "Right key" msgstr "오른쪽 키" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "오른쪽 클릭 반복 간격" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" msgstr "강 깊이" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "강 깊이" +msgstr "강 너비" #: src/settings_translation_file.cpp -#, fuzzy msgid "River depth" msgstr "강 깊이" #: src/settings_translation_file.cpp -#, fuzzy msgid "River noise" msgstr "강 소리" #: src/settings_translation_file.cpp -#, fuzzy msgid "River size" msgstr "강 크기" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "강 깊이" +msgstr "강 계곡 폭" #: src/settings_translation_file.cpp -#, fuzzy msgid "Rollback recording" msgstr "롤백 레코딩" @@ -5988,7 +5740,6 @@ msgid "Sandy beaches occur when np_beach exceeds this value." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Save the map received by the client on disk." msgstr "디스크에 클라이언트에서 받은 맵을 저장 합니다." @@ -6040,9 +5791,8 @@ msgstr "" "기본 품질을 사용하려면 0을 사용 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Seabed noise" -msgstr "동굴 잡음 #1" +msgstr "해저 노이즈" #: src/settings_translation_file.cpp msgid "Second of 4 2D noises that together define hill/mountain range height." @@ -6057,7 +5807,6 @@ msgid "Security" msgstr "보안" #: src/settings_translation_file.cpp -#, fuzzy msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "Http://www.sqlite.org/pragma.html#pragma_synchronous 참조" @@ -6074,7 +5823,6 @@ msgid "Selection box width" msgstr "선택 박스 너비" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" @@ -6165,7 +5913,6 @@ msgid "Set the maximum character length of a chat message sent by clients." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." @@ -6174,16 +5921,14 @@ msgstr "" "쉐이더를 활성화 해야 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" "True로 설정하면 물결효과가 적용됩니다.\n" -"쉐이더를 활성화해야 합니다.." +"쉐이더를 활성화해야 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." @@ -6196,7 +5941,6 @@ msgid "Shader path" msgstr "쉐이더 경로" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" @@ -6205,17 +5949,16 @@ msgid "" msgstr "" "쉐이더는 확장된 시각 효과를 제공하고 몇몇 비디오 카드의 성능이 증가할 수도 있" "습니다.\n" -"이것은 OpenGL video backend에서만 직동합니다." +"이것은 OpenGL video backend에서만 \n" +"작동합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." msgstr "글꼴 그림자 오프셋, 만약 0 이면 그림자는 나타나지 않을 것입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." @@ -6230,10 +5973,22 @@ msgid "Show debug info" msgstr "디버그 정보 보기" #: src/settings_translation_file.cpp -#, fuzzy msgid "Show entity selection boxes" msgstr "개체 선택 상자 보기" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"언어 설정. 시스템 언어를 사용하려면 비워두세요.\n" +"설정 적용 후 재시작이 필요합니다." + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "서버닫힘 메시지" @@ -6260,9 +6015,8 @@ msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Slope and fill work together to modify the heights." -msgstr "높이 수정을 위해 기울기와 채우기를 함께 작용합니다" +msgstr "높이 수정을 위해 기울기와 채우기를 함께 작용합니다." #: src/settings_translation_file.cpp msgid "Small cave maximum number" @@ -6285,7 +6039,6 @@ msgid "Smooth lighting" msgstr "부드러운 조명효과" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Smooths camera when looking around. Also called look or mouse smoothing.\n" "Useful for recording videos." @@ -6309,7 +6062,6 @@ msgid "Sneak key" msgstr "살금살금걷기 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneaking speed" msgstr "걷는 속도" @@ -6322,14 +6074,12 @@ msgid "Sound" msgstr "사운드" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "살금살금걷기 키" +msgstr "특수 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key for climbing/descending" -msgstr "오르기/내리기 에 사용되는 키입니다" +msgstr "오르기/내리기 에 사용되는 특수키" #: src/settings_translation_file.cpp msgid "" @@ -6362,23 +6112,17 @@ msgid "Steepness noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "지형 높이" +msgstr "계단식 산 높이" #: src/settings_translation_file.cpp msgid "Step mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." msgstr "자동으로 생성되는 노멀맵의 강도." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "자동으로 생성되는 노멀맵의 강도." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6417,29 +6161,24 @@ msgid "Temperature variation for biomes." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain alternative noise" msgstr "지형 높이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain base noise" -msgstr "지형 높이" +msgstr "지형 기초 분산" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain height" msgstr "지형 높이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain higher noise" -msgstr "지형 높이" +msgstr "지형 높이 분산" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain noise" -msgstr "지형 높이" +msgstr "지형 분산" #: src/settings_translation_file.cpp msgid "" @@ -6477,6 +6216,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6484,9 +6227,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "The depth of dirt or other biome filler node." -msgstr "흙이나 다른 것의 깊이" +msgstr "흙이나 다른 것의 깊이." #: src/settings_translation_file.cpp msgid "" @@ -6520,8 +6262,8 @@ msgid "" "See /privs in game for a full list on your server and mod configuration." msgstr "" "새로운 유저가 자동으로 얻는 권한입니다.\n" -"게임에서 /privs를 입력하여 서버와 모드 환경설정의 전체 권한\n" -" 목록을 확인하세요." +"게임에서 /privs를 입력하여 서버와 모드 환경설정의 전체 권한 목록을 확인하세" +"요." #: src/settings_translation_file.cpp msgid "" @@ -6540,8 +6282,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6565,6 +6307,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6573,9 +6321,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6594,18 +6341,18 @@ msgid "Third of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Time in seconds for item entity (dropped items) to live.\n" "Setting it to -1 disables the feature." -msgstr "드랍된 아이템이 살아 있는 시간입니다. -1을 입력하여 비활성화합니다." +msgstr "" +"드랍된 아이템이 살아 있는 시간입니다.\n" +"-1을 입력하여 비활성화합니다." #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Time send interval" msgstr "시간 전송 간격" @@ -6614,7 +6361,6 @@ msgid "Time speed" msgstr "시간 속도" #: src/settings_translation_file.cpp -#, fuzzy msgid "Timeout for client to remove unused map data from memory." msgstr "" "메모리에서 사용 하지 않는 맵 데이터를 제거하기 위해 클라이언트에 대한 시간 제" @@ -6631,17 +6377,14 @@ msgstr "" "이것은 node가 배치되거나 제거된 후 얼마나 오래 느려지는지를 결정합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Toggle camera mode key" msgstr "카메라모드 스위치 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Tooltip delay" msgstr "도구 설명 지연" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" msgstr "터치임계값 (픽셀)" @@ -6654,7 +6397,6 @@ msgid "Trilinear filtering" msgstr "삼중 선형 필터링" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6673,7 +6415,6 @@ msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "멀티 탭에 표시 된 서버 목록 URL입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Undersampling" msgstr "좌표표집(Undersampling)" @@ -6687,7 +6428,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Unlimited player transfer distance" msgstr "무제한 플레이어 전송 거리" @@ -6712,7 +6452,6 @@ msgid "Use a cloud animation for the main menu background." msgstr "주 메뉴 배경에 구름 애니메이션을 사용 합니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Use anisotropic filtering when viewing at textures from an angle." msgstr "각도에 따라 텍스처를 볼 때 이방성 필터링을 사용 합니다." @@ -6728,7 +6467,17 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + +#: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "삼중 선형 필터링은 질감 스케일링을 할 때 사용 합니다." @@ -6737,27 +6486,22 @@ msgid "VBO" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "VSync" msgstr "수직동기화 V-Sync" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley depth" msgstr "계곡 깊이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley fill" msgstr "계곡 채우기" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" msgstr "계곡 측면" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" msgstr "계곡 경사" @@ -6771,7 +6515,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "숫자 의 마우스 설정." #: src/settings_translation_file.cpp msgid "" @@ -6790,7 +6534,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Varies steepness of cliffs." msgstr "산의 높이/경사를 조절." @@ -6807,16 +6550,12 @@ msgid "Video driver" msgstr "비디오 드라이버" #: src/settings_translation_file.cpp -#, fuzzy msgid "View bobbing factor" -msgstr "보기 만료" +msgstr "시야의 흔들리는 정도" #: src/settings_translation_file.cpp -#, fuzzy msgid "View distance in nodes." -msgstr "" -"node의 보여지는 거리\n" -"최소 = 20" +msgstr "node의 보여지는 거리(최소 = 20)." #: src/settings_translation_file.cpp msgid "View range decrease key" @@ -6843,7 +6582,6 @@ msgid "Volume" msgstr "볼륨" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." @@ -6881,7 +6619,6 @@ msgid "Water surface level of the world." msgstr "월드의 물 표면 높이." #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving Nodes" msgstr "움직이는 Node" @@ -6890,22 +6627,18 @@ msgid "Waving leaves" msgstr "흔들리는 나뭇잎 효과" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "움직이는 Node" +msgstr "물 움직임" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" msgstr "물결 높이" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" msgstr "물결 속도" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" msgstr "물결 길이" @@ -6914,15 +6647,15 @@ msgid "Waving plants" msgstr "흔들리는 식물 효과" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When gui_scaling_filter is true, all GUI images need to be\n" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" "Gui_scaling_filter이 true 이면 모든 GUI 이미지 소프트웨어에서 필터링 될 필요" -"가 있습니다. 하지만 일부 이미지는 바로 하드웨어에 생성됩니다. (e.g. render-" -"to-texture for nodes in inventory)." +"가 있습니다. \n" +"하지만 일부 이미지는 바로 하드웨어에 생성됩니다. \n" +"(e.g. render-to-texture for nodes in inventory)." #: src/settings_translation_file.cpp msgid "" @@ -6933,7 +6666,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -6945,12 +6677,16 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" -"이중선형/삼중선형/이방성 필터를 사용할 때 저해상도 택스쳐는 희미하게 보일 수 " -"있습니다.so automatically upscale them with nearest-neighbor interpolation " -"to preserve crisp pixels. This sets the minimum texture size for the " -"upscaled textures; 값이 높을수록 선명하게 보입니다. 하지만 많은 메모리가 필요" -"합니다. Powers of 2 are recommended. Setting this higher than 1 may not have " -"a visible effect unless bilinear/trilinear/anisotropic filtering is enabled." +"이중선형/삼중선형/이방성 필터를 사용할 때 \n" +"저해상도 택스쳐는 희미하게 보일 수 있습니다.\n" +"so automatically upscale them with nearest-neighbor interpolation to " +"preserve crisp pixels. \n" +"This sets the minimum texture size for the upscaled textures; \n" +"값이 높을수록 선명하게 보입니다. \n" +"하지만 많은 메모리가 필요합니다. \n" +"Powers of 2 are recommended. \n" +"Setting this higher than 1 may not have a visible effect\n" +"unless bilinear/trilinear/anisotropic filtering is enabled." #: src/settings_translation_file.cpp msgid "" @@ -6959,6 +6695,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6997,12 +6739,10 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Width component of the initial window size." msgstr "폭은 초기 창 크기로 구성되어 있습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "Width of the selection box lines around nodes." msgstr "" "node 주위 “selectionbox'” or (if UTF-8 supported) “selectionbox’” 라인의 너비" @@ -7024,9 +6764,8 @@ msgstr "" "주 메뉴에서 시작 하는 경우 필요 하지 않습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "세계 이름" +msgstr "세계 시작 시간" #: src/settings_translation_file.cpp msgid "" @@ -7043,9 +6782,8 @@ msgid "World-aligned textures mode" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Y of flat ground." -msgstr "평평한 땅의 Y값" +msgstr "평평한 땅의 Y값." #: src/settings_translation_file.cpp msgid "" @@ -7089,6 +6827,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -7101,54 +6857,207 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "확인" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = 경사 정보가 존재 (빠름).\n" +#~ "1 = 릴리프 매핑 (더 느리고 정확함)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "싱글 플레이어 월드를 리셋하겠습니까?" #~ msgid "Back" #~ msgstr "뒤로" +#~ msgid "Bump Mapping" +#~ msgstr "범프 매핑" + +#~ msgid "Bumpmapping" +#~ msgstr "범프맵핑" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "메인 메뉴 UI 변경 :\n" +#~ "-전체 : 여러 싱글 플레이어 월드, 게임 선택, 텍스처 팩 선택기 등.\n" +#~ "-단순함 : 단일 플레이어 세계, 게임 또는 텍스처 팩 선택기가 없습니다. \n" +#~ "작은 화면에 필요할 수 있습니다." + +#~ msgid "Config mods" +#~ msgstr "모드 설정" + +#~ msgid "Configure" +#~ msgstr "환경설정" + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "터널 너비를 조절, 작은 수치는 넓은 터널을 만듭니다." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "십자선 색 (빨, 초, 파)." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "텍스처의 샘플링 단계를 정의합니다.\n" +#~ "일반 맵에 부드럽게 높은 값을 나타냅니다." + #, fuzzy #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "$1 를(을) 다운로드중입니다. 기다려주세요..." -#, fuzzy -#~ msgid "Parallax occlusion strength" -#~ msgstr "시차 교합 강도" - -#~ msgid "Path to save screenshots at." -#~ msgstr "스크린샷 저장 경로입니다." - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "터널 너비를 조절, 작은 수치는 넓은 터널을 만듭니다." - #~ msgid "Enable VBO" #~ msgstr "VBO 적용" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "텍스처에 bumpmapping을 할 수 있습니다. \n" +#~ "Normalmaps는 텍스쳐 팩에서 받거나 자동 생성될 필요가 있습니다.\n" +#~ "쉐이더를 활성화 해야 합니다." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "비행 노멀맵 생성 적용 (엠보스 효과).\n" +#~ "Bumpmapping를 활성화 해야 합니다." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "시차 교합 맵핑 적용.\n" +#~ "쉐이더를 활성화 해야 합니다." + +#~ msgid "FPS in pause menu" +#~ msgstr "일시정지 메뉴에서 FPS" + #~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." #~ msgstr "글꼴 그림자 투명도 (불투명 함, 0과 255 사이)." #~ msgid "Gamma" #~ msgstr "감마" +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal maps 생성" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normalmaps 생성" + #, fuzzy #~ msgid "Lava depth" #~ msgstr "큰 동굴 깊이" +#~ msgid "Main" +#~ msgstr "메인" + +#~ msgid "Main menu style" +#~ msgstr "주 메뉴 스크립트" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "레이더 모드의 미니맵, 2배 확대" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "레이더 모드의 미니맵, 4배 확대" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "표면 모드의 미니맵, 2배 확대" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "표면 모드의 미니맵, 4배 확대" + +#~ msgid "Name/Password" +#~ msgstr "이름/비밀번호" + +#~ msgid "No" +#~ msgstr "아니오" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normalmaps 샘플링" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmaps 강도" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "시차 교합 반복의 수." + +#~ msgid "Ok" +#~ msgstr "확인" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "일반적인 규모/2의 시차 교합 효과의 전반적인 바이어스." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "시차 교합 효과의 전체 규모." + +#~ msgid "Parallax Occlusion" +#~ msgstr "시차 교합" + +#~ msgid "Parallax occlusion" +#~ msgstr "시차 교합" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "시차 교합 바이어스" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "시차 교합 반복" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "시차 교합 모드" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "시차 교합 규모" + +#, fuzzy +#~ msgid "Parallax occlusion strength" +#~ msgstr "시차 교합 강도" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "TrueTypeFont 또는 비트맵의 경로입니다." -#~ msgid "Shadow limit" -#~ msgstr "그림자 제한" +#~ msgid "Path to save screenshots at." +#~ msgstr "스크린샷 저장 경로입니다." -#~ msgid "This font will be used for certain languages." -#~ msgstr "이 글꼴은 특정 언어에 사용 됩니다." - -#~ msgid "Waving water" -#~ msgstr "물결 효과" - -#~ msgid "Waving Water" -#~ msgstr "물결 효과" +#~ msgid "Reset singleplayer world" +#~ msgstr "싱글 플레이어 월드 초기화" #, fuzzy #~ msgid "Select Package File:" #~ msgstr "선택한 모드 파일:" + +#~ msgid "Shadow limit" +#~ msgstr "그림자 제한" + +#~ msgid "Start Singleplayer" +#~ msgstr "싱글 플레이어 시작" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "자동으로 생성되는 노멀맵의 강도." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "이 글꼴은 특정 언어에 사용 됩니다." + +#~ msgid "Toggle Cinematic" +#~ msgstr "시네마틱 스위치" + +#~ msgid "View" +#~ msgstr "보기" + +#~ msgid "Waving Water" +#~ msgstr "물결 효과" + +#~ msgid "Waving water" +#~ msgstr "물결 효과" + +#~ msgid "Yes" +#~ msgstr "예" diff --git a/po/ky/minetest.po b/po/ky/minetest.po index 18da1e7c8..91c6e11b8 100644 --- a/po/ky/minetest.po +++ b/po/ky/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Kyrgyz (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2019-11-10 15:04+0000\n" "Last-Translator: Krock \n" "Language-Team: Kyrgyz \n" -"Language-Team: Lao \n" -"Language: lo\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10.1\n" - -#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp -msgid "OK" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No (optional) dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No hard dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No optional dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Mods" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua -#: src/client/keycode.cpp -msgid "Delete" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: invalid path \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "" -"This modpack has an explicit name given in its modpack.conf which will " -"override any renaming here." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Octaves" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Persistance" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "" - -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#. ~ "defaults" is a noise parameter flag. -#. It describes the default processing options -#. for noise settings in main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "defaults" -msgstr "" - -#. ~ "eased" is a noise parameter flag. -#. It is used to make the map smoother and -#. can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "eased" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 (Enabled)" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Failed to install $1 to $2" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No package description available" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Uninstall Package" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Hackers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Start Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: src/client/client.cpp -msgid "Connection timed out." -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Loading textures..." -msgstr "" - -#: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string. Put either "no" or "yes" -#. into the translation field (literally). -#. Choose "yes" if the language requires use of the fallback -#. font, "no" otherwise. -#. The fallback font is (normally) required for languages with -#. non-Latin script, like Chinese. -#. When in doubt, test your translation. -#: src/client/fontengine.cpp -msgid "needs_fallback_font" -msgstr "yes" - -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "" - -#: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Damage: " -msgstr "" - -#: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Port: " -msgstr "" - -#: src/client/game.cpp -msgid "- Public: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/client/game.cpp -msgid "- Server Name: " -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" - -#: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- %s: special inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to Menu" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to OS" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Game info:" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Hosting server" -msgstr "" - -#: src/client/game.cpp -msgid "Item definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Node definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "Off" -msgstr "" - -#: src/client/game.cpp -msgid "On" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - -#: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Singleplayer" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "You died" -msgstr "" - -#: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - -#: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "" - -#: src/client/keycode.cpp -msgid "Backspace" -msgstr "" - -#: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#: src/client/keycode.cpp -msgid "End" -msgstr "" - -#: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Convert" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Escape" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#. ~ Key name, common on Windows keyboards -#: src/client/keycode.cpp -msgid "Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Num Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad *" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad +" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad -" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad ." -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad /" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 0" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 2" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 3" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 4" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 5" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 6" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 7" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 8" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 9" -msgstr "" - -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page down" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page up" -msgstr "" - -#: src/client/keycode.cpp -msgid "Pause" -msgstr "" - -#: src/client/keycode.cpp -msgid "Play" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Sleep" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Space" -msgstr "" - -#: src/client/keycode.cpp -msgid "Tab" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Zoom" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -#, c-format -msgid "" -"You are about to join this server with the name \"%s\" for the first time.\n" -"If you proceed, a new account using your credentials will be created on this " -"server.\n" -"Please retype your password and click 'Register and Join' to confirm account " -"creation, or click 'Cancel' to abort." -msgstr "" - -#: src/gui/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Exit" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Muted" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" - -#. ~ Imperative, as in "Enter/type in text". -#. Don't forget the space. -#: src/gui/modalMenu.cpp -msgid "Enter " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string which needs to contain the translation's -#. language code (e.g. "de" for German). -#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp -msgid "LANG_CODE" -msgstr "lo" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- crossview: Cross-eyed 3d\n" -"- pageflip: quadbuffer based 3d.\n" -"Note that the interlaced mode requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to\n" -"clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible\n" -"rendering glitches (some blocks will not be rendered under water and in " -"caves,\n" -"as well as sometimes on land).\n" -"Setting this to a value greater than max_block_send_distance disables this\n" -"optimization.\n" -"Stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve boost spread" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Flat.\n" -"Occasional lakes and hills can be added to the flat world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill': Reduces heat with altitude.\n" -"'humid_rivers': Increases humidity around rivers.\n" -"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" -"to become shallower and occasionally dry.\n" -"'altitude_dry': Reduces humidity with altitude." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"'ridges': Rivers.\n" -"'floatlands': Floating land masses in the atmosphere.\n" -"'caverns': Giant caves deep underground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks that are simultaneously sent per client.\n" -"The maximum total count is calculated dynamically:\n" -"max_total = ceil((#clients + max_users) * per_client / 4)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mod channels" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use.\n" -"Value 0:\n" -"- Automatic selection. The number of emerge threads will be\n" -"- 'number of processors - 2', with a lower limit of 1.\n" -"Any other value:\n" -"- Specifies the number of emerge threads, with a lower limit of 1.\n" -"WARNING: Increasing the number of emerge threads increases engine mapgen\n" -"speed, but this may harm game performance by interfering with other\n" -"processes, especially in singleplayer and/or when running Lua code in\n" -"'on_generated'. For many users the optimum setting may be '1'." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path of the fallback font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font will be used for certain languages or if the default font is " -"unavailable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the default font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"The fallback font will be used if the font cannot be loaded." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype” setting is enabled: Must be a TrueType font.\n" -"If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prometheus listener address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Prometheus listener address.\n" -"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" -"enable metrics listener for Prometheus on that address.\n" -"Metrics can be fetch on http://127.0.0.1:30000/metrics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Restricts the access of certain client-side functions on servers.\n" -"Combine the byteflags below to restrict client-side features, or set to 0\n" -"for no restrictions:\n" -"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n" -"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n" -"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n" -"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n" -"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n" -"csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (disable get_player_names call client-side)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale GUI by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Selects one of 18 fractal types.\n" -"1 = 4D \"Roundy\" Mandelbrot set.\n" -"2 = 4D \"Roundy\" Julia set.\n" -"3 = 4D \"Squarry\" Mandelbrot set.\n" -"4 = 4D \"Squarry\" Julia set.\n" -"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" Julia set.\n" -"7 = 4D \"Variation\" Mandelbrot set.\n" -"8 = 4D \"Variation\" Julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n" -"11 = 3D \"Christmas Tree\" Mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" Julia set.\n" -"13 = 3D \"Mandelbulb\" Mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" Julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" Julia set.\n" -"17 = 4D \"Mandelbulb\" Mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" Julia set." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" -"WARNING!: There is no benefit, and there are several dangers, in\n" -"increasing this value above 5.\n" -"Reducing this value increases cave and dungeon density.\n" -"Altering this value is for special usage, leaving it unchanged is\n" -"recommended." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies the default stack size of nodes, items and tools.\n" -"Note that mods or games may explicitly set a stack for certain (or all) " -"items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Spread of light curve boost range.\n" -"Controls the width of the range to be boosted.\n" -"Standard deviation of the light curve boost Gaussian." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Strength of light curve boost.\n" -"The 3 'boost' parameters define a range of the light\n" -"curve that is boosted in brightness." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strip color codes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Surface level of optional water placed on a solid floatland layer.\n" -"Water is disabled by default and will only be placed if this value is set\n" -"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n" -"upper tapering).\n" -"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n" -"When enabling water placement the floatlands must be configured and tested\n" -"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n" -"required value depending on 'mgv7_np_floatland'), to avoid\n" -"server-intensive extreme water flow and to avoid vast flooding of the\n" -"world surface below." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alternative noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Textures on a node may be aligned either to the node or to the world.\n" -"The former mode suits better things like machines, furniture, etc., while\n" -"the latter makes stairs and microblocks fit surroundings better.\n" -"However, as this possibility is new, thus may not be used by older servers,\n" -"this option allows enforcing it for certain node types. Note though that\n" -"that is considered EXPERIMENTAL and may not work properly." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The maximum height of the surface of waving liquids.\n" -"4.0 = Wave height is two nodes.\n" -"0.0 = Wave doesn't move at all.\n" -"Default is 1.0 (1/2 node).\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The radius of the volume of blocks around every player that is subject to " -"the\n" -"active block stuff, stated in mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run.\n" -"This is also the minimum range in which active objects (mobs) are " -"maintained.\n" -"This should be configured together with active_object_send_range_blocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The rendering back-end for Irrlicht.\n" -"A restart is required after changing this.\n" -"Note: On Android, stick with OGLES1 if unsure! App may fail to start " -"otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using a lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give a significant performance boost at the cost of less detailed " -"image.\n" -"Higher values result in a less detailed image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"W coordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled.\n" -"This is also used as the base node texture size for world-aligned\n" -"texture autoscaling." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to mute sounds. You can unmute sounds at any time, unless the\n" -"sound system is disabled (enable_sound=false).\n" -"In-game, you can toggle the mute state with the mute key or by using the\n" -"pause menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World-aligned textures may be scaled to span several nodes. However,\n" -"the server may not send the scale you want, especially if you use\n" -"a specially-designed texture pack; with this option, the client tries\n" -"to determine the scale automatically basing on the texture size.\n" -"See also texture_min_size.\n" -"Warning: This option is EXPERIMENTAL!" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Y-distance over which floatlands taper from full density to nothing.\n" -"Tapering starts at this distance from the Y limit.\n" -"For a solid floatland layer, this controls the height of hills/mountains.\n" -"Must be less than or equal to half the distance between the Y limits." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" diff --git a/po/lt/minetest.po b/po/lt/minetest.po index 572e7323a..98bcff78d 100644 --- a/po/lt/minetest.po +++ b/po/lt/minetest.po @@ -2,31 +2,36 @@ msgid "" msgstr "" "Project-Id-Version: Lithuanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-05-10 12:32+0000\n" -"Last-Translator: restcoser \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"Last-Translator: Kornelijus Tvarijanavičius \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > " -"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? " -"1 : 2);\n" -"X-Generator: Weblate 4.1-dev\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 4.5\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Prisikelti" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Jūs numirėte" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Klaida įvyko Lua scenarijuje, tokiame kaip papildinys:" +msgstr "Įvyko klaida Lua skripte:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" msgstr "Įvyko klaida:" @@ -42,10 +47,6 @@ msgstr "Prisijungti iš naujo" msgid "The server has requested a reconnect:" msgstr "Serveris paprašė prisijungti iš naujo:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Įkeliama..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Neatitinka protokolo versija. " @@ -58,21 +59,16 @@ msgstr "Serveris reikalauja naudoti versijos $1 protokolą. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Serveris palaiko protokolo versijas nuo $1 iki $2 " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Pabandykite dar kart įjungti viešą serverių sąrašą ir patikrinkite savo " -"interneto ryšį." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Mes palaikome tik $1 protokolo versiją." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Mes palaikome protokolo versijas nuo $1 iki $2." +msgstr "Mes palaikome protokolo versijas tarp $1 ir $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -80,20 +76,18 @@ msgstr "Mes palaikome protokolo versijas nuo $1 iki $2." #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "Atsisakyti" +msgstr "Atšaukti" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -#, fuzzy +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "Priklauso:" +msgstr "Priklauso nuo:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable all" -msgstr "Išjungti papildinį" +msgstr "Išjungti visus papildinius" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Disable modpack" msgstr "Išjungti papildinį" @@ -102,9 +96,8 @@ msgid "Enable all" msgstr "Įjungti visus" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "Enable modpack" -msgstr "Pervadinti papildinių paką:" +msgstr "Aktyvuoti papildinį" #: builtin/mainmenu/dlg_config_world.lua #, fuzzy @@ -128,19 +121,16 @@ msgid "No (optional) dependencies" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No game description provided." -msgstr "Papildinio aprašymas nepateiktas" +msgstr "Nepateiktas žaidimo aprašymas." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Priklauso:" +msgstr "Nėra būtinų priklausomybių" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No modpack description provided." -msgstr "Papildinio aprašymas nepateiktas" +msgstr "Nepateiktas papildinio aprašymas." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" @@ -163,15 +153,55 @@ msgstr "Pasaulis:" msgid "enabled" msgstr "įjungtas" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 atsiunčiama..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Klavišas jau naudojamas" + #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "Back to Main Menu" msgstr "Pagrindinis meniu" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Slėpti vidinius" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -195,6 +225,16 @@ msgstr "Žaidimai" msgid "Install" msgstr "Įdiegti" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Įdiegti" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Inicijuojami mazgai" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -209,9 +249,25 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Ieškoti" +#, fuzzy +msgid "No updates" +msgstr "Atnaujinti" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -228,7 +284,11 @@ msgid "Update" msgstr "Atnaujinti" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -268,9 +328,8 @@ msgid "Create" msgstr "Sukurti" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Papildinio informacija:" +msgstr "Dekoracijos" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -487,11 +546,6 @@ msgstr "< Atgal į Nustatymus" msgid "Browse" msgstr "Naršyti" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Žaisti tinkle(klientas)" - #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Disabled" @@ -539,14 +593,16 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Select directory" -msgstr "Pasirinkite papildinio failą:" +msgid "Search" +msgstr "Ieškoti" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select directory" +msgstr "Pasirinkite aplanką" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select file" -msgstr "Pasirinkite papildinio failą:" +msgstr "Pasirinkite failą" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -635,11 +691,9 @@ msgstr "" "paketui $1" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" -"\n" -"Papildinio diegimas: nepalaikomas failo tipas „$1“, arba sugadintas archyvas" +"Papildinio diegimas: nepalaikomas failo tipas „$1“ arba sugadintas archyvas" #: builtin/mainmenu/pkgmgr.lua #, fuzzy @@ -673,6 +727,20 @@ msgstr "Nepavyko įdiegti $1 į $2" msgid "Unable to install a modpack as a $1" msgstr "Nepavyko įdiegti $1 į $2" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Įkeliama..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Pabandykite dar kart įjungti viešą serverių sąrašą ir patikrinkite savo " +"interneto ryšį." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -683,9 +751,8 @@ msgid "Content" msgstr "Tęsti" #: builtin/mainmenu/tab_content.lua -#, fuzzy msgid "Disable Texture Pack" -msgstr "Pasirinkite tekstūros paketą:" +msgstr "Pasirinkite tekstūros paketą" #: builtin/mainmenu/tab_content.lua #, fuzzy @@ -733,7 +800,14 @@ msgid "Credits" msgstr "Padėkos" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Pasirinkite aplanką" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -753,14 +827,10 @@ msgid "Bind Address" msgstr "Susieti adresą" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigūruoti" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kūrybinė veiksena" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Leisti sužeidimus" @@ -779,8 +849,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Vardas/slaptažodis" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -790,6 +860,11 @@ msgstr "Naujas" msgid "No world created or selected!" msgstr "Nesukurtas ar pasirinktas joks pasaulis!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Naujas slaptažodis" + #: builtin/mainmenu/tab_local.lua #, fuzzy msgid "Play Game" @@ -799,6 +874,11 @@ msgstr "Pradėti žaidimą" msgid "Port" msgstr "Prievadas" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Pasirinkite pasaulį:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Pasirinkite pasaulį:" @@ -813,28 +893,26 @@ msgid "Start Game" msgstr "Slėpti vidinius" #: builtin/mainmenu/tab_online.lua -#, fuzzy msgid "Address / Port" -msgstr "Adresas / Prievadas :" +msgstr "Adresas / Prievadas" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Jungtis" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kūrybinė veiksena" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Žalojimas įjungtas" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "Mėgiami:" +msgstr "Pašalinti iš mėgiamų" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Favorite" msgstr "Mėgiami:" @@ -844,17 +922,16 @@ msgstr "Mėgiami:" msgid "Join Game" msgstr "Slėpti vidinius" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "Vardas / Slaptažodis :" +msgstr "Vardas / Slaptažodis" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP įjungtas" @@ -883,11 +960,6 @@ msgstr "Nustatymai" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Are you sure to reset your singleplayer world?" -msgstr "Atstatyti vieno žaidėjo pasaulį" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -896,10 +968,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "„Bilinear“ filtras" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Nustatyti klavišus" @@ -914,10 +982,6 @@ msgstr "Jungtis" msgid "Fancy Leaves" msgstr "Nepermatomi lapai" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -926,10 +990,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ne" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -960,20 +1020,11 @@ msgstr "Nepermatomi lapai" msgid "Opaque Water" msgstr "Nepermatomas vanduo" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Paralaksinė okliuzija" - #: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Particles" msgstr "Įjungti visus" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Reset singleplayer world" -msgstr "Atstatyti vieno žaidėjo pasaulį" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "" @@ -986,6 +1037,10 @@ msgstr "Nustatymai" msgid "Shaders" msgstr "Šešėliavimai" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -1034,22 +1089,6 @@ msgstr "Nepermatomi lapai" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Taip" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Konfigūruoti papildinius" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Pagrindinis" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Atstatyti vieno žaidėjo pasaulį" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Baigėsi prijungimo laikas." @@ -1132,33 +1171,28 @@ msgstr "" "Patikrinkite debug.txt dėl papildomos informacijos." #: src/client/game.cpp -#, fuzzy msgid "- Address: " -msgstr "Susieti adresą" +msgstr "- Adresas: " #: src/client/game.cpp -#, fuzzy msgid "- Creative Mode: " -msgstr "Kūrybinė veiksena" +msgstr "- Kūrybinis režimas " #: src/client/game.cpp -#, fuzzy msgid "- Damage: " -msgstr "Leisti sužeidimus" +msgstr "- Sužeidimai: " #: src/client/game.cpp msgid "- Mode: " msgstr "" #: src/client/game.cpp -#, fuzzy msgid "- Port: " -msgstr "Prievadas" +msgstr "- Prievadas: " #: src/client/game.cpp -#, fuzzy msgid "- Public: " -msgstr "Viešas" +msgstr "- Viešas: " #. ~ PvP = Player versus Player #: src/client/game.cpp @@ -1166,9 +1200,8 @@ msgid "- PvP: " msgstr "" #: src/client/game.cpp -#, fuzzy msgid "- Server Name: " -msgstr "Serveris" +msgstr "- Serverio pavadinimas: " #: src/client/game.cpp #, fuzzy @@ -1223,30 +1256,30 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Numatytas valdymas:\n" -"- WASD: judėti\n" -"- Tarpas: šokti/lipti\n" -"- Lyg2: leistis/eiti žemyn\n" -"- Q: išmesti elementą\n" -"- I: inventorius\n" +"- %s: judėti į priekį\n" +"- %s: judėti atgal\n" +"- %s: judėti į kairę\n" +"- %s: judėti į dešinę\n" +"- %s: šokti/lipti\n" +"- %s: leistis/eiti žemyn\n" +"- %s: išmesti daiktą\n" +"- %s: inventorius\n" "- Pelė: sukti/žiūrėti\n" "- Pelės kairys: kasti/smugiuoti\n" "- Pelės dešinys: padėti/naudoti\n" "- Pelės ratukas: pasirinkti elementą\n" -"- T: kalbėtis\n" +"- %s: kalbėtis\n" #: src/client/game.cpp msgid "Creating client..." @@ -1350,16 +1383,6 @@ msgstr "Išjungti papildinį" msgid "Fog enabled" msgstr "įjungtas" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Išjungti papildinį" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "įjungtas" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1370,9 +1393,8 @@ msgid "Game paused" msgstr "Žaidimo pavadinimas" #: src/client/game.cpp -#, fuzzy msgid "Hosting server" -msgstr "Kuriamas serveris...." +msgstr "Kuriamas serveris" #: src/client/game.cpp msgid "Item definitions..." @@ -1382,16 +1404,6 @@ msgstr "Elemento apibrėžimai..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Išjungti papildinį" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Žalojimas įjungtas" - #: src/client/game.cpp msgid "Media..." msgstr "Medija..." @@ -1404,34 +1416,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1477,10 +1461,6 @@ msgstr "" msgid "Resolving address..." msgstr "Ieškoma adreso..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Prisikelti" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Išjungiama..." @@ -1535,11 +1515,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -#, fuzzy -msgid "You died" -msgstr "Jūs numirėte." - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1557,15 +1532,6 @@ msgstr "Nustatyti klavišus" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Nustatyti klavišus" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1853,6 +1819,24 @@ msgstr "X mygtukas 2" msgid "Zoom" msgstr "Pritraukti" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Slaptažodžiai nesutampa!" @@ -1893,26 +1877,6 @@ msgstr "" msgid "Backward" msgstr "Atgal" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Change camera" @@ -2009,31 +1973,11 @@ msgstr "Sėlinti" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Nustatyti klavišus" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Įjungti kinematografinį" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Įjungti kinematografinį" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Toggle HUD" msgstr "Įjungti skrydį" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Įjungti skrydį" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Toggle chat log" @@ -2103,7 +2047,7 @@ msgstr "Garso lygis: " #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "Įvesti" +msgstr "Įvesti " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -2148,12 +2092,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2261,6 +2199,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2354,9 +2296,8 @@ msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Announce to this serverlist." -msgstr "Paskelbti Serverį" +msgstr "Paskelbti tai serverių sąrašui" #: src/settings_translation_file.cpp msgid "Append item name" @@ -2498,10 +2439,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2572,16 +2509,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2722,9 +2649,8 @@ msgid "Connect glass" msgstr "Jungtis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Connect to external media server" -msgstr "Jungiamasi prie serverio..." +msgstr "Prisijungti prie išorinio medijos serverio" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." @@ -2747,6 +2673,10 @@ msgstr "Nustatyti klavišus" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2807,7 +2737,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2815,7 +2747,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2918,12 +2852,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2994,6 +2922,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Dešinėn" + #: src/settings_translation_file.cpp #, fuzzy msgid "Digging particles" @@ -3056,7 +2989,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3064,9 +2997,8 @@ msgid "Enable joysticks" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enable mod channels support." -msgstr "Papildiniai internete" +msgstr "Įjungti papildinių kanalų palaikymą." #: src/settings_translation_file.cpp #, fuzzy @@ -3145,34 +3077,13 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Enables minimap." -msgstr "Leisti sužeidimus" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" +msgstr "Įjungia minimapą." #: src/settings_translation_file.cpp msgid "" @@ -3190,12 +3101,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3207,7 +3112,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3509,10 +3414,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3568,8 +3469,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -4039,6 +3940,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4119,6 +4024,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4218,6 +4130,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4778,11 +4697,6 @@ msgstr "" msgid "Main menu script" msgstr "Pagrindinis meniu" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Pagrindinis meniu" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4796,6 +4710,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4969,7 +4891,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -5017,6 +4939,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5248,14 +5177,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5281,10 +5202,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5310,35 +5227,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Paralaksinė okliuzija" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5405,6 +5293,15 @@ msgstr "Kūrybinė veiksena" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Kūrybinė veiksena" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5561,10 +5458,6 @@ msgstr "" msgid "Right key" msgstr "Dešinėn" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5826,6 +5719,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5959,10 +5862,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6056,6 +5955,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6115,8 +6018,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6140,6 +6043,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6148,9 +6057,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6285,6 +6193,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6491,6 +6410,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6614,6 +6539,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6626,12 +6569,18 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "Gerai" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ar tikrai norite perkurti savo lokalų pasaulį?" #~ msgid "Back" #~ msgstr "Atgal" +#~ msgid "Config mods" +#~ msgstr "Konfigūruoti papildinius" + +#~ msgid "Configure" +#~ msgstr "Konfigūruoti" + #, fuzzy #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Atsiunčiama $1, prašome palaukti..." @@ -6644,6 +6593,42 @@ msgstr "" #~ msgid "Enables filmic tone mapping" #~ msgstr "Leisti sužeidimus" +#~ msgid "Main" +#~ msgstr "Pagrindinis" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Pagrindinis meniu" + +#~ msgid "Name/Password" +#~ msgstr "Vardas/slaptažodis" + +#~ msgid "No" +#~ msgstr "Ne" + +#~ msgid "Ok" +#~ msgstr "Gerai" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaksinė okliuzija" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Paralaksinė okliuzija" + +#, fuzzy +#~ msgid "Reset singleplayer world" +#~ msgstr "Atstatyti vieno žaidėjo pasaulį" + #, fuzzy #~ msgid "Select Package File:" #~ msgstr "Pasirinkite papildinio failą:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Atstatyti vieno žaidėjo pasaulį" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Įjungti kinematografinį" + +#~ msgid "Yes" +#~ msgstr "Taip" diff --git a/po/lv/minetest.po b/po/lv/minetest.po index 3f46a1aa5..e1b4de861 100644 --- a/po/lv/minetest.po +++ b/po/lv/minetest.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-04 16:41+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-07-12 17:41+0000\n" "Last-Translator: Uko Koknevics \n" "Language-Team: Latvian \n" @@ -18,7 +18,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " "19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.2-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Atdzīvoties" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Jūs nomirāt" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -44,10 +52,6 @@ msgstr "Atjaunot savienojumu" msgid "The server has requested a reconnect:" msgstr "Serveris ir pieprasījis savienojuma atjaunošanu:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Ielāde..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokola versiju neatbilstība. " @@ -60,12 +64,6 @@ msgstr "Serveris pieprasa protokola versiju $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Serveris atbalsta protokola versijas starp $1 un $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Pamēģiniet atkārtoti ieslēgt publisko serveru sarakstu un pārbaudiet " -"interneta savienojumu." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Mēs atbalstam tikai protokola versiju $1." @@ -74,7 +72,8 @@ msgstr "Mēs atbalstam tikai protokola versiju $1." msgid "We support protocol versions between version $1 and $2." msgstr "Mēs atbalstam protokola versijas starp $1 un $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -84,7 +83,8 @@ msgstr "Mēs atbalstam protokola versijas starp $1 un $2." msgid "Cancel" msgstr "Atcelt" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Atkarības:" @@ -157,14 +157,55 @@ msgstr "Pasaule:" msgid "enabled" msgstr "iespējots" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Ielāde..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Visi papildinājumi" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Šis taustiņš jau tiek izmantots" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Atpakaļ uz Galveno Izvēlni" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Spēlēt (kā serveris)" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -187,6 +228,16 @@ msgstr "Spēles" msgid "Install" msgstr "Instalēt" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instalēt" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Neobligātās atkarības:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -201,9 +252,25 @@ msgid "No results" msgstr "Nav resultātu" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Meklēt" +#, fuzzy +msgid "No updates" +msgstr "Atjaunot" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -218,7 +285,11 @@ msgid "Update" msgstr "Atjaunot" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -259,9 +330,8 @@ msgid "Create" msgstr "Izveidot" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informācija:" +msgstr "Dekorācijas" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -474,10 +544,6 @@ msgstr "< Atpakaļ uz Iestatījumu lapu" msgid "Browse" msgstr "Pārlūkot" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Atspējots" @@ -522,6 +588,10 @@ msgstr "Atiestatīt uz noklusējumu" msgid "Scale" msgstr "Mērogs" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Meklēt" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Izvēlēties mapi" @@ -639,6 +709,21 @@ msgstr "Neizdevās instalēt modu kā $1" msgid "Unable to install a modpack as a $1" msgstr "Neizdevās instalēt modu komplektu kā $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Ielāde..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Klienta puses skriptēšana ir atspējota" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Pamēģiniet atkārtoti ieslēgt publisko serveru sarakstu un pārbaudiet " +"interneta savienojumu." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Pārlūkot tiešsaistes saturu" @@ -692,7 +777,14 @@ msgid "Credits" msgstr "Pateicības" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Izvēlēties mapi" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -712,14 +804,10 @@ msgid "Bind Address" msgstr "Piesaistes adrese" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Iestatīt" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Radošais režīms" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Iespējot bojājumus" @@ -736,8 +824,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Vārds/Parole" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -747,6 +835,11 @@ msgstr "Jauns" msgid "No world created or selected!" msgstr "Pasaule nav ne izveidota, ne izvēlēta!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Jaunā parole" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Spēlēt" @@ -755,6 +848,11 @@ msgstr "Spēlēt" msgid "Port" msgstr "Ports" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Izvēlieties pasauli:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Izvēlieties pasauli:" @@ -771,23 +869,23 @@ msgstr "Sākt spēli" msgid "Address / Port" msgstr "Adrese / Ports" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Pieslēgties" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Radošais režīms" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Bojājumi iespējoti" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Izdzēst no izlases" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Pievienot izlasei" @@ -795,16 +893,16 @@ msgstr "Pievienot izlasei" msgid "Join Game" msgstr "Pievienoties spēlei" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Vārds / Parole" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Pings" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP iespējots" @@ -832,11 +930,6 @@ msgstr "Visi iestatījumi" msgid "Antialiasing:" msgstr "Gludināšana:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" -"Vai esat pārliecināts, ka vēlaties atiestatīt savu viena spēlētāja pasauli?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Atcerēties ekrāna izmēru" @@ -845,10 +938,6 @@ msgstr "Atcerēties ekrāna izmēru" msgid "Bilinear Filter" msgstr "Bilineārais filtrs" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "“Bump Mapping”" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Nomainīt kontroles" @@ -861,10 +950,6 @@ msgstr "Savienots stikls" msgid "Fancy Leaves" msgstr "Skaistas lapas" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Izveidot normāl-kartes" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "“Mipmap”" @@ -873,10 +958,6 @@ msgstr "“Mipmap”" msgid "Mipmap + Aniso. Filter" msgstr "“Mipmap” + anizotr. filtrs" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nē" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Bez filtra" @@ -905,18 +986,10 @@ msgstr "Necaurredzamas lapas" msgid "Opaque Water" msgstr "Necaurredzams ūdens" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Tekstūru dziļums" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Daļiņas" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Atiestatīt viena spēlētāja pasauli" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Ekrāns:" @@ -929,6 +1002,11 @@ msgstr "Iestatījumi" msgid "Shaders" msgstr "Šeideri" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Šeideri (nepieejami)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Šeideri (nepieejami)" @@ -973,22 +1051,6 @@ msgstr "Viļņojoši šķidrumi" msgid "Waving Plants" msgstr "Viļņojoši augi" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Jā" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Iestatīt modus" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Galvenā izvēlne" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Sākt viena spēlētāja spēli" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Savienojuma noildze." @@ -1150,18 +1212,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Kontroles:\n" "- %s: uz priekšu\n" @@ -1275,16 +1334,6 @@ msgstr "Migla atspējota" msgid "Fog enabled" msgstr "Migla iespējota" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Migla atspējota" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Migla iespējota" - #: src/client/game.cpp msgid "Game info:" msgstr "Spēles informācija:" @@ -1305,16 +1354,6 @@ msgstr "Priekšmetu apraksti..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Migla atspējota" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Bojājumi iespējoti" - #: src/client/game.cpp msgid "Media..." msgstr "Mēdiji..." @@ -1327,34 +1366,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Minikarte šobrīd atspējota vai nu spēlei, vai modam" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minikarte paslēpta" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minikarte radara režīmā, palielinājums x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minikarte radara režīmā, palielinājums x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minikarte radara režīmā, palielinājums x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minikarte virsmas režīmā, palielinājums x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minikarte virsmas režīmā, palielinājums x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minikarte virsmas režīmā, palielinājums x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "“Noclip” režīms izslēgts" @@ -1399,10 +1410,6 @@ msgstr "Attālināts serveris" msgid "Resolving address..." msgstr "Atrisina adresi..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Atdzīvoties" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Beidz darbu..." @@ -1455,10 +1462,6 @@ msgstr "Skaļums nomainīts uz %d%%" msgid "Wireframe shown" msgstr "Karkasattēlojums iespējots" -#: src/client/game.cpp -msgid "You died" -msgstr "Jūs nomirāt" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Tuvināšana šobrīd atspējota vai nu spēlei, vai modam" @@ -1475,16 +1478,6 @@ msgstr "Čats paslēpts" msgid "Chat shown" msgstr "Čats parādīts" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Čats paslēpts" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Čats parādīts" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Spēles saskarne paslēpta" @@ -1765,6 +1758,25 @@ msgstr "X Poga 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minikarte paslēpta" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minikarte radara režīmā, palielinājums x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minikarte virsmas režīmā, palielinājums x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Minikarte virsmas režīmā, palielinājums x1" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Paroles nesakrīt!" @@ -1809,26 +1821,6 @@ msgstr "Automātiskā lekšana" msgid "Backward" msgstr "Atmuguriski" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Mainīt kameru" @@ -1923,29 +1915,10 @@ msgstr "Lavīties" msgid "Special" msgstr "Speciālais" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Speciālais" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "“Noclip”" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Spēles saskarne" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Lidot" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Čata logs" @@ -2055,12 +2028,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2167,6 +2134,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2400,10 +2371,6 @@ msgstr "Būvēt iekšā spēlētājā" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2474,16 +2441,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2635,6 +2592,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2692,7 +2653,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2700,7 +2663,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2799,12 +2764,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2875,6 +2834,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2936,7 +2899,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3023,14 +2986,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3039,18 +2994,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3067,12 +3010,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3084,7 +3021,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3385,10 +3322,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3443,8 +3376,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3914,6 +3847,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3993,6 +3930,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4092,6 +4036,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4649,10 +4600,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4666,6 +4613,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4830,7 +4785,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4878,6 +4833,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5107,14 +5069,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5140,10 +5094,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5169,34 +5119,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5262,6 +5184,14 @@ msgstr "" msgid "Pitch move mode" msgstr "Kustība uz augšu/leju pēc skatīšanās virziena" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5419,10 +5349,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5674,6 +5600,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5803,10 +5739,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5900,6 +5832,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5959,8 +5895,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5984,6 +5920,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5992,9 +5934,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6129,6 +6070,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6331,6 +6283,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6453,6 +6411,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6465,11 +6441,61 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "Ok" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "" +#~ "Vai esat pārliecināts, ka vēlaties atiestatīt savu viena spēlētāja " +#~ "pasauli?" + +#~ msgid "Back" +#~ msgstr "Atpakaļ" + +#~ msgid "Bump Mapping" +#~ msgstr "“Bump Mapping”" + +#~ msgid "Config mods" +#~ msgstr "Iestatīt modus" + +#~ msgid "Configure" +#~ msgstr "Iestatīt" #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Lejuplādējas un instalējas $1, lūdzu uzgaidiet..." -#~ msgid "Back" -#~ msgstr "Atpakaļ" +#~ msgid "Generate Normal Maps" +#~ msgstr "Izveidot normāl-kartes" + +#~ msgid "Main" +#~ msgstr "Galvenā izvēlne" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minikarte radara režīmā, palielinājums x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minikarte radara režīmā, palielinājums x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minikarte virsmas režīmā, palielinājums x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minikarte virsmas režīmā, palielinājums x4" + +#~ msgid "Name/Password" +#~ msgstr "Vārds/Parole" + +#~ msgid "No" +#~ msgstr "Nē" + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Tekstūru dziļums" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Atiestatīt viena spēlētāja pasauli" + +#~ msgid "Start Singleplayer" +#~ msgstr "Sākt viena spēlētāja spēli" + +#~ msgid "Yes" +#~ msgstr "Jā" diff --git a/po/minetest.pot b/po/minetest.pot index e544cbfeb..b5556d3f3 100644 --- a/po/minetest.pot +++ b/po/minetest.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "" @@ -41,14 +49,6 @@ msgstr "" msgid "An error occurred:" msgstr "" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " msgstr "" @@ -97,7 +97,8 @@ msgstr "" msgid "Optional dependencies:" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "" @@ -110,7 +111,8 @@ msgstr "" msgid "Save" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -177,14 +179,79 @@ msgid "Failed to download $1" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +msgid "Already installed" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "" @@ -198,7 +265,7 @@ msgid "Downloading..." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -210,7 +277,7 @@ msgid "Uninstall" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -444,10 +511,6 @@ msgstr "" msgid "Rename Modpack:" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "" @@ -559,6 +622,10 @@ msgstr "" msgid "Select file" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" msgstr "" @@ -623,6 +690,18 @@ msgstr "" msgid "$1 mods" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" msgstr "" @@ -667,10 +746,6 @@ msgstr "" msgid "Credits" msgstr "" -#: builtin/mainmenu/tab_credits.lua -msgid "Hackers" -msgstr "" - #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" msgstr "" @@ -687,12 +762,22 @@ msgstr "" msgid "Previous Contributors" msgstr "" +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" +msgid "Select Mods" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -703,11 +788,11 @@ msgstr "" msgid "Select World:" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -724,7 +809,11 @@ msgid "Announce Server" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -755,36 +844,36 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -852,18 +941,6 @@ msgstr "" msgid "8x" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" msgstr "" @@ -905,11 +982,11 @@ msgid "Shaders" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" +msgid "Shaders (experimental)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" +msgid "Shaders (unavailable)" msgstr "" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp @@ -924,22 +1001,10 @@ msgstr "" msgid "Touchthreshold: (px)" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" msgstr "" @@ -960,18 +1025,6 @@ msgstr "" msgid "Settings" msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1032,18 +1085,6 @@ msgstr "" msgid "Invalid gamespec." msgstr "" -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string. Put either "no" or "yes" -#. into the translation field (literally). -#. Choose "yes" if the language requires use of the fallback -#. font, "no" otherwise. -#. The fallback font is (normally) required for languages with -#. non-Latin script, like Chinese. -#. When in doubt, test your translation. -#: src/client/fontengine.cpp -msgid "needs_fallback_font" -msgstr "" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1157,22 +1198,6 @@ msgstr "" msgid "Noclip mode disabled" msgstr "" -#: src/client/game.cpp -msgid "Killaura enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - #: src/client/game.cpp msgid "Cinematic mode enabled" msgstr "" @@ -1189,34 +1214,6 @@ msgstr "" msgid "Automatic forward disabled" msgstr "" -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" msgstr "" @@ -1284,14 +1281,6 @@ msgstr "" msgid "Zoom currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "" - -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - #: src/client/game.cpp msgid "" "Default Controls:\n" @@ -1316,18 +1305,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1425,14 +1411,6 @@ msgstr "" msgid "Chat hidden" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - #: src/client/gameui.cpp msgid "HUD shown" msgstr "" @@ -1713,6 +1691,24 @@ msgstr "" msgid "OEM Clear" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp #, c-format msgid "" @@ -1787,10 +1783,6 @@ msgstr "" msgid "Inventory" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" msgstr "" @@ -1883,38 +1875,6 @@ msgstr "" msgid "Toggle fog" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - #: src/gui/guiPasswordChange.cpp msgid "Old Password" msgstr "" @@ -2085,14 +2045,13 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" +msgid "Place repetition interval" msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -2186,6 +2145,14 @@ msgid "" "when holding down a joystick button combination." msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -2265,6 +2232,28 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "Inventory key" msgstr "" @@ -2962,6 +2951,16 @@ msgstr "" msgid "Basic" msgstr "" +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "VBO" msgstr "" @@ -3116,8 +3115,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." msgstr "" #: src/settings_translation_file.cpp @@ -3163,90 +3167,6 @@ msgid "" "enhanced, highlights and shadows are gradually compressed." msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - #: src/settings_translation_file.cpp msgid "Waving Nodes" msgstr "" @@ -3340,11 +3260,11 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -3517,8 +3437,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -3655,7 +3575,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -3663,7 +3585,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -3833,6 +3757,12 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + #: src/settings_translation_file.cpp msgid "Menus" msgstr "" @@ -4415,6 +4345,19 @@ msgid "" "client number." msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "Default game" msgstr "" @@ -4485,7 +4428,7 @@ msgid "Creative" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -4848,8 +4791,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -4890,6 +4833,19 @@ msgstr "" msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "Dedicated server step" msgstr "" @@ -4917,6 +4873,16 @@ msgstr "" msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "NodeTimer interval" msgstr "" @@ -5270,20 +5236,6 @@ msgstr "" msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "" @@ -6395,3 +6347,14 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" diff --git a/po/ms/minetest.po b/po/ms/minetest.po index 1d780c09c..d35e063cc 100644 --- a/po/ms/minetest.po +++ b/po/ms/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Malay (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" "Language-Team: Malay 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Mentakrifkan tahap persampelan tekstur.\n" +#~ "Nilai lebih tinggi menghasilkan peta normal lebih lembut." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7449,12 +7460,50 @@ msgstr "Had masa cURL" #~ "pentakrifan biom menggantikan cara asal.\n" #~ "Had Y atasan lava di gua-gua besar." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Sedang muat turun dan memasang $1, sila tunggu..." + #~ msgid "Enable VBO" #~ msgstr "Membolehkan VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Membolehkan pemetaan bertompok pada tekstur. Peta normal perlu disediakan " +#~ "oleh pek\n" +#~ "tekstur atau perlu dijana secara automatik.\n" +#~ "Perlukan pembayang dibolehkan." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Membolehkan pemetaan tona sinematik" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Membolehkan penjanaan peta normal secara layang (Kesan cetak timbul).\n" +#~ "Perlukan pemetaan bertompok untuk dibolehkan." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Membolehkan pemetaan oklusi paralaks.\n" +#~ "Memerlukan pembayang untuk dibolehkan." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Pilihan percubaan, mungkin menampakkan ruang yang nyata di\n" +#~ "antara blok apabila ditetapkan dengan nombor lebih besar daripada 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS di menu jeda" + #~ msgid "Floatland base height noise" #~ msgstr "Hingar ketinggian asas tanah terapung" @@ -7467,6 +7516,12 @@ msgstr "Had masa cURL" #~ msgid "Gamma" #~ msgstr "Gama" +#~ msgid "Generate Normal Maps" +#~ msgstr "Jana Peta Normal" + +#~ msgid "Generate normalmaps" +#~ msgstr "Jana peta normal" + #~ msgid "IPv6 support." #~ msgstr "Sokongan IPv6." @@ -7476,18 +7531,106 @@ msgstr "Had masa cURL" #~ msgid "Lightness sharpness" #~ msgstr "Ketajaman pencahayaan" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Had baris hilir keluar pada cakera" + +#~ msgid "Main" +#~ msgstr "Utama" + +#~ msgid "Main menu style" +#~ msgstr "Gaya menu utama" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Peta mini dalam mod radar, Zum 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Peta mini dalam mod radar, Zum 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Peta mini dalam mod permukaan, Zum 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Peta mini dalam mod permukaan, Zum 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nama/Kata laluan" + +#~ msgid "No" +#~ msgstr "Tidak" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Persampelan peta normal" + +#~ msgid "Normalmaps strength" +#~ msgstr "Kekuatan peta normal" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Jumlah lelaran oklusi paralaks." + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Pengaruh kesan oklusi paralaks pada keseluruhannya, kebiasaannya skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Skala keseluruhan kesan oklusi paralaks." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oklusi Paralaks" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oklusi paralaks" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Pengaruh oklusi paralaks" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Lelaran oklusi paralaks" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mod oklusi paralaks" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala oklusi paralaks" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Kekuatan oklusi paralaks" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Laluan ke fon TrueType atau peta bit." +#~ msgid "Path to save screenshots at." +#~ msgstr "Laluan untuk simpan tangkap layar." + +#~ msgid "Projecting dungeons" +#~ msgstr "Kurungan bawah tanah melunjur" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Set semula dunia pemain perseorangan" + +#~ msgid "Select Package File:" +#~ msgstr "Pilih Fail Pakej:" + #~ msgid "Shadow limit" #~ msgstr "Had bayang" +#~ msgid "Start Singleplayer" +#~ msgstr "Mula Main Seorang" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Kekuatan peta normal yang dijana." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Kekuatan tolakan tengah lengkung cahaya." #~ msgid "This font will be used for certain languages." #~ msgstr "Fon ini akan digunakan untuk sesetengah bahasa." +#~ msgid "Toggle Cinematic" +#~ msgstr "Togol Sinematik" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7499,27 +7642,27 @@ msgstr "Had masa cURL" #~ "Variasi ketinggian bukit dan kedalaman tasik rupa bumi lembut tanah " #~ "terapung." +#~ msgid "View" +#~ msgstr "Lihat" + +#~ msgid "Waving Water" +#~ msgstr "Air Bergelora" + #~ msgid "Waving water" #~ msgstr "Air bergelora" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "" +#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Had Y pengatas lava dalam gua besar." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "Aras Y untuk titik tengah tanah terapung dan permukaan tasik." #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Aras Y di mana bayang tanah terapung diperluaskan." -#~ msgid "Projecting dungeons" -#~ msgstr "Kurungan bawah tanah melunjur" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "" -#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi." - -#~ msgid "Waving Water" -#~ msgstr "Air Bergelora" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Had Y pengatas lava dalam gua besar." - -#~ msgid "Select Package File:" -#~ msgstr "Pilih Fail Pakej:" +#~ msgid "Yes" +#~ msgstr "Ya" diff --git a/po/ms_Arab/minetest.po b/po/ms_Arab/minetest.po index 03c6f7224..42d758b7d 100644 --- a/po/ms_Arab/minetest.po +++ b/po/ms_Arab/minetest.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-10-20 18:26+0000\n" "Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat " "Yasuyoshi \n" "Language-Team: Malay (Jawi) \n" "Language-Team: Norwegian Bokmål \n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1.1-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Gjenoppstå" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Du døde" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -38,10 +46,6 @@ msgstr "Koble til på nytt" msgid "The server has requested a reconnect:" msgstr "Tjeneren har bedt om ny tilkobling:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Laster..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Avvikende protokollversjon. " @@ -54,12 +58,6 @@ msgstr "Tjener krever protokollversjon $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Tjener støtter protokollversjoner mellom $1 og $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Prøv å aktivere offentlig tjenerliste på nytt og sjekk Internettforbindelsen " -"din." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Vi støtter kun protokollversjon $1." @@ -68,7 +66,8 @@ msgstr "Vi støtter kun protokollversjon $1." msgid "We support protocol versions between version $1 and $2." msgstr "Vi støtter protokollversjoner mellom versjon $1 og $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Vi støtter protokollversjoner mellom versjon $1 og $2." msgid "Cancel" msgstr "Avbryt" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Avhengigheter:" @@ -108,7 +108,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Finn flere mods" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -116,7 +116,7 @@ msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "Kan gjerne bruke" +msgstr "Ingen (valgfrie) avhengigheter" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." @@ -131,9 +131,8 @@ msgid "No modpack description provided." msgstr "Ingen modpakke-beskrivelse tilgjengelig." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Valgfrie avhengigheter:" +msgstr "Ingen valgfrie avhengigheter" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -152,22 +151,62 @@ msgstr "Verden:" msgid "enabled" msgstr "aktivert" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Laster ned..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Alle pakker" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Tast allerede i bruk" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Tilbake til hovedmeny" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +#, fuzzy +msgid "Base Game:" +msgstr "Vær vert for spill" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "ContentDB er ikke tilgjengelig når Minetest kompileres uten cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Laster..." +msgstr "Laster ned..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -182,6 +221,16 @@ msgstr "Spill" msgid "Install" msgstr "Installer" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Installer" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Valgfrie avhengigheter:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -196,9 +245,25 @@ msgid "No results" msgstr "Resultatløst" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Søk" +#, fuzzy +msgid "No updates" +msgstr "Oppdater" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -213,7 +278,11 @@ msgid "Update" msgstr "Oppdater" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -222,45 +291,39 @@ msgstr "En verden med navn \"$1\" eksisterer allerede" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Ytterligere terreng" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "Temperaturen synker med stigende høyde" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Temperaturen synker med stigende høyde" +msgstr "Tørr høyde" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Biotoplyd" +msgstr "Biotopblanding" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Biotoplyd" +msgstr "Biotop" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Grottelyd" +msgstr "Grotter" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Oktaver" +msgstr "Huler" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Opprett" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informasjon:" +msgstr "Dekorasjoner" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -271,21 +334,20 @@ msgid "Download one from minetest.net" msgstr "Last ned en fra minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Grottelyd" +msgstr "Fangehull" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Flatt terreng" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Flytende landmasser på himmelen" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Flytlandene (eksperimentelt)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -300,21 +362,20 @@ msgid "Hills" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Videodriver" +msgstr "Fuktige elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Øker fuktigheten rundt elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Innsjøer" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Lav fuktighet og høy varme fører til små eller tørre elver" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -322,7 +383,7 @@ msgstr "Mapgen" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Mapgen-flagg" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -331,7 +392,7 @@ msgstr "Mapgen" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Fjell" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -339,7 +400,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Nettverk av tuneller og huler" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -347,20 +408,19 @@ msgstr "Intet spill valgt" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduserer varme ettersom høyden øker" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduserer fuktighet ettersom høyden øker" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Elvestørrelse" +msgstr "Elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Havnivåelver" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -399,21 +459,19 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Trær og jungelgress" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Elvedybde" +msgstr "Varier elvedybde" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "Advarsel: Den minimale utviklingstesten er tiltenkt utviklere." +msgstr "Advarsel: Utviklingstesten er tiltenkt utviklere." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -471,17 +529,12 @@ msgstr "2D-støy" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Tilbake til instillinger" +msgstr "< Tilbake til innstillinger" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" msgstr "See gjennom" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Klient" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Deaktivert" @@ -526,6 +579,10 @@ msgstr "Gjenopprette standard" msgid "Scale" msgstr "Skala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Søk" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Velg mappe" @@ -638,9 +695,23 @@ msgid "Unable to install a mod as a $1" msgstr "Klarte ikke å installere mod som en $1" #: builtin/mainmenu/pkgmgr.lua -#, fuzzy msgid "Unable to install a modpack as a $1" -msgstr "Klarte ikke å installere en modpakke som $1" +msgstr "Klarte ikke å installere en modpakke som en $1" + +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Laster..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Skripting er slått av på klientside" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Prøv å aktivere offentlig tjenerliste på nytt og sjekk Internettforbindelsen " +"din." #: builtin/mainmenu/tab_content.lua msgid "Browse online content" @@ -695,7 +766,14 @@ msgid "Credits" msgstr "Bidragsytere" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Velg mappe" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -715,14 +793,10 @@ msgid "Bind Address" msgstr "Bindingsadresse" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Sett opp" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kreativt modus" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Skru på skade" @@ -736,11 +810,11 @@ msgstr "Vertstjener" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Installer spill fra ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Navn/passord" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -750,6 +824,11 @@ msgstr "Ny" msgid "No world created or selected!" msgstr "Ingen verden opprettet eller valgt!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Nytt passord" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Spill" @@ -758,6 +837,11 @@ msgstr "Spill" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Velg verden:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Velg verden:" @@ -774,23 +858,23 @@ msgstr "Start spill" msgid "Address / Port" msgstr "Adresse / port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Koble til" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreativ modus" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Skade aktivert" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Slett favoritt" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favoritt" @@ -798,16 +882,16 @@ msgstr "Favoritt" msgid "Join Game" msgstr "Ta del i spill" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Navn / passord" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Latens" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Alle mot alle er på" @@ -835,10 +919,6 @@ msgstr "Alle innstillinger" msgid "Antialiasing:" msgstr "Kantutjevning:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Er du sikker på at du ønsker å tilbakestille din enkeltspiller-verden?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Lagre skjermstørrelse automatisk" @@ -847,10 +927,6 @@ msgstr "Lagre skjermstørrelse automatisk" msgid "Bilinear Filter" msgstr "Bilineært filter" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Teksturtilføyning" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Endre taster" @@ -863,10 +939,6 @@ msgstr "Forbundet glass" msgid "Fancy Leaves" msgstr "Forseggjorte blader" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Generer normale kart" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -875,10 +947,6 @@ msgstr "Mipmap" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + anisotropisk filter" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nei" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Inget filter" @@ -907,18 +975,10 @@ msgstr "Diffuse løv" msgid "Opaque Water" msgstr "Diffust vann" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallakse Okklusjon" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partikler" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Tilbakestill enkeltspillerverden" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Skjerm:" @@ -931,6 +991,11 @@ msgstr "Innstillinger" msgid "Shaders" msgstr "Skygger" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Flytlandene (eksperimentelt)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Skyggelegging (ikke tilgjenglig)" @@ -975,22 +1040,6 @@ msgstr "Skvulpende væsker" msgid "Waving Plants" msgstr "Bølgende planter" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ja" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Sett opp modder" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hovedmeny" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Start enkeltspiller" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Forbindelsen løp ut på tid." @@ -1152,18 +1201,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Controls:\n" "- %s: flytt forover\n" @@ -1276,16 +1322,6 @@ msgstr "Tåke av" msgid "Fog enabled" msgstr "Tåke på" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Tåke av" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Tåke på" - #: src/client/game.cpp msgid "Game info:" msgstr "Spillinfo:" @@ -1306,16 +1342,6 @@ msgstr "Gjenstandsdefinisjoner…" msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Tåke av" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Skade aktivert" - #: src/client/game.cpp msgid "Media..." msgstr "Media…" @@ -1328,34 +1354,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Skjuler minikart" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1400,10 +1398,6 @@ msgstr "Tjener annensteds hen" msgid "Resolving address..." msgstr "Fortolker adresse…" -#: src/client/game.cpp -msgid "Respawn" -msgstr "Gjenoppstå" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Slås av…" @@ -1421,12 +1415,13 @@ msgid "Sound muted" msgstr "Lyd av" #: src/client/game.cpp +#, fuzzy msgid "Sound system is disabled" -msgstr "" +msgstr "Lydsystem avskrudd" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Lydsystem støttes ikke på dette bygget" #: src/client/game.cpp msgid "Sound unmuted" @@ -1456,10 +1451,6 @@ msgstr "Lydstyrke endret til %d%%" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "Du døde" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1476,16 +1467,6 @@ msgstr "Chat skjult" msgid "Chat shown" msgstr "Viser chat" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Chat skjult" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Viser chat" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1496,12 +1477,12 @@ msgstr "" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "Profiler skjult" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Profiler vises (side %d av %d)" #: src/client/keycode.cpp msgid "Apps" @@ -1766,6 +1747,24 @@ msgstr "X knapp 2" msgid "Zoom" msgstr "Forstørrelse" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Skjuler minikart" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Passordene samsvarer ikke!" @@ -1794,9 +1793,8 @@ msgid "Proceed" msgstr "Fortsett" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "\"Special\" = climb down" -msgstr "«bruk» = klatre ned" +msgstr "«Spesial» = klatre ned" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" @@ -1810,26 +1808,6 @@ msgstr "Automatisk hopping" msgid "Backward" msgstr "Tilbake" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Endre visning" @@ -1924,29 +1902,10 @@ msgstr "Snike" msgid "Special" msgstr "Spesial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Spesial" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Gjennomtrengelige blokker av/på" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "HUD (hurtigtilgang) av/på" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Flymodus av/på" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Chattehistorikk av/på" @@ -2079,12 +2038,6 @@ msgstr "" "Standardverdien gir en form som er sammenpresset\n" "i høyden og egner seg til øy. Angi tre like tall for grunnformen." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "2D-støytall som styrer form og størrelse på høydedrag." @@ -2123,7 +2076,7 @@ msgstr "3D-modus" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Parallaksestyrke i 3D-modus" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2207,6 +2160,10 @@ msgstr "Melding som vises alle klienter når serveren slås av." msgid "ABM interval" msgstr "ABM-intervall" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2341,7 +2298,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" -msgstr "Spør om å koble til igjen etter kræsj" +msgstr "Spør om å koble til igjen etter krasj" #: src/settings_translation_file.cpp msgid "" @@ -2462,10 +2419,6 @@ msgstr "Bygg inni spiller" msgid "Builtin" msgstr "Innebygd" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Teksturpåføring (bump mapping)" - #: src/settings_translation_file.cpp #, fuzzy msgid "" @@ -2543,22 +2496,6 @@ msgstr "" "Midtpunkt på lysforsterkningskurven,\n" "der 0.0 er minimumsnivået for lysstyrke mens 1.0 er maksimumsnivået." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Endrer hovedmenyens brukergrensesnitt (UI):\n" -"- Fullstendig: Flere enkeltspillerverdener, valg av spill, " -"teksturpakkevalg, osv.\n" -"- Enkel: Én enkeltspillerverden, ingen valg av spill eller teksturpakke. " -"Kan være\n" -"nødvendig på mindre skjermer." - #: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" @@ -2723,6 +2660,10 @@ msgstr "Konsollhøyde" msgid "ContentDB Flag Blacklist" msgstr "ContentDBs svarteliste" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "ContentDB-URL" @@ -2776,7 +2717,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Crash message" -msgstr "Kræsjmelding" +msgstr "Krasjmelding" #: src/settings_translation_file.cpp msgid "Creative" @@ -2787,7 +2728,10 @@ msgid "Crosshair alpha" msgstr "Trådkors-alpha" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Trådkors-alpha (ugjennomsiktighet, mellom 0 og 255)." #: src/settings_translation_file.cpp @@ -2795,8 +2739,10 @@ msgid "Crosshair color" msgstr "Trådkorsfarge" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Trådkorsfarge (R, G, B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2895,12 +2841,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the base ground level." @@ -2972,6 +2912,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Høyre tast" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Gravepartikler" @@ -3034,7 +2979,8 @@ msgid "Enable console window" msgstr "Skru på konsollvindu" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Skru på kreativt modusfor nye opprettede kart." #: src/settings_translation_file.cpp @@ -3123,14 +3069,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3139,18 +3077,6 @@ msgstr "" msgid "Enables minimap." msgstr "Aktiverer minikart." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3167,12 +3093,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3184,8 +3104,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Maks FPS når spillet står i pause." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3492,10 +3413,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3550,8 +3467,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -4018,6 +3935,11 @@ msgstr "Spillstikke-ID" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Spillstikketype" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4104,6 +4026,17 @@ msgstr "" "Se http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for hopping.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4155,14 +4088,14 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tast for hurtig gange i raskt modus.\n" +"Tast for å bevege spilleren bakover\n" +"Vil også koble ut automatisk foroverbevegelse, hvis aktiv.\n" "Se http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4231,6 +4164,17 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for hopping.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4920,11 +4864,6 @@ msgstr "Y-verdi for store grotters øvre grense." msgid "Main menu script" msgstr "Skript for hovedmeny" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Hovedmeny" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4938,6 +4877,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Mappe for kart" @@ -5108,7 +5055,8 @@ msgid "Maximum FPS" msgstr "Maks FPS («frames» - bilder per sekund)" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Maks FPS når spillet står i pause." #: src/settings_translation_file.cpp @@ -5156,6 +5104,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5387,14 +5342,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5420,10 +5367,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5449,34 +5392,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5543,6 +5458,15 @@ msgstr "Flygingstast" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Flygingstast" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5699,10 +5623,6 @@ msgstr "" msgid "Right key" msgstr "Høyre tast" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Elveleiedybde" @@ -5964,6 +5884,20 @@ msgstr "Vis feilsøkingsinfo" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Angi språk. La stå tom for å bruke operativsystemets språk.\n" +"Krever omstart etter endring." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Fet skrifttype som forvalg" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Beskjed ved avslutning" @@ -6102,10 +6036,6 @@ msgstr "Spredningsstøy for bratt fjell" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6200,6 +6130,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6264,8 +6198,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6289,6 +6223,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6297,9 +6237,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6439,6 +6378,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6647,6 +6597,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6730,7 +6686,6 @@ msgid "Y of flat ground." msgstr "Y-koordinat for flatt land." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." @@ -6774,6 +6729,24 @@ msgstr "Y-nivå for nedre terreng og sjøbunn." msgid "Y-level of seabed." msgstr "Y-nivå for havbunn." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Tidsutløp for filnedlasting med cURL" @@ -6786,32 +6759,97 @@ msgstr "Maksimal parallellisering i cURL" msgid "cURL timeout" msgstr "cURL-tidsgrense" -#~ msgid "Ok" -#~ msgstr "Okei" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "" +#~ "Er du sikker på at du ønsker å tilbakestille din enkeltspiller-verden?" #~ msgid "Back" #~ msgstr "Tilbake" +#~ msgid "Bump Mapping" +#~ msgstr "Teksturtilføyning" + +#~ msgid "Bumpmapping" +#~ msgstr "Teksturpåføring (bump mapping)" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Endrer hovedmenyens brukergrensesnitt (UI):\n" +#~ "- Fullstendig: Flere enkeltspillerverdener, valg av spill, " +#~ "teksturpakkevalg, osv.\n" +#~ "- Enkel: Én enkeltspillerverden, ingen valg av spill eller " +#~ "teksturpakke. Kan være\n" +#~ "nødvendig på mindre skjermer." + +#~ msgid "Config mods" +#~ msgstr "Sett opp modder" + +#~ msgid "Configure" +#~ msgstr "Sett opp" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Trådkorsfarge (R, G, B)." + #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Laster ned og installerer $1, vent…" -#~ msgid "Path to save screenshots at." -#~ msgstr "Filsti til lagring av skjermdumper." - #~ msgid "Enable VBO" #~ msgstr "Aktiver VBO" #~ msgid "Enables filmic tone mapping" #~ msgstr "Aktiver filmatisk toneoversettelse" +#~ msgid "Generate Normal Maps" +#~ msgstr "Generer normale kart" + #~ msgid "IPv6 support." #~ msgstr "IPv6-støtte." -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Hvilket Y-nivå som skyggen til luftøyer når." +#~ msgid "Main" +#~ msgstr "Hovedmeny" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Hovedmeny" + +#~ msgid "Name/Password" +#~ msgstr "Navn/passord" + +#~ msgid "No" +#~ msgstr "Nei" + +#~ msgid "Ok" +#~ msgstr "Okei" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallakse Okklusjon" + +#~ msgid "Path to save screenshots at." +#~ msgstr "Filsti til lagring av skjermdumper." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Tilbakestill enkeltspillerverden" + +#~ msgid "Select Package File:" +#~ msgstr "Velg pakkefil:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Start enkeltspiller" + +#~ msgid "View" +#~ msgstr "Vis" #~ msgid "Y of upper limit of lava in large caves." #~ msgstr "Y-verdi for øvre grense for lava i store grotter." -#~ msgid "Select Package File:" -#~ msgstr "Velg pakkefil:" +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Hvilket Y-nivå som skyggen til luftøyer når." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/nl/minetest.po b/po/nl/minetest.po index 5381babe2..f1982536a 100644 --- a/po/nl/minetest.po +++ b/po/nl/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Dutch (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: eol \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Herboren worden" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Je bent gestorven" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "Opnieuw verbinding maken" msgid "The server has requested a reconnect:" msgstr "De server heeft gevraagd opnieuw verbinding te maken:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Laden..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protocol versie stemt niet overeen. " @@ -54,12 +58,6 @@ msgstr "De server vereist protocol versie $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "De server ondersteunt protocol versies tussen $1 en $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Probeer de publieke serverlijst opnieuw in te schakelen en controleer de " -"internet verbinding." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Wij ondersteunen enkel protocol versie $1." @@ -68,7 +66,8 @@ msgstr "Wij ondersteunen enkel protocol versie $1." msgid "We support protocol versions between version $1 and $2." msgstr "Wij ondersteunen protocol versies $1 tot en met $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Wij ondersteunen protocol versies $1 tot en met $2." msgid "Cancel" msgstr "Annuleer" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Afhankelijkheden:" @@ -151,14 +151,55 @@ msgstr "Wereld:" msgid "enabled" msgstr "aangeschakeld" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" bestaat al. Wilt u het overschrijven ?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "Afhankelijkheden $1 en $2 zullen geïnstalleerd worden." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 door $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 is aan het downloaden,\n" +"$2 is ingepland" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 is aan het downloaden..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 benodigde afhankelijkheden werden niet gevonden." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" +"$1 zal worden geïnstalleerd, en $2 afhankelijkheden worden overgeslagen." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Alle pakketten" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Reeds geïnstalleerd" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Terug naar hoofdmenu" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Basis Spel:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -181,6 +222,14 @@ msgstr "Spellen" msgid "Install" msgstr "Installeren" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Installeer $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Installeer ontbrekende afhankelijkheden" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -195,9 +244,24 @@ msgid "No results" msgstr "Geen resultaten" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Zoeken" +msgid "No updates" +msgstr "Geen updates" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Niet gevonden" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Overschrijven" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Controleer of het basis spel correct is, aub." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Ingepland" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,8 +276,12 @@ msgid "Update" msgstr "Update" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" +msgid "Update All [$1]" +msgstr "Allemaal bijwerken [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Bekijk meer informatie in een webbrowser" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -221,46 +289,39 @@ msgstr "Een wereld met de naam \"$1\" bestaat al" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Extra terrein" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -#, fuzzy msgid "Altitude chill" -msgstr "Temperatuurverschil vanwege hoogte" +msgstr "Temperatuurdaling vanwege hoogte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Temperatuurverschil vanwege hoogte" +msgstr "Vochtigheidsverschil vanwege hoogte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Biome-ruis" +msgstr "Vegetatie mix" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Biome-ruis" +msgstr "Vegetaties" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Grot ruis" +msgstr "Grotten" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octaven" +msgstr "Grotten" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Maak aan" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Per soort" +msgstr "Decoraties" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -271,23 +332,20 @@ msgid "Download one from minetest.net" msgstr "Laad er een van minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Kerker ruis" +msgstr "Kerkers" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Vlak terrein" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Drijvend gebergte dichtheid" +msgstr "Zwevende gebergtes" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Waterniveau" +msgstr "Zwevende eilanden (experimenteel)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -295,28 +353,28 @@ msgstr "Spel" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Een niet-fractaal terrein genereren: Oceanen en ondergrond" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Heuvels" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Video driver" +msgstr "Irrigerende rivier" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Verhoogt de luchtvochtigheid rond rivieren" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Meren" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Lage luchtvochtigheid en hoge hitte zorgen voor ondiepe of droge rivieren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -327,22 +385,20 @@ msgid "Mapgen flags" msgstr "Wereldgenerator vlaggen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Vlaggen" +msgstr "Mapgeneratie-specifieke vlaggen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Bergen ruis" +msgstr "Bergen" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Modderstroom" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Netwerk van tunnels en grotten" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -350,20 +406,19 @@ msgstr "Geen spel geselecteerd" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Verminderen van hitte met hoogte" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Vermindert de luchtvochtigheid met hoogte" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Grootte van rivieren" +msgstr "Rivieren" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Rivieren op zeeniveau" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -372,50 +427,49 @@ msgstr "Kiemgetal" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Zachte overgang tussen vegetatiezones" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Structuren verschijnen op het terrein (geen effect op bomen en jungle gras " +"gemaakt door v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Structuren verschijnen op het terrein, voornamelijk bomen en planten" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Gematigd, Woestijn" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Gematigd, Woestijn, Oerwoud" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Gematigd, Woestijn, Oerwoud, Toendra, Taiga" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Terrein hoogte" +msgstr "Terreinoppervlakte erosie" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Bomen en oerwoudgras" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Diepte van rivieren" +msgstr "Wisselende rivierdiepte" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Zeer grote en diepe grotten" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." msgstr "" "Waarschuwing: Het minimale ontwikkellaars-test-spel is bedoeld voor " @@ -483,11 +537,6 @@ msgstr "< Terug naar instellingen" msgid "Browse" msgstr "Bladeren" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Cliënt" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Uitgeschakeld" @@ -532,6 +581,10 @@ msgstr "Herstel de Standaardwaarde" msgid "Scale" msgstr "Schaal" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Zoeken" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Selecteer map" @@ -648,6 +701,21 @@ msgstr "Installeren van mod $1 in $2 is mislukt" msgid "Unable to install a modpack as a $1" msgstr "Installeren van mod verzameling $1 in $2 is mislukt" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Laden..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Client-side scripting is uitgeschakeld" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Probeer de publieke serverlijst opnieuw in te schakelen en controleer de " +"internet verbinding." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Content op internet bekijken" @@ -701,8 +769,16 @@ msgid "Credits" msgstr "Credits" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Open de gebruikersdatamap" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Open de map die de door de gebruiker aangeleverde werelden, spellen, mods\n" +"en textuur pakketten bevat in een bestandsbeheer toepassing / verkenner." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -721,14 +797,10 @@ msgid "Bind Address" msgstr "Lokaal server-adres" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Instellingen" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Creatieve modus" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Verwondingen inschakelen" @@ -742,11 +814,11 @@ msgstr "Server Hosten" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Installeer spellen van ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Naam / Wachtwoord" +msgid "Name" +msgstr "Naam" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -756,14 +828,22 @@ msgstr "Nieuw" msgid "No world created or selected!" msgstr "Geen wereldnaam opgegeven of geen wereld aangemaakt!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Wachtwoord" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" -msgstr "Spel Spelen" +msgstr "Spel Starten" #: builtin/mainmenu/tab_local.lua msgid "Port" msgstr "Poort" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Selecteer Mods" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Selecteer Wereld:" @@ -780,23 +860,23 @@ msgstr "Start spel" msgid "Address / Port" msgstr "Server adres / Poort" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Verbinden" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Creatieve modus" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Verwondingen ingeschakeld" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Verwijder Favoriete" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favorieten" @@ -804,16 +884,16 @@ msgstr "Favorieten" msgid "Join Game" msgstr "Join spel" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Naam / Wachtwoord" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Spelergevechten ingeschakeld" @@ -841,10 +921,6 @@ msgstr "Alle Instellingen" msgid "Antialiasing:" msgstr "Antialiasing:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Weet je zeker dat je je wereld wilt resetten?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Schermafmetingen automatisch bewaren" @@ -853,10 +929,6 @@ msgstr "Schermafmetingen automatisch bewaren" msgid "Bilinear Filter" msgstr "Bilineaire Filtering" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bumpmapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Toetsen aanpassen" @@ -869,10 +941,6 @@ msgstr "Verbonden Glas" msgid "Fancy Leaves" msgstr "Mooie bladeren" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Genereer normale werelden" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -881,10 +949,6 @@ msgstr "Mipmap" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Anisotropisch filteren" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nee" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Geen Filter" @@ -913,18 +977,10 @@ msgstr "Ondoorzichtige bladeren" msgid "Opaque Water" msgstr "Ondoorzichtig water" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax occlusie" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Effectdeeltjes" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Reset Singleplayer wereld" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Scherm:" @@ -937,6 +993,10 @@ msgstr "Instellingen" msgid "Shaders" msgstr "Shaders" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Shaders (experimenteel)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shaders (niet beschikbaar)" @@ -981,22 +1041,6 @@ msgstr "Golvende Vloeistoffen" msgid "Waving Plants" msgstr "Bewegende planten" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ja" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Mods configureren" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hoofdmenu" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Start Singleplayer" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Time-out bij opzetten verbinding." @@ -1151,25 +1195,22 @@ msgid "Continue" msgstr "Verder spelen" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Besturing: \n" "-%s: ga vooruit \n" @@ -1177,12 +1218,12 @@ msgstr "" "-%s: ga naar links \n" "-%s: ga naar rechts \n" "-%s: springen / klimmen \n" +"-%s: graaf/duw\n" +"-%s: plaats/gebruik \n" "-%s: sluip / ga naar beneden \n" "-%s: drop item \n" "-%s: inventaris \n" "- Muis: draaien / kijken \n" -"- Muis links: graven / stoten \n" -"- Muis rechts: plaats / gebruik \n" "- Muiswiel: item selecteren \n" "-%s: chat\n" @@ -1282,16 +1323,6 @@ msgstr "Mist uitgeschakeld" msgid "Fog enabled" msgstr "Mist ingeschakeld" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Mist uitgeschakeld" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Mist ingeschakeld" - #: src/client/game.cpp msgid "Game info:" msgstr "Spel info:" @@ -1312,16 +1343,6 @@ msgstr "Voorwerpdefinities..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Mist uitgeschakeld" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Verwondingen ingeschakeld" - #: src/client/game.cpp msgid "Media..." msgstr "Media..." @@ -1334,34 +1355,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Mini-kaart momenteel uitgeschakeld door spel of mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Mini-kaart verborgen" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Mini-kaart in radar modus, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Mini-kaart in radar modus, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Mini-kaart in radar modus, Zoom x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimap in oppervlaktemodus, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimap in oppervlaktemodus, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimap in oppervlaktemodus, Zoom x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Noclip-modus uitgeschakeld" @@ -1406,10 +1399,6 @@ msgstr "Externe server" msgid "Resolving address..." msgstr "Server-adres opzoeken..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Herboren worden" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Uitschakelen..." @@ -1428,11 +1417,11 @@ msgstr "Geluid gedempt" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Systeemgeluiden zijn uitgeschakeld" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Geluidssysteem is niet ondersteund in deze versie" #: src/client/game.cpp msgid "Sound unmuted" @@ -1459,14 +1448,9 @@ msgid "Volume changed to %d%%" msgstr "Volume gewijzigd naar %d%%" #: src/client/game.cpp -#, fuzzy msgid "Wireframe shown" msgstr "Draadframe weergegeven" -#: src/client/game.cpp -msgid "You died" -msgstr "Je bent gestorven" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Zoom momenteel uitgeschakeld door game of mod" @@ -1483,16 +1467,6 @@ msgstr "Chat verborgen" msgid "Chat shown" msgstr "Chat weergegeven" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Chat verborgen" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Chat weergegeven" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD verborgen" @@ -1515,7 +1489,6 @@ msgid "Apps" msgstr "Menu" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" msgstr "Terug" @@ -1618,11 +1591,11 @@ msgstr "Num Lock" #: src/client/keycode.cpp msgid "Numpad *" -msgstr "Numpad *" +msgstr "Numeriek pad *" #: src/client/keycode.cpp msgid "Numpad +" -msgstr "Numpad +" +msgstr "Numeriek pad +" #: src/client/keycode.cpp msgid "Numpad -" @@ -1630,7 +1603,7 @@ msgstr "Numpad -" #: src/client/keycode.cpp msgid "Numpad ." -msgstr "Numpad ." +msgstr "Numeriek pad ." #: src/client/keycode.cpp msgid "Numpad /" @@ -1774,6 +1747,24 @@ msgstr "X knop 2" msgid "Zoom" msgstr "Zoomen" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Mini-kaart verborgen" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Mini-kaart in radar modus, Zoom x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimap in oppervlaktemodus, Zoom x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Minimap textuur modus" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "De wachtwoorden zijn niet gelijk!" @@ -1819,26 +1810,6 @@ msgstr "Automatisch springen" msgid "Backward" msgstr "Achteruit" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Camera veranderen" @@ -1933,30 +1904,10 @@ msgstr "Sluipen" msgid "Special" msgstr "Speciaal" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Speciaal" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Cinematic modus aan/uit" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Cinematic modus aan/uit" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Schakel HUD in/uit" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Vliegen aan/uit" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Chatlogboek wisselen" @@ -2088,14 +2039,6 @@ msgstr "" "Standaard is voor een verticaal geplette vorm geschikt voor \n" "een eiland, stel alle 3 getallen gelijk voor de ruwe vorm." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax occlusie met helling-informatie (sneller).\n" -"1 = 'reliëf mapping' (lanzamer, nauwkeuriger)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "2D-ruis die de vorm/grootte van geribbelde bergen bepaalt." @@ -2134,21 +2077,21 @@ msgid "3D mode" msgstr "3D modus" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Sterkte van normal-maps" +msgstr "Sterkte van parallax in 3D modus" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "3D geluid voor grote holtes." +msgstr "3D ruis voor grote holtes." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" -"3D geluid voor gebergte of hoge toppen.\n" -"Ook voor luchtdrijvende bergen." +"3D ruis voor het definiëren van de structuur en de hoogte van gebergtes of " +"hoge toppen.\n" +"Ook voor de structuur van bergachtig terrein om zwevende eilanden." #: src/settings_translation_file.cpp msgid "" @@ -2157,10 +2100,16 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D ruis om de vorm van de zwevende eilanden te bepalen.\n" +"Als de standaardwaarde wordt gewijzigd, dan moet de waarde van de " +"geluidsschaal,\n" +"standaard ingesteld op 0.7 gewijzigd worden, aangezien de afschuinings-" +"functies van de zwevende eilanden\n" +"het beste werkt met een waarde tussen -2.0 en 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "3D geluid voor wanden van diepe rivier kloof." +msgstr "3D ruis voor wanden van diepe rivier kloof." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." @@ -2220,12 +2169,14 @@ msgstr "" "afgesloten wordt." #: src/settings_translation_file.cpp -#, fuzzy msgid "ABM interval" -msgstr "Interval voor opslaan wereld" +msgstr "Interval voor ABM's" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "ABM tijd budget" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" msgstr "Maximaal aantal 'emerge' blokken in de wachtrij" @@ -2284,6 +2235,13 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Past de densiteit van de zwevende eilanden aan.\n" +"De densiteit verhoogt als de waarde verhoogt. Kan positief of negatief " +"zijn.\n" +"Waarde = 0,0 : 50% van het volume is een zwevend eiland.\n" +"Waarde = 2.0 : een laag van massieve zwevende eilanden\n" +"(kan ook hoger zijn, afhankelijk van 'mgv7_np_floatland', altijd testen om " +"zeker te zijn)." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2455,9 +2413,8 @@ msgid "Bits per pixel (aka color depth) in fullscreen mode." msgstr "Aantal bits per pixel (oftewel: kleurdiepte) in full-screen modus." #: src/settings_translation_file.cpp -#, fuzzy msgid "Block send optimize distance" -msgstr "Blok verzend optimaliseren afstand" +msgstr "Blok verzend optimalisatie afstand" #: src/settings_translation_file.cpp msgid "Bold and italic font path" @@ -2483,10 +2440,6 @@ msgstr "Bouwen op de plaats van de speler" msgid "Builtin" msgstr "Ingebouwd" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bumpmapping" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2565,34 +2518,16 @@ msgstr "" "Waar 0,0 het minimale lichtniveau is, is 1,0 het maximale lichtniveau." #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Verandert de gebruikersinterface van het hoofdmenu: \n" -"- Volledig: meerdere werelden voor één speler, spelkeuze, de kiezer van " -"textuurpak, etc. \n" -"- Eenvoudig: één wereld voor één speler, geen game- of texture pack-kiezers. " -"Kan zijn \n" -"noodzakelijk voor kleinere schermen." - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Lettergrootte" +msgstr "Chat lettergrootte" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Chat-toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Debug logniveau" +msgstr "Chat debug logniveau" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2643,9 +2578,8 @@ msgid "Client and Server" msgstr "Cliënt en server" #: src/settings_translation_file.cpp -#, fuzzy msgid "Client modding" -msgstr "Cliënt modding" +msgstr "Cliënt personalisatie (modding)" #: src/settings_translation_file.cpp msgid "Client side modding restrictions" @@ -2713,10 +2647,9 @@ msgid "" "Comma-separated list of trusted mods that are allowed to access insecure\n" "functions even when mod security is on (via request_insecure_environment())." msgstr "" -"Lijst van vertrouwde mods die onveilige functies mogen gebruiken,\n" -"zelfs wanneer mod-beveiliging aan staat (via " -"request_insecure_environment()).\n" -"Gescheiden door komma's." +"Komma gescheiden lijst van vertrouwde mods die onveilige functies mogen " +"gebruiken,\n" +"zelfs wanneer mod-beveiliging aan staat (via request_insecure_environment())." #: src/settings_translation_file.cpp msgid "Command key" @@ -2748,9 +2681,12 @@ msgid "Console height" msgstr "Hoogte console" #: src/settings_translation_file.cpp -#, fuzzy msgid "ContentDB Flag Blacklist" -msgstr "ContentDB markeert zwarte lijst" +msgstr "ContentDB optie: verborgen pakketten lijst" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "ContentDB Maximum Gelijktijdige Downloads" #: src/settings_translation_file.cpp msgid "ContentDB URL" @@ -2821,16 +2757,24 @@ msgid "Crosshair alpha" msgstr "Draadkruis-alphawaarde" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Draadkruis-alphawaarde. (ondoorzichtigheid; tussen 0 en 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Draadkruis-alphawaarde (ondoorzichtigheid; tussen 0 en 255).\n" +"Controleert ook het object draadkruis kleur" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Draadkruis-kleur" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Draadkruis-kleur (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Draadkruis kleur (R,G,B).\n" +"Controleert ook het object draadkruis kleur" #: src/settings_translation_file.cpp msgid "DPI" @@ -2893,9 +2837,8 @@ msgid "Default report format" msgstr "Standaardformaat voor rapport-bestanden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Standaardspel" +msgstr "Standaard voorwerpenstapel grootte" #: src/settings_translation_file.cpp msgid "" @@ -2934,14 +2877,6 @@ msgstr "Bepaalt de grootschalige rivierkanaal structuren." msgid "Defines location and terrain of optional hills and lakes." msgstr "Bepaalt de plaats van bijkomende heuvels en vijvers." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Bemonsterings-interval voor texturen.\n" -"Een hogere waarde geeft vloeiender normal maps." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Definieert het basisgrondniveau." @@ -2954,8 +2889,7 @@ msgstr "Definieert de diepte van het rivierkanaal." msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" "Maximale afstand (in blokken van 16 nodes) waarbinnen andere spelers " -"zichtbaar zijn\n" -"(0 = oneindig ver)." +"zichtbaar zijn (0 = oneindig ver)." #: src/settings_translation_file.cpp msgid "Defines the width of the river channel." @@ -3022,6 +2956,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Textuur-animaties niet synchroniseren" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Toets voor graven" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Graaf deeltjes" @@ -3087,7 +3025,8 @@ msgid "Enable console window" msgstr "Schakel het console venster in" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Schakel creatieve modus in voor nieuwe kaarten." #: src/settings_translation_file.cpp @@ -3141,8 +3080,7 @@ msgstr "" "Zet dit aan om verbindingen van oudere cliënten te weigeren.\n" "Oudere cliënten zijn compatibel, in de zin dat ze niet crashen als ze " "verbinding \n" -"maken met nieuwere servers, maar ze ondersteunen wellicht niet alle " -"nieuwere\n" +"maken met nieuwere servers, maar ze ondersteunen wellicht niet alle nieuwere " "mogelijkheden." #: src/settings_translation_file.cpp @@ -3203,18 +3141,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Schakelt animatie van inventaris items aan." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Bumpmapping aanzetten voor texturen. Normalmaps moeten al in de texture pack " -"zitten\n" -"of ze moeten automatisch gegenereerd worden.\n" -"Schaduwen moeten aanstaan." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Schakelt caching van facedir geroteerde meshes." @@ -3223,22 +3149,6 @@ msgstr "Schakelt caching van facedir geroteerde meshes." msgid "Enables minimap." msgstr "Schakelt de mini-kaart in." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Schakelt het genereren van normal maps in (emboss effect).\n" -"Dit vereist dat bumpmapping ook aan staat." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Schakelt parallax occlusie mappen in.\n" -"Dit vereist dat shaders ook aanstaan." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3259,14 +3169,6 @@ msgstr "Profilergegevens print interval" msgid "Entity methods" msgstr "Entiteit-functies" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Experimentele optie. Kan bij een waarde groter dan 0 zichtbare\n" -"ruimtes tussen blokken tot gevolg hebben." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3276,10 +3178,17 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Exponent voor de afschuining van het zwevende eiland. Wijzigt de " +"afschuining.\n" +"Waarde = 1.0 maakt een uniforme, rechte afschuining.\n" +"Waarde > 1.0 maakt een vloeiende afschuining voor standaard gescheiden\n" +"zwevende eilanden.\n" +"Waarde < 1.0 (bijvoorbeeld 0.25) maakt een meer uitgesproken oppervlak met \n" +"platte laaglanden, geschikt voor een solide zwevende eilanden laag." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS in het pauze-menu" +msgid "FPS when unfocused or paused" +msgstr "FPS als het spel gepauzeerd of niet gefocussed is" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3330,8 +3239,8 @@ msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" -"Snelle beweging (via de \"speciale\" toets). \n" -"Dit vereist het \"snelle\" recht op de server." +"Snelle beweging (via de \"speciaal\" toets). \n" +"Dit vereist het \"snel bewegen\" recht op de server." #: src/settings_translation_file.cpp msgid "Field of view" @@ -3364,7 +3273,6 @@ msgid "Filmic tone mapping" msgstr "Filmisch tone-mapping" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Filtered textures can blend RGB values with fully-transparent neighbors,\n" "which PNG optimizers usually discard, sometimes resulting in a dark or\n" @@ -3382,14 +3290,14 @@ msgid "Filtering" msgstr "Filters" #: src/settings_translation_file.cpp -#, fuzzy msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "" +"Eerste van vier 2D geluiden die samen de hoogte van een heuvel of berg " +"bepalen." #: src/settings_translation_file.cpp -#, fuzzy msgid "First of two 3D noises that together define tunnels." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "Eerste van twee 3D geluiden voor tunnels." #: src/settings_translation_file.cpp msgid "Fixed map seed" @@ -3400,39 +3308,32 @@ msgid "Fixed virtual joystick" msgstr "Vaste virtuele joystick" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Drijvend gebergte dichtheid" +msgstr "Drijvend gebergte densiteit" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Dungeon maximaal Y" +msgstr "Maximaal Y-waarde van zwevende eilanden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Dungeon minimaal Y" +msgstr "Minimum Y-waarde van zwevende eilanden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Drijvend land basis ruis" +msgstr "Zwevende eilanden geluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Drijvend gebergte dichtheid" +msgstr "Zwevend eiland vormfactor" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Drijvend land basis ruis" +msgstr "Zwevend eiland afschuinings-afstand" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Waterniveau" +msgstr "Waterniveau van zwevend eiland" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3447,9 +3348,8 @@ msgid "Fog" msgstr "Mist" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fog start" -msgstr "Nevel aanvang" +msgstr "Begin van de nevel of mist" #: src/settings_translation_file.cpp msgid "Fog toggle key" @@ -3492,6 +3392,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Tekstgrootte van de chatgeschiedenis en chat prompt in punten (pt).\n" +"Waarde 0 zal de standaard tekstgrootte gebruiken." #: src/settings_translation_file.cpp msgid "" @@ -3524,23 +3426,19 @@ msgid "Formspec Full-Screen Background Opacity" msgstr "Formspec Achtergronddekking op volledig scherm" #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background color (R,G,B)." msgstr "Chat console achtergrondkleur (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec default background opacity (between 0 and 255)." msgstr "" "Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background color (R,G,B)." msgstr "Chat console achtergrondkleur (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" "Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)." @@ -3550,9 +3448,9 @@ msgid "Forward key" msgstr "Vooruit toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "" +"Vierde van vier 3D geluiden die de hoogte van heuvels en bergen bepalen." #: src/settings_translation_file.cpp msgid "Fractal type" @@ -3563,7 +3461,6 @@ msgid "Fraction of the visible distance at which fog starts to be rendered" msgstr "Fractie van de zichtbare afstand vanaf waar de nevel wordt getoond" #: src/settings_translation_file.cpp -#, fuzzy msgid "FreeType fonts" msgstr "Freetype lettertypes" @@ -3622,16 +3519,11 @@ msgstr "GUI schalingsfilter" msgid "GUI scaling filter txr2img" msgstr "GUI schalingsfilter: txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Genereer normaalmappen" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Algemene callbacks" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Global map generation attributes.\n" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" @@ -3671,19 +3563,16 @@ msgid "Gravity" msgstr "Zwaartekracht" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground level" msgstr "Grondniveau" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ground noise" -msgstr "Modder ruis" +msgstr "Aarde/Modder geluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "HTTP mods" -msgstr "HTTP Modules" +msgstr "HTTP Mods" #: src/settings_translation_file.cpp msgid "HUD scale factor" @@ -3694,20 +3583,18 @@ msgid "HUD toggle key" msgstr "HUD aan/uitschakelen toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Behandeling van verouderde lua api aanroepen:\n" -"- legacy: (probeer) het oude gedrag na te bootsen\n" -" (standaard voor een 'release' versie).\n" -"- log: boots het oude gedrag na, en log een backtrace van de aanroep\n" -" (standaard voor een 'debug' versie).\n" -"- error: stop de server bij gebruik van een verouderde aanroep\n" -" (aanbevolen voor mod ontwikkelaars)." +"Behandeling van verouderde Lua API aanroepen:\n" +"- none: log geen verouderde aanroepen\n" +"- log: boots het oude gedrag na, en log een backtrace van de aanroep " +"(standaard voor een 'debug' versie).\n" +"- error: stop de server bij gebruik van een verouderde aanroep " +"(aanbevolen voor mod ontwikkelaars)." #: src/settings_translation_file.cpp msgid "" @@ -3724,69 +3611,58 @@ msgstr "" "* Profileer de code die de statistieken ververst." #: src/settings_translation_file.cpp -#, fuzzy msgid "Heat blend noise" -msgstr "Wereldgenerator landschapstemperatuurovergangen" +msgstr "Geluid van landschapstemperatuurovergangen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Heat noise" -msgstr "Grot ruispatroon #1" +msgstr "Hitte geluid" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." msgstr "Aanvangshoogte van het venster." #: src/settings_translation_file.cpp -#, fuzzy msgid "Height noise" -msgstr "Rechter Windowstoets" +msgstr "Hoogtegeluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Height select noise" -msgstr "Hoogte-selectie ruisparameters" +msgstr "Hoogte-selectie geluid" #: src/settings_translation_file.cpp msgid "High-precision FPU" msgstr "Hoge-nauwkeurigheid FPU" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill steepness" msgstr "Steilheid van de heuvels" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hill threshold" msgstr "Heuvel-grenswaarde" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness1 noise" -msgstr "Steilte ruis" +msgstr "Heuvelsteilte ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness2 noise" -msgstr "Steilte ruis" +msgstr "Heuvelachtigheid2 ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness3 noise" -msgstr "Steilte ruis" +msgstr "Heuvelachtigheid3 ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hilliness4 noise" -msgstr "Steilte ruis" +msgstr "Heuvelachtigheid4 ruis" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." msgstr "Home-pagina van de server. Wordt getoond in de serverlijst." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." @@ -3795,7 +3671,6 @@ msgstr "" "in knooppunten per seconde per seconde." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." @@ -3804,7 +3679,6 @@ msgstr "" "in knooppunten per seconde per seconde." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." @@ -3821,164 +3695,132 @@ msgid "Hotbar previous key" msgstr "Toets voor vorig gebruikte tool" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 1 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 1 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 10 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 10 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 11 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 11 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 12 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 12 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 13 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 13 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 14 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 14 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 15 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 15 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 16 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 16 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 17 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 17 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 18 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 18 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 19 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 19 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 2 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 2 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 20 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 20 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 21 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 21 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 22 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 22 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 23 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 23 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 24 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 24 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 25 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 25 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 26 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 26 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 27 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 27 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 28 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 28 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 29 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 29 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 3 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 3 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 30 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 30 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 31 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 31 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 32 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 32 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 4 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 4 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 5 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 5 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 6 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 6 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 7 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 7 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 8 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 8 van gebruikte tools" #: src/settings_translation_file.cpp -#, fuzzy msgid "Hotbar slot 9 key" -msgstr "Toets voor volgend gebruikte tool" +msgstr "Toets voor slot 9 van gebruikte tools" #: src/settings_translation_file.cpp msgid "How deep to make rivers." @@ -4036,13 +3878,12 @@ msgstr "" "kracht verspild wordt zonder dat het toegevoegde waarde heeft." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If disabled, \"special\" key is used to fly fast if both fly and fast mode " "are\n" "enabled." msgstr "" -"Indien uitgeschakeld, dan wordt met de \"gebruiken\" toets snel gevlogen " +"Indien uitgeschakeld, dan wordt met de \"speciaal\" toets snel gevlogen " "wanneer\n" "de \"vliegen\" en de \"snel\" modus aanstaan." @@ -4072,13 +3913,12 @@ msgstr "" "Dit vereist het \"noclip\" voorrecht op de server." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "If enabled, \"special\" key instead of \"sneak\" key is used for climbing " "down and\n" "descending." msgstr "" -"Indien aangeschakeld, dan wordt de \"gebruiken\" toets gebruikt voor\n" +"Indien aangeschakeld, dan wordt de \"speciaal\" toets gebruikt voor\n" "omlaagklimmen en dalen i.p.v. de \"sluipen\" toets." #: src/settings_translation_file.cpp @@ -4173,15 +4013,13 @@ msgid "In-game chat console background color (R,G,B)." msgstr "Chat console achtergrondkleur (R,G,B)." #: src/settings_translation_file.cpp -#, fuzzy msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "" "Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Inc. volume key" -msgstr "Console-toets" +msgstr "Verhoog volume toets" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." @@ -4194,7 +4032,7 @@ msgid "" msgstr "" "Profileer 'builtin'.\n" "Dit is normaal enkel nuttig voor gebruik door ontwikkelaars van\n" -"het 'builtin'-gedeelte van de server" +"het core/builtin-gedeelte van de server" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." @@ -4253,23 +4091,20 @@ msgid "Invert vertical mouse movement." msgstr "Vertikale muisbeweging omkeren." #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic font path" -msgstr "Vaste-breedte font pad" +msgstr "Cursief font pad" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic monospace font path" -msgstr "Vaste-breedte font pad" +msgstr "Cursief vaste-breedte font pad" #: src/settings_translation_file.cpp msgid "Item entity TTL" msgstr "Bestaansduur van objecten" #: src/settings_translation_file.cpp -#, fuzzy msgid "Iterations" -msgstr "Per soort" +msgstr "Iteraties" #: src/settings_translation_file.cpp msgid "" @@ -4293,17 +4128,19 @@ msgstr "Stuurknuppel ID" msgid "Joystick button repetition interval" msgstr "Joystick-knop herhalingsinterval" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Joystick dode zone" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Joystick frustrum gevoeligheid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Joystick type" -msgstr "Stuurknuppel Type" +msgstr "Joystick type" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "W component of hypercomplex constant.\n" @@ -4311,60 +4148,61 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: W-waarde van de 4D vorm. Heeft geen effect voor 3D-" -"fractals.\n" +"Alleen de Julia verzameling: \n" +"W-waarde van de 4D vorm. \n" +"Verandert de vorm van de fractal.\n" +"Heeft geen effect voor 3D-fractals.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "X component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: X-waarde van de vorm.\n" +"Allen de Julia verzameling: \n" +"X-waarde van de 4D vorm.\n" +"Verandert de vorm van de fractal.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "Y component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: Y-waarde van de vorm.\n" +"Alleen de Julia verzameling: \n" +"Y-waarde van de 4D vorm.\n" +"Verandert de vorm van de fractal.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Julia set only.\n" "Z component of hypercomplex constant.\n" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" -"Juliaverzameling: Z-waarde van de vorm.\n" +"Alleen de Julia verzameling: \n" +"Z-waarde van de 4D vorm.\n" +"Verandert de vorm van de fractal.\n" "Bereik is ongeveer -2 tot 2." #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia w" msgstr "Julia w" #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia x" msgstr "Julia x" #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia y" msgstr "Julia y" #: src/settings_translation_file.cpp -#, fuzzy msgid "Julia z" msgstr "Julia z" @@ -4396,6 +4234,16 @@ msgstr "" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Toets voor graven.\n" +"Zie http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4423,8 +4271,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Toets om het volume te verhogen.\n" -"Zie\n" -"http://irrlicht.sourceforge.net/docu/namespaceirr." +"Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp @@ -4448,7 +4295,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for moving the player backward.\n" "Will also disable autoforward, when active.\n" @@ -4456,6 +4302,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Toets om de speler achteruit te bewegen.\n" +"Zal ook het automatisch voortbewegen deactiveren, indien actief.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4510,13 +4357,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for opening the chat window to type local commands.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het chat-window te openen om commando's te typen.\n" +"Toets om het chat-window te openen om lokale commando's te typen.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4541,288 +4387,272 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Toets voor plaatsen.\n" +"Zie http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 11de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 12th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 12de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 13th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 13de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 14th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 14de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 15th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 15de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 16th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 16de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 17th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 17de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 18th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 18de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 19th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 19de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 20th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 20ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 21st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 21ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 22nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 22ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 23rd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 23ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 24th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 24ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 25th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 25ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 26th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 26ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 27th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 27ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 28th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 28ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 29th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 29ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 30th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 30ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 31st hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 32ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the 32nd hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 32ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the eighth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 8ste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fifth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de vijfde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the first hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de eerste positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the fourth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het vorige item in de hotbar te selecteren.\n" +"Toets om de vierde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4837,13 +4667,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the ninth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de negende positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4858,57 +4687,52 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the second hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de tweede positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the seventh hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de zevende positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the sixth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de zesde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the tenth hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de 10de positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for selecting the third hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het volgende item in de hotbar te selecteren.\n" +"Toets om de derde positie in de hotbar te selecteren.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4947,7 +4771,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling autoforward.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -5008,13 +4831,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling pitch move mode.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om 'noclip' modus aan/uit te schakelen.\n" +"Toets om 'pitch move' modus aan/uit te schakelen.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5030,7 +4852,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of chat.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -5051,7 +4872,6 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of fog.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -5072,13 +4892,12 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Key for toggling the display of the large chat console.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Toets om het tonen van chatberichten aan/uit te schakelen.\n" +"Toets om het tonen van de grote chat weergave aan/uit te schakelen.\n" "Zie http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5123,7 +4942,6 @@ msgid "Lake steepness" msgstr "Steilheid van meren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lake threshold" msgstr "Meren-grenswaarde" @@ -5148,9 +4966,8 @@ msgid "Large cave proportion flooded" msgstr "Grote grotaandeel overstroomd" #: src/settings_translation_file.cpp -#, fuzzy msgid "Large chat console key" -msgstr "Console-toets" +msgstr "Grote chatconsole-toets" #: src/settings_translation_file.cpp msgid "Leaves style" @@ -5174,26 +4991,23 @@ msgid "Left key" msgstr "Toets voor links" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of a server tick and the interval at which objects are generally " "updated over\n" "network." msgstr "" -"Lengte van server stap, en interval waarin objecten via het netwerk ververst " -"worden." +"Lengte van server stap, en interval waarin objecten via het netwerk\n" +"ververst worden." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Bewegende bladeren staan aan indien 'true'.Dit vereist dat 'shaders' ook " -"aanstaan." +"Lengte van vloeibare golven.\n" +"Dit vereist dat 'golfvloeistoffen' ook aanstaan." #: src/settings_translation_file.cpp -#, fuzzy msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" "Tijdsinterval waarmee actieve blokken wijzigers (ABMs) geactiveerd worden" @@ -5203,9 +5017,8 @@ msgid "Length of time between NodeTimer execution cycles" msgstr "Tijdsinterval waarmee node timerd geactiveerd worden" #: src/settings_translation_file.cpp -#, fuzzy msgid "Length of time between active block management cycles" -msgstr "Tijd tussen ABM cycli" +msgstr "Tijd tussen actieve blok beheer(ABM) cycli" #: src/settings_translation_file.cpp msgid "" @@ -5293,7 +5106,6 @@ msgid "Liquid queue purge time" msgstr "Inkortingstijd vloeistof-wachtrij" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" msgstr "Zinksnelheid in vloeistof" @@ -5329,19 +5141,13 @@ msgid "Lower Y limit of dungeons." msgstr "Onderste Y-limiet van kerkers." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Onderste Y-limiet van kerkers." +msgstr "Onderste Y-limiet van zwevende eilanden." #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "Hoofdmenu script" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Hoofdmenu script" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5358,6 +5164,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Maak alle vloeistoffen ondoorzichtig" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Map compressie niveau voor het bewaren op de harde schijf" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Map compressie niveau voor netwerk transfert" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Wereld map" @@ -5367,29 +5181,22 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "Wereldgeneratieattributen specifiek aan Mapgen Carpathian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" "Wereldgenerator instellingen specifiek voor generator 'flat' (vlak).\n" -"Verspreide meren en heuvels kunnen toegevoegd worden.\n" -"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-" -"waarde.\n" -"Zet \"no\" voor een vlag om hem expliciet uit te zetten." +"Verspreide meren en heuvels kunnen toegevoegd worden." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Wereldgenerator instellingen specifiek voor generator 'flat' (vlak).\n" -"Verspreide meren en heuvels kunnen toegevoegd worden.\n" -"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-" -"waarde.\n" -"Zet \"no\" voor een vlag om hem expliciet uit te zetten." +"Wereldgenerator instellingen specifiek voor generator 'fractal'.\n" +"\"terrein\" activeert de generatie van niet-fractale terreinen:\n" +"oceanen, eilanden en ondergrondse ruimtes." #: src/settings_translation_file.cpp msgid "" @@ -5412,7 +5219,6 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Wereldgenerator instellingen specifiek voor Mapgen V5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" @@ -5420,23 +5226,22 @@ msgid "" "the 'jungles' flag is ignored." msgstr "" "Wereldgenerator instellingen specifiek voor generator v6.\n" +"De sneeuwgebieden optie, activeert de nieuwe 5 vegetaties systeem.\n" "Indien sneeuwgebieden aanstaan, dan worden oerwouden ook aangezet, en wordt\n" -"de \"jungles\" vlag genegeerd.\n" -"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-" -"waarde.\n" -"Zet \"no\" voor een vlag om hem expliciet uit te zetten." +"de \"jungles\" optie genegeerd." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Kenmerken voor het genereren van kaarten die specifiek zijn voor Mapgen " -"v7. \n" -"'richels' maakt de rivieren mogelijk." +"Wereldgenerator instellingen specifiek voor generator v7.\n" +"'ridges': dit zijn uithollingen in het landschap die rivieren mogelijk " +"maken.\n" +"'floatlands': dit zijn zwevende landmassa's in de atmosfeer.\n" +"'caverns': grote grotten diep onder de grond." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5451,12 +5256,10 @@ msgid "Mapblock limit" msgstr "Max aantal wereldblokken" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generation delay" -msgstr "Wereld-grens" +msgstr "Mapblock maas generatie vertraging" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapblock mesh generator's MapBlock cache size in MB" msgstr "Mapblock maas generator's MapBlock cache grootte in MB" @@ -5465,73 +5268,60 @@ msgid "Mapblock unload timeout" msgstr "Wereldblok vergeet-tijd" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian" -msgstr "Fractal wereldgenerator" +msgstr "wereldgenerator Karpaten" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Carpathian specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator Karpaten specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat" -msgstr "Vlakke Wereldgenerator" +msgstr "Wereldgenerator vlak terrein" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Flat specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator vlak terrein specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal" -msgstr "Fractal wereldgenerator" +msgstr "Wereldgenerator Fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator Fractal specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5" msgstr "Wereldgenerator v5" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V5 specific flags" -msgstr "Vlaggen" +msgstr "Wereldgenerator v5 specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6" msgstr "Wereldgenerator v6" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V6 specific flags" -msgstr "Mapgen v6 Vlaggen" +msgstr "Wereldgenerator v6 specifieke opties" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7" msgstr "Wereldgenerator v7" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen V7 specific flags" -msgstr "Mapgen v7 vlaggen" +msgstr "Wereldgenerator v7 specifieke opties" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" msgstr "Valleien Wereldgenerator" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Valleys specific flags" -msgstr "Vlaggen" +msgstr "Weredgenerator valleien specifieke opties" #: src/settings_translation_file.cpp msgid "Mapgen debug" @@ -5552,8 +5342,8 @@ msgstr "Maximale afstand voor te versturen blokken" #: src/settings_translation_file.cpp msgid "Max liquids processed per step." msgstr "" -"Maximaal aantal vloeistof-nodes te verwerken (dwz verspreiden)\n" -"per server-stap." +"Maximaal aantal vloeistof-nodes te verwerken (dwz verspreiden) per server-" +"stap." #: src/settings_translation_file.cpp msgid "Max. clearobjects extra blocks" @@ -5568,8 +5358,10 @@ msgid "Maximum FPS" msgstr "Maximum FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Maximum FPS als het spel gepauzeerd is." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"Maximum FPS als het venster niet gefocussed is, of wanneer het spel " +"gepauzeerd is." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5611,22 +5403,31 @@ msgid "Maximum number of blocks that can be queued for loading." msgstr "Maximaal aantal blokken in de wachtrij voor laden/genereren." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" "Maximaal aantal blokken in de wachtrij om gegenereerd te worden.\n" -"Laat leeg om een geschikt aantal automatisch te laten berekenen." +"Deze limiet is opgelegd per speler." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" -"Maximaal aantal blokken in de wachtrij om van disk geladen te worden.\n" -"Laat leeg om een geschikt aantal automatisch te laten berekenen." +"Maximaal aantal blokken in de wachtrij om van een bestand/harde schijf " +"geladen te worden.\n" +"Deze limiet is opgelegd per speler." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Maximaal aantal gelijktijdige downloads. Downloads die deze limiet " +"overschrijden zullen in de wachtrij geplaats worden.\n" +"Deze instelling zou lager moeten zijn dan curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5729,7 +5530,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Minimaal aantal loggegevens in de chat weergeven." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5752,9 +5553,8 @@ msgid "Minimum limit of random number of small caves per mapchunk." msgstr "Minimale limiet van willekeurig aantal kleine grotten per mapchunk." #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum texture size" -msgstr "Minimale textuur-grootte voor filters" +msgstr "Minimale textuur-grootte" #: src/settings_translation_file.cpp msgid "Mipmapping" @@ -5777,18 +5577,16 @@ msgid "Monospace font size" msgstr "Vaste-breedte font grootte" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain height noise" -msgstr "Heuvel-hoogte ruisparameters" +msgstr "Berg-hoogte ruis" #: src/settings_translation_file.cpp msgid "Mountain noise" msgstr "Bergen ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mountain variation noise" -msgstr "Heuvel-hoogte ruisparameters" +msgstr "Berg-hoogte ruisvariatie" #: src/settings_translation_file.cpp msgid "Mountain zero level" @@ -5896,20 +5694,11 @@ msgstr "Interval voor node-timers" msgid "Noises" msgstr "Ruis" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Normal-maps bemonstering" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Sterkte van normal-maps" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Aantal 'emerge' threads" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5953,10 +5742,6 @@ msgstr "" "van een sqlite\n" "transactie), en geheugengebruik anderzijds (4096 = ca. 100MB)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Aantal parallax occlusie iteraties." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Online inhoud repository" @@ -5988,36 +5773,6 @@ msgstr "" "Pauzemenu openen als het venster focus verliest. Pauzeert niet als er\n" "een formspec geopend is." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Algemene afwijking van het parallax occlusie effect. Normaal: schaal/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Algemene schaal van het parallax occlusie effect." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax occlusie" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Parallax occlusie afwijking" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Parallax occlusie iteraties" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Parallax occlusie modus" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Parallax occlusie schaal" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -6039,6 +5794,9 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Pad waar screenshots moeten bewaard worden. Kan een absoluut of relatief pad " +"zijn.\n" +"De map zal aangemaakt worden als ze nog niet bestaat." #: src/settings_translation_file.cpp msgid "" @@ -6089,25 +5847,32 @@ msgstr "Pauzeer als venster focus verliest" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" msgstr "" +"Per speler limiet van gevraagde blokken om te laden van de harde schijf" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "Emerge-wachtrij voor genereren" +msgstr "Per speler limiet van de \"te genereren blokken\"-wachtrij" #: src/settings_translation_file.cpp msgid "Physics" msgstr "Fysica" #: src/settings_translation_file.cpp -#, fuzzy msgid "Pitch move key" -msgstr "Vliegen toets" +msgstr "Vrij vliegen toets" #: src/settings_translation_file.cpp msgid "Pitch move mode" msgstr "Pitch beweeg modus" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Plaats toets" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Plaats (Rechts-klik) herhalingsinterval" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6125,9 +5890,8 @@ msgid "Player transfer distance" msgstr "Speler verplaatsingsafstand" #: src/settings_translation_file.cpp -#, fuzzy msgid "Player versus player" -msgstr "Speler-gevechten" +msgstr "Speler tegen speler" #: src/settings_translation_file.cpp msgid "" @@ -6152,13 +5916,12 @@ msgstr "" "Voorkom dat mods onveilige commando's uitvoeren, zoals shell commando's." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" -"Interval waarmee profiler-gegevens geprint worden. 0 = uitzetten. Dit is " -"nuttig voor ontwikkelaars." +"Interval waarmee profiler-gegevens geprint worden. \n" +"0 = uitzetten. Dit is nuttig voor ontwikkelaars." #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" @@ -6178,7 +5941,7 @@ msgstr "Profileren" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Adres om te luisteren naar Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -6187,6 +5950,10 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Adres om te luisteren naar Prometheus.\n" +"Als Minetest is gecompileerd met de optie ENABLE_PROMETHEUS,\n" +"zal dit adres gebruikt worden om naar Prometheus te luisteren.\n" +"Meetwaarden zullen kunnen bekeken worden op http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." @@ -6218,9 +5985,8 @@ msgid "Recent Chat Messages" msgstr "Recente chatberichten" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Rapport pad" +msgstr "Standaard lettertype pad" #: src/settings_translation_file.cpp msgid "Remote media" @@ -6274,34 +6040,26 @@ msgstr "" "READ_PLAYERINFO: 32 (deactiveer get_player_names call client-side)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridge mountain spread noise" -msgstr "Onderwater richel ruis" +msgstr "\"Berg richel verspreiding\" ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridge noise" -msgstr "Rivier ruis parameters" +msgstr "Bergtoppen ruis" #: src/settings_translation_file.cpp msgid "Ridge underwater noise" msgstr "Onderwater richel ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Ridged mountain size noise" -msgstr "Onderwater richel ruis" +msgstr "Bergtoppen grootte ruis" #: src/settings_translation_file.cpp msgid "Right key" msgstr "Toets voor rechts" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Rechts-klik herhalingsinterval" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" msgstr "Diepte van rivieren" @@ -6310,24 +6068,20 @@ msgid "River channel width" msgstr "Breedte van rivieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "River depth" msgstr "Diepte van rivieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "River noise" -msgstr "Rivier ruis parameters" +msgstr "Rivier ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "River size" msgstr "Grootte van rivieren" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Diepte van rivieren" +msgstr "Breedte van vallei waar een rivier stroomt" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -6366,7 +6120,6 @@ msgid "Saving map received from server" msgstr "Lokaal bewaren van de server-wereld" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Scale GUI by a user specified value.\n" "Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" @@ -6374,7 +6127,7 @@ msgid "" "pixels when scaling down, at the cost of blurring some\n" "edge pixels when images are scaled by non-integer sizes." msgstr "" -"Schaal de GUI met een bepaalde factor.\n" +"Schaal de GUI met een door de gebruiker bepaalde factor.\n" "Er wordt een dichtste-buur-anti-alias filter gebruikt om de GUI te schalen.\n" "Bij verkleinen worden sommige randen minder duidelijk, en worden\n" "pixels samengevoegd. Pixels bij randen kunnen vager worden als\n" @@ -6415,21 +6168,19 @@ msgid "Seabed noise" msgstr "Zeebodem ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "Tweede van 2 3d geluiden voor tunnels." +msgstr "" +"Tweede van vier 2D geluiden die samen een heuvel/bergketen grootte bepalen." #: src/settings_translation_file.cpp -#, fuzzy msgid "Second of two 3D noises that together define tunnels." -msgstr "Tweede van 2 3d geluiden voor tunnels." +msgstr "Tweede van twee 3D geluiden die samen tunnels definiëren." #: src/settings_translation_file.cpp msgid "Security" msgstr "Veiligheid" #: src/settings_translation_file.cpp -#, fuzzy msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "Zie http://www.sqlite.org/pragma.html#pragma_synchronous" @@ -6446,7 +6197,6 @@ msgid "Selection box width" msgstr "Breedte van selectie-randen" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" @@ -6468,7 +6218,7 @@ msgid "" "17 = 4D \"Mandelbulb\" Mandelbrot set.\n" "18 = 4D \"Mandelbulb\" Julia set." msgstr "" -"Keuze uit 18 fractals op basis van 9 formules.\n" +"Selecteert één van de 18 fractaal types:\n" "1 = 4D \"Roundy\" mandelbrot verzameling.\n" "2 = 4D \"Roundy\" julia verzameling.\n" "3 = 4D \"Squarry\" mandelbrot verzameling.\n" @@ -6537,37 +6287,34 @@ msgid "Set the maximum character length of a chat message sent by clients." msgstr "Maximaal aantal tekens voor chatberichten van gebruikers instellen." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" -"Bewegende bladeren staan aan indien 'true'.Dit vereist dat 'shaders' ook " -"aanstaan." +"Bewegende bladeren staan aan indien 'true'.\n" +"Dit vereist dat 'shaders' ook aanstaan." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Golvend water staat aan indien 'true'Dit vereist dat 'shaders' ook aanstaan." +"Golvend water staat aan indien 'true'.\n" +"Dit vereist dat 'shaders' ook aanstaan." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" -"Bewegende planten staan aan indien 'true'Dit vereist dat 'shaders' ook " -"aanstaan." +"Bewegende planten staan aan indien 'true'.\n" +"Dit vereist dat 'shaders' ook aanstaan." #: src/settings_translation_file.cpp msgid "Shader path" msgstr "Shader pad" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shaders allow advanced visual effects and may increase performance on some " "video\n" @@ -6579,18 +6326,20 @@ msgstr "" "Alleen mogelijk met OpenGL." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." -msgstr "Fontschaduw afstand. Indien 0, dan wordt geen schaduw getekend." +msgstr "" +"Fontschaduw afstand (in beeldpunten). Indien 0, dan wordt geen schaduw " +"getekend." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." -msgstr "Fontschaduw afstand. Indien 0, dan wordt geen schaduw getekend." +msgstr "" +"Fontschaduw afstand van het standaard lettertype (in beeldpunten). Indien 0, " +"dan wordt geen schaduw getekend." #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." @@ -6604,6 +6353,19 @@ msgstr "Toon debug informatie" msgid "Show entity selection boxes" msgstr "Toon selectie-box voor objecten" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Toon selectievakjes voor entiteiten\n" +"Een herstart is noodzakelijk om de wijziging te activeren." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Standaard vetgedrukt" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Afsluitbericht van server" @@ -6637,9 +6399,8 @@ msgstr "" "wordt gekopieerd waardoor flikkeren verminderd." #: src/settings_translation_file.cpp -#, fuzzy msgid "Slice w" -msgstr "Slice w" +msgstr "Doorsnede w" #: src/settings_translation_file.cpp msgid "Slope and fill work together to modify the heights." @@ -6700,14 +6461,12 @@ msgid "Sound" msgstr "Geluid" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key" -msgstr "Sluipen toets" +msgstr "Speciaal ( Aux ) toets" #: src/settings_translation_file.cpp -#, fuzzy msgid "Special key for climbing/descending" -msgstr "Gebruik de 'gebruiken'-toets voor klimmen en dalen" +msgstr "Gebruik de 'speciaal'-toets voor klimmen en dalen" #: src/settings_translation_file.cpp msgid "" @@ -6728,6 +6487,9 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Bepaalt de standaard stack grootte van nodes, items en tools.\n" +"Merk op dat mods of spellen expliciet een stack kunnen maken voor sommige " +"(of alle) items." #: src/settings_translation_file.cpp msgid "" @@ -6748,23 +6510,16 @@ msgid "Steepness noise" msgstr "Steilte ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "Bergen ruis" +msgstr "Trap-Bergen grootte ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain spread noise" -msgstr "Bergen ruis" +msgstr "Trap-Bergen verspreiding ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "Sterkte van de parallax." - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Sterkte van de normal-maps." +msgstr "Sterkte van de 3D modus parallax." #: src/settings_translation_file.cpp msgid "" @@ -6797,6 +6552,22 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Oppervlaktehoogte van optioneel water, geplaatst op een vaste laag van een " +"zwevend eiland.\n" +"Water is standaard uitgeschakeld en zal enkel gemaakt worden als deze waarde " +"is gezet op \n" +"een waarde groter dan 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (het " +"begin van de\n" +"bovenste afschuining).\n" +"***WAARSCHUWING, MOGELIJK GEVAAR VOOR WERELDEN EN SERVER PERFORMANTIE***:\n" +"Als er water geplaatst wordt op zwevende eilanden, dan moet dit " +"geconfigureerd en getest worden,\n" +"dat het een vaste laag betreft met de instelling 'mgv7_floatland_density' op " +"2.0 (of andere waarde\n" +"afhankelijk van de waarde 'mgv7_np_floatland'), om te vermijden \n" +"dat er server-intensieve water verplaatsingen zijn en om ervoor te zorgen " +"dat het wereld oppervlak \n" +"eronder niet overstroomt." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6807,29 +6578,24 @@ msgid "Temperature variation for biomes." msgstr "Temperatuurvariatie voor biomen." #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain alternative noise" -msgstr "Terrain_alt ruis" +msgstr "Terrein alteratieve ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain base noise" -msgstr "Terrein hoogte" +msgstr "Terrein basis ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain height" msgstr "Terrein hoogte" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain higher noise" -msgstr "Terrein hoogte" +msgstr "Terrein hoger ruis" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain noise" -msgstr "Terrein hoogte" +msgstr "Terrein ruis" #: src/settings_translation_file.cpp msgid "" @@ -6883,6 +6649,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "De URL voor de inhoudsrepository" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "De dode zone van de stuurknuppel die u gebruikt" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6939,7 +6709,6 @@ msgstr "" "van beschikbare voorrechten op de server." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6955,7 +6724,7 @@ msgstr "" "In actieve blokken worden objecten geladen en ABM's uitgevoerd. \n" "Dit is ook het minimumbereik waarin actieve objecten (mobs) worden " "onderhouden. \n" -"Dit moet samen met active_object_range worden geconfigureerd." +"Dit moet samen met active_object_send_range_blocks worden geconfigureerd." #: src/settings_translation_file.cpp msgid "" @@ -6963,15 +6732,16 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "De rendering back-end voor Irrlicht. \n" "Na het wijzigen hiervan is een herstart vereist. \n" "Opmerking: op Android, blijf bij OGLES1 als je het niet zeker weet! Anders " "start de app mogelijk niet. \n" -"Op andere platforms wordt OpenGL aanbevolen en het is de enige driver met \n" -"shader-ondersteuning momenteel." +"Op andere platformen wordt OpenGL aanbevolen.\n" +"OpenGL (alleen op desktop pc) en OGLES2 (experimenteel), zijn de enige " +"drivers met shader-ondersteuning momenteel" #: src/settings_translation_file.cpp msgid "" @@ -7004,22 +6774,29 @@ msgstr "" "items\n" "uit de rij verwijderd. Gebruik 0 om dit uit te zetten." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"Het tijdsbudget dat toegestaan wordt aan ABM's om elke stap uit te voeren\n" +"(als een deel van het ABM interval)" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" -"De tijd in seconden tussen herhaalde klikken als de joystick-knop ingedrukt " -"gehouden wordt." +"De tijd in seconden tussen herhaalde klikken als de joystick-knop\n" +" ingedrukt gehouden wordt." #: src/settings_translation_file.cpp -#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" -"De tijd in seconden tussen herhaalde rechts-klikken als de rechter muisknop\n" +"De tijd in seconden tussen herhaalde rechts-klikken als de plaats knop " +"(rechter muisknop)\n" "ingedrukt gehouden wordt." #: src/settings_translation_file.cpp @@ -7039,9 +6816,10 @@ msgstr "" "'altitude_dry' is ingeschakeld." #: src/settings_translation_file.cpp -#, fuzzy msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "Eerste van 2 3D geluiden voor tunnels." +msgstr "" +"Derde van vier 2D geluiden die samen voor heuvel/bergketens hoogte " +"definiëren." #: src/settings_translation_file.cpp msgid "" @@ -7091,9 +6869,8 @@ msgid "Tooltip delay" msgstr "Tooltip tijdsduur" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" -msgstr "Strand geluid grenswaarde" +msgstr "Gevoeligheid van het aanraakscherm" #: src/settings_translation_file.cpp msgid "Trees noise" @@ -7104,14 +6881,13 @@ msgid "Trilinear filtering" msgstr "Tri-Lineare Filtering" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" "Usable to make minimap smoother on slower machines." msgstr "" -"Aan = 256\n" -"Uit = 128\n" +"True = 256\n" +"False = 128\n" "Gebruik dit om de mini-kaart sneller te maken op langzamere machines." #: src/settings_translation_file.cpp @@ -7127,7 +6903,6 @@ msgid "Undersampling" msgstr "Rendering" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -7138,8 +6913,9 @@ msgstr "" "Onderbemonstering is gelijkaardig aan het gebruik van een lagere " "schermresolutie,\n" "maar het behelst enkel de spel wereld. De GUI resolutie blijft intact.\n" -"Dit zou een gewichtige prestatie verbetering moeten geven ten koste van een " -"verminderde detailweergave." +"Dit zou een duidelijke prestatie verbetering moeten geven ten koste van een " +"verminderde detailweergave.\n" +"Hogere waarden resulteren in een minder gedetailleerd beeld." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -7154,9 +6930,8 @@ msgid "Upper Y limit of dungeons." msgstr "Bovenste Y-limiet van kerkers." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Bovenste Y-limiet van kerkers." +msgstr "Bovenste Y-limiet van zwevende eilanden." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -7185,6 +6960,25 @@ msgstr "" "vooral bij gebruik van een textuurpakket met hoge resolutie. \n" "Gamma-correcte verkleining wordt niet ondersteund." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Gebruik multi-sample anti-aliasing (MSAA) om de randen van de blokken glad " +"te maken.\n" +"Dit algoritme maakt de 3D viewport glad en houdt intussen het beeld scherp,\n" +"zonder de binnenkant van de texturen te wijzigen\n" +"(wat erg opvalt bij transparante texturen)\n" +"Zichtbare ruimtes verschijnen tussen nodes als de shaders uitgezet zijn.\n" +"Als de waarde op 0 staat, is MSAA uitgeschakeld.\n" +"Een herstart is nodig om deze wijziging te laten functioneren." + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Gebruik tri-lineaire filtering om texturen te schalen." @@ -7194,27 +6988,22 @@ msgid "VBO" msgstr "VBO" #: src/settings_translation_file.cpp -#, fuzzy msgid "VSync" -msgstr "V-Sync" +msgstr "Vertikale synchronisatie (VSync)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley depth" msgstr "Vallei-diepte" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley fill" msgstr "Vallei-vulling" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" msgstr "Vallei-profiel" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" msgstr "Vallei-helling" @@ -7251,9 +7040,8 @@ msgstr "" "Definieert de 'persistence' waarde voor terrain_base en terrain_alt ruis." #: src/settings_translation_file.cpp -#, fuzzy msgid "Varies steepness of cliffs." -msgstr "Bepaalt steilheid/hoogte van heuvels." +msgstr "Bepaalt steilheid/hoogte van kliffen." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." @@ -7268,9 +7056,8 @@ msgid "Video driver" msgstr "Video driver" #: src/settings_translation_file.cpp -#, fuzzy msgid "View bobbing factor" -msgstr "Loopbeweging" +msgstr "Loopbeweging factor" #: src/settings_translation_file.cpp msgid "View distance in nodes." @@ -7301,16 +7088,14 @@ msgid "Volume" msgstr "Geluidsniveau" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Schakelt parallax occlusie mappen in.\n" -"Dit vereist dat shaders ook aanstaan." +"Volume van alle geluiden.\n" +"Dit vereist dat het geluidssysteem aanstaat." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "W coordinate of the generated 3D slice of a 4D fractal.\n" "Determines which 3D slice of the 4D shape is generated.\n" @@ -7320,6 +7105,7 @@ msgid "" msgstr "" "W-coördinaat van de 3D doorsnede van de 4D vorm.\n" "Bepaalt welke 3D-doorsnelde van de 4D-vorm gegenereerd wordt.\n" +"Verandert de vorm van de fractal.\n" "Heeft geen effect voor 3D-fractals.\n" "Bereik is ongeveer -2 tot 2." @@ -7352,24 +7138,20 @@ msgid "Waving leaves" msgstr "Bewegende bladeren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "Bewegende nodes" +msgstr "Bewegende vloeistoffen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Golfhoogte van water" +msgstr "Golfhoogte van water/vloeistoffen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "Golfsnelheid van water" +msgstr "Golfsnelheid van water/vloeistoffen" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Golflengte van water" +msgstr "Golflengte van water/vloeistoffen" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -7400,7 +7182,6 @@ msgstr "" "terug naar het werkgeheugen." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" "can be blurred, so automatically upscale them with nearest-neighbor\n" @@ -7422,15 +7203,27 @@ msgstr "" "machten van 2 te gebruiken. Een waarde groter dan 1 heeft wellicht geen " "zichtbaar\n" "effect indien bi-lineaire, tri-lineaire of anisotropische filtering niet aan " -"staan." +"staan.\n" +"Dit wordt ook gebruikt als basis node textuurgrootte voor wereld-" +"gealigneerde\n" +"automatische textuurschaling." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." -msgstr "Gebruik freetype fonts. Dit vereist dat freetype ingecompileerd is." +msgstr "" +"Gebruik freetype lettertypes, dit vereist dat freetype lettertype " +"ondersteuning ingecompileerd is.\n" +"Indien uitgeschakeld, zullen bitmap en XML verctor lettertypes gebruikt " +"worden." + +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7462,19 +7255,18 @@ msgstr "" "Maak het einde van het zichtbereik mistig, zodat het einde niet opvalt." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether to mute sounds. You can unmute sounds at any time, unless the\n" "sound system is disabled (enable_sound=false).\n" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" -"Of geluiden moeten worden gedempt. U kunt het dempen van geluiden op elk " -"moment opheffen, tenzij de \n" +"Of geluiden moeten worden gedempt. Je kan het dempen van geluiden op elk " +"moment opheffen, tenzij het \n" "geluidssysteem is uitgeschakeld (enable_sound = false). \n" -"In de game kun je de mute-status wijzigen met de mute-toets of door de te " -"gebruiken \n" -"pauzemenu." +"Tijdens het spel kan je de mute-status wijzigen met de mute-toets of door " +"het pauzemenu \n" +"te gebruiken." #: src/settings_translation_file.cpp msgid "" @@ -7488,9 +7280,10 @@ msgid "Width component of the initial window size." msgstr "Aanvangsbreedte van het venster." #: src/settings_translation_file.cpp -#, fuzzy msgid "Width of the selection box lines around nodes." -msgstr "Breedte van de lijnen om een geselecteerde node." +msgstr "" +"Breedte van de selectie-lijnen die getekend worden rond een geselecteerde " +"node." #: src/settings_translation_file.cpp msgid "" @@ -7512,9 +7305,8 @@ msgstr "" "gestart." #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "Wereld naam" +msgstr "Wereld starttijd" #: src/settings_translation_file.cpp msgid "" @@ -7551,9 +7343,8 @@ msgstr "" "bergen verticaal te verschuiven." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y of upper limit of large caves." -msgstr "Minimale diepte van grote semi-willekeurige grotten." +msgstr "bovenste limiet Y-waarde van grote grotten." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." @@ -7566,6 +7357,13 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Y-afstand over dewelke de zwevende eilanden veranderen van volledige " +"densiteit naar niets.\n" +"De verandering start op deze afstand van de Y limiet.\n" +"Voor een solide zwevend eiland, bepaalt deze waarde de hoogte van de heuvels/" +"bergen.\n" +"Deze waarde moet lager zijn of gelijk aan de helft van de afstand tussen de " +"Y limieten." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7576,19 +7374,47 @@ msgid "Y-level of cavern upper limit." msgstr "Y-niveau van hoogste limiet voor grotten." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y-level of higher terrain that creates cliffs." -msgstr "Y-niveau van lager terrein en vijver bodems." +msgstr "Y-niveau van hoger terrein dat kliffen genereert." #: src/settings_translation_file.cpp -#, fuzzy msgid "Y-level of lower terrain and seabed." -msgstr "Y-niveau van lager terrein en vijver bodems." +msgstr "Y-niveau van lager terrein en vijver/zee bodems." #: src/settings_translation_file.cpp msgid "Y-level of seabed." msgstr "Y-niveau van zee bodem." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Zlib compressie niveau om mapblokken op de harde schijf te bewaren.\n" +"-1: Zlib's standaard compressie niveau\n" +"0: geen compressie, snelst\n" +"9: maximale compressie, traagst\n" +"(niveau's 1 tot 3 gebruiken Zlib's snelle methode, 4 tot 9 gebruiken de " +"normale methode)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Zlib compressie niveau om mapblokken te versturen naar de client.\n" +"-1: Zlib's standaard compressie niveau\n" +"0: geen compressie, snelst\n" +"9: maximale compressie, traagst\n" +"(niveau's 1 tot 3 gebruiken Zlib's snelle methode, 4 tot 9 gebruiken de " +"normale methode)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "timeout voor cURL download" @@ -7601,23 +7427,12 @@ msgstr "Maximaal parallellisme in cURL" msgid "cURL timeout" msgstr "cURL time-out" -#~ msgid "Ok" -#~ msgstr "Oké" - -#~ msgid "Back" -#~ msgstr "Terug" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Emerge-wachtrij voor lezen" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Parallax occlusie sterkte" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Pad waar screenshots bewaard worden." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusie met helling-informatie (sneller).\n" +#~ "1 = 'reliëf mapping' (lanzamer, nauwkeuriger)." #, fuzzy #~ msgid "" @@ -7629,6 +7444,39 @@ msgstr "cURL time-out" #~ "Deze instelling wordt enkel gebruikt door de cliënt, en wordt genegeerd " #~ "door de server." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Weet je zeker dat je jouw wereld wilt resetten?" + +#~ msgid "Back" +#~ msgstr "Terug" + +#~ msgid "Bump Mapping" +#~ msgstr "Bumpmapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Verandert de gebruikersinterface van het hoofdmenu: \n" +#~ "- Volledig: meerdere werelden voor één speler, spelkeuze, de kiezer van " +#~ "textuurpak, etc. \n" +#~ "- Eenvoudig: één wereld voor één speler, geen game- of texture pack-" +#~ "kiezers. Kan zijn \n" +#~ "noodzakelijk voor kleinere schermen." + +#~ msgid "Config mods" +#~ msgstr "Mods configureren" + +#~ msgid "Configure" +#~ msgstr "Instellingen" + #, fuzzy #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" @@ -7641,6 +7489,9 @@ msgstr "cURL time-out" #~ msgstr "" #~ "Bepaalt breedte van tunnels, een kleinere waarde maakt bredere tunnels." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Draadkruis-kleur (R,G,B)." + #, fuzzy #~ msgid "Darkness sharpness" #~ msgstr "Steilheid Van de meren" @@ -7652,12 +7503,57 @@ msgstr "cURL time-out" #~ "Bepaalt gebieden van drijvend glijdend terrein.\n" #~ "Drijvend glijdend terrein ontstaat wanneer ruis > 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Bemonsterings-interval voor texturen.\n" +#~ "Een hogere waarde geeft vloeiender normal maps." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..." + #~ msgid "Enable VBO" #~ msgstr "VBO aanzetten" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Bumpmapping aanzetten voor texturen. Normalmaps moeten al in de texture " +#~ "pack zitten\n" +#~ "of ze moeten automatisch gegenereerd worden.\n" +#~ "Schaduwen moeten aanstaan." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Schakelt filmisch tone-mapping in" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Schakelt het genereren van normal maps in (emboss effect).\n" +#~ "Dit vereist dat bumpmapping ook aan staat." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Schakelt parallax occlusie mappen in.\n" +#~ "Dit vereist dat shaders ook aanstaan." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentele optie. Kan bij een waarde groter dan 0 zichtbare\n" +#~ "ruimtes tussen blokken tot gevolg hebben." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS in het pauze-menu" + #~ msgid "Floatland base height noise" #~ msgstr "Drijvend land basis hoogte ruis" @@ -7671,6 +7567,12 @@ msgstr "cURL time-out" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Genereer normale werelden" + +#~ msgid "Generate normalmaps" +#~ msgstr "Genereer normaalmappen" + #~ msgid "IPv6 support." #~ msgstr "IPv6 ondersteuning." @@ -7678,15 +7580,101 @@ msgstr "cURL time-out" #~ msgid "Lava depth" #~ msgstr "Diepte van grote grotten" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Emerge-wachtrij voor lezen" + +#~ msgid "Main" +#~ msgstr "Hoofdmenu" + +#~ msgid "Main menu style" +#~ msgstr "Hoofdmenu stijl" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mini-kaart in radar modus, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mini-kaart in radar modus, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimap in oppervlaktemodus, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimap in oppervlaktemodus, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Naam / Wachtwoord" + +#~ msgid "No" +#~ msgstr "Nee" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normal-maps bemonstering" + +#~ msgid "Normalmaps strength" +#~ msgstr "Sterkte van normal-maps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Aantal parallax occlusie iteraties." + +#~ msgid "Ok" +#~ msgstr "Oké" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Algemene afwijking van het parallax occlusie effect. Normaal: schaal/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Algemene schaal van het parallax occlusie effect." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax occlusie" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusie" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Parallax occlusie afwijking" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Parallax occlusie iteraties" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax occlusie modus" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax occlusie schaal" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Parallax occlusie sterkte" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Pad van TrueType font of bitmap." +#~ msgid "Path to save screenshots at." +#~ msgstr "Pad waar screenshots bewaard worden." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reset Singleplayer wereld" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Selecteer Modbestand:" + #~ msgid "Shadow limit" #~ msgstr "Schaduw limiet" +#~ msgid "Start Singleplayer" +#~ msgstr "Start Singleplayer" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Sterkte van de normal-maps." + #~ msgid "This font will be used for certain languages." #~ msgstr "Dit font wordt gebruikt voor bepaalde talen." +#~ msgid "Toggle Cinematic" +#~ msgstr "Cinematic modus aan/uit" + #, fuzzy #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." @@ -7698,22 +7686,24 @@ msgstr "cURL time-out" #~ msgstr "" #~ "Variatie van de heuvel hoogte en vijver diepte op drijvend egaal terrein." +#~ msgid "View" +#~ msgstr "Bekijk" + +#~ msgid "Waving Water" +#~ msgstr "Golvend water" + #~ msgid "Waving water" #~ msgstr "Golvend water" +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Minimale diepte van grote semi-willekeurige grotten." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "Y-niveau van drijvend land middelpunt en vijver oppervlak." #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Y-niveau tot waar de schaduw van drijvend land reikt." -#~ msgid "Waving Water" -#~ msgstr "Golvend water" - -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Minimale diepte van grote semi-willekeurige grotten." - -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Selecteer Modbestand:" +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/nn/minetest.po b/po/nn/minetest.po index 73f8d9067..4ad47fbf8 100644 --- a/po/nn/minetest.po +++ b/po/nn/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Norwegian Nynorsk (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-03-31 10:14+0000\n" -"Last-Translator: sfan5 \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-20 05:50+0000\n" +"Last-Translator: Tor Egil Hoftun Kvæstad \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" @@ -12,16 +12,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Du har kome at" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Du døydde" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Ein feil har skjedd med eit Lua manus, slik som ein mod:" +msgstr "Ein feil oppstod i eit LUA-skript:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -33,15 +40,11 @@ msgstr "Hovudmeny" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "Kople attende sambandet" +msgstr "Kople til igjen" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "Tenarmaskinen ber om å få forbindelsen attende:" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Laster ned..." +msgstr "Tenaren har førespurt å kople til igjen:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -49,27 +52,22 @@ msgstr "Protkoll versjon bommert. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "Tenarmaskinen krevjar protokoll versjon $1. " +msgstr "Tenaren krev protokoll versjon $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Tenarmaskinen støttar protokoll versjonar mellom $1 og $2. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Forsøkje å kople attende den offentlege tenarmaskin-lista og sjekk sambands " -"koplingen." +msgstr "Tenaren støtter protokollversjonar mellom $1 og $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Vi støttar berre protokoll versjon $1." +msgstr "Me støtter berre protokoll versjon $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Vi støttar protokoll versjonar mellom $1 og $2." +msgstr "Me støtter protokollversjonar mellom $1 og $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -79,68 +77,66 @@ msgstr "Vi støttar protokoll versjonar mellom $1 og $2." msgid "Cancel" msgstr "Avbryt" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Avhengigheiter:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "Deaktiver allt" +msgstr "Deaktiver alt" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Deaktivere modifikasjons-pakka" +msgstr "Deaktiver modifikasjonspakken" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "Aktiver allt" +msgstr "Aktiver alt" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Aktiver modifikasjons-pakka" +msgstr "Aktiver modifikasjonspakken" #: builtin/mainmenu/dlg_config_world.lua msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"Fåfengt å aktivere modifikasjon \"$1\" sia den innehald ugyldige teikn. " -"Berre teikna [a-z0-9_] e tillaten." +"Klarte ikkje å aktivere modifikasjon «$1», då den inneheld ugyldige teikn. " +"Berre teikna [a-z0-9_] er tillatne." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Finn fleire modifikasjonar" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" msgstr "Modifikasjon:" #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No (optional) dependencies" -msgstr "Valgbare avhengigheiter:" +msgstr "Ingen (valfrie) avhengigheiter" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." msgstr "Ikkje nokon spill skildring e sørgja for." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Ikkje nokon avhengigheiter." +msgstr "Ingen obligatoriske avhengigheiter" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." msgstr "Ikkje noko modifikasjons-pakke skildring e sørgja for." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No optional dependencies" -msgstr "Valgbare avhengigheiter:" +msgstr "Ingen valfrie avhengigheiter" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "Valgbare avhengigheiter:" +msgstr "Valfrie avhengigheiter:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp @@ -149,23 +145,61 @@ msgstr "Lagre" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "Verda:" +msgstr "Verd:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "Aktivert" +msgstr "aktivert" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "«$1» eksisterer allereie. Vil du overskrive den?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "$1 og $2 avhengigheiter vil verte installerte." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 lastar ned …" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 obligatoriske avhengigheiter vart ikkje funne." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 vil verte installert, og $2 avhengigheiter vil verte hoppa over." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Alle pakker" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Allereie installert" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Attende til hovudmeny" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Basisspel:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB er ikkje tilgjengeleg når Minetest vart kompilert utan cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -174,7 +208,7 @@ msgstr "Laster ned..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "Fåfengt å laste ned $1" +msgstr "Klarte ikkje å laste ned $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -185,23 +219,46 @@ msgstr "Spel" msgid "Install" msgstr "Installer" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Installer $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Installer manglande avhengigheiter" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "Modder" +msgstr "Modifikasjonar" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "Ikkje nokon pakkar kunne bli henta" +msgstr "Ingen pakkar kunne verte henta" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "Ikkje noko resultat" +msgstr "Ingen resultat" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Søk" +msgid "No updates" +msgstr "Ingen oppdateringar" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Ikkje funnen" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Overskriv" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Ver venleg å sjekke at basisspelet er korrekt." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -216,16 +273,20 @@ msgid "Update" msgstr "Oppdater" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" +msgid "Update All [$1]" +msgstr "Oppdater alt [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Sjå meir informasjon i ein nettlesar" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "Ein verd med namnet \"$1\" finns allereie" +msgstr "Ein verd med namnet «$1» eksisterer allereie" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Ytterlegare terreng" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -241,11 +302,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Biom" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Holer" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -257,17 +318,16 @@ msgid "Create" msgstr "Skap" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informasjon:" +msgstr "Dekorasjonar" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "Last ned eit spel, sånn som Minetest spellet, ifrå minetest.net" +msgstr "Last ned eit spel, slik som Minetest-spelet, frå minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "Last eit ned på minetest.net" +msgstr "Last ned eit frå minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" @@ -275,15 +335,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Flatt terreng" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Svevande landmassar på himmelen" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Flyteland (eksperimentell)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -291,11 +351,11 @@ msgstr "Spel" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Generer ikkjefraktalterreng: Hav og undergrunn" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Haugar" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -303,15 +363,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Aukar fuktigheita rundt elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Sjøar" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Låg fuktigheit og høg temperatur fører til grunne eller tørre elver" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -327,15 +387,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Fjell" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Leireflyt" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Nettverk av tunellar og holer" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -351,11 +411,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Elver" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Elver på havnivå" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -378,15 +438,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperert, Ørken" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperert, Ørken, Jungel" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperert, Ørken, Jungel, Tundra, Taiga" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" @@ -394,15 +454,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Tre og jungelgras" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Varier elvedjupne" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Svært store holer djupt i undergrunnen" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -419,7 +479,7 @@ msgstr "Du har ikkje installert noko spel." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" -msgstr "Er du sikker på at du har lyst til å slette \"$1\"?" +msgstr "Er du sikker på at du vil slette «$1»?" #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua @@ -429,23 +489,23 @@ msgstr "Slett" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: sletting av \"$1\" gjekk ikkje" +msgstr "pkgmgr: klarte ikkje å slette «$1»" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" -msgstr "pkgmgr: ugyldig rute \"$1\"" +msgstr "pkgmgr: ugyldig sti «$1»" #: builtin/mainmenu/dlg_delete_world.lua msgid "Delete World \"$1\"?" -msgstr "Slett verd \"$1\"?" +msgstr "Slett verd «$1»?" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Accept" -msgstr "Akseptér" +msgstr "Aksepter" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Omdøp Modpakka:" +msgstr "Døyp om modifikasjonspakken:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -461,20 +521,16 @@ msgstr "(Ikkje nokon skildring gjeven)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "To-dimensjonal lyd" +msgstr "2D-støy" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Attende til instillinger" +msgstr "< Tilbake til innstillingssida" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" msgstr "Bla gjennom" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Deaktivert" @@ -519,13 +575,17 @@ msgstr "Reetabler det normale" msgid "Scale" msgstr "Skala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Søk" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "Velje ein mappe" +msgstr "Vel katalog" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" -msgstr "Velje eit dokument" +msgstr "Vel fil" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -533,11 +593,11 @@ msgstr "Vis tekniske namn" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." -msgstr "Verdien må i det minste være $1." +msgstr "Verdien må minst vere $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must not be larger than $1." -msgstr "Verdien må ikkje være høgare enn $1." +msgstr "Verdien må ikkje vere større enn $1." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X" @@ -576,7 +636,7 @@ msgstr "Absolutt verdi" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "Standard" +msgstr "standardar" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -592,35 +652,37 @@ msgstr "$1 (Aktivert)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" -msgstr "$1 modder" +msgstr "$1 modifikasjonar" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "Funka ikkje å installere $1 til $2" +msgstr "Klarte ikkje å installere $1 til $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" -"Installer modifikasjon: Funka ikkje å finne eit ekte modifikasjons namn for: " -"$1" +"Installer modifikasjon: Klarte ikkje å finne det reelle modifikasjonsnamnet " +"for: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Installer Modifikasjon: Funka ikkje å finne ein passande for modpakke $1" +"Installer modifikasjon: Klarte ikkje å finne ein passande katalog for " +"modifikasjonspakke $1" #: builtin/mainmenu/pkgmgr.lua +#, fuzzy msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" "Installer: Ikkje-støtta dokument type \"$1\" eller så funker ikkje arkivet" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "Installer: dokument: \"$1\"" +msgstr "Installer: fil: «$1»" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "Funka ikkje å finne ein gyldig modifikasjon eller mod-pakke" +msgstr "Klarte ikkje å finne ein gyldig modifikasjon eller modifikasjonspakke" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -638,6 +700,22 @@ msgstr "Funka ikkje å installere modifikasjon som ein $1" msgid "Unable to install a modpack as a $1" msgstr "Funka ikkje å installere mod-pakka som ein $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Lastar …" + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Klient side-skildring er av" + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Forsøkje å kople attende den offentlege tenarmaskin-lista og sjekk sambands " +"koplingen." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Bla i nett-innhald" @@ -648,7 +726,7 @@ msgstr "Innhald" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Deaktivér tekstur pakke" +msgstr "Deaktiver teksturpakke" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -656,15 +734,15 @@ msgstr "Informasjon:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "Installer pakker:" +msgstr "Installerte pakker:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." -msgstr "Ikkje nokon avhengigheiter." +msgstr "Ingen avhengigheiter." #: builtin/mainmenu/tab_content.lua msgid "No package description available" -msgstr "Ikkje nokon pakke skildring tilgjengelig" +msgstr "Inga pakkeskildring tilgjengeleg" #: builtin/mainmenu/tab_content.lua msgid "Rename" @@ -676,31 +754,38 @@ msgstr "Avinstallér pakka" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "Bruk tekstur pakke" +msgstr "Bruk teksturpakke" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "Aktive bidragere" +msgstr "Aktive bidragsytarar" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Kjerne-utviklere" +msgstr "Kjerne-utviklarar" #: builtin/mainmenu/tab_credits.lua msgid "Credits" msgstr "Medvirkende" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Velje ein mappe" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "Førre bidragere" +msgstr "Tidlegare bidragsytarar" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Førre kjerne-utviklere" +msgstr "Tidlegare kjerne-utviklarar" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" @@ -711,32 +796,30 @@ msgid "Bind Address" msgstr "Blind stad" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurér" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kreativ stode" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Aktivér skading" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Host Game" msgstr "Bli husvert" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Host Server" msgstr "Bli tenarmaskin's vert" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Installer spel frå ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Namn/passord" +msgid "Name" +msgstr "Namn" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -744,7 +827,11 @@ msgstr "Ny" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "Ikkje noko verd skapt eller valgt!" +msgstr "Inga verd skapt eller valt!" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Passord" #: builtin/mainmenu/tab_local.lua msgid "Play Game" @@ -754,13 +841,17 @@ msgstr "Ha i gang spel" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Vel modifikasjonar" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Vel verd:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "Tenarmaskin port" +msgstr "Tenarport" #: builtin/mainmenu/tab_local.lua msgid "Start Game" @@ -768,25 +859,25 @@ msgstr "Start spel" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "Stad/port" +msgstr "Adresse / port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Kople i hop" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreativ stode" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Skade aktivert" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Slett Favoritt" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favoritt" @@ -794,16 +885,16 @@ msgstr "Favoritt" msgid "Join Game" msgstr "Bli med i spel" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Namn/Passord" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Spelar mot spelar aktivert" @@ -825,17 +916,14 @@ msgstr "8x" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "Alle instillinger" +msgstr "Alle innstillingar" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" msgstr "Kantutjemning:" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Er du sikker på at du vill tilbakestille enkel-spelar verd?" - -#: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Autosave Screen Size" msgstr "Automatisk sjerm størrelse" @@ -843,10 +931,6 @@ msgstr "Automatisk sjerm størrelse" msgid "Bilinear Filter" msgstr "Bi-lineært filtréring" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Dunke kartlegging" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Endre nykeler" @@ -859,10 +943,6 @@ msgstr "Kopla i hop glass" msgid "Fancy Leaves" msgstr "Fancy blader" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Generér normale kart" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipkart" @@ -871,10 +951,6 @@ msgstr "Mipkart" msgid "Mipmap + Aniso. Filter" msgstr "Mipkart + Aniso. filter" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nei" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Inga filter" @@ -884,10 +960,12 @@ msgid "No Mipmap" msgstr "Ingen Mipkart" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Node Highlighting" msgstr "Knute-fremheving" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Node Outlining" msgstr "Knute-utlinjing" @@ -903,31 +981,30 @@ msgstr "Ugjennomsiktige blader" msgid "Opaque Water" msgstr "Ugjennomsiktig vatn" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parralax okklusjon" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "Partikkler" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Tilbakegå enkelspelar verd" +msgstr "Partiklar" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "Sjerm:" +msgstr "Skjerm:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "Instillinger" +msgstr "Innstillingar" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +#, fuzzy msgid "Shaders" msgstr "Dybdeskaper" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Dybdeskaper (ikkje tilgjengelig)" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Shaders (unavailable)" msgstr "Dybdeskaper (ikkje tilgjengelig)" @@ -944,10 +1021,12 @@ msgid "Texturing:" msgstr "Teksturering:" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "To enable shaders the OpenGL driver needs to be used." msgstr "For å aktivere skumrings-effekt så må OpenGL driveren være i bruk." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +#, fuzzy msgid "Tone Mapping" msgstr "Tone kartlegging" @@ -960,6 +1039,7 @@ msgid "Trilinear Filter" msgstr "Tri-lineær filtréring" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Waving Leaves" msgstr "Raslende lauv" @@ -969,25 +1049,10 @@ msgid "Waving Liquids" msgstr "Raslende lauv" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Waving Plants" msgstr "Raslende planter" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ja" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Konfigurer modifikasjoner" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hovud" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Start enkeltspelar oppleving" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Nett-kopling er brutt." @@ -1002,23 +1067,24 @@ msgstr "Førebur noder" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "Førebur node..." +msgstr "Førebur nodar …" #: src/client/client.cpp msgid "Loading textures..." -msgstr "Lastar teksturar..." +msgstr "Lastar teksturar …" #: src/client/client.cpp +#, fuzzy msgid "Rebuilding shaders..." msgstr "Gjennbygger dybdeskaper..." #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" -msgstr "Kopling gikk galen (Tidsavbrott?)" +msgstr "Tilkoplingsfeil (Tidsavbrot?)" #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" -msgstr "Kunne ikkje finne eller ha i gang spelet \"" +msgstr "Kunne ikkje finne eller laste spelet \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." @@ -1029,8 +1095,9 @@ msgid "Main Menu" msgstr "Hovudmeny" #: src/client/clientlauncher.cpp +#, fuzzy msgid "No world selected and no address provided. Nothing to do." -msgstr "Ingen verd valgt og ikkje nokon adresse valg. Ikkje noko å gjere." +msgstr "Inga verd er vald og ikkje nokon adresse valg. Ikkje noko å gjere." #: src/client/clientlauncher.cpp msgid "Player name too long." @@ -1038,13 +1105,15 @@ msgstr "Spelarnamn for langt." #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "Ver vennleg og velje eit anna namn!" +msgstr "Ver venleg å velje eit namn!" #: src/client/clientlauncher.cpp +#, fuzzy msgid "Provided password file failed to open: " msgstr "Passord dokumentet du ga går ikkje an å åpne: " #: src/client/clientlauncher.cpp +#, fuzzy msgid "Provided world path doesn't exist: " msgstr "Verds-ruta du ga finnes ikkje: " @@ -1073,6 +1142,7 @@ msgid "- Address: " msgstr "- Adresse: " #: src/client/game.cpp +#, fuzzy msgid "- Creative Mode: " msgstr "- Gude løyving: " @@ -1099,7 +1169,7 @@ msgstr "- Spelar mot spelar (PvP): " #: src/client/game.cpp msgid "- Server Name: " -msgstr "- Tenarmaskin namn: " +msgstr "- Tenarnamn: " #: src/client/game.cpp msgid "Automatic forward disabled" @@ -1139,43 +1209,40 @@ msgstr "Kopler til tenarmaskin..." #: src/client/game.cpp msgid "Continue" -msgstr "Fortsetja" +msgstr "Fortset" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Styring:\n" -"- %s: Framsteg\n" -"- %s: Baksteg\n" -"- %s: Sidesteg mot venstre\n" -"- %s: Sidesteg mot høyre\n" -"- %s: hopp/klatre\n" -"- %s: snike seg rundt/bøye seg\n" -"- %s: slipp gjennstand\n" +"- %s: gå framover\n" +"- %s: gå bakover\n" +"- %s: gå mot venstre\n" +"- %s: gå mot høgre\n" +"- %s: hopp/klatre opp\n" +"- %s: grav/slå\n" +"- %s: plasser/nytt\n" +"- %s: snik/klatre ned\n" +"- %s: slepp ting\n" "- %s: inventar\n" -"- Datamus: snu seg/sjå rundt\n" -"- Datamus, venstre klikk: grave/slå\n" -"- Datamus, høgre klikk: plassér/bruk\n" -"- Datamus, skrolle-hjul: select item\n" -"- %s: skravlerør\n" +"- Mus: snu deg/sjå\n" +"- Musehjul: vel ting\n" +"- %s: nettprat\n" #: src/client/game.cpp msgid "Creating client..." @@ -1273,16 +1340,6 @@ msgstr "Tåke er deaktivert" msgid "Fog enabled" msgstr "Tåke er aktivert" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Tåke er deaktivert" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Tåke er aktivert" - #: src/client/game.cpp msgid "Game info:" msgstr "Spel info:" @@ -1303,16 +1360,6 @@ msgstr "Definerér gjennstander..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Tåke er deaktivert" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Skade aktivert" - #: src/client/game.cpp msgid "Media..." msgstr "Medier..." @@ -1325,34 +1372,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Minikart er for tiden deaktivert tå spelet eller ein modifikasjon" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minikart er gøymt" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minikart i radar modus, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minikart i radarmodus, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minikart i radarmodus, Zoom x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minikart i overflate modus, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minikart i overflate modus, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minikart i overflate modus, Zoom x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Ikkjeklipp modus er avtatt" @@ -1398,10 +1417,6 @@ msgstr "Fjern-tenarmaskin" msgid "Resolving address..." msgstr "Slår opp addressa..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Du har kome at" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Slår av..." @@ -1420,7 +1435,7 @@ msgstr "Lyd e dempa" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Lydsystemet er slått av" #: src/client/game.cpp msgid "Sound system is not supported on this build" @@ -1454,10 +1469,6 @@ msgstr "Volum e forandra til %d%%" msgid "Wireframe shown" msgstr "Jern-tråd-ramma er vist" -#: src/client/game.cpp -msgid "You died" -msgstr "Du døydde" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Zoom er for tiden deaktivert tå spelet eller ein modifikasjon" @@ -1474,16 +1485,6 @@ msgstr "Skravlerøret er gøymt" msgid "Chat shown" msgstr "Skravlerøret er vist" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Skravlerøret er gøymt" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Skravlerøret er vist" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD er gøymt" @@ -1764,6 +1765,25 @@ msgstr "X Knapp 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minikart er gøymt" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minikart i radarmodus, Zoom x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minikart i overflatemodus, Zoom x%d" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Minikart i overflate modus, Zoom x1" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Passorda passar ikkje!" @@ -1807,26 +1827,6 @@ msgstr "Automatiske hopp" msgid "Backward" msgstr "Bakover" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Byt kamera" @@ -1921,30 +1921,10 @@ msgstr "Sniking" msgid "Special" msgstr "Spesial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Spesial" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Slå på/av kameramodus" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Slå på/av kameramodus" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Slå av/på HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Slåpå/av flyve løyving" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Slå av/på skravlerør" @@ -2055,12 +2035,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2091,11 +2065,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "" +msgstr "3D-skyer" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "3D-modus" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" @@ -2103,13 +2077,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D-støy som definerer gigantiske holer." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D-støy som definerer fjellstruktur og -høgde.\n" +"Definerer og strukturen på fjellterreng for flyteland." #: src/settings_translation_file.cpp msgid "" @@ -2125,7 +2101,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D-støy som definerer terreng." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." @@ -2157,27 +2133,32 @@ msgstr "" #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "Ein beskjed som skal visast til alle klientane når tenaren kræsjar." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." msgstr "" +"Ein beskjed som skal visast til alle klientane når tenaren vert slått av." #: src/settings_translation_file.cpp msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Akselerasjon i luft" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Gravitasjonsakselerasjon, i nodar per sekund per sekund." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" @@ -2224,7 +2205,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "Avansert" #: src/settings_translation_file.cpp msgid "" @@ -2245,11 +2226,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "Antal meldingar ein spelar kan sende per 10 sekund." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "Forsterkar dalane." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" @@ -2314,7 +2295,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "Rapporter automatisk til tenarlista." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2322,7 +2303,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "Autoskaleringsmodus" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2338,11 +2319,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "Basis" #: src/settings_translation_file.cpp msgid "Basic privileges" -msgstr "" +msgstr "Basisprivilegium" #: src/settings_translation_file.cpp msgid "Beach noise" @@ -2398,11 +2379,7 @@ msgstr "Bygg intern spelar" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" +msgstr "Innebygd" #: src/settings_translation_file.cpp msgid "" @@ -2474,23 +2451,13 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "Tekststørrelse for nettprat" #: src/settings_translation_file.cpp msgid "Chat key" -msgstr "" +msgstr "Nettpratstast" #: src/settings_translation_file.cpp msgid "Chat log level" @@ -2538,11 +2505,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Client" -msgstr "" +msgstr "Klient" #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "Klient og tenar" #: src/settings_translation_file.cpp msgid "Client modding" @@ -2558,15 +2525,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Climbing speed" -msgstr "" +msgstr "Klatrefart" #: src/settings_translation_file.cpp msgid "Cloud radius" -msgstr "" +msgstr "Skyradius" #: src/settings_translation_file.cpp msgid "Clouds" -msgstr "" +msgstr "Skyer" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." @@ -2574,11 +2541,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Clouds in menu" -msgstr "" +msgstr "Skyer i meny" #: src/settings_translation_file.cpp msgid "Colored fog" -msgstr "" +msgstr "Farga tåke" #: src/settings_translation_file.cpp msgid "" @@ -2636,9 +2603,13 @@ msgid "ContentDB Flag Blacklist" msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB URL" +msgid "ContentDB Max Concurrent Downloads" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB URL" +msgstr "URL til ContentDB" + #: src/settings_translation_file.cpp msgid "Continuous forward" msgstr "" @@ -2681,18 +2652,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Crash message" -msgstr "" +msgstr "Kræsjmelding" #: src/settings_translation_file.cpp msgid "Creative" -msgstr "" +msgstr "Kreativ" #: src/settings_translation_file.cpp msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2700,7 +2673,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2737,29 +2712,31 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Default acceleration" -msgstr "" +msgstr "Standard akselerasjon" #: src/settings_translation_file.cpp msgid "Default game" -msgstr "" +msgstr "Standard spel" #: src/settings_translation_file.cpp msgid "" "Default game when creating a new world.\n" "This will be overridden when creating a world from the main menu." msgstr "" +"Standard spel når du lagar ei ny verd.\n" +"Dette vil verte overstyrt når du lagar ei verd frå hovudmenyen." #: src/settings_translation_file.cpp msgid "Default password" -msgstr "" +msgstr "Standard passord" #: src/settings_translation_file.cpp msgid "Default privileges" -msgstr "" +msgstr "Standard privilegium" #: src/settings_translation_file.cpp msgid "Default report format" -msgstr "" +msgstr "Standard rapportformat" #: src/settings_translation_file.cpp msgid "Default stack size" @@ -2799,12 +2776,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2875,6 +2846,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2936,7 +2911,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3023,14 +2998,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3039,18 +3006,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3067,12 +3022,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3084,7 +3033,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3385,10 +3334,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3443,8 +3388,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3910,6 +3855,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3989,6 +3938,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4088,6 +4044,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4645,10 +4608,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4662,6 +4621,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4826,7 +4793,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4874,6 +4841,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5103,14 +5077,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5136,10 +5102,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5165,34 +5127,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5258,6 +5192,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5413,10 +5355,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5668,6 +5606,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5797,10 +5745,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5894,6 +5838,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5953,8 +5901,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5978,6 +5926,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5986,9 +5940,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6123,6 +6076,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6329,6 +6293,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6451,6 +6421,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6463,14 +6451,65 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "OK" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Er du sikker på at du vill tilbakestille enkel-spelar verd?" #~ msgid "Back" #~ msgstr "Attende" +#~ msgid "Bump Mapping" +#~ msgstr "Dunke kartlegging" + +#~ msgid "Config mods" +#~ msgstr "Konfigurer modifikasjoner" + +#~ msgid "Configure" +#~ msgstr "Konfigurér" + #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Henter og installerer $1, ver vennleg og vent..." +#~ msgid "Generate Normal Maps" +#~ msgstr "Generér normale kart" + +#~ msgid "Main" +#~ msgstr "Hovud" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minikart i radarmodus, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minikart i radarmodus, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minikart i overflate modus, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minikart i overflate modus, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Namn/passord" + +#~ msgid "No" +#~ msgstr "Nei" + +#~ msgid "Ok" +#~ msgstr "OK" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parralax okklusjon" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Tilbakegå enkelspelar verd" + #~ msgid "Select Package File:" #~ msgstr "Velje eit pakke dokument:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Start enkeltspelar oppleving" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Slå på/av kameramodus" + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/pl/minetest.po b/po/pl/minetest.po index 47cdeb945..4c5d166e8 100644 --- a/po/pl/minetest.po +++ b/po/pl/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Polish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-09 12:14+0000\n" -"Last-Translator: Mikołaj Zaremba \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-12-27 00:29+0000\n" +"Last-Translator: Atrate \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,11 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Wróć do gry" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Umarłeś" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -39,10 +47,6 @@ msgstr "Połącz ponownie" msgid "The server has requested a reconnect:" msgstr "Serwer zażądał ponownego połączenia:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Ładowanie..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Niezgodne wersje protokołów. " @@ -55,12 +59,6 @@ msgstr "Serwer żąda użycia protokołu w wersji $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Serwer wspiera protokoły w wersjach od $1 do $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Spróbuj ponownie włączyć publiczną listę serwerów i sprawdź swoje połączenie " -"z siecią Internet." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Wspieramy wyłącznie protokół w wersji $1." @@ -69,7 +67,8 @@ msgstr "Wspieramy wyłącznie protokół w wersji $1." msgid "We support protocol versions between version $1 and $2." msgstr "Wspieramy protokoły w wersji od $1 do $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -79,7 +78,8 @@ msgstr "Wspieramy protokoły w wersji od $1 do $2." msgid "Cancel" msgstr "Anuluj" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Zależności:" @@ -152,17 +152,58 @@ msgstr "Świat:" msgid "enabled" msgstr "włączone" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Ładowanie..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Wszystkie zasoby" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Klawisz już zdefiniowany" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Powrót do menu głównego" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Utwórz grę" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB nie jest dostępne gdy Minetest był zbudowany bez cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -182,6 +223,16 @@ msgstr "Gry" msgid "Install" msgstr "Instaluj" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instaluj" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Dodatkowe zależności:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -196,9 +247,26 @@ msgid "No results" msgstr "Brak Wyników" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Szukaj" +#, fuzzy +msgid "No updates" +msgstr "Aktualizacja" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "Wycisz dźwięk" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -213,7 +281,11 @@ msgid "Update" msgstr "Aktualizacja" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -222,7 +294,7 @@ msgstr "Istnieje już świat o nazwie \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Dodatkowy teren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp #, fuzzy @@ -230,9 +302,8 @@ msgid "Altitude chill" msgstr "Wysokość mrozu" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Wysokość mrozu" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -259,9 +330,8 @@ msgid "Create" msgstr "Utwórz" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Iteracje" +msgstr "Dekoracje" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -272,13 +342,12 @@ msgid "Download one from minetest.net" msgstr "Ściągnij taką z minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Minimalna wartość Y lochu" +msgstr "Lochy" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Płaski teren" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -286,9 +355,8 @@ msgid "Floating landmasses in the sky" msgstr "Gęstość gór na latających wyspach" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Poziom wznoszonego terenu" +msgstr "Latające wyspy (eksperymentalne)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -300,7 +368,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Wzgórza" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -309,15 +377,17 @@ msgstr "Sterownik graficzny" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Zwiększa wilgotność wokół rzek" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Jeziora" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Niska wilgotność i wysoka temperatura wpływa na niski stan rzek lub ich " +"wysychanie" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -333,9 +403,8 @@ msgid "Mapgen-specific flags" msgstr "Generator mapy flat flagi" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Szum góry" +msgstr "Góry" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -343,19 +412,20 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Sieć jaskiń i korytarzy." #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" msgstr "Nie wybrano gry" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Reduces heat with altitude" -msgstr "" +msgstr "Spadek temperatury wraz z wysokością" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Spadek wilgotności wraz ze wzrostem wysokości" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -483,11 +553,6 @@ msgstr "< Wróć do ekranu ustawień" msgid "Browse" msgstr "Przeglądaj" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Klient" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Wyłączone" @@ -532,6 +597,10 @@ msgstr "Przywróć domyślne" msgid "Scale" msgstr "Skaluj" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Szukaj" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Wybierz katalog" @@ -648,6 +717,21 @@ msgstr "Nie moźna zainstalować moda jako $1" msgid "Unable to install a modpack as a $1" msgstr "Nie można zainstalować paczki modów jako $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Ładowanie..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Skryptowanie po stronie klienta jest wyłączone" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Spróbuj ponownie włączyć publiczną listę serwerów i sprawdź swoje połączenie " +"z siecią Internet." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Przeglądaj zawartość online" @@ -701,7 +785,14 @@ msgid "Credits" msgstr "Autorzy" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Wybierz katalog" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -721,14 +812,10 @@ msgid "Bind Address" msgstr "Adres" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Ustaw" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Tryb kreatywny" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Włącz obrażenia" @@ -745,8 +832,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nazwa gracza/Hasło" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -756,6 +843,11 @@ msgstr "Nowy" msgid "No world created or selected!" msgstr "Nie wybrano bądź nie utworzono świata!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Nowe hasło" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Graj" @@ -764,6 +856,11 @@ msgstr "Graj" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Wybierz świat:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Wybierz świat:" @@ -780,23 +877,23 @@ msgstr "Rozpocznij grę" msgid "Address / Port" msgstr "Adres / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Połącz" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Tryb kreatywny" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Obrażenia włączone" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Usuń ulubiony" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Ulubione" @@ -804,16 +901,16 @@ msgstr "Ulubione" msgid "Join Game" msgstr "Dołącz do gry" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nazwa gracza / Hasło" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP włączone" @@ -841,10 +938,6 @@ msgstr "Wszystkie ustawienia" msgid "Antialiasing:" msgstr "Antyaliasing:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Jesteś pewny że chcesz zresetować świat singleplayer?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Automatyczny zapis rozmiaru okienka" @@ -853,10 +946,6 @@ msgstr "Automatyczny zapis rozmiaru okienka" msgid "Bilinear Filter" msgstr "Filtrowanie dwuliniowe" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Mapowanie wypukłości" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Zmień klawisze" @@ -869,10 +958,6 @@ msgstr "Szkło połączone" msgid "Fancy Leaves" msgstr "Ozdobne liście" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Generuj normalne mapy" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmapy" @@ -881,10 +966,6 @@ msgstr "Mipmapy" msgid "Mipmap + Aniso. Filter" msgstr "Mipmapy i Filtr anizotropowe" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nie" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Filtrowanie wyłączone" @@ -913,18 +994,10 @@ msgstr "Nieprzejrzyste liście" msgid "Opaque Water" msgstr "Nieprzejrzysta Woda" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Mapowanie paralaksy" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Włącz Efekty Cząsteczkowe" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Resetuj świat pojedynczego gracza" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Ekran:" @@ -937,6 +1010,11 @@ msgstr "Ustawienia" msgid "Shaders" msgstr "Shadery" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Latające wyspy (eksperymentalne)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shadery (Nie dostępne)" @@ -981,22 +1059,6 @@ msgstr "Fale (Ciecze)" msgid "Waving Plants" msgstr "Falujące rośliny" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Tak" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Ustawienia modów" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Menu główne" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Tryb jednoosobowy" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Upłynął czas połączenia." @@ -1158,18 +1220,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Sterowanie:↵\n" "- %s: idź do przodu↵\n" @@ -1282,16 +1341,6 @@ msgstr "Mgła wyłączona" msgid "Fog enabled" msgstr "Mgła włączona" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Mgła wyłączona" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Mgła włączona" - #: src/client/game.cpp msgid "Game info:" msgstr "Informacje o grze:" @@ -1312,16 +1361,6 @@ msgstr "Definicje przedmiotów..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Mgła wyłączona" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Obrażenia włączone" - #: src/client/game.cpp msgid "Media..." msgstr "Media..." @@ -1334,34 +1373,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Minimapa aktualnie wyłączona przez grę lub mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minimapa ukryta" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minimapa w trybie radaru, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minimapa w trybie radaru, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minimapa w trybie radaru, Zoom x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimapa w trybie powierzchniowym, powiększenie x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimapa w trybie powierzchniowym, powiększenie x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimapa w trybie powierzchniowym, powiększenie x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Tryb noclip wyłączony" @@ -1406,10 +1417,6 @@ msgstr "Serwer zdalny" msgid "Resolving address..." msgstr "Sprawdzanie adresu..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Wróć do gry" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Wyłączanie..." @@ -1462,10 +1469,6 @@ msgstr "Zmieniono poziom głośności na %d%%" msgid "Wireframe shown" msgstr "Siatka widoczna" -#: src/client/game.cpp -msgid "You died" -msgstr "Umarłeś" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Powiększenie jest obecnie wyłączone przez grę lub mod" @@ -1482,16 +1485,6 @@ msgstr "Czat ukryty" msgid "Chat shown" msgstr "Chat widoczny" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Czat ukryty" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Chat widoczny" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD ukryty" @@ -1772,6 +1765,25 @@ msgstr "Przycisk X 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimapa ukryta" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimapa w trybie radaru, Zoom x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimapa w trybie powierzchniowym, powiększenie x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Minimalna wielkość tekstury dla filtrów" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Hasła nie są jednakowe!" @@ -1815,26 +1827,6 @@ msgstr "Automatyczne skoki" msgid "Backward" msgstr "Tył" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Zmień kamerę" @@ -1929,30 +1921,10 @@ msgstr "Skradanie" msgid "Special" msgstr "Specialne" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Specialne" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Przełącz na tryb Cinematic" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Przełącz na tryb Cinematic" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Przełącz HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Przełącz tryb latania" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Przełącz historię czatu" @@ -2085,14 +2057,6 @@ msgstr "" "odpowiedniego \n" "dla wyspy, ustaw 3 wartości równe, aby uzyskać surowy kształt." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax occlusion z informacją nachylenia (szybsze).\n" -"1 = relief mapping (wolniejsze, bardziej dokładne)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Szum 2D który wpływa na kształt/rozmiar łańcuchów górskich." @@ -2220,6 +2184,10 @@ msgstr "" msgid "ABM interval" msgstr "Interwał zapisu mapy" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "Absolute limit of queued blocks to emerge" @@ -2470,7 +2438,7 @@ msgstr "Ścieżka czcionki typu Monospace" #: src/settings_translation_file.cpp #, fuzzy msgid "Bold font path" -msgstr "Ścieżka czcionki" +msgstr "Ścieżka fontu pogrubionego." #: src/settings_translation_file.cpp #, fuzzy @@ -2485,10 +2453,6 @@ msgstr "Buduj w pozycji gracza" msgid "Builtin" msgstr "Wbudowany" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Mapowanie wypukłości" - #: src/settings_translation_file.cpp #, fuzzy msgid "" @@ -2566,21 +2530,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Zmienia interfejs użytkownika menu głównego:\n" -"- Pełny: Wiele światów jednoosobowych, wybór gry, wybór paczki tekstur, " -"itd.\n" -"- Prosty: Jeden świat jednoosobowy, brak wyboru gry lub paczki tekstur. " -"Może być konieczny dla mniejszych ekranów." - #: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" @@ -2743,6 +2692,10 @@ msgstr "Wysokość konsoli" msgid "ContentDB Flag Blacklist" msgstr "Flaga czarnej listy ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2810,7 +2763,10 @@ msgid "Crosshair alpha" msgstr "Kanał alfa celownika" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Kanał alfa celownika (pomiędzy 0 a 255)." #: src/settings_translation_file.cpp @@ -2818,8 +2774,10 @@ msgid "Crosshair color" msgstr "Kolor celownika" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Kolor celownika (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2927,22 +2885,13 @@ msgid "Defines location and terrain of optional hills and lakes." msgstr "Określa położenie oraz teren z dodatkowymi górami i jeziorami." #: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Definiuje krok próbkowania tekstury.\n" -"Wyższa wartość reprezentuje łagodniejszą mapę normalnych." - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the base ground level." -msgstr "Określa obszary drzewiaste oraz ich gęstość." +msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the depth of the river channel." -msgstr "Określa obszary drzewiaste oraz ich gęstość." +msgstr "Określa głębokość rzek." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2958,7 +2907,7 @@ msgstr "Określa strukturę kanałów rzecznych." #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the width of the river valley." -msgstr "Określa obszary na których drzewa mają jabłka." +msgstr "Określa szerokość doliny rzecznej." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -3018,6 +2967,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Odsynchronizuj animację bloków" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "W prawo" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Włącz efekty cząsteczkowe" @@ -3059,15 +3013,15 @@ msgid "Dungeon minimum Y" msgstr "Minimalna wartość Y lochu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Minimalna wartość Y lochu" +msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." -msgstr "" +msgstr "Włącz protokół sieciowy IPv6 (dla gry oraz dla jej serwera)." #: src/settings_translation_file.cpp msgid "" @@ -3082,7 +3036,8 @@ msgid "Enable console window" msgstr "Odblokuj okno konsoli" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Zezwól na tryb kreatywny dla nowo powstałych map." #: src/settings_translation_file.cpp @@ -3151,10 +3106,13 @@ msgstr "" "jeżeli następuje połączenie z serwerem." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" +"Uaktywnij \"vertex buffer objects\" aby zmniejszyć wymagania wobec karty " +"grafiki." #: src/settings_translation_file.cpp msgid "" @@ -3187,18 +3145,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Włącz animację inwentarza przedmiotów." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Włącza mapowanie wypukłości dla tekstur. Mapy normalnych muszą być dodane w " -"paczce tekstur\n" -"lub muszą być automatycznie wygenerowane.\n" -"Wymaga włączonych shaderów." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Włącza cachowanie facedir obracanych meshów." @@ -3207,22 +3153,6 @@ msgstr "Włącza cachowanie facedir obracanych meshów." msgid "Enables minimap." msgstr "Włącz minimapę." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Włącza generację map normalnych w locie (efekt płaskorzeźby).\n" -"Wymaga włączenia mapowania wypukłości." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Włącza mapowanie paralaksy.\n" -"Wymaga włączenia shaderów." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3239,14 +3169,6 @@ msgstr "Interwał wyświetlania danych profilowych" msgid "Entity methods" msgstr "Metody bytów" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Eksperymentalna opcja, może powodować widoczne przestrzenie\n" -"pomiędzy blokami kiedy ustawiona powyżej 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3258,8 +3180,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS podczas pauzy w menu" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Maksymalny FPS gdy gra spauzowana." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3410,9 +3333,8 @@ msgid "Floatland tapering distance" msgstr "Podstawowy szum wznoszącego się terenu" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Poziom wznoszonego terenu" +msgstr "" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3595,10 +3517,6 @@ msgstr "Filtr skalowania GUI" msgid "GUI scaling filter txr2img" msgstr "Filtr skalowania GUI txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Generuj mapy normalnych" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Globalne wywołania zwrotne" @@ -3666,8 +3584,8 @@ msgstr "Klawisz przełączania HUD" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Obsługa przestarzałych wywołań lua api:\n" @@ -4229,6 +4147,11 @@ msgstr "Identyfikator Joystick-a" msgid "Joystick button repetition interval" msgstr "Interwał powtarzania przycisku joysticka" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Typ Joysticka" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Czułość drgania joysticka" @@ -4332,6 +4255,17 @@ msgstr "" "Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Klawisz skakania.\n" +"Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4475,6 +4409,17 @@ msgstr "" "Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Klawisz skakania.\n" +"Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp #, fuzzy msgid "" @@ -5273,11 +5218,6 @@ msgstr "Zmniejsz limit Y dla lochów." msgid "Main menu script" msgstr "Skrypt głównego menu" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Skrypt głównego menu" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5293,6 +5233,14 @@ msgstr "Sprawia, że DirectX działa z LuaJIT. Wyłącz jeśli występują kłop msgid "Makes all liquids opaque" msgstr "Zmienia ciecze w nieprzeźroczyste" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Katalog map" @@ -5493,7 +5441,8 @@ msgid "Maximum FPS" msgstr "Maksymalny FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Maksymalny FPS gdy gra spauzowana." #: src/settings_translation_file.cpp @@ -5552,6 +5501,13 @@ msgstr "" "Maksymalna liczba bloków do skolejkowania które mają być wczytane z pliku.\n" "Pozostaw puste a odpowiednia liczba zostanie dobrana automatycznie." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Maksymalna ilość, wczytanych wymuszeniem, bloków mapy." @@ -5806,14 +5762,6 @@ msgstr "Interwał NodeTimer" msgid "Noises" msgstr "Szumy" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Próbkowanie normalnych map" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Siła map normlanych" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Liczba powstających wątków" @@ -5843,10 +5791,6 @@ msgstr "" "To wymiana pomiędzy sqlite i\n" "konsumpcją pamięci (4096=100MB, praktyczna zasada)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Liczba iteracji dla parallax occlusion." - #: src/settings_translation_file.cpp #, fuzzy msgid "Online Content Repository" @@ -5875,35 +5819,6 @@ msgstr "" "Otwórz menu pauzy, gdy okno jest nieaktywne. Nie zatrzymuje gry jeśli " "formspec jest otwarty." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Ogólny błąd systematyczny efektu zamykania paralaksy, zwykle skala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Całkowity efekt skalowania zamknięcia paralaksy." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Zamknięcie paralaksy" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Błąd systematyczny zamknięcia paralaksy" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Iteracje zamknięcia paralaksy" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Tryb zamknięcia paralaksy" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Skala parallax occlusion" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5976,6 +5891,16 @@ msgstr "Klawisz latania" msgid "Pitch move mode" msgstr "Tryb nachylenia ruchu włączony" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Klawisz latania" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Interwał powtórzenia prawego kliknięcia myszy" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6154,10 +6079,6 @@ msgstr "Szum podwodnej grani" msgid "Right key" msgstr "W prawo" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Interwał powtórzenia prawego kliknięcia myszy" - #: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" @@ -6464,6 +6385,19 @@ msgstr "Pokaż informacje debugowania" msgid "Show entity selection boxes" msgstr "Pokazuj zaznaczenie wybranych obiektów" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Ustaw język. Zostaw puste pole, aby użyć języka systemowego.\n" +"Wymagany restart po zmianie ustawienia." + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Komunikat zamknięcia serwera" @@ -6614,10 +6548,6 @@ msgstr "Szum góry" msgid "Strength of 3D mode parallax." msgstr "Siła paralaksy." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Siła generowanych zwykłych map." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6720,6 +6650,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "Adres URL repozytorium zawartości" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "Identyfikator użycia joysticka" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6786,8 +6721,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6818,6 +6753,12 @@ msgstr "" "cieczy przez jej usunięcie. Do tego czasu kolejka może urosnąć ponad " "pojemność przetwarzania. Wartość 0 wyłącza tą funkcjonalność." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6827,10 +6768,10 @@ msgstr "" "joysticka." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "Czas, wyrażany w sekundach,pomiędzy powtarzanymi kliknięciami prawego " "przycisku myszy." @@ -6990,6 +6931,17 @@ msgstr "" "zwłaszcza przy korzystaniu z tekstur wysokiej rozdzielczości.\n" "Gamma correct dowscaling nie jest wspierany." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Użyj filtrowania tri-linearnego podczas skalowania tekstur." @@ -7238,6 +7190,12 @@ msgstr "" "Kiedy tylko czcionki wolnego typu są używane wymagana jest ich kompilacja " "wspierająca takie czcionki." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "Określ kiedy animacje tekstur na blok powinny być niesynchronizowane." @@ -7374,6 +7332,24 @@ msgstr "Wysokość dolin oraz dna jezior." msgid "Y-level of seabed." msgstr "Wysokość dna jezior." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL przekroczono limit pobierania pliku" @@ -7386,23 +7362,12 @@ msgstr "Limit równoległy cURL" msgid "cURL timeout" msgstr "Limit czasu cURL" -#~ msgid "Ok" -#~ msgstr "OK" - -#~ msgid "Back" -#~ msgstr "Backspace" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Pobieranie i instalowanie $1, proszę czekaj..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limit oczekiwań na dysku" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Siła zamknięcia paralaksy" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Ścieżka, pod którą zapisywane są zrzuty ekranu." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion z informacją nachylenia (szybsze).\n" +#~ "1 = relief mapping (wolniejsze, bardziej dokładne)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7418,9 +7383,41 @@ msgstr "Limit czasu cURL" #~ "Zmienia sposób w jaki podobne do gór latające wyspy zwężają się ku " #~ "środkowi nad i pod punktem środkowym." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Jesteś pewny że chcesz zresetować świat singleplayer?" + +#~ msgid "Back" +#~ msgstr "Backspace" + +#~ msgid "Bump Mapping" +#~ msgstr "Mapowanie wypukłości" + +#~ msgid "Bumpmapping" +#~ msgstr "Mapowanie wypukłości" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Centrum przyśpieszenia środkowego krzywej światła." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Zmienia interfejs użytkownika menu głównego:\n" +#~ "- Pełny: Wiele światów jednoosobowych, wybór gry, wybór paczki " +#~ "tekstur, itd.\n" +#~ "- Prosty: Jeden świat jednoosobowy, brak wyboru gry lub paczki " +#~ "tekstur. Może być konieczny dla mniejszych ekranów." + +#~ msgid "Config mods" +#~ msgstr "Ustawienia modów" + +#~ msgid "Configure" +#~ msgstr "Ustaw" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7432,6 +7429,9 @@ msgstr "Limit czasu cURL" #~ msgstr "" #~ "Kontroluje szerokość tuneli, mniejsze wartości tworzą szersze tunele." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Kolor celownika (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Ostrość ciemności" @@ -7442,12 +7442,57 @@ msgstr "Limit czasu cURL" #~ "Określa obszary wznoszącego się gładkiego terenu.\n" #~ "Wygładzone powierzchnie pojawiają się gdy szum > 0." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definiuje krok próbkowania tekstury.\n" +#~ "Wyższa wartość reprezentuje łagodniejszą mapę normalnych." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Pobieranie i instalowanie $1, proszę czekaj..." + #~ msgid "Enable VBO" #~ msgstr "Włącz VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Włącza mapowanie wypukłości dla tekstur. Mapy normalnych muszą być dodane " +#~ "w paczce tekstur\n" +#~ "lub muszą być automatycznie wygenerowane.\n" +#~ "Wymaga włączonych shaderów." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Włącz filmic tone mapping" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Włącza generację map normalnych w locie (efekt płaskorzeźby).\n" +#~ "Wymaga włączenia mapowania wypukłości." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Włącza mapowanie paralaksy.\n" +#~ "Wymaga włączenia shaderów." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Eksperymentalna opcja, może powodować widoczne przestrzenie\n" +#~ "pomiędzy blokami kiedy ustawiona powyżej 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS podczas pauzy w menu" + #~ msgid "Floatland base height noise" #~ msgstr "Podstawowy szum wysokości wznoszącego się terenu" @@ -7460,6 +7505,12 @@ msgstr "Limit czasu cURL" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "Generuj normalne mapy" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generuj mapy normalnych" + #~ msgid "IPv6 support." #~ msgstr "Wsparcie IPv6." @@ -7470,18 +7521,108 @@ msgstr "Limit czasu cURL" #~ msgid "Lightness sharpness" #~ msgstr "Ostrość naświetlenia" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limit oczekiwań na dysku" + +#~ msgid "Main" +#~ msgstr "Menu główne" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Skrypt głównego menu" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa w trybie radaru, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa w trybie radaru, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa w trybie powierzchniowym, powiększenie x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa w trybie powierzchniowym, powiększenie x4" + +#~ msgid "Name/Password" +#~ msgstr "Nazwa gracza/Hasło" + +#~ msgid "No" +#~ msgstr "Nie" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Próbkowanie normalnych map" + +#~ msgid "Normalmaps strength" +#~ msgstr "Siła map normlanych" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Liczba iteracji dla parallax occlusion." + +#~ msgid "Ok" +#~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Ogólny błąd systematyczny efektu zamykania paralaksy, zwykle skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Całkowity efekt skalowania zamknięcia paralaksy." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Mapowanie paralaksy" + +#~ msgid "Parallax occlusion" +#~ msgstr "Zamknięcie paralaksy" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Błąd systematyczny zamknięcia paralaksy" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iteracje zamknięcia paralaksy" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Tryb zamknięcia paralaksy" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala parallax occlusion" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Siła zamknięcia paralaksy" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Ścieżka do pliku .ttf lub bitmapy." +#~ msgid "Path to save screenshots at." +#~ msgstr "Ścieżka, pod którą zapisywane są zrzuty ekranu." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projekcja lochów" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Resetuj świat pojedynczego gracza" + +#~ msgid "Select Package File:" +#~ msgstr "Wybierz plik paczki:" + #~ msgid "Shadow limit" #~ msgstr "Limit cieni" +#~ msgid "Start Singleplayer" +#~ msgstr "Tryb jednoosobowy" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Siła generowanych zwykłych map." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Siłą przyśpieszenia środkowego krzywej światła." #~ msgid "This font will be used for certain languages." #~ msgstr "Ta czcionka zostanie użyta w niektórych językach." +#~ msgid "Toggle Cinematic" +#~ msgstr "Przełącz na tryb Cinematic" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7493,9 +7634,18 @@ msgstr "Limit czasu cURL" #~ "Zmienność wysokości wzgórz oraz głębokości jezior na gładkim terenie " #~ "wznoszącym się." +#~ msgid "Waving Water" +#~ msgstr "Falująca woda" + #~ msgid "Waving water" #~ msgstr "Falująca woda" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Określa czy lochy mają być czasem przez generowane teren." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y górnej granicy lawy dużych jaskiń." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "" #~ "Wysokość średniego punktu wznoszącego się terenu oraz powierzchni jezior." @@ -7503,17 +7653,5 @@ msgstr "Limit czasu cURL" #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Wysokość do której rozciągają się cienie wznoszącego terenu." -#~ msgid "Projecting dungeons" -#~ msgstr "Projekcja lochów" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Określa czy lochy mają być czasem przez generowane teren." - -#~ msgid "Waving Water" -#~ msgstr "Falująca woda" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y górnej granicy lawy dużych jaskiń." - -#~ msgid "Select Package File:" -#~ msgstr "Wybierz plik paczki:" +#~ msgid "Yes" +#~ msgstr "Tak" diff --git a/po/pt/minetest.po b/po/pt/minetest.po index 912f18a5f..78c46b6d8 100644 --- a/po/pt/minetest.po +++ b/po/pt/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Portuguese (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-03-31 10:14+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese \n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Renascer" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Você morreu" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -36,11 +44,7 @@ msgstr "Reconectar" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "O servidor requisitou uma reconexão:" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "A carregar..." +msgstr "O servidor solicitou uma reconexão :" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -54,12 +58,6 @@ msgstr "O servidor requer o protocolo versão $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "O servidor suporta versões de protocolo entre $1 e $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Tente recarregar a lista de servidores públicos e verifique a sua ligação à " -"internet." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Nós suportamos apenas o protocolo versão $1." @@ -68,7 +66,8 @@ msgstr "Nós suportamos apenas o protocolo versão $1." msgid "We support protocol versions between version $1 and $2." msgstr "Nós suportamos as versões de protocolo entre $1 e $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Nós suportamos as versões de protocolo entre $1 e $2." msgid "Cancel" msgstr "Cancelar" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dependências:" @@ -88,7 +88,7 @@ msgstr "Desativar tudo" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Desabilitar modpack" +msgstr "Desativar modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -96,7 +96,7 @@ msgstr "Ativar tudo" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Habilitar modpack" +msgstr "Ativar modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -109,7 +109,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Encontre Mais Mods" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -152,22 +152,61 @@ msgstr "Mundo:" msgid "enabled" msgstr "ativado" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" já existe. Gostaria de sobrescrevê-lo?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "As dependências de $1 e $2 serão instaladas." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 por $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"A descarregar $1,\n" +"$2 na fila" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "A descarregar $1..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 dependências necessárias não foram encontradas." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 serão instalados e $2 dependências serão ignoradas." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Todos os pacotes" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Já instalado" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Voltar ao menu principal" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgid "Base Game:" +msgstr "Jogo base:" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "ContentDB não está disponível quando Minetest é compilado sem cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "A carregar..." +msgstr "A descarregar..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -182,6 +221,14 @@ msgstr "Jogos" msgid "Install" msgstr "Instalar" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Instalar $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Instalar dependências ausentes" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -196,9 +243,24 @@ msgid "No results" msgstr "Sem resultados" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Procurar" +msgid "No updates" +msgstr "Sem atualizações" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Não encontrado" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Sobrescrever" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Verifique se o jogo base está correto." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Enfileirado" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -213,8 +275,12 @@ msgid "Update" msgstr "Atualizar" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" +msgid "Update All [$1]" +msgstr "Atualizar tudo [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Exibir mais informações num navegador da Web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -222,45 +288,39 @@ msgstr "O mundo com o nome \"$1\" já existe" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Terreno adicional" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "Frio de altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Frio de altitude" +msgstr "Altitude seca" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Ruído da Biome" +msgstr "Mistura de biomas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Ruído da Biome" +msgstr "Biomas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Barulho da caverna" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octavos" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Criar" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Monitorização" +msgstr "Decorações" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -271,23 +331,20 @@ msgid "Download one from minetest.net" msgstr "Descarregue um do site minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Ruído de masmorra" +msgstr "Masmorras" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Terreno plano" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Densidade da terra flutuante montanhosa" +msgstr "Terrenos flutuantes no céu" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Nível de água" +msgstr "Terrenos flutuantes (experimental)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -295,28 +352,27 @@ msgstr "Jogo" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Gerar terreno não-fractal: Oceanos e subsolo" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Montanhas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Driver de vídeo" +msgstr "Rios húmidos" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Aumenta a humidade perto de rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lagos" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Baixa humidade e calor elevado resultam em rios rasos ou secos" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -327,22 +383,20 @@ msgid "Mapgen flags" msgstr "Flags do mapgen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Flags específicas do gerador de mundo V5" +msgstr "Flags específicas do mapgen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Ruído da montanha" +msgstr "Montanhas" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Fluxo de lama" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Conectar túneis e cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -350,20 +404,19 @@ msgstr "Nenhum jogo selecionado" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduz calor com altitude" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduz humidade com altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Tamanho do Rio" +msgstr "Rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Rios ao nível do mar" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -372,52 +425,51 @@ msgstr "Seed" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Transição suave entre biomas" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Estruturas que aparecem no terreno (sem efeito em árvores e grama da selva " +"criada pelo v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Estruturas que aparecem no terreno, geralmente árvores e plantas" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperado, Deserto" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperado, Deserto, Selva" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperado, Deserto, Selva, Tundra, Floresta Boreal" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Altura do terreno" +msgstr "Erosão superficial do terreno" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Árvores e relva da selva" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Profundidade do Rio" +msgstr "Variar a profundidade do rio" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Cavernas bastante profundas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "Aviso: O minimal development test destina-se apenas a desenvolvedores." +msgstr "Aviso: O Development Test destina-se apenas a programadores." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -439,7 +491,7 @@ msgstr "Eliminar" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: failed to delete \"$1\"" -msgstr "pkgmgr: não foi possível excluir \"$1\"" +msgstr "pkgmgr: não foi possível apagar \"$1\"" #: builtin/mainmenu/dlg_delete_content.lua msgid "pkgmgr: invalid path \"$1\"" @@ -481,11 +533,6 @@ msgstr "< Voltar para as definições" msgid "Browse" msgstr "Navegar" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Cliente" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Desativado" @@ -530,6 +577,10 @@ msgstr "Restaurar valores por defeito" msgid "Scale" msgstr "Escala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Procurar" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Selecione o diretório" @@ -599,7 +650,7 @@ msgstr "amenizado" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "$1 (Habilitado)" +msgstr "$1 (Ativado)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" @@ -648,6 +699,21 @@ msgstr "Não foi possível instalar um módulo como um $1" msgid "Unable to install a modpack as a $1" msgstr "Não foi possível instalar um modpack como um $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "A carregar..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "O scripting de cliente está desativado" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Tente recarregar a lista de servidores públicos e verifique a sua ligação à " +"internet." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Procurar conteúdo online" @@ -658,7 +724,7 @@ msgstr "Conteúdo" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Desabilitar pacote de texturas" +msgstr "Desativar pacote de texturas" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -698,11 +764,19 @@ msgstr "Desenvolvedores Principais" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "Créditos" +msgstr "Méritos" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Abrir o diretório de dados do utilizador" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Abre o diretório que contém mundos, jogos, mods fornecidos pelo utilizador,\n" +"e pacotes de textura num gestor de ficheiros / explorador." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -721,14 +795,10 @@ msgid "Bind Address" msgstr "Endereço de ligação" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Configurar" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Modo Criativo" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Ativar Dano" @@ -742,11 +812,11 @@ msgstr "Servidor" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalar jogos do ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nome/palavra-passe" +msgid "Name" +msgstr "Nome" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -756,6 +826,10 @@ msgstr "Novo" msgid "No world created or selected!" msgstr "Nenhum mundo criado ou seleccionado!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Palavra-passe" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Jogar Jogo" @@ -764,6 +838,10 @@ msgstr "Jogar Jogo" msgid "Port" msgstr "Porta" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Selecionar mods" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Seleccionar Mundo:" @@ -780,23 +858,23 @@ msgstr "Iniciar o jogo" msgid "Address / Port" msgstr "Endereço / Porta" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Ligar" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Modo Criativo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Dano ativado" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Rem. Favorito" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favorito" @@ -804,16 +882,16 @@ msgstr "Favorito" msgid "Join Game" msgstr "Juntar-se ao jogo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nome / Palavra-passe" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP ativado" @@ -841,10 +919,6 @@ msgstr "Todas as configurações" msgid "Antialiasing:" msgstr "Antialiasing:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Tem a certeza que deseja reiniciar o seu mundo?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Auto salvar tamanho do ecrã" @@ -853,10 +927,6 @@ msgstr "Auto salvar tamanho do ecrã" msgid "Bilinear Filter" msgstr "Filtro bilinear" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump mapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Mudar teclas" @@ -869,10 +939,6 @@ msgstr "Vidro conectado" msgid "Fancy Leaves" msgstr "Folhas detalhadas" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Gerar Normal maps" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -881,10 +947,6 @@ msgstr "Mipmap" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Filtro Anisotrópico" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Não" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Sem Filtro" @@ -913,21 +975,13 @@ msgstr "Folhas Opacas" msgid "Opaque Water" msgstr "Água Opaca" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Oclusão de paralaxe" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Ativar Particulas" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Reiniciar mundo singleplayer" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "Tela:" +msgstr "Ecrã:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" @@ -937,6 +991,10 @@ msgstr "Definições" msgid "Shaders" msgstr "Sombras" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Shaders (experimental)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Sombreadores(indisponível)" @@ -981,22 +1039,6 @@ msgstr "Líquidos ondulantes" msgid "Waving Plants" msgstr "Plantas ondulantes" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Sim" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Configurar mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Principal" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Iniciar Um Jogador" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Erro de ligação (tempo excedido)." @@ -1112,15 +1154,15 @@ msgstr "Nome do servidor: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "Avanço automático para frente desabilitado" +msgstr "Avanço automático desativado" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "Avanço automático para frente habilitado" +msgstr "Avanço automático para frente ativado" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "Atualização da camera desabilitada" +msgstr "Atualização da camera desativada" #: src/client/game.cpp msgid "Camera update enabled" @@ -1132,15 +1174,15 @@ msgstr "Mudar palavra-passe" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "Modo cinemático desabilitado" +msgstr "Modo cinemático desativado" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "Modo cinemático habilitado" +msgstr "Modo cinemático ativado" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "Scripting de cliente está desabilitado" +msgstr "O scripting de cliente está desativado" #: src/client/game.cpp msgid "Connecting to server..." @@ -1151,53 +1193,37 @@ msgid "Continue" msgstr "Continuar" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Controles:\n" -"\n" -"- %s1: andar para frente\n" -"\n" -"- %s2: andar para trás\n" -"\n" -"- %s3: andar para a esquerda\n" -"\n" -"-%s4: andar para a direita\n" -"\n" -"- %s5: pular/escalar\n" -"\n" -"- %s6: esgueirar/descer\n" -"\n" -"- %s7: soltar item\n" -"\n" -"- %s8: inventário\n" -"\n" -"- Mouse: virar/olhar\n" -"\n" -"- Botão esquerdo do mouse: cavar/dar soco\n" -"\n" -"- Botão direito do mouse: colocar/usar\n" -"\n" -"- Roda do mouse: selecionar item\n" -"\n" -"- %s9: bate-papo\n" +"- %s: mover para a frente\n" +"- %s: mover para trás\n" +"- %s: mover para a esquerda\n" +"- %s: mover para a direita\n" +"- %s: saltar/escalar\n" +"- %s: cavar/socar\n" +"- %s: colocar/usar\n" +"- %s: esgueirar/descer\n" +"- %s: soltar item\n" +"- %s: inventário\n" +"- Rato: virar/ver\n" +"- Roda do rato: selecionar item\n" +"- %s: bate-papo\n" #: src/client/game.cpp msgid "Creating client..." @@ -1249,11 +1275,11 @@ msgstr "" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "Alcance de visualização ilimitado desabilitado" +msgstr "Alcance de visualização ilimitado desativado" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "Alcance de visualização ilimitado habilitado" +msgstr "Alcance de visualização ilimitado ativado" #: src/client/game.cpp msgid "Exit to Menu" @@ -1265,46 +1291,36 @@ msgstr "Sair para o S.O" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "Modo rápido desabilitado" +msgstr "Modo rápido desativado" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "Modo rápido habilitado" +msgstr "Modo rápido ativado" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Modo rápido habilitado(note: sem privilégio 'fast')" +msgstr "Modo rápido ativado (note: sem privilégio 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "Modo voo desabilitado" +msgstr "Modo voo desativado" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "Modo voo habilitado" +msgstr "Modo voo ativado" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Modo voo habilitado(note: sem privilegio 'fly')" +msgstr "Modo voo ativado (note: sem privilégio 'fly')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "Névoa desabilitada" +msgstr "Névoa desativada" #: src/client/game.cpp msgid "Fog enabled" msgstr "Névoa habilitada" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Névoa desabilitada" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Névoa habilitada" - #: src/client/game.cpp msgid "Game info:" msgstr "Info do jogo:" @@ -1325,16 +1341,6 @@ msgstr "Definições dos Itens..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Névoa desabilitada" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Dano ativado" - #: src/client/game.cpp msgid "Media..." msgstr "Media..." @@ -1345,47 +1351,19 @@ msgstr "MiB/s" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "Minipapa atualmente desabilitado por jogo ou mod" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minimapa escondido" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minimapa em modo radar, zoom 1x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minimapa em modo radar, zoom 2x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minimapa em modo radar, zoom 4x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimapa em modo de superfície, zoom 1x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimapa em modo de superfície, zoom 2x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimapa em modo de superfície, zoom 4x" +msgstr "Minipapa atualmente desativado por jogo ou mod" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "Modo atravessar paredes desabilitado" +msgstr "Modo de atravessar paredes desativado" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "Modo atravessar paredes habilitado" +msgstr "Modo atravessar paredes ativado" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Modo atravessar paredes habilitado(note: sem privilégio 'noclip')" +msgstr "Modo atravessar paredes ativado (note: sem privilégio 'noclip')" #: src/client/game.cpp msgid "Node definitions..." @@ -1401,11 +1379,11 @@ msgstr "Ligado" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "Modo movimento pitch desabilitado" +msgstr "Modo movimento pitch desativado" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "Modo movimento pitch habilitado" +msgstr "Modo movimento pitch ativado" #: src/client/game.cpp msgid "Profiler graph shown" @@ -1419,10 +1397,6 @@ msgstr "Servidor remoto" msgid "Resolving address..." msgstr "A resolver endereço..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Renascer" - #: src/client/game.cpp msgid "Shutting down..." msgstr "A desligar..." @@ -1441,11 +1415,11 @@ msgstr "Som mutado" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Som do sistema está desativado" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Som do sistema não é suportado nesta versão" #: src/client/game.cpp msgid "Sound unmuted" @@ -1464,7 +1438,7 @@ msgstr "Distancia de visualização está no máximo:%d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "Distancia de visualização está no mínima:%d" +msgstr "Distancia de visualização está no mínimo: %d" #: src/client/game.cpp #, c-format @@ -1475,13 +1449,9 @@ msgstr "Som alterado para %d%%" msgid "Wireframe shown" msgstr "Mostrar wireframe" -#: src/client/game.cpp -msgid "You died" -msgstr "Você morreu" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "Zoom atualmente desabilitado por jogo ou mod" +msgstr "Zoom atualmente desativado por jogo ou mod" #: src/client/game.cpp msgid "ok" @@ -1495,16 +1465,6 @@ msgstr "Conversa oculta" msgid "Chat shown" msgstr "Conversa mostrada" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Conversa oculta" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Conversa mostrada" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Interface escondida" @@ -1785,6 +1745,24 @@ msgstr "Botão X 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimapa escondido" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimapa em modo radar, ampliação %dx" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimapa em modo de superfície, ampliação %dx" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Minimapa em modo de textura" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "As palavra-passes não correspondem!" @@ -1829,26 +1807,6 @@ msgstr "Pulo automático" msgid "Backward" msgstr "Recuar" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Mudar camera" @@ -1941,30 +1899,10 @@ msgstr "Agachar" msgid "Special" msgstr "Especial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Especial" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Ativar/Desativar câmera cinemática" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Ativar/Desativar câmera cinemática" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Ativar interface" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Ativar/Desativar vôo" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Ativar histórico de conversa" @@ -2044,7 +1982,7 @@ msgid "" "If disabled, virtual joystick will center to first-touch's position." msgstr "" "(Android) Corrige a posição do joystick virtual.\n" -"Se desabilitado, o joystick virtual vai centralizar na posição do primeiro " +"Se desativado, o joystick virtual vai centralizar na posição do primeiro " "toque." #: src/settings_translation_file.cpp @@ -2054,8 +1992,8 @@ msgid "" "circle." msgstr "" "(Android) Use joystick virtual para ativar botão \"aux\".\n" -"Se habilitado, o joystick virtual vai também clicar no botão \"aux\" quando " -"estiver fora do circulo principal." +"Se ativado, o joystick virtual vai também clicar no botão \"aux\" quando " +"estiver fora do círculo principal." #: src/settings_translation_file.cpp msgid "" @@ -2089,19 +2027,11 @@ msgid "" msgstr "" "(X,Y,Z) Escala fractal em nós.\n" "Tamanho fractal atual será de 2 a 3 vezes maior.\n" -"Esses números podem ser muito grandes, o fractal não tem que encaixar dentro " -"do mundo.\n" +"Esses números podem ser muito grandes, o fractal não \n" +"tem que encaixar dentro do mundo.\n" "Aumente estes para 'ampliar' nos detalhes do fractal.\n" -"Padrão é para uma forma espremida verticalmente para uma ilha, coloque todos " -"os 3 números iguais para a forma crua." - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" -"1 = mapeamento de relevo (mais lento, mais preciso)." +"Predefinição é para uma forma espremida verticalmente para uma ilha,\n" +"ponha todos os 3 números iguais para a forma crua." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -2140,9 +2070,8 @@ msgid "3D mode" msgstr "Modo 3D" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Intensidade de normalmaps" +msgstr "Força de paralaxe do modo 3D" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2163,6 +2092,12 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Ruído 3D definindo as estruturas de terras flutuantes\n" +"Se alterar da predefinição, a 'escala' do ruído (0.7 por predefinição) pode " +"precisar\n" +"ser ajustada, já que o afunilamento das terras flutuantes funciona melhor " +"quando o ruído tem\n" +"um valor entre -2.0 e 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2195,16 +2130,16 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" -"Suporte 3D.\n" +"Suporte de 3D.\n" "Modos atualmente suportados:\n" -"- none: Nenhum efeito 3D.\n" -"- anaglyph: Sistema de cor Ciano/Magenta (Óculos 3D azul vermelho).\n" -"- interlaced: Sistema interlaçado (Óculos com lentes polarizadas).\n" -"- topbottom: Divide a tela em duas: uma em cima e outra em baixo.\n" -"- sidebyside: Divide a tela em duas: lado a lado.\n" +"- none: nenhum efeito 3D.\n" +"- anaglyph: sistema de cor Ciano/Magenta (Óculos 3D azul vermelho).\n" +"- interlaced: sistema interlaçado (Óculos com lentes polarizadas).\n" +"- topbottom: divide o ecrã em dois: um em cima e outro em baixo.\n" +"- sidebyside: divide o ecrã em dois: lado a lado.\n" " - crossview: 3D de olhos cruzados.\n" -" - pageflip: Quadbuffer baseado em 3D.\n" -"Note que o modo interlaçado requer que o sombreamento esteja habilitado." +" - pageflip: quadbuffer baseado em 3D.\n" +"Note que o modo interlaçado requer que sombreamentos estejam ativados." #: src/settings_translation_file.cpp msgid "" @@ -2231,9 +2166,12 @@ msgid "ABM interval" msgstr "Intervalo do ABM" #: src/settings_translation_file.cpp -#, fuzzy +msgid "ABM time budget" +msgstr "Orçamento de tempo do ABM" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "Limite absoluto da fila de espera emergente" +msgstr "Limite absoluto de blocos em fila de espera a emergir" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2290,6 +2228,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajusta a densidade da camada de terrenos flutuantes.\n" +"Aumenta o valor para aumentar a densidade. Pode ser positivo ou negativo.\n" +"Valor = 0,0: 50% do volume são terrenos flutuantes.\n" +"Valor = 2,0 (pode ser maior dependendo de 'mgv7_np_floatland', teste sempre\n" +"para ter certeza) cria uma camada sólida de terrenos flutuantes." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2358,8 +2301,8 @@ msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" -"Inercia dos braços fornece um movimento mais realista dos braços quando a " -"câmera mexe." +"Inercia dos braços fornece um movimento mais \n" +"realista dos braços quando a câmara se move." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2380,12 +2323,15 @@ msgid "" "Stated in mapblocks (16 nodes)." msgstr "" "Nesta distância, o servidor otimizará agressivamente quais blocos são " -"enviados aos clientes.\n" -"Pequenos valores potencialmente melhoram muito o desempenho, à custa de " -"falhas de renderização visíveis(alguns blocos não serão processados debaixo " -"da água e nas cavernas, bem como às vezes em terra).\n" +"enviados aos \n" +"clientes.\n" +"Pequenos valores potencialmente melhoram muito o desempenho, à custa de \n" +"falhas de renderização visíveis (alguns blocos não serão processados debaixo " +"da \n" +"água e nas cavernas, bem como às vezes em terra).\n" "Configure isso como um valor maior do que a " -"distância_máxima_de_envio_do_bloco para desabilitar essa otimização.\n" +"distância_máxima_de_envio_do_bloco \n" +"para desativar essa otimização.\n" "Especificado em barreiras do mapa (16 nós)." #: src/settings_translation_file.cpp @@ -2485,21 +2431,16 @@ msgid "Builtin" msgstr "Integrado" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bump mapping" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distancia do plano próximo da câmera em nós, entre 0 e 0.5\n" +"Distancia do plano próximo da câmara em nós, entre 0 e 0.5\n" "A maioria dos utilizadores não precisará mudar isto.\n" "Aumentar pode reduzir a ocorrência de artefactos em GPUs mais fracas.\n" -"0.1 = Padrão, 0.25 = Bom valor para tablets fracos." +"0.1 = Predefinição, 0.25 = Bom valor para tablets fracos." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2566,33 +2507,16 @@ msgstr "" "0,0 é o nível mínimo de luz, 1,0 é o nível máximo de luz." #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Mudanças para a interface do menu principal:\n" -" - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de pacote " -"de texturas, etc.\n" -"- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " -"texturas. Pode ser necessário para telas menores." - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Tamanho da fonte" +msgstr "Tamanho da fonte do chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tecla de conversação" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Nível de log de depuração" +msgstr "Nível de log do chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2747,6 +2671,10 @@ msgstr "Tecla da consola" msgid "ContentDB Flag Blacklist" msgstr "Lista negra de flags do ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Máximo de descargas simultâneas de ContentDB" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "Url do ContentDB" @@ -2760,9 +2688,9 @@ msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" -"Movimento para frente contínuo, ativado pela tela de avanço automático.\n" -"Pressione a tecla de avanço frontal novamente, ou a tecla de movimento para " -"trás para desabilitar." +"Movimento para frente contínuo, ativado pela tecla de avanço automático.\n" +"Pressione a tecla de avanço frontal novamente ou a tecla de movimento para " +"trás para desativar." #: src/settings_translation_file.cpp msgid "Controls" @@ -2813,7 +2741,10 @@ msgid "Crosshair alpha" msgstr "Opacidade do cursor" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Opacidade do cursor (entre 0 e 255)." #: src/settings_translation_file.cpp @@ -2821,8 +2752,10 @@ msgid "Crosshair color" msgstr "Cor do cursor" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Cor do cursor (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2849,9 +2782,8 @@ msgid "Dec. volume key" msgstr "Tecla de dimin. de som" #: src/settings_translation_file.cpp -#, fuzzy msgid "Decrease this to increase liquid resistance to movement." -msgstr "Diminue isto para aumentar a resistência do líquido ao movimento." +msgstr "Diminuir isto para aumentar a resistência do líquido ao movimento." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2886,9 +2818,8 @@ msgid "Default report format" msgstr "Formato de report predefinido" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Jogo por defeito" +msgstr "Tamanho de pilha predefinido" #: src/settings_translation_file.cpp msgid "" @@ -2929,14 +2860,6 @@ msgstr "Define estruturas de canais de grande porte (rios)." msgid "Defines location and terrain of optional hills and lakes." msgstr "Define localizações e terrenos de morros e lagos opcionais." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Define nível de amostragem de textura.\n" -"Um valor mais alto resulta em mapas normais mais suaves." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Define o nível base do solo." @@ -3017,6 +2940,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Dessincroniza animação de blocos" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Tecla para a direita" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Ativar Particulas" @@ -3074,24 +3002,25 @@ msgid "" "Enable Lua modding support on client.\n" "This support is experimental and API can change." msgstr "" -"Habilitar suporte a mods LUA locais no cliente.\n" +"Ativar suporte a mods LUA locais no cliente.\n" "Esse suporte é experimental e a API pode mudar." #: src/settings_translation_file.cpp msgid "Enable console window" -msgstr "Habilitar janela de console" +msgstr "Ativar janela de console" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "Habilitar modo criativo para mundos novos." +#, fuzzy +msgid "Enable creative mode for all players" +msgstr "Ativar modo criativo para mundos novos." #: src/settings_translation_file.cpp msgid "Enable joysticks" -msgstr "Habilitar Joysticks" +msgstr "Ativar Joysticks" #: src/settings_translation_file.cpp msgid "Enable mod channels support." -msgstr "Habilitar suporte a canais de módulos." +msgstr "Ativar suporte a canais de módulos." #: src/settings_translation_file.cpp msgid "Enable mod security" @@ -3107,15 +3036,15 @@ msgstr "Ativa a entrada de comandos aleatória (apenas usado para testes)." #: src/settings_translation_file.cpp msgid "Enable register confirmation" -msgstr "Habilitar registro de confirmação" +msgstr "Ativar registo de confirmação" #: src/settings_translation_file.cpp msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." msgstr "" -"Habilitar confirmação de registro quando conectar ao servidor.\n" -"Caso desabilitado, uma nova conta será registrada automaticamente." +"Ativar confirmação de registo quando conectar ao servidor.\n" +"Caso desativado, uma nova conta será registada automaticamente." #: src/settings_translation_file.cpp msgid "" @@ -3168,13 +3097,12 @@ msgstr "" "Por exemplo: 0 para não ver balançando; 1.0 para normal; 2.0 para duplo." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" -"Habilitar/desabilitar a execução de um IPv6 do servidor. \n" +"Ativar/desativar a execução de um servidor de IPv6. \n" "Ignorado se bind_address estiver definido." #: src/settings_translation_file.cpp @@ -3195,18 +3123,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Ativa animação de itens no inventário." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Ativa o bumpmapping para texturas. Mapas normais devem ser fornecidos pelo " -"pack de\n" -"texturas ou gerado automaticamente.\n" -"Requer que as sombras sejam ativadas." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Ativar armazenamento em cache para os meshes das faces." @@ -3215,22 +3131,6 @@ msgstr "Ativar armazenamento em cache para os meshes das faces." msgid "Enables minimap." msgstr "Ativa mini-mapa." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Ativa geração de normalmap (efeito de relevo) ao voar.\n" -"Requer texturização bump mapping para ser ativado." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Ativa mapeamento de oclusão de paralaxe.\n" -"Requer sombreadores ativados." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3251,14 +3151,6 @@ msgstr "Intervalo de exibição dos dados das analizes do motor" msgid "Entity methods" msgstr "Metodos de entidade" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Opção experimental, pode causar espaços visíveis entre blocos\n" -"quando definido com num úmero superior a 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3268,10 +3160,21 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Expoente do afunilamento do terreno flutuante. Altera o comportamento de " +"afunilamento.\n" +"Valor = 1.0 cria um afunilamento linear e uniforme.\n" +"Valores > 1.0 criam um afunilamento suave, adequado para a separação " +"padrão.\n" +"terras flutuantes.\n" +"Valores < 1,0 (por exemplo, 0,25) criam um nível de superfície mais definido " +"com\n" +"terrenos flutuantes mais planos, adequados para uma camada sólida de " +"terrenos flutuantes." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS em menu de pausa" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Máximo FPS quando o jogo é pausado." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3286,9 +3189,8 @@ msgid "Fall bobbing factor" msgstr "Cair balançando" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fallback font path" -msgstr "Fonte alternativa" +msgstr "Caminho da fonte reserva" #: src/settings_translation_file.cpp msgid "Fallback font shadow" @@ -3296,7 +3198,7 @@ msgstr "Sombra da fonte alternativa" #: src/settings_translation_file.cpp msgid "Fallback font shadow alpha" -msgstr "Canal de opacidade sombra da fonte alternativa" +msgstr "Canal de opacidade sombra da fonte alternativa" #: src/settings_translation_file.cpp msgid "Fallback font size" @@ -3389,24 +3291,20 @@ msgid "Fixed virtual joystick" msgstr "Joystick virtual fixo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Densidade da terra flutuante montanhosa" +msgstr "Densidade do terreno flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Y máximo da dungeon" +msgstr "Y máximo do terreno flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Y mínimo da dungeon" +msgstr "Y mínimo do terreno flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Ruído base de terra flutuante" +msgstr "Ruído no terreno flutuante" #: src/settings_translation_file.cpp #, fuzzy @@ -3505,11 +3403,11 @@ msgstr "Opacidade de fundo padrão do formspec" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "Cor de fundo em tela cheia do formspec" +msgstr "Cor de fundo em ecrã cheio do formspec" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "Opacidade de fundo em tela cheia do formspec" +msgstr "Opacidade de fundo em ecrã cheio do formspec" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." @@ -3521,11 +3419,11 @@ msgstr "Opacidade de fundo padrão do formspec (entre 0 e 255)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." -msgstr "Cor de fundo(R,G,B) do formspec padrão em tela cheia." +msgstr "Cor de fundo (R,G,B) do formspec em ecrã cheio." #: src/settings_translation_file.cpp msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "Opacidade de fundo do formspec em tela cheia (entre 0 e 255)." +msgstr "Opacidade de fundo do formspec em ecrã cheio (entre 0 e 255)." #: src/settings_translation_file.cpp msgid "Forward key" @@ -3600,10 +3498,6 @@ msgstr "Filtro de redimensionamento do interface gráfico" msgid "GUI scaling filter txr2img" msgstr "Filtro txr2img de redimensionamento do interface gráfico" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Gerar mapa de normais" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Chamadas de retorno Globais" @@ -3666,8 +3560,8 @@ msgstr "Tecla de comutação HUD" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Tratamento de chamadas ao API Lua obsoletas:\n" @@ -3684,11 +3578,11 @@ msgid "" "call).\n" "* Instrument the sampler being used to update the statistics." msgstr "" -"Tem o instrumento de registro em si:\n" +"Fazer que o profiler instrumente si próprio:\n" "* Monitorar uma função vazia.\n" -"Isto estima a sobrecarga, que o istrumento está adicionando (+1 Chamada de " +"Isto estima a sobrecarga, que o instrumento está a adicionar (+1 chamada de " "função).\n" -"* Monitorar o amostrador que está sendo usado para atualizar as estatísticas." +"* Monitorar o sampler que está a ser usado para atualizar as estatísticas." #: src/settings_translation_file.cpp msgid "Heat blend noise" @@ -3960,8 +3854,8 @@ msgid "" "are\n" "enabled." msgstr "" -"Se estiver desabilitado, a tecla \"especial será usada para voar rápido se " -"modo voo e rápido estiverem habilitados." +"Se estiver desativado, a tecla \"especial será usada para voar rápido se " +"modo voo e rápido estiverem ativados." #: src/settings_translation_file.cpp msgid "" @@ -3971,10 +3865,13 @@ msgid "" "invisible\n" "so that the utility of noclip mode is reduced." msgstr "" -"Se habilitado, o servidor executará a seleção de oclusão de bloco de mapa " -"com base na posição do olho do jogador. Isso pode reduzir o número de blocos " -"enviados ao cliente de 50 a 80%. O cliente não será mais mais invisível, de " -"modo que a utilidade do modo \"noclip\" (modo intangível) será reduzida." +"Se ativado, o servidor executará a seleção de oclusão de bloco de mapa com " +"base \n" +"na posição do olho do jogador. Isso pode reduzir o número de blocos enviados " +"ao \n" +"cliente de 50 a 80%. O cliente ja não será invisível, de modo que a " +"utilidade do \n" +"modo \"noclip\" (modo intangível) será reduzida." #: src/settings_translation_file.cpp msgid "" @@ -3992,15 +3889,15 @@ msgid "" "down and\n" "descending." msgstr "" -"Se habilitado, a tecla \"especial\" em vez de \"esgueirar\" servirá para " -"usada descer." +"Se ativado, a tecla \"especial\" em vez de \"esgueirar\" servirá para usada " +"descer." #: src/settings_translation_file.cpp msgid "" "If enabled, actions are recorded for rollback.\n" "This option is only read when server starts." msgstr "" -"Se habilitado, as ações são registradas para reversão.\n" +"Se ativado, as ações são registadas para reversão.\n" "Esta opção só é lido quando o servidor é iniciado." #: src/settings_translation_file.cpp @@ -4012,16 +3909,16 @@ msgid "" "If enabled, invalid world data won't cause the server to shut down.\n" "Only enable this if you know what you are doing." msgstr "" -"Se habilitado, dados inválidos do mundo não vão fazer o servidor desligar.\n" -"Só habilite isso, se você souber o que está fazendo." +"Se ativado, dados inválidos do mundo não vão fazer o servidor desligar.\n" +"Só ative isto, se souber o que está a fazer." #: src/settings_translation_file.cpp msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" -"Se habilitado, faz com que os movimentos sejam relativos ao pitch do jogador " -"quando voando ou nadando." +"Se ativado, faz com que os movimentos sejam relativos ao pitch do jogador " +"quando a voar ou a nadar." #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." @@ -4044,8 +3941,9 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" -"Se a restrição de CSM para alcançe de nós está habilitado, chamadas get_node " -"são limitadas a está distancia do player até o nó." +"Se a restrição de CSM para o alcançe de nós está ativado, chamadas get_node " +"são \n" +"limitadas a está distancia do jogador até o nó." #: src/settings_translation_file.cpp msgid "" @@ -4203,6 +4101,11 @@ msgstr "ID do Joystick" msgid "Joystick button repetition interval" msgstr "Intervalo de repetição do botão do Joystick" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "Tipo do Joystick" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Sensibilidade do frustum do Joystick" @@ -4303,6 +4206,17 @@ msgstr "" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para pular. \n" +"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4361,7 +4275,7 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" "Tecla para mover o jogador para trás.\n" -"Também ira desabilitar o andar para frente automático quando ativo.\n" +"Também ira desativar o andar para frente automático quando ativo.\n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4445,6 +4359,17 @@ msgstr "" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para pular. \n" +"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4815,7 +4740,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para tirar fotos da tela.\n" +"Tecla para tirar fotos do ecrã.\n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5200,10 +5125,6 @@ msgstr "Menor limite Y de dungeons." msgid "Main menu script" msgstr "Menu principal de scripts" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Estilo do menu principal" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5219,6 +5140,14 @@ msgstr "Faz o DirectX trabalhar com LuaJIT. Desative se causa problemas." msgid "Makes all liquids opaque" msgstr "Torna todos os líquidos opacos" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Diretório do mapa" @@ -5257,11 +5186,11 @@ msgid "" "'altitude_dry': Reduces humidity with altitude." msgstr "" "Atributos de geração de mapa específicos ao gerador Valleys.\n" -"'altitude_chill':Reduz o calor com a altitude.\n" -"'humid_rivers':Aumenta a umidade em volta dos rios.\n" -"'profundidade_variada_rios': Se habilitado, baixa umidade e alto calor faz " -"com que que rios se tornem mais rasos e eventualmente sumam.\n" -"'altitude_dry': Reduz a umidade com a altitude." +"'altitude_chill': Reduz o calor com a altitude.\n" +"'humid_rivers': Aumenta a humidade à volta de rios.\n" +"'profundidade_variada_rios': se ativado, baixa a humidade e alto calor faz \n" +"com que rios se tornem mais rasos e eventualmente sumam.\n" +"'altitude_dry': reduz a humidade com a altitude." #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." @@ -5323,7 +5252,7 @@ msgstr "Gerador de mundo Carpathian" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian specific flags" -msgstr "Flags específicas do gerador de mundo Carpathian" +msgstr "Flags específicas do gerador do mundo Carpathian" #: src/settings_translation_file.cpp msgid "Mapgen Flat" @@ -5406,7 +5335,8 @@ msgid "Maximum FPS" msgstr "FPS máximo" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Máximo FPS quando o jogo é pausado." #: src/settings_translation_file.cpp @@ -5471,6 +5401,13 @@ msgstr "" "Definido em branco para uma quantidade apropriada ser escolhida " "automaticamente." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Número máximo de chunks carregados forçadamente." @@ -5504,7 +5441,7 @@ msgstr "Número máximo de mensagens recentes mostradas" #: src/settings_translation_file.cpp msgid "Maximum number of statically stored objects in a block." -msgstr "Número máximo de objetos estaticamente armazenados em um bloco." +msgstr "Número máximo de objetos estaticamente armazenados num bloco." #: src/settings_translation_file.cpp msgid "Maximum objects per block" @@ -5532,7 +5469,7 @@ msgid "" "0 to disable queueing and -1 to make the queue size unlimited." msgstr "" "Tamanho máximo da fila do chat.\n" -"0 para desabilitar a fila e -1 para a tornar ilimitada." +"0 para desativar a fila e -1 para a tornar ilimitada." #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." @@ -5728,14 +5665,6 @@ msgstr "Intervalo de NodeTimer" msgid "Noises" msgstr "Ruidos" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Amostragem de normalmaps" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Intensidade de normalmaps" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Número de seguimentos de emersão" @@ -5782,10 +5711,6 @@ msgstr "" "Esta é uma troca entre sobrecarga de transação do sqlite e consumo de " "memória (4096 = 100 MB, como uma regra de ouro)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Número de iterações de oclusão de paralaxe." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Repositório de conteúdo online" @@ -5813,34 +5738,6 @@ msgstr "" "Abre o menu de pausa quando o foco da janela é perdido.Não pausa se um " "formspec está aberto." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Enviesamento do efeito de oclusão de paralaxe, normalmente escala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Escala do efeito de oclusão de paralaxe." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Oclusão de paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Enviesamento de oclusão paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Iterações de oclusão paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Modo de oclusão paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Escala de Oclusão de paralaxe" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5911,6 +5808,16 @@ msgstr "Tecla de movimento pitch" msgid "Pitch move mode" msgstr "Modo movimento pitch" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tecla de voar" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Intervalo de repetição do clique direito" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5944,9 +5851,9 @@ msgid "" "Prevent digging and placing from repeating when holding the mouse buttons.\n" "Enable this when you dig or place too often by accident." msgstr "" -"Evita remoção e colocação de blocos repetidos quando os botoes do mouse são " -"segurados.\n" -"Habilite isto quando você cava ou coloca blocos constantemente por acidente." +"Evita remoção e colocação de blocos repetidos quando os botoes do rato são " +"seguros.\n" +"Ative isto quando cava ou põe blocos constantemente por acidente." #: src/settings_translation_file.cpp msgid "Prevent mods from doing insecure things like running shell commands." @@ -5958,8 +5865,8 @@ msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" -"Intervalo de impressão de dados do analisador (em segundos). 0 = " -"desabilitado. Útil para desenvolvedores." +"Intervalo de impressão de dados do analisador (em segundos). 0 = desativado. " +"Útil para desenvolvedores." #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" @@ -6063,15 +5970,13 @@ msgstr "" "Restringe o acesso de certas funções a nível de cliente em servidores.\n" "Combine os byflags abaixo par restringir recursos de nível de cliente, ou " "coloque 0 para nenhuma restrição:\n" -"LOAD_CLIENT_MODS: 1 (desabilita o carregamento de mods de cliente)\n" -"CHAT_MESSAGES: 2 (desabilita a chamada send_chat_message no lado do " -"cliente)\n" -"READ_ITEMDEFS: 4 (desabilita a chamada get_item_def no lado do cliente)\n" -"READ_NODEDEFS: 8 (desabilita a chamada get_node_def no lado do cliente)\n" +"LOAD_CLIENT_MODS: 1 (desativa o carregamento de mods de cliente)\n" +"CHAT_MESSAGES: 2 (desativa a chamada send_chat_message no lado do cliente)\n" +"READ_ITEMDEFS: 4 (desativa a chamada get_item_def no lado do cliente)\n" +"READ_NODEDEFS: 8 (desativa a chamada get_node_def no lado do cliente)\n" "LOOKUP_NODES_LIMIT: 16 (limita a chamada get_node no lado do cliente para " "csm_restriction_noderange)\n" -"READ_PLAYERINFO: 32 (desabilita a chamada get_player_names no lado do " -"cliente)" +"READ_PLAYERINFO: 32 (desativa a chamada get_player_names no lado do cliente)" #: src/settings_translation_file.cpp msgid "Ridge mountain spread noise" @@ -6093,10 +5998,6 @@ msgstr "Ruído do tamanho de montanhas acidentadas" msgid "Right key" msgstr "Tecla para a direita" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Intervalo de repetição do clique direito" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Profundidade do canal do rio" @@ -6267,7 +6168,7 @@ msgstr "" "7 = Conjunto de mandelbrot \"Variation\" 4D.\n" "8 = Conjunto de julia \"Variation\" 4D.\n" "9 = Conjunto de mandelbrot \"Mandelbrot/Mandelbar\" 3D.\n" -"10 = Conjunto de julia \"Mandelbrot/Mandelbar\" 3D.\n" +"10 = Conjunto de julia \"Mandelbrot/Mandelbar\" 3D.\n" "11 = Conjunto de mandelbrot \"Árvore de natal\" 3D.\n" "12 = Conjunto de julia \"Árvore de natal\" 3D..\n" "13 = Conjunto de mandelbrot \"Bulbo de Mandelbrot\" 3D.\n" @@ -6395,6 +6296,20 @@ msgstr "Mostrar informação de depuração" msgid "Show entity selection boxes" msgstr "Mostrar as caixas de seleção entidades" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Defina o idioma. Deixe vazio para usar a linguagem do sistema.\n" +"Apos mudar isso uma reinicialização é necessária." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Fonte em negrito por predefinição" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Mensagem de desligamento" @@ -6504,9 +6419,9 @@ msgid "" msgstr "" "Especifica a URL no qual os clientes buscam a mídia ao em vez de usar o " "UDP.\n" -"$filename deve ser acessível a partir de $remote_media$filename via cURL \n" +"$filename deve ser acessível de $remote_media$filename via cURL \n" "(obviamente, remote_media deve terminar com uma barra \"/\").\n" -"Arquivos que não estão presentes serão obtidos da maneira usual por UDP." +"Ficheiros que não estão presentes serão obtidos da maneira usual por UDP." #: src/settings_translation_file.cpp msgid "" @@ -6546,10 +6461,6 @@ msgstr "Extensão do ruído da montanha de passo" msgid "Strength of 3D mode parallax." msgstr "Intensidade de paralaxe." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Intensidade de normalmaps gerados." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6644,7 +6555,7 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" -"Texturas em um nó podem ser alinhadas ao próprio nó ou ao mundo.\n" +"Texturas num nó podem ser alinhadas ao próprio nó ou ao mundo.\n" "O modo antigo serve melhor para coisas como maquinas, móveis, etc, enquanto " "o novo faz com que escadas e microblocos encaixem melhor a sua volta.\n" "Entretanto, como essa é uma possibilidade nova, não deve ser usada em " @@ -6656,6 +6567,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "A url para o repositório de conteúdo" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "O identificador do joystick para usar" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6682,7 +6598,7 @@ msgstr "O identificador do joystick para usar" #: src/settings_translation_file.cpp msgid "The length in pixels it takes for touch screen interaction to start." msgstr "" -"A largura em pixels necessária para interação de tela de toque começar." +"A largura em pixels necessária para a interação de ecrã de toque começar." #: src/settings_translation_file.cpp msgid "" @@ -6724,19 +6640,21 @@ msgstr "" "Isto deve ser configurado junto com o alcance_objeto_ativo." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" -"Renderizador de fundo para o irrlight.\n" +"Renderizador de fundo para o Irrlicht.\n" "Uma reinicialização é necessária após alterar isso.\n" -"Note: no android, use o OGLES1 caso em dúvida! O aplicativo pode falhar ao " -"abrir em outro caso.\n" -"Em outras plataformas, OpenGL é recomendo, e é o único driver com suporte a " +"Note: no Android, use o OGLES1 caso em dúvida! A app pode falhar ao abrir em " +"outro caso.\n" +"Em outras plataformas, OpenGL é recomdado, e é o único driver com suporte " +"a \n" "sombreamento atualmente." #: src/settings_translation_file.cpp @@ -6772,6 +6690,12 @@ msgstr "" "pelo despejo \n" "de antigas filas de itens. Um valor 0 desativa a funcionalidade." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6781,10 +6705,10 @@ msgstr "" "quando pressionando uma combinação de botão no joystick." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" "O tempo em segundos entre repetidos cliques direitos ao segurar o botão " "direito do mouse." @@ -6799,9 +6723,9 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" -"A distancia vertical onde o calor cai por 20 caso 'altitude_chill' esteja " -"habilitado. Também é a distancia vertical onde a umidade cai por 10 se " -"'altitude_dry' estiver habilitado." +"A distância vertical onde o calor cai por 20 caso 'altitude_chill' esteja \n" +"ativado. Também é a distância vertical onde a humidade cai por 10 se \n" +"'altitude_dry' estiver ativado." #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." @@ -6855,7 +6779,7 @@ msgstr "Atraso de dica de ferramenta" #: src/settings_translation_file.cpp msgid "Touch screen threshold" -msgstr "Limiar a tela de toque" +msgstr "Limiar o ecrã de toque" #: src/settings_translation_file.cpp msgid "Trees noise" @@ -6947,6 +6871,17 @@ msgstr "" "resolução.\n" "O downscaling correto de gama não é suportado." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Use a filtragem trilinear ao dimensionamento de texturas." @@ -7018,7 +6953,7 @@ msgstr "Velocidade de subida vertical, em nós por segundo." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." -msgstr "Sincronização vertical da tela." +msgstr "Sincronização vertical do ecrã." #: src/settings_translation_file.cpp msgid "Video driver" @@ -7188,6 +7123,12 @@ msgstr "" "Se forem utilizadas fontes freetype, requer suporte a freetype para ser " "compilado." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7300,7 +7241,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "Limite Y máximo de grandes cavernas." +msgstr "Limite Y máximo de grandes cavernas." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." @@ -7335,6 +7276,24 @@ msgstr "Nível Y de terreno inferior e solo oceânico." msgid "Y-level of seabed." msgstr "Nível Y do fundo do mar." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Tempo limite de descarregamento de ficheiro via cURL" @@ -7347,23 +7306,12 @@ msgstr "limite paralelo de cURL" msgid "cURL timeout" msgstr "Tempo limite de cURL" -#~ msgid "Ok" -#~ msgstr "Ok" - -#~ msgid "Back" -#~ msgstr "Voltar" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Descarregando e instalando $1, por favor aguarde..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite de filas emerge no disco" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Força da oclusão paralaxe" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Caminho para onde salvar screenshots." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" +#~ "1 = mapeamento de relevo (mais lento, mais preciso)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7379,9 +7327,42 @@ msgstr "Tempo limite de cURL" #~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " #~ "ponto médio." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Tem a certeza que deseja reiniciar o seu mundo?" + +#~ msgid "Back" +#~ msgstr "Voltar" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Centro do aumento da curva de luz." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Mudanças para a interface do menu principal:\n" +#~ "- Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de " +#~ "pacote de texturas, etc.\n" +#~ "- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " +#~ "texturas. Pode ser \n" +#~ "necessário para ecrãs menores." + +#~ msgid "Config mods" +#~ msgstr "Configurar mods" + +#~ msgid "Configure" +#~ msgstr "Configurar" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7392,6 +7373,9 @@ msgstr "Tempo limite de cURL" #~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." #~ msgstr "Controla a largura dos túneis, um valor menor cria túneis maiores." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Cor do cursor (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Nitidez da escuridão" @@ -7402,6 +7386,13 @@ msgstr "Tempo limite de cURL" #~ "Define áreas de terra flutuante em terreno suavizado.\n" #~ "Terrenos suavizados ocorrem quando o ruído é menor que zero." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Define nível de amostragem de textura.\n" +#~ "Um valor mais alto resulta em mapas normais mais suaves." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7411,12 +7402,50 @@ msgstr "Tempo limite de cURL" #~ "biomas.\n" #~ "Y do limite superior de lava em grandes cavernas." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Descarregando e instalando $1, por favor aguarde..." + #~ msgid "Enable VBO" #~ msgstr "Ativar VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativa o bumpmapping para texturas. Mapas normais devem ser fornecidos " +#~ "pelo pack de\n" +#~ "texturas ou gerado automaticamente.\n" +#~ "Requer que as sombras sejam ativadas." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Ativa mapeamento de tons fílmico" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n" +#~ "Requer texturização bump mapping para ser ativado." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativa mapeamento de oclusão de paralaxe.\n" +#~ "Requer sombreadores ativados." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opção experimental, pode causar espaços visíveis entre blocos\n" +#~ "quando definido com num úmero superior a 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS em menu de pausa" + #~ msgid "Floatland base height noise" #~ msgstr "Altura base de ruído de terra flutuante" @@ -7429,6 +7458,12 @@ msgstr "Tempo limite de cURL" #~ msgid "Gamma" #~ msgstr "Gama" +#~ msgid "Generate Normal Maps" +#~ msgstr "Gerar Normal maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Gerar mapa de normais" + #~ msgid "IPv6 support." #~ msgstr "Suporte IPv6." @@ -7438,18 +7473,106 @@ msgstr "Tempo limite de cURL" #~ msgid "Lightness sharpness" #~ msgstr "Nitidez da iluminação" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite de filas emerge no disco" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Estilo do menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa em modo radar, zoom 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa em modo radar, zoom 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa em modo de superfície, zoom 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa em modo de superfície, zoom 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nome/palavra-passe" + +#~ msgid "No" +#~ msgstr "Não" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Amostragem de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensidade de normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Número de iterações de oclusão de paralaxe." + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Enviesamento do efeito de oclusão de paralaxe, normalmente escala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Escala do efeito de oclusão de paralaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Enviesamento de oclusão paralaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterações de oclusão paralaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modo de oclusão paralaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Escala de Oclusão de paralaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Força da oclusão paralaxe" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Caminho para TrueTypeFont ou bitmap." +#~ msgid "Path to save screenshots at." +#~ msgstr "Caminho para onde salvar screenshots." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projetando dungeons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reiniciar mundo singleplayer" + +#~ msgid "Select Package File:" +#~ msgstr "Selecionar o ficheiro do pacote:" + #~ msgid "Shadow limit" #~ msgstr "Limite de mapblock" +#~ msgid "Start Singleplayer" +#~ msgstr "Iniciar Um Jogador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensidade de normalmaps gerados." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Força do aumento médio da curva de luz." #~ msgid "This font will be used for certain languages." #~ msgstr "Esta fonte será usada para determinados idiomas." +#~ msgid "Toggle Cinematic" +#~ msgstr "Ativar/Desativar câmera cinemática" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7461,9 +7584,21 @@ msgstr "Tempo limite de cURL" #~ "Variação da altura da colina e profundidade do lago no terreno liso da " #~ "Terra Flutuante." +#~ msgid "View" +#~ msgstr "Vista" + +#~ msgid "Waving Water" +#~ msgstr "Água ondulante" + #~ msgid "Waving water" #~ msgstr "Balançar das Ondas" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Limite Y máximo de lava em grandes cavernas." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "" #~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago." @@ -7471,17 +7606,5 @@ msgstr "Tempo limite de cURL" #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem." -#~ msgid "Projecting dungeons" -#~ msgstr "Projetando dungeons" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." - -#~ msgid "Waving Water" -#~ msgstr "Água ondulante" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Limite Y máximo de lava em grandes cavernas." - -#~ msgid "Select Package File:" -#~ msgstr "Selecionar o ficheiro do pacote:" +#~ msgid "Yes" +#~ msgstr "Sim" diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index 79828bdcc..295a59bc5 100644 --- a/po/pt_BR/minetest.po +++ b/po/pt_BR/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Portuguese (Brazil) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2019-12-11 13:36+0000\n" -"Last-Translator: ramon.venson \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"Last-Translator: Victor Barcelos Lacerda \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.5\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Reviver" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Você morreu" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -38,10 +46,6 @@ msgstr "Reconectar" msgid "The server has requested a reconnect:" msgstr "O servidor solicitou uma nova conexão:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Carregando..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Versão do protocolo incompatível. " @@ -54,21 +58,16 @@ msgstr "O servidor obriga o uso do protocolo versão $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "O servidor suporta versões de protocolo entre $1 e $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Tente reabilitar a lista de servidores públicos e verifique sua conexão com " -"a internet." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Nós apenas suportamos a versão de protocolo $1." +msgstr "Suportamos apenas o protocolo de versão $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Nós suportamos as versões de protocolo entre $1 e $2 ." +msgstr "Suportamos protocolos com versões entre $1 e $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Nós suportamos as versões de protocolo entre $1 e $2 ." msgid "Cancel" msgstr "Cancelar" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dependências:" @@ -109,7 +109,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Encontre Mais Mods" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -124,9 +124,8 @@ msgid "No game description provided." msgstr "Nenhuma descrição de jogo disponível." #: builtin/mainmenu/dlg_config_world.lua -#, fuzzy msgid "No hard dependencies" -msgstr "Sem dependências." +msgstr "Sem dependências" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." @@ -153,26 +152,65 @@ msgstr "Mundo:" msgid "enabled" msgstr "habilitado" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" já existe. Gostaria de sobrescrevê-lo?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "As dependências $1 e $2 serão instaladas." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 por $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 baixando,\n" +"$2 na fila" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 baixando..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 dependências obrigatórias não puderam ser encontradas." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 será instalado, e $2 dependências serão ignoradas." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Todos os pacotes" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Já instalado" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Voltar ao menu principal" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgid "Base Game:" +msgstr "Jogo Base:" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "ContentDB não está disponível quando Minetest é compilado sem cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Carregando..." +msgstr "Baixando..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "Falhou em baixar $1" +msgstr "Falha ao baixar $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -183,6 +221,14 @@ msgstr "Jogos" msgid "Install" msgstr "Instalar" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Instalar $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Instalar dependências ausentes" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -190,16 +236,31 @@ msgstr "Modulos (Mods)" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "Nenhum pacote pode ser recuperado" +msgstr "Nenhum pacote pôde ser recuperado" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "Sem resultados" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Buscar" +msgid "No updates" +msgstr "Sem atualizações" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Não encontrado" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Sobrescrever" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Verifique se o jogo base está correto." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Na fila" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -214,8 +275,12 @@ msgid "Update" msgstr "Atualizar" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" +msgid "Update All [$1]" +msgstr "Atualizar tudo [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Veja mais informações em um navegador da web" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -223,45 +288,39 @@ msgstr "Já existe um mundo com o nome \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Terreno adicional" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "Frio de altitude" +msgstr "Altitude fria" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Frio de altitude" +msgstr "Altitude seca" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Ruído do bioma" +msgstr "Transição de bioma" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Ruído do bioma" +msgstr "Biomas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Barulho da caverna" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octavos" +msgstr "Cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Criar" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Monitorização" +msgstr "Decorações" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -269,26 +328,23 @@ msgstr "Baixe um jogo, como Minetest Game, do site minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "Baixe um apartir do site minetest.net" +msgstr "Baixe um a partir do site minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Y mínimo da dungeon" +msgstr "Masmorras (Dungeons)" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Terreno plano" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Densidade da Ilha Flutuante montanhosa" +msgstr "Ilhas flutuantes no céu" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Nível de água" +msgstr "Ilhas flutuantes (experimental)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -296,28 +352,27 @@ msgstr "Jogo" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Gera terrenos não fractais: Oceanos e subterrâneos" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Colinas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Driver de vídeo" +msgstr "Rios húmidos" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Aumenta a humidade perto de rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lagos" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Baixa humidade e calor elevado resultam em rios rasos ou secos" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -325,25 +380,23 @@ msgstr "Gerador de mapa" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "Flags do gerador de mundo" +msgstr "Opções do gerador de mapas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Flags específicas do gerador de mundo V5" +msgstr "Parâmetros específicos do gerador de mapas" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Ruído da montanha" +msgstr "Montanhas" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Fluxo de lama" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Conectar túneis e cavernas" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -351,75 +404,72 @@ msgstr "Nenhum jogo selecionado" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduz calor com a altitude" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduz humidade com a altitude" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Tamanho do Rio" +msgstr "Rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Rios ao nível do mar" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Seed" -msgstr "Seed" +msgstr "Semente (Seed)" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Transição suave entre biomas" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Estruturas que aparecem no terreno (sem efeito em árvores e grama da selva " +"criada pelo v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Estruturas que aparecem no terreno, geralmente árvores e plantas" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperado, Deserto" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperado, Deserto, Selva" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperado, Deserto, Selva, Tundra, Taiga" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Altura do terreno" +msgstr "Erosão na superfície do terreno" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Árvores e relva da selva" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Profundidade do Rio" +msgstr "Variar altura dos rios" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Cavernas muito grandes nas profundezas do subsolo" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "" -"Aviso: O game \"minimal development test\" apenas serve para desenvolvedores." +msgstr "Aviso: O jogo Development Test é projetado para desenvolvedores." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -457,7 +507,7 @@ msgstr "Aceitar" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "Rename Modpack:" -msgstr "Renomear pacote de módulos:" +msgstr "Renomear Modpack:" #: builtin/mainmenu/dlg_rename_modpack.lua msgid "" @@ -465,7 +515,7 @@ msgid "" "override any renaming here." msgstr "" "Esse modpack possui um nome explícito em seu modpack.conf que vai " -"sobrescrever qualquer renomeio aqui." +"sobrescrever qualquer nome aqui." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -483,11 +533,6 @@ msgstr "< Voltar para as configurações" msgid "Browse" msgstr "Procurar" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Cliente" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Desabilitado" @@ -518,7 +563,7 @@ msgstr "Persistência" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "Por favor insira um inteiro válido." +msgstr "Por favor, insira um inteiro válido." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." @@ -526,12 +571,16 @@ msgstr "Por favor, insira um número válido." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Restaurar para o padrão" +msgstr "Restaurar Padrão" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" msgstr "Escala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Buscar" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Selecione o diretório" @@ -589,7 +638,7 @@ msgstr "valor absoluto" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "Padrões" +msgstr "padrão" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -605,34 +654,33 @@ msgstr "$1 (Habilitado)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" -msgstr "$1 módulos" +msgstr "$1 mods" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "Não foi possível instalar $1 para $2" +msgstr "Não foi possível instalar $1 em $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" -"Instalação de módulo: não foi possível encontrar o nome real do módulo: $1" +msgstr "Instalação de mod: não foi possível encontrar o nome real do mod: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" -"Instalação do Mod: não foi possível encontrar o nome da pasta adequado para " +"Instalação de mod: não foi possível encontrar o nome da pasta adequado para " "o modpack $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "Instalar: Tipo de arquivo \"$1\" não suportado ou corrompido" +msgstr "Instalação: Tipo de arquivo \"$1\" não suportado ou corrompido" #: builtin/mainmenu/pkgmgr.lua msgid "Install: file: \"$1\"" -msgstr "Instalar: arquivo: \"$1\"" +msgstr "Instalação: arquivo: \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" -msgstr "Incapaz de encontrar um módulo ou modpack válido" +msgstr "Incapaz de encontrar um mod ou modpack válido" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -644,12 +692,27 @@ msgstr "Não foi possível instalar um jogo como um $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a mod as a $1" -msgstr "Não foi possível instalar um módulo como um $1" +msgstr "Não foi possível instalar um mod como um $1" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a modpack as a $1" msgstr "Não foi possível instalar um modpack como um $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Carregando..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Scripting de cliente está desabilitado" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Tente reativar a lista de servidores públicos e verifique sua conexão com a " +"internet." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Procurar conteúdo online" @@ -660,7 +723,7 @@ msgstr "Conteúdo" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" -msgstr "Desabilitar pacote de texturas" +msgstr "Desabilitar Pacote de Texturas" #: builtin/mainmenu/tab_content.lua msgid "Information:" @@ -668,7 +731,7 @@ msgstr "Informação:" #: builtin/mainmenu/tab_content.lua msgid "Installed Packages:" -msgstr "Pacotes instalados:" +msgstr "Pacotes Instalados:" #: builtin/mainmenu/tab_content.lua msgid "No dependencies." @@ -676,7 +739,7 @@ msgstr "Sem dependências." #: builtin/mainmenu/tab_content.lua msgid "No package description available" -msgstr "Nenhuma descrição do pacote disponível" +msgstr "Nenhuma descrição de pacote disponível" #: builtin/mainmenu/tab_content.lua msgid "Rename" @@ -684,71 +747,75 @@ msgstr "Renomear" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" -msgstr "Desinstalar o pacote" +msgstr "Desinstalar Pacote" #: builtin/mainmenu/tab_content.lua msgid "Use Texture Pack" -msgstr "Usar pacote de texturas" +msgstr "Usar Pacote de Texturas" #: builtin/mainmenu/tab_credits.lua msgid "Active Contributors" -msgstr "Colaboradores ativos" +msgstr "Colaboradores Ativos" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Desenvolvedores principais" +msgstr "Desenvolvedores Principais" #: builtin/mainmenu/tab_credits.lua msgid "Credits" msgstr "Créditos" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Abrir diretório de dados do usuário" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Abre o diretório que contém mundos, jogos, mods fornecidos pelo usuário,\n" +"e pacotes de textura em um gerenciador / navegador de arquivos." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" -msgstr "Colaboradores anteriores" +msgstr "Colaboradores Anteriores" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Desenvolvedores principais anteriores" +msgstr "Desenvolvedores Principais Anteriores" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "Anunciar servidor" +msgstr "Anunciar Servidor" #: builtin/mainmenu/tab_local.lua msgid "Bind Address" -msgstr "Endereço de Bind" +msgstr "Endereço" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Configurar" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "Modo criativo" +msgstr "Modo Criativo" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "Habilitar dano" +msgstr "Habilitar Dano" #: builtin/mainmenu/tab_local.lua msgid "Host Game" -msgstr "Criar Jogo" +msgstr "Hospedar Jogo" #: builtin/mainmenu/tab_local.lua msgid "Host Server" -msgstr "Criar Servidor" +msgstr "Hospedar Servidor" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalar jogos do ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nome / Senha" +msgid "Name" +msgstr "Nome" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -758,6 +825,10 @@ msgstr "Novo" msgid "No world created or selected!" msgstr "Nenhum mundo criado ou selecionado!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Senha" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Jogar" @@ -766,56 +837,60 @@ msgstr "Jogar" msgid "Port" msgstr "Porta" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Selecione Mods" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Selecione um mundo:" #: builtin/mainmenu/tab_local.lua msgid "Server Port" -msgstr "Porta do servidor" +msgstr "Porta do Servidor" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Iniciar o jogo" +msgstr "Iniciar Jogo" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" msgstr "Endereço / Porta" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Conectar" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Modo criativo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Dano habilitado" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "Deletar Favorito" +msgstr "Rem. Favorito" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" -msgstr "Favoritos" +msgstr "Favorito" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Juntar-se ao jogo" +msgstr "Entrar em um Jogo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nome / Senha" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP habilitado" @@ -841,11 +916,7 @@ msgstr "Todas as configurações" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "Antialiasing:" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Você tem certeza que deseja resetar seu mundo um-jogador?" +msgstr "Anti-aliasing:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" @@ -855,10 +926,6 @@ msgstr "Salvar automaticamente o tamanho da tela" msgid "Bilinear Filter" msgstr "Filtragem bi-linear" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump mapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Mudar teclas" @@ -871,10 +938,6 @@ msgstr "Vidro conectado" msgid "Fancy Leaves" msgstr "Folhas com transparência" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Gerar Normal maps" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap (filtro)" @@ -883,10 +946,6 @@ msgstr "Mipmap (filtro)" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Filtro Anisotrópico" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Não" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Sem filtros" @@ -915,18 +974,10 @@ msgstr "Folhas Opacas" msgid "Opaque Water" msgstr "Água opaca" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Oclusão de paralaxe" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partículas" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Resetar mundo um-jogador" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Tela:" @@ -939,6 +990,10 @@ msgstr "Configurações" msgid "Shaders" msgstr "Sombreadores" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Sombreadores (experimental)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Sombreadores(indisponível)" @@ -976,30 +1031,13 @@ msgid "Waving Leaves" msgstr "Folhas Balançam" #: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Waving Liquids" -msgstr "Nós que balancam" +msgstr "Líquidos com ondas" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "Plantas balançam" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Sim" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Configurar Mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Principal" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Iniciar Um jogador" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Erro de conexão (tempo excedido)." @@ -1051,7 +1089,7 @@ msgstr "Nome de jogador muito longo." #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "Por favor escolha um nome!" +msgstr "Por favor, escolha um nome!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " @@ -1059,7 +1097,7 @@ msgstr "Arquivo de senha fornecido falhou em abrir : " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "O caminho do mundo providenciado não existe. " +msgstr "Caminho informado para o mundo não existe: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1087,7 +1125,7 @@ msgstr "- Endereço: " #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "Modo Criativo: " +msgstr "- Modo Criativo: " #: src/client/game.cpp msgid "- Damage: " @@ -1155,53 +1193,37 @@ msgid "Continue" msgstr "Continuar" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Controles:\n" -"\n" -"- %s1: andar para frente\n" -"\n" -"- %s2: andar para trás\n" -"\n" -"- %s3: andar para a esquerda\n" -"\n" -"-%s4: andar para a direita\n" -"\n" -"- %s5: pular/escalar\n" -"\n" -"- %s6: esgueirar/descer\n" -"\n" -"- %s7: soltar item\n" -"\n" -"- %s8: inventário\n" -"\n" +"- %s: mover para frente\n" +"- %s: mover para trás\n" +"- %s: mover para esquerda\n" +"- %s: mover para direita\n" +"- %s: pular/subir\n" +"- %s: cavar/socar\n" +"- %s: colocar/usar\n" +"- %s: andar furtivamente/descer\n" +"- %s: soltar item\n" +"- %s: inventário\n" "- Mouse: virar/olhar\n" -"\n" -"- Botão esquerdo do mouse: cavar/dar soco\n" -"\n" -"- Botão direito do mouse: colocar/usar\n" -"\n" "- Roda do mouse: selecionar item\n" -"\n" -"- %s9: bate-papo\n" +"- %s: bate-papo\n" #: src/client/game.cpp msgid "Creating client..." @@ -1277,7 +1299,7 @@ msgstr "Modo rápido habilitado" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Modo rápido habilitado(note: sem privilégio 'fast')" +msgstr "Modo rápido habilitado (nota: sem o privilégio 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" @@ -1299,16 +1321,6 @@ msgstr "Névoa desabilitada" msgid "Fog enabled" msgstr "Névoa habilitada" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Névoa desabilitada" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Névoa habilitada" - #: src/client/game.cpp msgid "Game info:" msgstr "Informação do jogo:" @@ -1329,16 +1341,6 @@ msgstr "Carregando itens..." msgid "KiB/s" msgstr "KB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Névoa desabilitada" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Dano habilitado" - #: src/client/game.cpp msgid "Media..." msgstr "Mídia..." @@ -1351,34 +1353,6 @@ msgstr "MB/s" msgid "Minimap currently disabled by game or mod" msgstr "Minipapa atualmente desabilitado por jogo ou mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Minimapa escondido" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Minimapa em modo radar, zoom 1x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Minimapa em modo radar, zoom 2x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Minimapa em modo radar, zoom 4x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Minimapa em modo de superfície, zoom 1x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Minimapa em modo de superfície, zoom 2x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Minimapa em modo de superfície, zoom 4x" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Modo atravessar paredes desabilitado" @@ -1423,10 +1397,6 @@ msgstr "Servidor remoto" msgid "Resolving address..." msgstr "Resolvendo os endereços..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Reviver" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Desligando tudo..." @@ -1445,11 +1415,11 @@ msgstr "Som mutado" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Sistema de som está desativado" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Sistema de som não é suportado nesta versão" #: src/client/game.cpp msgid "Sound unmuted" @@ -1468,7 +1438,7 @@ msgstr "Distancia de visualização está no máximo:%d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "Distancia de visualização está no mínima:%d" +msgstr "Alcance de visualização é no mínimo: %d" #: src/client/game.cpp #, c-format @@ -1479,10 +1449,6 @@ msgstr "Volume mudado para %d%%" msgid "Wireframe shown" msgstr "Mostrar wireframe" -#: src/client/game.cpp -msgid "You died" -msgstr "Você morreu" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Zoom atualmente desabilitado por jogo ou mod" @@ -1499,16 +1465,6 @@ msgstr "Conversa oculta" msgid "Chat shown" msgstr "Conversa mostrada" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Conversa oculta" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Conversa mostrada" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Interface escondida" @@ -1789,6 +1745,24 @@ msgstr "Botão X 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimapa escondido" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimapa em modo radar, Zoom %dx" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimapa em modo de superfície, Zoom %dx" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Minimapa em modo de textura" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "As senhas não correspondem!" @@ -1798,7 +1772,7 @@ msgid "Register and Join" msgstr "Registrar e entrar" #: src/gui/guiConfirmRegistration.cpp -#, fuzzy, c-format +#, c-format msgid "" "You are about to join this server with the name \"%s\" for the first time.\n" "If you proceed, a new account using your credentials will be created on this " @@ -1806,11 +1780,12 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"Você está prestes a entrar no servidor em %1$s com o nome \"%2$s\" pela " -"primeira vez. Se continuar, uma nova conta usando suas credenciais será " -"criada neste servidor.\n" -"Por favor, redigite sua senha e clique registrar e entrar para confirmar a " -"criação da conta ou clique em cancelar para abortar." +"Você está prestes a entrar no servidor com o nome \"%s\" pela primeira " +"vez. \n" +"Se continuar, uma nova conta usando suas credenciais será criada neste " +"servidor.\n" +"Por favor, confirme sua senha e clique em \"Registrar e Entrar\" para " +"confirmar a criação da conta, ou clique em \"Cancelar\" para abortar." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1832,26 +1807,6 @@ msgstr "Pulo automático" msgid "Backward" msgstr "Voltar" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Mudar camera" @@ -1916,11 +1871,11 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "Comandos de Local" +msgstr "Comando local" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "Mutar" +msgstr "Mudo" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" @@ -1946,30 +1901,10 @@ msgstr "Esgueirar" msgid "Special" msgstr "Especial" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Especial" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Alternar modo de câmera cinemática" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Alternar modo de câmera cinemática" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Ativar interface" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Alternar voo" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Ativar histórico de conversa" @@ -1995,9 +1930,8 @@ msgid "Toggle noclip" msgstr "Alternar noclip" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle pitchmove" -msgstr "Ativar histórico de conversa" +msgstr "Ativar Voar seguindo a câmera" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -2064,7 +1998,6 @@ msgstr "" "estiver fora do circulo principal." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" "Can be used to move a desired point to (0, 0) to create a\n" @@ -2075,13 +2008,17 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" -"(X,Y,Z) Espaço do fractal a partir centro do mundo em unidades de 'escala'.\n" -"Pode ser usado para mover um ponto desejado para (0, 0) para criar um ponto " -"de spawn apropriado, ou para permitir zoom em um ponto desejado aumentando " -"sua escala.\n" -"O padrão é configurado para ponto de spawn mandelbrot, pode ser necessário " -"altera-lo em outras situações.\n" -"Variam de -2 a 2. Multiplica por \"escala\" para compensação de nós." +"(X,Y,Z) compensação do fractal a partir centro do mundo em unidades de " +"'escala'.\n" +"Pode ser usado para mover um ponto desejado para (0, 0) para criar um\n" +"ponto de spawn flexível ou para permitir zoom em um ponto desejado,\n" +"aumentando 'escala'.\n" +"O padrão é ajustado para um ponto de spawn adequado para conjuntos de\n" +"Mandelbrot com parâmetros padrão, podendo ser necessário alterá-lo em " +"outras \n" +"situações.\n" +"Variam aproximadamente de -2 a 2. Multiplique por 'escala' para compensar em " +"nodes." #: src/settings_translation_file.cpp msgid "" @@ -2095,19 +2032,11 @@ msgid "" msgstr "" "(X,Y,Z) Escala fractal em nós.\n" "Tamanho fractal atual será de 2 a 3 vezes maior.\n" -"Esses números podem ser muito grandes, o fractal não tem que encaixar dentro " -"do mundo.\n" +"Esses números podem ser muito grandes, o fractal\n" +"não tem que encaixar dentro do mundo.\n" "Aumente estes para 'ampliar' nos detalhes do fractal.\n" -"Padrão é para uma forma espremida verticalmente para uma ilha, coloque todos " -"os 3 números iguais para a forma crua." - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" -"1 = mapeamento de relevo (mais lento, mais preciso)." +"Padrão é para uma forma espremida verticalmente para\n" +"uma ilha, coloque todos os 3 números iguais para a forma crua." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -2119,7 +2048,7 @@ msgstr "Ruído 2D que controla o formato/tamanho de colinas." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "Ruído 2D que controla o formato/tamanho de montanhas de etapa." +msgstr "Ruído 2D que controla o formato/tamanho de montanhas de caminhada." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." @@ -2131,12 +2060,13 @@ msgstr "2D noise que controla o tamanho/ocorrência de colinas." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "Ruído 2D que controla o tamanho/ocorrência de montanhas de passo." +msgstr "" +"Ruído 2D que controla o tamanho/ocorrência de intervalos de montanhas de " +"caminhar." #: src/settings_translation_file.cpp -#, fuzzy msgid "2D noise that locates the river valleys and channels." -msgstr "Ruído 2D que controla o formato/tamanho de colinas." +msgstr "Ruído 2D que localiza os vales e canais dos rios." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2147,20 +2077,19 @@ msgid "3D mode" msgstr "modo 3D" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Intensidade de normalmaps" +msgstr "Força de paralaxe do modo 3D" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "barulho 3D que define cavernas gigantes." +msgstr "Ruído 3D que define cavernas gigantes." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" -"barulho 3D que define estrutura de montanha e altura.\n" +"Ruído 3D que define estrutura de montanha e altura.\n" "Também define a estrutura do terreno da montanha das ilhas flutuantes." #: src/settings_translation_file.cpp @@ -2170,6 +2099,12 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Ruído 3D definindo as estruturas de terras flutuantes\n" +"Se alterar da predefinição, a 'escala' do ruído (0.7 por predefinição) pode " +"precisar\n" +"ser ajustada, já que o afunilamento das terras flutuantes funciona melhor " +"quando o ruído tem\n" +"um valor entre -2.0 e 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2238,9 +2173,12 @@ msgid "ABM interval" msgstr "Intervalo do ABM" #: src/settings_translation_file.cpp -#, fuzzy +msgid "ABM time budget" +msgstr "Alocação de tempo do ABM" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "Limite absoluto de filas emergentes" +msgstr "Limite absoluto de filas de blocos para emergir" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2297,6 +2235,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajusta a densidade da camada de ilhas flutuantes.\n" +"Aumente o valor para aumentar a densidade. Pode ser positivo ou negativo.\n" +"Valor = 0.0: 50% do volume é ilhas flutuantes.\n" +"Valor = 2.0 (pode ser maior dependendo do 'mgv7_np_floatland', sempre teste\n" +"para ter certeza) cria uma camada sólida de ilhas flutuantes." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2310,6 +2253,12 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"Altera a curva da luz aplicando-lhe a 'correção gama'.\n" +"Valores altos tornam os níveis médios e baixos de luminosidade mais " +"brilhantes.\n" +"O valor '1.0' mantêm a curva de luz inalterada.\n" +"Isto só tem um efeito significativo sobre a luz do dia e a luz \n" +"artificial, tem pouquíssimo efeito na luz natural da noite." #: src/settings_translation_file.cpp msgid "Always fly and fast" @@ -2349,7 +2298,7 @@ msgstr "Concatenar nome do item a descrição." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "Barulho das Árvores de Macieira" +msgstr "Ruído de Árvores de Macieira" #: src/settings_translation_file.cpp msgid "Arm inertia" @@ -2360,8 +2309,8 @@ msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" -"Inercia dos braços fornece um movimento mais realista dos braços quando a " -"câmera mexe." +"Inercia dos braços, fornece um movimento mais realista dos\n" +"braços quando movimenta a câmera." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2381,14 +2330,18 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" -"Nesta distância, o servidor otimizará agressivamente quais blocos são " -"enviados aos clientes.\n" +"Nesta distância, o servidor otimizará agressivamente quais blocos serão " +"enviados\n" +"aos clientes.\n" "Pequenos valores potencialmente melhoram muito o desempenho, à custa de " -"falhas de renderização visíveis(alguns blocos não serão processados debaixo " -"da água e nas cavernas, bem como às vezes em terra).\n" -"Configure isso como um valor maior do que a " -"distância_máxima_de_envio_do_bloco para desabilitar essa otimização.\n" -"Especificado em barreiras do mapa (16 nós)." +"falhas\n" +"de renderização visíveis (alguns blocos não serão processados debaixo da " +"água e nas\n" +"cavernas, bem como às vezes em terra).\n" +"Configurando isso para um valor maior do que a " +"distância_máxima_de_envio_do_bloco\n" +"para desabilitar essa otimização.\n" +"Especificado em barreiras do mapa (16 nodes)." #: src/settings_translation_file.cpp msgid "Automatic forward key" @@ -2432,11 +2385,11 @@ msgstr "Privilégios básicos" #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "barulho de praia" +msgstr "Ruído de praias" #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "Limitar o barulho da praia" +msgstr "Limiar do ruído de praias." #: src/settings_translation_file.cpp msgid "Bilinear filtering" @@ -2465,24 +2418,20 @@ msgid "Block send optimize distance" msgstr "Distância otimizada de envio de bloco" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho de fonte em negrito e itálico" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold and italic monospace font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho de fonte monoespaçada para negrito e itálico" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold font path" -msgstr "Caminho da fonte" +msgstr "Caminho da fonte em negrito" #: src/settings_translation_file.cpp -#, fuzzy msgid "Bold monospace font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho de fonte monoespaçada em negrito" #: src/settings_translation_file.cpp msgid "Build inside player" @@ -2493,19 +2442,15 @@ msgid "Builtin" msgstr "Embutido" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bump mapping" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" -"Distancia do plano próximo da câmera em nós, entre 0 e 0.5\n" -"A maioria dos usuários não precisarão mudar isto.\n" +"Distancia do plano próximo da câmera em nós, entre 0 e 0.25\n" +"Só funciona em plataformas GLES. A maioria dos usuários não precisarão mudar " +"isto.\n" "Aumentar pode reduzir a ocorrencia de artefatos em GPUs mais fracas.\n" "0.1 = Padrão, 0.25 = Bom valor para tablets fracos." @@ -2523,15 +2468,15 @@ msgstr "Tecla para alternar atualização da câmera" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "Barulho nas caverna" +msgstr "Ruído de cavernas" #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "Barulho na caverna #1" +msgstr "Ruído de cavernas #1" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "Barulho na caverna #2" +msgstr "Ruído de cavernas #2" #: src/settings_translation_file.cpp msgid "Cave width" @@ -2539,11 +2484,11 @@ msgstr "Largura da caverna" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "Barulho na caverna1" +msgstr "Ruídos de Cave1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "Barulho na caverna2" +msgstr "Ruídos de Cave2" #: src/settings_translation_file.cpp msgid "Cavern limit" @@ -2551,7 +2496,7 @@ msgstr "Limite da caverna" #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "Barulho da caverna" +msgstr "Ruído de cavernas" #: src/settings_translation_file.cpp msgid "Cavern taper" @@ -2570,44 +2515,28 @@ msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"Centro da faixa de aumento da curva de luz.\n" +"Onde 0.0 é o nível mínimo de luz, 1.0 é o nível máximo de luz." #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Mudanças para a interface do menu principal:\n" -" - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de pacote " -"de texturas, etc.\n" -"- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " -"texturas. Pode ser necessário para telas menores." - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Tamanho da fonte" +msgstr "Tamanho da fonte do chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tecla de Chat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Nível de log do Debug" +msgstr "Nível de log do chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" msgstr "Limite do contador de mensagens de bate-papo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat message format" -msgstr "Tamanho máximo da mensagem de conversa" +msgstr "Formato da mensagem de chat" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" @@ -2753,6 +2682,10 @@ msgstr "Tamanho vertical do console" msgid "ContentDB Flag Blacklist" msgstr "Lista negra de flags do ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Máximo de downloads simultâneos de ContentDB" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "Url do ContentDB" @@ -2802,6 +2735,9 @@ msgid "" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" +"Controla a largura dos túneis, um valor menor cria túneis mais largos.\n" +"Valor >= 10,0 desabilita completamente a geração de túneis e evita os\n" +"cálculos intensivos de ruído." #: src/settings_translation_file.cpp msgid "Crash message" @@ -2816,16 +2752,24 @@ msgid "Crosshair alpha" msgstr "Alpha do cursor" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Alpha do cursor (o quanto ele é opaco, níveis entre 0 e 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Alpha do cursor (o quanto ele é opaco, níveis entre 0 e 255).\n" +"Também controla a cor da cruz do objeto" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Cor do cursor" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Cor do cursor (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Cor da cruz (R, G, B).\n" +"Também controla a cor da cruz do objeto" #: src/settings_translation_file.cpp msgid "DPI" @@ -2853,7 +2797,7 @@ msgstr "Tecla de abaixar volume" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgstr "Diminua isto para aumentar a resistência do líquido ao movimento." #: src/settings_translation_file.cpp msgid "Dedicated server step" @@ -2888,9 +2832,8 @@ msgid "Default report format" msgstr "Formato de reporte padrão" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Jogo padrão" +msgstr "Tamanho padrão de stack" #: src/settings_translation_file.cpp msgid "" @@ -2931,22 +2874,13 @@ msgstr "Define estruturas de canais de grande porte (rios)." msgid "Defines location and terrain of optional hills and lakes." msgstr "Define localizações e terrenos de morros e lagos opcionais." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Define processo amostral de textura.\n" -"Um valor mais alto resulta em mapas de normais mais suaves." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Define o nível base do solo." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the depth of the river channel." -msgstr "Define o nível base do solo." +msgstr "Define a profundidade do canal do rio." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." @@ -2955,14 +2889,12 @@ msgstr "" "ilimitado)." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river channel." -msgstr "Define estruturas de canais de grande porte (rios)." +msgstr "Define a largura do canal do rio." #: src/settings_translation_file.cpp -#, fuzzy msgid "Defines the width of the river valley." -msgstr "Define áreas onde na árvores têm maçãs." +msgstr "Define a largura do vale do rio." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." @@ -3002,26 +2934,29 @@ msgid "" "Description of server, to be displayed when players join and in the " "serverlist." msgstr "" -"Descrição do servidor, a ser exibida quando os jogadores se se conectarem e " -"na lista de servidores." +"Descrição do servidor, a ser exibida quando os jogadores se conectarem e na " +"lista de servidores." #: src/settings_translation_file.cpp msgid "Desert noise threshold" msgstr "Limite do ruído de deserto" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" -"Deserto ocorre quando \"np_biome\" excede esse valor.\n" -"Quando o novo sistema de biomas está habilitado, isso é ignorado." +"Os desertos ocorrem quando np_biome excede este valor.\n" +"Quando a marcação 'snowbiomes' está ativada, isto é ignorado." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" msgstr "Dessincronizar animação do bloco" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Tecla para escavar" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Partículas de Escavação" @@ -3063,15 +2998,16 @@ msgid "Dungeon minimum Y" msgstr "Y mínimo da dungeon" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dungeon noise" -msgstr "Y mínimo da dungeon" +msgstr "Ruído de masmorra" #: src/settings_translation_file.cpp msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." msgstr "" +"Habilitar suporte IPv6 (tanto para cliente quanto para servidor).\n" +"Necessário para que as conexões IPv6 funcionem." #: src/settings_translation_file.cpp msgid "" @@ -3086,7 +3022,8 @@ msgid "Enable console window" msgstr "Habilitar janela de console" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Habilitar modo criativo para mundos novos." #: src/settings_translation_file.cpp @@ -3160,6 +3097,8 @@ msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" +"Ativa vertex buffer objects.\n" +"Isso deve melhorar muito a performance gráfica." #: src/settings_translation_file.cpp msgid "" @@ -3170,14 +3109,14 @@ msgstr "" "Por exemplo: 0 para não ver balançando; 1.0 para normal; 2.0 para duplo." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Enable/disable running an IPv6 server.\n" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" "Habilitar/desabilitar a execução de um IPv6 do servidor. \n" -"Ignorado se bind_address estiver definido." +"Ignorado se bind_address estiver definido.\n" +"Precisa de enable_ipv6 para ser ativado." #: src/settings_translation_file.cpp msgid "" @@ -3186,23 +3125,16 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"Permite o mapeamento de tom do filme 'Uncharted 2', de Hable.\n" +"Simula a curva de tons do filme fotográfico e como isso se aproxima da\n" +"aparência de imagens de alto alcance dinâmico (HDR). O contraste de médio " +"alcance é ligeiramente\n" +"melhorado, os destaques e as sombras são gradualmente comprimidos." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." msgstr "Habilita itens animados no inventário." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Ativar texturização bump mapping para texturas. Normalmaps precisam ser " -"fornecidos pelo\n" -"pacote de textura ou a necessidade de ser auto-gerada.\n" -"Requer shaders a serem ativados." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Ativar armazenamento em cache de direção de face girada das malhas." @@ -3211,22 +3143,6 @@ msgstr "Ativar armazenamento em cache de direção de face girada das malhas." msgid "Enables minimap." msgstr "Habilitar minimapa." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Ativa geração de normalmap (efeito de relevo) ao voar.\n" -"Requer texturização bump mapping para ser ativado." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Ativar mapeamento de oclusão de paralaxe.\n" -"Requer shaders a serem ativados." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3234,6 +3150,11 @@ msgid "" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" +"Ativa o sistema de som.\n" +"Se desativado, isso desabilita completamente todos os sons em todos os " +"lugares\n" +"e os controles de som dentro do jogo se tornarão não funcionais.\n" +"Mudar esta configuração requer uma reinicialização." #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" @@ -3243,14 +3164,6 @@ msgstr "Intervalo de exibição dos dados das analizes do motor" msgid "Entity methods" msgstr "Metodos de entidade" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Opção experimental, pode causar espaços visíveis entre blocos\n" -"quando definido como número maior do que 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3260,10 +3173,18 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Expoente de estreitamento das ilhas flutuantes. Altera o comportamento de " +"afilamento.\n" +"Valor = 1.0 cria um afunilamento linear uniforme.\n" +"Valores> 1.0 criam um estreitamento suave adequado para as ilhas flutuantes\n" +"padrão (separadas).\n" +"Valores <1.0 (por exemplo 0.25) criam um nível de superfície mais definido " +"com\n" +"planícies mais planas, adequadas para uma camada sólida de ilhas flutuantes." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS no menu de pausa" +msgid "FPS when unfocused or paused" +msgstr "FPS quando o jogo é pausado ou perde o foco" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3278,9 +3199,8 @@ msgid "Fall bobbing factor" msgstr "Fator de balanço em queda" #: src/settings_translation_file.cpp -#, fuzzy msgid "Fallback font path" -msgstr "Fonte Alternativa" +msgstr "Fonte reserva" #: src/settings_translation_file.cpp msgid "Fallback font shadow" @@ -3381,39 +3301,32 @@ msgid "Fixed virtual joystick" msgstr "Joystick virtual fixo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Densidade da Ilha Flutuante montanhosa" +msgstr "Densidade das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Y máximo da dungeon" +msgstr "Y máximo das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Y mínimo da dungeon" +msgstr "Y mínimo das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Ruído base de Ilha Flutuante" +msgstr "Ruído das terras flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Expoente de terras flutuantes montanhosas" +msgstr "Expoente de conicidade das ilhas flutuantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Ruído base de Ilha Flutuante" +msgstr "Distância de afilamento da ilha flutuante" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Nível de água" +msgstr "Nível de água da ilha flutuante" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3437,11 +3350,11 @@ msgstr "Tecla de comutação de névoa" #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "" +msgstr "Fonte em negrito por padrão" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "" +msgstr "Fonte em itálico por padrão" #: src/settings_translation_file.cpp msgid "Font shadow" @@ -3457,21 +3370,24 @@ msgstr "Tamanho da fonte" #: src/settings_translation_file.cpp msgid "Font size of the default font in point (pt)." -msgstr "" +msgstr "Tamanho da fonte padrão em pontos (pt)." #: src/settings_translation_file.cpp msgid "Font size of the fallback font in point (pt)." -msgstr "" +msgstr "Tamanho da fonte reserva em pontos (pt)." #: src/settings_translation_file.cpp msgid "Font size of the monospace font in point (pt)." -msgstr "" +msgstr "Tamanho da fonte de largura fixa em pontos (pt)." #: src/settings_translation_file.cpp msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Tamanho da fonte do texto de bate-papo recente e do prompt do bate-papo em " +"pontos (pt).\n" +"O valor 0 irá utilizar o tamanho padrão de fonte." #: src/settings_translation_file.cpp msgid "" @@ -3479,6 +3395,9 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Formato das mensagem de bate-papo dos jogadores. Os textos abaixo são " +"palavras-chave válidas:\n" +"@name, @message, @timestamp (opcional)" #: src/settings_translation_file.cpp msgid "Format of screenshots." @@ -3590,10 +3509,6 @@ msgstr "Filtro de escala da GUI" msgid "GUI scaling filter txr2img" msgstr "Filtro txr2img de escala da GUI" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Gerar mapa de normais" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Chamadas de retorno Globais" @@ -3611,18 +3526,20 @@ msgstr "" "todas as decorações." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." -msgstr "Curva gradiente de iluminaçao no nível de luz maximo." +msgstr "" +"Gradiente da curva de luz no nível de luz máximo.\n" +"Controla o contraste dos níveis de luz mais altos." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." -msgstr "Curva gradiente de iluminação no nível de luz mínimo." +msgstr "" +"Gradiente da curva de luz no nível de luz mínimo.\n" +"Controla o contraste dos níveis de luz mais baixos." #: src/settings_translation_file.cpp msgid "Graphics" @@ -3653,19 +3570,16 @@ msgid "HUD toggle key" msgstr "Tecla de comutação HUD" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Manipulação para chamadas de API Lua reprovados:\n" -"- legacy: (tentar) imitar o comportamento antigo (padrão para a " -"liberação).\n" -"- log: imitação e log de retraçamento da chamada reprovada (padrão para " -"depuração).\n" -"- error: abortar no uso da chamada reprovada (sugerido para " +"Lidando com funções obsoletas da API Lua:\n" +"-...none: não registra funções obsoletas.\n" +"-...log: imita e registra as funções obsoletas chamadas (padrão).\n" +"-...error: aborta quando chama uma função obsoleta (sugerido para " "desenvolvedores de mods)." #: src/settings_translation_file.cpp @@ -3700,7 +3614,7 @@ msgstr "Ruído de altura" #: src/settings_translation_file.cpp msgid "Height select noise" -msgstr "Parâmetros de ruido de seleção de altura do gerador de mundo v6" +msgstr "Parâmetros de ruido de seleção de altura" #: src/settings_translation_file.cpp msgid "High-precision FPU" @@ -3708,11 +3622,11 @@ msgstr "FPU de alta precisão" #: src/settings_translation_file.cpp msgid "Hill steepness" -msgstr "Esparsamento das colinas no gerador de mundo plano" +msgstr "Inclinação dos morros" #: src/settings_translation_file.cpp msgid "Hill threshold" -msgstr "Threshold das colinas no gerador de mundo plano" +msgstr "Limite das colinas no gerador de mundo plano" #: src/settings_translation_file.cpp msgid "Hilliness1 noise" @@ -3739,18 +3653,24 @@ msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal no ar ao saltar ou cair,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal e vertical no modo rápido,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Aceleração horizontal e vertical no solo ou ao escalar,\n" +"em nós por segundo por segundo." #: src/settings_translation_file.cpp msgid "Hotbar next key" @@ -3898,6 +3818,9 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" +"A velocidade com que as ondas líquidas se movem. Maior = mais rápido.\n" +"Se negativo, as ondas líquidas se moverão para trás.\n" +"Requer que a ondulação de líquidos esteja ativada." #: src/settings_translation_file.cpp msgid "" @@ -4038,6 +3961,12 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Se o tamanho do arquivo debug.txt exceder o número de megabytes " +"especificado\n" +"nesta configuração quando ele for aberto, o arquivo é movido para debug." +"txt.1,\n" +"excluindo um debug.txt.1 mais antigo, se houver.\n" +"debug.txt só é movido se esta configuração for positiva." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." @@ -4075,15 +4004,15 @@ msgstr "Tecla de aumentar volume" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Velocidade vertical inicial ao saltar, em nós por segundo." #: src/settings_translation_file.cpp msgid "" "Instrument builtin.\n" "This is usually only needed by core/builtin contributors" msgstr "" -"Monitoração imbutida.\n" -"Isto é usualmente apenas nessesário por contribuidores core/builtin" +"Monitoração embutida.\n" +"Isto é necessário apenas por contribuidores core/builtin" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." @@ -4144,14 +4073,12 @@ msgid "Invert vertical mouse movement." msgstr "Inverta o movimento vertical do mouse." #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho da fonte em itálico" #: src/settings_translation_file.cpp -#, fuzzy msgid "Italic monospace font path" -msgstr "Caminho de fonte monoespaçada" +msgstr "Caminho da fonte em itálico monoespaçada" #: src/settings_translation_file.cpp msgid "Item entity TTL" @@ -4182,6 +4109,10 @@ msgstr "ID do Joystick" msgid "Joystick button repetition interval" msgstr "Intervalo de repetição do botão do Joystick" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "\"Zona morta\" do joystick" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Sensibilidade do frustum do Joystick" @@ -4278,7 +4209,17 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para diminuir o alcance de visão.\n" +"Tecla para diminuir o volume.\n" +"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para escavar. \n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4308,7 +4249,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para aumentar o alcance de visão.\n" +"Tecla para aumentar o volume.\n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4380,7 +4321,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para pular. \n" +"Tecla para por o som em mudo. \n" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4424,6 +4365,16 @@ msgstr "" "Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para colocar objetos. \n" +"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4982,15 +4933,15 @@ msgstr "Profundidade de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "" +msgstr "Número máximo de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "" +msgstr "Número mínimo de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Proporção inundada de cavernas grandes" #: src/settings_translation_file.cpp msgid "Large chat console key" @@ -5026,13 +4977,12 @@ msgstr "" "geralmente atualizados em rede." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Definido como true habilita balanço folhas.\n" -"Requer sombreadores serem ativados." +"Comprimento das ondas líquidas.\n" +"Requer que a ondulação de líquidos esteja ativada." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" @@ -5067,34 +5017,28 @@ msgstr "" "- verbose" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost" -msgstr "Aumento leve da curva de luz" +msgstr "Aumento da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost center" -msgstr "Centro do aumento leve da curva de luz" +msgstr "Centro do aumento da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost spread" -msgstr "Extensão do aumento leve da curva de luz" +msgstr "Extensão do aumento da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve gamma" -msgstr "Aumento leve da curva de luz" +msgstr "Gamma da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve high gradient" -msgstr "Aumento leve da curva de luz" +msgstr "Gradiente alto da curva de luz" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve low gradient" -msgstr "Centro do aumento leve da curva de luz" +msgstr "Gradiente baixo da curva de luz" #: src/settings_translation_file.cpp msgid "" @@ -5138,9 +5082,8 @@ msgid "Liquid queue purge time" msgstr "Tempo para limpar a lista de espera para a atualização de líquidos" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" -msgstr "Velocidade do afundamento de liquido" +msgstr "Afundamento do líquido" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." @@ -5173,18 +5116,13 @@ msgid "Lower Y limit of dungeons." msgstr "Menor limite Y de dungeons." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Menor limite Y de dungeons." +msgstr "Menor limite Y de ilhas flutuantes." #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "Menu principal do script" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Estilo do menu principal" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5200,6 +5138,14 @@ msgstr "Faz o DirectX trabalhar com LuaJIT. Desative se causa problemas." msgid "Makes all liquids opaque" msgstr "Torna todos os líquidos opacos" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Nível de Compressão de Mapa no Armazenamento em Disco" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Nível de Compressão do Mapa na Transferência em Rede" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Diretório do mapa" @@ -5209,23 +5155,22 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "Atributos de geração de mapa específicos ao gerador Carpathian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"Atributos de geração de mapas específicos para o gerador de mundo plano.\n" +"Atributos de geração de mapas específicos para o Gerador de mundo Plano.\n" "Lagos e colinas ocasionalmente podem ser adicionados ao mundo plano." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" -"Atributos de geração de mapa específicos ao gerador V7.\n" -"'ridges' habilitam os rios." +"Atributos de geração de mapas específicos para o Gerador de mundo Fractal.\n" +"'terreno' permite a geração de terreno não fractal:\n" +"oceano, ilhas e subterrâneos." #: src/settings_translation_file.cpp msgid "" @@ -5240,7 +5185,7 @@ msgstr "" "'altitude_chill':Reduz o calor com a altitude.\n" "'humid_rivers':Aumenta a umidade em volta dos rios.\n" "'profundidade_variada_rios': Se habilitado, baixa umidade e alto calor faz " -"com que que rios se tornem mais rasos e eventualmente sumam.\n" +"com que rios se tornem mais rasos e eventualmente sumam.\n" "'altitude_dry': Reduz a umidade com a altitude." #: src/settings_translation_file.cpp @@ -5248,28 +5193,29 @@ msgid "Map generation attributes specific to Mapgen v5." msgstr "Atributos de geração de mapa específicos ao gerador V5." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v6.\n" "The 'snowbiomes' flag enables the new 5 biome system.\n" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" -"Atributos de geração de mapas específico para o gerador de mundo v6.\n" -" O 'snowbiomes' flag habilita o novo sistema de bioma 5.\n" -"Quando o sistema de novo bioma estiver habilitado, selvas são " -"automaticamente habilitadas e a flag 'jungles' é ignorada." +"Atributos de geração de mapas específicos para Gerador de mapas v6.\n" +"A opção 'snowbiomes' habilita o novo sistema de 5 biomas.\n" +"Quando a opção 'snowbiomes' está ativada, as selvas são ativadas " +"automaticamente e\n" +"a opção 'jungles' é ignorada." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Atributos de geração de mapa específicos ao gerador V7.\n" -"'ridges' habilitam os rios." +"Atributos de geração de mapas específicos para Gerador de mapas v7.\n" +"'ridges': rios.\n" +"'floatlands': massas de terra flutuantes na atmosfera.\n" +"'caverns': cavernas gigantes no subsolo." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5318,9 +5264,8 @@ msgid "Mapgen Fractal" msgstr "Gerador de mundo Fractal" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mapgen Fractal specific flags" -msgstr "Flags específicas do gerador de mundo plano" +msgstr "Opções específicas do Gerador de mapas Fractal" #: src/settings_translation_file.cpp msgid "Mapgen V5" @@ -5387,8 +5332,9 @@ msgid "Maximum FPS" msgstr "FPS máximo" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Máximo FPS quando o jogo é pausado." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"FPS máximo quando a janela não está com foco, ou quando o jogo é pausado." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5400,17 +5346,19 @@ msgstr "Largura máxima da hotbar" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" +msgstr "Limite máximo do número aleatório de cavernas grandes por mapchunk." #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "Limite máximo do número aleatório de cavernas pequenas por mapchunk." #: src/settings_translation_file.cpp msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Resistência líquida máxima. Controla desaceleração ao entrar num líquido\n" +"em alta velocidade." #: src/settings_translation_file.cpp msgid "" @@ -5428,25 +5376,32 @@ msgstr "" "Número máximo de blocos que podem ser enfileirados para o carregamento." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" -"Número máximo de blocos para serem enfileirados que estão a ser gerados.\n" -"Definido em branco para uma quantidade apropriada ser escolhida " -"automaticamente." +"Número máximo de blocos para serem enfileirado, dos que estão para ser " +"gerados.\n" +"Esse limite é forçado para cada jogador." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" -"Número máximo de blocos para ser enfileirado que serão carregados do " -"arquivo.\n" -"Definido em branco para uma quantidade apropriada ser escolhida " -"automaticamente." +"Número máximo de blocos para serem enfileirado, dos que estão para ser " +"carregados do arquivo.\n" +"Esse limite é forçado para cada jogador." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Número máximo de downloads paralelos. Downloads excedendo esse limite " +"esperarão numa fila.\n" +"Deve ser menor que curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5543,7 +5498,7 @@ msgstr "Método usado para destacar o objeto selecionado." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Nível mínimo de registro a ser impresso no chat." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5558,13 +5513,12 @@ msgid "Minimap scan height" msgstr "Altura de escaneamento do minimapa" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "Ruído 3D que determina o número de cavernas por pedaço de mapa." +msgstr "Limite mínimo do número aleatório de grandes cavernas por mapchunk." #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "Limite mínimo do número aleatório de cavernas pequenas por mapchunk." #: src/settings_translation_file.cpp msgid "Minimum texture size" @@ -5635,19 +5589,17 @@ msgid "Mute sound" msgstr "Mutar som" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Name of map generator to be used when creating a new world.\n" "Creating a world in the main menu will override this.\n" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" -"Nome do gerador de mapa usando quando criar um novo mundo.\n" -"Criar um mundo no menu principal vai sobrescrever isto.\n" -"Geradores de mapa estáveis atualmente:\n" -"v5, v6, v7(exceto terras flutuantes), singlenode.\n" -"'estável' significa que a forma do terreno em um mundo existente não será " -"alterado no futuro. Note que biomas definidos por jogos ainda podem mudar." +"Nome do gerador de mapas a ser usado ao criar um novo mundo.\n" +"Criar um mundo no menu principal substituirá isso.\n" +"Geradores de mapa atuais em um estado altamente instável:\n" +"- A opção de ilhas flutuantes do Gerador de mapas de v7 (desabilitado por " +"padrão)." #: src/settings_translation_file.cpp msgid "" @@ -5668,9 +5620,8 @@ msgstr "" "servidores." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near plane" -msgstr "plano próximo" +msgstr "Plano próximo" #: src/settings_translation_file.cpp msgid "Network" @@ -5708,20 +5659,11 @@ msgstr "Intervalo de NodeTimer" msgid "Noises" msgstr "Ruidos" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Amostragem de normalmaps" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Intensidade de normalmaps" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Número de seguimentos de emersão" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5734,17 +5676,19 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" -"Número de thread emergentes para usar.\n" -"Vazio ou valor 0:\n" -"- Seleção automática. O número de threads emergentes será 'número de " -"processadores - 2', com limite mínimo de 1.\n" +"Número de threads de emersão a serem usadas.\n" +"Valor 0:\n" +"- Seleção automática. O número de threads de emersão será\n" +"- 'número de processadores - 2', com um limite inferior de 1.\n" "Qualquer outro valor:\n" -"- Especifica o número de threads emergentes com limite mínimo de 1.\n" -"Alerta: aumentando o número de threads emergentes aumenta a velocidade do " -"gerador, mas pode prejudicar o desemepenho interferindo com outros " -"processos, especialmente in singleplayer e/ou quando executando código lua " -"em 'on_generated'.\n" -"Para muitos usuários a opção mais recomendada é 1." +"- Especifica o número de threads de emersão, com um limite inferior de 1.\n" +"AVISO: Aumentar o número de threads de emersão aumenta a velocidade do motor " +"de\n" +"geração de mapas, mas isso pode prejudicar o desempenho do jogo, " +"interferindo com outros\n" +"processos, especialmente em singleplayer e / ou ao executar código Lua em " +"eventos\n" +"'on_generated'. Para muitos usuários, a configuração ideal pode ser '1'." #: src/settings_translation_file.cpp msgid "" @@ -5757,10 +5701,6 @@ msgstr "" "Esta é uma troca entre sobrecarga de transação do sqlite e consumo de " "memória (4096 = 100 MB, como uma regra de ouro)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Número de iterações de oclusão de paralaxe." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Repositório de conteúdo online" @@ -5772,12 +5712,12 @@ msgstr "Líquidos Opacos" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" +msgstr "Opacidade (alpha) das sombras atrás da fonte padrão, entre 0 e 255." #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgstr "Opacidade (alpha) da sombra atrás da fonte alternativa, entre 0 e 255." #: src/settings_translation_file.cpp msgid "" @@ -5788,34 +5728,6 @@ msgstr "" "Abre o menu de pausa quando o foco da janela é perdido.Não pausa se um " "formspec está aberto." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Viés geral do efeito de oclusão de paralaxe, geralmente de escala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Escala global do efeito de oclusão de paralaxe." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Oclusão de paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Viés de oclusão de paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Iterações de oclusão de paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Modo de oclusão de paralaxe" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Escala de Oclusão de paralaxe" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5824,12 +5736,20 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" +"Caminho da fonte alternativa.\n" +"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n" +"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap " +"ou de vetores XML.\n" +"Essa fonte será usada por certas línguas ou se a padrão não estiver " +"disponível." #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Caminho para salvar capturas de tela. Pode ser absoluto ou relativo.\n" +"A pasta será criada se já não existe." #: src/settings_translation_file.cpp msgid "" @@ -5852,6 +5772,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" +"Caminho para a fonte padrão.\n" +"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n" +"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap " +"ou de vetores XML.\n" +"A fonte alternativa será usada se não for possível carregar essa." #: src/settings_translation_file.cpp msgid "" @@ -5860,6 +5785,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" +"Caminho para a fonte monoespaçada.\n" +"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n" +"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap " +"ou de vetores XML.\n" +"Essa fonte será usada, por exemplo, no console e na tela de depuração." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" @@ -5868,11 +5798,11 @@ msgstr "Pausa quando o foco da janela é perdido" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" msgstr "" +"Limite de blocos na fila de espera de carregamento do disco por jogador" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "Limite de filas emerge para gerar" +msgstr "Limite por jogador de blocos enfileirados para gerar" #: src/settings_translation_file.cpp msgid "Physics" @@ -5886,6 +5816,14 @@ msgstr "Tecla de movimento pitch" msgid "Pitch move mode" msgstr "Modo movimento pitch" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Tecla de colocar" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Intervalo de repetição da ação colocar" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5954,7 +5892,7 @@ msgstr "Analizando" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Endereço do Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -5963,10 +5901,14 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Endereço do Prometheus\n" +"Se o minetest for compilado com a opção ENABLE_PROMETHEUS ativa,\n" +"habilita a obtenção de métricas do Prometheus neste endereço.\n" +"As métricas podem ser obtidas em http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." -msgstr "" +msgstr "Proporção de cavernas grandes que contém líquido." #: src/settings_translation_file.cpp msgid "" @@ -5995,9 +5937,8 @@ msgid "Recent Chat Messages" msgstr "Mensagens de chat recentes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Diretorio de reporte" +msgstr "Caminho da fonte regular" #: src/settings_translation_file.cpp msgid "Remote media" @@ -6070,18 +6011,12 @@ msgid "Right key" msgstr "Tecla direita" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Intervalo de repetição do clique direito" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "River channel depth" -msgstr "Profundidade do Rio" +msgstr "Profundidade do canal do rio" #: src/settings_translation_file.cpp -#, fuzzy msgid "River channel width" -msgstr "Profundidade do Rio" +msgstr "Largura do canal do rio" #: src/settings_translation_file.cpp msgid "River depth" @@ -6096,9 +6031,8 @@ msgid "River size" msgstr "Tamanho do Rio" #: src/settings_translation_file.cpp -#, fuzzy msgid "River valley width" -msgstr "Profundidade do Rio" +msgstr "Largura do vale do rio" #: src/settings_translation_file.cpp msgid "Rollback recording" @@ -6214,7 +6148,6 @@ msgid "Selection box width" msgstr "Largura da caixa de seleção" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" @@ -6307,31 +6240,28 @@ msgstr "" "clientes." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" -"Definido como true habilita balanço folhas.\n" -"Requer sombreadores serem ativados." +"Definido como true habilita o balanço das folhas.\n" +"Requer que os sombreadores estejam ativados." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Definido como true permite ondulação da água.\n" -"Requer sombreadores seres ativados." +"Definido como true permite ondulação de líquidos (como a água).\n" +"Requer que os sombreadores estejam ativados." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" "Definido como true permite balanço de plantas.\n" -"Requer sombreadores serem ativados." +"Requer que os sombreadores estejam ativados." #: src/settings_translation_file.cpp msgid "Shader path" @@ -6349,18 +6279,20 @@ msgstr "" "Só funcionam com o modo de vídeo OpenGL." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." -msgstr "Fonte de compensador de sombra, se 0 então sombra não será desenhada." +msgstr "" +"Distância (em pixels) da sombra da fonte padrão. Se 0, então a sombra não " +"será desenhada." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." -msgstr "Fonte de compensador de sombra, se 0 então sombra não será desenhada." +msgstr "" +"Distância (em pixels) da sombra da fonte de backup. Se 0, então nenhuma " +"sombra será desenhada." #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." @@ -6374,6 +6306,19 @@ msgstr "Mostrar informações de depuração" msgid "Show entity selection boxes" msgstr "Mostrar as caixas de seleção entidades" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Mostrar caixas de seleção de entidades\n" +"É necessário reiniciar após alterar isso." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Fonte em negrito por padrão" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Mensagem de desligamento" @@ -6413,11 +6358,11 @@ msgstr "Inclinação e preenchimento trabalham juntos para modificar as alturas. #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "" +msgstr "Número máximo de cavernas pequenas" #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "" +msgstr "Número mínimo de cavernas pequenas" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -6460,7 +6405,7 @@ msgstr "Velocidade da furtividade" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Velocidade ao esgueirar-se, em nós (blocos) por segundo." #: src/settings_translation_file.cpp msgid "Sound" @@ -6493,16 +6438,19 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Especifica o tamanho padrão da pilha de nós, items e ferramentas.\n" +"Note que mods e games talvez definam explicitamente um tamanho para certos " +"(ou todos) os itens." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Spread of light curve boost range.\n" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" -"Extensão do aumento médio da curva da luz.\n" -"Desvio padrão do aumento médio gaussiano." +"Ampliação da faixa de aumento da curva de luz.\n" +"Controla a largura do intervalo a ser aumentado.\n" +"O desvio padrão da gaussiana do aumento da curva de luz." #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6521,13 +6469,8 @@ msgid "Step mountain spread noise" msgstr "Extensão do ruído da montanha de passo" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "Intensidade de paralaxe." - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Intensidade de normalmaps gerados." +msgstr "Força da paralaxe do modo 3D." #: src/settings_translation_file.cpp msgid "" @@ -6535,6 +6478,9 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"Aumento da força da curva de luz.\n" +"Os 3 parâmetros de 'aumento' definem uma faixa\n" +"da curva de luz que é aumentada em brilho." #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6557,6 +6503,21 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Nível de superfície de água opcional colocada em uma camada sólida de " +"flutuação.\n" +"A água está desativada por padrão e só será colocada se este valor for " +"definido\n" +"acima de 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (o início do\n" +"afilamento superior).\n" +"*** AVISO, POTENCIAL PERIGO PARA OS MUNDOS E DESEMPENHO DO SERVIDOR ***:\n" +"Ao habilitar a colocação de água, as áreas flutuantes devem ser configuradas " +"e testadas\n" +"para ser uma camada sólida, definindo 'mgv7_floatland_density' para 2.0 (ou " +"outro\n" +"valor necessário dependendo de 'mgv7_np_floatland'), para evitar\n" +"fluxo de água extremo intensivo do servidor e para evitar grandes inundações " +"do\n" +"superfície do mundo abaixo." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6635,6 +6596,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "A url para o repositório de conteúdo" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "A zona morta do joystick" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6671,6 +6636,11 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"A altura máxima da superfície de líquidos com ondas.\n" +"4.0 = Altura da onda é dois nós.\n" +"0.0 = Onda nem se move.\n" +"O padrão é 1.0 (meio nó).\n" +"Requer ondas em líquidos habilitada." #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6686,7 +6656,6 @@ msgstr "" "servidor e dos modificadores." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6696,11 +6665,12 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"O raio do volume de blocos em volta de cada jogador que é sujeito a coisas " -"de bloco ativo, em mapblocks (16 nós).\n" -"Em blocos ativos, objetos são carregados e ABMs executam.\n" -"Isto é também o alcançe mínimo em que objetos ativos(mobs) são mantidos.\n" -"Isto deve ser configurado junto com o alcance_objeto_ativo." +"O raio do volume dos blocos em torno de cada jogador que está sujeito ao\n" +"material de bloco ativo, declarado em mapblocks (16 nós).\n" +"Nos blocos ativos, os objetos são carregados e os ABMs executados.\n" +"Este também é o intervalo mínimo no qual os objetos ativos (mobs) são " +"mantidos.\n" +"Isso deve ser configurado junto com active_object_send_range_blocks." #: src/settings_translation_file.cpp msgid "" @@ -6708,15 +6678,15 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" -"Renderizador de fundo para o irrlight.\n" -"Uma reinicialização é necessária após alterar isso.\n" -"Note: no android, use o OGLES1 caso em dúvida! O aplicativo pode falhar ao " -"abrir em outro caso.\n" -"Em outras plataformas, OpenGL é recomendo, e é o único driver com suporte a " -"sombreamento atualmente." +"O back-end de renderização para Irrlicht.\n" +"É necessário reiniciar após alterar isso.\n" +"Nota: No Android, use OGLES1 se não tiver certeza! O aplicativo pode falhar " +"ao iniciar de outra forma.\n" +"Em outras plataformas, OpenGL é recomendado.\n" +"Shaders são suportados por OpenGL (somente desktop) e OGLES2 (experimental)" #: src/settings_translation_file.cpp msgid "" @@ -6751,6 +6721,14 @@ msgstr "" "pelo despejo \n" "de antigas filas de itens. Um valor 0 desativa a funcionalidade." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"O tempo disponível permitido para ABMs executarem em cada passo (como uma " +"fração do intervalo do ABM)" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6761,12 +6739,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" -"O tempo em segundos entre repetidos cliques direitos ao segurar o botão " -"direito do mouse." +"O tempo em segundos que leva entre as colocações de nó repetidas ao segurar\n" +"o botão de colocar." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6846,7 +6823,6 @@ msgid "Trilinear filtering" msgstr "Filtragem tri-linear" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6869,7 +6845,6 @@ msgid "Undersampling" msgstr "Subamostragem" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Undersampling is similar to using a lower screen resolution, but it applies\n" "to the game world only, keeping the GUI intact.\n" @@ -6877,10 +6852,12 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" -"A subamostragem é semelhante ao uso de resolução de tela menor, mas se " -"aplica apenas ao mundo do jogo, mantendo a GUI (Interface Gráfica do " -"Usuário) intacta. Deve dar um aumento significativo no desempenho ao custo " -"de uma imagem menos detalhada." +"A subamostragem é semelhante a usar uma resolução de tela inferior, mas se " +"aplica\n" +"apenas para o mundo do jogo, mantendo a GUI intacta.\n" +"Deve dar um aumento significativo de desempenho ao custo de uma imagem menos " +"detalhada.\n" +"Valores mais altos resultam em uma imagem menos detalhada." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" @@ -6895,9 +6872,8 @@ msgid "Upper Y limit of dungeons." msgstr "Limite topo Y de dungeons." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Limite topo Y de dungeons." +msgstr "Limite máximo Y para as ilhas flutuantes." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -6926,6 +6902,27 @@ msgstr "" "resolução.\n" "O downscaling correto de gama não é suportado." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Use o anti-serrilhamento de várias amostras (MSAA) para suavizar as bordas " +"do bloco.\n" +"Este algoritmo suaviza a janela de visualização 3D enquanto mantém a imagem " +"nítida,\n" +"mas não afeta o interior das texturas\n" +"(que é especialmente perceptível com texturas transparentes).\n" +"Espaços visíveis aparecem entre os nós quando os sombreadores são " +"desativados.\n" +"Se definido como 0, MSAA é desativado.\n" +"É necessário reiniciar após alterar esta opção." + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Use a filtragem trilinear ao dimensionamento de texturas." @@ -6993,7 +6990,7 @@ msgstr "Controla o esparsamento/altura das colinas." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Velocidade vertical de escalda, em nós por segundo." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." @@ -7038,13 +7035,12 @@ msgid "Volume" msgstr "Volume do som" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Ativar mapeamento de oclusão de paralaxe.\n" -"Requer shaders a serem ativados." +"Volume de todos os sons.\n" +"Requer que o sistema de som esteja ativado." #: src/settings_translation_file.cpp msgid "" @@ -7061,7 +7057,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Velocidade do andar e voar, em nós por segundo." #: src/settings_translation_file.cpp msgid "Walking speed" @@ -7070,6 +7066,7 @@ msgstr "Velocidade de caminhada" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Velocidade do caminhar, voar e escalar no modo rápido, em nós por segundo." #: src/settings_translation_file.cpp msgid "Water level" @@ -7088,22 +7085,18 @@ msgid "Waving leaves" msgstr "Balanço das árvores" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "Nós que balancam" +msgstr "Líquidos ondulantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Altura de balanço da água" +msgstr "Altura da onda nos líquidos ondulantes" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" msgstr "Velocidade de balanço da água" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" msgstr "Comprimento de balanço da água" @@ -7159,14 +7152,20 @@ msgstr "" "texturas." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" -"Se forem utilizadas fontes freetype, requer suporte a freetype para ser " -"compilado." +"Se as fontes FreeType são usadas, requer que suporte FreeType tenha sido " +"compilado.\n" +"Se desativado, fontes de bitmap e de vetores XML são usadas em seu lugar." + +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7207,6 +7206,10 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"Quando mutar os sons. Você pode mutar os sons a qualquer hora, a não ser\n" +"que o sistema de som esteja desabilitado (enable_sound=false).\n" +"No jogo, você pode habilitar o estado de mutado com o botão de mutar\n" +"ou usando o menu de pausa." #: src/settings_translation_file.cpp msgid "" @@ -7293,6 +7296,12 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Distância de Y sobre a qual as ilhas flutuantes diminuem de densidade total " +"para nenhuma densidade.\n" +"O afunilamento começa nesta distância do limite Y.\n" +"Para uma ilha flutuante sólida, isso controla a altura das colinas / " +"montanhas.\n" +"Deve ser menor ou igual a metade da distância entre os limites Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7314,6 +7323,36 @@ msgstr "Nível Y de terreno inferior e solo oceânico." msgid "Y-level of seabed." msgstr "Nível Y do fundo do mar." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Nível de compressão ZLib a ser usada ao salvar mapblocks no disco.\n" +"-1 - Nível de compressão padrão do Zlib\n" +"0 - Nenhuma compressão; o mais rápido\n" +"9 - Melhor compressão; o mais devagar\n" +"(níveis 1-3 usam método \"rápido\" do Zlib, enquanto que 4-9 usam método " +"normal)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Nível de compressão ZLib a ser usada ao mandar mapblocks para o cliente.\n" +"-1 - Nível de compressão padrão do Zlib\n" +"0 - Nenhuma compressão; o mais rápido\n" +"9 - Melhor compressão; o mais devagar\n" +"(níveis 1-3 usam método \"rápido\" do Zlib, enquanto que 4-9 usam método " +"normal)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Tempo limite de download de arquivo via cURL" @@ -7326,23 +7365,12 @@ msgstr "limite paralelo de cURL" msgid "cURL timeout" msgstr "Tempo limite de cURL" -#~ msgid "Ok" -#~ msgstr "Ok" - -#~ msgid "Back" -#~ msgstr "Backspace" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Baixando e instalando $1, por favor aguarde..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Limite de filas emerge no disco" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Insinsidade de oclusão de paralaxe" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Caminho para onde salvar screenshots." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" +#~ "1 = mapeamento de relevo (mais lento, mais preciso)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7358,9 +7386,41 @@ msgstr "Tempo limite de cURL" #~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " #~ "ponto médio." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Você tem certeza que deseja resetar seu mundo um-jogador?" + +#~ msgid "Back" +#~ msgstr "Backspace" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" + +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Centro do aumento da curva de luz." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Mudanças para a interface do menu principal:\n" +#~ " - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de " +#~ "pacote de texturas, etc.\n" +#~ "- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de " +#~ "texturas. Pode ser necessário para telas menores." + +#~ msgid "Config mods" +#~ msgstr "Configurar Mods" + +#~ msgid "Configure" +#~ msgstr "Configurar" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7372,6 +7432,9 @@ msgstr "Tempo limite de cURL" #~ msgstr "" #~ "Controla a largura dos túneis, um valor menor cria túneis mais largos." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Cor do cursor (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Nitidez da escuridão" @@ -7382,12 +7445,57 @@ msgstr "Tempo limite de cURL" #~ "Define áreas de Ilha Flutuante em terreno suavizado.\n" #~ "Terrenos suavizados ocorrem quando o ruído é menor que zero." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Define processo amostral de textura.\n" +#~ "Um valor mais alto resulta em mapas de normais mais suaves." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Baixando e instalando $1, por favor aguarde..." + #~ msgid "Enable VBO" #~ msgstr "Habilitar VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativar texturização bump mapping para texturas. Normalmaps precisam ser " +#~ "fornecidos pelo\n" +#~ "pacote de textura ou a necessidade de ser auto-gerada.\n" +#~ "Requer shaders a serem ativados." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Habilitar efeito \"filmic tone mapping\"" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n" +#~ "Requer texturização bump mapping para ser ativado." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Ativar mapeamento de oclusão de paralaxe.\n" +#~ "Requer shaders a serem ativados." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Opção experimental, pode causar espaços visíveis entre blocos\n" +#~ "quando definido como número maior do que 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS no menu de pausa" + #~ msgid "Floatland base height noise" #~ msgstr "Altura base de ruído de Ilha Flutuante" @@ -7400,6 +7508,12 @@ msgstr "Tempo limite de cURL" #~ msgid "Gamma" #~ msgstr "Gama" +#~ msgid "Generate Normal Maps" +#~ msgstr "Gerar Normal maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Gerar mapa de normais" + #~ msgid "IPv6 support." #~ msgstr "Suporte a IPv6." @@ -7409,18 +7523,106 @@ msgstr "Tempo limite de cURL" #~ msgid "Lightness sharpness" #~ msgstr "Nitidez da iluminação" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limite de filas emerge no disco" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Estilo do menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa em modo radar, zoom 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa em modo radar, zoom 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa em modo de superfície, zoom 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa em modo de superfície, zoom 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nome / Senha" + +#~ msgid "No" +#~ msgstr "Não" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Amostragem de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensidade de normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Número de iterações de oclusão de paralaxe." + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Viés geral do efeito de oclusão de paralaxe, geralmente de escala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Escala global do efeito de oclusão de paralaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Viés de oclusão de paralaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterações de oclusão de paralaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modo de oclusão de paralaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Escala de Oclusão de paralaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Insinsidade de oclusão de paralaxe" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Caminho para TrueTypeFont ou bitmap." +#~ msgid "Path to save screenshots at." +#~ msgstr "Caminho para onde salvar screenshots." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projetando dungeons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Resetar mundo um-jogador" + +#~ msgid "Select Package File:" +#~ msgstr "Selecionar o arquivo do pacote:" + #~ msgid "Shadow limit" #~ msgstr "Limite de mapblock" +#~ msgid "Start Singleplayer" +#~ msgstr "Iniciar Um jogador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensidade de normalmaps gerados." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Força do aumento médio da curva de luz." #~ msgid "This font will be used for certain languages." #~ msgstr "Esta fonte será usada para determinados idiomas." +#~ msgid "Toggle Cinematic" +#~ msgstr "Alternar modo de câmera cinemática" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7432,9 +7634,21 @@ msgstr "Tempo limite de cURL" #~ "Variação da altura da colina e profundidade do lago no terreno liso da " #~ "Terra Flutuante." +#~ msgid "View" +#~ msgstr "Vista" + +#~ msgid "Waving Water" +#~ msgstr "Ondas na água" + #~ msgid "Waving water" #~ msgstr "Balanço da água" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Limite Y máximo de lava em grandes cavernas." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "" #~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago." @@ -7442,17 +7656,5 @@ msgstr "Tempo limite de cURL" #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem." -#~ msgid "Projecting dungeons" -#~ msgstr "Projetando dungeons" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." - -#~ msgid "Waving Water" -#~ msgstr "Ondas na água" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Limite Y máximo de lava em grandes cavernas." - -#~ msgid "Select Package File:" -#~ msgstr "Selecionar o arquivo do pacote:" +#~ msgid "Yes" +#~ msgstr "Sim" diff --git a/po/ro/minetest.po b/po/ro/minetest.po index 558ec6db9..48ad46e2c 100644 --- a/po/ro/minetest.po +++ b/po/ro/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Romanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-04 16:41+0000\n" -"Last-Translator: f0roots \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-11-24 11:29+0000\n" +"Last-Translator: Nicolae Crefelean \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -13,11 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.4-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Reînviere" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Ai murit" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -33,15 +41,11 @@ msgstr "Meniul principal" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "Reconectează-te" +msgstr "Reconectare" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "Serverul cere o reconectare :" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Se încarcă..." +msgstr "Serverul cere o reconectare:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -53,23 +57,18 @@ msgstr "Serverul forțează versiunea protocolului $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Acest Server suporta versiunile protocolului intre $1 si $2. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Încercați să activați lista de servere publică și să vă verificați " -"conexiunea la internet." +msgstr "Serverul permite versiuni ale protocolului între $1 și $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Suportam doar versiunea de protocol $1." +msgstr "Permitem doar versiunea de protocol $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." msgstr "Acceptăm versiuni de protocol între versiunea 1$ și 2$." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -79,7 +78,8 @@ msgstr "Acceptăm versiuni de protocol între versiunea 1$ și 2$." msgid "Cancel" msgstr "Anulează" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Dependențe:" @@ -89,7 +89,7 @@ msgstr "Dezactivează toate" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Dezactiveaza pachet mod" +msgstr "Dezactivează modpack-ul" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -97,7 +97,7 @@ msgstr "Activează tot" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Activeaza pachet mod" +msgstr "Activează modpack-ul" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -109,7 +109,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Găsește mai multe modificări" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -152,26 +152,66 @@ msgstr "Lume:" msgid "enabled" msgstr "activat" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Descărcare..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Toate pachetele" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Tastă deja folosită" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Înapoi la meniul principal" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +#, fuzzy +msgid "Base Game:" +msgstr "Găzduiește joc" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "ContentDB nu este disponibilă când Minetest e compilat fără cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Se încarcă..." +msgstr "Descărcare..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "Nu a putut descărca $1" +msgstr "Nu s-a putut descărca $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -182,10 +222,20 @@ msgstr "Jocuri" msgid "Install" msgstr "Instalează" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instalează" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Dependențe opționale:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "Moduri" +msgstr "Modificări" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" @@ -193,16 +243,32 @@ msgstr "Nu s-au putut prelua pachete" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" -msgstr "Fara rezultate" +msgstr "Fără rezultate" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Caută" +#, fuzzy +msgid "No updates" +msgstr "Actualizare" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "Pachete de textură" +msgstr "Pachete de texturi" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" @@ -213,79 +279,76 @@ msgid "Update" msgstr "Actualizare" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" -msgstr "O lume cu numele \"$1\" deja există" +msgstr "Deja există o lume numită \"$1\"" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Teren suplimentar" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "Altitudine de frisoane" +msgstr "Răcire la altitudine" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "Altitudine de frisoane" +msgstr "Ariditate la altitudine" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Biome zgomot" +msgstr "Amestec de biom" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Biome zgomot" +msgstr "Biomuri" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Pragul cavernei" +msgstr "Caverne" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Octava" +msgstr "Peșteri" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Creează" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Informații:" +msgstr "Decorațiuni" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "Descărcați un joc, cum ar fi Minetest Game, de pe minetest.net" +msgstr "Descărcați un joc, precum Minetest Game, de pe minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" msgstr "Descărcați unul de pe minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Zgomotul temnițelor" +msgstr "Temnițe" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Teren plat" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Mase de teren plutitoare în cer" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Terenuri plutitoare (experimental)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -293,27 +356,28 @@ msgstr "Joc" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Generare terenuri fără fracturi: Oceane și sub pământ" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Dealuri" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Râuri umede" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Mărește umiditea în jurul râurilor" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Lacuri" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Umiditatea redusă și căldura ridicată cauzează râuri superficiale sau uscate" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -324,21 +388,20 @@ msgid "Mapgen flags" msgstr "Steagurile Mapgen" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Steaguri specifice Mapgen V5" +msgstr "Steaguri specifice Mapgen" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Munți" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Curgere de noroi" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Rețea de tunele și peșteri" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -346,20 +409,19 @@ msgstr "Nici un joc selectat" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Reduce căldura cu altitudinea" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Reduce umiditatea cu altitudinea" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Zgomotul râului" +msgstr "Râuri" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Râuri la nivelul mării" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -368,51 +430,51 @@ msgstr "Seminţe" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Tranziție lină între biomi" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Structuri care apar pe teren (fără efect asupra copacilor și a ierbii de " +"junglă creați de v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Structuri care apar pe teren, tipic copaci și plante" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Temperat, Deșert" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Temperat, Deșert, Junglă" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Temperat, Deșert, Junglă, Tundră, Taiga" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Eroziunea suprafeței terenului" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Copaci și iarbă de junglă" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Adâncimea râului variază" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Caverne foarte mari adânc în pământ" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "" -"Avertisment: Testul de dezvoltare minimă este destinat dezvoltatorilor." +msgstr "Avertisment: Testul de dezvoltare este destinat dezvoltatorilor." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -476,11 +538,6 @@ msgstr "< Înapoi la pagina de setări" msgid "Browse" msgstr "Navighează" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Client" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Dezactivat" @@ -525,6 +582,10 @@ msgstr "Restabilește valori implicite" msgid "Scale" msgstr "Scală" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Caută" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Selectează directorul" @@ -642,6 +703,21 @@ msgstr "Imposibil de instalat un mod ca $1" msgid "Unable to install a modpack as a $1" msgstr "Imposibil de instalat un pachet de moduri ca $ 1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Se încarcă..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Scripturile din partea clientului sunt dezactivate" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Încercați să activați lista de servere publică și să vă verificați " +"conexiunea la internet." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Căutați conținut online" @@ -695,7 +771,14 @@ msgid "Credits" msgstr "Credite" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Selectează directorul" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -715,14 +798,10 @@ msgid "Bind Address" msgstr "Adresa legată" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Configurează" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Modul Creativ" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Activează Daune" @@ -736,11 +815,11 @@ msgstr "Găzduiește Server" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Instalarea jocurilor din ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nume/Parolă" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -750,6 +829,11 @@ msgstr "Nou" msgid "No world created or selected!" msgstr "Nicio lume creată sau selectată!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Noua parolă" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Joacă jocul" @@ -758,6 +842,11 @@ msgstr "Joacă jocul" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Selectează lumea:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Selectează lumea:" @@ -774,23 +863,23 @@ msgstr "Începe Jocul" msgid "Address / Port" msgstr "Adresă / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Conectează" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Modul Creativ" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Daune activate" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Şterge Favorit" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favorit" @@ -798,16 +887,16 @@ msgstr "Favorit" msgid "Join Game" msgstr "Alatură-te jocului" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nume / Parolă" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP activat" @@ -835,10 +924,6 @@ msgstr "Toate setările" msgid "Antialiasing:" msgstr "Antialiasing:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Eşti sigur că vrei să resetezi lumea proprie ?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Salvează automat dimensiunea ecranului" @@ -847,10 +932,6 @@ msgstr "Salvează automat dimensiunea ecranului" msgid "Bilinear Filter" msgstr "Filtrare Biliniară" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Cartografiere cu denivelări" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Modifică tastele" @@ -863,10 +944,6 @@ msgstr "Sticlă conectată" msgid "Fancy Leaves" msgstr "Frunze luxsoase" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Generați Hărți Normale" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Hartă mip" @@ -875,10 +952,6 @@ msgstr "Hartă mip" msgid "Mipmap + Aniso. Filter" msgstr "Hartă mip + filtru aniso." -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nu" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Fără Filtru" @@ -907,18 +980,10 @@ msgstr "Frunze opace" msgid "Opaque Water" msgstr "Apă opacă" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Ocluzie Parallax" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Particule" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Resetează lume proprie" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Ecran:" @@ -931,6 +996,11 @@ msgstr "Setări" msgid "Shaders" msgstr "Umbră" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Terenuri plutitoare (experimental)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Shaders (indisponibil)" @@ -975,22 +1045,6 @@ msgstr "Fluturarea lichidelor" msgid "Waving Plants" msgstr "Plante legănătoare" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Da" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Configurează moduri" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Principal" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Începeți Jucător singur" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Conexiunea a expirat." @@ -1152,18 +1206,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Controale:\n" "-%s: deplasați înainte\n" @@ -1276,16 +1327,6 @@ msgstr "Ceață dezactivată" msgid "Fog enabled" msgstr "Ceață activată" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Ceață dezactivată" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Ceață activată" - #: src/client/game.cpp msgid "Game info:" msgstr "Informatii despre joc:" @@ -1306,16 +1347,6 @@ msgstr "Definițiile obiectelor..." msgid "KiB/s" msgstr "KiB / s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Ceață dezactivată" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Daune activate" - #: src/client/game.cpp msgid "Media..." msgstr "Media..." @@ -1328,34 +1359,6 @@ msgstr "MiB / s" msgid "Minimap currently disabled by game or mod" msgstr "Hartă mip dezactivată de joc sau mod" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Hartă mip ascunsă" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Hartă mip în modul radar, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Hartă mip în modul radar, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Hartă mip în modul radar, Zoom x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Hartă mip în modul de suprafață, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Hartă mip în modul de suprafață, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Hartă mip în modul de suprafață, Zoom x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Modul Noclip este dezactivat" @@ -1400,10 +1403,6 @@ msgstr "Server de la distanță" msgid "Resolving address..." msgstr "Se rezolvă adresa..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Reînviere" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Se închide..." @@ -1422,11 +1421,11 @@ msgstr "Sunet dezactivat" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Sistem audio dezactivat" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Sistemul audio nu e suportat în această construcție" #: src/client/game.cpp msgid "Sound unmuted" @@ -1456,10 +1455,6 @@ msgstr "Volum modificat la %d%%" msgid "Wireframe shown" msgstr "Cadru de sârmă afișat" -#: src/client/game.cpp -msgid "You died" -msgstr "Ai murit" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Zoom dezactivat în prezent de joc sau mod" @@ -1476,16 +1471,6 @@ msgstr "Chat ascuns" msgid "Chat shown" msgstr "Chat afișat" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Chat ascuns" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Chat afișat" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD ascuns" @@ -1766,6 +1751,25 @@ msgstr "X Butonul 2" msgid "Zoom" msgstr "Mărire" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Hartă mip ascunsă" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Hartă mip în modul radar, Zoom x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Hartă mip în modul de suprafață, Zoom x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Hartă mip în modul de suprafață, Zoom x1" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Parolele nu se potrivesc!" @@ -1810,26 +1814,6 @@ msgstr "Salt automat" msgid "Backward" msgstr "Înapoi" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Schimba camera" @@ -1923,30 +1907,10 @@ msgstr "Furișează" msgid "Special" msgstr "Special" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Special" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Intră pe rapid" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Intră pe rapid" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Comutați HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Intră pe zbor" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Comutați jurnalul de chat" @@ -2080,14 +2044,6 @@ msgstr "" "Valoarea implicită este pentru o formă ghemuită vertical, potrivită pentru\n" "o insulă, setați toate cele 3 numere egale pentru forma brută." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = ocluzia de paralax cu informații despre panta (mai rapid).\n" -"1 = mapare în relief (mai lentă, mai exactă)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Zgomot 2D care controlează forma/dimensiunea munților crestați." @@ -2127,7 +2083,7 @@ msgstr "Mod 3D" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Mod 3D putere paralaxă" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2148,6 +2104,10 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"Zgomot 3D care definește structura insulelor plutitoare (floatlands).\n" +"Dacă este modificată valoarea implicită, 'scala' (0.7) ar putea trebui\n" +"să fie ajustată, formarea floatland funcționează optim cu un zgomot\n" +"în intervalul aproximativ -2.0 până la 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2215,9 +2175,12 @@ msgid "ABM interval" msgstr "Interval ABM" #: src/settings_translation_file.cpp -#, fuzzy +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "Limita absolută a cozilor emergente" +msgstr "Limita absolută a cozilor de blocuri procesate" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2274,6 +2237,13 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Ajustează densitatea stratului floatland.\n" +"Mărește valoarea pentru creșterea densității. Poate fi pozitivă sau " +"negativă.\n" +"Valoarea = 0.0: 50% din volum este floatland.\n" +"Valoarea = 2.0 (poate fi mai mare în funcție de 'mgv7_np_floatland'; " +"testați\n" +"pentru siguranță) va crea un strat solid floatland." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2472,10 +2442,6 @@ msgstr "Construiți în interiorul jucătorului" msgid "Builtin" msgstr "Incorporat" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Hartă pentru Denivelări" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2495,88 +2461,79 @@ msgstr "Netezirea camerei" #: src/settings_translation_file.cpp msgid "Camera smoothing in cinematic mode" -msgstr "" +msgstr "Cameră fluidă în modul cinematic" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "" +msgstr "Tasta de comutare a actualizării camerei" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "" +msgstr "Zgomotul peșterilor" #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "" +msgstr "Zgomotul 1 al peșterilor" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "" +msgstr "Zgomotul 2 al peșterilor" #: src/settings_translation_file.cpp msgid "Cave width" -msgstr "" +msgstr "Lățime peșteri" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "Zgomot peșteri1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "Zgomot peșteri2" #: src/settings_translation_file.cpp msgid "Cavern limit" -msgstr "" +msgstr "Limita cavernelor" #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "" +msgstr "Zgomotul cavernelor" #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "Subțiere caverne" #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "Pragul cavernei" +msgstr "Pragul cavernelor" #: src/settings_translation_file.cpp msgid "Cavern upper limit" -msgstr "" +msgstr "Limita superioară a cavernelor" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" +"Centrul razei de amplificare a curbei de lumină.\n" +"Aici 0.0 este nivelul minim de lumină, iar 1.0 este nivelul maxim." #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "Dimensiunea fontului din chat" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Tasta de chat" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Cheia de comutare a chatului" +msgstr "Nivelul de raportare în chat" #: src/settings_translation_file.cpp msgid "Chat message count limit" -msgstr "" +msgstr "Limita mesajelor din chat" #: src/settings_translation_file.cpp msgid "Chat message format" @@ -2588,7 +2545,7 @@ msgstr "Pragul de lansare a mesajului de chat" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "Lungimea maximă a unui mesaj din chat" #: src/settings_translation_file.cpp msgid "Chat toggle key" @@ -2600,7 +2557,7 @@ msgstr "Comenzi de chat" #: src/settings_translation_file.cpp msgid "Chunk size" -msgstr "" +msgstr "Dimensiunea unui chunk" #: src/settings_translation_file.cpp msgid "Cinematic mode" @@ -2612,7 +2569,7 @@ msgstr "Tasta modului cinematografic" #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "" +msgstr "Texturi transparente curate" #: src/settings_translation_file.cpp msgid "Client" @@ -2620,7 +2577,7 @@ msgstr "Client" #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "Client și server" #: src/settings_translation_file.cpp msgid "Client modding" @@ -2632,11 +2589,11 @@ msgstr "Restricții de modificare de partea clientului" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" -msgstr "" +msgstr "Restricția razei de căutare a nodurilor în clienți" #: src/settings_translation_file.cpp msgid "Climbing speed" -msgstr "" +msgstr "Viteza escaladării" #: src/settings_translation_file.cpp msgid "Cloud radius" @@ -2648,7 +2605,7 @@ msgstr "Nori" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." -msgstr "" +msgstr "Norii sunt un efect pe client." #: src/settings_translation_file.cpp msgid "Clouds in menu" @@ -2668,12 +2625,22 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"Listă separată de virgule cu etichete de ascuns din depozitul de conținut.\n" +"\"nonfree\" se poate folosi pentru ascunderea pachetelor care nu sunt " +"'software liber',\n" +"conform definiției Free Software Foundation.\n" +"Puteți specifica și clasificarea conținutului.\n" +"Aceste etichete nu depind de versiunile Minetest.\n" +"Puteți vedea lista completă la https://content.minetest.net/help/" +"content_flags/" #: src/settings_translation_file.cpp msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" +"Listă separată de virgule, cu modificări care au acces la API-uri HTTP,\n" +"care la permit încărcarea și descărcarea de date în/din internet." #: src/settings_translation_file.cpp msgid "" @@ -2713,6 +2680,10 @@ msgstr "Înalţime consolă" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "URL-ul ContentDB" @@ -2770,7 +2741,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2778,7 +2751,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2878,12 +2853,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2954,6 +2923,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Tasta dreapta" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Particule pentru săpare" @@ -3015,7 +2989,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3102,14 +3076,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3118,18 +3084,6 @@ msgstr "" msgid "Enables minimap." msgstr "Activează minimap." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3146,12 +3100,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3163,7 +3111,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3465,10 +3413,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3523,8 +3467,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3990,6 +3934,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4069,6 +4017,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4168,6 +4123,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4725,10 +4687,6 @@ msgstr "" msgid "Main menu script" msgstr "Scriptul meniului principal" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Stilul meniului principal" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4742,6 +4700,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4906,7 +4872,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4954,6 +4920,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5183,14 +5156,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5216,10 +5181,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5245,34 +5206,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5338,6 +5271,15 @@ msgstr "Tasta de mutare a pitch" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tasta de mutare a pitch" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5493,10 +5435,6 @@ msgstr "" msgid "Right key" msgstr "Tasta dreapta" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5748,6 +5686,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5877,10 +5825,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5974,6 +5918,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6033,8 +5981,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6058,6 +6006,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6066,9 +6020,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6203,6 +6156,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6405,6 +6369,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6527,6 +6497,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6539,19 +6527,53 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "Ok" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = ocluzia de paralax cu informații despre panta (mai rapid).\n" +#~ "1 = mapare în relief (mai lentă, mai exactă)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Eşti sigur că vrei să resetezi lumea proprie ?" #~ msgid "Back" #~ msgstr "Înapoi" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Se descarca si se instaleaza $ 1, vă rugăm să așteptați ..." +#~ msgid "Bump Mapping" +#~ msgstr "Cartografiere cu denivelări" + +#~ msgid "Bumpmapping" +#~ msgstr "Hartă pentru Denivelări" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Modifică interfața meniului principal:\n" +#~ "- Complet: Lumi multiple singleplayer, selector de joc, selector de " +#~ "texturi etc.\n" +#~ "- Simplu: Doar o lume singleplayer, fără selectoare de joc sau " +#~ "texturi.\n" +#~ "Poate fi necesar pentru ecrane mai mici." + +#~ msgid "Config mods" +#~ msgstr "Configurează moduri" + +#~ msgid "Configure" +#~ msgstr "Configurează" #, fuzzy #~ msgid "Darkness sharpness" #~ msgstr "Mapgen" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Se descarca si se instaleaza $ 1, vă rugăm să așteptați ..." + #, fuzzy #~ msgid "Enable VBO" #~ msgstr "Activează MP" @@ -6560,6 +6582,55 @@ msgstr "" #~ msgid "Enables filmic tone mapping" #~ msgstr "Activează Daune" +#~ msgid "Generate Normal Maps" +#~ msgstr "Generați Hărți Normale" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Stilul meniului principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Hartă mip în modul radar, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Hartă mip în modul radar, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Hartă mip în modul de suprafață, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Hartă mip în modul de suprafață, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Nume/Parolă" + +#~ msgid "No" +#~ msgstr "Nu" + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Ocluzie Parallax" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Resetează lume proprie" + #, fuzzy #~ msgid "Select Package File:" #~ msgstr "Selectează Fișierul Modului:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Începeți Jucător singur" + +#, fuzzy +#~ msgid "Toggle Cinematic" +#~ msgstr "Intră pe rapid" + +#~ msgid "View" +#~ msgstr "Vizualizare" + +#~ msgid "Yes" +#~ msgstr "Da" diff --git a/po/ru/minetest.po b/po/ru/minetest.po index 4ede5a143..9f78a12da 100644 --- a/po/ru/minetest.po +++ b/po/ru/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Russian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-18 13:41+0000\n" -"Last-Translator: Maksim Gamarnik \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Ertu (Er2, Err) \n" "Language-Team: Russian \n" "Language: ru\n" @@ -13,7 +13,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Возродиться" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Вы умерли" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -39,10 +47,6 @@ msgstr "Переподключиться" msgid "The server has requested a reconnect:" msgstr "Сервер запросил переподключение:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Загрузка..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Несоответствие версии протокола. " @@ -53,22 +57,18 @@ msgstr "Сервер требует протокол версии $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Сервер поддерживает версии протокола между $1 и $2. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Попробуйте обновить список публичных серверов и проверьте связь с Интернетом." +msgstr "Сервер поддерживает версии протокола с $1 по $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "Поддерживается только протокол версии $1." +msgstr "Мы поддерживаем только протокол версии $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "Мы поддерживаем версии протоколов между $1 и $2." +msgstr "Поддерживаются только протоколы версий с $1 по $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +78,8 @@ msgstr "Мы поддерживаем версии протоколов межд msgid "Cancel" msgstr "Отмена" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Зависимости:" @@ -149,22 +150,61 @@ msgstr "Мир:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "включен" +msgstr "включено" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" уже существует. Перезаписать?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "Зависимости $1 и $2 будут установлены." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 из $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 скачивается,\n" +"$2 в очереди" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 скачивается…" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "Не удалось найти требуемые зависимости $1." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "Будет установлен $1, а зависимости $2 будут пропущены." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Все дополнения" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Уже установлено" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Назад в главное меню" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Базовая игра:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB недоступен, когда Minetest скомпилирован без cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." msgstr "Загрузка..." @@ -181,6 +221,14 @@ msgstr "Игры" msgid "Install" msgstr "Установить" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Установить $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Установить недостающие зависимости" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -195,9 +243,24 @@ msgid "No results" msgstr "Ничего не найдено" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Искать" +msgid "No updates" +msgstr "Нет обновлений" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Не найдено" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Перезаписать" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Пожалуйста, убедитесь, что базовая игра верна." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "В очереди" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,8 +275,12 @@ msgid "Update" msgstr "Обновить" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Вид" +msgid "Update All [$1]" +msgstr "Обновить все [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Посмотреть дополнительную информацию в веб-браузере" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -225,41 +292,35 @@ msgstr "Дополнительная местность" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "Высота нивального пояса" +msgstr "Высота над уровнем моря" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" msgstr "Высота нивального пояса" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "Шум биомов" +msgstr "Смешивание биомов" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "Шум биомов" +msgstr "Биомы" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "Шум пещеры" +msgstr "Пещеры" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Октавы" +msgstr "Пещеры" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "Создать" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Итерации" +msgstr "Украшения" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -270,23 +331,20 @@ msgid "Download one from minetest.net" msgstr "Вы можете скачать их на minetest.net" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "Шум подземелья" +msgstr "Подземелья" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" msgstr "Плоская местность" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floating landmasses in the sky" -msgstr "Плотность гор на парящих островах" +msgstr "Парящие острова на небе" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "Уровень парящих островов" +msgstr "Парящие острова (экспериментальный)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -294,20 +352,19 @@ msgstr "Игра" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Создать нефрактальную местность: океаны и подземелья" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" msgstr "Холмы" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "Видеодрайвер" +msgstr "Влажность рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Увеличивает влажность вокруг рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" @@ -316,6 +373,7 @@ msgstr "Озёра" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" +"Пониженную влажность и высокую температуру вызывают отмель или высыхание рек" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -326,18 +384,16 @@ msgid "Mapgen flags" msgstr "Флаги картогенератора" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "Специальные флаги картогенератора V5" +msgstr "Специальные флаги картогенератора" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "Шум гор" +msgstr "Горы" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Грязевой поток" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" @@ -356,13 +412,12 @@ msgid "Reduces humidity with altitude" msgstr "Уменьшает влажность с высотой" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "Размер рек" +msgstr "Реки" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Реки на уровне моря" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -378,46 +433,44 @@ msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Структуры, появляющиеся на поверхности (не влияет на деревья и тропическую " +"траву, сгенерированные v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Структуры, появляющиеся на поверхности, типично деревья и растения" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Умеренный пояс, Пустыня" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Умеренный пояс, Пустыня, Джунгли" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Умеренный пояс, Пустыня, Джунгли, Тундра, Тайга" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "Базовый шум поверхности" +msgstr "Разрушение поверхности местности" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" msgstr "Деревья и Джунгли-трава" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Глубина рек" +msgstr "Изменить глубину рек" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Очень большие пещеры глубоко под землей" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "" -"Внимание: «Minimal development test» предназначен только для разработчиков." +msgstr "Внимание: «The Development Test» предназначен для разработчиков." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -462,8 +515,8 @@ msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" -"Этот модпак имеет явное имя, указанное в modpack.conf, который переопределит " -"любое переименование здесь." +"Этот пакет модов имеет имя, явно указанное в modpack.conf, которое не " +"изменится от переименования здесь." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -481,11 +534,6 @@ msgstr "< Назад к странице настроек" msgid "Browse" msgstr "Обзор" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Клиент" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Отключено" @@ -524,12 +572,16 @@ msgstr "Пожалуйста, введите допустимое число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Сброс настроек" +msgstr "Восстановить стандартные настройки" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" msgstr "Масштаб" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Искать" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Выбрать каталог" @@ -587,7 +639,7 @@ msgstr "абсолютная величина" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "стандартные" +msgstr "Базовый" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -607,7 +659,7 @@ msgstr "$1 модов" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" -msgstr "Не удалось установить $1 в $2" +msgstr "Невозможно установить $1 в $2" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find real mod name for: $1" @@ -630,8 +682,7 @@ msgstr "Установка мода: файл \"$1\"" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to find a valid mod or modpack" msgstr "" -"Установка мода: не удаётся найти подходящий каталог для мода или пакета " -"модов $1" +"Установка мода: не удаётся найти подходящий каталог для мода или пакета модов" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a $1 as a texture pack" @@ -649,6 +700,20 @@ msgstr "Не удаётся установить мод как $1" msgid "Unable to install a modpack as a $1" msgstr "Не удаётся установить пакет модов как $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Загрузка..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Клиентские моды отключены" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Попробуйте обновить список публичных серверов и проверьте связь с Интернетом." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Поиск дополнений в сети" @@ -702,8 +767,16 @@ msgid "Credits" msgstr "Благодарности" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Открыть каталог данных пользователя" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Открывает каталог, содержащий пользовательские миры, игры, моды,\n" +"и пакеты текстур в файловом менеджере / проводнике." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -722,14 +795,10 @@ msgid "Bind Address" msgstr "Адрес привязки" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Настроить" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Режим творчества" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Включить урон" @@ -743,11 +812,11 @@ msgstr "Запустить сервер" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Установите игры из ContentDB" +msgstr "Установить игры из ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Имя/Пароль" +msgid "Name" +msgstr "Имя" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -757,6 +826,10 @@ msgstr "Новый" msgid "No world created or selected!" msgstr "Мир не создан или не выбран!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Пароль" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Играть" @@ -765,6 +838,10 @@ msgstr "Играть" msgid "Port" msgstr "Порт" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Выберите моды" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Выберите мир:" @@ -781,25 +858,23 @@ msgstr "Начать игру" msgid "Address / Port" msgstr "Адрес / Порт" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Подключиться" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Режим творчества" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Урон включён" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "" -"Убрать из\n" -"избранных" +msgstr "Убрать из избранного" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "В избранные" @@ -807,16 +882,16 @@ msgstr "В избранные" msgid "Join Game" msgstr "Подключиться к игре" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Имя / Пароль" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Пинг" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "PvP разрешён" @@ -844,10 +919,6 @@ msgstr "Все настройки" msgid "Antialiasing:" msgstr "Сглаживание:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Уверены, что хотите сбросить мир одиночной игры?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Запоминать размер окна" @@ -856,10 +927,6 @@ msgstr "Запоминать размер окна" msgid "Bilinear Filter" msgstr "Билинейная фильтрация" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Бампмаппинг" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Смена управления" @@ -872,10 +939,6 @@ msgstr "Стёкла без швов" msgid "Fancy Leaves" msgstr "Красивая листва" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Создавать карты нормалей" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Мипмаппинг" @@ -884,13 +947,9 @@ msgstr "Мипмаппинг" msgid "Mipmap + Aniso. Filter" msgstr "Мипмаппинг + анизотр. фильтр" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Нет" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" -msgstr "Без фильтрации (пиксельное)" +msgstr "Без фильтрации" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" @@ -916,18 +975,10 @@ msgstr "Непрозрачная листва" msgid "Opaque Water" msgstr "Непрозрачная вода" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Объёмные текстуры" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Частицы" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Сброс одиночной игры" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Экран:" @@ -940,6 +991,10 @@ msgstr "Настройки" msgid "Shaders" msgstr "Шейдеры" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Шейдеры (экспериментально)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Шейдеры (недоступно)" @@ -966,7 +1021,7 @@ msgstr "Тональное отображение" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "Порог чувствительности: (px)" +msgstr "Чувствительность: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -978,28 +1033,12 @@ msgstr "Покачивание листвы" #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" -msgstr "Покачивание жидкостей" +msgstr "Волнистые жидкости" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" msgstr "Покачивание растений" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Да" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Настройка модов" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Главное меню" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Начать одиночную игру" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Тайм-аут соединения." @@ -1123,7 +1162,7 @@ msgstr "Автобег включён" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "Обновление камеры отключено" +msgstr "Обновление камеры выключено" #: src/client/game.cpp msgid "Camera update enabled" @@ -1154,25 +1193,22 @@ msgid "Continue" msgstr "Продолжить" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Управление:\n" "- %s: вперёд\n" @@ -1276,7 +1312,7 @@ msgstr "Режим полёта включён" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Режим полёта включён (но: нет привилегии «fly»)" +msgstr "Режим полёта включён (но нет привилегии «fly»)" #: src/client/game.cpp msgid "Fog disabled" @@ -1286,16 +1322,6 @@ msgstr "Туман отключён" msgid "Fog enabled" msgstr "Туман включён" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Туман отключён" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Туман включён" - #: src/client/game.cpp msgid "Game info:" msgstr "Информация об игре:" @@ -1316,16 +1342,6 @@ msgstr "Описания предметов..." msgid "KiB/s" msgstr "КиБ/с" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Туман отключён" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Урон включён" - #: src/client/game.cpp msgid "Media..." msgstr "Медиафайлы..." @@ -1338,34 +1354,6 @@ msgstr "МиБ/с" msgid "Minimap currently disabled by game or mod" msgstr "Миникарта сейчас отключена игрой или модом" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Миникарта скрыта" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Миникарта в режиме радара, увеличение x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Миникарта в режиме радара, увеличение x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Миникарта в режиме радара, увеличение x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Миникарта в поверхностном режиме, увеличение x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Миникарта в поверхностном режиме, увеличение x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Миникарта в поверхностном режиме, увеличение x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Режим прохождения сквозь стены отключён" @@ -1376,7 +1364,7 @@ msgstr "Режим прохождения сквозь стены включён #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Режим прохождения сквозь стены включён (но: нет привилегии «noclip»)" +msgstr "Режим прохождения сквозь стены включён (но нет привилегии «noclip»)" #: src/client/game.cpp msgid "Node definitions..." @@ -1410,10 +1398,6 @@ msgstr "Удалённый сервер" msgid "Resolving address..." msgstr "Получение адреса..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Возродиться" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Завершение..." @@ -1466,10 +1450,6 @@ msgstr "Громкость установлена на %d%%" msgid "Wireframe shown" msgstr "Отображение каркаса включено" -#: src/client/game.cpp -msgid "You died" -msgstr "Вы умерли" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Приближение в настоящее время отключено игрой или модом" @@ -1486,16 +1466,6 @@ msgstr "Чат скрыт" msgid "Chat shown" msgstr "Отображение чата включено" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Чат скрыт" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Отображение чата включено" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Игровой интерфейс скрыт" @@ -1583,7 +1553,7 @@ msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "Влево" +msgstr "Лево" #: src/client/keycode.cpp msgid "Left Button" @@ -1608,7 +1578,7 @@ msgstr "Левый Win" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" -msgstr "Menu" +msgstr "Контекстное меню" #: src/client/keycode.cpp msgid "Middle Button" @@ -1776,6 +1746,24 @@ msgstr "Доп. кнопка 2" msgid "Zoom" msgstr "Приближение" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Миникарта скрыта" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Миникарта в режиме радара, увеличение x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Миникарта в поверхностном режиме, увеличение x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Минимальный размер текстуры" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Пароли не совпадают!" @@ -1820,33 +1808,13 @@ msgstr "Автопрыжок" msgid "Backward" msgstr "Назад" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "Камера" +msgstr "Изменить камеру" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "Сообщение" +msgstr "Чат" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" @@ -1878,11 +1846,11 @@ msgstr "Вперёд" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "Видимость +" +msgstr "Увеличить видимость" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "Громкость +" +msgstr "Увеличить громкость" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" @@ -1904,11 +1872,11 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "Команда клиента" +msgstr "Локальная команда" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "Звук" +msgstr "Заглушить" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" @@ -1920,7 +1888,7 @@ msgstr "Пред. предмет" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "Видимость" +msgstr "Дальность прорисовки" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" @@ -1932,35 +1900,15 @@ msgstr "Красться" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "Использовать" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Использовать" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Кино" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Кино" +msgstr "Особенный" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Игровой интерфейс" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Полёт" +msgstr "Вкл/выкл игровой интерфейс" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "Чат" +msgstr "Вкл/выкл историю чата" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -2081,20 +2029,13 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" -"(Х,Y,Z) шкала фрактала в нодах.\n" -"Фактический фрактальный размер будет в 2-3 раза больше.\n" -"Эти числа могут быть очень большими, фракталу нет нужды заполнять мир.\n" -"Увеличьте их, чтобы увеличить «масштаб» детали фрактала.\n" -"Для вертикально сжатой фигуры, что подходит\n" -"острову, сделайте все 3 числа равными для необработанной формы." - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = Параллакс окклюзии с информацией о склоне (быстро).\n" -"1 = Рельефный маппинг (медленно, но качественно)." +"(Х,Y,Z) масштаб фрактала в нодах.\n" +"Фактический размер фрактала будет в 2-3 раза больше.\n" +"Эти числа могут быть очень большими, фракталу нет нужды\n" +"заполнять мир. Увеличьте их, чтобы увеличить «масштаб»\n" +"детали фрактала. По умолчанию значения подходят для\n" +"вертикально сжатой фигуры, что подходит острову, для\n" +"необработанной формы сделайте все 3 значения равными." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -2135,9 +2076,8 @@ msgid "3D mode" msgstr "3D-режим" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "Сила карт нормалей" +msgstr "Сила параллакса в 3D-режиме" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2158,6 +2098,11 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D шум, определяющий строение парящих островов.\n" +"Если изменен по-умолчанию, 'уровень' шума (0.7 по-умолчанию) возможно " +"необходимо установить,\n" +"так как функции сужения парящих островов лучше всего работают, \n" +"когда значение шума находиться в диапазоне от -2.0 до 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2170,7 +2115,7 @@ msgstr "Трёхмерный шум, определяющий рельеф ме #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." msgstr "" -"3D-шум для горных выступов, скал и т. д. В основном небольшие вариации." +"3D шум для горных выступов, скал и т. д. В основном небольшие вариации." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." @@ -2195,9 +2140,10 @@ msgstr "" "- anaglyph: голубой/пурпурный цвет в 3D.\n" "- interlaced: чётные/нечётные линии отображают два разных кадра для " "экранов, поддерживающих поляризацию.\n" -"- topbottom: Разделение экрана верх/низ\n" +"- topbottom: Разделение экрана верх/низ.\n" "- sidebyside: Разделение экрана право/лево.\n" -"- pageflip: Четырёхкратная буферизация (QuadBuffer).\n" +"- crossview: 3D на основе автостереограммы.\n" +"- pageflip: 3D на основе четырёхкратной буферизации.\n" "Примечание: в режиме interlaced шейдеры должны быть включены." #: src/settings_translation_file.cpp @@ -2218,12 +2164,15 @@ msgstr "Сообщение, которое будет показано всем #: src/settings_translation_file.cpp msgid "ABM interval" -msgstr "Интервал сохранения карты" +msgstr "ABM интервал" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Absolute limit of queued blocks to emerge" -msgstr "Абсолютный лимит появляющихся запросов" +msgstr "Абсолютный предел появления блоков в очереди" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2255,9 +2204,9 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" -"Адрес, к которому присоединиться.\n" -"Оставьте это поле, чтобы запустить локальный сервер.\n" -"ПРИМЕЧАНИЕ: это поле адреса перезапишет эту настройку в главном меню." +"Адрес, к которому нужно присоединиться.\n" +"Оставьте это поле пустым, чтобы запустить локальный сервер.\n" +"Обратите внимание, что поле адреса в главном меню перезапишет эту настройку." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." @@ -2280,6 +2229,13 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Регулирует плотность слоя парящих островов.\n" +"Увеличьте значение, чтобы увеличить плотность. Может быть положительным или " +"отрицательным.\n" +"Значение = 0,0: 50% объема парящих островов.\n" +"Значение = 2,0 (может быть выше в зависимости от 'mgv7_np_floatland', всегда " +"тестируйте) \n" +"создает сплошной слой парящих островов." #: src/settings_translation_file.cpp msgid "Advanced" @@ -2382,15 +2338,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Automatic forward key" -msgstr "Клавиша авто-вперёд" +msgstr "Автоматическая кнопка вперед" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "Автоматически запрыгивать на препятствия высотой в одну ноду." +msgstr "Автоматический подъем на одиночные блоки." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "Автоматически анонсировать в список серверов." +msgstr "Автоматическая жалоба на сервер-лист." #: src/settings_translation_file.cpp msgid "Autosave screen size" @@ -2398,7 +2354,7 @@ msgstr "Запоминать размер окна" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "Режим автомасштабирования" +msgstr "Режим автоматического масштабирования" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2406,7 +2362,7 @@ msgstr "Клавиша назад" #: src/settings_translation_file.cpp msgid "Base ground level" -msgstr "Уровень земли" +msgstr "Базовый уровень земли" #: src/settings_translation_file.cpp msgid "Base terrain height." @@ -2458,7 +2414,7 @@ msgstr "Путь к жирному и курсивному шрифту" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "Путь к жирному и курсиву моноширинного шрифта" +msgstr "Путь к жирному и курсивному моноширинному шрифту" #: src/settings_translation_file.cpp msgid "Bold font path" @@ -2476,10 +2432,6 @@ msgstr "Разрешить ставить блоки на месте игрок msgid "Builtin" msgstr "Встроенный" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Бампмаппинг" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2559,33 +2511,16 @@ msgstr "" "где 0.0 — минимальный уровень света, а 1.0 — максимальный." #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Изменение интерфейса в главном меню:\n" -"- Full: несколько однопользовательских миров, выбор игры, выбор пакета " -"текстур и т. д.\n" -"- Simple: один однопользовательский мир без выбора игр или текстур. Может " -"быть полезно для небольших экранов." - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Размер шрифта" +msgstr "Размер шрифта чата" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "Кнопка чата" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "Отладочный уровень" +msgstr "Уровень журнала чата" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2694,8 +2629,8 @@ msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" -"Список доверенных модов через запятую, которым разрешён доступ к HTTP API, " -"что позволяет им отправлять и принимать данные через Интернет." +"Разделенный запятыми список модов, которые позволяют получить доступ к API " +"для HTTP, что позволить им загружать и скачивать данные из интернета." #: src/settings_translation_file.cpp msgid "" @@ -2738,6 +2673,10 @@ msgstr "Высота консоли" msgid "ContentDB Flag Blacklist" msgstr "Чёрный список флагов ContentDB" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Максимальное количество одновременных загрузок ContentDB" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "Адрес ContentDB" @@ -2805,16 +2744,24 @@ msgid "Crosshair alpha" msgstr "Прозрачность перекрестия" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Прозрачность прицела (от 0 (прозрачно) до 255 (непрозрачно))." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Прозрачность прицела (от 0 (прозрачно) до 255 (непрозрачно)).\n" +"Также контролирует цвет перекрестия объекта" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Цвет перекрестия" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Цвет перекрестия (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Цвет прицела (R, G, B).\n" +"Также контролирует цвет перекрестия объекта" #: src/settings_translation_file.cpp msgid "DPI" @@ -2877,9 +2824,8 @@ msgid "Default report format" msgstr "Формат отчёта по умолчанию" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "Стандартная игра" +msgstr "Размер стака по умолчанию" #: src/settings_translation_file.cpp msgid "" @@ -2920,14 +2866,6 @@ msgstr "Определяет крупномасштабную структуру msgid "Defines location and terrain of optional hills and lakes." msgstr "Определяет расположение и поверхность дополнительных холмов и озёр." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Определяет шаг выборки текстуры.\n" -"Более высокое значение приводит к более гладким картам нормалей." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Определяет базовый уровень земли." @@ -3008,6 +2946,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Рассинхронизация анимации блоков" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Кнопка копать" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Частицы при рытье" @@ -3073,7 +3015,8 @@ msgid "Enable console window" msgstr "Включить окно консоли" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Включить творческий режим для вновь созданных карт." #: src/settings_translation_file.cpp @@ -3176,22 +3119,15 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"Включает кинематографическое отображение тонов «Uncharted 2».\n" +"Имитирует кривую тона фотопленки и приближает\n" +"изображение к большему динамическому диапазону. Средний контраст слегка\n" +"усиливается, блики и тени постепенно сжимаются." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." msgstr "Включить анимацию предметов в инвентаре." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Включает бампмаппинг для текстур. Карты нормалей должны быть предоставлены\n" -"пакетом текстур или сгенерированы автоматически.\n" -"Требует, чтобы шейдеры были включены." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Включает кэширование повёрнутых мешей." @@ -3200,22 +3136,6 @@ msgstr "Включает кэширование повёрнутых мешей. msgid "Enables minimap." msgstr "Включить мини-карту." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Включает генерацию карт нормалей \"на лету\" (эффект тиснения).\n" -"Требует, чтобы бампмаппинг был включён." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Включает Parallax Occlusion.\n" -"Требует, чтобы шейдеры были включены." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3236,14 +3156,6 @@ msgstr "Интервал печати данных профилирования msgid "Entity methods" msgstr "Методы сущностей" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Экспериментальная опция, может привести к видимым зазорам\n" -"между блоками, когда значение больше, чем 0." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3253,10 +3165,16 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Степень сужения парящих островов. Изменяет характер сужения.\n" +"Значение = 1.0 задает равномерное, линейное сужение.\n" +"Значения > 1.0 задают гладкое сужение, подходит для отдельных\n" +" парящих островов по-умолчанию.\n" +"Значения < 1.0 (например, 0.25) задают более точный уровень поверхности\n" +"с более плоскими низинами, подходит для массивного уровня парящих островов." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "Кадровая частота во время паузы" +msgid "FPS when unfocused or paused" +msgstr "Максимум кадровой частоты при паузе." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3372,39 +3290,32 @@ msgid "Fixed virtual joystick" msgstr "Фиксация виртуального джойстика" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "Плотность гор на парящих островах" +msgstr "Плотность парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "Максимальная Y подземелья" +msgstr "Максимальная Y парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "Минимальная Y подземелья" +msgstr "Минимальная Y парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "Базовый шум парящих островов" +msgstr "Шум парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "Экспонента гор на парящих островах" +msgstr "Экспонента конуса на парящих островах" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "Базовый шум парящих островов" +msgstr "Расстояние сужения парящих островов" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "Уровень парящих островов" +msgstr "Уровень воды на парящих островах" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3463,6 +3374,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Размер шрифта последнего чата и подсказки чата в точке (pt).\n" +"Значение 0 будет использовать размер шрифта по умолчанию." #: src/settings_translation_file.cpp msgid "" @@ -3512,7 +3425,7 @@ msgstr "Непрозрачность фона формы в полноэкран #: src/settings_translation_file.cpp msgid "Forward key" -msgstr "Клавиша вперёд" +msgstr "Клавиша вперёд" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." @@ -3583,10 +3496,6 @@ msgstr "Фильтр масштабирования интерфейса" msgid "GUI scaling filter txr2img" msgstr "Фильтр txr2img для масштабирования интерфейса" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Генерировать карты нормалей" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Глобальные обратные вызовы" @@ -3603,18 +3512,20 @@ msgstr "" "контролирует все декорации." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." -msgstr "Градиент кривой света на максимальном уровне освещённости." +msgstr "" +"Градиент кривой света на максимальном уровне освещённости.\n" +"Контролирует контрастность самых высоких уровней освещенности." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." -msgstr "Градиент кривой света на минимальном уровне освещённости." +msgstr "" +"Градиент кривой света на минимальном уровне освещённости.\n" +"Контролирует контрастность самых низких уровней освещенности." #: src/settings_translation_file.cpp msgid "Graphics" @@ -3645,16 +3556,14 @@ msgid "HUD toggle key" msgstr "Клавиша переключения игрового интерфейса" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "Обработка устаревших вызовов Lua API:\n" -"- legacy: (пытаться) имитировать прежнее поведение (по умолчанию для " -"релиза).\n" +"- none: не записывать устаревшие вызовы\n" "- log: имитировать и журналировать устаревшие вызовы (по умолчанию для " "отладки).\n" "- error: прерывание при использовании устаревших вызовов (рекомендовано " @@ -3895,6 +3804,9 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" +"Как быстро будут покачиваться волны жидкостей. Выше = быстрее\n" +"Если отрицательно, жидкие волны будут двигаться назад.\n" +"Требует, чтобы волнистые жидкости были включены." #: src/settings_translation_file.cpp msgid "" @@ -4170,6 +4082,10 @@ msgstr "Идентификатор джойстика" msgid "Joystick button repetition interval" msgstr "Интервал повторного клика кнопкой джойстика" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Мертвая зона джойстика" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Чувствительность джойстика" @@ -4272,6 +4188,16 @@ msgstr "" "См. http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша копания.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4414,6 +4340,17 @@ msgstr "" "См. http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша прыжка.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4981,7 +4918,7 @@ msgstr "Минимальное количество больших пещер" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Пропорция затопленных больших пещер" #: src/settings_translation_file.cpp msgid "Large chat console key" @@ -5018,13 +4955,12 @@ msgstr "" "обновляются по сети." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" -"Установка в true включает покачивание листвы.\n" -"Требует, чтобы шейдеры были включены." +"Длина волн жидкостей.\n" +"Требуется включение волнистых жидкостей." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" @@ -5059,34 +4995,28 @@ msgstr "" "- verbose (подробности)" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost" -msgstr "Средний подъём кривой света" +msgstr "Усиление кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost center" -msgstr "Центр среднего подъёма кривой света" +msgstr "Центр усиления кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve boost spread" -msgstr "Распространение среднего роста кривой света" +msgstr "Распространение усиления роста кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve gamma" -msgstr "Средний подъём кривой света" +msgstr "Гамма кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve high gradient" -msgstr "Средний подъём кривой света" +msgstr "Высокий градиент кривой света" #: src/settings_translation_file.cpp -#, fuzzy msgid "Light curve low gradient" -msgstr "Центр среднего подъёма кривой света" +msgstr "Низкий градиент кривой света" #: src/settings_translation_file.cpp msgid "" @@ -5165,18 +5095,13 @@ msgid "Lower Y limit of dungeons." msgstr "Нижний лимит Y для подземелий." #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "Нижний лимит Y для подземелий." +msgstr "Нижний лимит Y для парящих островов." #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "Скрипт главного меню" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Стиль главного меню" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5192,6 +5117,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Сделать все жидкости непрозрачными" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Уровень сжатия карты для дискового хранилища" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Уровень сжатия карты для передачи по сети" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Каталог сохранения карт" @@ -5201,7 +5134,6 @@ msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "Атрибуты генерации карт для Mapgen Carpathian." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." @@ -5210,14 +5142,13 @@ msgstr "" "Иногда озера и холмы могут добавляться в плоский мир." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen Fractal.\n" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" "Атрибуты генерации для картогенератора плоскости.\n" -"«terrain» включает генерацию нефрактального рельефа:\n" +"'terrain' включает генерацию нефрактального рельефа:\n" "океаны, острова и подземелья." #: src/settings_translation_file.cpp @@ -5253,15 +5184,16 @@ msgstr "" "активируются джунгли, а флаг «jungles» игнорируется." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" -"Атрибуты генерации карт для Mapgen v7.\n" -"«хребты» включают реки." +"Атрибуты генерации карт, специфичные для Mapgen v7.\n" +"'ridges': Реки.\n" +"'floatlands': Парящие острова суши в атмосфере.\n" +"'caverns': Гигантские пещеры глубоко под землей." #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5376,8 +5308,9 @@ msgid "Maximum FPS" msgstr "Максимум кадровой частоты (FPS)" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Максимум кадровой частоты при паузе." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"Максимальный FPS, когда окно не сфокусировано, или когда игра приостановлена." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5389,20 +5322,21 @@ msgstr "Максимальная ширина горячей панели" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "Максимальный порог случайного количества больших пещер на кусок карты" +msgstr "" +"Максимальный предел случайного количества больших пещер на кусок карты." #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." msgstr "" +"Максимальный предел случайного количества маленьких пещер на кусок карты." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" "Максимальное сопротивление жидкости. Контролирует замедление\n" -"при поступлении жидкости с высокой скоростью." +"при погружении в жидкость на высокой скорости." #: src/settings_translation_file.cpp msgid "" @@ -5421,22 +5355,31 @@ msgstr "" "загрузки." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" -"Максимальное количество блоков в очереди на генерацию. Оставьте пустым для " -"автоматического выбора подходящего значения." +"Максимальное количество блоков в очередь, которые должны быть сформированы.\n" +"Это ограничение применяется для каждого игрока." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" -"Максимальное количество блоков в очереди на загрузку из файла. Оставьте " -"пустым для автоматического выбора подходящего значения." +"Максимальное количество блоков в очередь, которые должны быть загружены из " +"файла.\n" +"Это ограничение применяется для каждого игрока." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Максимальное количество одновременных загрузок. Загрузки, превышающие этот " +"лимит, будут поставлены в очередь.\n" +"Это должно быть меньше curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5533,7 +5476,7 @@ msgstr "Метод подсветки выделенного объекта." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Минимальный уровень записи в чат." #: src/settings_translation_file.cpp msgid "Minimap" @@ -5548,13 +5491,12 @@ msgid "Minimap scan height" msgstr "Высота сканирования миникарты" #: src/settings_translation_file.cpp -#, fuzzy msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "3D-шум, определяющий количество подземелий в куске карты." +msgstr "Минимальный предел случайного количества больших пещер на кусок карты." #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" +msgstr "Минимальное количество маленьких пещер на кусок карты." #: src/settings_translation_file.cpp msgid "Minimum texture size" @@ -5653,9 +5595,8 @@ msgid "" msgstr "Имя сервера, отображаемое при входе и в списке серверов." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near plane" -msgstr "Близкая плоскость отсечения" +msgstr "Ближняя плоскость" #: src/settings_translation_file.cpp msgid "Network" @@ -5693,20 +5634,11 @@ msgstr "Интервал таймера нод" msgid "Noises" msgstr "Шумы" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Выборка карт нормалей" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Сила карт нормалей" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Количество emerge-потоков" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5720,19 +5652,16 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "Количество возникающих потоков для использования.\n" -"ВНИМАНИЕ: Пока могут появляться ошибки, вызывающие сбой, если\n" -"«num_emerge_threads» больше 1. Строго рекомендуется использовать\n" -"значение «1», до тех пор, пока предупреждение не будет убрано.\n" "Значение 0:\n" "- Автоматический выбор. Количество потоков будет\n" -"- «число процессоров - 2», минимально — 1.\n" +"- 'число процессоров - 2', минимально — 1.\n" "Любое другое значение:\n" "- Указывает количество потоков, минимально — 1.\n" "ВНИМАНИЕ: Увеличение числа потоков улучшает быстродействие движка\n" "картогенератора, но может снижать производительность игры, мешая другим\n" "процессам, особенно в одиночной игре и при запуске кода Lua в " -"«on_generated».\n" -"Для большинства пользователей наилучшим значением может быть «1»." +"'on_generated'.\n" +"Для большинства пользователей наилучшим значением может быть '1'." #: src/settings_translation_file.cpp msgid "" @@ -5746,10 +5675,6 @@ msgstr "" "потреблением\n" "памяти (4096=100 MБ, как правило)." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Количество итераций Parallax Occlusion." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Сетевой репозиторий" @@ -5761,12 +5686,12 @@ msgstr "Непрозрачные жидкости" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" +msgstr "Непрозрачность (альфа) тени позади шрифта по умолчанию, между 0 и 255." #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgstr "Непрозрачность (альфа) тени за резервным шрифтом, между 0 и 255." #: src/settings_translation_file.cpp msgid "" @@ -5777,34 +5702,6 @@ msgstr "" "Открыть меню паузы при потере окном фокуса. Не срабатывает, если какая-либо\n" "форма уже открыта." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Общее смещение эффекта Parallax Occlusion, обычно масштаб/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Общее смещение эффекта Parallax Occlusion." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Включить параллакс" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Смещение параллакса" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Повторение параллакса" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Режим параллакса" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Масштаб параллаксной окклюзии" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5813,12 +5710,20 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" +"Путь к резервному шрифту.\n" +"Если параметр «freetype» включён: должен быть шрифтом TrueType.\n" +"Если параметр «freetype» отключён: должен быть векторным XML-шрифтом.\n" +"Этот шрифт будет использоваться для некоторых языков или если стандартный " +"шрифт недоступен." #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Путь для сохранения скриншотов. Может быть абсолютным или относительным " +"путем.\n" +"Папка будет создана, если она еще не существует." #: src/settings_translation_file.cpp msgid "" @@ -5840,6 +5745,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" +"Путь к шрифту по умолчанию.\n" +"Если параметр «freetype» включен: должен быть шрифт TrueType.\n" +"Если параметр «freetype» отключен: это должен быть растровый или векторный " +"шрифт XML.\n" +"Резервный шрифт будет использоваться, если шрифт не может быть загружен." #: src/settings_translation_file.cpp msgid "" @@ -5848,6 +5758,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" +"Путь к моноширинному шрифту.\n" +"Если параметр «freetype» включен: должен быть шрифт TrueType.\n" +"Если параметр «freetype» отключен: это должен быть растровый или векторный " +"шрифт XML.\n" +"Этот шрифт используется, например, для экран консоли и экрана профилей." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" @@ -5855,12 +5770,11 @@ msgstr "Пауза при потере фокуса" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "Ограничение поочередной загрузки блоков с диска на игрока" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "Ограничение очередей emerge для генерации" +msgstr "Ограничение для каждого игрока в очереди блоков для генерации" #: src/settings_translation_file.cpp msgid "Physics" @@ -5874,6 +5788,16 @@ msgstr "Кнопка движение вниз/вверх по направле msgid "Pitch move mode" msgstr "Режим движения вниз/вверх по направлению взгляда" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Клавиша полёта" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Интервал повторного клика правой кнопкой" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5944,7 +5868,7 @@ msgstr "Профилирование" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "адрес приёмника Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -5953,10 +5877,14 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Адрес приёмника Prometheus.\n" +"Если мой тест скомпилирован с включенной опцией ENABLE_PROMETHEUS,\n" +"включить приемник метрик для Prometheus по этому адресу.\n" +"Метрики можно получить на http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." -msgstr "" +msgstr "Доля больших пещер, которые содержат жидкость." #: src/settings_translation_file.cpp msgid "" @@ -5984,9 +5912,8 @@ msgid "Recent Chat Messages" msgstr "Недавние сообщения чата" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" -msgstr "Путь для сохранения отчётов" +msgstr "Стандартный путь шрифта" #: src/settings_translation_file.cpp msgid "Remote media" @@ -6056,10 +5983,6 @@ msgstr "Размер шума подводных хребтов" msgid "Right key" msgstr "Правая клавиша меню" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Интервал повторного клика правой кнопкой" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Глубина русла реки" @@ -6200,7 +6123,6 @@ msgid "Selection box width" msgstr "Толщина рамки выделения" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Selects one of 18 fractal types.\n" "1 = 4D \"Roundy\" Mandelbrot set.\n" @@ -6293,7 +6215,6 @@ msgstr "" "в чат." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." @@ -6302,16 +6223,14 @@ msgstr "" "Требует, чтобы шейдеры были включены." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Установка в true включает волны на воде.\n" +"Установка в true включает волнистые жидкости (например, вода).\n" "Требует, чтобы шейдеры были включены." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." @@ -6335,18 +6254,20 @@ msgstr "" "Работают только с видео-бэкендом OpenGL." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." -msgstr "Смещение тени шрифта. Если указан 0, то тень не будет показана." +msgstr "" +"Смещение тени стандартного шрифта (в пикселях). Если указан 0, то тень не " +"будет показана." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." -msgstr "Смещение тени шрифта. Если указан 0, то тень не будет показана." +msgstr "" +"Смещение тени резервного шрифта (в пикселях). Если указан 0, то тень не " +"будет показана." #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." @@ -6360,6 +6281,20 @@ msgstr "Показывать отладочную информацию" msgid "Show entity selection boxes" msgstr "Показывать область выделения объектов" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Установка языка. Оставьте пустым для использования системного языка.\n" +"Требует перезапуска после изменения." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Стандартный жирный шрифт" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Сообщение о выключении" @@ -6403,11 +6338,11 @@ msgstr "Склон и заполнение работают совместно #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "" +msgstr "Максимальное количество маленьких пещер" #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "" +msgstr "Минимальное количество маленьких пещер" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." @@ -6482,16 +6417,19 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Устанавливает размер стека нодов, предметов и инструментов по-умолчанию.\n" +"Обратите внимание, что моды или игры могут явно установить стек для " +"определенных (или всех) предметов." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Spread of light curve boost range.\n" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" -"Распространение среднего подъёма кривой света.\n" -"Стандартное отклонение среднего подъёма по Гауссу." +"Диапазон увеличения кривой света.\n" +"Регулирует ширину увеличиваемого диапазона.\n" +"Стандартное отклонение усиления кривой света по Гауссу." #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6510,13 +6448,8 @@ msgid "Step mountain spread noise" msgstr "Шаг шума распространения гор" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "Сила параллакса." - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Сила сгенерированных карт нормалей." +msgstr "Сила параллакса в 3D режиме." #: src/settings_translation_file.cpp msgid "" @@ -6524,6 +6457,9 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"Сила искажения света.\n" +"3 параметра 'усиления' определяют предел искажения света,\n" +"который увеличивается в освещении." #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6546,6 +6482,21 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Уровень поверхности необязательной воды размещенной на твердом слое парящих " +"островов. \n" +"Вода по умолчанию отключена и будет размещена только в том случае, если это " +"значение \n" +"будет установлено выше «mgv7_floatland_ymax» - «mgv7_floatland_taper» \n" +"(начало верхнего сужения).\n" +"*** ПРЕДУПРЕЖДЕНИЕ, ПОТЕНЦИАЛЬНАЯ ОПАСНОСТЬ ДЛЯ МИРОВ И РАБОТЫ СЕРВЕРА ***:\n" +"При включении размещения воды парящих островов должны быть сконфигурированы " +"и проверены \n" +"на наличие сплошного слоя, установив «mgv7_floatland_density» на 2,0 (или " +"другое \n" +"требуемое значение в зависимости от «mgv7_np_floatland»), чтобы избежать \n" +"чрезмерного интенсивного потока воды на сервере и избежать обширного " +"затопления\n" +"поверхности мира внизу." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6625,6 +6576,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "Адрес сетевого репозитория" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "Мертвая зона джойстика" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6662,6 +6617,11 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"Максимальная высота поверхности волнистых жидкостей.\n" +"4.0 = высота волны равна двум нодам.\n" +"0.0 = волна не двигается вообще.\n" +"Значение по умолчанию — 1.0 (1/2 ноды).\n" +"Требует, чтобы волнистые жидкости были включены." #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." @@ -6677,7 +6637,6 @@ msgstr "" "настройке мода." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "The radius of the volume of blocks around every player that is subject to " "the\n" @@ -6687,21 +6646,23 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" -"Радиус объёма блоков вокруг каждого игрока, в котором действуют\n" -"активные блоки, определённые в блоках карты (16 нод).\n" -"В активных блоках загружаются объекты и работает ABM.\n" -"Также это минимальный диапазон, в котором обрабатываются активные объекты " +"Радиус объёма блоков вокруг каждого игрока, на которого распространяется " +"действие\n" +"активного материала блока, указанного в mapblocks (16 узлов).\n" +"В активные блоки загружаются объекты и запускаются ПРО.\n" +"Это также минимальный диапазон, в котором поддерживаются активные объекты " "(мобы).\n" -"Необходимо настраивать вместе с active_object_range." +"Это должно быть настроено вместе с active_object_send_range_blocks." #: src/settings_translation_file.cpp +#, fuzzy msgid "" "The rendering back-end for Irrlicht.\n" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Программный интерфейс визуализации для Irrlicht.\n" "После изменения этого параметра потребуется перезапуск.\n" @@ -6740,6 +6701,12 @@ msgstr "" "старые элементы очереди\n" "Значение 0 отключает этот функционал." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6749,10 +6716,10 @@ msgstr "" "когда зажата комбинация кнопок на джойстике." #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "Задержка в секундах между кликами при зажатой правой кнопке мыши." #: src/settings_translation_file.cpp @@ -6835,7 +6802,6 @@ msgid "Trilinear filtering" msgstr "Трилинейная фильтрация" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6885,9 +6851,8 @@ msgid "Upper Y limit of dungeons." msgstr "Верхний лимит Y для подземелий." #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "Верхний лимит Y для подземелий." +msgstr "Верхний лимит Y для парящих островов." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." @@ -6917,6 +6882,26 @@ msgstr "" "использовании пакета текстур высокого разрешения.\n" "Гамма-коррекция при уменьшении масштаба не поддерживается." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Используйте многовыборочное сглаживание (MSAA) для сглаживания краев " +"блоков.\n" +"Этот алгоритм сглаживает область просмотра 3D, сохраняя резкость " +"изображения,\n" +"но это не влияет на внутренности текстур\n" +"(что особенно заметно на прозрачных текстурах).\n" +"Когда шейдеры отключены, между узлами появляются видимые пробелы.\n" +"Если установлено значение 0, MSAA отключено.\n" +"После изменения этой опции требуется перезагрузка." + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Использовать трилинейную фильтрацию для масштабирования текстур." @@ -7026,13 +7011,12 @@ msgid "Volume" msgstr "Громкость" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" -"Включает Parallax Occlusion.\n" -"Требует, чтобы шейдеры были включены." +"Громкость всех звуков.\n" +"Требуется включить звуковую систему." #: src/settings_translation_file.cpp msgid "" @@ -7079,24 +7063,20 @@ msgid "Waving leaves" msgstr "Покачивание листвы" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "Покачивание жидкостей" +msgstr "Волнистые жидкости" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "Высота волн на воде" +msgstr "Высота волн волнистых жидкостей" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "Скорость волн на воде" +msgstr "Скорость волн волнистых жидкостей" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "Длина волн на воде" +msgstr "Длина волн волнистых жидкостей" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -7150,14 +7130,20 @@ msgstr "" "автомасштабирования текстур." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Whether FreeType fonts are used, requires FreeType support to be compiled " "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" -"Использовать шрифты FreeType. Поддержка FreeType должна быть включена при " -"сборке." +"Использовать ли шрифты FreeType. Поддержка FreeType должна быть включена при " +"сборке.\n" +"Если отключено, используются растровые и XML-векторные изображения." + +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." @@ -7196,6 +7182,10 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"Отключить ли звуки. Вы можете включить звуки в любое время, если \n" +"звуковая система не отключена (enable_sound=false). \n" +"В игре, вы можете отключить их с помощью клавиши mute\n" +"или вызывая меню паузы." #: src/settings_translation_file.cpp msgid "" @@ -7280,6 +7270,10 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Y-расстояние, на котором равнины сужаются от полной плотности до нуля.\n" +"Сужение начинается на этом расстоянии от предела Y.\n" +"Для твердого слоя парящих островов это контролирует высоту холмов/гор.\n" +"Должно быть меньше или равно половине расстояния между пределами Y." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." @@ -7301,6 +7295,35 @@ msgstr "Y-уровень нижнего рельефа и морского дн msgid "Y-level of seabed." msgstr "Y-уровень морского дна." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Уровень сжатия ZLib для использования при сохранении картографических блоков " +"на диске.\n" +"-1 - уровень сжатия Zlib по умолчанию\n" +"0 - без компрессора, самый быстрый\n" +"9 - лучшее сжатие, самое медленное\n" +"(уровни 1-3 используют \"быстрый\" метод Zlib, 4-9 используют обычный метод)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Уровень сжатия ZLib для использования при отправке блоков карты клиенту.\n" +"-1 - уровень сжатия Zlib по умолчанию\n" +"0 - без компрессора, самый быстрый\n" +"9 - лучшее сжатие, самое медленное\n" +"(уровни 1-3 используют \"быстрый\" метод Zlib, 4-9 используют обычный метод)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Тайм-аут загрузки файла с помощью cURL" @@ -7313,25 +7336,12 @@ msgstr "Лимит одновременных соединений cURL" msgid "cURL timeout" msgstr "cURL тайм-аут" -#~ msgid "Ok" -#~ msgstr "Oк" - -#~ msgid "Back" -#~ msgstr "Назад" - -#~ msgid "Downloading and installing $1, please wait..." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Загружается и устанавливается $1.\n" -#~ "Пожалуйста, подождите..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Ограничение очередей emerge на диске" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Сила параллакса" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Путь для сохранения скриншотов." +#~ "0 = Параллакс окклюзии с информацией о склоне (быстро).\n" +#~ "1 = Рельефный маппинг (медленно, но качественно)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7345,9 +7355,41 @@ msgstr "cURL тайм-аут" #~ msgid "Alters how mountain-type floatlands taper above and below midpoint." #~ msgstr "Управляет сужением островов горного типа ниже средней точки." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Уверены, что хотите сбросить мир одиночной игры?" + +#~ msgid "Back" +#~ msgstr "Назад" + +#~ msgid "Bump Mapping" +#~ msgstr "Бампмаппинг" + +#~ msgid "Bumpmapping" +#~ msgstr "Бампмаппинг" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Центр среднего подъёма кривой света." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Изменение интерфейса в главном меню:\n" +#~ "- Full: несколько однопользовательских миров, выбор игры, выбор пакета " +#~ "текстур и т. д.\n" +#~ "- Simple: один однопользовательский мир без выбора игр или текстур. " +#~ "Может быть полезно для небольших экранов." + +#~ msgid "Config mods" +#~ msgstr "Настройка модов" + +#~ msgid "Configure" +#~ msgstr "Настроить" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7360,6 +7402,9 @@ msgstr "cURL тайм-аут" #~ "Контролирует ширину тоннелей. Меньшие значения создают более широкие " #~ "тоннели." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Цвет перекрестия (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Резкость темноты" @@ -7370,6 +7415,13 @@ msgstr "cURL тайм-аут" #~ "Определяет области гладкой поверхности на парящих островах.\n" #~ "Гладкие парящие острова появляются, когда шум больше ноля." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Определяет шаг выборки текстуры.\n" +#~ "Более высокое значение приводит к более гладким картам нормалей." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7379,12 +7431,52 @@ msgstr "cURL тайм-аут" #~ "определений биома.\n" #~ "Y верхней границы лавы в больших пещерах." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "" +#~ "Загружается и устанавливается $1.\n" +#~ "Пожалуйста, подождите..." + #~ msgid "Enable VBO" #~ msgstr "Включить объекты буфера вершин (VBO)" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Включает бампмаппинг для текстур. Карты нормалей должны быть " +#~ "предоставлены\n" +#~ "пакетом текстур или сгенерированы автоматически.\n" +#~ "Требует, чтобы шейдеры были включены." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Включить кинематографическое тональное отображение" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Включает генерацию карт нормалей \"на лету\" (эффект тиснения).\n" +#~ "Требует, чтобы бампмаппинг был включён." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Включает Parallax Occlusion.\n" +#~ "Требует, чтобы шейдеры были включены." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Экспериментальная опция, может привести к видимым зазорам\n" +#~ "между блоками, когда значение больше, чем 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "Кадровая частота во время паузы" + #~ msgid "Floatland base height noise" #~ msgstr "Шум базовой высоты парящих островов" @@ -7397,6 +7489,12 @@ msgstr "cURL тайм-аут" #~ msgid "Gamma" #~ msgstr "Гамма" +#~ msgid "Generate Normal Maps" +#~ msgstr "Создавать карты нормалей" + +#~ msgid "Generate normalmaps" +#~ msgstr "Генерировать карты нормалей" + #~ msgid "IPv6 support." #~ msgstr "Поддержка IPv6." @@ -7406,18 +7504,105 @@ msgstr "cURL тайм-аут" #~ msgid "Lightness sharpness" #~ msgstr "Резкость освещённости" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Ограничение очередей emerge на диске" + +#~ msgid "Main" +#~ msgstr "Главное меню" + +#~ msgid "Main menu style" +#~ msgstr "Стиль главного меню" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Миникарта в режиме радара, увеличение x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Миникарта в режиме радара, увеличение x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Миникарта в поверхностном режиме, увеличение x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Миникарта в поверхностном режиме, увеличение x4" + +#~ msgid "Name/Password" +#~ msgstr "Имя/Пароль" + +#~ msgid "No" +#~ msgstr "Нет" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Выборка карт нормалей" + +#~ msgid "Normalmaps strength" +#~ msgstr "Сила карт нормалей" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Количество итераций Parallax Occlusion." + +#~ msgid "Ok" +#~ msgstr "Oк" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Общее смещение эффекта Parallax Occlusion, обычно масштаб/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Общее смещение эффекта Parallax Occlusion." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Объёмные текстуры" + +#~ msgid "Parallax occlusion" +#~ msgstr "Включить параллакс" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Смещение параллакса" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Повторение параллакса" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Режим параллакса" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Масштаб параллаксной окклюзии" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Сила параллакса" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "Путь к шрифту TrueType или картинке со шрифтом." +#~ msgid "Path to save screenshots at." +#~ msgstr "Путь для сохранения скриншотов." + +#~ msgid "Projecting dungeons" +#~ msgstr "Проступающие подземелья" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Сброс одиночной игры" + +#~ msgid "Select Package File:" +#~ msgstr "Выберите файл дополнения:" + #~ msgid "Shadow limit" #~ msgstr "Лимит теней" +#~ msgid "Start Singleplayer" +#~ msgstr "Начать одиночную игру" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Сила сгенерированных карт нормалей." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Сила среднего подъёма кривой света." #~ msgid "This font will be used for certain languages." #~ msgstr "Этот шрифт будет использован для некоторых языков." +#~ msgid "Toggle Cinematic" +#~ msgstr "Кино" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7429,24 +7614,24 @@ msgstr "cURL тайм-аут" #~ "Вариация высоты холмов и глубин озёр на гладкой местности парящих " #~ "островов." +#~ msgid "View" +#~ msgstr "Вид" + +#~ msgid "Waving Water" +#~ msgstr "Волны на воде" + #~ msgid "Waving water" #~ msgstr "Волны на воде" +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Верхний предел по Y для больших псевдослучайных пещер." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "Y-уровень середины поплавка и поверхности озера." #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Y-уровень, на который распространяются тени с плавающей точкой." -#~ msgid "Projecting dungeons" -#~ msgstr "Проступающие подземелья" - -#~ msgid "Waving Water" -#~ msgstr "Волны на воде" - -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Верхний предел по Y для больших псевдослучайных пещер." - -#~ msgid "Select Package File:" -#~ msgstr "Выберите файл дополнения:" +#~ msgid "Yes" +#~ msgstr "Да" diff --git a/po/sk/minetest.po b/po/sk/minetest.po index 6be7ed603..c8249c0f0 100644 --- a/po/sk/minetest.po +++ b/po/sk/minetest.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: rubenwardy \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Marian \n" "Language-Team: Slovak \n" "Language: sk\n" @@ -17,7 +17,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Oživiť" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Zomrel si" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -43,10 +51,6 @@ msgstr "Znova pripojiť" msgid "The server has requested a reconnect:" msgstr "Server požadoval obnovu spojenia:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Nahrávam..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Nesúhlas verzií protokolov. " @@ -59,12 +63,6 @@ msgstr "Server vyžaduje protokol verzie $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Server podporuje verzie protokolov: $1 - $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Skús znova povoliť verejný zoznam serverov a skontroluj internetové " -"pripojenie." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Podporujeme len protokol verzie $1." @@ -73,7 +71,8 @@ msgstr "Podporujeme len protokol verzie $1." msgid "We support protocol versions between version $1 and $2." msgstr "Podporujeme verzie protokolov: $1 - $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -83,7 +82,8 @@ msgstr "Podporujeme verzie protokolov: $1 - $2." msgid "Cancel" msgstr "Zruš" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Závislosti:" @@ -93,15 +93,15 @@ msgstr "Deaktivuj všetko" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "Deaktivuj rozšírenie" +msgstr "Deaktivuj balíček rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "Povoľ všetko" +msgstr "Aktivuj všetko" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "Povoľ rozšírenie" +msgstr "Aktivuj balíček rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "" @@ -117,7 +117,7 @@ msgstr "Nájdi viac rozšírení" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "Rozšírenie:" +msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" @@ -154,16 +154,56 @@ msgstr "Svet:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "povolené" +msgstr "aktívne" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" už exituje. Chcel by si ho prepísať?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "Závislosti $1 a $2 budú nainštalované." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 od $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 sťahujem,\n" +"$2 čaká v rade" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 sťahujem..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 požadované závislosti nie je možné nájsť." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 bude nainštalovaný, a $2 závislosti budú preskočené." #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Všetky balíčky" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Už je nainštalované" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Naspäť do hlavného menu" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Základná hra:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB nie je k dispozícií ak bol Minetest skompilovaný bez cURL" @@ -185,6 +225,14 @@ msgstr "Hry" msgid "Install" msgstr "Inštaluj" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "Inštaluj $1" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Nainštaluj chýbajúce závislosti" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -199,9 +247,24 @@ msgid "No results" msgstr "Bez výsledku" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Hľadaj" +msgid "No updates" +msgstr "Bez aktualizácií" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Nenájdené" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Prepíš" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Prosím skontroluj či je základná hra v poriadku." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Čaká v rade" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -216,8 +279,12 @@ msgid "Update" msgstr "Aktualizuj" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Zobraziť" +msgid "Update All [$1]" +msgstr "Aktualizuj všetky [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Pozri si viac informácií vo webovom prehliadači" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -472,13 +539,9 @@ msgstr "< Späť na nastavenia" msgid "Browse" msgstr "Prehliadaj" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "Zablokované" +msgstr "Vypnuté" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" @@ -486,7 +549,7 @@ msgstr "Upraviť" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "Povolené" +msgstr "Aktivované" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" @@ -520,6 +583,10 @@ msgstr "Obnov štandardné hodnoty" msgid "Scale" msgstr "Mierka" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Hľadaj" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Zvoľ adresár" @@ -589,7 +656,7 @@ msgstr "zjemnené (eased)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "$1 (povolený)" +msgstr "$1 (Aktivované)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 mods" @@ -638,13 +705,28 @@ msgstr "Nie je možné nainštalovať rozšírenie $1" msgid "Unable to install a modpack as a $1" msgstr "Nie je možné nainštalovať balíček rozšírení $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Nahrávam..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Skriptovanie na strane klienta je zakázané" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Skús znova povoliť verejný zoznam serverov a skontroluj internetové " +"pripojenie." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Prehliadaj online obsah" +msgstr "Hľadaj nový obsah na internete" #: builtin/mainmenu/tab_content.lua msgid "Content" -msgstr "Obsah" +msgstr "Doplnky" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" @@ -688,11 +770,19 @@ msgstr "Hlavný vývojari" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "Uznanie" +msgstr "Poďakovanie" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Otvor adresár s užívateľskými dátami" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Otvor adresár, ktorý obsahuje svety, hry, mody a textúry\n" +"od užívateľov v správcovi/prieskumníkovi súborov." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -711,16 +801,12 @@ msgid "Bind Address" msgstr "Priraď adresu" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurácia" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kreatívny mód" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "Povoľ poškodenie" +msgstr "Aktivuj zranenie" #: builtin/mainmenu/tab_local.lua msgid "Host Game" @@ -732,11 +818,11 @@ msgstr "Hosťuj server" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "Inštaluj hru z ContentDB" +msgstr "Inštaluj hry z ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Meno/Heslo" +msgid "Name" +msgstr "Meno" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -744,16 +830,24 @@ msgstr "Nový" #: builtin/mainmenu/tab_local.lua msgid "No world created or selected!" -msgstr "" +msgstr "Nie je vytvorený ani zvolený svet!" + +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Heslo" #: builtin/mainmenu/tab_local.lua msgid "Play Game" -msgstr "" +msgstr "Hraj hru" #: builtin/mainmenu/tab_local.lua msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Zvoľ mody" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Zvoľ si svet:" @@ -764,288 +858,252 @@ msgstr "Port servera" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "" +msgstr "Spusti hru" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" -msgstr "" +msgstr "Adresa / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" -msgstr "" +msgstr "Pripojiť sa" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" -msgstr "" +msgstr "Kreatívny mód" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" -msgstr "" +msgstr "Poškodenie je aktivované" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "" +msgstr "Zmaž obľúbené" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" -msgstr "" +msgstr "Obľúbené" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "" +msgstr "Pripoj sa do hry" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "" +msgstr "Meno / Heslo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" -msgstr "" +msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" -msgstr "" +msgstr "PvP je aktívne" #: builtin/mainmenu/tab_settings.lua msgid "2x" -msgstr "" +msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "" +msgstr "3D mraky" #: builtin/mainmenu/tab_settings.lua msgid "4x" -msgstr "" +msgstr "4x" #: builtin/mainmenu/tab_settings.lua msgid "8x" -msgstr "" +msgstr "8x" #: builtin/mainmenu/tab_settings.lua msgid "All Settings" -msgstr "" +msgstr "Všetky nastavenia" #: builtin/mainmenu/tab_settings.lua msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" +msgstr "Vyhladzovanie:" #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" -msgstr "" +msgstr "Automat. ulož. veľkosti okna" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" +msgstr "Bilineárny filter" #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" -msgstr "" +msgstr "Zmeň ovládacie klávesy" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" -msgstr "" +msgstr "Prepojené sklo" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" +msgstr "Ozdobné listy" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" -msgstr "" +msgstr "Mipmapy" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" +msgstr "Mipmapy + Aniso. filter" #: builtin/mainmenu/tab_settings.lua msgid "No Filter" -msgstr "" +msgstr "Žiaden filter" #: builtin/mainmenu/tab_settings.lua msgid "No Mipmap" -msgstr "" +msgstr "Žiadne Mipmapy" #: builtin/mainmenu/tab_settings.lua msgid "Node Highlighting" -msgstr "" +msgstr "Nasvietenie kocky" #: builtin/mainmenu/tab_settings.lua msgid "Node Outlining" -msgstr "" +msgstr "Obrys kocky" #: builtin/mainmenu/tab_settings.lua msgid "None" -msgstr "" +msgstr "Žiadne" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Leaves" -msgstr "" +msgstr "Nepriehľadné listy" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" +msgstr "Nepriehľadná voda" #: builtin/mainmenu/tab_settings.lua msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" +msgstr "Častice" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "" +msgstr "Zobrazenie:" #: builtin/mainmenu/tab_settings.lua msgid "Settings" -msgstr "" +msgstr "Nastavenia" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" -msgstr "" +msgstr "Shadery" + +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Shadery (experimentálne)" #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" -msgstr "" +msgstr "Shadery (nedostupné)" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" -msgstr "" +msgstr "Jednoduché listy" #: builtin/mainmenu/tab_settings.lua msgid "Smooth Lighting" -msgstr "" +msgstr "Jemné osvetlenie" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "" +msgstr "Textúrovanie:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" +msgstr "Aby mohli byť aktivované shadery, musí sa použiť OpenGL." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "" +msgstr "Tone Mapping (Optim. farieb)" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "" +msgstr "Dotykový prah: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" -msgstr "" +msgstr "Trilineárny filter" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" -msgstr "" +msgstr "Vlniace sa listy" #: builtin/mainmenu/tab_settings.lua msgid "Waving Liquids" -msgstr "" +msgstr "Vlniace sa kvapaliny" #: builtin/mainmenu/tab_settings.lua msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" +msgstr "Vlniace sa rastliny" #: src/client/client.cpp msgid "Connection timed out." -msgstr "" +msgstr "Časový limit pripojenia vypršal." #: src/client/client.cpp msgid "Done!" -msgstr "" +msgstr "Hotovo!" #: src/client/client.cpp msgid "Initializing nodes" -msgstr "" +msgstr "Inicializujem kocky" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "" +msgstr "Inicializujem kocky..." #: src/client/client.cpp msgid "Loading textures..." -msgstr "" +msgstr "Nahrávam textúry..." #: src/client/client.cpp msgid "Rebuilding shaders..." -msgstr "" +msgstr "Obnovujem shadery..." #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" -msgstr "" +msgstr "Chyba spojenia (časový limit?)" #: src/client/clientlauncher.cpp msgid "Could not find or load game \"" -msgstr "" +msgstr "Nie je možné nájsť alebo nahrať hru \"" #: src/client/clientlauncher.cpp msgid "Invalid gamespec." -msgstr "" +msgstr "Chybná špec. hry." #: src/client/clientlauncher.cpp msgid "Main Menu" -msgstr "" +msgstr "Hlavné menu" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." -msgstr "" +msgstr "Nie je zvolený svet ani poskytnutá adresa. Niet čo robiť." #: src/client/clientlauncher.cpp msgid "Player name too long." -msgstr "" +msgstr "Meno hráča je príliš dlhé." #: src/client/clientlauncher.cpp msgid "Please choose a name!" -msgstr "" +msgstr "Prosím zvoľ si meno!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "" +msgstr "Dodaný súbor s heslom nie je možné otvoriť: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " -msgstr "" +msgstr "Zadaná cesta k svetu neexistuje: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1057,86 +1115,88 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "no" #: src/client/game.cpp msgid "" "\n" "Check debug.txt for details." msgstr "" +"\n" +"Pozri detaily v debug.txt." #: src/client/game.cpp msgid "- Address: " -msgstr "" +msgstr "- Adresa: " #: src/client/game.cpp msgid "- Creative Mode: " -msgstr "" +msgstr "- Kreatívny mód: " #: src/client/game.cpp msgid "- Damage: " -msgstr "" +msgstr "- Poškodenie: " #: src/client/game.cpp msgid "- Mode: " -msgstr "" +msgstr "- Mode: " #: src/client/game.cpp msgid "- Port: " -msgstr "" +msgstr "- Port: " #: src/client/game.cpp msgid "- Public: " -msgstr "" +msgstr "- Verejný: " #. ~ PvP = Player versus Player #: src/client/game.cpp msgid "- PvP: " -msgstr "" +msgstr "- PvP: " #: src/client/game.cpp msgid "- Server Name: " -msgstr "" +msgstr "- Meno servera: " #: src/client/game.cpp msgid "Automatic forward disabled" -msgstr "" +msgstr "Automatický pohyb vpred je zakázaný" #: src/client/game.cpp msgid "Automatic forward enabled" -msgstr "" +msgstr "Automatický pohyb vpred je aktivovaný" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "" +msgstr "Aktualizácia kamery je zakázaná" #: src/client/game.cpp msgid "Camera update enabled" -msgstr "" +msgstr "Aktualizácia kamery je aktivovaná" #: src/client/game.cpp msgid "Change Password" -msgstr "" +msgstr "Zmeniť heslo" #: src/client/game.cpp msgid "Cinematic mode disabled" -msgstr "" +msgstr "Filmový režim je zakázaný" #: src/client/game.cpp msgid "Cinematic mode enabled" -msgstr "" +msgstr "Filmový režim je aktivovaný" #: src/client/game.cpp msgid "Client side scripting is disabled" -msgstr "" +msgstr "Skriptovanie na strane klienta je zakázané" #: src/client/game.cpp msgid "Connecting to server..." -msgstr "" +msgstr "Pripájam sa k serveru..." #: src/client/game.cpp msgid "Continue" -msgstr "" +msgstr "Pokračuj" #: src/client/game.cpp #, c-format @@ -1146,39 +1206,50 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" +"Ovládanie:\n" +"- %s: pohyb vpred\n" +"- %s: pohyb vzad\n" +"- %s: pohyb doľava\n" +"- %s: pohyb doprava\n" +"- %s: skoč/vylez\n" +"- %s: kop/udri\n" +"- %s: polož/použi\n" +"- %s: zakrádaj sa/choď dole\n" +"- %s: odhoď vec\n" +"- %s: inventár\n" +"- Myš: otoč sa/obzeraj sa\n" +"- Myš koliesko: zvoľ si vec\n" +"- %s: komunikácia\n" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "Vytváram klienta..." #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "Vytváram server..." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "Ladiace informácie a Profilový graf sú skryté" #: src/client/game.cpp msgid "Debug info shown" -msgstr "" +msgstr "Ladiace informácie zobrazené" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "Ladiace informácie, Profilový graf a Obrysy sú skryté" #: src/client/game.cpp msgid "" @@ -1195,548 +1266,517 @@ msgid "" "- touch&drag, tap 2nd finger\n" " --> place single item to slot\n" msgstr "" +"Štandardné ovládanie:\n" +"Menu nie je zobrazené:\n" +"- jeden klik: tlačidlo aktivuj\n" +"- dvojklik: polož/použi\n" +"- posun prstom: pozeraj sa dookola\n" +"Menu/Inventár je zobrazené/ý:\n" +"- dvojklik (mimo):\n" +" -->zatvor\n" +"- klik na kôpku, klik na pozíciu:\n" +" --> presuň kôpku \n" +"- chyť a prenes, klik druhým prstom\n" +" --> polož jednu vec na pozíciu\n" #: src/client/game.cpp msgid "Disabled unlimited viewing range" -msgstr "" +msgstr "Neobmedzená dohľadnosť je zakázaná" #: src/client/game.cpp msgid "Enabled unlimited viewing range" -msgstr "" +msgstr "Neobmedzená dohľadnosť je aktivovaná" #: src/client/game.cpp msgid "Exit to Menu" -msgstr "" +msgstr "Návrat do menu" #: src/client/game.cpp msgid "Exit to OS" -msgstr "" +msgstr "Ukončiť hru" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "" +msgstr "Rýchly režim je zakázaný" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "" +msgstr "Rýchly režim je aktívny" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" +msgstr "Rýchly režim je aktivovaný (poznámka: chýba právo 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "" +msgstr "Režim lietania je zakázaný" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "" +msgstr "Režim lietania je aktívny" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgstr "Režim lietania je aktívny (poznámka: chýba právo 'fly')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "" +msgstr "Hmla je vypnutá" #: src/client/game.cpp msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "povolené" +msgstr "Hmla je aktivovaná" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "Informácie o hre:" #: src/client/game.cpp msgid "Game paused" -msgstr "" +msgstr "Hra je pozastavená" #: src/client/game.cpp msgid "Hosting server" -msgstr "" +msgstr "Beží server" #: src/client/game.cpp msgid "Item definitions..." -msgstr "" +msgstr "Definície vecí..." #: src/client/game.cpp msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "povolené" +msgstr "KiB/s" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "Média..." #: src/client/game.cpp msgid "MiB/s" -msgstr "" +msgstr "MiB/s" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgstr "Minimapa je aktuálne zakázaná hrou, alebo rozšírením" #: src/client/game.cpp msgid "Noclip mode disabled" -msgstr "" +msgstr "Režim prechádzania stenami je zakázaný" #: src/client/game.cpp msgid "Noclip mode enabled" -msgstr "" +msgstr "Režim prechádzania stenami je aktivovaný" #: src/client/game.cpp msgid "Noclip mode enabled (note: no 'noclip' privilege)" msgstr "" +"Režim prechádzania stenami je aktivovaný (poznámka: chýba právo 'noclip')" #: src/client/game.cpp msgid "Node definitions..." -msgstr "" +msgstr "Definície kocky..." #: src/client/game.cpp msgid "Off" -msgstr "" +msgstr "Vypnutý" #: src/client/game.cpp msgid "On" -msgstr "" +msgstr "Aktívny" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "Režim pohybu podľa sklonu je zakázaný" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "Režim pohybu podľa sklonu je aktívny" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "Profilový graf je zobrazený" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "Vzdialený server" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Respawn" -msgstr "Oživiť" +msgstr "Prekladám adresu..." #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "Vypínam..." #: src/client/game.cpp msgid "Singleplayer" -msgstr "" +msgstr "Hra pre jedného hráča" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "Hlasitosť" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "Zvuk je stlmený" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Zvukový systém je zakázaný" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Zvukový systém nie je podporovaný v tomto zostavení" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "" +msgstr "Zvuk je obnovený" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "Dohľadnosť je zmenená na %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "Dohľadnosť je na maxime: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "Dohľadnosť je na minime: %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "Hlasitosť zmenená na %d%%" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "You died" -msgstr "Zomrel si" +msgstr "Obrysy zobrazené" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "Zväčšenie je zakázané hrou, alebo rozšírením" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "ok" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "Komunikačná konzola je skrytá" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" +msgstr "Komunikačná konzola je zobrazená" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "HUD je skryrý" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "HUD je zobrazený" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "Profilovanie je skryté" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Profilovanie je zobrazené (strana %d z %d)" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "Aplikácie" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "Zmaž" #: src/client/keycode.cpp msgid "Control" -msgstr "" +msgstr "CTRL" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "Dole" #: src/client/keycode.cpp msgid "End" -msgstr "" +msgstr "End" #: src/client/keycode.cpp msgid "Erase EOF" -msgstr "" +msgstr "Zmaž EOF" #: src/client/keycode.cpp msgid "Execute" -msgstr "" +msgstr "Spustiť" #: src/client/keycode.cpp msgid "Help" -msgstr "" +msgstr "Pomoc" #: src/client/keycode.cpp msgid "Home" -msgstr "" +msgstr "Home" #: src/client/keycode.cpp msgid "IME Accept" -msgstr "" +msgstr "IME Súhlas" #: src/client/keycode.cpp msgid "IME Convert" -msgstr "" +msgstr "IME Konvertuj" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "IME Escape" #: src/client/keycode.cpp msgid "IME Mode Change" -msgstr "" +msgstr "IME Zmena módu" #: src/client/keycode.cpp msgid "IME Nonconvert" -msgstr "" +msgstr "IME Nekonvertuj" #: src/client/keycode.cpp msgid "Insert" -msgstr "" +msgstr "Vlož" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "" +msgstr "Vľavo" #: src/client/keycode.cpp msgid "Left Button" -msgstr "" +msgstr "Ľavé tlačítko" #: src/client/keycode.cpp msgid "Left Control" -msgstr "" +msgstr "Ľavý CRTL" #: src/client/keycode.cpp msgid "Left Menu" -msgstr "" +msgstr "Ľavé Menu" #: src/client/keycode.cpp msgid "Left Shift" -msgstr "" +msgstr "Ľavý Shift" #: src/client/keycode.cpp msgid "Left Windows" -msgstr "" +msgstr "Ľavá klávesa Windows" #. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp msgid "Menu" -msgstr "" +msgstr "Menu" #: src/client/keycode.cpp msgid "Middle Button" -msgstr "" +msgstr "Stredné tlačítko" #: src/client/keycode.cpp msgid "Num Lock" -msgstr "" +msgstr "Num Lock" #: src/client/keycode.cpp msgid "Numpad *" -msgstr "" +msgstr "Numerická klávesnica *" #: src/client/keycode.cpp msgid "Numpad +" -msgstr "" +msgstr "Numerická klávesnica +" #: src/client/keycode.cpp msgid "Numpad -" -msgstr "" +msgstr "Numerická klávesnica -" #: src/client/keycode.cpp msgid "Numpad ." -msgstr "" +msgstr "Numerická klávesnica ." #: src/client/keycode.cpp msgid "Numpad /" -msgstr "" +msgstr "Numerická klávesnica /" #: src/client/keycode.cpp msgid "Numpad 0" -msgstr "" +msgstr "Numerická klávesnica 0" #: src/client/keycode.cpp msgid "Numpad 1" -msgstr "" +msgstr "Numerická klávesnica 1" #: src/client/keycode.cpp msgid "Numpad 2" -msgstr "" +msgstr "Numerická klávesnica 2" #: src/client/keycode.cpp msgid "Numpad 3" -msgstr "" +msgstr "Numerická klávesnica 3" #: src/client/keycode.cpp msgid "Numpad 4" -msgstr "" +msgstr "Numerická klávesnica 4" #: src/client/keycode.cpp msgid "Numpad 5" -msgstr "" +msgstr "Numerická klávesnica 5" #: src/client/keycode.cpp msgid "Numpad 6" -msgstr "" +msgstr "Numerická klávesnica 6" #: src/client/keycode.cpp msgid "Numpad 7" -msgstr "" +msgstr "Numerická klávesnica 7" #: src/client/keycode.cpp msgid "Numpad 8" -msgstr "" +msgstr "Numerická klávesnica 8" #: src/client/keycode.cpp msgid "Numpad 9" -msgstr "" +msgstr "Numerická klávesnica 9" #: src/client/keycode.cpp msgid "OEM Clear" -msgstr "" +msgstr "OEM Clear" #: src/client/keycode.cpp msgid "Page down" -msgstr "" +msgstr "Page down" #: src/client/keycode.cpp msgid "Page up" -msgstr "" +msgstr "Page up" #: src/client/keycode.cpp msgid "Pause" -msgstr "" +msgstr "Pause" #: src/client/keycode.cpp msgid "Play" -msgstr "" +msgstr "Hraj" #. ~ "Print screen" key #: src/client/keycode.cpp msgid "Print" -msgstr "" +msgstr "PrtSc" #: src/client/keycode.cpp msgid "Return" -msgstr "" +msgstr "Enter" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Right" -msgstr "" +msgstr "Vpravo" #: src/client/keycode.cpp msgid "Right Button" -msgstr "" +msgstr "Pravé tlačítko" #: src/client/keycode.cpp msgid "Right Control" -msgstr "" +msgstr "Pravý CRTL" #: src/client/keycode.cpp msgid "Right Menu" -msgstr "" +msgstr "Pravé Menu" #: src/client/keycode.cpp msgid "Right Shift" -msgstr "" +msgstr "Pravý Shift" #: src/client/keycode.cpp msgid "Right Windows" -msgstr "" +msgstr "Pravá klávesa Windows" #: src/client/keycode.cpp msgid "Scroll Lock" -msgstr "" +msgstr "Scroll Lock" #. ~ Key name #: src/client/keycode.cpp msgid "Select" -msgstr "" +msgstr "Vybrať" #: src/client/keycode.cpp msgid "Shift" -msgstr "" +msgstr "Shift" #: src/client/keycode.cpp msgid "Sleep" -msgstr "" +msgstr "Spánok" #: src/client/keycode.cpp msgid "Snapshot" -msgstr "" +msgstr "Snímka" #: src/client/keycode.cpp msgid "Space" -msgstr "" +msgstr "Medzera" #: src/client/keycode.cpp msgid "Tab" -msgstr "" +msgstr "Tab" #: src/client/keycode.cpp msgid "Up" -msgstr "" +msgstr "Hore" #: src/client/keycode.cpp msgid "X Button 1" -msgstr "" +msgstr "X tlačidlo 1" #: src/client/keycode.cpp msgid "X Button 2" -msgstr "" +msgstr "X tlačidlo 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "Priblíž" + +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Minimapa je skrytá" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Minimapa v radarovom režime, priblíženie x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Minimapa v povrchovom režime, priblíženie x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Minimapa v móde textúry" #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "" +msgstr "Hesla sa nezhodujú!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" -msgstr "" +msgstr "Registrovať a pripojiť sa" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1747,224 +1787,195 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" +"Chystáš sa pripojiť k serveru \"%s\" po prvý krát.\n" +"Ak budeš pokračovať, bude na tomto serveri vytvorený nový účet s tvojimi " +"údajmi.\n" +"Zapíš znova prosím svoje heslo a klikni 'Registrovať a pripojiť sa' pre " +"potvrdenie súhlasu s vytvorením účtu, alebo klikni 'Zrušiť' pre návrat." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" -msgstr "" +msgstr "Pokračuj" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "" +msgstr "\"Špeciál\"=šplhaj dole" #: src/gui/guiKeyChangeMenu.cpp msgid "Autoforward" -msgstr "" +msgstr "Automaticky pohyb vpred" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" -msgstr "" +msgstr "Automatické skákanie" #: src/gui/guiKeyChangeMenu.cpp msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" +msgstr "Vzad" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "Zmeň pohľad" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "Komunikácia" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "Príkaz" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" -msgstr "" +msgstr "Konzola" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. range" -msgstr "" +msgstr "Zníž dohľad" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" -msgstr "" +msgstr "Zníž hlasitosť" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "" +msgstr "2x stlač \"skok\" pre prepnutie lietania" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" -msgstr "" +msgstr "Zahodiť" #: src/gui/guiKeyChangeMenu.cpp msgid "Forward" -msgstr "" +msgstr "Vpred" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. range" -msgstr "" +msgstr "Zvýš dohľad" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "Zvýš hlasitosť" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" -msgstr "" +msgstr "Inventár" #: src/gui/guiKeyChangeMenu.cpp msgid "Jump" -msgstr "" +msgstr "Skok" #: src/gui/guiKeyChangeMenu.cpp msgid "Key already in use" -msgstr "" +msgstr "Klávesa sa už používa" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" +"Priradenie kláves. (ak je toto menu rozbité, zmaž zbytočnosti z minetest." +"conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" -msgstr "" +msgstr "Lokálny príkaz" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" +msgstr "Vypni zvuk" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" -msgstr "" +msgstr "Ďalšia vec" #: src/gui/guiKeyChangeMenu.cpp msgid "Prev. item" -msgstr "" +msgstr "Pred. vec" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "" +msgstr "Zmena dohľadu" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "Fotka obrazovky" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "" +msgstr "Zakrádať sa" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" +msgstr "Špeciál" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" +msgstr "Prepni HUD" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "Prepni logovanie komunikácie" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "Prepni rýchly režim" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "Prepni lietanie" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "Prepni hmlu" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "Prepni minimapu" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "" +msgstr "Prepni režim prechádzania stenami" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "" +msgstr "Prepni režim pohybu podľa sklonu" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "stlač klávesu" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "Zmeniť" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "Potvrď heslo" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "Nové heslo" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "Staré heslo" #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "Odísť" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "Zvuk stlmený" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " -msgstr "" +msgstr "Hlasitosť: " #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "" +msgstr "Vlož " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -1978,6 +1989,8 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) Zafixuje pozíciu virtuálneho joysticku.\n" +"Ak je vypnuté, virtuálny joystick sa vycentruje na pozícií prvého dotyku." #: src/settings_translation_file.cpp msgid "" @@ -1985,6 +1998,9 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) Použije virtuálny joystick na stlačenie tlačidla \"aux\".\n" +"Ak je aktivované, virtuálny joystick stlačí tlačidlo \"aux\" keď je mimo " +"hlavný kruh." #: src/settings_translation_file.cpp msgid "" @@ -1997,6 +2013,14 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X,Y,Z) posun fraktálu od stredu sveta v jednotkách 'mierky'.\n" +"Môže byť použité pre posun požadovaného bodu do (0, 0) pre\n" +"vytvorenie vhodného bodu pre ožitie, alebo pre povolenie 'priblíženia'\n" +"na želaný bod zväčšením 'mierky'.\n" +"Štandardne je to vyladené na vhodný bod oživenia pre Mandelbrot\n" +"sadu so štandardnými parametrami, je možné, že bude potrebná úprava\n" +"v iných situáciach.\n" +"Rozsah je približne -2 to 2. Zväčší podľa 'mierky' pre posun v kockách." #: src/settings_translation_file.cpp msgid "" @@ -2008,62 +2032,65 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" +"(X,Y,Z) mierka fraktálu v kockách.\n" +"Skutočná veľkosť fraktálu bude 2 až 3 krát väčšia.\n" +"Tieto čísla môžu byť veľmi veľké, fraktál sa nemusí\n" +"zmestiť do sveta.\n" +"Zvýš pre 'priblíženie' detailu fraktálu.\n" +"Štandardne je vertikálne stlačený tvar vhodný pre\n" +"ostrov, nastav všetky 3 čísla rovnaké pre nezmenený tvar." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "2D šum, ktorý riadi tvar/veľkosť hrebeňa hôr." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "2D šum, ktorý riadi tvar/veľkosť vlnitosti kopcov." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "2D šum, ktorý riadi tvar/veľkosť horských stepí." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "2D šum, ktorý riadi veľkosť/výskyt hrebeňa kopcov." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "2D šum, ktorý riadi veľkosť/výskyt zvlnenia kopcov." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "2D šum, ktorý riadi veľkosť/výskyt horských stepí." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "2D šum, ktorý určuje údolia a kanály riek." #: src/settings_translation_file.cpp msgid "3D clouds" -msgstr "" +msgstr "3D mraky" #: src/settings_translation_file.cpp msgid "3D mode" -msgstr "" +msgstr "3D režim" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "3D režim stupeň paralaxy" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D šum definujúci gigantické dutiny/jaskyne." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D šum definujúci štruktúru a výšku hôr.\n" +"Takisto definuje štruktúru pohorí lietajúcich pevnín." #: src/settings_translation_file.cpp msgid "" @@ -2072,22 +2099,27 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D šum definujúci štruktúru lietajúcich pevnín.\n" +"Ak je zmenený zo štandardného, 'mierka' šumu (štandardne 0.7) môže\n" +"potrebovať nastavenie, keďže zošpicaťovanie lietajúcej pevniny funguje " +"najlepšie,\n" +"keď tento šum má hodnotu približne v rozsahu -2.0 až 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "3D šum definujúci štruktúru stien kaňona rieky." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D šum definujúci terén." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "3D šum pre previsy, útesy, atď. hôr. Obvykle malé odchýlky." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D šum definujúci počet kobiek na časť mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "" @@ -2102,52 +2134,69 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" +"Podpora 3D.\n" +"Aktuálne sú podporované:\n" +"- none: žiaden 3D režim.\n" +"- anaglyph: tyrkysovo/purpurová farba 3D.\n" +"- interlaced: podpora polarizácie založenej na párnych/nepárnych riadkoch " +"obrazu.\n" +"- topbottom: rozdelená obrazovka hore/dole.\n" +"- sidebyside: rozdelená obrazovka vedľa seba.\n" +"- crossview: 3D prekrížených očí (Cross-eyed)\n" +"- pageflip: 3D založené na quadbuffer\n" +"Režim interlaced požaduje, aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"Zvolené semienko pre novú mapu, ponechaj prázdne pre náhodné.\n" +"Pri vytvorení nového sveta z hlavného menu, bude prepísané." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "Správa, ktorá sa zobrazí všetkým klientom pri páde servera." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "Správa, ktorá sa zobrazí všetkým klientom, keď sa server vypína." #: src/settings_translation_file.cpp msgid "ABM interval" -msgstr "" +msgstr "ABM interval" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "Vyhradená doba ABM" #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgstr "Absolútny limit kociek vo fronte" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Zrýchlenie vo vzduchu" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Gravitačné zrýchlenie, v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "Aktívne modifikátory blokov (ABM)" #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "Riadiaci interval aktívnych blokov" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "Rozsah aktívnych blokov" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "Zasielaný rozsah aktívnych objektov" #: src/settings_translation_file.cpp msgid "" @@ -2155,16 +2204,21 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"Adresa pre pripojenie sa.\n" +"Ponechaj prázdne pre spustenie lokálneho servera.\n" +"Adresné políčko v hlavnom menu prepíše toto nastavenie." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." -msgstr "" +msgstr "Pridá časticové efekty pri vykopávaní kocky." #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." msgstr "" +"Nastav dpi konfiguráciu podľa svojej obrazovky (nie pre X11/len pre Android) " +"napr. pre 4k obrazovky." #: src/settings_translation_file.cpp #, c-format @@ -2175,10 +2229,16 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"Nastav hustotu vrstvy lietajúcej pevniny.\n" +"Zvýš hodnotu pre zvýšenie hustoty. Môže byť kladná, alebo záporná.\n" +"Hodnota = 0.0: 50% objemu je lietajúca pevnina.\n" +"Hodnota = 2.0 (môže byť vyššie v závislosti od 'mgv7_np_floatland', vždy " +"otestuj\n" +"aby si si bol istý) vytvorí pevnú úroveň lietajúcej pevniny." #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "Pokročilé" #: src/settings_translation_file.cpp msgid "" @@ -2188,60 +2248,67 @@ msgid "" "This only has significant effect on daylight and artificial\n" "light, it has very little effect on natural night light." msgstr "" +"Zmení svetelnú krivku aplikovaním 'gamma korekcie'.\n" +"Vyššie hodnoty robia stredné a nižšie tóny svetlejšími.\n" +"Hodnota '1.0' ponechá svetelnú krivku nezmenenú.\n" +"Toto má vplyv len na denné a umelé svetlo,\n" +"ma len veľmi malý vplyv na prirodzené nočné svetlo." #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "" +msgstr "Vždy zapnuté lietanie a rýchlosť" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" -msgstr "" +msgstr "Ambient occlusion gamma" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "Počet správ, ktoré môže hráč poslať za 10 sekúnd." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "Zväčšuje údolia." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" -msgstr "" +msgstr "Anisotropné filtrovanie" #: src/settings_translation_file.cpp msgid "Announce server" -msgstr "" +msgstr "Zverejni server" #: src/settings_translation_file.cpp msgid "Announce to this serverlist." -msgstr "" +msgstr "Zverejni v zozname serverov." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "Pridaj názov položky/veci" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." -msgstr "" +msgstr "Pridaj názov veci do popisku." #: src/settings_translation_file.cpp msgid "Apple trees noise" -msgstr "" +msgstr "Šum jabloní" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "Zotrvačnosť ruky" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"Zotrvačnosť ruky, vytvára realistickejší pohyb ruky\n" +"pri pohybe kamery." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" -msgstr "" +msgstr "Ponúkni obnovu pripojenia po páde" #: src/settings_translation_file.cpp msgid "" @@ -2257,106 +2324,111 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"V tento vzdialenosti bude server agresívne optimalizovať, ktoré\n" +"bloky pošle klientovi.\n" +"Malé hodnoty potenciálne výrazne zvýšia výkon, za cenu viditeľných\n" +"chýb renderovania (niektoré bloky nebudú vyrenderované pod vodou a v " +"jaskyniach,\n" +"prípadne niekedy aj na súši).\n" +"Nastavenie hodnoty vyššej ako max_block_send_distance deaktivuje túto\n" +"optimalizáciu.\n" +"Udávane v blokoch mapy (16 kociek)." #: src/settings_translation_file.cpp msgid "Automatic forward key" -msgstr "" +msgstr "Tlačidlo Automatický pohyb vpred" #: src/settings_translation_file.cpp msgid "Automatically jump up single-node obstacles." -msgstr "" +msgstr "Automaticky vyskočí na prekážku vysokú jedna kocka." #: src/settings_translation_file.cpp msgid "Automatically report to the serverlist." -msgstr "" +msgstr "Automaticky zápis do zoznamu serverov." #: src/settings_translation_file.cpp msgid "Autosave screen size" -msgstr "" +msgstr "Pamätať si veľkosť obrazovky" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "Režim automatickej zmeny mierky" #: src/settings_translation_file.cpp msgid "Backward key" -msgstr "" +msgstr "Tlačidlo Vzad" #: src/settings_translation_file.cpp msgid "Base ground level" -msgstr "" +msgstr "Základná úroveň dna" #: src/settings_translation_file.cpp msgid "Base terrain height." -msgstr "" +msgstr "Základná výška terénu." #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "Základné" #: src/settings_translation_file.cpp msgid "Basic privileges" -msgstr "" +msgstr "Základné práva" #: src/settings_translation_file.cpp msgid "Beach noise" -msgstr "" +msgstr "Šum pláže" #: src/settings_translation_file.cpp msgid "Beach noise threshold" -msgstr "" +msgstr "Hraničná hodnota šumu pláže" #: src/settings_translation_file.cpp msgid "Bilinear filtering" -msgstr "" +msgstr "Bilineárne filtrovanie" #: src/settings_translation_file.cpp msgid "Bind address" -msgstr "" +msgstr "Spájacia adresa" #: src/settings_translation_file.cpp msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgstr "Parametre šumu teploty a vlhkosti pre Biome API" #: src/settings_translation_file.cpp msgid "Biome noise" -msgstr "" +msgstr "Šum biómu" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" +msgstr "Počet bitov na pixel (farebná hĺbka) v režime celej obrazovky." #: src/settings_translation_file.cpp msgid "Block send optimize distance" -msgstr "" +msgstr "Vzdialenosť pre optimalizáciu posielania blokov" #: src/settings_translation_file.cpp msgid "Bold and italic font path" -msgstr "" +msgstr "Cesta k tučnému šikmému písmu" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "" +msgstr "Cesta k tučnému šikmému písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Bold font path" -msgstr "" +msgstr "Cesta k tučnému písmu" #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "" +msgstr "Cesta k tučnému písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "" +msgstr "Stavanie vnútri hráča" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" +msgstr "Vstavané (Builtin)" #: src/settings_translation_file.cpp msgid "" @@ -2365,174 +2437,170 @@ msgid "" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"Vzdialenosť kamery 'blízko orezanej roviny' v kockách, medzi 0 a 0.25\n" +"Funguje len na GLES platformách. Väčšina toto nepotrebuje meniť.\n" +"Zvýšenie môže zredukovať artefakty na slabších GPU.\n" +"0.1 = Štandardná hodnota, 0.25 = Dobrá hodnota pre slabé tablety." #: src/settings_translation_file.cpp msgid "Camera smoothing" -msgstr "" +msgstr "Plynulý pohyb kamery" #: src/settings_translation_file.cpp msgid "Camera smoothing in cinematic mode" -msgstr "" +msgstr "Plynulý pohyb kamery vo filmovom režime" #: src/settings_translation_file.cpp msgid "Camera update toggle key" -msgstr "" +msgstr "Tlačidlo Aktualizácia pohľadu" #: src/settings_translation_file.cpp msgid "Cave noise" -msgstr "" +msgstr "Šum jaskyne" #: src/settings_translation_file.cpp msgid "Cave noise #1" -msgstr "" +msgstr "Šum jaskýň #1" #: src/settings_translation_file.cpp msgid "Cave noise #2" -msgstr "" +msgstr "Šum jaskýň #2" #: src/settings_translation_file.cpp msgid "Cave width" -msgstr "" +msgstr "Šírka jaskyne" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "Cave1 šum" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "Cave2 šum" #: src/settings_translation_file.cpp msgid "Cavern limit" -msgstr "" +msgstr "Limit dutín" #: src/settings_translation_file.cpp msgid "Cavern noise" -msgstr "" +msgstr "Šum dutín" #: src/settings_translation_file.cpp msgid "Cavern taper" -msgstr "" +msgstr "Zbiehavosť dutín" #: src/settings_translation_file.cpp msgid "Cavern threshold" -msgstr "" +msgstr "Hraničná hodnota dutín" #: src/settings_translation_file.cpp msgid "Cavern upper limit" -msgstr "" +msgstr "Horný limit dutín" #: src/settings_translation_file.cpp msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" +"Centrum rozsahu zosilnenia svetelnej krivky.\n" +"Kde 0.0 je minimálna úroveň, 1.0 je maximálna úroveň ." #: src/settings_translation_file.cpp msgid "Chat font size" -msgstr "" +msgstr "Veľkosť komunikačného písma" #: src/settings_translation_file.cpp msgid "Chat key" -msgstr "" +msgstr "Tlačidlo Komunikácia" #: src/settings_translation_file.cpp msgid "Chat log level" -msgstr "" +msgstr "Úroveň komunikačného logu" #: src/settings_translation_file.cpp msgid "Chat message count limit" -msgstr "" +msgstr "Limit počtu správ" #: src/settings_translation_file.cpp msgid "Chat message format" -msgstr "" +msgstr "Formát komunikačných správ" #: src/settings_translation_file.cpp msgid "Chat message kick threshold" -msgstr "" +msgstr "Hranica správ pre vylúčenie" #: src/settings_translation_file.cpp msgid "Chat message max length" -msgstr "" +msgstr "Max dĺžka správy" #: src/settings_translation_file.cpp msgid "Chat toggle key" -msgstr "" +msgstr "Tlačidlo Prepnutie komunikácie" #: src/settings_translation_file.cpp msgid "Chatcommands" -msgstr "" +msgstr "Komunikačné príkazy" #: src/settings_translation_file.cpp msgid "Chunk size" -msgstr "" +msgstr "Veľkosť časti (chunk)" #: src/settings_translation_file.cpp msgid "Cinematic mode" -msgstr "" +msgstr "Filmový mód" #: src/settings_translation_file.cpp msgid "Cinematic mode key" -msgstr "" +msgstr "Tlačidlo Filmový režim" #: src/settings_translation_file.cpp msgid "Clean transparent textures" -msgstr "" +msgstr "Vyčisti priehľadné textúry" #: src/settings_translation_file.cpp msgid "Client" -msgstr "" +msgstr "Klient" #: src/settings_translation_file.cpp msgid "Client and Server" -msgstr "" +msgstr "Klient a Server" #: src/settings_translation_file.cpp msgid "Client modding" -msgstr "" +msgstr "Úpravy (modding) cez klienta" #: src/settings_translation_file.cpp msgid "Client side modding restrictions" -msgstr "" +msgstr "Obmedzenia úprav na strane klienta" #: src/settings_translation_file.cpp msgid "Client side node lookup range restriction" -msgstr "" +msgstr "Obmedzenie vyhľadávania dosahu kociek na strane klienta" #: src/settings_translation_file.cpp msgid "Climbing speed" -msgstr "" +msgstr "Rýchlosť šplhania" #: src/settings_translation_file.cpp msgid "Cloud radius" -msgstr "" +msgstr "Polomer mrakov" #: src/settings_translation_file.cpp msgid "Clouds" -msgstr "" +msgstr "Mraky" #: src/settings_translation_file.cpp msgid "Clouds are a client side effect." -msgstr "" +msgstr "Mraky sú efektom na strane klienta." #: src/settings_translation_file.cpp msgid "Clouds in menu" -msgstr "" +msgstr "Mraky v menu" #: src/settings_translation_file.cpp msgid "Colored fog" -msgstr "" +msgstr "Farebná hmla" #: src/settings_translation_file.cpp msgid "" @@ -2544,68 +2612,87 @@ msgid "" "These flags are independent from Minetest versions,\n" "so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"Čiarkou oddelený zoznam príznakov, ktoré sa skryjú v zozname doplnkov.\n" +"\"nonfree\" môže byť využité na skrytie doplnkov, ktoré nie je možné " +"považovať za 'voľný softvér',\n" +"tak ako je definovaný Free Software Foundation.\n" +"Môžeš definovať aj hodnotenie obsahu.\n" +"Tie to príznaky sú nezávislé od verzie Minetestu,\n" +"viď. aj kompletný zoznam na https://content.minetest.net/help/content_flags/" #: src/settings_translation_file.cpp msgid "" "Comma-separated list of mods that are allowed to access HTTP APIs, which\n" "allow them to upload and download data to/from the internet." msgstr "" +"Čiarkou oddelený zoznam rozšírení, ktoré majú povolené prístup na HTTP API,\n" +"ktoré im dovolia posielať a sťahovať dáta z/na internet." #: src/settings_translation_file.cpp msgid "" "Comma-separated list of trusted mods that are allowed to access insecure\n" "functions even when mod security is on (via request_insecure_environment())." msgstr "" +"Čiarkou oddelený zoznam dôveryhodných rozšírení, ktoré majú povolené\n" +"nebezpečné funkcie aj keď je bezpečnosť rozšírení aktívna (cez " +"request_insecure_environment())." #: src/settings_translation_file.cpp msgid "Command key" -msgstr "" +msgstr "Tlačidlo Príkaz" #: src/settings_translation_file.cpp msgid "Connect glass" -msgstr "" +msgstr "Prepojené sklo" #: src/settings_translation_file.cpp msgid "Connect to external media server" -msgstr "" +msgstr "Pripoj sa na externý média server" #: src/settings_translation_file.cpp msgid "Connects glass if supported by node." -msgstr "" +msgstr "Prepojí sklo, ak je to podporované kockou." #: src/settings_translation_file.cpp msgid "Console alpha" -msgstr "" +msgstr "Priehľadnosť konzoly" #: src/settings_translation_file.cpp msgid "Console color" -msgstr "" +msgstr "Farba konzoly" #: src/settings_translation_file.cpp msgid "Console height" -msgstr "" +msgstr "Výška konzoly" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" -msgstr "" +msgstr "Čierna listina príznakov z ContentDB" + +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "ContentDB Maximum súbežných sťahovaní" #: src/settings_translation_file.cpp msgid "ContentDB URL" -msgstr "" +msgstr "Cesta (URL) ku ContentDB" #: src/settings_translation_file.cpp msgid "Continuous forward" -msgstr "" +msgstr "Neustály pohyb vpred" #: src/settings_translation_file.cpp msgid "" "Continuous forward movement, toggled by autoforward key.\n" "Press the autoforward key again or the backwards movement to disable." msgstr "" +"Neustály pohyb vpred, prepína sa klávesou pre \"Automatický pohyb vpred\".\n" +"Opätovne stlač klávesu pre \"Automatický pohyb vpred\", alebo pohyb vzad pre " +"vypnutie." #: src/settings_translation_file.cpp msgid "Controls" -msgstr "" +msgstr "Ovládanie" #: src/settings_translation_file.cpp msgid "" @@ -2613,18 +2700,21 @@ msgid "" "Examples:\n" "72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" +"Riadi dĺžku dňa a noci.\n" +"Príklad:\n" +"72 = 20min, 360 = 4min, 1 = 24hodín, 0 = deň/noc/čokoľvek ostáva nezmenený." #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Riadi rýchlosť ponárania v tekutinách." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." -msgstr "" +msgstr "Riadi strmosť/hĺbku jazier." #: src/settings_translation_file.cpp msgid "Controls steepness/height of hills." -msgstr "" +msgstr "Riadi strmosť/výšku kopcov." #: src/settings_translation_file.cpp msgid "" @@ -2632,302 +2722,332 @@ msgid "" "Value >= 10.0 completely disables generation of tunnels and avoids the\n" "intensive noise calculations." msgstr "" +"Riadi šírku tunelov, menšia hodnota vytvára širšie tunely.\n" +"Hodnota >= 10.0 úplne vypne generovanie tunelov, čím sa vyhne\n" +"náročným prepočtom šumu." #: src/settings_translation_file.cpp msgid "Crash message" -msgstr "" +msgstr "Správa pri páde" #: src/settings_translation_file.cpp msgid "Creative" -msgstr "" +msgstr "Kreatívny režim" #: src/settings_translation_file.cpp msgid "Crosshair alpha" -msgstr "" +msgstr "Priehľadnosť zameriavača" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" +"Priehľadnosť zameriavača (nepriehľadnosť, medzi 0 a 255).\n" +"Tiež nastavuje farbu objektu zameriavača" #: src/settings_translation_file.cpp msgid "Crosshair color" -msgstr "" +msgstr "Farba zameriavača" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" +"Farba zameriavača (R,G,B).\n" +"Nastavuje farbu objektu zameriavača" #: src/settings_translation_file.cpp msgid "DPI" -msgstr "" +msgstr "DPI" #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "Zranenie" #: src/settings_translation_file.cpp msgid "Debug info toggle key" -msgstr "" +msgstr "Tlačidlo Ladiace informácie" #: src/settings_translation_file.cpp msgid "Debug log file size threshold" -msgstr "" +msgstr "Hraničná veľkosť ladiaceho log súboru" #: src/settings_translation_file.cpp msgid "Debug log level" -msgstr "" +msgstr "Úroveň ladiacich info" #: src/settings_translation_file.cpp msgid "Dec. volume key" -msgstr "" +msgstr "Tlačidlo Zníž hlasitosť" #: src/settings_translation_file.cpp msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgstr "Zníž pre spomalenie tečenia." #: src/settings_translation_file.cpp msgid "Dedicated server step" -msgstr "" +msgstr "Určený krok servera" #: src/settings_translation_file.cpp msgid "Default acceleration" -msgstr "" +msgstr "Štandardné zrýchlenie" #: src/settings_translation_file.cpp msgid "Default game" -msgstr "" +msgstr "Štandardná hra" #: src/settings_translation_file.cpp msgid "" "Default game when creating a new world.\n" "This will be overridden when creating a world from the main menu." msgstr "" +"Štandardná hra pri vytváraní nového sveta.\n" +"Toto bude prepísané pri vytvorení nového sveta z hlavného menu." #: src/settings_translation_file.cpp msgid "Default password" -msgstr "" +msgstr "Štandardné heslo" #: src/settings_translation_file.cpp msgid "Default privileges" -msgstr "" +msgstr "Štandardné práva" #: src/settings_translation_file.cpp msgid "Default report format" -msgstr "" +msgstr "Štandardný formát záznamov" #: src/settings_translation_file.cpp msgid "Default stack size" -msgstr "" +msgstr "Štandardná veľkosť kôpky" #: src/settings_translation_file.cpp msgid "" "Default timeout for cURL, stated in milliseconds.\n" "Only has an effect if compiled with cURL." msgstr "" +"Štandardný časový rámec pre cURL, zadaný v milisekundách.\n" +"Má efekt len ak je skompilovaný s cURL." #: src/settings_translation_file.cpp msgid "Defines areas where trees have apples." -msgstr "" +msgstr "Definuje oblasti, kde stromy majú jablká." #: src/settings_translation_file.cpp msgid "Defines areas with sandy beaches." -msgstr "" +msgstr "Definuje oblasti s pieskovými plážami." #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" +msgstr "Definuje rozdelenie vyššieho terénu a strmosť útesov." #: src/settings_translation_file.cpp msgid "Defines distribution of higher terrain." -msgstr "" +msgstr "Definuje rozdelenie vyššieho terénu." #: src/settings_translation_file.cpp msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" +msgstr "Definuje plnú šírku dutín, menšie hodnoty vytvoria väčšie dutiny." #: src/settings_translation_file.cpp msgid "Defines large-scale river channel structure." -msgstr "" +msgstr "Vo veľkom merítku definuje štruktúru kanálov riek." #: src/settings_translation_file.cpp msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" +msgstr "Definuje umiestnenie a terén voliteľných kopcov a jazier." #: src/settings_translation_file.cpp msgid "Defines the base ground level." -msgstr "" +msgstr "Definuje úroveň dna." #: src/settings_translation_file.cpp msgid "Defines the depth of the river channel." -msgstr "" +msgstr "Definuje hĺbku koryta rieky." #: src/settings_translation_file.cpp msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" +"Určuje maximálnu vzdialenosť zobrazenia hráča v blokoch (0 = neobmedzená)." #: src/settings_translation_file.cpp msgid "Defines the width of the river channel." -msgstr "" +msgstr "Definuje šírku pre koryto rieky." #: src/settings_translation_file.cpp msgid "Defines the width of the river valley." -msgstr "" +msgstr "Definuje šírku údolia rieky." #: src/settings_translation_file.cpp msgid "Defines tree areas and tree density." -msgstr "" +msgstr "Definuje oblasti so stromami a hustotu stromov." #: src/settings_translation_file.cpp msgid "" "Delay between mesh updates on the client in ms. Increasing this will slow\n" "down the rate of mesh updates, thus reducing jitter on slower clients." msgstr "" +"Oneskorenie, kým sa Mesh aktualizuje na strane klienta v ms.\n" +"Zvýšenie spomalí množstvo aktualizácie Mesh objektov, teda zníži chvenie na " +"pomalších klientoch." #: src/settings_translation_file.cpp msgid "Delay in sending blocks after building" -msgstr "" +msgstr "Oneskorenie posielania blokov po výstavbe" #: src/settings_translation_file.cpp msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" +msgstr "Oneskorenie zobrazenia popisku, zadané v milisekundách." #: src/settings_translation_file.cpp msgid "Deprecated Lua API handling" -msgstr "" +msgstr "Zastaralé Lua API spracovanie" #: src/settings_translation_file.cpp msgid "Depth below which you'll find giant caverns." -msgstr "" +msgstr "Hĺbka pod ktorou nájdeš gigantické dutiny/jaskyne." #: src/settings_translation_file.cpp msgid "Depth below which you'll find large caves." -msgstr "" +msgstr "Hĺbka pod ktorou nájdeš veľké jaskyne." #: src/settings_translation_file.cpp msgid "" "Description of server, to be displayed when players join and in the " "serverlist." msgstr "" +"Zobrazovaný popis servera, keď sa hráč na server pripojí a v zozname " +"serverov." #: src/settings_translation_file.cpp msgid "Desert noise threshold" -msgstr "" +msgstr "Hraničná hodnota šumu púšte" #: src/settings_translation_file.cpp msgid "" "Deserts occur when np_biome exceeds this value.\n" "When the 'snowbiomes' flag is enabled, this is ignored." msgstr "" +"Púšte sa objavia keď np_biome presiahne túto hodnotu.\n" +"Ak je aktívny príznak 'snowbiomes', tak toto je ignorované." #: src/settings_translation_file.cpp msgid "Desynchronize block animation" -msgstr "" +msgstr "Nesynchronizuj animáciu blokov" + +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Tlačidlo Kopanie" #: src/settings_translation_file.cpp msgid "Digging particles" -msgstr "" +msgstr "Časticové efekty pri kopaní" #: src/settings_translation_file.cpp msgid "Disable anticheat" -msgstr "" +msgstr "Zakáž anticheat" #: src/settings_translation_file.cpp msgid "Disallow empty passwords" -msgstr "" +msgstr "Zakáž prázdne heslá" #: src/settings_translation_file.cpp msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" +msgstr "Doménové meno servera, ktoré bude zobrazené v zozname serverov." #: src/settings_translation_file.cpp msgid "Double tap jump for fly" -msgstr "" +msgstr "Dvakrát skok pre lietanie" #: src/settings_translation_file.cpp msgid "Double-tapping the jump key toggles fly mode." -msgstr "" +msgstr "Dvojnásobné stlačenie klávesy pre skok prepne režim lietania." #: src/settings_translation_file.cpp msgid "Drop item key" -msgstr "" +msgstr "Tlačidlo Zahoď vec" #: src/settings_translation_file.cpp msgid "Dump the mapgen debug information." -msgstr "" +msgstr "Získaj ladiace informácie generátora máp." #: src/settings_translation_file.cpp msgid "Dungeon maximum Y" -msgstr "" +msgstr "Maximálne Y kobky" #: src/settings_translation_file.cpp msgid "Dungeon minimum Y" -msgstr "" +msgstr "Minimálne Y kobky" #: src/settings_translation_file.cpp msgid "Dungeon noise" -msgstr "" +msgstr "Šum kobky" #: src/settings_translation_file.cpp msgid "" "Enable IPv6 support (for both client and server).\n" "Required for IPv6 connections to work at all." msgstr "" +"Aktivuj IPv6 podporu (pre klienta ako i server).\n" +"Požadované aby IPv6 spojenie vôbec mohlo fungovať." #: src/settings_translation_file.cpp msgid "" "Enable Lua modding support on client.\n" "This support is experimental and API can change." msgstr "" +"Aktivuj podporu úprav na klientovi pomocou Lua skriptov.\n" +"Táto podpora je experimentálna a API sa môže zmeniť." #: src/settings_translation_file.cpp msgid "Enable console window" -msgstr "" +msgstr "Aktivuj okno konzoly" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" +#, fuzzy +msgid "Enable creative mode for all players" +msgstr "Aktivuj kreatívny režim pre novo vytvorené mapy." #: src/settings_translation_file.cpp msgid "Enable joysticks" -msgstr "" +msgstr "Aktivuj joysticky" #: src/settings_translation_file.cpp msgid "Enable mod channels support." -msgstr "" +msgstr "Aktivuj podporu komunikačných kanálov rozšírení (mod channels)." #: src/settings_translation_file.cpp msgid "Enable mod security" -msgstr "" +msgstr "Aktivuj rozšírenie pre zabezpečenie" #: src/settings_translation_file.cpp msgid "Enable players getting damage and dying." -msgstr "" +msgstr "Aktivuje aby mohol byť hráč zranený a zomrieť." #: src/settings_translation_file.cpp msgid "Enable random user input (only used for testing)." -msgstr "" +msgstr "Aktivuje náhodný užívateľský vstup (používa sa len pre testovanie)." #: src/settings_translation_file.cpp msgid "Enable register confirmation" -msgstr "" +msgstr "Aktivuj potvrdenie registrácie" #: src/settings_translation_file.cpp msgid "" "Enable register confirmation when connecting to server.\n" "If disabled, new account will be registered automatically." msgstr "" +"Aktivuj potvrdzovanie registrácie pri pripájaní sa k serveru.\n" +"Ak je zakázané, nové konto sa zaregistruje automaticky." #: src/settings_translation_file.cpp msgid "" "Enable smooth lighting with simple ambient occlusion.\n" "Disable for speed or for different looks." msgstr "" +"Aktivuj jemné nasvietenie pomocou jednoduchej \"ambient occlusion\".\n" +"Vypni pre zrýchlenie, alebo iný vzhľad." #: src/settings_translation_file.cpp msgid "" @@ -2937,6 +3057,9 @@ msgid "" "to new servers, but they may not support all new features that you are " "expecting." msgstr "" +"Aktivuj zakázanie pripojenia starých klientov.\n" +"Starší klienti sú kompatibilný v tom zmysle, že nepadnú pri pripájaní\n" +"k novým serverom, ale nemusia podporovať nové funkcie, ktoré očakávaš." #: src/settings_translation_file.cpp msgid "" @@ -2945,18 +3068,26 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" +"Aktivuj použitie vzdialeného média servera (ak je poskytovaný serverom).\n" +"Vzdialený server poskytuje výrazne rýchlejší spôsob pre sťahovanie médií " +"(napr. textúr)\n" +"pri pripojení na server." #: src/settings_translation_file.cpp msgid "" "Enable vertex buffer objects.\n" "This should greatly improve graphics performance." msgstr "" +"Aktivuj \"vertex buffer objects\".\n" +"Toto by malo viditeľne zvýšiť grafický výkon." #: src/settings_translation_file.cpp msgid "" "Enable view bobbing and amount of view bobbing.\n" "For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" +"Aktivuj pohupovanie sa a hodnotu pohupovania.\n" +"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." #: src/settings_translation_file.cpp msgid "" @@ -2964,6 +3095,9 @@ msgid "" "Ignored if bind_address is set.\n" "Needs enable_ipv6 to be enabled." msgstr "" +"Aktivuj/vypni IPv6 server.\n" +"Ignorované, ak je nastavená bind_address .\n" +"Vyžaduje povolené enable_ipv6." #: src/settings_translation_file.cpp msgid "" @@ -2972,38 +3106,22 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"Aktivuje Hablov 'Uncharted 2' filmový tone mapping.\n" +"Simuluje farebnú krivku fotografického filmu a ako sa približuje\n" +"vzhľadu obrázku s veľkým dynamickým rozsahom. Stredový kontrast je mierne\n" +"zlepšený, nasvietenie a tiene sú postupne zhustené." #: src/settings_translation_file.cpp msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" +msgstr "Aktivuje animáciu vecí v inventári." #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." -msgstr "" +msgstr "Aktivuje ukladanie tvárou rotovaných Mesh objektov do medzipamäti." #: src/settings_translation_file.cpp msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" +msgstr "Aktivuje minimapu." #: src/settings_translation_file.cpp msgid "" @@ -3012,20 +3130,18 @@ msgid "" "sound controls will be non-functional.\n" "Changing this setting requires a restart." msgstr "" +"Aktivuje zvukový systém.\n" +"Ak je zakázaný, tak kompletne zakáže všetky zvuky\n" +"a ovládanie hlasitosti v hre bude nefunkčné.\n" +"Zmena tohto nastavenia si vyžaduje reštart hry." #: src/settings_translation_file.cpp msgid "Engine profiling data print interval" -msgstr "" +msgstr "Interval tlače profilových dát enginu" #: src/settings_translation_file.cpp msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" +msgstr "Metódy bytostí" #: src/settings_translation_file.cpp msgid "" @@ -3036,68 +3152,77 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Exponent zošpicatenia lietajúcej pevniny. Pozmeňuje fungovanie " +"zošpicatenia.\n" +"Hodnota = 1.0 vytvorí stále, lineárne zošpicatenie.\n" +"Hodnoty > 1.0 vytvoria plynulé zošpicatenie, vhodné pre štandardné oddelené\n" +"lietajúce pevniny.\n" +"Hodnoty < 1.0 (napríklad 0.25) vytvoria viac vymedzený povrch s\n" +"rovnejšími nížinami, vhodné ako pevná základná vrstva lietajúcej pevniny." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" +msgid "FPS when unfocused or paused" +msgstr "FPS ak je hra nezameraná, alebo pozastavená" #: src/settings_translation_file.cpp msgid "FSAA" -msgstr "" +msgstr "FSAA" #: src/settings_translation_file.cpp msgid "Factor noise" -msgstr "" +msgstr "Faktor šumu" #: src/settings_translation_file.cpp msgid "Fall bobbing factor" -msgstr "" +msgstr "Faktor pohupovania sa pri pádu" #: src/settings_translation_file.cpp msgid "Fallback font path" -msgstr "" +msgstr "Cesta k záložnému písmu" #: src/settings_translation_file.cpp msgid "Fallback font shadow" -msgstr "" +msgstr "Tieň záložného písma" #: src/settings_translation_file.cpp msgid "Fallback font shadow alpha" -msgstr "" +msgstr "Priehľadnosť tieňa záložného fontu" #: src/settings_translation_file.cpp msgid "Fallback font size" -msgstr "" +msgstr "Veľkosť záložného písma" #: src/settings_translation_file.cpp msgid "Fast key" -msgstr "" +msgstr "Tlačidlo Rýchlosť" #: src/settings_translation_file.cpp msgid "Fast mode acceleration" -msgstr "" +msgstr "Zrýchlenie v rýchlom režime" #: src/settings_translation_file.cpp msgid "Fast mode speed" -msgstr "" +msgstr "Rýchlosť v rýchlom režime" #: src/settings_translation_file.cpp msgid "Fast movement" -msgstr "" +msgstr "Rýchly pohyb" #: src/settings_translation_file.cpp msgid "" "Fast movement (via the \"special\" key).\n" "This requires the \"fast\" privilege on the server." msgstr "" +"Rýchly pohyb (cez \"špeciálnu\" klávesu).\n" +"Toto si na serveri vyžaduje privilégium \"fast\"." #: src/settings_translation_file.cpp msgid "Field of view" -msgstr "" +msgstr "Zorné pole" #: src/settings_translation_file.cpp msgid "Field of view in degrees." -msgstr "" +msgstr "Zorné pole v stupňoch." #: src/settings_translation_file.cpp msgid "" @@ -3105,18 +3230,20 @@ msgid "" "the\n" "Multiplayer Tab." msgstr "" +"Súbor v client/serverlist ktorý obsahuje obľúbené servery, ktoré\n" +"sa zobrazujú v záložke Multiplayer." #: src/settings_translation_file.cpp msgid "Filler depth" -msgstr "" +msgstr "Hĺbka výplne" #: src/settings_translation_file.cpp msgid "Filler depth noise" -msgstr "" +msgstr "Šum hĺbky výplne" #: src/settings_translation_file.cpp msgid "Filmic tone mapping" -msgstr "" +msgstr "Filmový tone mapping" #: src/settings_translation_file.cpp msgid "" @@ -3125,112 +3252,120 @@ msgid "" "light edge to transparent textures. Apply this filter to clean that up\n" "at texture load time." msgstr "" +"Filtrované textúry môžu zmiešať svoje RGB hodnoty s plne priehľadnými " +"susedmi,\n" +"s PNG optimizérmi obvykle zmazané, niekdy môžu viesť k tmavým oblastiam\n" +"alebo svetlým rohom na priehľadnej textúre.\n" +"Aplikuj tento filter na ich vyčistenie pri nahrávaní textúry." #: src/settings_translation_file.cpp msgid "Filtering" -msgstr "" +msgstr "Filtrovanie" #: src/settings_translation_file.cpp msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Prvý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "First of two 3D noises that together define tunnels." -msgstr "" +msgstr "Prvý z dvoch 3D šumov, ktoré spolu definujú tunely." #: src/settings_translation_file.cpp msgid "Fixed map seed" -msgstr "" +msgstr "Predvolené semienko mapy" #: src/settings_translation_file.cpp msgid "Fixed virtual joystick" -msgstr "" +msgstr "Pevný virtuálny joystick" #: src/settings_translation_file.cpp msgid "Floatland density" -msgstr "" +msgstr "Hustota lietajúcej pevniny" #: src/settings_translation_file.cpp msgid "Floatland maximum Y" -msgstr "" +msgstr "Maximálne Y lietajúcich pevnín" #: src/settings_translation_file.cpp msgid "Floatland minimum Y" -msgstr "" +msgstr "Minimálne Y lietajúcich pevnín" #: src/settings_translation_file.cpp msgid "Floatland noise" -msgstr "" +msgstr "Šum lietajúcich krajín" #: src/settings_translation_file.cpp msgid "Floatland taper exponent" -msgstr "" +msgstr "Exponent kužeľovitosti lietajúcej pevniny" #: src/settings_translation_file.cpp msgid "Floatland tapering distance" -msgstr "" +msgstr "Vzdialenosť špicatosti lietajúcich krajín" #: src/settings_translation_file.cpp msgid "Floatland water level" -msgstr "" +msgstr "Úroveň vody lietajúcich pevnín" #: src/settings_translation_file.cpp msgid "Fly key" -msgstr "" +msgstr "Tlačidlo Lietanie" #: src/settings_translation_file.cpp msgid "Flying" -msgstr "" +msgstr "Lietanie" #: src/settings_translation_file.cpp msgid "Fog" -msgstr "" +msgstr "Hmla" #: src/settings_translation_file.cpp msgid "Fog start" -msgstr "" +msgstr "Začiatok hmly" #: src/settings_translation_file.cpp msgid "Fog toggle key" -msgstr "" +msgstr "Tlačidlo Prepnutie hmly" #: src/settings_translation_file.cpp msgid "Font bold by default" -msgstr "" +msgstr "Štandardne tučné písmo" #: src/settings_translation_file.cpp msgid "Font italic by default" -msgstr "" +msgstr "Štandardne šikmé písmo" #: src/settings_translation_file.cpp msgid "Font shadow" -msgstr "" +msgstr "Tieň písma" #: src/settings_translation_file.cpp msgid "Font shadow alpha" -msgstr "" +msgstr "Priehľadnosť tieňa písma" #: src/settings_translation_file.cpp msgid "Font size" -msgstr "" +msgstr "Veľkosť písma" #: src/settings_translation_file.cpp msgid "Font size of the default font in point (pt)." -msgstr "" +msgstr "Veľkosť písma štandardného písma v bodoch (pt)." #: src/settings_translation_file.cpp msgid "Font size of the fallback font in point (pt)." -msgstr "" +msgstr "Veľkosť písma záložného písma v bodoch (pt)." #: src/settings_translation_file.cpp msgid "Font size of the monospace font in point (pt)." -msgstr "" +msgstr "Veľkosť písma s pevnou šírkou v bodoch (pt)." #: src/settings_translation_file.cpp msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"Veľkosť písma aktuálneho komunikačného textu a príkazového riadku v bodoch " +"(pt).\n" +"Pri hodnote 0 bude použitá štandardná veľkosť písma." #: src/settings_translation_file.cpp msgid "" @@ -3238,73 +3373,86 @@ msgid "" "placeholders:\n" "@name, @message, @timestamp (optional)" msgstr "" +"Formát komunikačných správ hráča. Nasledujúce reťazce sú platné zástupné " +"symboly:\n" +"@name, @message, @timestamp (voliteľné)" #: src/settings_translation_file.cpp msgid "Format of screenshots." -msgstr "" +msgstr "Formát obrázkov snímok obrazovky." #: src/settings_translation_file.cpp msgid "Formspec Default Background Color" -msgstr "" +msgstr "Formspec štandardná farba pozadia" #: src/settings_translation_file.cpp msgid "Formspec Default Background Opacity" -msgstr "" +msgstr "Formspec štandardná nepriehľadnosť pozadia" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Color" -msgstr "" +msgstr "Formspec Celo-obrazovková farba pozadia" #: src/settings_translation_file.cpp msgid "Formspec Full-Screen Background Opacity" -msgstr "" +msgstr "Formspec Celo-obrazovková nepriehľadnosť pozadia" #: src/settings_translation_file.cpp msgid "Formspec default background color (R,G,B)." -msgstr "" +msgstr "Štandardná farba pozadia (R,G,B) v definícii formulára (Formspec)." #: src/settings_translation_file.cpp msgid "Formspec default background opacity (between 0 and 255)." msgstr "" +"Štandardná nepriehľadnosť pozadia (medzi 0 a 255) v definícii formulára " +"(Formspec)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background color (R,G,B)." msgstr "" +"Farba pozadia (R,G,B) v režime celej obrazovky v definícii formulára " +"(Formspec)." #: src/settings_translation_file.cpp msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" +"Nepriehľadnosť pozadia (0-255) v režime celej obrazovky v definícii " +"formulára (Formspec)." #: src/settings_translation_file.cpp msgid "Forward key" -msgstr "" +msgstr "Tlačidlo Vpred" #: src/settings_translation_file.cpp msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Štvrtý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "Fractal type" -msgstr "" +msgstr "Typ fraktálu" #: src/settings_translation_file.cpp msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" +msgstr "Zlomok viditeľnej vzdialenosti od ktorej začne byť vykresľovaná hmla" #: src/settings_translation_file.cpp msgid "FreeType fonts" -msgstr "" +msgstr "FreeType písma" #: src/settings_translation_file.cpp msgid "" "From how far blocks are generated for clients, stated in mapblocks (16 " "nodes)." msgstr "" +"Z akej vzdialeností sú klientovi generované bloky, zadané v blokoch mapy (16 " +"kociek)." #: src/settings_translation_file.cpp msgid "" "From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" +"Z akej vzdialenosti sú bloky posielané klientovi, uvádzané v blokoch mapy " +"(16 kociek)." #: src/settings_translation_file.cpp msgid "" @@ -3314,38 +3462,40 @@ msgid "" "to maintain active objects up to this distance in the direction the\n" "player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" +"Do akej vzdialenosti vedia klienti o objektoch, uvádzané v blokoch mapy (16 " +"kociek).\n" +"\n" +"Nastavenie vyššie ako active_block_range spôsobí, že server bude\n" +"uchovávať objekty až do udanej vzdialenosti v smere v ktorom sa\n" +"hráč pozerá. (Toto môže zabrániť tomu aby mobovia zrazu zmizli z pohľadu)" #: src/settings_translation_file.cpp msgid "Full screen" -msgstr "" +msgstr "Celá obrazovka" #: src/settings_translation_file.cpp msgid "Full screen BPP" -msgstr "" +msgstr "BPP v režime celej obrazovky" #: src/settings_translation_file.cpp msgid "Fullscreen mode." -msgstr "" +msgstr "Režim celej obrazovky." #: src/settings_translation_file.cpp msgid "GUI scaling" -msgstr "" +msgstr "Mierka GUI" #: src/settings_translation_file.cpp msgid "GUI scaling filter" -msgstr "" +msgstr "Filter mierky GUI" #: src/settings_translation_file.cpp msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" +msgstr "Filter mierky GUI txr2img" #: src/settings_translation_file.cpp msgid "Global callbacks" -msgstr "" +msgstr "Globálne odozvy" #: src/settings_translation_file.cpp msgid "" @@ -3353,54 +3503,67 @@ msgid "" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Globálne atribúty pre generovanie máp.\n" +"V generátore v6 príznak 'decorations' riadi všetky dekorácie okrem stromov\n" +"a vysokej trávy, vo všetkých ostatných generátoroch tento príznak riadi " +"všetky dekorácie." #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at maximum light level.\n" "Controls the contrast of the highest light levels." msgstr "" +"Gradient svetelnej krivky na maximálnych úrovniach svetlosti.\n" +"Upravuje kontrast najvyšších úrovni svetlosti." #: src/settings_translation_file.cpp msgid "" "Gradient of light curve at minimum light level.\n" "Controls the contrast of the lowest light levels." msgstr "" +"Gradient svetelnej krivky na minimálnych úrovniach svetlosti.\n" +"Upravuje kontrast najnižších úrovni svetlosti." #: src/settings_translation_file.cpp msgid "Graphics" -msgstr "" +msgstr "Grafika" #: src/settings_translation_file.cpp msgid "Gravity" -msgstr "" +msgstr "Gravitácia" #: src/settings_translation_file.cpp msgid "Ground level" -msgstr "" +msgstr "Základná úroveň" #: src/settings_translation_file.cpp msgid "Ground noise" -msgstr "" +msgstr "Šum terénu" #: src/settings_translation_file.cpp msgid "HTTP mods" -msgstr "" +msgstr "HTTP rozšírenia" #: src/settings_translation_file.cpp msgid "HUD scale factor" -msgstr "" +msgstr "Mierka HUD" #: src/settings_translation_file.cpp msgid "HUD toggle key" -msgstr "" +msgstr "Tlačidlo Prepínanie HUD" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" +"Spracovanie zastaralých Lua API volaní:\n" +"- none: Zastarané funkcie neukladaj do logu\n" +"- log: napodobni log backtrace zastaralého volania (štandardne).\n" +"- error: preruš spracovanie zastaralého volania (odporúčané pre vývojárov " +"rozšírení)." #: src/settings_translation_file.cpp msgid "" @@ -3410,216 +3573,227 @@ msgid "" "call).\n" "* Instrument the sampler being used to update the statistics." msgstr "" +"Ako má profiler inštrumentovať sám seba:\n" +"* Inštrumentuj prázdnu funkciu.\n" +"Toto odhaduje režijné náklady, táto inštrumentácia pridáva (+1 funkčné " +"volanie).\n" +"* Instrument the sampler being used to update the statistics." #: src/settings_translation_file.cpp msgid "Heat blend noise" -msgstr "" +msgstr "Šum miešania teplôt" #: src/settings_translation_file.cpp msgid "Heat noise" -msgstr "" +msgstr "Teplotný šum" #: src/settings_translation_file.cpp msgid "Height component of the initial window size." -msgstr "" +msgstr "Výška okna po spustení." #: src/settings_translation_file.cpp msgid "Height noise" -msgstr "" +msgstr "Výškový šum" #: src/settings_translation_file.cpp msgid "Height select noise" -msgstr "" +msgstr "Šum výšok" #: src/settings_translation_file.cpp msgid "High-precision FPU" -msgstr "" +msgstr "Vysoko-presné FPU" #: src/settings_translation_file.cpp msgid "Hill steepness" -msgstr "" +msgstr "Strmosť kopcov" #: src/settings_translation_file.cpp msgid "Hill threshold" -msgstr "" +msgstr "Hranica kopcov" #: src/settings_translation_file.cpp msgid "Hilliness1 noise" -msgstr "" +msgstr "Šum Kopcovitosť1" #: src/settings_translation_file.cpp msgid "Hilliness2 noise" -msgstr "" +msgstr "Šum Kopcovitosť2" #: src/settings_translation_file.cpp msgid "Hilliness3 noise" -msgstr "" +msgstr "Šum Kopcovitosť3" #: src/settings_translation_file.cpp msgid "Hilliness4 noise" -msgstr "" +msgstr "Šum Kopcovitosť4" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" +msgstr "Domovská stránka servera, ktorá bude zobrazená v zozname serverov." #: src/settings_translation_file.cpp msgid "" "Horizontal acceleration in air when jumping or falling,\n" "in nodes per second per second." msgstr "" +"Horizontálne zrýchlenie vo vzduchu pri skákaní alebo padaní,\n" +"v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration in fast mode,\n" "in nodes per second per second." msgstr "" +"Horizontálne a vertikálne zrýchlenie v rýchlom režime,\n" +"v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "" "Horizontal and vertical acceleration on ground or when climbing,\n" "in nodes per second per second." msgstr "" +"Horizontálne a vertikálne zrýchlenie na zemi, alebo pri šplhaní,\n" +"v kockách za sekundu na druhú." #: src/settings_translation_file.cpp msgid "Hotbar next key" -msgstr "" +msgstr "Tlačidlo Nasledujúca vec na opasku" #: src/settings_translation_file.cpp msgid "Hotbar previous key" -msgstr "" +msgstr "Tlačidlo Predchádzajúcu vec na opasku" #: src/settings_translation_file.cpp msgid "Hotbar slot 1 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 1" #: src/settings_translation_file.cpp msgid "Hotbar slot 10 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 10" #: src/settings_translation_file.cpp msgid "Hotbar slot 11 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 11" #: src/settings_translation_file.cpp msgid "Hotbar slot 12 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 12" #: src/settings_translation_file.cpp msgid "Hotbar slot 13 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 13" #: src/settings_translation_file.cpp msgid "Hotbar slot 14 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 14" #: src/settings_translation_file.cpp msgid "Hotbar slot 15 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 15" #: src/settings_translation_file.cpp msgid "Hotbar slot 16 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 16" #: src/settings_translation_file.cpp msgid "Hotbar slot 17 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 17" #: src/settings_translation_file.cpp msgid "Hotbar slot 18 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 18" #: src/settings_translation_file.cpp msgid "Hotbar slot 19 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 19" #: src/settings_translation_file.cpp msgid "Hotbar slot 2 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 2" #: src/settings_translation_file.cpp msgid "Hotbar slot 20 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 20" #: src/settings_translation_file.cpp msgid "Hotbar slot 21 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 21" #: src/settings_translation_file.cpp msgid "Hotbar slot 22 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 22" #: src/settings_translation_file.cpp msgid "Hotbar slot 23 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 23" #: src/settings_translation_file.cpp msgid "Hotbar slot 24 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 24" #: src/settings_translation_file.cpp msgid "Hotbar slot 25 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 25" #: src/settings_translation_file.cpp msgid "Hotbar slot 26 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 26" #: src/settings_translation_file.cpp msgid "Hotbar slot 27 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 27" #: src/settings_translation_file.cpp msgid "Hotbar slot 28 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 28" #: src/settings_translation_file.cpp msgid "Hotbar slot 29 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 29" #: src/settings_translation_file.cpp msgid "Hotbar slot 3 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 3" #: src/settings_translation_file.cpp msgid "Hotbar slot 30 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 30" #: src/settings_translation_file.cpp msgid "Hotbar slot 31 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 31" #: src/settings_translation_file.cpp msgid "Hotbar slot 32 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 32" #: src/settings_translation_file.cpp msgid "Hotbar slot 4 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 4" #: src/settings_translation_file.cpp msgid "Hotbar slot 5 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 5" #: src/settings_translation_file.cpp msgid "Hotbar slot 6 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 6" #: src/settings_translation_file.cpp msgid "Hotbar slot 7 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 7" #: src/settings_translation_file.cpp msgid "Hotbar slot 8 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 8" #: src/settings_translation_file.cpp msgid "Hotbar slot 9 key" -msgstr "" +msgstr "Tlačidlo Opasok pozícia 9" #: src/settings_translation_file.cpp msgid "How deep to make rivers." -msgstr "" +msgstr "Aké hlboké majú byť rieky." #: src/settings_translation_file.cpp msgid "" @@ -3627,42 +3801,49 @@ msgid "" "If negative, liquid waves will move backwards.\n" "Requires waving liquids to be enabled." msgstr "" +"Ako rýchlo sa budú pohybovať vlny tekutín. Vyššia hodnota = rýchlejšie.\n" +"Ak je záporná, tekutina sa bude pohybovať naspäť.\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "" "How much the server will wait before unloading unused mapblocks.\n" "Higher value is smoother, but will use more RAM." msgstr "" +"Koľko bude server čakať kým uvoľní nepoužívané bloky mapy.\n" +"Vyššia hodnota je plynulejšia, ale použije viac RAM." #: src/settings_translation_file.cpp msgid "How wide to make rivers." -msgstr "" +msgstr "Aké široké majú byť rieky." #: src/settings_translation_file.cpp msgid "Humidity blend noise" -msgstr "" +msgstr "Šum miešania vlhkostí" #: src/settings_translation_file.cpp msgid "Humidity noise" -msgstr "" +msgstr "Šum vlhkosti" #: src/settings_translation_file.cpp msgid "Humidity variation for biomes." -msgstr "" +msgstr "Odchýlky vlhkosti pre biómy." #: src/settings_translation_file.cpp msgid "IPv6" -msgstr "" +msgstr "IPv6" #: src/settings_translation_file.cpp msgid "IPv6 server" -msgstr "" +msgstr "IPv6 server" #: src/settings_translation_file.cpp msgid "" "If FPS would go higher than this, limit it by sleeping\n" "to not waste CPU power for no benefit." msgstr "" +"Ak by malo byt FPS vyššie, bude obmedzené, aby\n" +"sa bezvýznamne, bez úžitku neplytvalo výkonom CPU." #: src/settings_translation_file.cpp msgid "" @@ -3670,6 +3851,8 @@ msgid "" "are\n" "enabled." msgstr "" +"Ak je aktivované, použije sa \"špeciálna\" klávesa na lietanie, v prípade,\n" +"že je povolený režim lietania aj rýchlosti." #: src/settings_translation_file.cpp msgid "" @@ -3679,6 +3862,11 @@ msgid "" "invisible\n" "so that the utility of noclip mode is reduced." msgstr "" +"Ak je aktivovaný, server bude realizovať occlusion culling blokov mapy " +"založený\n" +"na pozícií oka hráča. Toto môže znížiť počet blokov posielaných klientovi\n" +"o 50-80%. Klient už nebude dostávať takmer neviditeľné bloky,\n" +"takže funkčnosť režim prechádzania stenami je obmedzená." #: src/settings_translation_file.cpp msgid "" @@ -3686,6 +3874,9 @@ msgid "" "nodes.\n" "This requires the \"noclip\" privilege on the server." msgstr "" +"Ak je aktivovaný spolu s režimom lietania, tak je hráč schopný letieť cez " +"pevné kocky.\n" +"Toto si na serveri vyžaduje privilégium \"noclip\"." #: src/settings_translation_file.cpp msgid "" @@ -3693,32 +3884,42 @@ msgid "" "down and\n" "descending." msgstr "" +"Ak je aktivované, použije sa namiesto klávesy pre \"zakrádanie\" \"špeciálnu " +"klávesu\"\n" +"pre klesanie a šplhanie dole." #: src/settings_translation_file.cpp msgid "" "If enabled, actions are recorded for rollback.\n" "This option is only read when server starts." msgstr "" +"Ak je aktivované, akcie sa nahrávajú pre účely obnovenia.\n" +"Toto nastavenie sa prečíta len pri štarte servera." #: src/settings_translation_file.cpp msgid "If enabled, disable cheat prevention in multiplayer." msgstr "" +"Ak je aktivované, zruší ochranu pred podvodmi (cheatmi) v multiplayeri." #: src/settings_translation_file.cpp msgid "" "If enabled, invalid world data won't cause the server to shut down.\n" "Only enable this if you know what you are doing." msgstr "" +"Ak je aktivované, chybné dáta nespôsobia vypnutie servera.\n" +"Povoľ len ak vieš čo robíš." #: src/settings_translation_file.cpp msgid "" "If enabled, makes move directions relative to the player's pitch when flying " "or swimming." msgstr "" +"Ak je aktivované, tak je smer pohybu pri lietaní, alebo plávaní daný sklonom " +"hráča." #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." -msgstr "" +msgstr "Ak je aktivované, nový hráči sa nemôžu pridať bez zadaného hesla." #: src/settings_translation_file.cpp msgid "" @@ -3726,6 +3927,9 @@ msgid "" "you stand.\n" "This is helpful when working with nodeboxes in small areas." msgstr "" +"Ak je aktivované, môžeš dať bloky na miesto kde stojíš (v úrovni päta + " +"oči).\n" +"Je to užitočné ak pracuješ s kockami v stiesnených priestoroch." #: src/settings_translation_file.cpp msgid "" @@ -3733,6 +3937,8 @@ msgid "" "limited\n" "to this distance from the player to the node." msgstr "" +"Ak sú CSM obmedzenia pre dohľad kocky aktívne, volania get_node sú\n" +"obmedzené touto vzdialenosťou od hráča ku kocke." #: src/settings_translation_file.cpp msgid "" @@ -3741,112 +3947,120 @@ msgid "" "deleting an older debug.txt.1 if it exists.\n" "debug.txt is only moved if this setting is positive." msgstr "" +"Ak veľkosť súboru debug.txt prekročí zadanú veľkosť v megabytoch,\n" +"keď bude otvorený, súbor bude presunutý do debug.txt.1,\n" +"ak existuje starší debug.txt.1, tak tento bude zmazaný.\n" +"debug.txt bude presunutý, len ak je toto nastavenie kladné." #: src/settings_translation_file.cpp msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" +msgstr "Ak je povolený, hráči vždy ožijú (obnovia sa) na zadanej pozícií." #: src/settings_translation_file.cpp msgid "Ignore world errors" -msgstr "" +msgstr "Ignoruj chyby vo svete" #: src/settings_translation_file.cpp msgid "In-Game" -msgstr "" +msgstr "V hre" #: src/settings_translation_file.cpp msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" +msgstr "Priehľadnosť pozadia konzoly v hre (nepriehľadnosť, medzi 0 a 255)." #: src/settings_translation_file.cpp msgid "In-game chat console background color (R,G,B)." -msgstr "" +msgstr "Pozadie (R,G,B) komunikačnej konzoly v hre." #: src/settings_translation_file.cpp msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" +msgstr "Výška komunikačnej konzoly v hre, medzi 0.1 (10%) a 1.0 (100%)." #: src/settings_translation_file.cpp msgid "Inc. volume key" -msgstr "" +msgstr "Tlačidlo Zvýš hlasitosť" #: src/settings_translation_file.cpp msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgstr "Počiatočná vertikálna rýchlosť pri skákaní, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "" "Instrument builtin.\n" "This is usually only needed by core/builtin contributors" msgstr "" +"Inštrumentuj vstavané (builtin).\n" +"Toto je obvykle potrebné len pre core/builtin prispievateľov" #: src/settings_translation_file.cpp msgid "Instrument chatcommands on registration." -msgstr "" +msgstr "Inštrumentuj komunikačné príkazy pri registrácií." #: src/settings_translation_file.cpp msgid "" "Instrument global callback functions on registration.\n" "(anything you pass to a minetest.register_*() function)" msgstr "" +"Inštrumentuj globálne odozvy volaní funkcií pri registrácií.\n" +"(čokoľvek je poslané minetest.register_*() funkcií)" #: src/settings_translation_file.cpp msgid "" "Instrument the action function of Active Block Modifiers on registration." -msgstr "" +msgstr "Inštrumentuj funkcie ABM pri registrácií." #: src/settings_translation_file.cpp msgid "" "Instrument the action function of Loading Block Modifiers on registration." -msgstr "" +msgstr "Inštrumentuj funkcie nahrávania modifikátorov blokov pri registrácií." #: src/settings_translation_file.cpp msgid "Instrument the methods of entities on registration." -msgstr "" +msgstr "Inštrumentuj metódy bytostí pri registrácií." #: src/settings_translation_file.cpp msgid "Instrumentation" -msgstr "" +msgstr "Výstroj" #: src/settings_translation_file.cpp msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" +msgstr "Interval ukladania dôležitých zmien vo svete, uvádzaný v sekundách." #: src/settings_translation_file.cpp msgid "Interval of sending time of day to clients." -msgstr "" +msgstr "Interval v akom sa posiela denný čas klientom." #: src/settings_translation_file.cpp msgid "Inventory items animations" -msgstr "" +msgstr "Animácia vecí v inventári" #: src/settings_translation_file.cpp msgid "Inventory key" -msgstr "" +msgstr "Tlačidlo Inventár" #: src/settings_translation_file.cpp msgid "Invert mouse" -msgstr "" +msgstr "Obrátiť smer myši" #: src/settings_translation_file.cpp msgid "Invert vertical mouse movement." -msgstr "" +msgstr "Obráti vertikálny pohyb myši." #: src/settings_translation_file.cpp msgid "Italic font path" -msgstr "" +msgstr "Cesta k šikmému písmu" #: src/settings_translation_file.cpp msgid "Italic monospace font path" -msgstr "" +msgstr "Cesta k šikmému písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Item entity TTL" -msgstr "" +msgstr "Životnosť odložených vecí" #: src/settings_translation_file.cpp msgid "Iterations" -msgstr "" +msgstr "Iterácie" #: src/settings_translation_file.cpp msgid "" @@ -3855,22 +4069,30 @@ msgid "" "increases processing load.\n" "At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"Iterácie rekurzívnej funkcie.\n" +"Zvýšenie zvýši úroveň jemnosti detailov, ale tiež\n" +"zvýši zaťaženie pri spracovaní.\n" +"Pri iteráciach = 20 má tento generátor podobné zaťaženie ako generátor V7." #: src/settings_translation_file.cpp msgid "Joystick ID" -msgstr "" +msgstr "ID joysticku" #: src/settings_translation_file.cpp msgid "Joystick button repetition interval" -msgstr "" +msgstr "Interval opakovania tlačidla joysticku" + +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Mŕtva zóna joysticku" #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" -msgstr "" +msgstr "Citlivosť otáčania pohľadu joystickom" #: src/settings_translation_file.cpp msgid "Joystick type" -msgstr "" +msgstr "Typ joysticku" #: src/settings_translation_file.cpp msgid "" @@ -3880,6 +4102,11 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"W komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "" @@ -3888,6 +4115,10 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"X komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "" @@ -3896,6 +4127,10 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"Y komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "" @@ -3904,30 +4139,34 @@ msgid "" "Alters the shape of the fractal.\n" "Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"Z komponent hyperkomplexnej konštanty.\n" +"Zmení tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "Julia w" -msgstr "" +msgstr "Julia w" #: src/settings_translation_file.cpp msgid "Julia x" -msgstr "" +msgstr "Julia x" #: src/settings_translation_file.cpp msgid "Julia y" -msgstr "" +msgstr "Julia y" #: src/settings_translation_file.cpp msgid "Julia z" -msgstr "" +msgstr "Julia z" #: src/settings_translation_file.cpp msgid "Jump key" -msgstr "" +msgstr "Tlačidlo Skok" #: src/settings_translation_file.cpp msgid "Jumping speed" -msgstr "" +msgstr "Rýchlosť skákania" #: src/settings_translation_file.cpp msgid "" @@ -3935,6 +4174,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zníženie dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3942,6 +4184,19 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zníženie hlasitosti.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre kopanie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3949,6 +4204,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zahodenie aktuálne vybranej veci.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3956,6 +4214,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zvýšenie dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3963,6 +4224,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre zvýšenie hlasitosti.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3970,6 +4234,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre skákanie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3977,6 +4244,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre rýchly pohyb hráča v rýchlom móde.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3985,6 +4255,10 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vzad.\n" +"Zároveň vypne automatický pohyb hráča dopredu, ak je aktívny.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3992,6 +4266,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vpred.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -3999,6 +4276,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vľavo.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4006,6 +4286,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre pohyb hráča vpravo.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4013,6 +4296,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre vypnutie hlasitosti v hre.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4020,6 +4306,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie komunikačného okna pre zadávanie príkazov.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4027,6 +4316,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie komunikačného okna pre zadávanie lokálnych príkazov.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4034,6 +4326,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie komunikačného okna.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4041,6 +4336,19 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre otvorenie inventára.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tlačidlo pre pokladanie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4048,6 +4356,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber jedenástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4055,6 +4366,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber dvanástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4062,6 +4376,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber trinástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4069,6 +4386,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber štrnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4076,6 +4396,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber pätnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4083,6 +4406,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber šestnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4090,6 +4416,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber sedemnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4097,6 +4426,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber osemnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4104,6 +4436,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber devätnástej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4111,6 +4446,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 20. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4118,6 +4456,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 21. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4125,6 +4466,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 22. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4132,6 +4476,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 23. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4139,6 +4486,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 24. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4146,6 +4496,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 25. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4153,6 +4506,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 26. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4160,6 +4516,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 27. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4167,6 +4526,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 28. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4174,6 +4536,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 29. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4181,6 +4546,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 30. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4188,6 +4556,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 31. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4195,6 +4566,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber 32. pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4202,6 +4576,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber ôsmej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4209,6 +4586,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber piatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4216,6 +4596,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber prvej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4223,6 +4606,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber štvrtej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4230,6 +4616,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber ďalšej veci na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4237,6 +4626,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber deviatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4244,6 +4636,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber predchádzajúcej veci na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4251,6 +4646,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber druhej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4258,6 +4656,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber siedmej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4265,6 +4666,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber šiestej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4272,6 +4676,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber desiatej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4279,6 +4686,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre výber tretej pozície na opasku.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4288,6 +4698,11 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre utajený pohyb (zakrádanie) hráča.\n" +"Tiež sa používa pre zliezanie a ponáranie vo vode ak aux1_descends je " +"vypnutý.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4295,6 +4710,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepínanie medzi pohľadom z prvej a tretej osoby.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4302,6 +4720,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre snímanie obrazovky.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4309,6 +4730,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu automatického pohybu vpred.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4316,6 +4740,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie filmového režimu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4323,6 +4750,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia minimapy.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4330,6 +4760,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu rýchlosť.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4337,6 +4770,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie lietania.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4344,6 +4780,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu prechádzania stenami.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4351,6 +4790,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie režimu pohyb podľa sklonu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4358,6 +4800,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie aktualizácie pohľadu. Používa sa len pre vývoj.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4365,6 +4810,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia komunikácie.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4372,6 +4820,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia ladiacich informácií.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4379,6 +4830,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia hmly.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4386,6 +4840,10 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia HUD (Head-Up Display - výhľadový " +"displej).\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4393,6 +4851,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia veľkej konzoly na komunikáciu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4400,6 +4861,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie zobrazenia profileru. Používa sa pri vývoji.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4407,6 +4871,9 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre prepnutie neobmedzeného dohľadu.\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" @@ -4414,46 +4881,49 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"Tlačidlo pre použitie priblíženia pokiaľ je to možné .\n" +"Viď. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" +msgstr "Vylúč hráča, ktorý pošle viac ako X správ za 10 sekúnd." #: src/settings_translation_file.cpp msgid "Lake steepness" -msgstr "" +msgstr "Strmosť jazier" #: src/settings_translation_file.cpp msgid "Lake threshold" -msgstr "" +msgstr "Hranica jazier" #: src/settings_translation_file.cpp msgid "Language" -msgstr "" +msgstr "Jazyk" #: src/settings_translation_file.cpp msgid "Large cave depth" -msgstr "" +msgstr "Hĺbka veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Large cave maximum number" -msgstr "" +msgstr "Minimálny počet veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Large cave minimum number" -msgstr "" +msgstr "Minimálny počet veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Large cave proportion flooded" -msgstr "" +msgstr "Pomer zaplavených častí veľkých jaskýň" #: src/settings_translation_file.cpp msgid "Large chat console key" -msgstr "" +msgstr "Tlačidlo Veľká komunikačná konzola" #: src/settings_translation_file.cpp msgid "Leaves style" -msgstr "" +msgstr "Štýl listov" #: src/settings_translation_file.cpp msgid "" @@ -4462,10 +4932,15 @@ msgid "" "- Simple: only outer faces, if defined special_tiles are used\n" "- Opaque: disable transparency" msgstr "" +"Štýly listov:\n" +"- Ozdobné: všetky plochy sú viditeľné\n" +"- Jednoduché: sú použité len vonkajšie plochy, ak sú použité definované " +"\"special_tiles\"\n" +"- Nepriehľadné: vypne priehliadnosť" #: src/settings_translation_file.cpp msgid "Left key" -msgstr "" +msgstr "Tlačidlo Vľavo" #: src/settings_translation_file.cpp msgid "" @@ -4473,24 +4948,32 @@ msgid "" "updated over\n" "network." msgstr "" +"Dĺžka kroku servera a interval v ktorom sú objekty aktualizované\n" +"cez sieť." #: src/settings_translation_file.cpp msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." msgstr "" +"Dĺžka vĺn tekutín.\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" +"Časový interval medzi jednotlivými vykonávacími cyklami ABM (Active Block " +"Modifier)" #: src/settings_translation_file.cpp msgid "Length of time between NodeTimer execution cycles" msgstr "" +"Časový interval medzi jednotlivými vykonávacími cyklami časovača kociek " +"(NodeTimer)" #: src/settings_translation_file.cpp msgid "Length of time between active block management cycles" -msgstr "" +msgstr "Časový interval medzi jednotlivými riadiacimi cyklami aktívnych blokov" #: src/settings_translation_file.cpp msgid "" @@ -4503,30 +4986,38 @@ msgid "" "- info\n" "- verbose" msgstr "" +"Úroveň ladiacich informácií, ktoré budú zapísané do debug.txt:\n" +"- (bez logovania)\n" +"- žiadna (správy bez úrovne)\n" +"- chyby\n" +"- varovania\n" +"- akcie\n" +"- informácie\n" +"- všetko" #: src/settings_translation_file.cpp msgid "Light curve boost" -msgstr "" +msgstr "Zosilnenie svetelnej krivky" #: src/settings_translation_file.cpp msgid "Light curve boost center" -msgstr "" +msgstr "Stred zosilnenia svetelnej krivky" #: src/settings_translation_file.cpp msgid "Light curve boost spread" -msgstr "" +msgstr "Rozptyl zosilnenia svetelnej krivky" #: src/settings_translation_file.cpp msgid "Light curve gamma" -msgstr "" +msgstr "Svetelná gamma krivka" #: src/settings_translation_file.cpp msgid "Light curve high gradient" -msgstr "" +msgstr "Horný gradient svetelnej krivky" #: src/settings_translation_file.cpp msgid "Light curve low gradient" -msgstr "" +msgstr "Spodný gradient svetelnej krivky" #: src/settings_translation_file.cpp msgid "" @@ -4534,6 +5025,10 @@ msgid "" "Only mapchunks completely within the mapgen limit are generated.\n" "Value is stored per-world." msgstr "" +"Limit pre generovanie mapy, v kockách, vo všetkých 6 smeroch (0, 0, 0).\n" +"Len časti mapy (mapchunks) kompletne v rámci limitu generátora máp sú " +"generované.\n" +"Hodnota sa ukladá pre každý svet." #: src/settings_translation_file.cpp msgid "" @@ -4543,38 +5038,43 @@ msgid "" "- Downloads performed by main menu (e.g. mod manager).\n" "Only has an effect if compiled with cURL." msgstr "" +"Maximálny počet paralelných HTTP požiadavok. Ovplyvňuje:\n" +"- Získavanie médií ak server používa nastavenie remote_media.\n" +"- Sťahovanie zoznamu serverov a zverejňovanie servera.\n" +"- Sťahovania vykonávané z hlavného menu (napr. správca rozšírení).\n" +"Má efekt len ak je skompilovaný s cURL." #: src/settings_translation_file.cpp msgid "Liquid fluidity" -msgstr "" +msgstr "Tekutosť kvapalín" #: src/settings_translation_file.cpp msgid "Liquid fluidity smoothing" -msgstr "" +msgstr "Zjemnenie tekutosti kvapalín" #: src/settings_translation_file.cpp msgid "Liquid loop max" -msgstr "" +msgstr "Max sprac. tekutín" #: src/settings_translation_file.cpp msgid "Liquid queue purge time" -msgstr "" +msgstr "Čas do uvolnenia fronty tekutín" #: src/settings_translation_file.cpp msgid "Liquid sinking" -msgstr "" +msgstr "Ponáranie v tekutinách" #: src/settings_translation_file.cpp msgid "Liquid update interval in seconds." -msgstr "" +msgstr "Aktualizačný interval tekutín v sekundách." #: src/settings_translation_file.cpp msgid "Liquid update tick" -msgstr "" +msgstr "Aktualizačný interval tekutín" #: src/settings_translation_file.cpp msgid "Load the game profiler" -msgstr "" +msgstr "Nahraj profiler hry" #: src/settings_translation_file.cpp msgid "" @@ -4582,53 +5082,63 @@ msgid "" "Provides a /profiler command to access the compiled profile.\n" "Useful for mod developers and server operators." msgstr "" +"Nahraj profiler hry pre získanie profilových dát.\n" +"Poskytne príkaz /profiler pre prístup k skompilovanému profilu.\n" +"Užitočné pre vývojárov rozšírení a správcov serverov." #: src/settings_translation_file.cpp msgid "Loading Block Modifiers" -msgstr "" +msgstr "Nahrávam modifikátory blokov" #: src/settings_translation_file.cpp msgid "Lower Y limit of dungeons." -msgstr "" +msgstr "Dolný Y limit kobiek." #: src/settings_translation_file.cpp msgid "Lower Y limit of floatlands." -msgstr "" +msgstr "Spodný Y limit lietajúcich pevnín." #: src/settings_translation_file.cpp msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" +msgstr "Skript hlavného menu" #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" +"Prispôsob farbu hmly a oblohy dennej dobe (svitanie/súmrak) a uhlu pohľadu." #: src/settings_translation_file.cpp msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" +msgstr "Umožní DirectX pracovať s LuaJIT. Vypni ak to spôsobuje problémy." #: src/settings_translation_file.cpp msgid "Makes all liquids opaque" -msgstr "" +msgstr "Všetky tekutiny budú nepriehľadné" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Úroveň kompresie mapy pre diskové úložisko" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Úroveň kompresie mapy pre sieťový prenos" #: src/settings_translation_file.cpp msgid "Map directory" -msgstr "" +msgstr "Adresár máp" #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" +msgstr "Špecifické príznaky pre generátor máp Karpaty." #: src/settings_translation_file.cpp msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" +"Špecifické atribúty pre plochý generátor mapy.\n" +"Príležitostne môžu byť na plochý svet pridané jazerá a kopce." #: src/settings_translation_file.cpp msgid "" @@ -4636,6 +5146,9 @@ msgid "" "'terrain' enables the generation of non-fractal terrain:\n" "ocean, islands and underground." msgstr "" +"Špecifické príznaky generátora máp Fraktál.\n" +"'terrain' aktivuje generovanie nie-fraktálneho terénu:\n" +"oceán, ostrovy and podzemie." #: src/settings_translation_file.cpp msgid "" @@ -4646,10 +5159,16 @@ msgid "" "to become shallower and occasionally dry.\n" "'altitude_dry': Reduces humidity with altitude." msgstr "" +"Špecifické príznaky pre generovanie mapy generátora Údolia.\n" +"'altitude_chill': Znižuje teplotu s nadmorskou výškou.\n" +"'humid_rivers': Zvyšuje vlhkosť okolo riek.\n" +"'vary_river_depth': ak je aktívne, nízka vlhkosť a vysoké teploty\n" +"spôsobia, že hladina rieky poklesne, niekdy aj vyschne.\n" +"'altitude_dry': Znižuje vlhkosť s nadmorskou výškou." #: src/settings_translation_file.cpp msgid "Map generation attributes specific to Mapgen v5." -msgstr "" +msgstr "Príznaky pre generovanie špecifické pre generátor V5." #: src/settings_translation_file.cpp msgid "" @@ -4658,6 +5177,10 @@ msgid "" "When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" "the 'jungles' flag is ignored." msgstr "" +"Špecifické atribúty pre generátor V6.\n" +"Príznak 'snowbiomes' aktivuje nový systém 5 biómov.\n" +"Ak je aktívny prźnak 'snowbiomes', džungle sú automaticky povolené a\n" +"príznak 'jungles' je ignorovaný." #: src/settings_translation_file.cpp msgid "" @@ -4666,144 +5189,153 @@ msgid "" "'floatlands': Floating land masses in the atmosphere.\n" "'caverns': Giant caves deep underground." msgstr "" +"Špecifické príznaky pre generátor máp V7.\n" +"'ridges': Rieky.\n" +"'floatlands': Lietajúce masy pevnín v atmosfére.\n" +"'caverns': Gigantické jaskyne hlboko v podzemí." #: src/settings_translation_file.cpp msgid "Map generation limit" -msgstr "" +msgstr "Limit generovania mapy" #: src/settings_translation_file.cpp msgid "Map save interval" -msgstr "" +msgstr "Interval ukladania mapy" #: src/settings_translation_file.cpp msgid "Mapblock limit" -msgstr "" +msgstr "Limit blokov mapy" #: src/settings_translation_file.cpp msgid "Mapblock mesh generation delay" -msgstr "" +msgstr "Oneskorenie generovania Mesh blokov" #: src/settings_translation_file.cpp msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" +msgstr "Medzipamäť Mapblock Mesh generátora blokov v MB" #: src/settings_translation_file.cpp msgid "Mapblock unload timeout" -msgstr "" +msgstr "Čas odstránenia bloku mapy" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian" -msgstr "" +msgstr "Generátor mapy Karpaty" #: src/settings_translation_file.cpp msgid "Mapgen Carpathian specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora máp Karpaty" #: src/settings_translation_file.cpp msgid "Mapgen Flat" -msgstr "" +msgstr "Generátor mapy plochý" #: src/settings_translation_file.cpp msgid "Mapgen Flat specific flags" -msgstr "" +msgstr "Špecifické príznaky plochého generátora mapy" #: src/settings_translation_file.cpp msgid "Mapgen Fractal" -msgstr "" +msgstr "Generátor mapy Fraktál" #: src/settings_translation_file.cpp msgid "Mapgen Fractal specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora máp Fraktál" #: src/settings_translation_file.cpp msgid "Mapgen V5" -msgstr "" +msgstr "Generátor mapy V5" #: src/settings_translation_file.cpp msgid "Mapgen V5 specific flags" -msgstr "" +msgstr "Špecifické príznaky pre generátor mapy V5" #: src/settings_translation_file.cpp msgid "Mapgen V6" -msgstr "" +msgstr "Generátor mapy V6" #: src/settings_translation_file.cpp msgid "Mapgen V6 specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora mapy V6" #: src/settings_translation_file.cpp msgid "Mapgen V7" -msgstr "" +msgstr "Generátor mapy V7" #: src/settings_translation_file.cpp msgid "Mapgen V7 specific flags" -msgstr "" +msgstr "Špecifické príznaky generátora V7" #: src/settings_translation_file.cpp msgid "Mapgen Valleys" -msgstr "" +msgstr "Generátor mapy Údolia" #: src/settings_translation_file.cpp msgid "Mapgen Valleys specific flags" -msgstr "" +msgstr "Špecifické príznaky pre generátor Údolia" #: src/settings_translation_file.cpp msgid "Mapgen debug" -msgstr "" +msgstr "Ladenie generátora máp" #: src/settings_translation_file.cpp msgid "Mapgen name" -msgstr "" +msgstr "Meno generátora mapy" #: src/settings_translation_file.cpp msgid "Max block generate distance" -msgstr "" +msgstr "Maximálna vzdialenosť generovania blokov" #: src/settings_translation_file.cpp msgid "Max block send distance" -msgstr "" +msgstr "Max vzdialenosť posielania objektov" #: src/settings_translation_file.cpp msgid "Max liquids processed per step." -msgstr "" +msgstr "Maximálny počet tekutín spracovaný v jednom kroku." #: src/settings_translation_file.cpp msgid "Max. clearobjects extra blocks" -msgstr "" +msgstr "Max. extra blokov clearobjects" #: src/settings_translation_file.cpp msgid "Max. packets per iteration" -msgstr "" +msgstr "Max. paketov za opakovanie" #: src/settings_translation_file.cpp msgid "Maximum FPS" -msgstr "" +msgstr "Maximálne FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" +"Maximálne FPS, ak je hra nie je v aktuálnom okne, alebo je pozastavená." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" -msgstr "" +msgstr "Maximum vynútene nahraných blokov" #: src/settings_translation_file.cpp msgid "Maximum hotbar width" -msgstr "" +msgstr "Maximálna šírka opaska" #: src/settings_translation_file.cpp msgid "Maximum limit of random number of large caves per mapchunk." msgstr "" +"Maximálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Maximum limit of random number of small caves per mapchunk." msgstr "" +"Maximálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "" "Maximum liquid resistance. Controls deceleration when entering liquid at\n" "high speed." msgstr "" +"Maximálny odpor tekutín. Riadi spomalenie ak sa tekutina\n" +"vlieva vysokou rýchlosťou." #: src/settings_translation_file.cpp msgid "" @@ -4811,32 +5343,51 @@ msgid "" "The maximum total count is calculated dynamically:\n" "max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" +"Maximálny počet súčasne posielaných blokov na klienta.\n" +"Maximálny počet sa prepočítava dynamicky:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" #: src/settings_translation_file.cpp msgid "Maximum number of blocks that can be queued for loading." -msgstr "" +msgstr "Maximálny limit kociek, ktoré môžu byť vo fronte pre nahrávanie." #: src/settings_translation_file.cpp msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" +"Maximálny limit kociek vo fronte, ktoré budú generované.\n" +"Tento limit je vynútený pre každého hráča." #: src/settings_translation_file.cpp msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" +"Maximálny limit kociek vo fronte, ktoré budú nahrané zo súboru.\n" +"Tento limit je vynútený pre každého hráča." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Maximálny počet súčasných sťahovaní. Sťahovania presahujúce tento limit budú " +"čakať v rade.\n" +"Mal by byť nižší ako curl_parallel_limit." #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." -msgstr "" +msgstr "Maximálny počet vynútene nahraných blokov mapy." #: src/settings_translation_file.cpp msgid "" "Maximum number of mapblocks for client to be kept in memory.\n" "Set to -1 for unlimited amount." msgstr "" +"Maximálny počet blokov u klienta, ktoré ostávajú v pamäti.\n" +"Nastav -1 pre neobmedzené množstvo." #: src/settings_translation_file.cpp msgid "" @@ -4844,160 +5395,173 @@ msgid "" "try reducing it, but don't reduce it to a number below double of targeted\n" "client number." msgstr "" +"Maximálny počet paketov poslaný pri jednom kroku posielania,\n" +"ak máš pomalé pripojenie skús ho znížiť, ale\n" +"neznižuj ho pod dvojnásobok cieľového počtu klientov." #: src/settings_translation_file.cpp msgid "Maximum number of players that can be connected simultaneously." -msgstr "" +msgstr "Maximálny počet hráčov, ktorí sa môžu súčasne pripojiť." #: src/settings_translation_file.cpp msgid "Maximum number of recent chat messages to show" -msgstr "" +msgstr "Maximálny počet nedávnych správ v komunikácií, ktoré budú zobrazované" #: src/settings_translation_file.cpp msgid "Maximum number of statically stored objects in a block." -msgstr "" +msgstr "Maximálny počet staticky uložených objektov v bloku." #: src/settings_translation_file.cpp msgid "Maximum objects per block" -msgstr "" +msgstr "Max. počet objektov na blok" #: src/settings_translation_file.cpp msgid "" "Maximum proportion of current window to be used for hotbar.\n" "Useful if there's something to be displayed right or left of hotbar." msgstr "" +"Maximálny pomer aktuálneho okna, ktorý sa použije pre opasok.\n" +"Užitočné, ak treba zobraziť niečo vpravo, alebo vľavo od opaska." #: src/settings_translation_file.cpp msgid "Maximum simultaneous block sends per client" -msgstr "" +msgstr "Maximum súčasných odoslaní bloku na klienta" #: src/settings_translation_file.cpp msgid "Maximum size of the out chat queue" -msgstr "" +msgstr "Maximálna veľkosť výstupnej komunikačnej fronty" #: src/settings_translation_file.cpp msgid "" "Maximum size of the out chat queue.\n" "0 to disable queueing and -1 to make the queue size unlimited." msgstr "" +"Maximálna veľkosť výstupnej komunikačnej fronty.\n" +"0 pre zakázanie fronty a -1 pre neobmedzenú frontu." #: src/settings_translation_file.cpp msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" +"Maximálny čas v ms, ktorý môže zabrať sťahovanie súboru (napr. sťahovanie " +"rozšírenia)." #: src/settings_translation_file.cpp msgid "Maximum users" -msgstr "" +msgstr "Maximálny počet hráčov" #: src/settings_translation_file.cpp msgid "Menus" -msgstr "" +msgstr "Menu" #: src/settings_translation_file.cpp msgid "Mesh cache" -msgstr "" +msgstr "Medzipamäť Mesh" #: src/settings_translation_file.cpp msgid "Message of the day" -msgstr "" +msgstr "Správa dňa" #: src/settings_translation_file.cpp msgid "Message of the day displayed to players connecting." -msgstr "" +msgstr "Správa dňa sa zobrazí hráčom pri pripájaní." #: src/settings_translation_file.cpp msgid "Method used to highlight selected object." -msgstr "" +msgstr "Metóda použitá pre zvýraznenie vybraných objektov." #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "Minimálna úroveň záznamov, ktoré budú vypísané do komunikačného okna." #: src/settings_translation_file.cpp msgid "Minimap" -msgstr "" +msgstr "Minimapa" #: src/settings_translation_file.cpp msgid "Minimap key" -msgstr "" +msgstr "Tlačidlo Minimapa" #: src/settings_translation_file.cpp msgid "Minimap scan height" -msgstr "" +msgstr "Minimapa výška skenovania" #: src/settings_translation_file.cpp msgid "Minimum limit of random number of large caves per mapchunk." msgstr "" +"Minimálny limit náhodného počtu veľkých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Minimum limit of random number of small caves per mapchunk." msgstr "" +"Minimálny limit náhodného počtu malých jaskýň v danej časti mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "Minimum texture size" -msgstr "" +msgstr "Minimálna veľkosť textúry" #: src/settings_translation_file.cpp msgid "Mipmapping" -msgstr "" +msgstr "Mipmapping" #: src/settings_translation_file.cpp msgid "Mod channels" -msgstr "" +msgstr "Komunikačné kanály rozšírení" #: src/settings_translation_file.cpp msgid "Modifies the size of the hudbar elements." -msgstr "" +msgstr "Upraví veľkosť elementov v užívateľskom rozhraní." #: src/settings_translation_file.cpp msgid "Monospace font path" -msgstr "" +msgstr "Cesta k písmu s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Monospace font size" -msgstr "" +msgstr "Veľkosť písmo s pevnou šírkou" #: src/settings_translation_file.cpp msgid "Mountain height noise" -msgstr "" +msgstr "Šum pre výšku hôr" #: src/settings_translation_file.cpp msgid "Mountain noise" -msgstr "" +msgstr "Šum hôr" #: src/settings_translation_file.cpp msgid "Mountain variation noise" -msgstr "" +msgstr "Odchýlka šumu hôr" #: src/settings_translation_file.cpp msgid "Mountain zero level" -msgstr "" +msgstr "Základná úroveň hôr" #: src/settings_translation_file.cpp msgid "Mouse sensitivity" -msgstr "" +msgstr "Citlivosť myši" #: src/settings_translation_file.cpp msgid "Mouse sensitivity multiplier." -msgstr "" +msgstr "Multiplikátor citlivosti myši." #: src/settings_translation_file.cpp msgid "Mud noise" -msgstr "" +msgstr "Šum bahna" #: src/settings_translation_file.cpp msgid "" "Multiplier for fall bobbing.\n" "For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" +"Násobiteľ pre pohupovanie sa pri pádu.\n" +"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné." #: src/settings_translation_file.cpp msgid "Mute key" -msgstr "" +msgstr "Tlačidlo Ticho" #: src/settings_translation_file.cpp msgid "Mute sound" -msgstr "" +msgstr "Stíš hlasitosť" #: src/settings_translation_file.cpp msgid "" @@ -5006,6 +5570,10 @@ msgid "" "Current mapgens in a highly unstable state:\n" "- The optional floatlands of v7 (disabled by default)." msgstr "" +"Meno generátora mapy, ktorý sa použije pri vytváraní nového sveta.\n" +"Vytvorenie sveta cez hlavné menu toto prepíše.\n" +"Aktuálne nestabilné generátory:\n" +"- Voliteľné lietajúce pevniny (floatlands) vo v7 (štandardne vypnuté)." #: src/settings_translation_file.cpp msgid "" @@ -5013,61 +5581,59 @@ msgid "" "When running a server, clients connecting with this name are admins.\n" "When starting from the main menu, this is overridden." msgstr "" +"Meno hráča.\n" +"Ak je spustený server, klienti s týmto menom sú administrátori.\n" +"Pri štarte z hlavného menu, toto bude prepísané." #: src/settings_translation_file.cpp msgid "" "Name of the server, to be displayed when players join and in the serverlist." msgstr "" +"Zobrazované meno servera, keď sa hráč na server pripojí a v zozname serverov." #: src/settings_translation_file.cpp msgid "Near plane" -msgstr "" +msgstr "Blízkosť roviny" #: src/settings_translation_file.cpp msgid "Network" -msgstr "" +msgstr "Sieť" #: src/settings_translation_file.cpp msgid "" "Network port to listen (UDP).\n" "This value will be overridden when starting from the main menu." msgstr "" +"Sieťový port (UDP).\n" +"Táto hodnota bude prepísaná pri spustení z hlavného menu." #: src/settings_translation_file.cpp msgid "New users need to input this password." -msgstr "" +msgstr "Noví hráči musia zadať toto heslo." #: src/settings_translation_file.cpp msgid "Noclip" -msgstr "" +msgstr "Prechádzanie stenami" #: src/settings_translation_file.cpp msgid "Noclip key" -msgstr "" +msgstr "Tlačidlo Prechádzanie stenami" #: src/settings_translation_file.cpp msgid "Node highlighting" -msgstr "" +msgstr "Zvýrazňovanie kociek" #: src/settings_translation_file.cpp msgid "NodeTimer interval" -msgstr "" +msgstr "Interval časovača kociek" #: src/settings_translation_file.cpp msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" +msgstr "Šumy" #: src/settings_translation_file.cpp msgid "Number of emerge threads" -msgstr "" +msgstr "Počet použitých vlákien" #: src/settings_translation_file.cpp msgid "" @@ -5082,6 +5648,16 @@ msgid "" "processes, especially in singleplayer and/or when running Lua code in\n" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" +"Počet použitých vlákien.\n" +"Hodnota 0:\n" +"- Automatický určenie. Počet použitých vlákien bude\n" +"- 'počet procesorov - 2', s dolným limitom 1.\n" +"Akákoľvek iná hodnota:\n" +"- Definuje počet vlákien, s dolným limitom 1.\n" +"VAROVANIE: Zvýšenie počtu vlákien zvýši rýchlosť generátora máp,\n" +"ale môže to uškodiť hernému výkonu interferenciou s inými\n" +"procesmi, obzvlášť pri hre jedného hráča a/alebo ak beží Lua kód\n" +"v 'on_generated'. Pre mnohých hráčov môže byť optimálne nastavenie '1'." #: src/settings_translation_file.cpp msgid "" @@ -5089,28 +5665,27 @@ msgid "" "This is a trade-off between sqlite transaction overhead and\n" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" +"Počet extra blokov, ktoré môžu byť naraz nahrané pomocou /clearobjects.\n" +"Toto je kompromis medzi vyťažením sqlite transakciami\n" +"a spotrebou pamäti (4096=100MB, ako približné pravidlo)." #: src/settings_translation_file.cpp msgid "Online Content Repository" -msgstr "" +msgstr "Úložisko doplnkov na internete" #: src/settings_translation_file.cpp msgid "Opaque liquids" -msgstr "" +msgstr "Nepriehľadné tekutiny" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" +msgstr "Nepriehľadnosť tieňa za štandardným písmom, medzi 0 a 255." #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgstr "Nepriehľadnosť tieňa za záložným písmom, medzi 0 a 255." #: src/settings_translation_file.cpp msgid "" @@ -5118,34 +5693,8 @@ msgid "" "formspec is\n" "open." msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" +"Otvorí menu pozastavenia, ak aktuálne okno hry nie je vybrané.\n" +"Nepozastaví sa ak je otvorený formspec." #: src/settings_translation_file.cpp msgid "" @@ -5155,22 +5704,33 @@ msgid "" "This font will be used for certain languages or if the default font is " "unavailable." msgstr "" +"Cesta k záložnému písmu.\n" +"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Toto písmo bude použité pre určité jazyky, alebo ak nie je štandardné písmo " +"k dispozícií." #: src/settings_translation_file.cpp msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Cesta, kam sa budú ukladať snímky obrazovky. Môže to byť ako absolútna, tak " +"relatívna cesta.\n" +"Adresár bude vytvorený ak neexistuje." #: src/settings_translation_file.cpp msgid "" "Path to shader directory. If no path is defined, default location will be " "used." msgstr "" +"Cesta do adresára so shadermi. Ak nie je definovaná, použije sa predvolená " +"lokácia." #: src/settings_translation_file.cpp msgid "Path to texture directory. All textures are first searched from here." -msgstr "" +msgstr "Cesta do adresára s textúrami. Všetky textúry sú najprv hľadané tu." #: src/settings_translation_file.cpp msgid "" @@ -5179,6 +5739,11 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "The fallback font will be used if the font cannot be loaded." msgstr "" +"Cesta k štandardnému písmu.\n" +"Ak je aktivné nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Bude použité záložné písmo, ak nebude možné písmo nahrať." #: src/settings_translation_file.cpp msgid "" @@ -5187,90 +5752,113 @@ msgid "" "If “freetype” setting is disabled: Must be a bitmap or XML vectors font.\n" "This font is used for e.g. the console and profiler screen." msgstr "" +"Cesta k písmu s pevnou šírkou.\n" +"Ak je aktívne nastavenie “freetype”: Musí to byť TrueType písmo.\n" +"Ak je zakázané nastavenie “freetype”: Musí to byť bitmapové, alebo XML " +"vektorové písmo.\n" +"Toto písmo je použité pre napr. konzolu a okno profilera." #: src/settings_translation_file.cpp msgid "Pause on lost window focus" -msgstr "" +msgstr "Pozastav hru, pri strate zamerania okna" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "Limit kociek vo fronte na každého hráča nahrávaných z disku" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks to generate" -msgstr "" +msgstr "Limit kociek vo fronte na každého hráča pre generovanie" #: src/settings_translation_file.cpp msgid "Physics" -msgstr "" +msgstr "Fyzika" #: src/settings_translation_file.cpp msgid "Pitch move key" -msgstr "" +msgstr "Tlačidlo Pohyb podľa sklonu" #: src/settings_translation_file.cpp msgid "Pitch move mode" -msgstr "" +msgstr "Režim pohybu podľa sklonu" + +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Tlačidlo na pokladanie" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Interval opakovania pokladania" #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." msgstr "" +"Hráč je schopný lietať bez ovplyvnenia gravitáciou.\n" +"Toto si na serveri vyžaduje privilégium \"fly\"." #: src/settings_translation_file.cpp msgid "Player name" -msgstr "" +msgstr "Meno hráča" #: src/settings_translation_file.cpp msgid "Player transfer distance" -msgstr "" +msgstr "Vzdialenosť zobrazenia hráča" #: src/settings_translation_file.cpp msgid "Player versus player" -msgstr "" +msgstr "Hráč proti hráčovi (PvP)" #: src/settings_translation_file.cpp msgid "" "Port to connect to (UDP).\n" "Note that the port field in the main menu overrides this setting." msgstr "" +"Port pre pripojenie sa (UDP).\n" +"Políčko pre nastavenie Portu v hlavnom menu prepíše toto nastavenie." #: src/settings_translation_file.cpp msgid "" "Prevent digging and placing from repeating when holding the mouse buttons.\n" "Enable this when you dig or place too often by accident." msgstr "" +"Zabráni opakovanému kopaniu a ukladaniu blokov pri držaní tlačítka myši.\n" +"Aktivuj, ak príliš často omylom niečo vykopeš, alebo položíš blok." #: src/settings_translation_file.cpp msgid "Prevent mods from doing insecure things like running shell commands." msgstr "" +"Zabráni rozšíreniam aby robili nebezpečné veci ako spúšťanie systémových " +"príkazov." #: src/settings_translation_file.cpp msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" +"Vytlačí profilové dáta enginu v pravidelných intervaloch (v sekundách).\n" +"0 = vypnuté. Užitočné pre vývojárov." #: src/settings_translation_file.cpp msgid "Privileges that players with basic_privs can grant" -msgstr "" +msgstr "Oprávnenia, ktoré môže udeliť hráč s basic_privs" #: src/settings_translation_file.cpp msgid "Profiler" -msgstr "" +msgstr "Profiler" #: src/settings_translation_file.cpp msgid "Profiler toggle key" -msgstr "" +msgstr "Tlačidlo Prepínanie profileru" #: src/settings_translation_file.cpp msgid "Profiling" -msgstr "" +msgstr "Profilovanie" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Odpočúvacia adresa Promethea" #: src/settings_translation_file.cpp msgid "" @@ -5279,10 +5867,14 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Odpočúvacia adresa Promethea.\n" +"Ak je minetest skompilovaný s nastaveným ENABLE_PROMETHEUS,\n" +"aktivuj odpočúvanie metriky pre Prometheus na zadanej adrese.\n" +"Metrika môže byť získaná na http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." -msgstr "" +msgstr "Pomer častí veľkých jaskýň, ktoré obsahujú tekutinu." #: src/settings_translation_file.cpp msgid "" @@ -5290,48 +5882,52 @@ msgid "" "Values larger than 26 will start to produce sharp cutoffs at cloud area " "corners." msgstr "" +"Polomer oblasti mrakov zadaný v počtoch 64 kociek na štvorcový mrak.\n" +"Hodnoty vyššie než 26 budú produkovať ostré hranice na rohoch oblasti mrakov." #: src/settings_translation_file.cpp msgid "Raises terrain to make valleys around the rivers." -msgstr "" +msgstr "Zvýši terén aby vznikli údolia okolo riek." #: src/settings_translation_file.cpp msgid "Random input" -msgstr "" +msgstr "Náhodný vstup" #: src/settings_translation_file.cpp msgid "Range select key" -msgstr "" +msgstr "Tlačidlo Dohľad" #: src/settings_translation_file.cpp msgid "Recent Chat Messages" -msgstr "" +msgstr "Posledné správy v komunikácií" #: src/settings_translation_file.cpp msgid "Regular font path" -msgstr "" +msgstr "Štandardná cesta k písmam" #: src/settings_translation_file.cpp msgid "Remote media" -msgstr "" +msgstr "Vzdialené média" #: src/settings_translation_file.cpp msgid "Remote port" -msgstr "" +msgstr "Vzdialený port" #: src/settings_translation_file.cpp msgid "" "Remove color codes from incoming chat messages\n" "Use this to stop players from being able to use color in their messages" msgstr "" +"Odstráň farby z prichádzajúcich komunikačných správ\n" +"Použi pre zabránenie používaniu farieb hráčmi v ich správach" #: src/settings_translation_file.cpp msgid "Replaces the default main menu with a custom one." -msgstr "" +msgstr "Nahradí štandardné hlavné menu vlastným." #: src/settings_translation_file.cpp msgid "Report path" -msgstr "" +msgstr "Cesta k záznamom" #: src/settings_translation_file.cpp msgid "" @@ -5346,90 +5942,96 @@ msgid "" "csm_restriction_noderange)\n" "READ_PLAYERINFO: 32 (disable get_player_names call client-side)" msgstr "" +"Obmedzi prístup k určitým klientským funkciám na serveroch.\n" +"Skombinuj bajtové príznaky dole pre obmedzenie jednotlivých\n" +"fukncii u klienta, alebo nastav 0 pre funkcie bez obmedzení:\n" +"LOAD_CLIENT_MODS: 1 (zakáže nahrávanie rozšírení u klienta)\n" +"CHAT_MESSAGES: 2 (zakáže send_chat_message volania u klienta)\n" +"READ_ITEMDEFS: 4 (zakáže get_item_def volania u klienta)\n" +"READ_NODEDEFS: 8 (zakáže get_node_def volania u klienta)\n" +"LOOKUP_NODES_LIMIT: 16 (obmedzí get_node volania u klienta na\n" +"csm_restriction_noderange)\n" +"READ_PLAYERINFO: 32 (zakáže get_player_names volania u klienta)" #: src/settings_translation_file.cpp msgid "Ridge mountain spread noise" -msgstr "" +msgstr "Rozptyl šumu hrebeňa hôr" #: src/settings_translation_file.cpp msgid "Ridge noise" -msgstr "" +msgstr "Šum hrebeňa" #: src/settings_translation_file.cpp msgid "Ridge underwater noise" -msgstr "" +msgstr "Šum podmorského hrebeňa" #: src/settings_translation_file.cpp msgid "Ridged mountain size noise" -msgstr "" +msgstr "Veľkosť šumu hrebeňa hôr" #: src/settings_translation_file.cpp msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" +msgstr "Tlačidlo Vpravo" #: src/settings_translation_file.cpp msgid "River channel depth" -msgstr "" +msgstr "Hĺbka riečneho kanála" #: src/settings_translation_file.cpp msgid "River channel width" -msgstr "" +msgstr "Šírka kanála rieky" #: src/settings_translation_file.cpp msgid "River depth" -msgstr "" +msgstr "Hĺbka rieky" #: src/settings_translation_file.cpp msgid "River noise" -msgstr "" +msgstr "Šum riek" #: src/settings_translation_file.cpp msgid "River size" -msgstr "" +msgstr "Veľkosť riek" #: src/settings_translation_file.cpp msgid "River valley width" -msgstr "" +msgstr "Šírka údolia rieky" #: src/settings_translation_file.cpp msgid "Rollback recording" -msgstr "" +msgstr "Nahrávanie pre obnovenie" #: src/settings_translation_file.cpp msgid "Rolling hill size noise" -msgstr "" +msgstr "Veľkosť šumu vlnitosti kopcov" #: src/settings_translation_file.cpp msgid "Rolling hills spread noise" -msgstr "" +msgstr "Rozptyl šumu vlnitosti kopcov" #: src/settings_translation_file.cpp msgid "Round minimap" -msgstr "" +msgstr "Okrúhla minimapa" #: src/settings_translation_file.cpp msgid "Safe digging and placing" -msgstr "" +msgstr "Bezpečné kopanie a ukladanie" #: src/settings_translation_file.cpp msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" +msgstr "Pieskové pláže sa objavia keď np_beach presiahne túto hodnotu." #: src/settings_translation_file.cpp msgid "Save the map received by the client on disk." -msgstr "" +msgstr "Ulož mapu získanú klientom na disk." #: src/settings_translation_file.cpp msgid "Save window size automatically when modified." -msgstr "" +msgstr "Automaticky ulož veľkosť okna po úprave." #: src/settings_translation_file.cpp msgid "Saving map received from server" -msgstr "" +msgstr "Ukladanie mapy získanej zo servera" #: src/settings_translation_file.cpp msgid "" @@ -5439,26 +6041,31 @@ msgid "" "pixels when scaling down, at the cost of blurring some\n" "edge pixels when images are scaled by non-integer sizes." msgstr "" +"Zmeň mierku užívateľského rozhrania (GUI) podľa zadanej hodnoty.\n" +"Pre zmenu mierky GUI použi antialias filter podľa-najbližšieho-suseda.\n" +"Toto zjemní niektoré hrubé hrany a zmieša pixely pri zmenšení,\n" +"za cenu rozmazania niektorých okrajových pixelov ak sa mierka\n" +"obrázkov mení podľa neceločíselných hodnôt." #: src/settings_translation_file.cpp msgid "Screen height" -msgstr "" +msgstr "Výška obrazovky" #: src/settings_translation_file.cpp msgid "Screen width" -msgstr "" +msgstr "Šírka obrazovky" #: src/settings_translation_file.cpp msgid "Screenshot folder" -msgstr "" +msgstr "Adresár pre snímky obrazovky" #: src/settings_translation_file.cpp msgid "Screenshot format" -msgstr "" +msgstr "Formát snímok obrazovky" #: src/settings_translation_file.cpp msgid "Screenshot quality" -msgstr "" +msgstr "Kvalita snímok obrazovky" #: src/settings_translation_file.cpp msgid "" @@ -5466,38 +6073,41 @@ msgid "" "1 means worst quality; 100 means best quality.\n" "Use 0 for default quality." msgstr "" +"Kvalita snímok obrazovky. Používa sa len pre JPEG formát.\n" +"1 znamená najhoršiu kvalitu; 100 znamená najlepšiu kvalitu.\n" +"Použi 0 pre štandardnú kvalitu." #: src/settings_translation_file.cpp msgid "Seabed noise" -msgstr "" +msgstr "Šum morského dna" #: src/settings_translation_file.cpp msgid "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Druhý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "Second of two 3D noises that together define tunnels." -msgstr "" +msgstr "Druhý z dvoch 3D šumov, ktoré spolu definujú tunely." #: src/settings_translation_file.cpp msgid "Security" -msgstr "" +msgstr "Bezpečnosť" #: src/settings_translation_file.cpp msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" +msgstr "Viď. https://www.sqlite.org/pragma.html#pragma_synchronous" #: src/settings_translation_file.cpp msgid "Selection box border color (R,G,B)." -msgstr "" +msgstr "Farba obrysu bloku (R,G,B)." #: src/settings_translation_file.cpp msgid "Selection box color" -msgstr "" +msgstr "Farba obrysu bloku" #: src/settings_translation_file.cpp msgid "Selection box width" -msgstr "" +msgstr "Šírka obrysu bloku" #: src/settings_translation_file.cpp msgid "" @@ -5521,74 +6131,101 @@ msgid "" "17 = 4D \"Mandelbulb\" Mandelbrot set.\n" "18 = 4D \"Mandelbulb\" Julia set." msgstr "" +"Zvoľ si jeden z 18 typov fraktálu.\n" +"1 = 4D \"Roundy\" sada Mandelbrot.\n" +"2 = 4D \"Roundy\" sada Julia.\n" +"3 = 4D \"Squarry\" sada Mandelbrot.\n" +"4 = 4D \"Squarry\" sada Julia.\n" +"5 = 4D \"Mandy Cousin\" sada Mandelbrot.\n" +"6 = 4D \"Mandy Cousin\" sada Julia.\n" +"7 = 4D \"Variation\" sada Mandelbrot.\n" +"8 = 4D \"Variation\" sada Julia.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" sada Mandelbrot.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" sada Julia.\n" +"11 = 3D \"Christmas Tree\" sada Mandelbrot.\n" +"12 = 3D \"Christmas Tree\" sada Julia.\n" +"13 = 3D \"Mandelbulb\" sada Mandelbrot.\n" +"14 = 3D \"Mandelbulb\" sada Julia.\n" +"15 = 3D \"Cosine Mandelbulb\" sada Mandelbrot.\n" +"16 = 3D \"Cosine Mandelbulb\" sada Julia.\n" +"17 = 4D \"Mandelbulb\" sada Mandelbrot.\n" +"18 = 4D \"Mandelbulb\" sada Julia." #: src/settings_translation_file.cpp msgid "Server / Singleplayer" -msgstr "" +msgstr "Server / Hra pre jedného hráča" #: src/settings_translation_file.cpp msgid "Server URL" -msgstr "" +msgstr "URL servera" #: src/settings_translation_file.cpp msgid "Server address" -msgstr "" +msgstr "Adresa servera" #: src/settings_translation_file.cpp msgid "Server description" -msgstr "" +msgstr "Popis servera" #: src/settings_translation_file.cpp msgid "Server name" -msgstr "" +msgstr "Meno servera" #: src/settings_translation_file.cpp msgid "Server port" -msgstr "" +msgstr "Port servera" #: src/settings_translation_file.cpp msgid "Server side occlusion culling" -msgstr "" +msgstr "Occlusion culling na strane servera" #: src/settings_translation_file.cpp msgid "Serverlist URL" -msgstr "" +msgstr "URL zoznamu serverov" #: src/settings_translation_file.cpp msgid "Serverlist file" -msgstr "" +msgstr "Súbor so zoznamom serverov" #: src/settings_translation_file.cpp msgid "" "Set the language. Leave empty to use the system language.\n" "A restart is required after changing this." msgstr "" +"Nastav jazyk. Ponechaj prázdne pre systémové nastavenie.\n" +"Po zmene je požadovaný reštart." #: src/settings_translation_file.cpp msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" +msgstr "Nastav maximálny počet znakov komunikačnej správy posielanej klientmi." #: src/settings_translation_file.cpp msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." msgstr "" +"Nastav true pre povolenie vlniacich sa listov.\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" +"Nastav true pre aktivovanie vlniacich sa tekutín (ako napr. voda).\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" +"Nastav true pre aktivovanie vlniacich sa rastlín.\n" +"Požaduje aby boli aktivované shadery." #: src/settings_translation_file.cpp msgid "Shader path" -msgstr "" +msgstr "Cesta k shaderom" #: src/settings_translation_file.cpp msgid "" @@ -5597,34 +6234,55 @@ msgid "" "cards.\n" "This only works with the OpenGL video backend." msgstr "" +"Shadery umožňujú pokročilé vizuálne efekty a na niektorých grafických " +"kartách\n" +"môžu zvýšiť výkon.\n" +"Toto funguje len s OpenGL." #: src/settings_translation_file.cpp msgid "" "Shadow offset (in pixels) of the default font. If 0, then shadow will not be " "drawn." msgstr "" +"Posun tieňa (v pixeloch) štandardného písma. Ak je 0, tak tieň nebude " +"vykreslený." #: src/settings_translation_file.cpp msgid "" "Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " "be drawn." msgstr "" +"Posun tieňa (v pixeloch) záložného písma. Ak je 0, tak tieň nebude " +"vykreslený." #: src/settings_translation_file.cpp msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" +msgstr "Tvar minimapy. Aktivované = okrúhla, vypnuté = štvorcová." #: src/settings_translation_file.cpp msgid "Show debug info" -msgstr "" +msgstr "Zobraz ladiace informácie" #: src/settings_translation_file.cpp msgid "Show entity selection boxes" +msgstr "Zobraz obrys bytosti" + +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" +"Zobraz obrysy bytosti\n" +"Po zmene je požadovaný reštart." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Štandardne tučné písmo" #: src/settings_translation_file.cpp msgid "Shutdown message" -msgstr "" +msgstr "Správa pri vypínaní" #: src/settings_translation_file.cpp msgid "" @@ -5635,6 +6293,13 @@ msgid "" "Altering this value is for special usage, leaving it unchanged is\n" "recommended." msgstr "" +"Veľkosť časti mapy generovanej generátorom mapy, zadaný v blokoch mapy (16 " +"kociek).\n" +"VAROVANIE!: Neexistuje žiadna výhoda, a je tu pár rizík,\n" +"pri zvýšení tejto hodnoty nad 5.\n" +"Zníženie tejto hodnoty zvýši hustotu jaskýň a kobiek.\n" +"Zmena tejto hodnoty slúži k špeciálnym účelom, odporúča sa ponechať\n" +"to nezmenené." #: src/settings_translation_file.cpp msgid "" @@ -5642,72 +6307,78 @@ msgid "" "increase the cache hit %, reducing the data being copied from the main\n" "thread, thus reducing jitter." msgstr "" +"Veľkosť medzipamäte blokov v Mesh generátoru.\n" +"Zvýšenie zvýši využitie medzipamäte %, zníži sa množstvo dát kopírovaných\n" +"z hlavnej vetvy a tým sa zníži chvenie." #: src/settings_translation_file.cpp msgid "Slice w" -msgstr "" +msgstr "Plátok w" #: src/settings_translation_file.cpp msgid "Slope and fill work together to modify the heights." -msgstr "" +msgstr "Sklon a výplň spolupracujú aby upravili výšky." #: src/settings_translation_file.cpp msgid "Small cave maximum number" -msgstr "" +msgstr "Maximálny počet malých jaskýň" #: src/settings_translation_file.cpp msgid "Small cave minimum number" -msgstr "" +msgstr "Minimálny počet malých jaskýň" #: src/settings_translation_file.cpp msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" +msgstr "Drobné odchýlky vlhkosti pre zjemnenie prechodu na hraniciach biómov." #: src/settings_translation_file.cpp msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" +msgstr "Drobné odchýlky teplôt pre zjemnenie prechodu na hraniciach biómov." #: src/settings_translation_file.cpp msgid "Smooth lighting" -msgstr "" +msgstr "Jemné osvetlenie" #: src/settings_translation_file.cpp msgid "" "Smooths camera when looking around. Also called look or mouse smoothing.\n" "Useful for recording videos." msgstr "" +"Zjemňuje pohyb kamery pri pohľade po okolí. Tiež sa nazýva zjemnenie " +"pohľady, alebo pohybu myši.\n" +"Užitočné pri nahrávaní videí." #: src/settings_translation_file.cpp msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" +msgstr "Zjemní rotáciu kamery vo filmovom režime. 0 je pre vypnuté." #: src/settings_translation_file.cpp msgid "Smooths rotation of camera. 0 to disable." -msgstr "" +msgstr "Zjemní rotáciu kamery. 0 je pre vypnuté." #: src/settings_translation_file.cpp msgid "Sneak key" -msgstr "" +msgstr "Tlačidlo zakrádania sa" #: src/settings_translation_file.cpp msgid "Sneaking speed" -msgstr "" +msgstr "Rýchlosť zakrádania" #: src/settings_translation_file.cpp msgid "Sneaking speed, in nodes per second." -msgstr "" +msgstr "Rýchlosť zakrádania sa, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Sound" -msgstr "" +msgstr "Zvuk" #: src/settings_translation_file.cpp msgid "Special key" -msgstr "" +msgstr "Špeciálne tlačidlo" #: src/settings_translation_file.cpp msgid "Special key for climbing/descending" -msgstr "" +msgstr "Špeciálna klávesa pre šplhanie hore/dole" #: src/settings_translation_file.cpp msgid "" @@ -5716,6 +6387,10 @@ msgid "" "(obviously, remote_media should end with a slash).\n" "Files that are not present will be fetched the usual way." msgstr "" +"Špecifikuje URL s ktorého klient stiahne média namiesto použitia UDP.\n" +"$filename by mal byt dostupný z $remote_media$filename cez cURL\n" +"(samozrejme, remote_media by mal končiť lomítkom).\n" +"Súbory, ktoré nie sú dostupné budú získané štandardným spôsobom." #: src/settings_translation_file.cpp msgid "" @@ -5723,6 +6398,9 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"Definuje štandardnú veľkosť kôpky kociek, vecí a nástrojov.\n" +"Ber v úvahu, že rozšírenia, alebo hry môžu explicitne nastaviť veľkosť pre " +"určité (alebo všetky) typy." #: src/settings_translation_file.cpp msgid "" @@ -5730,30 +6408,29 @@ msgid "" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" +"Rozptyl zosilnenia svetelnej krivky.\n" +"Určuje šírku rozsahu , ktorý bude zosilnený.\n" +"Štandardné gausovo rozdelenie odchýlky svetelnej krivky." #: src/settings_translation_file.cpp msgid "Static spawnpoint" -msgstr "" +msgstr "Pevný bod obnovy" #: src/settings_translation_file.cpp msgid "Steepness noise" -msgstr "" +msgstr "Šum zrázov" #: src/settings_translation_file.cpp msgid "Step mountain size noise" -msgstr "" +msgstr "Veľkosť šumu horských stepí" #: src/settings_translation_file.cpp msgid "Step mountain spread noise" -msgstr "" +msgstr "Rozptyl šumu horských stepí" #: src/settings_translation_file.cpp msgid "Strength of 3D mode parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" +msgstr "Stupeň paralaxy 3D režimu." #: src/settings_translation_file.cpp msgid "" @@ -5761,14 +6438,17 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"Sila zosilnenia svetelnej krivky.\n" +"Tri 'zosilňujúce' parametre definujú ktorý rozsah\n" +"svetelnej krivky je zosilnený v jasu." #: src/settings_translation_file.cpp msgid "Strict protocol checking" -msgstr "" +msgstr "Prísna kontrola protokolu" #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "" +msgstr "Odstráň farby" #: src/settings_translation_file.cpp msgid "" @@ -5783,34 +6463,47 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"Povrchová úroveň voliteľnej vody umiestnená na pevnej vrstve lietajúcej " +"krajiny.\n" +"Štandardne je voda deaktivovaná a bude umiestnená len ak je táto voľba " +"nastavená\n" +"nad 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n" +"(štart horného zašpicaťovania).\n" +"***VAROVANIE, POTENCIÁLNE RIZIKO PRE VÝKON SVETOV A SERVEROV***:\n" +"Pri aktivovaní vody na lietajúcich pevninách musí byť nastavený\n" +"a otestovaný pevný povrch nastavením 'mgv7_floatland_density' na 2.0 ( alebo " +"inú\n" +"požadovanú hodnotu v závislosti na 'mgv7_np_floatland'), aby sa zabránilo\n" +"pre server náročnému extrémnemu toku vody a rozsiahlym záplavám\n" +"na svet pod nimi." #: src/settings_translation_file.cpp msgid "Synchronous SQLite" -msgstr "" +msgstr "Synchrónne SQLite" #: src/settings_translation_file.cpp msgid "Temperature variation for biomes." -msgstr "" +msgstr "Odchýlky teplôt pre biómy." #: src/settings_translation_file.cpp msgid "Terrain alternative noise" -msgstr "" +msgstr "Alternatívny šum terénu" #: src/settings_translation_file.cpp msgid "Terrain base noise" -msgstr "" +msgstr "Základný šum terénu" #: src/settings_translation_file.cpp msgid "Terrain height" -msgstr "" +msgstr "Výška terénu" #: src/settings_translation_file.cpp msgid "Terrain higher noise" -msgstr "" +msgstr "Horný šum terénu" #: src/settings_translation_file.cpp msgid "Terrain noise" -msgstr "" +msgstr "Šum terénu" #: src/settings_translation_file.cpp msgid "" @@ -5818,6 +6511,9 @@ msgid "" "Controls proportion of world area covered by hills.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"Prah šumu terénu pre kopce.\n" +"Riadi pomer plochy sveta pokrytého kopcami.\n" +"Uprav smerom k 0.0 pre väčší pomer." #: src/settings_translation_file.cpp msgid "" @@ -5825,14 +6521,17 @@ msgid "" "Controls proportion of world area covered by lakes.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"Prah šumu terénu pre jazerá.\n" +"Riadi pomer plochy sveta pokrytého jazerami.\n" +"Uprav smerom k 0.0 pre väčší pomer." #: src/settings_translation_file.cpp msgid "Terrain persistence noise" -msgstr "" +msgstr "Stálosť šumu terénu" #: src/settings_translation_file.cpp msgid "Texture path" -msgstr "" +msgstr "Cesta k textúram" #: src/settings_translation_file.cpp msgid "" @@ -5843,33 +6542,47 @@ msgid "" "this option allows enforcing it for certain node types. Note though that\n" "that is considered EXPERIMENTAL and may not work properly." msgstr "" +"Textúry na kocke môžu byť zarovnané buď podľa kocky, alebo sveta.\n" +"Kým prvý režim poslúži lepšie veciam ako sú stroje, nábytok, atď.,\n" +"tak s druhým režimom zapadnú schody a mikrobloky lepšie do svojho okolia.\n" +"Keďže je táto možnosť nová, nemusí byť použitá na starších serveroch,\n" +"toto nastavenie povolí jeho vynútenie pre určité typy kociek. Je potrebné\n" +"si uvedomiť, že táto funkcia je EXPERIMENTÁLNA a nemusí fungovať korektne." #: src/settings_translation_file.cpp msgid "The URL for the content repository" -msgstr "" +msgstr "Webová adresa (URL) k úložisku doplnkov" + +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "Mŕtva zóna joysticku" #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." msgstr "" +"Štandardný formát v ktorom sa ukladajú profily,\n" +"pri volaní `/profiler save [format]` bez udania formátu." #: src/settings_translation_file.cpp msgid "The depth of dirt or other biome filler node." -msgstr "" +msgstr "Hĺbka zeminy, alebo inej výplne kocky." #: src/settings_translation_file.cpp msgid "" "The file path relative to your worldpath in which profiles will be saved to." msgstr "" +"Relatívna cesta k súboru vzhľadom na svet z ktorého budú profily uložené." #: src/settings_translation_file.cpp msgid "The identifier of the joystick to use" -msgstr "" +msgstr "Identifikátor joysticku na použitie" #: src/settings_translation_file.cpp msgid "The length in pixels it takes for touch screen interaction to start." msgstr "" +"Dĺžka v pixloch, ktorú potrebuje dotyková obrazovka pre začiatok interakcie." #: src/settings_translation_file.cpp msgid "" @@ -5879,16 +6592,24 @@ msgid "" "Default is 1.0 (1/2 node).\n" "Requires waving liquids to be enabled." msgstr "" +"Maximálna výška povrchu vlniacich sa tekutín.\n" +"4.0 = Výška vlny sú dve kocky.\n" +"0.0 = Vlna sa vôbec nehýbe.\n" +"Štandardná hodnota je 1.0 (1/2 kocky).\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." -msgstr "" +msgstr "Sieťové rozhranie, na ktorom server načúva." #: src/settings_translation_file.cpp msgid "" "The privileges that new users automatically get.\n" "See /privs in game for a full list on your server and mod configuration." msgstr "" +"Oprávnenia, ktoré automaticky dostane nový hráč.\n" +"Pozri si /privs v hre pre kompletný zoznam pre daný server a konfigurácie " +"rozšírení." #: src/settings_translation_file.cpp msgid "" @@ -5900,6 +6621,12 @@ msgid "" "maintained.\n" "This should be configured together with active_object_send_range_blocks." msgstr "" +"Polomer objemu blokov okolo každého hráča, ktoré sú predmetom\n" +"záležitostí okolo aktívnych objektov, uvádzané v blokoch mapy (16 kociek).\n" +"V objektoch aktívnych blokov sú nahrávané a spúšťané ABM.\n" +"Toto je tiež minimálna vzdialenosť v ktorej sú aktívne objekty (mobovia) " +"zachovávaný.\n" +"Malo by to byť konfigurované spolu s active_object_send_range_blocks." #: src/settings_translation_file.cpp msgid "" @@ -5907,15 +6634,23 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" +"Renderovací back-end pre Irrlicht.\n" +"Po zmene je vyžadovaný reštart.\n" +"Poznámka: Na Androide, ak si nie si istý, ponechaj OGLES1! Aplikácia by " +"nemusela naštartovať.\n" +"Na iných platformách, sa odporúča OpenGL.\n" +"Shadery sú podporované v OpenGL (len pre desktop) a v OGLES2 (experimentálne)" #: src/settings_translation_file.cpp msgid "" "The sensitivity of the joystick axes for moving the\n" "ingame view frustum around." msgstr "" +"Citlivosť osí joysticku pre pohyb\n" +"otáčania pohľadu v hre." #: src/settings_translation_file.cpp msgid "" @@ -5924,6 +6659,10 @@ msgid "" "setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" "set to the nearest valid value." msgstr "" +"Úroveň tieňovania ambient-occlusion kocky (tmavosť).\n" +"Nižšia hodnota je tmavšie, vyššia svetlejšie.\n" +"Platý rozsah hodnôt je od 0.25 po 0.4 vrátane.\n" +"Ak je hodnota mimo rozsah, bude nastavená na najbližšiu platnú hodnotu." #: src/settings_translation_file.cpp msgid "" @@ -5931,23 +6670,37 @@ msgid "" "capacity until an attempt is made to decrease its size by dumping old queue\n" "items. A value of 0 disables the functionality." msgstr "" +"Čas (c sekundách) kedy fronta tekutín môže narastať nad kapacitu\n" +"spracovania než bude urobený pokus o jej zníženie zrušením starých\n" +"vecí z fronty. Hodnota 0 vypne túto funkciu." + +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"Vyhradená doba pre ABM na vykonanie v každom kroku\n" +"(ako zlomok ABM imtervalu)" #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" +"Čas v sekundách medzi opakovanými udalosťami\n" +"pri stlačenej kombinácií tlačidiel na joysticku." #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" +"Čas v sekundách pre opakované položenie kocky\n" +"ak je držané tlačítko pokladania." #: src/settings_translation_file.cpp msgid "The type of joystick" -msgstr "" +msgstr "Typ joysticku" #: src/settings_translation_file.cpp msgid "" @@ -5955,32 +6708,39 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" +"Vertikálna vzdialenosť kedy poklesne teplota o 20 ak je 'altitude_chill'\n" +"aktívne. Tiež je to vertikálna vzdialenosť kedy poklesne vlhkosť o 10,\n" +"ak je 'altitude_dry' aktívne." #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Tretí zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp msgid "" "Time in seconds for item entity (dropped items) to live.\n" "Setting it to -1 disables the feature." msgstr "" +"Čas existencie odložený (odhodených) vecí v sekundách.\n" +"Nastavené na -1 vypne túto vlastnosť." #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" +msgstr "Čas pri spustení nového sveta, v milihodinách (0-23999)." #: src/settings_translation_file.cpp msgid "Time send interval" -msgstr "" +msgstr "Interval posielania času" #: src/settings_translation_file.cpp msgid "Time speed" -msgstr "" +msgstr "Rýchlosť času" #: src/settings_translation_file.cpp msgid "Timeout for client to remove unused map data from memory." msgstr "" +"Časový limit na klientovi, pre odstránenie nepoužívaných mapových dát z " +"pamäte." #: src/settings_translation_file.cpp msgid "" @@ -5989,26 +6749,28 @@ msgid "" "This determines how long they are slowed down after placing or removing a " "node." msgstr "" +"Pre zníženie lagu, prenos blokov je spomalený, keď hráč niečo stavia.\n" +"Toto určuje ako dlho je spomalený po vložení, alebo zmazaní kocky." #: src/settings_translation_file.cpp msgid "Toggle camera mode key" -msgstr "" +msgstr "Tlačidlo Prepnutie režimu zobrazenia" #: src/settings_translation_file.cpp msgid "Tooltip delay" -msgstr "" +msgstr "Oneskorenie popisku" #: src/settings_translation_file.cpp msgid "Touch screen threshold" -msgstr "" +msgstr "Prah citlivosti dotykovej obrazovky" #: src/settings_translation_file.cpp msgid "Trees noise" -msgstr "" +msgstr "Šum stromov" #: src/settings_translation_file.cpp msgid "Trilinear filtering" -msgstr "" +msgstr "Trilineárne filtrovanie" #: src/settings_translation_file.cpp msgid "" @@ -6016,18 +6778,22 @@ msgid "" "False = 128\n" "Usable to make minimap smoother on slower machines." msgstr "" +"Pravda = 256\n" +"Nepravda = 128\n" +"Užitočné pre plynulejšiu minimapu na pomalších strojoch." #: src/settings_translation_file.cpp msgid "Trusted mods" -msgstr "" +msgstr "Dôveryhodné rozšírenia" #: src/settings_translation_file.cpp msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "" +"Adresa (URL) k zoznamu serverov, ktorý sa zobrazuje v záložke Multiplayer." #: src/settings_translation_file.cpp msgid "Undersampling" -msgstr "" +msgstr "Podvzorkovanie" #: src/settings_translation_file.cpp msgid "" @@ -6037,38 +6803,42 @@ msgid "" "image.\n" "Higher values result in a less detailed image." msgstr "" +"Podvzorkovanie je podobné ako použiť obrazovku s nižším rozlíšením, ale\n" +"aplikuje sa len na samotný svet, pričom GUI ostáva nezmenené.\n" +"Malo by poskytnúť výrazné zvýšenie výkonu za cenu nižších detailov obrazu.\n" +"Vyššie hodnotu vedú k menej detailnému obrazu." #: src/settings_translation_file.cpp msgid "Unlimited player transfer distance" -msgstr "" +msgstr "Neobmedzená vzdialenosť zobrazenia hráča" #: src/settings_translation_file.cpp msgid "Unload unused server data" -msgstr "" +msgstr "Uvoľni nepoužívané serverové dáta" #: src/settings_translation_file.cpp msgid "Upper Y limit of dungeons." -msgstr "" +msgstr "Horný Y limit kobiek." #: src/settings_translation_file.cpp msgid "Upper Y limit of floatlands." -msgstr "" +msgstr "Horný Y limit lietajúcich pevnín." #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." -msgstr "" +msgstr "Použi 3D mraky namiesto plochých." #: src/settings_translation_file.cpp msgid "Use a cloud animation for the main menu background." -msgstr "" +msgstr "Použi animáciu mrakov pre pozadie hlavného menu." #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" +msgstr "Použi anisotropné filtrovanie pri pohľade na textúry zo strany." #: src/settings_translation_file.cpp msgid "Use bilinear filtering when scaling textures." -msgstr "" +msgstr "Použi bilineárne filtrovanie pri zmene mierky textúr." #: src/settings_translation_file.cpp msgid "" @@ -6076,116 +6846,143 @@ msgid "" "especially when using a high resolution texture pack.\n" "Gamma correct downscaling is not supported." msgstr "" +"Použi mip mapy pre úpravu textúr. Môže jemne zvýšiť výkon,\n" +"obzvlášť použití balíčka textúr s vysokým rozlíšením.\n" +"Gama korektné podvzorkovanie nie je podporované." + +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Použi multi-sample antialiasing (MSAA) pre zjemnenie hrán blokov.\n" +"Tento algoritmus zjemní 3D vzhľad zatiaľ čo zachová ostrosť obrazu,\n" +"ale neovplyvní vnútro textúr\n" +"(čo je obzvlášť viditeľné pri priesvitných textúrach).\n" +"Ak sú shadery zakázané, objavia sa viditeľné medzery medzi kockami.\n" +"Ak sú nastavené na 0, MSAA je zakázané.\n" +"Po zmene tohto nastavenia je požadovaný reštart." #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." -msgstr "" +msgstr "Použi trilineárne filtrovanie pri zmene mierky textúr." #: src/settings_translation_file.cpp msgid "VBO" -msgstr "" +msgstr "VBO" #: src/settings_translation_file.cpp msgid "VSync" -msgstr "" +msgstr "VSync" #: src/settings_translation_file.cpp msgid "Valley depth" -msgstr "" +msgstr "Hĺbka údolia" #: src/settings_translation_file.cpp msgid "Valley fill" -msgstr "" +msgstr "Výplň údolí" #: src/settings_translation_file.cpp msgid "Valley profile" -msgstr "" +msgstr "Profil údolia" #: src/settings_translation_file.cpp msgid "Valley slope" -msgstr "" +msgstr "Sklon údolia" #: src/settings_translation_file.cpp msgid "Variation of biome filler depth." -msgstr "" +msgstr "Odchýlka hĺbky výplne biómu." #: src/settings_translation_file.cpp msgid "Variation of maximum mountain height (in nodes)." -msgstr "" +msgstr "Obmieňa maximálnu výšku hôr (v kockách)." #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "Rôznosť počtu jaskýň." #: src/settings_translation_file.cpp msgid "" "Variation of terrain vertical scale.\n" "When noise is < -0.55 terrain is near-flat." msgstr "" +"Rozptyl vertikálnej mierky terénu.\n" +"Ak je šum <-0.55, terén je takmer rovný." #: src/settings_translation_file.cpp msgid "Varies depth of biome surface nodes." -msgstr "" +msgstr "Pozmeňuje hĺbku povrchových kociek biómu." #: src/settings_translation_file.cpp msgid "" "Varies roughness of terrain.\n" "Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" +"Mení rôznorodosť terénu.\n" +"Definuje hodnotu 'stálosti' pre terrain_base a terrain_alt noises." #: src/settings_translation_file.cpp msgid "Varies steepness of cliffs." -msgstr "" +msgstr "Pozmeňuje strmosť útesov." #: src/settings_translation_file.cpp msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgstr "Vertikálna rýchlosť šplhania, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Vertical screen synchronization." -msgstr "" +msgstr "Vertikálna synchronizácia obrazovky." #: src/settings_translation_file.cpp msgid "Video driver" -msgstr "" +msgstr "Grafický ovládač" #: src/settings_translation_file.cpp msgid "View bobbing factor" -msgstr "" +msgstr "Faktor pohupovania sa" #: src/settings_translation_file.cpp msgid "View distance in nodes." -msgstr "" +msgstr "Vzdialenosť dohľadu v kockách." #: src/settings_translation_file.cpp msgid "View range decrease key" -msgstr "" +msgstr "Tlačidlo Zníž dohľad" #: src/settings_translation_file.cpp msgid "View range increase key" -msgstr "" +msgstr "Tlačidlo Zvýš dohľad" #: src/settings_translation_file.cpp msgid "View zoom key" -msgstr "" +msgstr "Tlačidlo Priblíženie pohľadu" #: src/settings_translation_file.cpp msgid "Viewing range" -msgstr "" +msgstr "Vzdialenosť dohľadu" #: src/settings_translation_file.cpp msgid "Virtual joystick triggers aux button" -msgstr "" +msgstr "Virtuálny joystick stlačí tlačidlo aux" #: src/settings_translation_file.cpp msgid "Volume" -msgstr "" +msgstr "Hlasitosť" #: src/settings_translation_file.cpp msgid "" "Volume of all sounds.\n" "Requires the sound system to be enabled." msgstr "" +"Hlasitosť všetkých zvukov.\n" +"Požaduje aby bol zvukový systém aktivovaný." #: src/settings_translation_file.cpp msgid "" @@ -6195,54 +6992,60 @@ msgid "" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"W koordináty generovaného 3D plátku v 4D fraktáli.\n" +"Určuje, ktorý 3D plátok z 4D tvaru je generovaný.\n" +"Zmení tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "Rýchlosť chôdze a lietania, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Walking speed" -msgstr "" +msgstr "Rýchlosť chôdze" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" +"Rýchlosť chôdze, lietania a šplhania v rýchlom režime, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "Water level" -msgstr "" +msgstr "Úroveň vody" #: src/settings_translation_file.cpp msgid "Water surface level of the world." -msgstr "" +msgstr "Hladina povrchovej vody vo svete." #: src/settings_translation_file.cpp msgid "Waving Nodes" -msgstr "" +msgstr "Vlniace sa kocky" #: src/settings_translation_file.cpp msgid "Waving leaves" -msgstr "" +msgstr "Vlniace sa listy" #: src/settings_translation_file.cpp msgid "Waving liquids" -msgstr "" +msgstr "Vlniace sa tekutiny" #: src/settings_translation_file.cpp msgid "Waving liquids wave height" -msgstr "" +msgstr "Výška vlnenia sa tekutín" #: src/settings_translation_file.cpp msgid "Waving liquids wave speed" -msgstr "" +msgstr "Rýchlosť vlny tekutín" #: src/settings_translation_file.cpp msgid "Waving liquids wavelength" -msgstr "" +msgstr "Vlnová dĺžka vlniacich sa tekutín" #: src/settings_translation_file.cpp msgid "Waving plants" -msgstr "" +msgstr "Vlniace sa rastliny" #: src/settings_translation_file.cpp msgid "" @@ -6250,6 +7053,9 @@ msgid "" "filtered in software, but some images are generated directly\n" "to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" +"Ake je gui_scaling_filter povolený, všetky GUI obrázky potrebujú byť\n" +"filtrované softvérom, ale niektoré obrázky sú generované priamo\n" +"pre hardvér (napr. render-to-texture pre kocky v inventári)." #: src/settings_translation_file.cpp msgid "" @@ -6258,6 +7064,10 @@ msgid "" "to the old scaling method, for video drivers that don't\n" "properly support downloading textures back from hardware." msgstr "" +"Ake je gui_scaling_filter_txr2img povolený, nakopíruj tieto obrázky\n" +"z hardvéru do softvéru pre zmenu mierky. Ak za vypnutý, vráť sa\n" +"k starej metóde zmeny mierky, pre grafické ovládače, ktoré dostatočne\n" +"nepodporujú sťahovanie textúr z hardvéru." #: src/settings_translation_file.cpp msgid "" @@ -6271,6 +7081,16 @@ msgid "" "This is also used as the base node texture size for world-aligned\n" "texture autoscaling." msgstr "" +"Pri použití bilineárneho/trilineárneho/anisotropného filtra, textúry s " +"nízkym\n" +"rozlíšením môžu byť rozmazané, tak sa automaticky upravia interpoláciou\n" +"s najbližším susedom aby bola zachovaná ostrosť pixelov.\n" +"Toto nastaví minimálnu veľkosť pre upravenú textúru;\n" +"vyššia hodnota znamená ostrejší vzhľad, ale potrebuje viac pamäti.\n" +"Odporúčané sú mocniny 2. Nastavenie viac než 1 nemusí mať viditeľný efekt,\n" +"kým nie je použité bilineárne/trilineárne/anisotropné filtrovanie.\n" +"Toto sa tiež používa ako základná veľkosť textúry kociek pre\n" +"\"world-aligned autoscaling\" textúr." #: src/settings_translation_file.cpp msgid "" @@ -6278,30 +7098,43 @@ msgid "" "in.\n" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +"Aby boli FreeType písma použité, je nutné aby bola podpora FreeType " +"zakompilovaná.\n" +"Ak je zakázané, budú použité bitmapové a XML vektorové písma." + +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" +msgstr "Či sa nemá animácia textúry kocky synchronizovať." #: src/settings_translation_file.cpp msgid "" "Whether players are shown to clients without any range limit.\n" "Deprecated, use the setting player_transfer_distance instead." msgstr "" +"Či sa hráči zobrazia klientom bez obmedzenia vzdialenosti.\n" +"Zastarané, namiesto tohto použi player_transfer_distance." #: src/settings_translation_file.cpp msgid "Whether to allow players to damage and kill each other." -msgstr "" +msgstr "Či sa môžu hráči navzájom poškodzovať a zabiť." #: src/settings_translation_file.cpp msgid "" "Whether to ask clients to reconnect after a (Lua) crash.\n" "Set this to true if your server is set up to restart automatically." msgstr "" +"Či ná ponúknuť klientom obnovenie spojenia po páde (Lua).\n" +"Povoľ, ak je tvoj server nastavený na automatický reštart." #: src/settings_translation_file.cpp msgid "Whether to fog out the end of the visible area." -msgstr "" +msgstr "Či zamlžiť okraj viditeľnej oblasti." #: src/settings_translation_file.cpp msgid "" @@ -6310,19 +7143,23 @@ msgid "" "In-game, you can toggle the mute state with the mute key or by using the\n" "pause menu." msgstr "" +"Vypnutie zvukov. Zapnúť zvuky môžeš kedykoľvek, pokiaľ\n" +"nie je zakázaný zvukový systém (enable_sound=false).\n" +"V hre môžeš zapnúť/vypnúť zvuk tlačidlom pre stíšenie zvuku, alebo\n" +"pozastavením hry." #: src/settings_translation_file.cpp msgid "" "Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" +msgstr "Zobrazenie ladiaceho okna na klientovi (má rovnaký efekt ako F5)." #: src/settings_translation_file.cpp msgid "Width component of the initial window size." -msgstr "" +msgstr "Šírka okna po spustení." #: src/settings_translation_file.cpp msgid "Width of the selection box lines around nodes." -msgstr "" +msgstr "Šírka línií obrysu kocky." #: src/settings_translation_file.cpp msgid "" @@ -6330,16 +7167,21 @@ msgid "" "background.\n" "Contains the same information as the file debug.txt (default name)." msgstr "" +"Len pre systémy s Windows: Spusti Minetest s oknom príkazovej riadky na " +"pozadí.\n" +"Obsahuje tie isté informácie ako súbor debug.txt (štandardný názov)." #: src/settings_translation_file.cpp msgid "" "World directory (everything in the world is stored here).\n" "Not needed if starting from the main menu." msgstr "" +"Adresár sveta (všetko na svete je uložené tu).\n" +"Nie je potrebné ak sa spúšťa z hlavného menu." #: src/settings_translation_file.cpp msgid "World start time" -msgstr "" +msgstr "Počiatočný čas sveta" #: src/settings_translation_file.cpp msgid "" @@ -6350,28 +7192,37 @@ msgid "" "See also texture_min_size.\n" "Warning: This option is EXPERIMENTAL!" msgstr "" +"Textúry zarovnané podľa sveta môžu byť zväčšené aby pokryli niekoľko " +"kociek.\n" +"Avšak server nemusí poslať mierku akú potrebuješ, obzvlášť ak používaš\n" +"špeciálne dizajnovaný balíček textúr; s týmto nastavením, sa klient pokúsi\n" +"určiť mierku automaticky na základe veľkosti textúry.\n" +"Viď. tiež texture_min_size.\n" +"Varovanie: Toto nastavenie je EXPERIMENTÁLNE!" #: src/settings_translation_file.cpp msgid "World-aligned textures mode" -msgstr "" +msgstr "Režim zarovnaných textúr podľa sveta" #: src/settings_translation_file.cpp msgid "Y of flat ground." -msgstr "" +msgstr "Y plochej zeme." #: src/settings_translation_file.cpp msgid "" "Y of mountain density gradient zero level. Used to shift mountains " "vertically." msgstr "" +"Y hustotný gradient hladiny nula pre hory. Používa sa pre vertikálny posun " +"hôr." #: src/settings_translation_file.cpp msgid "Y of upper limit of large caves." -msgstr "" +msgstr "Horný Y limit veľkých jaskýň." #: src/settings_translation_file.cpp msgid "Y-distance over which caverns expand to full size." -msgstr "" +msgstr "Y-nová vzdialenosť nad ktorou dutiny expandujú do plnej veľkosti." #: src/settings_translation_file.cpp msgid "" @@ -6380,35 +7231,228 @@ msgid "" "For a solid floatland layer, this controls the height of hills/mountains.\n" "Must be less than or equal to half the distance between the Y limits." msgstr "" +"Y-vzdialenosť kde sa lietajúce pevniny zužujú od plnej hustoty po nič.\n" +"Zužovanie začína na tejto vzdialenosti z Y limitu.\n" +"Pre jednoznačnosť vrstvy lietajúcej krajiny, toto riadi výšku kopcov/hôr.\n" +"Musí byť menej ako, alebo rovnako ako polovica vzdialenosti medzi Y limitami." #: src/settings_translation_file.cpp msgid "Y-level of average terrain surface." -msgstr "" +msgstr "Y-úroveň priemeru povrchu terénu." #: src/settings_translation_file.cpp msgid "Y-level of cavern upper limit." -msgstr "" +msgstr "Y-úroveň horného limitu dutín." #: src/settings_translation_file.cpp msgid "Y-level of higher terrain that creates cliffs." -msgstr "" +msgstr "Y-úroveň horného terénu, ktorý tvorí útesy/skaly." #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." -msgstr "" +msgstr "Y-úroveň dolnej časti terénu a morského dna." #: src/settings_translation_file.cpp msgid "Y-level of seabed." +msgstr "Y-úroveň morského dna." + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" +"Úroveň kompresie ZLib používaný pri ukladaní blokov mapy na disk.\n" +"-1 - predvolená úroveň kompresie Zlib\n" +"0 - bez kompresie, najrýchlejšie\n" +"9 - najlepšia kompresia, najpomalšie\n" +"(pre úrovne 1-3 používa Zlib \"rýchlu\" metódu, pre 4-9 používa normálnu " +"metódu)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Úroveň kompresie ZLib používaný pri posielaní blokov mapy klientom.\n" +"-1 - predvolená úroveň kompresie Zlib\n" +"0 - bez kompresie, najrýchlejšie\n" +"9 - najlepšia kompresia, najpomalšie\n" +"(pre úrovne 1-3 používa Zlib \"rýchlu\" metódu, pre 4-9 používa normálnu " +"metódu)" #: src/settings_translation_file.cpp msgid "cURL file download timeout" -msgstr "" +msgstr "cURL časový rámec sťahovania súborov" #: src/settings_translation_file.cpp msgid "cURL parallel limit" -msgstr "" +msgstr "Paralelný limit cURL" #: src/settings_translation_file.cpp msgid "cURL timeout" -msgstr "" +msgstr "Časový rámec cURL" + +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion s informácia o sklone (rýchlejšie).\n" +#~ "1 = mapovanie reliéfu (pomalšie, presnejšie)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Si si istý, že chceš vynulovať svoj svet jedného hráča?" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping (Ilúzia nerovnosti)" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Zmení užívateľské rozhranie (UI) hlavného menu:\n" +#~ "- Plné: Viacero svetov, voľby hry, voľba balíčka textúr, atď.\n" +#~ "- Jednoduché: Jeden svet, bez herných volieb, alebo voľby textúr. Môže " +#~ "byť\n" +#~ "nevyhnutné pre malé obrazovky." + +#~ msgid "Config mods" +#~ msgstr "Nastav rozšírenia" + +#~ msgid "Configure" +#~ msgstr "Konfigurácia" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Farba zameriavača (R,G,B)." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definuje vzorkovací krok pre textúry.\n" +#~ "Vyššia hodnota vedie k jemnejším normálovým mapám." + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktivuje bumpmapping pre textúry. Normálové mapy musia byť dodané v " +#~ "balíčku textúr.\n" +#~ "alebo musia byť automaticky generované.\n" +#~ "Vyžaduje aby boli shadery aktivované." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Aktivuje generovanie normálových máp za behu (efekt reliéfu).\n" +#~ "Požaduje aby bol aktivovaný bumpmapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktivuj parallax occlusion mapping.\n" +#~ "Požaduje aby boli aktivované shadery." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentálne nastavenie, môže spôsobiť viditeľné medzery\n" +#~ "medzi blokmi, ak je nastavené väčšie než 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS v menu pozastavenia hry" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal Maps (nerovnosti)" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generuj normálové mapy" + +#~ msgid "Main" +#~ msgstr "Hlavné" + +#~ msgid "Main menu style" +#~ msgstr "Štýl hlavného menu" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa v radarovom režime, priblíženie x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa v radarovom režime, priblíženie x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa v povrchovom režime, priblíženie x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa v povrchovom režime, priblíženie x4" + +#~ msgid "Name/Password" +#~ msgstr "Meno/Heslo" + +#~ msgid "No" +#~ msgstr "Nie" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Vzorkovanie normálových máp" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intenzita normálových máp" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Počet opakovaní výpočtu parallax occlusion." + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Celkové skreslenie parallax occlusion efektu, obvykle mierka/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Celková mierka parallax occlusion efektu." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion (nerovnosti)" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Skreslenie parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Opakovania parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Režim parallax occlusion" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Mierka parallax occlusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Vynuluj svet jedného hráča" + +#~ msgid "Start Singleplayer" +#~ msgstr "Spusti hru pre jedného hráča" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intenzita generovaných normálových máp." + +#~ msgid "View" +#~ msgstr "Zobraziť" + +#~ msgid "Yes" +#~ msgstr "Áno" diff --git a/po/sl/minetest.po b/po/sl/minetest.po index d3da7bc66..a67ac9c65 100644 --- a/po/sl/minetest.po +++ b/po/sl/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Slovenian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2019-11-29 23:04+0000\n" -"Last-Translator: Matej Mlinar \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-09-30 19:41+0000\n" +"Last-Translator: Iztok Bajcar \n" "Language-Team: Slovenian \n" "Language: sl\n" @@ -13,11 +13,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3;\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.3-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Ponovno oživi" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Umrl si" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "V redu" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -39,10 +47,6 @@ msgstr "Ponovna povezava" msgid "The server has requested a reconnect:" msgstr "Strežnik zahteva ponovno povezavo:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Poteka nalaganje ..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Različice protokola niso skladne. " @@ -55,12 +59,6 @@ msgstr "Strežnik vsiljuje različico protokola $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Strežnik podpira različice protokolov med $1 in $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Morda je treba ponovno omogočiti javni seznam strežnikov oziroma preveriti " -"internetno povezavo." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Podporta je le različica protokola $1." @@ -69,7 +67,8 @@ msgstr "Podporta je le različica protokola $1." msgid "We support protocol versions between version $1 and $2." msgstr "Podprte so različice protokolov med $1 in $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -79,7 +78,8 @@ msgstr "Podprte so različice protokolov med $1 in $2." msgid "Cancel" msgstr "Prekliči" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Odvisnosti:" @@ -109,7 +109,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Poišči več razširitev" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -136,7 +136,7 @@ msgstr "Opis prilagoditve ni na voljo." #: builtin/mainmenu/dlg_config_world.lua #, fuzzy msgid "No optional dependencies" -msgstr "Izbirne možnosti:" +msgstr "Ni izbirnih odvisnosti" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" @@ -155,17 +155,58 @@ msgstr "Svet:" msgid "enabled" msgstr "omogočeno" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Poteka nalaganje ..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Vsi paketi" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Tipka je že v uporabi" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Nazaj na glavni meni" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Gosti igro" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ni na voljo, če je bil Minetest narejen brez podpore cURL" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -185,6 +226,16 @@ msgstr "Igre" msgid "Install" msgstr "Namesti" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Namesti" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Izbirne možnosti:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -199,9 +250,25 @@ msgid "No results" msgstr "Ni rezultatov" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Poišči" +#, fuzzy +msgid "No updates" +msgstr "Posodobi" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -216,7 +283,11 @@ msgid "Update" msgstr "Posodobi" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -224,8 +295,9 @@ msgid "A world named \"$1\" already exists" msgstr "Svet z imenom »$1« že obstaja" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Additional terrain" -msgstr "" +msgstr "Dodatni teren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -236,12 +308,14 @@ msgid "Altitude dry" msgstr "" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biome blending" -msgstr "" +msgstr "Zlivanje biomov" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Biomes" -msgstr "" +msgstr "Biomi" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -249,9 +323,8 @@ msgid "Caverns" msgstr "Šum votline" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "Oktave" +msgstr "Jame" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -260,7 +333,7 @@ msgstr "Ustvari" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Decorations" -msgstr "Informacije:" +msgstr "Dekoracije" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -273,15 +346,17 @@ msgstr "Na voljo so na spletišču minetest.net/customize" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy msgid "Dungeons" -msgstr "Šum ječe" +msgstr "Ječe" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Flat terrain" -msgstr "" +msgstr "Raven teren" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Lebdeče kopenske mase na nebu" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" @@ -292,28 +367,29 @@ msgid "Game" msgstr "Igra" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Generiraj nefraktalen teren: oceani in podzemlje" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Hribi" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Vlažne reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Poveča vlažnost v bližini rek" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Jezera" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Nizka vlažnost in visoka vročina povzročita plitve ali izsušene reke" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -321,7 +397,7 @@ msgstr "Oblika sveta (mapgen)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Možnosti generatorja zemljevida" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -330,15 +406,15 @@ msgstr "Oblika sveta (mapgen) Fractal" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Gore" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Tok blata" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Omrežje predorov in jam" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -346,19 +422,19 @@ msgstr "Niste izbrali igre" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Vročina pojema z višino" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Vlažnost pojema z višino" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Reke na višini morja" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -367,17 +443,20 @@ msgstr "Seme" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Gladek prehod med biomi" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Strukture, ki se pojavijo na terenu (nima vpliva na drevesa in džungelsko " +"travo, ustvarjeno z mapgenom v6)" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Strukture, ki se pojavljajo na terenu, npr. drevesa in rastline" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" @@ -393,11 +472,11 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Erozija terena" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Drevesa in džungelska trava" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -406,7 +485,7 @@ msgstr "Globina polnila" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Zelo velike jame globoko v podzemlju" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -464,9 +543,8 @@ msgid "(No description of setting given)" msgstr "(ni podanega opisa nastavitve)" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "2D Noise" -msgstr "2D zvok" +msgstr "2D šum" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" @@ -476,11 +554,6 @@ msgstr "< Nazaj do Nastavitev" msgid "Browse" msgstr "Prebrskaj" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Odjemalec" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Onemogočeno" @@ -494,8 +567,9 @@ msgid "Enabled" msgstr "Omogočeno" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Lacunarity" -msgstr "" +msgstr "lacunarnost" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" @@ -525,6 +599,10 @@ msgstr "Obnovi privzeto" msgid "Scale" msgstr "Skala" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Poišči" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Izberi mapo" @@ -535,7 +613,7 @@ msgstr "Izberi datoteko" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" -msgstr "Pokaži tehnične zapise" +msgstr "Prikaži tehnična imena" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -589,8 +667,9 @@ msgstr "Privzeta/standardna vrednost (defaults)" #. can be enabled in noise settings in #. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "eased" -msgstr "" +msgstr "sproščeno" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" @@ -642,6 +721,21 @@ msgstr "Ni mogoče namestiti prilagoditve kot $1" msgid "Unable to install a modpack as a $1" msgstr "Ni mogoče namestiti paketa prilagoditev kot $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Poteka nalaganje ..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Skriptiranje s strani odjemalca je onemogočeno" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Morda je treba ponovno omogočiti javni seznam strežnikov oziroma preveriti " +"internetno povezavo." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Brskaj po spletnih vsebinah" @@ -695,7 +789,14 @@ msgid "Credits" msgstr "Zasluge" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Izberi mapo" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -715,14 +816,10 @@ msgid "Bind Address" msgstr "Vezani naslov" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Nastavi" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Ustvarjalni način" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Omogoči poškodbe" @@ -736,11 +833,11 @@ msgstr "Gostiteljski strežnik" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Namesti igre iz ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Ime / Geslo" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -750,6 +847,11 @@ msgstr "Novo" msgid "No world created or selected!" msgstr "Ni ustvarjenega oziroma izbranega sveta!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Novo geslo" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Zaženi igro" @@ -758,6 +860,11 @@ msgstr "Zaženi igro" msgid "Port" msgstr "Vrata" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Izbor sveta:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Izbor sveta:" @@ -774,23 +881,23 @@ msgstr "Začni igro" msgid "Address / Port" msgstr "Naslov / Vrata" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Poveži" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Ustvarjalni način" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Poškodbe so omogočene" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Izbriši priljubljeno" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Priljubljeno" @@ -798,16 +905,16 @@ msgstr "Priljubljeno" msgid "Join Game" msgstr "Prijavi se v igro" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Ime / Geslo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Igra PvP je omogočena" @@ -835,10 +942,6 @@ msgstr "Vse nastavitve" msgid "Antialiasing:" msgstr "Glajenje:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Ali res želiš ponastaviti samostojno igro?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Samodejno shrani velikost zaslona" @@ -847,10 +950,6 @@ msgstr "Samodejno shrani velikost zaslona" msgid "Bilinear Filter" msgstr "Bilinearni filter" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Površinsko preslikavanje" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Spremeni tipke" @@ -863,10 +962,6 @@ msgstr "Povezano steklo" msgid "Fancy Leaves" msgstr "Olepšani listi" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Generiranje normalnih svetov" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Zemljevid (minimap)" @@ -875,10 +970,6 @@ msgstr "Zemljevid (minimap)" msgid "Mipmap + Aniso. Filter" msgstr "Zemljevid (minimap) s filtrom Aniso" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ne" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Brez filtra" @@ -907,18 +998,10 @@ msgstr "Neprosojni listi" msgid "Opaque Water" msgstr "Neprosojna površina vode" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Paralaksa" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Delci" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Ponastavi samostojno igro" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Zaslon:" @@ -931,9 +1014,14 @@ msgstr "Nastavitve" msgid "Shaders" msgstr "Senčenje" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Senčenje (ni na voljo)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" -msgstr "" +msgstr "Senčenje (ni na voljo)" #: builtin/mainmenu/tab_settings.lua msgid "Simple Leaves" @@ -956,8 +1044,9 @@ msgid "Tone Mapping" msgstr "Barvno preslikavanje" #: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Touchthreshold: (px)" -msgstr "" +msgstr "Občutljivost dotika (v pikslih):" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -975,22 +1064,6 @@ msgstr "Valovanje tekočin" msgid "Waving Plants" msgstr "Pokaži nihanje rastlin" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Da" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Nastavitve prilagoditev" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Glavni" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Zaženi samostojno igro" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Povezava je potekla." @@ -1154,18 +1227,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Tipkovne bližnjice:\n" "- %s 1: premakne se naprej\n" @@ -1191,16 +1261,18 @@ msgid "Creating server..." msgstr "Poteka zagon strežnika ..." #: src/client/game.cpp +#, fuzzy msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "Podatki za razhroščevanje in graf skriti" #: src/client/game.cpp msgid "Debug info shown" msgstr "Prikazani so podatki o odpravljanju napak" #: src/client/game.cpp +#, fuzzy msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgstr "Podatki za razhroščevanje, graf, in žičnati prikaz skriti" #: src/client/game.cpp msgid "" @@ -1278,16 +1350,6 @@ msgstr "Megla onemogočena" msgid "Fog enabled" msgstr "Megla omogočena" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Megla onemogočena" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Megla omogočena" - #: src/client/game.cpp msgid "Game info:" msgstr "Podrobnosti o igri:" @@ -1308,16 +1370,6 @@ msgstr "Določila predmetov ..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Megla onemogočena" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Poškodbe so omogočene" - #: src/client/game.cpp msgid "Media..." msgstr "Medij..." @@ -1331,34 +1383,6 @@ msgid "Minimap currently disabled by game or mod" msgstr "" "Zemljevid (minimap) je trenutno onemogočen zaradi igre ali prilagoditve" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Zemljevid (minimap) je skrit" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Zemljevid (minimap) je v radar načinu, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Zemljevid (minimap) je v radar načinu, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Zemljevid (minimap) je v radar načinu, Zoom x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Zemljevid (minimap) je v načinu prikazovanja površja, Zoom x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Zemljevid (minimap) je v načinu prikazovanja površja, Zoom x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Zemljevid (minimap) je v načinu prikazovanja površja, Zoom x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Prehod skozi zid (način duha) je onemogočen" @@ -1394,8 +1418,9 @@ msgid "Pitch move mode enabled" msgstr "Prostorsko premikanje (pitch mode) je omogočeno" #: src/client/game.cpp +#, fuzzy msgid "Profiler graph shown" -msgstr "" +msgstr "Profiler prikazan" #: src/client/game.cpp msgid "Remote server" @@ -1405,10 +1430,6 @@ msgstr "Oddaljeni strežnik" msgid "Resolving address..." msgstr "Poteka razreševanje naslova ..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Ponovno oživi" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Poteka zaustavljanje ..." @@ -1427,11 +1448,11 @@ msgstr "Zvok je utišan" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Zvočni sistem je onemogočen" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Zvočni sistem v tej izdaji Minetesta ni podprt" #: src/client/game.cpp msgid "Sound unmuted" @@ -1458,12 +1479,9 @@ msgid "Volume changed to %d%%" msgstr "Glasnost zvoka je nastavljena na %d %%" #: src/client/game.cpp +#, fuzzy msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "You died" -msgstr "Umrl si" +msgstr "Žičnati prikaz omogočen" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1481,16 +1499,6 @@ msgstr "Pogovor je skrit" msgid "Chat shown" msgstr "Pogovor je prikazan" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Pogovor je skrit" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Pogovor je prikazan" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD je skrit" @@ -1500,13 +1508,14 @@ msgid "HUD shown" msgstr "HUD je prikazan" #: src/client/gameui.cpp +#, fuzzy msgid "Profiler hidden" -msgstr "" +msgstr "Profiler skrit" #: src/client/gameui.cpp -#, c-format +#, fuzzy, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Profiler prikazan (stran %d od %d)" #: src/client/keycode.cpp msgid "Apps" @@ -1553,24 +1562,29 @@ msgid "Home" msgstr "Začetno mesto" #: src/client/keycode.cpp +#, fuzzy msgid "IME Accept" -msgstr "" +msgstr "IME Sprejem" #: src/client/keycode.cpp +#, fuzzy msgid "IME Convert" -msgstr "" +msgstr "IME Pretvorba" #: src/client/keycode.cpp +#, fuzzy msgid "IME Escape" -msgstr "" +msgstr "IME Pobeg" #: src/client/keycode.cpp +#, fuzzy msgid "IME Mode Change" -msgstr "" +msgstr "IME sprememba načina" #: src/client/keycode.cpp +#, fuzzy msgid "IME Nonconvert" -msgstr "" +msgstr "IME Nepretvorba" #: src/client/keycode.cpp msgid "Insert" @@ -1674,8 +1688,9 @@ msgid "Numpad 9" msgstr "Tipka 9 na številčnici" #: src/client/keycode.cpp +#, fuzzy msgid "OEM Clear" -msgstr "" +msgstr "OEM Clear" #: src/client/keycode.cpp msgid "Page down" @@ -1771,6 +1786,25 @@ msgstr "X Gumb 2" msgid "Zoom" msgstr "Približanje" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Zemljevid (minimap) je skrit" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Zemljevid (minimap) je v radar načinu, Zoom x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Zemljevid (minimap) je v načinu prikazovanja površja, Zoom x1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Zemljevid (minimap) je v načinu prikazovanja površja, Zoom x1" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Gesli se ne ujemata!" @@ -1814,26 +1848,6 @@ msgstr "Samodejno skakanje" msgid "Backward" msgstr "Nazaj" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Sprememba kamere" @@ -1893,6 +1907,8 @@ msgstr "Tipka je že v uporabi" #: src/gui/guiKeyChangeMenu.cpp msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" +"Vloge tipk (če ta meni preneha delovati, odstranite nastavitve tipk iz " +"datoteke minetest.conf)" #: src/gui/guiKeyChangeMenu.cpp msgid "Local command" @@ -1926,30 +1942,10 @@ msgstr "Plaziti se" msgid "Special" msgstr "Specialen" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Specialen" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Preklopi gladek pogled" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Preklopi gladek pogled" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "Preklopi HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Preklopi letenje" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Preklopi beleženje pogovora" @@ -2029,6 +2025,9 @@ msgid "" "(Android) Fixes the position of virtual joystick.\n" "If disabled, virtual joystick will center to first-touch's position." msgstr "" +"(Android) Popravi položaj virtualne igralne palice.\n" +"Če je onemogočeno, se bo sredina igralne palice nastavila na položaj prvega " +"pritiska na ekran." #: src/settings_translation_file.cpp msgid "" @@ -2036,6 +2035,9 @@ msgid "" "If enabled, virtual joystick will also tap \"aux\" button when out of main " "circle." msgstr "" +"(Android) Uporabi virtualno igralno palico za pritisk gumba \"aux\".\n" +"Če je omogočeno, bo igralna palica sprožila gumb \"aux\", ko bo zunaj " +"glavnega kroga." #: src/settings_translation_file.cpp msgid "" @@ -2048,6 +2050,15 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X, Y, Z) Zamik fraktala od središča sveta v enotah 'scale'.\n" +"Uporabno za premik določene točke na (0, 0) za ustvarjanje\n" +"primerne začetne točke (spawn point) ali za 'zumiranje' na določeno\n" +"točko, tako da povečate 'scale'.\n" +"Privzeta vrednost je prirejena za primerno začetno točko za Mandelbrotovo\n" +"množico s privzetimi parametri, v ostalih situacijah jo bo morda treba\n" +"spremeniti.\n" +"Obseg je približno od -2 do 2. Pomnožite s 'scale', da določite zamik v " +"enoti ene kocke." #: src/settings_translation_file.cpp msgid "" @@ -2059,12 +2070,13 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" +"(X, Y, Z) skala (razteg) fraktala v enoti ene kocke.\n" +"Resnična velikost fraktala bo 2- do 3-krat večja.\n" +"Te vrednosti so lahko zelo velike; ni potrebno,\n" +"da se fraktal prilega velikosti sveta.\n" +"Povečajte te vrednosti, da 'zumirate' na podrobnosti fraktala.\n" +"Privzeta vrednost določa vertikalno stisnjeno obliko, primerno za\n" +"otok; nastavite vse tri vrednosti na isto število za neobdelano obliko." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." @@ -2072,27 +2084,29 @@ msgstr "2D šum, ki nadzoruje obliko/velikost gorskih verig." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "2D šum, ki nadzira obliko in velikost hribov." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "2D šum, ki nadzira obliko/velikost gora." #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "2D šum, ki nadzira velikost/pojavljanje gorskih verig." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "2D šum, ki nadzira veliokst/pojavljanje hribov." #: src/settings_translation_file.cpp +#, fuzzy msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "2D šum, ki nadzira velikost/pojavljanje gorskih verig." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "2D šum, ki določa položaj rečnih dolin in kanalov." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2104,17 +2118,19 @@ msgstr "3D način" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Moč 3D parallax načina" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D šum, ki določa večje jame." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D šum, ki določa strukturo in višino gora\n" +"ter strukturo terena lebdečih gora." #: src/settings_translation_file.cpp msgid "" @@ -2123,22 +2139,27 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D šum, ki določa strukturo lebdeče pokrajine.\n" +"Po spremembi s privzete vrednosti bo 'skalo' šuma (privzeto 0,7) morda " +"treba\n" +"prilagoditi, saj program za generiranje teh pokrajin najbolje deluje\n" +"z vrednostjo v območju med -2,0 in 2,0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "3D šum, ki določa strukturo sten rečnih kanjonov." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D šum za določanje terena." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "3D šum za gorske previse, klife, itd. Ponavadi so variacije majhne." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D šum, ki določa število ječ na posamezen kos zemljevida." #: src/settings_translation_file.cpp msgid "" @@ -2159,6 +2180,9 @@ msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"Izbrano seme zemljevida, pustite prazno za izbor naključnega semena.\n" +"Ta nastavitev bo povožena v primeru ustvarjanja novega sveta iz glavnega " +"menija." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." @@ -2173,6 +2197,10 @@ msgstr "" #: src/settings_translation_file.cpp msgid "ABM interval" +msgstr "Interval ABM" + +#: src/settings_translation_file.cpp +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp @@ -2181,23 +2209,23 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Pospešek v zraku" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Pospešek gravitacije v kockah na kvadratno sekundo." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "Modifikatorji aktivnih blokov" #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "Interval upravljanja aktivnih blokov" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "Doseg aktivnih blokov" #: src/settings_translation_file.cpp msgid "Active object send range" @@ -2209,16 +2237,22 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"Naslov strežnika.\n" +"Pustite prazno za zagon lokalnega strežnika.\n" +"Polje za vpis naslova v glavnem meniju povozi to nastavitev." #: src/settings_translation_file.cpp +#, fuzzy msgid "Adds particles when digging a node." -msgstr "" +msgstr "Doda partikle pri kopanju kocke." #: src/settings_translation_file.cpp msgid "" "Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " "screens." msgstr "" +"Nastavite dpi konfiguracijo (gostoto prikaza) svojemu ekranu (samo za ne-X11/" +"Android), npr. za 4K ekrane." #: src/settings_translation_file.cpp #, c-format @@ -2254,11 +2288,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgstr "Največja količina sporočil, ki jih igralec sme poslati v 10 sekundah." #: src/settings_translation_file.cpp msgid "Amplifies the valleys." -msgstr "" +msgstr "Ojača doline." #: src/settings_translation_file.cpp msgid "Anisotropic filtering" @@ -2274,7 +2308,7 @@ msgstr "Objavi strežnik na seznamu strežnikov." #: src/settings_translation_file.cpp msgid "Append item name" -msgstr "" +msgstr "Dodaj ime elementa" #: src/settings_translation_file.cpp msgid "Append item name to tooltip." @@ -2287,13 +2321,15 @@ msgstr "Šum jablan" #: src/settings_translation_file.cpp msgid "Arm inertia" -msgstr "" +msgstr "Vztrajnost roke" #: src/settings_translation_file.cpp msgid "" "Arm inertia, gives a more realistic movement of\n" "the arm when the camera moves." msgstr "" +"Vztrajnost roke; daje bolj realistično gibanje\n" +"roke, ko se kamera premika." #: src/settings_translation_file.cpp msgid "Ask to reconnect after crash" @@ -2313,6 +2349,15 @@ msgid "" "optimization.\n" "Stated in mapblocks (16 nodes)." msgstr "" +"Na tej razdalji bo strežnik agresivno optimiziral, kateri bloki bodo " +"poslani\n" +"igralcem.\n" +"Manjše vrednosti lahko močno pospešijo delovanje na račun napak\n" +"pri izrisovanju (nekateri bloki se ne bodo izrisali pod vodo in v jamah,\n" +"včasih pa tudi na kopnem).\n" +"Nastavljanje na vrednost, večjo od max_block_send_distance, onemogoči to\n" +"optimizacijo.\n" +"Navedena vrednost ima enoto 'mapchunk' (16 blokov)." #: src/settings_translation_file.cpp msgid "Automatic forward key" @@ -2346,11 +2391,11 @@ msgstr "Osnovna podlaga" #: src/settings_translation_file.cpp msgid "Base terrain height." -msgstr "" +msgstr "Višina osnovnega terena." #: src/settings_translation_file.cpp msgid "Basic" -msgstr "" +msgstr "Osnovno" #: src/settings_translation_file.cpp msgid "Basic privileges" @@ -2366,7 +2411,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Bilinear filtering" -msgstr "" +msgstr "Bilinearno filtriranje" #: src/settings_translation_file.cpp msgid "Bind address" @@ -2377,12 +2422,13 @@ msgid "Biome API temperature and humidity noise parameters" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Biome noise" -msgstr "" +msgstr "Šum bioma" #: src/settings_translation_file.cpp msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" +msgstr "Biti na piksel (barvna globina) v celozaslonskem načinu." #: src/settings_translation_file.cpp msgid "Block send optimize distance" @@ -2390,11 +2436,11 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Bold and italic font path" -msgstr "" +msgstr "Pot do krepke in poševne pisave" #: src/settings_translation_file.cpp msgid "Bold and italic monospace font path" -msgstr "" +msgstr "Pot do krepke in ležeče pisave konstantne širine" #: src/settings_translation_file.cpp #, fuzzy @@ -2403,7 +2449,7 @@ msgstr "Pot pisave" #: src/settings_translation_file.cpp msgid "Bold monospace font path" -msgstr "" +msgstr "Pot do krepke pisave konstantne širine" #: src/settings_translation_file.cpp msgid "Build inside player" @@ -2411,19 +2457,23 @@ msgstr "Postavljanje blokov znotraj igralca" #: src/settings_translation_file.cpp msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" +msgstr "Vgrajeno" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"'Bližnja ravnina' kamere - najmanjša razdalja, na kateri kamera vidi objekte " +"- v blokih, med 0 in 0,25.\n" +"Deluje samo na platformah GLES. Večini uporabnikov te nastavitve ni treba " +"spreminjati.\n" +"Povečanje vrednosti lahko odpravi anomalije na šibkejših grafičnih " +"procesorjih.\n" +"0.1 = privzeto, 0.25 = dobra vrednost za šibkejše naprave" #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2458,11 +2508,11 @@ msgstr "Širina jame" #: src/settings_translation_file.cpp msgid "Cave1 noise" -msgstr "" +msgstr "Šum Cave1" #: src/settings_translation_file.cpp msgid "Cave2 noise" -msgstr "" +msgstr "Šum Cave2" #: src/settings_translation_file.cpp msgid "Cavern limit" @@ -2490,16 +2540,8 @@ msgid "" "Center of light curve boost range.\n" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" +"Središče območja povečave svetlobne krivulje.\n" +"0.0 je minimalna raven svetlobe, 1.0 maksimalna." #: src/settings_translation_file.cpp #, fuzzy @@ -2541,8 +2583,9 @@ msgid "Chatcommands" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Chunk size" -msgstr "" +msgstr "Velikost 'chunka'" #: src/settings_translation_file.cpp msgid "Cinematic mode" @@ -2553,8 +2596,9 @@ msgid "Cinematic mode key" msgstr "Tipka za filmski način" #: src/settings_translation_file.cpp +#, fuzzy msgid "Clean transparent textures" -msgstr "" +msgstr "Čiste prosojne teksture" #: src/settings_translation_file.cpp msgid "Client" @@ -2625,7 +2669,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Command key" -msgstr "" +msgstr "Tipka Command" #: src/settings_translation_file.cpp msgid "Connect glass" @@ -2646,16 +2690,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Console color" -msgstr "" +msgstr "Barva konzole" #: src/settings_translation_file.cpp msgid "Console height" -msgstr "" +msgstr "Višina konzole" #: src/settings_translation_file.cpp msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2672,8 +2720,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Controls" -msgstr "" +msgstr "Kontrole" #: src/settings_translation_file.cpp msgid "" @@ -2684,15 +2733,15 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Controls sinking speed in liquid." -msgstr "" +msgstr "Nadzira hitrost potapljanja v tekočinah." #: src/settings_translation_file.cpp msgid "Controls steepness/depth of lake depressions." -msgstr "" +msgstr "Nadzira strmost/globino jezerskih depresij." #: src/settings_translation_file.cpp msgid "Controls steepness/height of hills." -msgstr "" +msgstr "Nadzira strmost/višino hribov." #: src/settings_translation_file.cpp msgid "" @@ -2714,7 +2763,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2722,7 +2773,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2825,14 +2878,6 @@ msgstr "Določa obsežno strukturo rečnega kanala." msgid "Defines location and terrain of optional hills and lakes." msgstr "Določa lokacijo in teren neobveznih gričev in jezer." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Določa korak vzorčenja teksture.\n" -"Višja vrednost povzroči bolj gladke normalne zemljevide." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Določa osnovno podlago." @@ -2905,6 +2950,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Tipka za met predmeta" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Kopanje delcev" @@ -2966,7 +3016,8 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Omogoči ustvarjalni način za novo ustvarjene svetove." #: src/settings_translation_file.cpp @@ -3053,14 +3104,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3069,18 +3112,6 @@ msgstr "" msgid "Enables minimap." msgstr "Omogoči zemljevid (minimap)." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3097,12 +3128,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3114,7 +3139,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3426,10 +3451,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3484,8 +3505,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3970,6 +3991,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4049,6 +4074,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4148,6 +4180,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4705,10 +4744,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Slog glavnega menija" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4722,6 +4757,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4887,7 +4930,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4935,6 +4978,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5164,14 +5214,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5197,10 +5239,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5226,35 +5264,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Lestvica okluzije paralakse" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5320,6 +5329,15 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tipka za letenje" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5478,10 +5496,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5733,6 +5747,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5868,10 +5892,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5965,6 +5985,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6024,8 +6048,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6049,6 +6073,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6057,9 +6087,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6194,6 +6223,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6400,6 +6440,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6522,6 +6568,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6534,24 +6598,116 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "V redu" +#, fuzzy +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = \"parallax occlusion\" s podatki o nagibih (hitrejše)\n" +#~ "1 = mapiranje reliefa (počasnejše, a bolj natančno)" + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ali res želiš ponastaviti samostojno igro?" #~ msgid "Back" #~ msgstr "Nazaj" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Prenašanje in nameščanje $1, prosimo počakajte..." +#~ msgid "Bump Mapping" +#~ msgstr "Površinsko preslikavanje" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Spremeni uporabniški vmesnik glavnega menija:\n" +#~ "- Polno: več enoigralskih svetov, izbira igre, izbirnik paketov " +#~ "tekstur, itd.\n" +#~ "- Preprosto: en enoigralski svet, izbirnika iger in paketov tekstur se " +#~ "ne prikažeta. Morda bo za manjše\n" +#~ "ekrane potrebna ta nastavitev." + +#~ msgid "Config mods" +#~ msgstr "Nastavitve prilagoditev" + +#~ msgid "Configure" +#~ msgstr "Nastavi" #~ msgid "Darkness sharpness" #~ msgstr "Ostrina teme" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Določa korak vzorčenja teksture.\n" +#~ "Višja vrednost povzroči bolj gladke normalne zemljevide." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Prenašanje in nameščanje $1, prosimo počakajte..." + #, fuzzy #~ msgid "Enable VBO" #~ msgstr "Omogoči VBO" +#~ msgid "Generate Normal Maps" +#~ msgstr "Generiranje normalnih svetov" + #~ msgid "IPv6 support." #~ msgstr "IPv6 podpora." +#~ msgid "Main" +#~ msgstr "Glavni" + +#~ msgid "Main menu style" +#~ msgstr "Slog glavnega menija" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Zemljevid (minimap) je v radar načinu, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Zemljevid (minimap) je v radar načinu, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Zemljevid (minimap) je v načinu prikazovanja površja, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Zemljevid (minimap) je v načinu prikazovanja površja, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Ime / Geslo" + +#~ msgid "No" +#~ msgstr "Ne" + +#~ msgid "Ok" +#~ msgstr "V redu" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaksa" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Lestvica okluzije paralakse" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Ponastavi samostojno igro" + #~ msgid "Select Package File:" #~ msgstr "Izberi datoteko paketa:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Zaženi samostojno igro" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Preklopi gladek pogled" + +#, fuzzy +#~ msgid "View" +#~ msgstr "Pogled" + +#~ msgid "Yes" +#~ msgstr "Da" diff --git a/po/sr_Cyrl/minetest.po b/po/sr_Cyrl/minetest.po index 50fcba07d..5223e55e2 100644 --- a/po/sr_Cyrl/minetest.po +++ b/po/sr_Cyrl/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Serbian (cyrillic) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-07-08 20:47+0000\n" "Last-Translator: sfan5 \n" "Language-Team: Serbian (cyrillic) =20) ? 1 : 2;\n" "X-Generator: Weblate 4.2-dev\n" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Врати се у живот" + +#: builtin/client/death_formspec.lua src/client/game.cpp +#, fuzzy +msgid "You died" +msgstr "Умро/ла си." + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "" @@ -41,10 +50,6 @@ msgstr "Поновно повезивање" msgid "The server has requested a reconnect:" msgstr "Сервер тражи поновно повезивање:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Учитавање..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Неслагање верзија протокола. " @@ -57,12 +62,6 @@ msgstr "Сервер примењује $1 верзију протокола. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Сервер подржава верзије протокола између $1 и $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Покушајте да поновно укључите листу сервера и проверите вашу интернет " -"конекцију." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Ми подржавамо само $1 верзију протокола." @@ -71,7 +70,8 @@ msgstr "Ми подржавамо само $1 верзију протокола. msgid "We support protocol versions between version $1 and $2." msgstr "Ми подржавамо верзије протокола између верзије $1 и $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -81,7 +81,8 @@ msgstr "Ми подржавамо верзије протокола између msgid "Cancel" msgstr "Прекини" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua #, fuzzy msgid "Dependencies:" msgstr "Зависи од:" @@ -163,15 +164,56 @@ msgstr "Свет:" msgid "enabled" msgstr "укључено" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Учитавање..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Дугме се већ користи" + #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy msgid "Back to Main Menu" msgstr "Главни мени" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Направи игру" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -195,6 +237,16 @@ msgstr "Игре" msgid "Install" msgstr "Инсталирај" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Инсталирај" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Необавезне зависности:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -209,9 +261,24 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Тражи" +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -228,7 +295,11 @@ msgid "Update" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -493,11 +564,6 @@ msgstr "< Назад на страну са поставкама" msgid "Browse" msgstr "Прегледај" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Клијент" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Онемогућено" @@ -542,6 +608,10 @@ msgstr "Поврати уобичајено" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Тражи" + #: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" @@ -677,6 +747,20 @@ msgstr "Неуспела инсталација $1 у $2" msgid "Unable to install a modpack as a $1" msgstr "Неуспела инсталација $1 у $2" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Учитавање..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Покушајте да поновно укључите листу сервера и проверите вашу интернет " +"конекцију." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -737,7 +821,14 @@ msgid "Credits" msgstr "Заслуге" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Изаберите фајл мода:" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -757,14 +848,10 @@ msgid "Bind Address" msgstr "Вежи адресу" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Подеси" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Слободни мод" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Омогући оштећење" @@ -781,8 +868,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Име/Шифра" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -792,6 +879,11 @@ msgstr "Нови" msgid "No world created or selected!" msgstr "Ниједан свет није направљен или изабран!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Нова шифра" + #: builtin/mainmenu/tab_local.lua #, fuzzy msgid "Play Game" @@ -801,6 +893,11 @@ msgstr "Почни игру" msgid "Port" msgstr "Порт" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Одабери свет:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Одабери свет:" @@ -818,23 +915,23 @@ msgstr "Направи игру" msgid "Address / Port" msgstr "Адреса / Порт" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Прикључи се" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Слободни мод" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Оштећење омогућено" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Обриши Омиљени" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Омиљени" @@ -843,16 +940,16 @@ msgstr "Омиљени" msgid "Join Game" msgstr "Направи игру" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Име / Шифра" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Одзив" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Туча омогућена" @@ -881,10 +978,6 @@ msgstr "Поставке" msgid "Antialiasing:" msgstr "Гланчање текстура:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Да ли сте сигурни да желите да ресетујете ваш свет?" - #: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Autosave Screen Size" @@ -894,10 +987,6 @@ msgstr "Аутоматски сачувај величину екрана" msgid "Bilinear Filter" msgstr "Билинеарни филтер" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Bump-Мапирање" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Подеси контроле" @@ -910,10 +999,6 @@ msgstr "Спојено стакло" msgid "Fancy Leaves" msgstr "Елегантно лишће" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Мипмап" @@ -922,10 +1007,6 @@ msgstr "Мипмап" msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Анизотропни филтер" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Не" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Без филтера" @@ -954,18 +1035,10 @@ msgstr "Непровидно лишће" msgid "Opaque Water" msgstr "Непрозирна вода" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax Occlusion Мапирање" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Честице" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Ресетуј свет" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Екран:" @@ -978,6 +1051,10 @@ msgstr "Поставке" msgid "Shaders" msgstr "Шејдери" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -1024,22 +1101,6 @@ msgstr "Лепршајуће лишће" msgid "Waving Plants" msgstr "Лепршајуће биљке" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Да" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Подеси модове" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Главно" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Започни игру за једног играча" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Конекцији је истекло време." @@ -1208,18 +1269,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Уобичајене контроле:\n" "- %s: иди напред\n" @@ -1337,16 +1395,6 @@ msgstr "Онемогућено" msgid "Fog enabled" msgstr "укључено" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Онемогућено" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "укључено" - #: src/client/game.cpp msgid "Game info:" msgstr "Информације о игри:" @@ -1367,16 +1415,6 @@ msgstr "Дефиниције предмета..." msgid "KiB/s" msgstr "КиБ/с" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Онемогућено" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Оштећење омогућено" - #: src/client/game.cpp msgid "Media..." msgstr "Медија..." @@ -1389,34 +1427,6 @@ msgstr "МиБ/с" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1462,10 +1472,6 @@ msgstr "Удаљен сервер" msgid "Resolving address..." msgstr "Разлучујем адресу..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Врати се у живот" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Искључивање..." @@ -1520,11 +1526,6 @@ msgstr "Јачина звука промењена на %d%%" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -#, fuzzy -msgid "You died" -msgstr "Умро/ла си." - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1542,15 +1543,6 @@ msgstr "Кључ за чет" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Кључ за чет" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1833,6 +1825,24 @@ msgstr "X Дугме 2" msgid "Zoom" msgstr "Зумирај" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Шифре се не поклапају!" @@ -1873,26 +1883,6 @@ msgstr "" msgid "Backward" msgstr "Назад" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Change camera" @@ -1989,31 +1979,11 @@ msgstr "Шуњање" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "притисните дугме" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Укључи/Искључи Cinematic мод" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Укључи/Искључи Cinematic мод" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Toggle HUD" msgstr "Укључи/Искључи летење" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Укључи/Искључи летење" - #: src/gui/guiKeyChangeMenu.cpp #, fuzzy msgid "Toggle chat log" @@ -2135,14 +2105,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax occlusion са информацијама о нагибима (брже)\n" -"1 = мапирање рељефа (спорије, прецизније)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2260,6 +2222,10 @@ msgstr "Порука приказана свим играчима када се msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "Absolute limit of queued blocks to emerge" @@ -2514,10 +2480,6 @@ msgstr "Градња унутар играча" msgid "Builtin" msgstr "Уграђено" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Рељефна тектура" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2589,16 +2551,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" @@ -2762,6 +2714,10 @@ msgstr "Висина конзоле" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2824,7 +2780,10 @@ msgid "Crosshair alpha" msgstr "Провидност нишана" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "Провидност нишана (видљивост, између 0 и 255)." #: src/settings_translation_file.cpp @@ -2832,8 +2791,10 @@ msgid "Crosshair color" msgstr "Боја нишана" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Боја нишана (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2935,12 +2896,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -3011,6 +2966,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "Digging particles" @@ -3074,7 +3033,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3161,14 +3120,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3177,18 +3128,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3205,12 +3144,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3222,7 +3155,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3527,10 +3460,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3586,8 +3515,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -4056,6 +3985,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4135,6 +4068,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4234,6 +4174,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4792,11 +4739,6 @@ msgstr "Абсолутни лимит emerge токова." msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Главни мени" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4810,6 +4752,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4980,7 +4930,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -5028,6 +4978,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5257,14 +5214,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5290,10 +5239,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5319,35 +5264,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Parallax Occlusion Мапирање" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5414,6 +5330,15 @@ msgstr "Кључ за синематски мод" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Кључ за синематски мод" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5572,10 +5497,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5849,6 +5770,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5980,10 +5911,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6077,6 +6004,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6136,8 +6067,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6161,6 +6092,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6169,9 +6106,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6308,6 +6244,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6514,6 +6461,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6638,6 +6591,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6650,15 +6621,12 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "Уреду" - -#~ msgid "Back" -#~ msgstr "Назад" - -#, fuzzy -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Преузима се $1, молим вас сачекајте..." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion са информацијама о нагибима (брже)\n" +#~ "1 = мапирање рељефа (спорије, прецизније)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -6668,6 +6636,24 @@ msgstr "" #~ "Подеси осветљење унутар игре. Веће вредности су светлије.\n" #~ "Ово подешавање је само за клијента, сервер га игнорише." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Да ли сте сигурни да желите да ресетујете ваш свет?" + +#~ msgid "Back" +#~ msgstr "Назад" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump-Мапирање" + +#~ msgid "Bumpmapping" +#~ msgstr "Рељефна тектура" + +#~ msgid "Config mods" +#~ msgstr "Подеси модове" + +#~ msgid "Configure" +#~ msgstr "Подеси" + #, fuzzy #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" @@ -6679,6 +6665,48 @@ msgstr "" #~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." #~ msgstr "Контролише ширину тунела, мања вредност ствара шире тунеле." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Боја нишана (R,G,B)." + +#, fuzzy +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Преузима се $1, молим вас сачекајте..." + +#~ msgid "Main" +#~ msgstr "Главно" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Главни мени" + +#~ msgid "Name/Password" +#~ msgstr "Име/Шифра" + +#~ msgid "No" +#~ msgstr "Не" + +#~ msgid "Ok" +#~ msgstr "Уреду" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion Мапирање" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax Occlusion Мапирање" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Ресетуј свет" + #, fuzzy #~ msgid "Select Package File:" #~ msgstr "Изаберите фајл мода:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Започни игру за једног играча" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Укључи/Искључи Cinematic мод" + +#~ msgid "Yes" +#~ msgstr "Да" diff --git a/po/fil/minetest.po b/po/sr_Latn/minetest.po similarity index 93% rename from po/fil/minetest.po rename to po/sr_Latn/minetest.po index ffb1ba36e..7c5ad11fc 100644 --- a/po/fil/minetest.po +++ b/po/sr_Latn/minetest.po @@ -1,73 +1,79 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the minetest package. +# FIRST AUTHOR , YEAR. +# msgid "" msgstr "" -"Project-Id-Version: Filipino (Minetest)\n" +"Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy \n" -"Language-Team: Filipino \n" -"Language: fil\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-08-15 23:32+0000\n" +"Last-Translator: Milos \n" +"Language-Team: Serbian (latin) \n" +"Language: sr_Latn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " -"|| n % 10 == 6 || n % 10 == 9);\n" -"X-Generator: Weblate 3.10.1\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.2-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Vrati se u zivot" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Umro/la si." #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" -msgstr "" +msgstr "Doslo je do greske u Lua skripti:" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Doslo je do greske:" #: builtin/fstk/ui.lua msgid "Main menu" -msgstr "" +msgstr "Glavni meni" #: builtin/fstk/ui.lua msgid "Reconnect" -msgstr "" +msgstr "Ponovno povezivanje" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" +msgstr "Server je zahtevao ponovno povezivanje:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " -msgstr "" +msgstr "Protokol verzija neuskladjena. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "" +msgstr "Server primenjuje protokol verzije $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" +msgstr "Server podrzava protokol verzije izmedju $1 ili $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." -msgstr "" +msgstr "Mi samo podrzavamo protokol verzije $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." -msgstr "" +msgstr "Mi podrzavamo protokol verzija izmedju verzije $1 i $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -75,140 +81,212 @@ msgstr "" #: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp #: src/gui/guiPasswordChange.cpp msgid "Cancel" -msgstr "" +msgstr "Ponisti" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" -msgstr "" +msgstr "Zavisnosti:" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable all" -msgstr "" +msgstr "Onemoguci sve" #: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "Onemoguci modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" -msgstr "" +msgstr "Omoguci sve" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable modpack" -msgstr "" +msgstr "Omoguci modpack" #: builtin/mainmenu/dlg_config_world.lua msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" +"Nije omogucen mod \"$1\" jer sadrzi nedozvoljene simbole. Samo simboli [a-z, " +"0-9_] su dozvoljeni." #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "Nadji jos modova" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "" +msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" -msgstr "" +msgstr "Nema (opcionih) zavisnosti" #: builtin/mainmenu/dlg_config_world.lua msgid "No game description provided." -msgstr "" +msgstr "Opis igre nije prilozen." #: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" -msgstr "" +msgstr "Bez teskih zavisnosti" #: builtin/mainmenu/dlg_config_world.lua msgid "No modpack description provided." -msgstr "" +msgstr "Opis modpack-a nije prilozen." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" -msgstr "" +msgstr "Bez neobaveznih zavisnosti" #: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua msgid "Optional dependencies:" -msgstr "" +msgstr "Neobavezne zavisnosti:" #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" -msgstr "" +msgstr "Sacuvaj" #: builtin/mainmenu/dlg_config_world.lua msgid "World:" -msgstr "" +msgstr "Svet:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" +msgstr "Omoguceno" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Preuzimanje..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" +msgstr "Svi paketi" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" +msgstr "Nazad na Glavni meni" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB je nedostupan kada je Minetest sastavljen bez cURL" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." -msgstr "" +msgstr "Preuzimanje..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "" +msgstr "Neuspelo preuzimanje $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "" +msgstr "Igre" #: builtin/mainmenu/dlg_contentstore.lua msgid "Install" -msgstr "" +msgstr "Instalirati" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instalirati" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Neobavezne zavisnosti:" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" -msgstr "" +msgstr "Modovi" #: builtin/mainmenu/dlg_contentstore.lua msgid "No packages could be retrieved" -msgstr "" +msgstr "Nema paketa za preuzeti" #: builtin/mainmenu/dlg_contentstore.lua msgid "No results" +msgstr "Bez rezultata" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "No updates" +msgstr "Azuriranje" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" -msgstr "" +msgstr "Pakovanja tekstura" #: builtin/mainmenu/dlg_contentstore.lua msgid "Uninstall" -msgstr "" +msgstr "Deinstaliraj" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" +msgstr "Azuriranje" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -217,31 +295,31 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "Dodatni teren" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" -msgstr "" +msgstr "Nadmorska visina" #: builtin/mainmenu/dlg_create_world.lua msgid "Altitude dry" -msgstr "" +msgstr "Visina suva" #: builtin/mainmenu/dlg_create_world.lua msgid "Biome blending" -msgstr "" +msgstr "Mesanje bioma" #: builtin/mainmenu/dlg_create_world.lua msgid "Biomes" -msgstr "" +msgstr "Biomi" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" -msgstr "" +msgstr "Pecine" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "Pecine" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -249,7 +327,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Decorations" -msgstr "" +msgstr "Dekoracije" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -257,23 +335,23 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Download one from minetest.net" -msgstr "" +msgstr "Preuzmi jednu sa minetest.net" #: builtin/mainmenu/dlg_create_world.lua msgid "Dungeons" -msgstr "" +msgstr "Tamnice" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "Ravan teren" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "Lebdece zemaljske mase na nebu" #: builtin/mainmenu/dlg_create_world.lua msgid "Floatlands (experimental)" -msgstr "" +msgstr "Lebdece zemlje (eksperimentalno)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" @@ -281,27 +359,27 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "Stvaranje ne-fraktalnog terena: Okeani i podzemlje" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Brda" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" -msgstr "" +msgstr "Vlazne reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "Povecana vlaznost oko reka" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "Jezera" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "Niska vlaga i visoka toplota uzrokuju plitke ili suve reke" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -309,7 +387,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen flags" -msgstr "" +msgstr "Mapgen zastave" #: builtin/mainmenu/dlg_create_world.lua msgid "Mapgen-specific flags" @@ -317,15 +395,15 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "Planine" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "Protok blata" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "Mreza tunela i pecina" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -333,19 +411,19 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "Smanjuje toplotu sa visinom" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "Smanjuje vlaznost sa visinom" #: builtin/mainmenu/dlg_create_world.lua msgid "Rivers" -msgstr "" +msgstr "Reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "Reke na nivou mora" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -354,45 +432,47 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "Glatki prelaz izmedju bioma" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Konstrukcije koje se pojavljuju na terenu (nema efekta na drveca i travu " +"dzungle koje je stvorio v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "Konstrukcije koje se pojavljuju na terenu , obicno drvece i biljke" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "Umereno,Pustinja" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "Umereno,Pustinja,Dzungla" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Umereno,Pustinja,Dzungla,Tundra,Tajga" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Povrsinska erozija terena" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Drveca i trava dzungle" #: builtin/mainmenu/dlg_create_world.lua msgid "Vary river depth" -msgstr "" +msgstr "Razlicita dubina reke" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Veoma velike pecine duboko ispod zemlje" #: builtin/mainmenu/dlg_create_world.lua msgid "Warning: The Development Test is meant for developers." @@ -404,7 +484,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "You have no games installed." -msgstr "" +msgstr "Nema instaliranih igara." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -458,10 +538,6 @@ msgstr "" msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Clientmods" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "" @@ -506,6 +582,10 @@ msgstr "" msgid "Scale" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Trazi" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -621,6 +701,20 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Ucitavanje..." + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Public server list is disabled" +msgstr "" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Pokusajte ponovo omoguciti javnu listu servera i proverite vasu internet " +"vezu." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -674,7 +768,13 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -694,14 +794,10 @@ msgid "Bind Address" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "" @@ -718,7 +814,7 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -729,6 +825,10 @@ msgstr "" msgid "No world created or selected!" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -737,6 +837,10 @@ msgstr "" msgid "Port" msgstr "" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -753,23 +857,23 @@ msgstr "" msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "" @@ -777,16 +881,16 @@ msgstr "" msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "" @@ -814,10 +918,6 @@ msgstr "" msgid "Antialiasing:" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -826,10 +926,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "" @@ -842,10 +938,6 @@ msgstr "" msgid "Fancy Leaves" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -854,10 +946,6 @@ msgstr "" msgid "Mipmap + Aniso. Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -886,18 +974,10 @@ msgstr "" msgid "Opaque Water" msgstr "" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "" @@ -910,6 +990,11 @@ msgstr "" msgid "Shaders" msgstr "" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Lebdece zemlje (eksperimentalno)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -954,22 +1039,6 @@ msgstr "" msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - #: src/client/client.cpp msgid "Connection timed out." msgstr "" @@ -1040,7 +1109,7 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "yes" +msgstr "no" #: src/client/game.cpp msgid "" @@ -1129,18 +1198,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" #: src/client/game.cpp @@ -1227,14 +1293,6 @@ msgstr "" msgid "Fog enabled" msgstr "" -#: src/client/game.cpp -msgid "Freecam disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Freecam enabled" -msgstr "" - #: src/client/game.cpp msgid "Game info:" msgstr "" @@ -1255,14 +1313,6 @@ msgstr "" msgid "KiB/s" msgstr "" -#: src/client/game.cpp -msgid "Killaura disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Killaura enabled" -msgstr "" - #: src/client/game.cpp msgid "Media..." msgstr "" @@ -1275,34 +1325,6 @@ msgstr "" msgid "Minimap currently disabled by game or mod" msgstr "" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "" @@ -1347,10 +1369,6 @@ msgstr "" msgid "Resolving address..." msgstr "" -#: src/client/game.cpp -msgid "Respawn" -msgstr "" - #: src/client/game.cpp msgid "Shutting down..." msgstr "" @@ -1403,10 +1421,6 @@ msgstr "" msgid "Wireframe shown" msgstr "" -#: src/client/game.cpp -msgid "You died" -msgstr "" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "" @@ -1423,14 +1437,6 @@ msgstr "" msgid "Chat shown" msgstr "" -#: src/client/gameui.cpp -msgid "Cheat Menu hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Cheat Menu shown" -msgstr "" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "" @@ -1711,6 +1717,24 @@ msgstr "" msgid "Zoom" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "" @@ -1749,26 +1773,6 @@ msgstr "" msgid "Backward" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "" @@ -1861,26 +1865,10 @@ msgstr "" msgid "Special" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special Inv." -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle C. Menu" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Freec." -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "" -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle Killaura" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "" @@ -1952,7 +1940,7 @@ msgstr "" #. language code (e.g. "de" for German). #: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp msgid "LANG_CODE" -msgstr "fil" +msgstr "sr_Latn" #: src/settings_translation_file.cpp msgid "" @@ -1990,12 +1978,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2102,6 +2084,10 @@ msgstr "" msgid "ABM interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "" @@ -2335,10 +2321,6 @@ msgstr "" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2409,16 +2391,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "" @@ -2570,6 +2542,10 @@ msgstr "" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "" @@ -2627,7 +2603,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2635,7 +2613,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2734,12 +2714,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2810,6 +2784,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2871,7 +2849,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -2958,14 +2936,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -2974,18 +2944,6 @@ msgstr "" msgid "Enables minimap." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3002,12 +2960,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3019,7 +2971,7 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp @@ -3320,10 +3272,6 @@ msgstr "" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3378,8 +3326,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3845,6 +3793,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -3924,6 +3876,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4023,6 +3982,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4580,10 +4546,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4597,6 +4559,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "" @@ -4761,7 +4731,7 @@ msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -4809,6 +4779,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5038,14 +5015,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5071,10 +5040,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5100,34 +5065,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5193,6 +5130,14 @@ msgstr "" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5348,10 +5293,6 @@ msgstr "" msgid "Right key" msgstr "" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5603,6 +5544,16 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5732,10 +5683,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5829,6 +5776,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5888,8 +5839,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -5913,6 +5864,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -5921,9 +5878,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6058,6 +6014,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6260,6 +6227,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6382,6 +6355,24 @@ msgstr "" msgid "Y-level of seabed." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6393,3 +6384,6 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL timeout" msgstr "" + +#~ msgid "View" +#~ msgstr "Pogled" diff --git a/po/sv/minetest.po b/po/sv/minetest.po index 1b1f1f698..e608d85e2 100644 --- a/po/sv/minetest.po +++ b/po/sv/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Swedish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-03-31 10:14+0000\n" "Last-Translator: sfan5 \n" "Language-Team: Swedish 0." @@ -6688,9 +6677,54 @@ msgstr "cURL-timeout" #~ "Definierar områden för luftöars jämna terräng.\n" #~ "Jämna luftöar förekommer när oljud > 0." -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-nivå till vilket luftöars skuggor når." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definierar samplingssteg av textur.\n" +#~ "Högre värden resulterar i jämnare normalmappning." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Laddar ner och installerar $1, vänligen vänta..." + +#~ msgid "Main" +#~ msgstr "Huvudsaklig" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Huvudmeny" + +#~ msgid "Name/Password" +#~ msgstr "Namn/Lösenord" + +#~ msgid "No" +#~ msgstr "Nej" + +#~ msgid "Ok" +#~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parrallax Ocklusion" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parrallax Ocklusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Starta om enspelarvärld" #, fuzzy #~ msgid "Select Package File:" #~ msgstr "Välj modfil:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Starta Enspelarläge" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Slå av/på Filmisk Kamera" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-nivå till vilket luftöars skuggor når." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/sw/minetest.po b/po/sw/minetest.po index 1cad7f456..d0fffcb91 100644 --- a/po/sw/minetest.po +++ b/po/sw/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Swahili (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: Swahili \n" "Language-Team: Thai \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Oğuz Ersen \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -12,7 +12,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Yeniden Canlan" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Öldün" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -38,10 +46,6 @@ msgstr "Bağlan" msgid "The server has requested a reconnect:" msgstr "Bu sunucu yeniden bağlanma isteğinde bulundu:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Yükleniyor..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokol sürümü uyumsuz. " @@ -54,12 +58,6 @@ msgstr "Sunucu protokol sürümü $1 istiyor. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Bu sunucu $1 ve $2 arası tüm protokol sürümlerini destekler. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Açık sunucu listesini tekrar etkinleştirmeyi deneyin ve internet " -"bağlantınızı doğrulayın." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Yalnızca $1 protokol sürümü desteklenmektedir." @@ -68,7 +66,8 @@ msgstr "Yalnızca $1 protokol sürümü desteklenmektedir." msgid "We support protocol versions between version $1 and $2." msgstr "Yalnızca $1 ve $2 arası protokol sürümleri desteklenmektedir." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -78,7 +77,8 @@ msgstr "Yalnızca $1 ve $2 arası protokol sürümleri desteklenmektedir." msgid "Cancel" msgstr "İptal" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Bağımlılıklar:" @@ -151,14 +151,54 @@ msgstr "Dünya:" msgid "enabled" msgstr "etkin" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" zaten var.Değiştirilsin mi?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "$ 1 ve $ 2 destek dosyaları yüklenecek." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 'e $2" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" +"$1 indiriliyor,\n" +"$2 sırada" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 indiriliyor..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 için destek dosyaları bulanamadı." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 indirilecek, ve $2 destek dosyaları atlanacak." + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Tüm paketler" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Zaten kuruldu" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Ana Menüye Dön" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Base Game:" +msgstr "Yerel oyun:" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "Minetest cURL'siz derlediğinde ContentDB kullanılamaz" @@ -180,6 +220,14 @@ msgstr "Oyunlar" msgid "Install" msgstr "Kur" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "$1 kur" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install missing dependencies" +msgstr "Eksik bağımlılıkları kur" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -194,9 +242,24 @@ msgid "No results" msgstr "Sonuç yok" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Ara" +msgid "No updates" +msgstr "Güncelleme yok" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Bulunamadı" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Üzerine yaz" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Lütfen asıl oyunun doğru olup olmadığını gözden geçirin." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Sıraya alındı" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -211,8 +274,12 @@ msgid "Update" msgstr "Güncelle" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Görüntüle" +msgid "Update All [$1]" +msgstr "Hepsini güncelle [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Tarayıcı'da daha fazla bilgi edinin" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -465,11 +532,6 @@ msgstr "< Ayarlar sayfasına geri dön" msgid "Browse" msgstr "Gözat" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "İstemci" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Devre dışı" @@ -514,6 +576,10 @@ msgstr "Öntanımlıyı Geri Yükle" msgid "Scale" msgstr "Boyut" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Ara" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Dizin seç" @@ -629,6 +695,21 @@ msgstr "Bir mod bir $1 olarak kurulamadı" msgid "Unable to install a modpack as a $1" msgstr "Bir mod paketi bir $1 olarak kurulamadı" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Yükleniyor..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "İstemci tarafı betik devre dışı" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Açık sunucu listesini tekrar etkinleştirmeyi deneyin ve internet " +"bağlantınızı doğrulayın." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Çevrim içi içeriğe göz at" @@ -682,8 +763,16 @@ msgid "Credits" msgstr "Hakkında" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +msgid "Open User Data Directory" +msgstr "Kullanıcı Veri Dizinini Aç" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" +"Bir dosya yöneticisi / gezgininde kullanıcı tarafından sağlanan dünyaları,\n" +"oyunları, modları ve doku paketlerini içeren dizini açar." #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" @@ -702,14 +791,10 @@ msgid "Bind Address" msgstr "Bağlı Adres" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Yapılandır" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Yaratıcı Kip" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Hasar Etkin" @@ -726,8 +811,8 @@ msgid "Install games from ContentDB" msgstr "ContentDB'den oyunlar yükle" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Ad/Şifre" +msgid "Name" +msgstr "Ad" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -737,6 +822,10 @@ msgstr "Yeni" msgid "No world created or selected!" msgstr "Dünya seçilmedi ya da yaratılmadı!" +#: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Parola" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Oyunu Oyna" @@ -745,6 +834,10 @@ msgstr "Oyunu Oyna" msgid "Port" msgstr "Port" +#: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Mod seçin" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Dünya Seç:" @@ -761,23 +854,23 @@ msgstr "Oyun Başlat" msgid "Address / Port" msgstr "Adres / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Bağlan" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Yaratıcı kip" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Hasar etkin" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Favoriyi Sil" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favori" @@ -785,16 +878,16 @@ msgstr "Favori" msgid "Join Game" msgstr "Oyuna Katıl" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" -msgstr "Ad / Şifre" +msgstr "Ad / Parola" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Savaş etkin" @@ -822,10 +915,6 @@ msgstr "Tüm Ayarlar" msgid "Antialiasing:" msgstr "Düzgünleştirme:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Tek oyunculu dünyayı sıfırlamak istediğinizden emin misiniz ?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Ekran Boyutunu Hatırla" @@ -834,10 +923,6 @@ msgstr "Ekran Boyutunu Hatırla" msgid "Bilinear Filter" msgstr "Bilineer Filtre" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Tümsek Eşleme" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Tuşları değiştir" @@ -850,10 +935,6 @@ msgstr "Bitişik Cam" msgid "Fancy Leaves" msgstr "Şık Yapraklar" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Normal Eşlemeleri Üret" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mip eşleme" @@ -862,10 +943,6 @@ msgstr "Mip eşleme" msgid "Mipmap + Aniso. Filter" msgstr "Mip eşleme + Aniso. Filtre" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Hayır" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Filtre yok" @@ -894,18 +971,10 @@ msgstr "Opak Yapraklar" msgid "Opaque Water" msgstr "Opak Su" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Paralaks Oklüzyon" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Parçacıklar" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Tek oyunculu dünyayı sıfırla" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Ekran:" @@ -918,6 +987,10 @@ msgstr "Ayarlar" msgid "Shaders" msgstr "Gölgelemeler" +#: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Gölgelendirme (deneysel)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Gölgelemeler (kullanılamaz)" @@ -962,22 +1035,6 @@ msgstr "Dalgalanan Sıvılar" msgid "Waving Plants" msgstr "Dalgalanan Bitkiler" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Evet" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Modları yapılandır" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Ana" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Tek oyunculu başlat" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Bağlantı zaman aşımına uğradı." @@ -1032,7 +1089,7 @@ msgstr "Lütfen bir ad seçin!" #: src/client/clientlauncher.cpp msgid "Provided password file failed to open: " -msgstr "Sağlanan şifre dosyası açılamadı: " +msgstr "Sağlanan parola dosyası açılamadı: " #: src/client/clientlauncher.cpp msgid "Provided world path doesn't exist: " @@ -1109,7 +1166,7 @@ msgstr "Kamera güncelleme etkin" #: src/client/game.cpp msgid "Change Password" -msgstr "Şifre değiştir" +msgstr "Parola değiştir" #: src/client/game.cpp msgid "Cinematic mode disabled" @@ -1132,25 +1189,22 @@ msgid "Continue" msgstr "Devam et" #: src/client/game.cpp -#, fuzzy, c-format +#, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Kontroller:\n" "- %s: ileri hareket\n" @@ -1158,12 +1212,12 @@ msgstr "" "- %s: sola hareket\n" "- %s: sağa hareket\n" "- %s: zıpla/tırman\n" +"- %s: kaz/vur\n" +"- %s: yerleştir/kullan\n" "- %s: sız/aşağı in\n" "- %s: ögeyi at\n" "- %s: envanter\n" "- Fare: dön/bak\n" -"- Sol fare: kaz/vur\n" -"- Sağ fare: yerleştir/kullan\n" "- Fare tekerleği: öge seç\n" "- %s: sohbet\n" @@ -1263,16 +1317,6 @@ msgstr "Sis devre dışı" msgid "Fog enabled" msgstr "Sis etkin" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Sis devre dışı" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Sis etkin" - #: src/client/game.cpp msgid "Game info:" msgstr "Oyun Bilgisi:" @@ -1293,16 +1337,6 @@ msgstr "Öge tanımları..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Sis devre dışı" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Hasar etkin" - #: src/client/game.cpp msgid "Media..." msgstr "Medya..." @@ -1315,34 +1349,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "Mini harita şu anda, oyun veya mod tarafından devre dışı" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Mini harita gizli" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Radar kipinde mini harita, Yakınlaştırma x1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Radar kipinde mini harita, Yakınlaştırma x2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Radar kipinde mini harita, Yakınlaştırma x4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Yüzey kipinde mini harita, Yakınlaştırma x1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Yüzey kipinde mini harita, Yakınlaştırma x2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Yüzey kipinde mini harita, Yakınlaştırma x4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Hayalet kipi devre dışı" @@ -1387,10 +1393,6 @@ msgstr "Uzak sunucu" msgid "Resolving address..." msgstr "Adres çözümleniyor..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Yeniden Canlan" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Kapatılıyor..." @@ -1443,10 +1445,6 @@ msgstr "Ses %d/100'e değişti" msgid "Wireframe shown" msgstr "Telkafes gösteriliyor" -#: src/client/game.cpp -msgid "You died" -msgstr "Öldün" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Yakınlaştırma şu anda oyun veya mod tarafından devre dışı" @@ -1463,16 +1461,6 @@ msgstr "Sohbet gizli" msgid "Chat shown" msgstr "Sohbet gösteriliyor" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Sohbet gizli" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Sohbet gösteriliyor" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD gizli" @@ -1753,9 +1741,27 @@ msgstr "X Düğme 2" msgid "Zoom" msgstr "Yakınlaştır" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Mini harita gizli" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Radar kipinde mini harita, Yakınlaştırma x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Yüzey kipinde mini harita, Yakınlaştırma x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Doku kipinde mini harita" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" -msgstr "Şifreler aynı değil!" +msgstr "Parolalar eşleşmiyor!" #: src/gui/guiConfirmRegistration.cpp msgid "Register and Join" @@ -1773,7 +1779,7 @@ msgstr "" "Bu sunucuya \"%s\" adıyla ilk kez katılmak üzeresiniz.\n" "Devam ederseniz, kimlik bilgilerinizi kullanarak yeni bir hesap bu sunucuda " "oluşturulur.\n" -"Lütfen şifrenizi tekrar yazın ve hesap oluşturmayı onaylamak için 'Kayıt Ol " +"Lütfen parolanızı tekrar yazın ve hesap oluşturmayı onaylamak için 'Kayıt Ol " "ve Katıl' düğmesini tıklayın veya iptal etmek için 'İptal'i tıklayın." #: src/gui/guiFormSpecMenu.cpp @@ -1796,26 +1802,6 @@ msgstr "Kendiliğinden zıplama" msgid "Backward" msgstr "Geri" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Kamera değiştir" @@ -1908,30 +1894,10 @@ msgstr "Sız" msgid "Special" msgstr "Özel" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Özel" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Sinematik Aç/Kapa" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Sinematik Aç/Kapa" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "HUD'ı aç/kapa" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Uçmayı aç/kapa" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "Sohbet günlüğünü aç/kapa" @@ -1970,15 +1936,15 @@ msgstr "Değiştir" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "Şifreyi Doğrulayın" +msgstr "Parolayı Doğrula" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "Yeni Şifre" +msgstr "Yeni Parola" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "Eski Şifre" +msgstr "Eski Parola" #: src/gui/guiVolumeChange.cpp msgid "Exit" @@ -2061,14 +2027,6 @@ msgstr "" "Öntanımlı, bir ada için uygun olan bir dikey-basık şekil\n" "içindir, kaba şekil için 3 sayıyı da eşit ayarlayın." -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = eğim bilgili paralaks oklüzyon (daha hızlı).\n" -"1 = kabartma eşleme (daha yavaş, daha doğru)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Sırt dağların şeklini/boyutunu denetleyen 2D gürültü." @@ -2195,6 +2153,10 @@ msgstr "Sunucu kapatıldığında tüm istemcilere görüntülenecek bir ileti." msgid "ABM interval" msgstr "ABM aralığı" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "ABM zаman gideri" + #: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" msgstr "Emerge için sıralanmış blokların mutlak sınırı" @@ -2455,10 +2417,6 @@ msgstr "Oyuncu içinde inşa" msgid "Builtin" msgstr "Yerleşik" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Tümsek eşleme" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2537,21 +2495,6 @@ msgstr "" "Işık eğrisi artırma aralığının merkezi.\n" "0.0 minimum, 1.0 maksimum ışık seviyesidir." -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Ana Menü arayüzünü değiştirir:\n" -"- Full: Çoklu tek oyunculu dünyalar, oyun seçimi, doku paketi seçici, " -"vb.\n" -"- Simple: Bir tek oyunculu dünya, oyun veya doku paketi seçiciler yok.\n" -"Küçük ekranlar için gerekli olabilir." - #: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Sohbet yazı tipi boyutu" @@ -2715,6 +2658,10 @@ msgstr "Konsol yüksekliği" msgid "ContentDB Flag Blacklist" msgstr "ContentDB: Kara Liste" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "ContentDB aşırı eşzamanlı indirmeler" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "ContentDB URL" @@ -2782,16 +2729,24 @@ msgid "Crosshair alpha" msgstr "Artı saydamlığı" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Artı saydamlığı (solukluk, 0 ile 255 arasında)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Artı saydamlığı (solukluk, 0 ile 255 arasında).\n" +"Ayrıca nesne artı rengini de denetler" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Artı rengi" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Artı rengi (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Artı rengi (R,G,B).\n" +"Ayrıca nesne artı rengini de değiştirir" #: src/settings_translation_file.cpp msgid "DPI" @@ -2843,7 +2798,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Default password" -msgstr "Öntanımlı şifre" +msgstr "Öntanımlı parola" #: src/settings_translation_file.cpp msgid "Default privileges" @@ -2895,14 +2850,6 @@ msgstr "Geniş çaplı nehir kanal yapısını belirler." msgid "Defines location and terrain of optional hills and lakes." msgstr "İsteğe bağlı tepelerin ve göllerin konumunu ve arazisini belirler." -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Dokuların örnekleme adımını tanımlar.\n" -"Yüksek bir değer daha yumuşak normal eşlemeler verir." - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Taban yer seviyesini belirler." @@ -2983,6 +2930,10 @@ msgstr "" msgid "Desynchronize block animation" msgstr "Blok animasyonlarını eşzamansız yap" +#: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Kazma tuşu" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Kazı parçacıkları" @@ -2993,7 +2944,7 @@ msgstr "Hile önleme devre dışı" #: src/settings_translation_file.cpp msgid "Disallow empty passwords" -msgstr "Boş şifrelere izin verme" +msgstr "Boş parolalara izin verme" #: src/settings_translation_file.cpp msgid "Domain name of server, to be displayed in the serverlist." @@ -3048,7 +2999,8 @@ msgid "Enable console window" msgstr "Konsol penceresini etkinleştir" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Yeni yaratılan haritalar için yaratıcı kipi etkinleştir." #: src/settings_translation_file.cpp @@ -3157,18 +3109,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "Envanter ögelerinin animasyonunu etkinleştirir." -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Tümsek eşlemeyi dokular için etkinleştirir. Normal eşlemelerin doku paketi " -"tarafından sağlanması\n" -"veya kendiliğinden üretilmesi gerekir\n" -"Gölgelemelerin etkin olmasını gerektirir." - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Yüz yönü döndürülmüş kafeslerin önbelleklenmesini etkinleştirir." @@ -3177,22 +3117,6 @@ msgstr "Yüz yönü döndürülmüş kafeslerin önbelleklenmesini etkinleştiri msgid "Enables minimap." msgstr "Mini haritayı etkinleştirir." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Çalışma anı dikey eşleme üretimini (kabartma efekti) etkinleştirir.\n" -"Tümsek eşlemenin etkin olmasını gerektirir." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Paralaks oklüzyon eşlemeyi etkinleştirir.\n" -"Gölgelemelerin etkin olmasını gerektirir." - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3213,14 +3137,6 @@ msgstr "Motor profilleme veri yazdırma aralığı" msgid "Entity methods" msgstr "Varlık yöntemleri" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Deneysel seçenek, 0'dan daha büyük bir sayıya ayarlandığında\n" -"bloklar arasında görünür boşluklara neden olabilir." - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3239,8 +3155,8 @@ msgstr "" "seviyesi oluşturur: katı bir yüzenkara katmanı için uygundur." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "Duraklat menüsünde FPS" +msgid "FPS when unfocused or paused" +msgstr "Odaklanmadığında veya duraklatıldığında FPS" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3566,10 +3482,6 @@ msgstr "Arayüz boyutlandırma filtresi" msgid "GUI scaling filter txr2img" msgstr "Arayüz boyutlandırma filtresi txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Normal eşlemeleri üret" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Genel geri çağrılar" @@ -3632,15 +3544,15 @@ msgstr "HUD açma/kapama tuşu" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" -"Kullanım dışı lua API çağrılarının ele alınması:\n" -"- legacy: (eski) Eski davranış taklit etmeye çalışır (öntanımlı).\n" -"- log: (günlük) kullanım dışı çağrıları taklit eder ve günlükler (hata " -"ayıklama için öntanımlı).\n" -"- error: (hata) kullanım dışı çağrıların kullanımını iptal eder (mod " +"Kullanım dışı Lua API çağrılarının ele alınması:\n" +"- none: (yok) kullanım dışı çağrıları günlüğe kaydetmez.\n" +"- log: (günlük) kullanım dışı çağrıları taklit eder ve geri izlemesini " +"günlüğe kaydeder (öntanımlı).\n" +"- error: (hata) kullanım dışı çağrılar kullanıldığında iptal eder (mod " "geliştiricileri için önerilen)." #: src/settings_translation_file.cpp @@ -3996,7 +3908,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "If enabled, new players cannot join with an empty password." -msgstr "Etkinleştirilirse, yeni oyuncular boş bir şifre ile katılamaz." +msgstr "Etkinleştirilirse, yeni oyuncular boş bir parola ile katılamaz." #: src/settings_translation_file.cpp msgid "" @@ -4163,6 +4075,10 @@ msgstr "Joystick ID" msgid "Joystick button repetition interval" msgstr "Joystick düğmesi tekrarlama aralığı" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Joystick ölü bölgesi" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Joystick frustum duyarlılığı" @@ -4265,6 +4181,16 @@ msgstr "" "Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Kazma tuşu.\n" +"Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4407,6 +4333,16 @@ msgstr "" "Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Yerleştirme tuşu.\n" +"Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5152,10 +5088,6 @@ msgstr "Yüzenkaraların alt Y sınırı." msgid "Main menu script" msgstr "Ana menü betiği" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Ana menü stili" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5173,6 +5105,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "Tüm sıvıları opak yapar" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Hafıza deposu için harita sıkıştırma düzeyi" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Ağ aktarma hızı için harita sıkıştırma düzeyi" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Harita dizini" @@ -5357,8 +5297,8 @@ msgid "Maximum FPS" msgstr "Maksimum FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Oyun duraklatıldığında maksimum FPS." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "Pencere odaklanmadığında veya oyun duraklatıldığında en yüksek FPS." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5414,6 +5354,16 @@ msgstr "" "Bir dosyadan yüklenmesi için sıraya koyulacak maksimum blok sayısı.\n" "Bu sınır her oyuncu için zorunlu kılınır." +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"En yüksek eşzamanlı indirme sayısı.Bu sınırı aşan indirmeler sıraya " +"alınacaktır.\n" +"Bu curl_parallel_limit den daha az olmalıdır." + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Zorla yüklenen harita bloklarının maksimum sayısı." @@ -5645,7 +5595,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "New users need to input this password." -msgstr "Yeni kullanıcıların bu şifreyi girmesi gerekir." +msgstr "Yeni kullanıcıların bu parolayı girmesi gerekir." #: src/settings_translation_file.cpp msgid "Noclip" @@ -5667,14 +5617,6 @@ msgstr "NodeTimer aralığı" msgid "Noises" msgstr "Gürültüler" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Normal eşleme örnekleme" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Normal eşleme gücü" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Emerge iş sayısı" @@ -5714,10 +5656,6 @@ msgstr "" "Bu sqlite işlem yükü ve bellek tüketimi (4096=100MB)\n" "arasında bir dengedir." -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Paralaks oklüzyon yineleme sayısı." - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Çevrimiçi İçerik Deposu" @@ -5748,34 +5686,6 @@ msgstr "" "Pencere odağı kaybolduğunda duraklat menüsünü aç. Bir formspec açıksa\n" "duraklamaz." -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Paralaks oklüzyon efektinin genel sapması, genellikle boyut/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Paralaks oklüzyon efektinin genel boyutu." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Paralaks oklüzyon" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Paralaks oklüzyon sapması" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Paralaks oklüzyon yinelemesi" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Paralaks oklüzyon kipi" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Paralaks oklüzyon boyutu" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5858,6 +5768,14 @@ msgstr "Eğim hareket tuşu" msgid "Pitch move mode" msgstr "Eğim hareket kipi" +#: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Yerleştirme tuşu" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Yerleştirme tekrarlama aralığı" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -6042,10 +5960,6 @@ msgstr "Sırt dağ boyut gürültüsü" msgid "Right key" msgstr "Sağ tuş" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Sağ tık tekrarlama aralığı" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Nehir kanal derinliği" @@ -6341,6 +6255,19 @@ msgstr "Hata ayıklama bilgisini göster" msgid "Show entity selection boxes" msgstr "Varlık seçim kutularını göster" +#: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Varlık seçim kutularını göster.\n" +"Bunu değiştirdikten sonra yeniden başlatma gerekir." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Öntanımlı kalın yazı tipi" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Kapatma iletisi" @@ -6492,10 +6419,6 @@ msgstr "Step dağ yayılma gürültüsü" msgid "Strength of 3D mode parallax." msgstr "3D kipi paralaksın gücü." -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Üretilen normal eşlemelerin gücü." - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6616,6 +6539,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "İçerik deposu için URL" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "Joystick ölü bölgesi" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6693,14 +6620,16 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" "Irrlicht için işleme arka ucu.\n" -"Bunu değiştirdikten sonra tekrar başlatma gerekir.\n" -"Not: Android'de, emin değilseniz OGLES1 kullanın! Başka türlü, uygulama\n" -"başlayamayabilir. Diğer platformlarda, OpenGL önerilir ve şu anda gölgeleme\n" -"desteği olan tek sürücüdür." +"Bunu değiştirdikten sonra yeniden başlatma gerekir.\n" +"Not: Android'de, emin değilseniz OGLES1 kullanın! Başka türlü, uygulama " +"başlayamayabilir.\n" +"Diğer platformlarda, OpenGL önerilir.\n" +"Gölgelendiriciler OpenGL (yalnızca masaüstü) ve OGLES2 (deneysel) tarafından " +"desteklenmektedir" #: src/settings_translation_file.cpp msgid "" @@ -6734,6 +6663,14 @@ msgstr "" "cinsinden)\n" "0 değeri bu özelliği devre dışı bırakır." +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" +"ABM'lerin her adımda yürütülmesi için izin verilen zaman gideri\n" +"(ABM aralığının bir parçası olarak)" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6744,13 +6681,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" -"Sağ fare tuşuna basılı tutarken tekrar eden sağ tıklar arasında saniye " -"cinsinden\n" -"geçen süre." +"Yerleştirme tuşuna basılı tutarken tekrarlanan düğüm yerleşimleri arasında " +"geçen\n" +"saniye cinsinden süre." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6908,6 +6844,25 @@ msgstr "" "çözünürlüklü bir doku paketi kullanırken, performans biraz artabilir.\n" "Gamma doğruluklu küçültme desteklenmez." +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Öbek/Küme kenarlarını düzeltmek için çok örnekli düzgünleştirmeyi(anti-" +"aliasing) kullanın.\n" +"Bu işlem görüntüyü keskinleştirirken 3 boyutlu görüş alanını düzeltir.\n" +"ama doku(texture) içindeki görüntüyü etkilemez.\n" +"(Saydam dokularda etkisi daha belirgindir)\n" +"Gölgelendirme kapalı ise düğüm arası(nod) boşluk görülür.\n" +"0'da ise düzgünleştirme kapalıdır.\n" +"Ayarları değiştirdikten sonra yenileme gereklidir." + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Dokuları boyutlandırırken trilineer filtreleme kullan." @@ -7145,6 +7100,12 @@ msgstr "" "derlenmiş olmalıdır.\n" "Devre dışı kılınırsa, yerine bitmap ve XML vektör yazı tipleri kullanılır." +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7301,6 +7262,35 @@ msgstr "Daha alt arazinin ve göl yatağının Y-seviyesi." msgid "Y-level of seabed." msgstr "Deniz yatağının Y-seviyesi." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Harita kütlerini diske kaydederken kullanılacak ZLib sıkıştırma düzeyi.\n" +"-1 - Zlib'in varsayılan sıkıştırma düzeyi\n" +"0 - hiçbir sıkıştırma yok, en hızlı\n" +"9 - en iyi sıkıştırma, en yavaş\n" +"(seviye 1-3, Zlib'in \"hızlı\" , 4-9 sıradan yöntemi kullanır)" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Harita kütlerini istemciye(client) gönderirken kullanılacak ZLib sıkıştırma " +"düzeyi.\n" +"-1 - Zlib'in varsayılan sıkıştırma düzeyi\n" +"0 - hiçbir sıkıştırma yok, en hızlı\n" +"9 - en iyi sıkıştırma, en yavaş\n" +"(seviye 1-3, Zlib'in \"hızlı\" , 4-9 sıradan yöntemi kullanır)" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL dosya indirme zaman aşımı" @@ -7313,23 +7303,12 @@ msgstr "cURL paralel sınırı" msgid "cURL timeout" msgstr "cURL zaman aşımı" -#~ msgid "Ok" -#~ msgstr "Tamam" - -#~ msgid "Back" -#~ msgstr "Geri" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Diskte emerge sıralarının sınırı" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "Paralaks oklüzyon gücü" - -#~ msgid "Path to save screenshots at." -#~ msgstr "Ekran yakalamaların kaydedileceği konum." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = eğim bilgili paralaks oklüzyon (daha hızlı).\n" +#~ "1 = kabartma eşleme (daha yavaş, daha doğru)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7345,9 +7324,41 @@ msgstr "cURL zaman aşımı" #~ "Dağ-türü yüzerkaraların orta noktanın üstünde ve altında nasıl " #~ "konikleştiğini değiştirir." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Tek oyunculu dünyayı sıfırlamak istediğinizden emin misiniz ?" + +#~ msgid "Back" +#~ msgstr "Geri" + +#~ msgid "Bump Mapping" +#~ msgstr "Tümsek Eşleme" + +#~ msgid "Bumpmapping" +#~ msgstr "Tümsek eşleme" + #~ msgid "Center of light curve mid-boost." #~ msgstr "Işık eğrisi orta-artırmanın merkezi." +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Ana Menü arayüzünü değiştirir:\n" +#~ "- Full: Çoklu tek oyunculu dünyalar, oyun seçimi, doku paketi seçici, " +#~ "vb.\n" +#~ "- Simple: Bir tek oyunculu dünya, oyun veya doku paketi seçiciler yok.\n" +#~ "Küçük ekranlar için gerekli olabilir." + +#~ msgid "Config mods" +#~ msgstr "Modları yapılandır" + +#~ msgid "Configure" +#~ msgstr "Yapılandır" + #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" #~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." @@ -7360,6 +7371,9 @@ msgstr "cURL zaman aşımı" #~ "Tünellerin genişliğini denetler, daha küçük bir değer daha geniş tüneller " #~ "yaratır." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Artı rengi (R,G,B)." + #~ msgid "Darkness sharpness" #~ msgstr "Karanlık keskinliği" @@ -7370,6 +7384,13 @@ msgstr "cURL zaman aşımı" #~ "Yüzenkara düz arazilerin alanlarını belirler.\n" #~ "Gürültü > 0 iken düz yüzenkaralar oluşur." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Dokuların örnekleme adımını tanımlar.\n" +#~ "Yüksek bir değer daha yumuşak normal eşlemeler verir." + #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " #~ "instead.\n" @@ -7379,12 +7400,50 @@ msgstr "cURL zaman aşımı" #~ "sıvılarını tanımlayın ve bulun.\n" #~ "Büyük mağaralarda lav üst sınırının Y'si." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..." + #~ msgid "Enable VBO" #~ msgstr "VBO'yu etkinleştir" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Tümsek eşlemeyi dokular için etkinleştirir. Normal eşlemelerin doku " +#~ "paketi tarafından sağlanması\n" +#~ "veya kendiliğinden üretilmesi gerekir\n" +#~ "Gölgelemelerin etkin olmasını gerektirir." + #~ msgid "Enables filmic tone mapping" #~ msgstr "Filmsel ton eşlemeyi etkinleştirir" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Çalışma anı dikey eşleme üretimini (kabartma efekti) etkinleştirir.\n" +#~ "Tümsek eşlemenin etkin olmasını gerektirir." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Paralaks oklüzyon eşlemeyi etkinleştirir.\n" +#~ "Gölgelemelerin etkin olmasını gerektirir." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Deneysel seçenek, 0'dan daha büyük bir sayıya ayarlandığında\n" +#~ "bloklar arasında görünür boşluklara neden olabilir." + +#~ msgid "FPS in pause menu" +#~ msgstr "Duraklat menüsünde FPS" + #~ msgid "Floatland base height noise" #~ msgstr "Yüzenkara taban yükseklik gürültüsü" @@ -7397,6 +7456,12 @@ msgstr "cURL zaman aşımı" #~ msgid "Gamma" #~ msgstr "Gama" +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal Eşlemeleri Üret" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normal eşlemeleri üret" + #~ msgid "IPv6 support." #~ msgstr "IPv6 desteği." @@ -7406,18 +7471,105 @@ msgstr "cURL zaman aşımı" #~ msgid "Lightness sharpness" #~ msgstr "Aydınlık keskinliği" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Diskte emerge sıralarının sınırı" + +#~ msgid "Main" +#~ msgstr "Ana" + +#~ msgid "Main menu style" +#~ msgstr "Ana menü stili" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Radar kipinde mini harita, Yakınlaştırma x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Radar kipinde mini harita, Yakınlaştırma x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Yüzey kipinde mini harita, Yakınlaştırma x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Yüzey kipinde mini harita, Yakınlaştırma x4" + +#~ msgid "Name/Password" +#~ msgstr "Ad/Şifre" + +#~ msgid "No" +#~ msgstr "Hayır" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normal eşleme örnekleme" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normal eşleme gücü" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Paralaks oklüzyon yineleme sayısı." + +#~ msgid "Ok" +#~ msgstr "Tamam" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Paralaks oklüzyon efektinin genel sapması, genellikle boyut/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Paralaks oklüzyon efektinin genel boyutu." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaks Oklüzyon" + +#~ msgid "Parallax occlusion" +#~ msgstr "Paralaks oklüzyon" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Paralaks oklüzyon sapması" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Paralaks oklüzyon yinelemesi" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Paralaks oklüzyon kipi" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Paralaks oklüzyon boyutu" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Paralaks oklüzyon gücü" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "TrueTypeFont veya bitmap konumu." +#~ msgid "Path to save screenshots at." +#~ msgstr "Ekran yakalamaların kaydedileceği konum." + +#~ msgid "Projecting dungeons" +#~ msgstr "İzdüşüm zindanlar" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Tek oyunculu dünyayı sıfırla" + +#~ msgid "Select Package File:" +#~ msgstr "Paket Dosyası Seç:" + #~ msgid "Shadow limit" #~ msgstr "Gölge sınırı" +#~ msgid "Start Singleplayer" +#~ msgstr "Tek oyunculu başlat" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Üretilen normal eşlemelerin gücü." + #~ msgid "Strength of light curve mid-boost." #~ msgstr "Işık eğrisi orta-artırmanın kuvveti." #~ msgid "This font will be used for certain languages." #~ msgstr "Belirli diller için bu yazı tipi kullanılacak." +#~ msgid "Toggle Cinematic" +#~ msgstr "Sinematik Aç/Kapa" + #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" @@ -7428,26 +7580,26 @@ msgstr "cURL zaman aşımı" #~ msgstr "" #~ "Tepe yüksekliğinin ve göl derinliğinin yüzenkara düz arazide değişimi." +#~ msgid "View" +#~ msgstr "Görüntüle" + +#~ msgid "Waving Water" +#~ msgstr "Dalgalanan Su" + #~ msgid "Waving water" #~ msgstr "Dalgalanan su" +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Zindanların bazen araziden yansıyıp yansımayacağı." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Büyük mağaralardaki lavın üst sınırının Y'si." + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "Yüzenkara orta noktasının ve göl yüzeyinin Y-seviyesi." #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "Yüzenkara gölgelerinin uzanacağı Y-seviyesi." -#~ msgid "Projecting dungeons" -#~ msgstr "İzdüşüm zindanlar" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Zindanların bazen araziden yansıyıp yansımayacağı." - -#~ msgid "Waving Water" -#~ msgstr "Dalgalanan Su" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Büyük mağaralardaki lavın üst sınırının Y'si." - -#~ msgid "Select Package File:" -#~ msgstr "Paket Dosyası Seç:" +#~ msgid "Yes" +#~ msgstr "Evet" diff --git a/po/uk/minetest.po b/po/uk/minetest.po index bc48d4643..81b100511 100644 --- a/po/uk/minetest.po +++ b/po/uk/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-06-26 10:41+0000\n" -"Last-Translator: Maksim Gamarnik \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-10-25 19:26+0000\n" +"Last-Translator: Nick Naumenko \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -13,7 +13,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "Переродитися" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "Ви загинули" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" @@ -39,10 +47,6 @@ msgstr "Повторне підключення" msgid "The server has requested a reconnect:" msgstr "Сервер запросив перез'єднання:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Завантаження..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Версія протоколу не співпадає. " @@ -55,12 +59,6 @@ msgstr "Сервер працює за протоколом версії $1. " msgid "Server supports protocol versions between $1 and $2. " msgstr "Сервер підтримує версії протоколу між $1 і $2. " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Спробуйте оновити список публічних серверів та перевірте своє Інтернет-" -"з'єднання." - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Ми підтримуємо тільки протокол версії $1." @@ -69,7 +67,8 @@ msgstr "Ми підтримуємо тільки протокол версії $ msgid "We support protocol versions between version $1 and $2." msgstr "Ми підтримуємо протокол між версіями $1 і $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -79,7 +78,8 @@ msgstr "Ми підтримуємо протокол між версіями $1 msgid "Cancel" msgstr "Скасувати" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Залежить від:" @@ -109,7 +109,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "Знайти Більше Модів" +msgstr "Знайти більше модів" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -152,14 +152,55 @@ msgstr "Світ:" msgid "enabled" msgstr "увімкнено" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "Завантаження..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Всі пакунки" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Клавіша вже використовується" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Назад в Головне Меню" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Грати (сервер)" + #: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB не є доступним коли Minetest не містить підтримку cURL" @@ -181,6 +222,16 @@ msgstr "Ігри" msgid "Install" msgstr "Встановити" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Встановити" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Необов'язкові залежності:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -195,9 +246,25 @@ msgid "No results" msgstr "Нічого не знайдено" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Пошук" +#, fuzzy +msgid "No updates" +msgstr "Оновити" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -212,8 +279,12 @@ msgid "Update" msgstr "Оновити" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Вид" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -252,9 +323,8 @@ msgid "Create" msgstr "Створити" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "Інформація" +msgstr "Декорації" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -366,6 +436,8 @@ msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" msgstr "" +"Споруди, що з’являються на місцевості (не впливає на дерева та траву " +"джунглів створені у v6)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" @@ -381,24 +453,23 @@ msgstr "Помірного Поясу, Пустелі, Джунглі" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "Помірний, пустеля, джунглі, тундра, тайга" #: builtin/mainmenu/dlg_create_world.lua msgid "Terrain surface erosion" -msgstr "" +msgstr "Ерозія поверхні місцевості" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "Дерева та трава джунглів" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "Глибина великих печер" +msgstr "Змінювати глибину річок" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "Дуже великі печери глибоко під землею" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -453,7 +524,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" -msgstr "(пояснення відсутнє)" +msgstr "(пояснення налаштування відсутнє)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" @@ -467,11 +538,6 @@ msgstr "< Назад до Налаштувань" msgid "Browse" msgstr "Переглянути" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "Клієнт" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "Вимкнено" @@ -502,23 +568,27 @@ msgstr "Постійність" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid integer." -msgstr "Будь-ласка введіть дійсне ціле число." +msgstr "Будь-ласка введіть коректне ціле число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Please enter a valid number." -msgstr "Будь-ласка введіть дійсне число." +msgstr "Будь-ласка введіть коректне число." #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Restore Default" -msgstr "Відновити як було" +msgstr "Відновити за замовченням" #: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp msgid "Scale" msgstr "Шкала" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Пошук" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "Виберіть папку" +msgstr "Виберіть директорію" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select file" @@ -542,7 +612,7 @@ msgstr "Х" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "X spread" -msgstr "Розкидання по X" +msgstr "Поширення по X" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y" @@ -550,7 +620,7 @@ msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "Розкидання по Y" +msgstr "Поширення по Y" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" @@ -558,7 +628,7 @@ msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z spread" -msgstr "Розкидання по Z" +msgstr "Поширення по Z" #. ~ "absvalue" is a noise parameter flag. #. It is short for "absolute value". @@ -573,7 +643,7 @@ msgstr "Абс. величина" #. for noise settings in main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua msgid "defaults" -msgstr "Стандартно" +msgstr "За замовчанням" #. ~ "eased" is a noise parameter flag. #. It is used to make the map smoother and @@ -633,13 +703,28 @@ msgstr "Не вдалося встановити мод як $1" msgid "Unable to install a modpack as a $1" msgstr "Не вдалося встановити модпак як $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Завантаження..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Клієнтосторонні скрипти на клієнті вимкнено" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Спробуйте оновити список публічних серверів та перевірте своє Інтернет-" +"з'єднання." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" -msgstr "Шукати додатки онлайн" +msgstr "Переглянути контент у мережі" #: builtin/mainmenu/tab_content.lua msgid "Content" -msgstr "Додатки" +msgstr "Контент" #: builtin/mainmenu/tab_content.lua msgid "Disable Texture Pack" @@ -679,14 +764,21 @@ msgstr "Активні учасники" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Розробники двигуна" +msgstr "Розробники ядра" #: builtin/mainmenu/tab_credits.lua msgid "Credits" msgstr "Подяки" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "Виберіть директорію" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -695,7 +787,7 @@ msgstr "Попередні учасники" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Попередні розробники двигуна" +msgstr "Попередні розробники ядра" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" @@ -706,16 +798,12 @@ msgid "Bind Address" msgstr "Закріпити адресу" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Налаштувати" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" -msgstr "Творчість" +msgstr "Творчій режим" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "Поранення" +msgstr "Увімкнути ушкодження" #: builtin/mainmenu/tab_local.lua msgid "Host Game" @@ -727,11 +815,11 @@ msgstr "Сервер" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "Встановити ігри з ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Ім'я/Пароль" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -741,6 +829,11 @@ msgstr "Новий" msgid "No world created or selected!" msgstr "Світ не створено або не обрано!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Новий пароль" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Грати" @@ -749,6 +842,11 @@ msgstr "Грати" msgid "Port" msgstr "Порт" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Виберіть світ:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Виберіть світ:" @@ -759,46 +857,46 @@ msgstr "Порт сервера" #: builtin/mainmenu/tab_local.lua msgid "Start Game" -msgstr "Грати" +msgstr "Почати гру" #: builtin/mainmenu/tab_online.lua msgid "Address / Port" msgstr "Адреса / Порт" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Під'єднатися" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" -msgstr "Творчість" +msgstr "Творчій режим" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" -msgstr "Поранення" +msgstr "Ушкодження ввімкнено" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" -msgstr "Видалити мітку" +msgstr "Видалити з закладок" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" -msgstr "Улюблені" +msgstr "Закладки" #: builtin/mainmenu/tab_online.lua msgid "Join Game" -msgstr "Мережа" +msgstr "Під'єднатися до гри" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Ім'я / Пароль" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Пінг" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Бої увімкнено" @@ -808,7 +906,7 @@ msgstr "2x" #: builtin/mainmenu/tab_settings.lua msgid "3D Clouds" -msgstr "Об'ємні хмари" +msgstr "3D хмари" #: builtin/mainmenu/tab_settings.lua msgid "4x" @@ -826,10 +924,6 @@ msgstr "Всі налаштування" msgid "Antialiasing:" msgstr "Згладжування:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Ви впевнені, що бажаєте скинути свій світ одиночної гри?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Зберігати розмір вікна" @@ -838,26 +932,18 @@ msgstr "Зберігати розмір вікна" msgid "Bilinear Filter" msgstr "Білінійна фільтрація" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Бамп маппінг" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Змінити клавіші" #: builtin/mainmenu/tab_settings.lua msgid "Connected Glass" -msgstr "З'єднувати скло" +msgstr "З'єднане скло" #: builtin/mainmenu/tab_settings.lua msgid "Fancy Leaves" msgstr "Гарне листя" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Генерувати мапи нормалів" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Міпмапи" @@ -866,10 +952,6 @@ msgstr "Міпмапи" msgid "Mipmap + Aniso. Filter" msgstr "Міпмапи і анізотропний фільтр" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ні" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Без фільтрації" @@ -898,18 +980,10 @@ msgstr "Непрозоре листя" msgid "Opaque Water" msgstr "Непрозора вода" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Паралаксова оклюзія" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Часточки" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Скинути світ одиночної гри" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Екран:" @@ -922,6 +996,11 @@ msgstr "Налаштування" msgid "Shaders" msgstr "Шейдери" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Висячі острови" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Шейдери (недоступно)" @@ -966,22 +1045,6 @@ msgstr "Хвилясті Рідини" msgid "Waving Plants" msgstr "Коливати квіти" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Так" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Налаштувати модифікації" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Головне Меню" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Почати одиночну гру" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Час очікування вийшов." @@ -1024,7 +1087,7 @@ msgstr "Головне Меню" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." -msgstr "Жоден світ не вибрано та не надано адреси. Нічого робити." +msgstr "Жоден світ не вибрано та не надано адреси. Немає чого робити." #: src/client/clientlauncher.cpp msgid "Player name too long." @@ -1072,11 +1135,11 @@ msgstr "- Творчість: " #: src/client/game.cpp msgid "- Damage: " -msgstr "- Поранення: " +msgstr "- Ушкодження: " #: src/client/game.cpp msgid "- Mode: " -msgstr "- Тип: " +msgstr "- Режим: " #: src/client/game.cpp msgid "- Port: " @@ -1143,18 +1206,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "Стандартне керування клавішами:\n" "- %s: вперед\n" @@ -1167,7 +1227,7 @@ msgstr "" "- %s: інвентар\n" "- Мишка: поворот/дивитися\n" "- Ліва кнопка миші: копати/удар\n" -"- Права кнопка миші: поставити/зробити\n" +"- Права кнопка миші: поставити/використати\n" "- Колесо миші: вибір предмета\n" "- %s: чат\n" @@ -1267,16 +1327,6 @@ msgstr "Туман вимкнено" msgid "Fog enabled" msgstr "Туман увімкнено" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "Туман вимкнено" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "Туман увімкнено" - #: src/client/game.cpp msgid "Game info:" msgstr "Інформація про гру:" @@ -1297,16 +1347,6 @@ msgstr "Визначення предметів..." msgid "KiB/s" msgstr "КіБ/сек" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "Туман вимкнено" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "Поранення" - #: src/client/game.cpp msgid "Media..." msgstr "Ресурси..." @@ -1319,34 +1359,6 @@ msgstr "МіБ/сек" msgid "Minimap currently disabled by game or mod" msgstr "Мінімапа вимкнена грою або модифікацією" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Мінімапа вимкнена" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Мінімапа в режимі радар. Наближення х1" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Мінімапа в режимі радар. Наближення х2" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Мінімапа в режимі радар. Наближення х4" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Мінімапа в режимі поверхня. Наближення х1" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Мінімапа в режимі поверхня. Наближення х2" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Мінімапа в режимі поверхня. Наближення х4" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Прохід крізь стіни вимкнено" @@ -1391,10 +1403,6 @@ msgstr "Віддалений сервер" msgid "Resolving address..." msgstr "Отримання адреси..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "Переродитися" - #: src/client/game.cpp msgid "Shutting down..." msgstr "Вимкнення..." @@ -1413,11 +1421,11 @@ msgstr "Звук вимкнено" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "Звукова система вимкнена" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "Звукова система не підтримується у цій збірці" #: src/client/game.cpp msgid "Sound unmuted" @@ -1447,10 +1455,6 @@ msgstr "Гучність звуку змінено на %d%%" msgid "Wireframe shown" msgstr "Показ трикутників" -#: src/client/game.cpp -msgid "You died" -msgstr "Ви загинули" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "Наближення (бінокль) вимкнено грою або модифікацією" @@ -1467,16 +1471,6 @@ msgstr "Чат вимкнено" msgid "Chat shown" msgstr "Чат увімкнено" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "Чат вимкнено" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "Чат увімкнено" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "Позначки на екрані вимкнено" @@ -1660,9 +1654,8 @@ msgid "Numpad 9" msgstr "Num 9" #: src/client/keycode.cpp -#, fuzzy msgid "OEM Clear" -msgstr "Почистити OEM" +msgstr "Очистити OEM" #: src/client/keycode.cpp msgid "Page down" @@ -1758,6 +1751,25 @@ msgstr "Додаткова кнопка 2" msgid "Zoom" msgstr "Збільшити" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "Мінімапа вимкнена" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "Мінімапа в режимі радар. Наближення х1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Мінімапа в режимі поверхня. Наближення х1" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Мінімапа в режимі поверхня. Наближення х1" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Паролі не збігаються!" @@ -1801,26 +1813,6 @@ msgstr "Автоматичне перестрибування" msgid "Backward" msgstr "Назад" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "Змінити камеру" @@ -1915,29 +1907,9 @@ msgstr "Крастися" msgid "Special" msgstr "Спеціальна" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "Спеціальна" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "Кінематографічний режим" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "Кінематографічний режим" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Увімкнути HUD" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "Політ" +msgstr "Увімкнути позначки на екрані" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" @@ -2043,6 +2015,14 @@ msgid "" "situations.\n" "Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X,Y,Z) зміщення фракталу від центру світа у одиницях 'масшабу'. \n" +"Використовується для пересування бажаної точки до (0, 0) щоб \n" +"створити придатну точку переродження або для 'наближення' \n" +"до бажаної точки шляхом збільшення 'масштабу'. Значення за \n" +"замовчанням налаштоване для придатної точки переродження \n" +"для множин Мандельбро з параметрами за замовчанням; може \n" +"потребувати зміни у інших ситуаціях. Діапазон приблизно від -2 \n" +"до 2. Помножте на 'масштаб' щоб отримати зміщення у блоках." #: src/settings_translation_file.cpp msgid "" @@ -2054,42 +2034,41 @@ msgid "" "Default is for a vertically-squashed shape suitable for\n" "an island, set all 3 numbers equal for the raw shape." msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = технологія \"parallax occlusion\" з інформацією про криві (швидше).\n" -"1 = технологія \"relief mapping\" (повільніше, більш акуратніше)." +"(X,Y,Z) масштаб фракталу у блоках.\n" +"Фактичний розмір фракталу буде у 2-3 рази більшим. Ці \n" +"числа можуть бути дуже великими, фрактал не обов'язково \n" +"має поміститися у світі. Збільшіть їх щоб 'наблизити' деталі \n" +"фракталу. Числа за замовчанням підходять для вертикально \n" +"стисненої форми, придатної для острова, встановіть усі три \n" +"числа рівними для форми без трансформації." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" +msgstr "2D шум що контролює форму/розмір гребенів гір." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgstr "2D шум що контролює форму/розмір невисоких пагорбів." #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgstr "2D шум що контролює форму/розмір ступінчастих гір." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" +msgstr "2D шум що контролює розмір/імовірність гребенів гірських масивів." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgstr "2D шум що контролює розмір/імовірність невисоких пагорбів." #: src/settings_translation_file.cpp msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgstr "2D шум що контролює розмір/імовірність ступінчастих гір." #: src/settings_translation_file.cpp msgid "2D noise that locates the river valleys and channels." -msgstr "" +msgstr "2D шум що розміщує долини та русла річок." #: src/settings_translation_file.cpp msgid "3D clouds" @@ -2101,17 +2080,19 @@ msgstr "3D режим" #: src/settings_translation_file.cpp msgid "3D mode parallax strength" -msgstr "" +msgstr "Величина паралаксу у 3D режимі" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." -msgstr "" +msgstr "3D шум що визначає гігантські каверни." #: src/settings_translation_file.cpp msgid "" "3D noise defining mountain structure and height.\n" "Also defines structure of floatland mountain terrain." msgstr "" +"3D шум що визначає структуру та висоті гір. \n" +"Також визначає структуру висячих островів." #: src/settings_translation_file.cpp msgid "" @@ -2120,22 +2101,26 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"3D шум що визначає структуру висячих островів.\n" +"Якщо змінити значення за замовчаням, 'масштаб' шуму (0.7 за замовчанням)\n" +"може потребувати корекції, оскільки функція конічної транформації висячих\n" +"островів має діапазон значень приблизно від -2.0 до 2.0." #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgstr "3D шум що визначає структуру стін каньйонів річок." #: src/settings_translation_file.cpp msgid "3D noise defining terrain." -msgstr "" +msgstr "3D шум що визначає місцевість." #: src/settings_translation_file.cpp msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgstr "3D шум для виступів гір, скель та ін. Зазвичай невеликі варіації." #: src/settings_translation_file.cpp msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" +msgstr "3D шум що визначає кількість підземель на фрагмент карти." #: src/settings_translation_file.cpp msgid "" @@ -2150,52 +2135,70 @@ msgid "" "- pageflip: quadbuffer based 3d.\n" "Note that the interlaced mode requires shaders to be enabled." msgstr "" +"Підтримка 3D.\n" +"Зараз підтримуються:\n" +"- none: 3d вимкнено.\n" +"- anaglyph: 3d з блакитно-пурпурними кольорами.\n" +"- interlaced: підтримка полярізаційних екранів з непарними/парним " +"лініями.\n" +"- topbottom: поділ екрану вертикально.\n" +"- sidebyside: поділ екрану горизонтально.\n" +"- crossview: 3d на основі автостереограми.\n" +"- pageflip: 3d на основі quadbuffer.\n" +"Зверніть увагу що режим interlaced потребує ввімкнення шейдерів." #: src/settings_translation_file.cpp msgid "" "A chosen map seed for a new map, leave empty for random.\n" "Will be overridden when creating a new world in the main menu." msgstr "" +"Вибране зерно карти для нової карти, залиште порожнім для випадково " +"вибраного числа.\n" +"Буде проігноровано якщо новий світ створюється з головного меню." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server crashes." -msgstr "" +msgstr "Повідомлення що показується усім клієнтам якщо сервер зазнає збою." #: src/settings_translation_file.cpp msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgstr "Повідомлення що показується усім клієнтам при вимкненні серверу." #: src/settings_translation_file.cpp msgid "ABM interval" msgstr "Інтервал ABM" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "ABM time budget" msgstr "" +#: src/settings_translation_file.cpp +msgid "Absolute limit of queued blocks to emerge" +msgstr "Абсолютний ліміт відображення блоків з черги" + #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "" +msgstr "Прискорення у повітрі" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgstr "Прискорення гравітації, у блоках на секунду у квадраті." #: src/settings_translation_file.cpp msgid "Active Block Modifiers" -msgstr "" +msgstr "Модифікатори активних блоків" #: src/settings_translation_file.cpp msgid "Active block management interval" -msgstr "" +msgstr "Інтервал керування активним блоком" #: src/settings_translation_file.cpp msgid "Active block range" -msgstr "" +msgstr "Діапазон активних блоків" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "Діапазон відправлення активних блоків" #: src/settings_translation_file.cpp msgid "" @@ -2203,6 +2206,9 @@ msgid "" "Leave this blank to start a local server.\n" "Note that the address field in the main menu overrides this setting." msgstr "" +"Адреса для приєднання.\n" +"Залиште порожнім щоб запустити локальний сервер.\n" +"Зауважте що поле адреси у головному меню має пріоритет над цим налаштуванням." #: src/settings_translation_file.cpp msgid "Adds particles when digging a node." @@ -2404,10 +2410,6 @@ msgstr "Будувати в межах гравця" msgid "Builtin" msgstr "" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Бамп-маппінг" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2479,19 +2481,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "Розмір шрифту" +msgstr "Розмір шрифту чату" #: src/settings_translation_file.cpp msgid "Chat key" @@ -2641,6 +2632,10 @@ msgstr "Висота консолі" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2699,7 +2694,9 @@ msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2707,7 +2704,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -2809,12 +2808,6 @@ msgstr "" msgid "Defines location and terrain of optional hills and lakes." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2885,6 +2878,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Права клавіша" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Часточки при копанні" @@ -2946,7 +2944,7 @@ msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -3033,14 +3031,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "" @@ -3049,18 +3039,6 @@ msgstr "" msgid "Enables minimap." msgstr "Вмикає мінімапу." -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3077,12 +3055,6 @@ msgstr "" msgid "Entity methods" msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3094,8 +3066,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Максимум FPS при паузі." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3396,10 +3369,6 @@ msgstr "Масштаб інтерфейсу" msgid "GUI scaling filter txr2img" msgstr "" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Генерувати карти нормалів" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3454,8 +3423,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" @@ -3922,6 +3891,10 @@ msgstr "" msgid "Joystick button repetition interval" msgstr "" +#: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "" @@ -4001,6 +3974,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4100,6 +4080,13 @@ msgid "" "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4657,10 +4644,6 @@ msgstr "" msgid "Main menu script" msgstr "" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "Стиль головного меню" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -4674,6 +4657,14 @@ msgstr "" msgid "Makes all liquids opaque" msgstr "" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "Тека мапи" @@ -4845,7 +4836,7 @@ msgstr "Максимальна кількість кадрів в секунду #: src/settings_translation_file.cpp #, fuzzy -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "Максимум FPS при паузі." #: src/settings_translation_file.cpp @@ -4893,6 +4884,13 @@ msgid "" "This limit is enforced per player." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "" @@ -5122,14 +5120,6 @@ msgstr "" msgid "Noises" msgstr "" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "" @@ -5155,10 +5145,6 @@ msgid "" "memory consumption (4096=100MB, as a rule of thumb)." msgstr "" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5184,34 +5170,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Паралаксова оклюзія" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Ступінь паралаксової оклюзії" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5278,6 +5236,15 @@ msgstr "Кнопка польоту" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Кнопка для польоту" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5434,10 +5401,6 @@ msgstr "" msgid "Right key" msgstr "Права клавіша" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" @@ -5692,6 +5655,19 @@ msgstr "" msgid "Show entity selection boxes" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Вказати мову. Залиште порожнім, щоб використовувати системну мову.\n" +"Потрібен перезапуск після цієї зміни." + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "" @@ -5821,10 +5797,6 @@ msgstr "" msgid "Strength of 3D mode parallax." msgstr "" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -5918,6 +5890,10 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -5977,8 +5953,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6002,6 +5978,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6010,9 +5992,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6147,6 +6128,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6353,6 +6345,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -6475,6 +6473,24 @@ msgstr "Y-Рівень нижнього рельєфу та морського msgid "Y-level of seabed." msgstr "Y-Рівень морського дна." +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "" @@ -6487,26 +6503,102 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Ok" -#~ msgstr "Добре" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = технологія \"parallax occlusion\" з інформацією про криві (швидше).\n" +#~ "1 = технологія \"relief mapping\" (повільніше, більш акуратніше)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ви впевнені, що бажаєте скинути свій світ одиночної гри?" #~ msgid "Back" #~ msgstr "Назад" +#~ msgid "Bump Mapping" +#~ msgstr "Бамп-маппінг" + +#~ msgid "Bumpmapping" +#~ msgstr "Бамп-маппінг" + +#~ msgid "Config mods" +#~ msgstr "Налаштувати модифікації" + +#~ msgid "Configure" +#~ msgstr "Налаштувати" + +#~ msgid "Content Store" +#~ msgstr "Додатки" + #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Завантаження і встановлення $1, зачекайте..." #~ msgid "Enable VBO" #~ msgstr "Увімкнути VBO" +#~ msgid "Generate Normal Maps" +#~ msgstr "Генерувати мапи нормалів" + +#~ msgid "Generate normalmaps" +#~ msgstr "Генерувати карти нормалів" + #~ msgid "IPv6 support." #~ msgstr "Підтримка IPv6." #~ msgid "Lava depth" #~ msgstr "Глибина лави" +#~ msgid "Main" +#~ msgstr "Головне Меню" + +#~ msgid "Main menu style" +#~ msgstr "Стиль головного меню" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Мінімапа в режимі радар. Наближення х2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Мінімапа в режимі радар. Наближення х4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Мінімапа в режимі поверхня. Наближення х2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Мінімапа в режимі поверхня. Наближення х4" + +#~ msgid "Name/Password" +#~ msgstr "Ім'я/Пароль" + +#~ msgid "No" +#~ msgstr "Ні" + +#~ msgid "Ok" +#~ msgstr "Добре" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Паралаксова оклюзія" + +#~ msgid "Parallax occlusion" +#~ msgstr "Паралаксова оклюзія" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Ступінь паралаксової оклюзії" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Скинути світ одиночної гри" + #~ msgid "Select Package File:" #~ msgstr "Виберіть файл пакунку:" -#~ msgid "Content Store" -#~ msgstr "Додатки" +#~ msgid "Start Singleplayer" +#~ msgstr "Почати одиночну гру" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Кінематографічний режим" + +#~ msgid "View" +#~ msgstr "Вид" + +#~ msgid "Yes" +#~ msgstr "Так" diff --git a/po/vi/minetest.po b/po/vi/minetest.po index 9dbd4c586..1238015ec 100644 --- a/po/vi/minetest.po +++ b/po/vi/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Vietnamese (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-06-13 21:08+0000\n" "Last-Translator: darkcloudcat \n" "Language-Team: Vietnamese \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-01-20 15:10+0000\n" +"Last-Translator: ZhiZe-ZG \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -12,11 +12,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "重生" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "您已死亡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -38,10 +46,6 @@ msgstr "重新连接" msgid "The server has requested a reconnect:" msgstr "服务器已请求重新连接:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "载入中..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "协议版本不匹配。 " @@ -54,10 +58,6 @@ msgstr "服务器强制协议版本为 $1。 " msgid "Server supports protocol versions between $1 and $2. " msgstr "服务器支持协议版本为 $1 至 $2。 " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "请尝试重新启用公共服务器列表并检查您的网络连接。" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "我们只支持协议版本 $1。" @@ -66,7 +66,8 @@ msgstr "我们只支持协议版本 $1。" msgid "We support protocol versions between version $1 and $2." msgstr "我们支持的协议版本为 $1 至 $2。" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -76,7 +77,8 @@ msgstr "我们支持的协议版本为 $1 至 $2。" msgid "Cancel" msgstr "取消" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "依赖项:" @@ -104,7 +106,7 @@ msgstr "无法启用 mod \"$1\":因为包含有不支持的字符。只允许 #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "寻找更多mod" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -147,22 +149,62 @@ msgstr "世界:" msgid "enabled" msgstr "启用" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "下载中..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "所有包" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "按键已被占用" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "返回主菜单" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +#, fuzzy +msgid "Base Game:" +msgstr "主持游戏" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "在没有cURL的情况下编译Minetest时,ContentDB不可用" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "载入中..." +msgstr "下载中..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -177,6 +219,16 @@ msgstr "子游戏" msgid "Install" msgstr "安装" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "安装" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "可选依赖项:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -191,9 +243,26 @@ msgid "No results" msgstr "无结果" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "搜索" +#, fuzzy +msgid "No updates" +msgstr "更新" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Not found" +msgstr "静音" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -208,7 +277,11 @@ msgid "Update" msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -217,45 +290,39 @@ msgstr "名为 \"$1\" 的世界已经存在" #: builtin/mainmenu/dlg_create_world.lua msgid "Additional terrain" -msgstr "" +msgstr "额外地形" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" msgstr "高地寒冷" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Altitude dry" -msgstr "高地寒冷" +msgstr "高地干燥" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biome blending" -msgstr "生物群系噪声" +msgstr "生物群系融合" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Biomes" -msgstr "生物群系噪声" +msgstr "生物群系" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caverns" -msgstr "大型洞穴噪声" +msgstr "大型洞穴" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Caves" -msgstr "八音" +msgstr "洞穴" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" msgstr "创建" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Decorations" -msgstr "迭代" +msgstr "装饰" #: builtin/mainmenu/dlg_create_world.lua msgid "Download a game, such as Minetest Game, from minetest.net" @@ -266,51 +333,48 @@ msgid "Download one from minetest.net" msgstr "从 minetest.net 下载一个" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Dungeons" -msgstr "地窖噪声" +msgstr "地窖" #: builtin/mainmenu/dlg_create_world.lua msgid "Flat terrain" -msgstr "" +msgstr "平坦地形" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" -msgstr "" +msgstr "空中漂浮的陆地" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Floatlands (experimental)" -msgstr "水级别" +msgstr "悬空岛(实验性)" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Game" -msgstr "游戏" +msgstr "子游戏" #: builtin/mainmenu/dlg_create_world.lua msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" +msgstr "生成非分形地形:海洋和地底" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "丘陵" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Humid rivers" -msgstr "视频驱动程序" +msgstr "潮湿河流" #: builtin/mainmenu/dlg_create_world.lua msgid "Increases humidity around rivers" -msgstr "" +msgstr "增加河流周边湿度" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "湖" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "低湿度和高温导致浅而干燥的河流" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -321,22 +385,20 @@ msgid "Mapgen flags" msgstr "地图生成器标志" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mapgen-specific flags" -msgstr "地图生成器 v5 标签" +msgstr "地图生成器专用标签" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Mountains" -msgstr "山噪声" +msgstr "山" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "泥流" #: builtin/mainmenu/dlg_create_world.lua msgid "Network of tunnels and caves" -msgstr "" +msgstr "通道和洞穴网络" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -344,20 +406,19 @@ msgstr "未选择游戏" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces heat with altitude" -msgstr "" +msgstr "随海拔高度降低热量" #: builtin/mainmenu/dlg_create_world.lua msgid "Reduces humidity with altitude" -msgstr "" +msgstr "随海拔高度降低湿度" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Rivers" -msgstr "河流大小" +msgstr "河流" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "海平面河流" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -366,52 +427,49 @@ msgstr "种子" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "生物群落之间的平滑过渡" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "出现在地形上的结构(对v6创建的树木和丛林草没有影响)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "出现在地形上的结构,通常是树木和植物" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert" -msgstr "" +msgstr "温带,沙漠" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" -msgstr "" +msgstr "温带,沙漠,丛林" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgstr "温带,沙漠,丛林,苔原,泰加林带" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Terrain surface erosion" -msgstr "地形高度" +msgstr "地形表面腐烂" #: builtin/mainmenu/dlg_create_world.lua msgid "Trees and jungle grass" -msgstr "" +msgstr "树木和丛林草" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Vary river depth" -msgstr "河流深度" +msgstr "变化河流深度" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "地下深处的大型洞穴" #: builtin/mainmenu/dlg_create_world.lua -#, fuzzy msgid "Warning: The Development Test is meant for developers." -msgstr "警告: 最小化开发测试是为开发者提供的。" +msgstr "警告:开发测试是为开发者提供的。" #: builtin/mainmenu/dlg_create_world.lua msgid "World name" @@ -474,11 +532,6 @@ msgstr "< 返回设置页面" msgid "Browse" msgstr "浏览" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "客户端" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "禁用" @@ -523,6 +576,10 @@ msgstr "恢复初始设置" msgid "Scale" msgstr "比例" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "搜索" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "选择目录" @@ -638,6 +695,19 @@ msgstr "无法将$1安装为mod" msgid "Unable to install a modpack as a $1" msgstr "无法将$1安装为mod包" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "载入中..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "客户端脚本已禁用" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "请尝试重新启用公共服务器列表并检查您的网络连接。" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "浏览在线内容" @@ -691,7 +761,14 @@ msgid "Credits" msgstr "贡献者" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "选择目录" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -711,14 +788,10 @@ msgid "Bind Address" msgstr "绑定地址" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "配置" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "创造模式" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "开启伤害" @@ -732,11 +805,11 @@ msgstr "建立服务器" #: builtin/mainmenu/tab_local.lua msgid "Install games from ContentDB" -msgstr "" +msgstr "从 ContentDB 安装游戏" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "用户名/密码" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -746,6 +819,11 @@ msgstr "新建" msgid "No world created or selected!" msgstr "未创建或选择世界!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "新密码" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "开始游戏" @@ -754,6 +832,11 @@ msgstr "开始游戏" msgid "Port" msgstr "端口" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "选择世界:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "选择世界:" @@ -770,23 +853,23 @@ msgstr "启动游戏" msgid "Address / Port" msgstr "地址/端口" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "连接" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "创造模式" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "伤害已启用" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "删除收藏项" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "收藏项" @@ -794,16 +877,16 @@ msgstr "收藏项" msgid "Join Game" msgstr "加入游戏" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "用户名/密码" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "应答速度" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "启用玩家对战" @@ -831,10 +914,6 @@ msgstr "所有设置" msgid "Antialiasing:" msgstr "抗锯齿:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "你确定要重置你的单人世界吗?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "自动保存屏幕尺寸" @@ -843,10 +922,6 @@ msgstr "自动保存屏幕尺寸" msgid "Bilinear Filter" msgstr "双线性过滤" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "凹凸贴图" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "更改键位设置" @@ -859,10 +934,6 @@ msgstr "连通玻璃" msgid "Fancy Leaves" msgstr "华丽树叶" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "生成法线贴图" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mip 贴图" @@ -871,10 +942,6 @@ msgstr "Mip 贴图" msgid "Mipmap + Aniso. Filter" msgstr "Mip 贴图 + 各向异性过滤" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "否" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "无过滤" @@ -903,18 +970,10 @@ msgstr "不透明树叶" msgid "Opaque Water" msgstr "不透明水" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "视差遮蔽" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "粒子效果" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "重置单人世界" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "屏幕:" @@ -927,6 +986,11 @@ msgstr "设置" msgid "Shaders" msgstr "着色器" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "悬空岛(实验性)" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "着色器 (不可用)" @@ -941,7 +1005,7 @@ msgstr "平滑光照" #: builtin/mainmenu/tab_settings.lua msgid "Texturing:" -msgstr "纹理:" +msgstr "材质:" #: builtin/mainmenu/tab_settings.lua msgid "To enable shaders the OpenGL driver needs to be used." @@ -971,22 +1035,6 @@ msgstr "摇动流体" msgid "Waving Plants" msgstr "摇摆植物" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "是" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "配置 mod" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "主菜单" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "单人游戏" - #: src/client/client.cpp msgid "Connection timed out." msgstr "连接超时。" @@ -1148,18 +1196,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "控制:\n" "- %s:向前移动\n" @@ -1186,7 +1231,7 @@ msgstr "建立服务器...." #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "隐藏的调试信息和性能分析图" +msgstr "调试信息和性能分析图已隐藏" #: src/client/game.cpp msgid "Debug info shown" @@ -1194,7 +1239,7 @@ msgstr "调试信息已显示" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "隐藏调试信息,性能分析图,和线框" +msgstr "调试信息、性能分析图和线框已隐藏" #: src/client/game.cpp msgid "" @@ -1246,7 +1291,7 @@ msgstr "快速模式已禁用" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "快速移动模式已启用" +msgstr "快速模式已启用" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" @@ -1272,16 +1317,6 @@ msgstr "雾气已禁用" msgid "Fog enabled" msgstr "雾气已启用" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "雾气已禁用" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "雾气已启用" - #: src/client/game.cpp msgid "Game info:" msgstr "游戏信息:" @@ -1302,16 +1337,6 @@ msgstr "物品定义..." msgid "KiB/s" msgstr "KiB/s" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "雾气已禁用" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "伤害已启用" - #: src/client/game.cpp msgid "Media..." msgstr "媒体..." @@ -1324,34 +1349,6 @@ msgstr "MiB/s" msgid "Minimap currently disabled by game or mod" msgstr "小地图被当前子游戏或者 mod 禁用" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "小地图已隐藏" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "雷达小地图,放大至一倍" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "雷达小地图,放大至两倍" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "雷达小地图, 放大至四倍" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "地表模式小地图, 放大至一倍" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "地表模式小地图, 放大至两倍" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "地表模式小地图, 放大至四倍" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "穿墙模式已禁用" @@ -1386,7 +1383,7 @@ msgstr "俯仰移动模式已禁用" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "显示性能分析图" +msgstr "性能分析图已显示" #: src/client/game.cpp msgid "Remote server" @@ -1396,10 +1393,6 @@ msgstr "远程服务器" msgid "Resolving address..." msgstr "正在解析地址..." -#: src/client/game.cpp -msgid "Respawn" -msgstr "重生" - #: src/client/game.cpp msgid "Shutting down..." msgstr "关闭中..." @@ -1418,11 +1411,11 @@ msgstr "已静音" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "声音系统已禁用" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "此编译版本不支持声音系统" #: src/client/game.cpp msgid "Sound unmuted" @@ -1452,10 +1445,6 @@ msgstr "音量改到%d1%%2" msgid "Wireframe shown" msgstr "线框已显示" -#: src/client/game.cpp -msgid "You died" -msgstr "您已死亡" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "缩放被当前子游戏或 mod 禁用" @@ -1472,16 +1461,6 @@ msgstr "聊天已隐藏" msgid "Chat shown" msgstr "聊天已显示" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "聊天已隐藏" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "聊天已显示" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "HUD 已隐藏" @@ -1762,6 +1741,25 @@ msgstr "X键2" msgid "Zoom" msgstr "缩放" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "小地图已隐藏" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "雷达小地图,放大至一倍" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "地表模式小地图, 放大至一倍" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "最小材质大小" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "密码不匹配!" @@ -1779,8 +1777,9 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" -"这是你第一次用“%s”加入服务器。 如果要继续,一个新的用户将在服务器上创建。\n" -"请重新输入你的密码然后点击“注册”或点击“取消”。" +"这是你第一次用“%s”加入服务器。\n" +"如果要继续,一个新的用户将在服务器上创建。\n" +"请重新输入你的密码然后点击“注册”来创建用户或点击“取消”退出。" #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" @@ -1802,26 +1801,6 @@ msgstr "自动跳跃" msgid "Backward" msgstr "向后" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "改变相机" @@ -1914,37 +1893,17 @@ msgstr "潜行" msgid "Special" msgstr "特殊" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "特殊" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "切换电影模式" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "切换电影模式" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "启用/禁用HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "启用/禁用飞行模式" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "启用/禁用聊天记录" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "启用/禁用快速移动模式" +msgstr "启用/禁用快速模式" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" @@ -2066,14 +2025,6 @@ msgstr "" "默认值为适合\n" "孤岛的垂直压扁形状,将所有3个数字设置为相等以呈现原始形状。" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = 利用梯度信息进行视差遮蔽 (较快).\n" -"1 = 浮雕映射 (较慢, 但准确)." - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "控制山脊形状/大小的2D噪声。" @@ -2111,9 +2062,8 @@ msgid "3D mode" msgstr "3D 模式" #: src/settings_translation_file.cpp -#, fuzzy msgid "3D mode parallax strength" -msgstr "法线贴图强度" +msgstr "3D模式视差强度" #: src/settings_translation_file.cpp msgid "3D noise defining giant caverns." @@ -2134,6 +2084,10 @@ msgid "" "to be adjusted, as floatland tapering functions best when this noise has\n" "a value range of approximately -2.0 to 2.0." msgstr "" +"悬空岛的3D噪波定义结构。\n" +"如果改变了默认值,噪波“scale”(默认为0.7)可能需要\n" +"调整,因为当这个噪波的值范围大约为-2.0到2.0时,\n" +"悬空岛逐渐变窄的函数最好。" #: src/settings_translation_file.cpp msgid "3D noise defining structure of river canyon walls." @@ -2196,9 +2150,12 @@ msgid "ABM interval" msgstr "ABM间隔" #: src/settings_translation_file.cpp -#, fuzzy +msgid "ABM time budget" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "生产队列绝对限制" +msgstr "待显示方块队列的绝对限制" #: src/settings_translation_file.cpp msgid "Acceleration in air" @@ -2253,6 +2210,11 @@ msgid "" "Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" "to be sure) creates a solid floatland layer." msgstr "" +"调整悬空岛层的密度。\n" +"增加值以增加密度。可以是正值或负值。\n" +"值等于0.0, 容积的50%是floatland。\n" +"值等于2.0 ,(可以更高,取决于 'mgv7_np_floatland' ,始终测试以确定)\n" +"创建一个坚实的悬空岛层。" #: src/settings_translation_file.cpp msgid "Advanced" @@ -2274,7 +2236,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Always fly and fast" -msgstr "保持高速飞行" +msgstr "保持飞行和快速模式" #: src/settings_translation_file.cpp msgid "Ambient occlusion gamma" @@ -2441,16 +2403,12 @@ msgstr "粗体等宽字体路径" #: src/settings_translation_file.cpp msgid "Build inside player" -msgstr "建立内部玩家" +msgstr "在玩家内部搭建" #: src/settings_translation_file.cpp msgid "Builtin" msgstr "内置" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "凹凸贴图" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2528,32 +2486,16 @@ msgstr "" "0.0为最小值时1.0为最大值。" #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"主菜单UI的变化:\n" -"- 完整 多个单人世界,子游戏选择,材质包选择器等。\n" -"- 简单:单个单人世界,无子游戏材质包选择器。可能\n" -"需要用于小屏幕。" - -#: src/settings_translation_file.cpp -#, fuzzy msgid "Chat font size" -msgstr "字体大小" +msgstr "聊天字体大小" #: src/settings_translation_file.cpp msgid "Chat key" msgstr "聊天键" #: src/settings_translation_file.cpp -#, fuzzy msgid "Chat log level" -msgstr "调试日志级别" +msgstr "聊天日志级别" #: src/settings_translation_file.cpp msgid "Chat message count limit" @@ -2704,6 +2646,10 @@ msgstr "控制台高度" msgid "ContentDB Flag Blacklist" msgstr "ContentDB标签黑名单" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "ContentDB网址" @@ -2769,7 +2715,10 @@ msgid "Crosshair alpha" msgstr "准星透明" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "准星不透明度(0-255)。" #: src/settings_translation_file.cpp @@ -2777,8 +2726,10 @@ msgid "Crosshair color" msgstr "准星颜色" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "准星颜色(红,绿,蓝)。" +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2841,9 +2792,8 @@ msgid "Default report format" msgstr "默认报告格式" #: src/settings_translation_file.cpp -#, fuzzy msgid "Default stack size" -msgstr "默认游戏" +msgstr "默认栈大小" #: src/settings_translation_file.cpp msgid "" @@ -2881,14 +2831,6 @@ msgstr "定义大尺寸的河道结构。" msgid "Defines location and terrain of optional hills and lakes." msgstr "定义所选的山和湖的位置与地形。" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"定义材质采样步骤。\n" -"数值越高常态贴图越平滑。" - #: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "定义基准地面高度." @@ -2963,6 +2905,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "去同步块动画" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "右方向键" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "挖掘粒子效果" @@ -3028,7 +2975,8 @@ msgid "Enable console window" msgstr "启用控制台窗口" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "为新建地图启用创造模式。" #: src/settings_translation_file.cpp @@ -3136,17 +3084,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "启用物品清单动画。" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"启用材质的凹凸贴图效果。需要材质包支持法线贴图,\n" -"否则将自动生成法线。\n" -"需要启用着色器。" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "启用翻转网状物facedir的缓存。" @@ -3155,22 +3092,6 @@ msgstr "启用翻转网状物facedir的缓存。" msgid "Enables minimap." msgstr "启用小地图。" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"启用即时法线贴图生成(浮雕效果)。\n" -"需要启用凹凸贴图。" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"启用视差遮蔽贴图。\n" -"需要启用着色器。" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3191,14 +3112,6 @@ msgstr "打印引擎性能分析数据间隔" msgid "Entity methods" msgstr "实体方法" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"实验性选项,设为大于 0 的数字时可能导致\n" -"块之间出现可见空间。" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3208,10 +3121,16 @@ msgid "" "Values < 1.0 (for example 0.25) create a more defined surface level with\n" "flatter lowlands, suitable for a solid floatland layer." msgstr "" +"悬空岛锥度的指数,更改锥度的行为。\n" +"值等于1.0,创建一个统一的,线性锥度。\n" +"值大于1.0,创建一个平滑的、合适的锥度,默认分隔的悬空岛。\n" +"值小于1.0,(例如0.25)创建一个带有平坦低地的更加轮廓分明的表面级别,\n" +"适用于固体悬空岛层。" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "暂停菜单 FPS" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "游戏暂停时最高 FPS。" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3243,7 +3162,7 @@ msgstr "后备字体大小" #: src/settings_translation_file.cpp msgid "Fast key" -msgstr "快速移动键" +msgstr "快速键" #: src/settings_translation_file.cpp msgid "Fast mode acceleration" @@ -3327,39 +3246,32 @@ msgid "Fixed virtual joystick" msgstr "固定虚拟摇杆" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland density" -msgstr "水级别" +msgstr "悬空岛密度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland maximum Y" -msgstr "地窖最大Y坐标" +msgstr "悬空岛最大Y坐标" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland minimum Y" -msgstr "地窖最小Y坐标" +msgstr "悬空岛最小Y坐标" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland noise" -msgstr "水级别" +msgstr "悬空岛噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland taper exponent" -msgstr "水级别" +msgstr "悬空岛尖锐指数" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland tapering distance" -msgstr "玩家转移距离" +msgstr "悬空岛尖锐距离" #: src/settings_translation_file.cpp -#, fuzzy msgid "Floatland water level" -msgstr "水级别" +msgstr "悬空岛水位" #: src/settings_translation_file.cpp msgid "Fly key" @@ -3418,6 +3330,8 @@ msgid "" "Font size of the recent chat text and chat prompt in point (pt).\n" "Value 0 will use the default font size." msgstr "" +"最近聊天文本和聊天提示的字体大小(pt)。\n" +"值为0将使用默认字体大小。" #: src/settings_translation_file.cpp msgid "" @@ -3533,10 +3447,6 @@ msgstr "GUI缩放过滤器" msgid "GUI scaling filter txr2img" msgstr "GUI缩放过滤器 txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "生成发现贴图" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "全局回调" @@ -3596,10 +3506,11 @@ msgid "HUD toggle key" msgstr "HUD启用/禁用键" #: src/settings_translation_file.cpp +#, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "处理已弃用的 Lua API 调用:\n" @@ -4116,6 +4027,11 @@ msgstr "摇杆 ID" msgid "Joystick button repetition interval" msgstr "摇杆按钮重复间隔" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "摇杆类型" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "摇杆头灵敏度" @@ -4218,6 +4134,17 @@ msgstr "" "见http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"跳跃键。\n" +"见http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4360,6 +4287,17 @@ msgstr "" "见http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"跳跃键。\n" +"见http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -4749,7 +4687,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"开关电影模式键。\n" +"启用/禁用电影模式键。\n" "见http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5097,18 +5035,13 @@ msgid "Lower Y limit of dungeons." msgstr "地窖的Y值下限。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lower Y limit of floatlands." -msgstr "地窖的Y值下限。" +msgstr "悬空岛的Y值下限。" #: src/settings_translation_file.cpp msgid "Main menu script" msgstr "主菜单脚本" -#: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "主菜单样式" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5122,6 +5055,14 @@ msgstr "使DirectX和LuaJIT一起工作。如果这导致了问题禁用它。" msgid "Makes all liquids opaque" msgstr "使所有液体不透明" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "地图目录" @@ -5181,7 +5122,6 @@ msgstr "" "忽略'jungles'标签。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" @@ -5189,7 +5129,9 @@ msgid "" "'caverns': Giant caves deep underground." msgstr "" "针对v7地图生成器的属性。\n" -"'ridges'启用河流。" +"'ridges':启用河流。\n" +"'floatlands':漂浮于大气中的陆块。\n" +"'caverns':地下深处的巨大洞穴。" #: src/settings_translation_file.cpp msgid "Map generation limit" @@ -5304,7 +5246,8 @@ msgid "Maximum FPS" msgstr "最大 FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "游戏暂停时最高 FPS。" #: src/settings_translation_file.cpp @@ -5346,22 +5289,27 @@ msgid "Maximum number of blocks that can be queued for loading." msgstr "可在加载时加入队列的最大方块数。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be generated.\n" "This limit is enforced per player." msgstr "" "在生成时加入队列的最大方块数。\n" -"设置为空白则自动选择合适的数值。" +"此限制对每位玩家强制执行。" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" "在从文件中加载时加入队列的最大方块数。\n" -"设置为空白则自动选择合适的数值。" +"此限制对每位玩家强制执行。" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." @@ -5455,7 +5403,7 @@ msgstr "用于高亮选定的对象的方法。" #: src/settings_translation_file.cpp msgid "Minimal level of logging to be written to chat." -msgstr "" +msgstr "写入聊天的最小日志级别。" #: src/settings_translation_file.cpp msgid "Minimap" @@ -5612,20 +5560,11 @@ msgstr "NodeTimer间隔" msgid "Noises" msgstr "噪声" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "法线贴图采样" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "法线贴图强度" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "生产线程数" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Number of emerge threads to use.\n" "Value 0:\n" @@ -5639,9 +5578,6 @@ msgid "" "'on_generated'. For many users the optimum setting may be '1'." msgstr "" "使用的生产线程数。\n" -"警告:当'num_emerge_threads'大于1时,目前有很\n" -"多bug会导致崩溃。\n" -"强烈建议在此警告被移除之前将此值设为默认值'1'。\n" "值0:\n" "- 自动选择。生产线程数会是‘处理器数-2’,\n" "- 下限为1。\n" @@ -5650,7 +5586,7 @@ msgstr "" "警告:增大此值会提高引擎地图生成器速度,但会由于\n" "干扰其他进程而影响游戏体验,尤其是单人模式或运行\n" "‘on_generated’中的Lua代码。对于大部分用户来说,最\n" -"佳值为1。" +"佳值为'1'。" #: src/settings_translation_file.cpp msgid "" @@ -5662,10 +5598,6 @@ msgstr "" "这是与sqlite交互和内存消耗的平衡。\n" "(4096=100MB,按经验法则)。" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "视差遮蔽迭代数。" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "在线内容仓库(ContentDB)" @@ -5693,34 +5625,6 @@ msgstr "" "当窗口焦点丢失是打开暂停菜单。如果游戏内窗口打开,\n" "则不暂停。" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "视差遮蔽效果的整体斜纹,通常为比例/2。" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "视差遮蔽效果的总体比例。" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "视差遮蔽" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "视差遮蔽偏移" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "视差遮蔽迭代" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "视差遮蔽模式" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "视差遮蔽比例" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5739,6 +5643,8 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"路径保存截图。可以是绝对路径或相对路径。\n" +"如果该文件夹不存在,将创建它。" #: src/settings_translation_file.cpp msgid "" @@ -5780,12 +5686,11 @@ msgstr "丢失窗口焦点时暂停" #: src/settings_translation_file.cpp msgid "Per-player limit of queued blocks load from disk" -msgstr "" +msgstr "每个玩家从磁盘加载的队列块的限制" #: src/settings_translation_file.cpp -#, fuzzy msgid "Per-player limit of queued blocks to generate" -msgstr "要生成的生产队列限制" +msgstr "每个玩家要生成的生产队列限制" #: src/settings_translation_file.cpp msgid "Physics" @@ -5799,6 +5704,16 @@ msgstr "俯仰移动键" msgid "Pitch move mode" msgstr "俯仰移动模式" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "飞行键" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "右击重复间隔" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5865,7 +5780,7 @@ msgstr "性能分析" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Prometheus 监听器地址" #: src/settings_translation_file.cpp msgid "" @@ -5874,6 +5789,10 @@ msgid "" "enable metrics listener for Prometheus on that address.\n" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"Prometheus 监听器地址。\n" +"如果minetest是在启用ENABLE_PROMETHEUS选项的情况下编译的,\n" +"在该地址上为 Prometheus 启用指标侦听器。\n" +"可以从 http://127.0.0.1:30000/metrics 获取指标" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." @@ -5976,10 +5895,6 @@ msgstr "山脊大小噪声" msgid "Right key" msgstr "右方向键" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "右击重复间隔" - #: src/settings_translation_file.cpp msgid "River channel depth" msgstr "河道深度" @@ -6269,6 +6184,20 @@ msgstr "显示调试信息" msgid "Show entity selection boxes" msgstr "显示实体选择框" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"设定语言。留空以使用系统语言。\n" +"变更后须重新启动。" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "默认粗体" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "关闭消息" @@ -6305,7 +6234,7 @@ msgstr "切片 w" #: src/settings_translation_file.cpp msgid "Slope and fill work together to modify the heights." -msgstr "" +msgstr "斜率和填充共同工作来修改高度。" #: src/settings_translation_file.cpp msgid "Small cave maximum number" @@ -6385,6 +6314,8 @@ msgid "" "Note that mods or games may explicitly set a stack for certain (or all) " "items." msgstr "" +"指定节点、物品和工具的默认堆叠数量。\n" +"请注意,mod或游戏可能会为某些(或所有)项目明确设置堆栈。" #: src/settings_translation_file.cpp msgid "" @@ -6392,6 +6323,9 @@ msgid "" "Controls the width of the range to be boosted.\n" "Standard deviation of the light curve boost Gaussian." msgstr "" +"光曲线提升范围的分布。\n" +"控制要提升的范围的宽度。\n" +"光曲线的标准偏差可提升高斯。" #: src/settings_translation_file.cpp msgid "Static spawnpoint" @@ -6399,25 +6333,19 @@ msgstr "静态重生点" #: src/settings_translation_file.cpp msgid "Steepness noise" -msgstr "" +msgstr "陡度噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Step mountain size noise" -msgstr "地形高度" +msgstr "单步山峰高度噪声" #: src/settings_translation_file.cpp msgid "Step mountain spread noise" -msgstr "" +msgstr "单步山峰广度噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Strength of 3D mode parallax." -msgstr "视差强度。" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "生成的一般地图强度。" +msgstr "3D 模式视差的强度。" #: src/settings_translation_file.cpp msgid "" @@ -6425,6 +6353,9 @@ msgid "" "The 3 'boost' parameters define a range of the light\n" "curve that is boosted in brightness." msgstr "" +"光照曲线提升的强度。\n" +"3 个'boost'参数定义了在亮度上提升的\n" +"光照曲线的范围。" #: src/settings_translation_file.cpp msgid "Strict protocol checking" @@ -6432,7 +6363,7 @@ msgstr "严格协议检查" #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "" +msgstr "条形颜色代码" #: src/settings_translation_file.cpp msgid "" @@ -6447,6 +6378,16 @@ msgid "" "server-intensive extreme water flow and to avoid vast flooding of the\n" "world surface below." msgstr "" +"放置在固体浮地层的可选水的表面水平。\n" +"默认情况下,水处于禁用状态,并且仅在设置此值时才放置\n" +"在'mgv7_floatland_ymax' - 'mgv7_floatland_taper'上(\n" +"上部逐渐变细的开始)。\n" +"***警告,世界存档和服务器性能的潜在危险***:\n" +"启用水放置时,必须配置和测试悬空岛\n" +"通过将\"mgv7_floatland_density\"设置为 2.0(或其他\n" +"所需的值,具体取决于mgv7_np_floatland\"),确保是固体层,\n" +"以避免服务器密集的极端水流,\n" +"并避免地表的巨大的洪水。" #: src/settings_translation_file.cpp msgid "Synchronous SQLite" @@ -6454,32 +6395,27 @@ msgstr "同步 SQLite" #: src/settings_translation_file.cpp msgid "Temperature variation for biomes." -msgstr "" +msgstr "生物群系的温度变化。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain alternative noise" -msgstr "地形高度" +msgstr "地形替代噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain base noise" -msgstr "地形高度" +msgstr "地形基准高度噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain height" msgstr "地形高度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain higher noise" -msgstr "地形高度" +msgstr "地形增高噪声" #: src/settings_translation_file.cpp -#, fuzzy msgid "Terrain noise" -msgstr "地形高度" +msgstr "地形噪声" #: src/settings_translation_file.cpp msgid "" @@ -6487,6 +6423,9 @@ msgid "" "Controls proportion of world area covered by hills.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"丘陵的地形噪声阈值。\n" +"控制山丘覆盖的世界区域的比例。\n" +"朝0.0调整较大的比例。" #: src/settings_translation_file.cpp msgid "" @@ -6494,14 +6433,17 @@ msgid "" "Controls proportion of world area covered by lakes.\n" "Adjust towards 0.0 for a larger proportion." msgstr "" +"湖泊的地形噪声阈值。\n" +"控制被湖泊覆盖的世界区域的比例。\n" +"朝0.0调整较大的比例。" #: src/settings_translation_file.cpp msgid "Terrain persistence noise" -msgstr "" +msgstr "地形持久性噪声" #: src/settings_translation_file.cpp msgid "Texture path" -msgstr "纹理路径" +msgstr "材质路径" #: src/settings_translation_file.cpp msgid "" @@ -6514,7 +6456,12 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "The URL for the content repository" +msgstr "内容存储库的 URL" + +#: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" msgstr "" #: src/settings_translation_file.cpp @@ -6578,8 +6525,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6603,6 +6550,12 @@ msgid "" "items. A value of 0 disables the functionality." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6611,9 +6564,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp @@ -6626,6 +6578,9 @@ msgid "" "enabled. Also the vertical distance over which humidity drops by 10 if\n" "'altitude_dry' is enabled." msgstr "" +"如果'altitude_chill'开启,则热量下降20的垂直距离\n" +"已启用。如果湿度下降的垂直距离也是10\n" +"已启用“ altitude_dry”。" #: src/settings_translation_file.cpp #, fuzzy @@ -6637,10 +6592,12 @@ msgid "" "Time in seconds for item entity (dropped items) to live.\n" "Setting it to -1 disables the feature." msgstr "" +"项目实体(删除的项目)生存的时间(以秒为单位)。\n" +"将其设置为 -1 将禁用该功能。" #: src/settings_translation_file.cpp msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" +msgstr "一天中开始一个新世界的时间,以毫小时为单位(0-23999)。" #: src/settings_translation_file.cpp msgid "Time send interval" @@ -6671,13 +6628,12 @@ msgid "Tooltip delay" msgstr "工具提示延迟" #: src/settings_translation_file.cpp -#, fuzzy msgid "Touch screen threshold" -msgstr "海滩噪音阈值" +msgstr "触屏阈值" #: src/settings_translation_file.cpp msgid "Trees noise" -msgstr "" +msgstr "树木噪声" #: src/settings_translation_file.cpp msgid "Trilinear filtering" @@ -6689,6 +6645,9 @@ msgid "" "False = 128\n" "Usable to make minimap smoother on slower machines." msgstr "" +"True = 256\n" +"False = 128\n" +"可用于在较慢的机器上使最小地图更平滑。" #: src/settings_translation_file.cpp msgid "Trusted mods" @@ -6696,11 +6655,12 @@ msgstr "可信 mod" #: src/settings_translation_file.cpp msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" +msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Undersampling" -msgstr "" +msgstr "欠采样" #: src/settings_translation_file.cpp msgid "" @@ -6724,17 +6684,17 @@ msgid "Upper Y limit of dungeons." msgstr "地窖的Y值上限。" #: src/settings_translation_file.cpp -#, fuzzy msgid "Upper Y limit of floatlands." -msgstr "地窖的Y值上限。" +msgstr "悬空岛的Y值上限。" #: src/settings_translation_file.cpp msgid "Use 3D cloud look instead of flat." msgstr "使用 3D 云彩,而不是看起来是平面的。" #: src/settings_translation_file.cpp +#, fuzzy msgid "Use a cloud animation for the main menu background." -msgstr "" +msgstr "主菜单背景使用云动画。" #: src/settings_translation_file.cpp msgid "Use anisotropic filtering when viewing at textures from an angle." @@ -6751,6 +6711,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "" @@ -6760,12 +6731,10 @@ msgid "VBO" msgstr "VBO" #: src/settings_translation_file.cpp -#, fuzzy msgid "VSync" msgstr "垂直同步" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley depth" msgstr "山谷深度" @@ -6775,26 +6744,24 @@ msgid "Valley fill" msgstr "山谷弥漫" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley profile" msgstr "山谷轮廓" #: src/settings_translation_file.cpp -#, fuzzy msgid "Valley slope" msgstr "山谷坡度" #: src/settings_translation_file.cpp msgid "Variation of biome filler depth." -msgstr "" +msgstr "生物群落填充物深度的变化。" #: src/settings_translation_file.cpp msgid "Variation of maximum mountain height (in nodes)." -msgstr "" +msgstr "最大山体高度的变化(以节点为单位)。" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "洞口数量的变化。" #: src/settings_translation_file.cpp msgid "" @@ -6835,11 +6802,8 @@ msgid "View bobbing factor" msgstr "范围摇动" #: src/settings_translation_file.cpp -#, fuzzy msgid "View distance in nodes." -msgstr "" -"节点间可视距离。\n" -"最小 = 20" +msgstr "可视距离(以节点方块为单位)。" #: src/settings_translation_file.cpp msgid "View range decrease key" @@ -6885,7 +6849,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgstr "步行和飞行速度,单位为方块每秒。" #: src/settings_translation_file.cpp msgid "Walking speed" @@ -6893,13 +6857,14 @@ msgstr "步行速度" #: src/settings_translation_file.cpp msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgstr "快速模式下的步行、飞行和攀爬速度,单位为方块每秒。" #: src/settings_translation_file.cpp msgid "Water level" -msgstr "水级别" +msgstr "水位" #: src/settings_translation_file.cpp +#, fuzzy msgid "Water surface level of the world." msgstr "世界水平面级别。" @@ -6912,24 +6877,20 @@ msgid "Waving leaves" msgstr "摇动树叶" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids" -msgstr "摇动流体" +msgstr "波动流体" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave height" -msgstr "摇动水高度" +msgstr "波动液体波动高度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wave speed" -msgstr "摇动水速度" +msgstr "波动液体波动速度" #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving liquids wavelength" -msgstr "摇动水长度" +msgstr "波动液体波动长度" #: src/settings_translation_file.cpp msgid "Waving plants" @@ -6970,6 +6931,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" @@ -7092,10 +7059,28 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Y-level of lower terrain and seabed." -msgstr "" +msgstr "较低地形与海底的Y坐标。" #: src/settings_translation_file.cpp msgid "Y-level of seabed." +msgstr "海底的Y坐标。" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" msgstr "" #: src/settings_translation_file.cpp @@ -7110,23 +7095,12 @@ msgstr "cURL 并发限制" msgid "cURL timeout" msgstr "cURL 超时" -#~ msgid "Ok" -#~ msgstr "确定" - -#~ msgid "Back" -#~ msgstr "后退" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下载和安装 $1,请稍等..." - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "磁盘上的生产队列限制" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "视差遮蔽强度" - -#~ msgid "Path to save screenshots at." -#~ msgstr "屏幕截图保存路径。" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = 利用梯度信息进行视差遮蔽 (较快).\n" +#~ "1 = 浮雕映射 (较慢, 但准确)." #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7136,6 +7110,37 @@ msgstr "cURL 超时" #~ "调整亮度表的伽玛编码。较高的数值会较亮。\n" #~ "这个设定是给客户端使用的,会被服务器忽略。" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "你确定要重置你的单人世界吗?" + +#~ msgid "Back" +#~ msgstr "后退" + +#~ msgid "Bump Mapping" +#~ msgstr "凹凸贴图" + +#~ msgid "Bumpmapping" +#~ msgstr "凹凸贴图" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "主菜单UI的变化:\n" +#~ "- 完整 多个单人世界,子游戏选择,材质包选择器等。\n" +#~ "- 简单:单个单人世界,无子游戏材质包选择器。可能\n" +#~ "需要用于小屏幕。" + +#~ msgid "Config mods" +#~ msgstr "配置 mod" + +#~ msgid "Configure" +#~ msgstr "配置" + #, fuzzy #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" @@ -7147,6 +7152,9 @@ msgstr "cURL 超时" #~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." #~ msgstr "控制隧道宽度,较小的值创建更宽的隧道。" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "准星颜色(红,绿,蓝)。" + #, fuzzy #~ msgid "Darkness sharpness" #~ msgstr "地图生成器平面湖坡度" @@ -7158,18 +7166,68 @@ msgstr "cURL 超时" #~ "定义 floatland 平滑地形的区域。\n" #~ "当噪音0时, 平滑的 floatlands 发生。" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定义材质采样步骤。\n" +#~ "数值越高常态贴图越平滑。" + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下载和安装 $1,请稍等..." + #~ msgid "Enable VBO" #~ msgstr "启用 VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "启用材质的凹凸贴图效果。需要材质包支持法线贴图,\n" +#~ "否则将自动生成法线。\n" +#~ "需要启用着色器。" + #~ msgid "Enables filmic tone mapping" #~ msgstr "启用电影基调映射" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "启用即时法线贴图生成(浮雕效果)。\n" +#~ "需要启用凹凸贴图。" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "启用视差遮蔽贴图。\n" +#~ "需要启用着色器。" + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "实验性选项,设为大于 0 的数字时可能导致\n" +#~ "块之间出现可见空间。" + +#~ msgid "FPS in pause menu" +#~ msgstr "暂停菜单 FPS" + #~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." #~ msgstr "字体阴影不透明度(0-255)。" #~ msgid "Gamma" #~ msgstr "伽马" +#~ msgid "Generate Normal Maps" +#~ msgstr "生成法线贴图" + +#~ msgid "Generate normalmaps" +#~ msgstr "生成发现贴图" + #~ msgid "IPv6 support." #~ msgstr "IPv6 支持。" @@ -7177,25 +7235,112 @@ msgstr "cURL 超时" #~ msgid "Lava depth" #~ msgstr "巨大洞穴深度" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "磁盘上的生产队列限制" + +#~ msgid "Main" +#~ msgstr "主菜单" + +#~ msgid "Main menu style" +#~ msgstr "主菜单样式" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "雷达小地图,放大至两倍" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "雷达小地图, 放大至四倍" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "地表模式小地图, 放大至两倍" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "地表模式小地图, 放大至四倍" + +#~ msgid "Name/Password" +#~ msgstr "用户名/密码" + +#~ msgid "No" +#~ msgstr "否" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法线贴图采样" + +#~ msgid "Normalmaps strength" +#~ msgstr "法线贴图强度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "视差遮蔽迭代数。" + +#~ msgid "Ok" +#~ msgstr "确定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "视差遮蔽效果的整体斜纹,通常为比例/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "视差遮蔽效果的总体比例。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "视差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "视差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "视差遮蔽偏移" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "视差遮蔽迭代" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "视差遮蔽模式" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "视差遮蔽比例" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "视差遮蔽强度" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "TrueType 字体或位图的路径。" +#~ msgid "Path to save screenshots at." +#~ msgstr "屏幕截图保存路径。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "重置单人世界" + +#~ msgid "Select Package File:" +#~ msgstr "选择包文件:" + #, fuzzy #~ msgid "Shadow limit" #~ msgstr "地图块限制" +#~ msgid "Start Singleplayer" +#~ msgstr "单人游戏" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成的一般地图强度。" + #~ msgid "This font will be used for certain languages." #~ msgstr "用于特定语言的字体。" -#~ msgid "Waving water" -#~ msgstr "摇动水" +#~ msgid "Toggle Cinematic" +#~ msgstr "切换电影模式" + +#~ msgid "View" +#~ msgstr "视野" #~ msgid "Waving Water" #~ msgstr "流动的水面" +#~ msgid "Waving water" +#~ msgstr "摇动水" + #, fuzzy #~ msgid "Y of upper limit of lava in large caves." #~ msgstr "大型随机洞穴的Y轴最大值。" -#~ msgid "Select Package File:" -#~ msgstr "选择包文件:" +#~ msgid "Yes" +#~ msgstr "是" diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po index bbe13a281..99332e226 100644 --- a/po/zh_TW/minetest.po +++ b/po/zh_TW/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Traditional) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-22 14:59+0200\n" -"PO-Revision-Date: 2020-01-29 13:50+0000\n" -"Last-Translator: pan93412 \n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-12-24 05:29+0000\n" +"Last-Translator: Man Ho Yiu \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_TW\n" @@ -12,11 +12,20 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "Respawn" +msgstr "重生" + +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "您已死亡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp +#, fuzzy msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -38,10 +47,6 @@ msgstr "重新連線" msgid "The server has requested a reconnect:" msgstr "伺服器已要求重新連線:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "正在載入..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "協定版本不符合。 " @@ -54,10 +59,6 @@ msgstr "伺服器強制協定版本 $1。 " msgid "Server supports protocol versions between $1 and $2. " msgstr "伺服器支援協定版本 $1 到 $2。 " -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "請嘗試重新啟用公共伺服器清單並檢查您的網際網路連線。" - #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "我們只支援協定版本 $1。" @@ -66,7 +67,8 @@ msgstr "我們只支援協定版本 $1。" msgid "We support protocol versions between version $1 and $2." msgstr "我們支援協定版本 $1 到 $2。" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -76,7 +78,8 @@ msgstr "我們支援協定版本 $1 到 $2。" msgid "Cancel" msgstr "取消" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "相依元件:" @@ -104,7 +107,7 @@ msgstr "無法啟用 Mod「$1」,因為其包含了不允許的字元。只能 #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "" +msgstr "搜尋更多 Mod" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -147,17 +150,59 @@ msgstr "世界:" msgid "enabled" msgstr "已啟用" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "$1 downloading..." +msgstr "正在載入..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" + #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "所有套件" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "已使用此按鍵" + #: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "返回主選單" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "主持遊戲" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "在沒有cURL的情況下編譯Minetest時,ContentDB不可用" #: builtin/mainmenu/dlg_contentstore.lua #, fuzzy @@ -177,6 +222,16 @@ msgstr "遊戲" msgid "Install" msgstr "安裝" +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "安裝" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "可選相依元件:" + #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" @@ -191,9 +246,25 @@ msgid "No results" msgstr "無結果" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "搜尋" +#, fuzzy +msgid "No updates" +msgstr "更新" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -208,7 +279,11 @@ msgid "Update" msgstr "更新" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -216,8 +291,9 @@ msgid "A world named \"$1\" already exists" msgstr "名為「$1」的世界已存在" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Additional terrain" -msgstr "" +msgstr "其他地形" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Altitude chill" @@ -271,8 +347,9 @@ msgid "Dungeons" msgstr "地城雜訊" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Flat terrain" -msgstr "" +msgstr "平坦世界" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -294,7 +371,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "山" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -302,16 +379,18 @@ msgid "Humid rivers" msgstr "顯示卡驅動程式" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Increases humidity around rivers" -msgstr "" +msgstr "增加河流周圍的濕度" #: builtin/mainmenu/dlg_create_world.lua msgid "Lakes" -msgstr "" +msgstr "河流" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" +msgstr "因低濕度和高熱量而導致河流淺或乾燥" #: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp msgid "Mapgen" @@ -333,11 +412,12 @@ msgstr "山雜訊" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" -msgstr "" +msgstr "泥石流" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Network of tunnels and caves" -msgstr "" +msgstr "隧道和洞穴網絡" #: builtin/mainmenu/dlg_create_world.lua msgid "No game selected" @@ -358,7 +438,7 @@ msgstr "河流大小" #: builtin/mainmenu/dlg_create_world.lua msgid "Sea level rivers" -msgstr "" +msgstr "生成在海平面的河流" #: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -367,21 +447,23 @@ msgstr "種子" #: builtin/mainmenu/dlg_create_world.lua msgid "Smooth transition between biomes" -msgstr "" +msgstr "生態域之間的平穩過渡" #: builtin/mainmenu/dlg_create_world.lua msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "" +msgstr "出現在地形上的結構(對v6地圖生成器創建的樹木和叢林草無影響)" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgstr "出現在地形上的結構,通常是樹木和植物" #: builtin/mainmenu/dlg_create_world.lua +#, fuzzy msgid "Temperate, Desert" -msgstr "" +msgstr "溫帶沙漠" #: builtin/mainmenu/dlg_create_world.lua msgid "Temperate, Desert, Jungle" @@ -407,7 +489,7 @@ msgstr "河流深度" #: builtin/mainmenu/dlg_create_world.lua msgid "Very large caverns deep in the underground" -msgstr "" +msgstr "地下深處的巨大洞穴" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -474,11 +556,6 @@ msgstr "< 回到設定頁面" msgid "Browse" msgstr "瀏覽" -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "Clientmods" -msgstr "用戶端" - #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" msgstr "已停用" @@ -526,6 +603,10 @@ msgstr "還原至預設值" msgid "Scale" msgstr "規模" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "搜尋" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "選擇目錄" @@ -641,6 +722,19 @@ msgstr "無法將 Mod 安裝為 $1" msgid "Unable to install a modpack as a $1" msgstr "無法將 Mod 包安裝為 $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "正在載入..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "已停用用戶端指令稿" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "請嘗試重新啟用公共伺服器清單並檢查您的網際網路連線。" + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "瀏覽線上內容" @@ -694,7 +788,14 @@ msgid "Credits" msgstr "感謝" #: builtin/mainmenu/tab_credits.lua -msgid "Hackers" +#, fuzzy +msgid "Open User Data Directory" +msgstr "選擇目錄" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -714,14 +815,10 @@ msgid "Bind Address" msgstr "綁定地址" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "設定" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "創造模式" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "啟用傷害" @@ -734,12 +831,13 @@ msgid "Host Server" msgstr "主機伺服器" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Install games from ContentDB" -msgstr "" +msgstr "從ContentDB安裝遊戲" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "名稱/密碼" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -749,6 +847,11 @@ msgstr "新增" msgid "No world created or selected!" msgstr "未建立或選取世界!" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "新密碼" + #: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "遊玩遊戲" @@ -757,6 +860,11 @@ msgstr "遊玩遊戲" msgid "Port" msgstr "連線埠" +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "選取世界:" + #: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "選取世界:" @@ -773,23 +881,23 @@ msgstr "開始遊戲" msgid "Address / Port" msgstr "地址/連線埠" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "連線" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "創造模式" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "已啟用傷害" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "刪除收藏" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "收藏" @@ -797,16 +905,16 @@ msgstr "收藏" msgid "Join Game" msgstr "加入遊戲" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "名稱/密碼" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "已啟用 PvP" @@ -834,10 +942,6 @@ msgstr "所有設定" msgid "Antialiasing:" msgstr "反鋸齒:" -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "您確定要重設您的單人遊戲世界嗎?" - #: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "自動儲存螢幕大小" @@ -846,10 +950,6 @@ msgstr "自動儲存螢幕大小" msgid "Bilinear Filter" msgstr "雙線性過濾器" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "映射貼圖" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "變更按鍵" @@ -862,10 +962,6 @@ msgstr "連接玻璃" msgid "Fancy Leaves" msgstr "華麗葉子" -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "產生一般地圖" - #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mip 貼圖" @@ -874,10 +970,6 @@ msgstr "Mip 貼圖" msgid "Mipmap + Aniso. Filter" msgstr "Mip 貼圖 + Aniso. 過濾器" -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "否" - #: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "沒有過濾器" @@ -906,18 +998,10 @@ msgstr "不透明葉子" msgid "Opaque Water" msgstr "不透明水" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "視差遮蔽" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "粒子" -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "重設單人遊戲世界" - #: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "螢幕:" @@ -930,6 +1014,11 @@ msgstr "設定" msgid "Shaders" msgstr "著色器" +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "浮地高度" + #: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "著色器(無法使用)" @@ -974,22 +1063,6 @@ msgstr "擺動液體" msgid "Waving Plants" msgstr "植物擺動" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "是" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "設定 Mod" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "主要" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "開始單人遊戲" - #: src/client/client.cpp msgid "Connection timed out." msgstr "連線逾時。" @@ -1151,18 +1224,15 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" -"- %s: special inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" -"- %s: Killaura\n" -"- %s: Freecam\n" msgstr "" "控制:\n" "- %s:向前移動\n" @@ -1275,16 +1345,6 @@ msgstr "已停用霧氣" msgid "Fog enabled" msgstr "已啟用霧氣" -#: src/client/game.cpp -#, fuzzy -msgid "Freecam disabled" -msgstr "已停用霧氣" - -#: src/client/game.cpp -#, fuzzy -msgid "Freecam enabled" -msgstr "已啟用霧氣" - #: src/client/game.cpp msgid "Game info:" msgstr "遊戲資訊:" @@ -1305,16 +1365,6 @@ msgstr "定義物品..." msgid "KiB/s" msgstr "KiB/秒" -#: src/client/game.cpp -#, fuzzy -msgid "Killaura disabled" -msgstr "已停用霧氣" - -#: src/client/game.cpp -#, fuzzy -msgid "Killaura enabled" -msgstr "已啟用傷害" - #: src/client/game.cpp msgid "Media..." msgstr "媒體..." @@ -1327,34 +1377,6 @@ msgstr "MiB/秒" msgid "Minimap currently disabled by game or mod" msgstr "迷你地圖目前已被遊戲或 Mod 停用" -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "已隱藏迷你地圖" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "雷達模式的迷你地圖,放大 1 倍" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "雷達模式的迷你地圖,放大 2 倍" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "雷達模式的迷你地圖,放大 4 倍" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "表面模式的迷你地圖,放大 1 倍" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "表面模式的迷你地圖,放大 2 倍" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "表面模式的迷你地圖,放大 4 倍" - #: src/client/game.cpp msgid "Noclip mode disabled" msgstr "已停用穿牆模式" @@ -1399,10 +1421,6 @@ msgstr "遠端伺服器" msgid "Resolving address..." msgstr "正在解析地址……" -#: src/client/game.cpp -msgid "Respawn" -msgstr "重生" - #: src/client/game.cpp msgid "Shutting down..." msgstr "正在關閉..." @@ -1420,12 +1438,13 @@ msgid "Sound muted" msgstr "已靜音" #: src/client/game.cpp +#, fuzzy msgid "Sound system is disabled" -msgstr "" +msgstr "聲音系統已被禁用" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "此編譯版本不支持聲音系統" #: src/client/game.cpp msgid "Sound unmuted" @@ -1455,10 +1474,6 @@ msgstr "音量已調整為 %d%%" msgid "Wireframe shown" msgstr "已顯示線框" -#: src/client/game.cpp -msgid "You died" -msgstr "您已死亡" - #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" msgstr "遠近調整目前已被遊戲或模組停用" @@ -1475,16 +1490,6 @@ msgstr "隱藏聊天室" msgid "Chat shown" msgstr "顯示聊天室" -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu hidden" -msgstr "隱藏聊天室" - -#: src/client/gameui.cpp -#, fuzzy -msgid "Cheat Menu shown" -msgstr "顯示聊天室" - #: src/client/gameui.cpp msgid "HUD hidden" msgstr "已隱藏 HUD" @@ -1765,6 +1770,25 @@ msgstr "X 按鈕 2" msgid "Zoom" msgstr "遠近調整" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "已隱藏迷你地圖" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "雷達模式的迷你地圖,放大 1 倍" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "表面模式的迷你地圖,放大 1 倍" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "過濾器的最大材質大小" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "密碼不符合!" @@ -1806,26 +1830,6 @@ msgstr "自動跳躍" msgid "Backward" msgstr "後退" -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Enter" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Left" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Right" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "C. Menu Up" -msgstr "" - #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" msgstr "變更相機" @@ -1918,30 +1922,10 @@ msgstr "潛行" msgid "Special" msgstr "特殊" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Special Inv." -msgstr "特殊" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle C. Menu" -msgstr "切換過場動畫" - -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Freec." -msgstr "切換過場動畫" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" msgstr "切換 HUD" -#: src/gui/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Toggle Killaura" -msgstr "切換飛行模式" - #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" msgstr "切換聊天記錄" @@ -2059,14 +2043,6 @@ msgid "" "an island, set all 3 numbers equal for the raw shape." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = 包含斜率資訊的視差遮蔽(較快)。\n" -"1 = 替換貼圖(較慢,較準確)。" - #: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "控制山脊之形狀或大小的 2D 雜訊值。" @@ -2190,6 +2166,10 @@ msgstr "當伺服器關機時要顯示在所有用戶端上的訊息。" msgid "ABM interval" msgstr "ABM 間隔" +#: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "Absolute limit of queued blocks to emerge" @@ -2445,10 +2425,6 @@ msgstr "在玩家內構建" msgid "Builtin" msgstr "內建" -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "映射貼圖" - #: src/settings_translation_file.cpp msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2520,16 +2496,6 @@ msgid "" "Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - #: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" @@ -2688,6 +2654,10 @@ msgstr "終端機高度" msgid "ContentDB Flag Blacklist" msgstr "" +#: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "" + #: src/settings_translation_file.cpp #, fuzzy msgid "ContentDB URL" @@ -2749,7 +2719,10 @@ msgid "Crosshair alpha" msgstr "十字 alpha 值" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +#, fuzzy +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "十字 alpha 值(不透明,0 至 255間)。" #: src/settings_translation_file.cpp @@ -2757,8 +2730,10 @@ msgid "Crosshair color" msgstr "十字色彩" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "十字色彩 (R,G,B)。" +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2864,14 +2839,6 @@ msgstr "定義大型河道結構。" msgid "Defines location and terrain of optional hills and lakes." msgstr "定義可選的山丘與湖泊的位置與地形。" -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"定義材質的採樣步驟。\n" -"較高的值會有較平滑的一般地圖。" - #: src/settings_translation_file.cpp #, fuzzy msgid "Defines the base ground level." @@ -2952,6 +2919,11 @@ msgstr "" msgid "Desynchronize block animation" msgstr "異步化方塊動畫" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "右鍵" + #: src/settings_translation_file.cpp msgid "Digging particles" msgstr "挖掘粒子" @@ -3016,7 +2988,8 @@ msgid "Enable console window" msgstr "啟用終端機視窗" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "為新建立的地圖啟用創造模式。" #: src/settings_translation_file.cpp @@ -3119,17 +3092,6 @@ msgstr "" msgid "Enables animation of inventory items." msgstr "啟用物品欄物品動畫。" -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"為材質啟用貼圖轉儲。普通地圖需要材質包的支援\n" -"或是自動生成。\n" -"必須啟用著色器。" - #: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "啟用面旋轉方向的網格快取。" @@ -3138,22 +3100,6 @@ msgstr "啟用面旋轉方向的網格快取。" msgid "Enables minimap." msgstr "啟用小地圖。" -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"啟用忙碌的一般地圖生成(浮雕效果)。\n" -"必須啟用貼圖轉儲。" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"啟用視差遮蔽貼圖。\n" -"必須啟用著色器。" - #: src/settings_translation_file.cpp msgid "" "Enables the sound system.\n" @@ -3170,14 +3116,6 @@ msgstr "引擎性能資料印出間隔" msgid "Entity methods" msgstr "主體方法" -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"實驗性選項,當設定到大於零的值時\n" -"也許會造成在方塊間有視覺空隙。" - #: src/settings_translation_file.cpp msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" @@ -3189,8 +3127,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "在暫停選單中的 FPS" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "當遊戲暫停時的最高 FPS。" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3516,10 +3455,6 @@ msgstr "圖形使用者介面縮放過濾器" msgid "GUI scaling filter txr2img" msgstr "圖形使用者介面縮放比例過濾器 txr2img" -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "生成一般地圖" - #: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "全域回呼" @@ -3582,8 +3517,8 @@ msgstr "HUD 切換鍵" #, fuzzy msgid "" "Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" "- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" "處理已棄用的 Lua API 呼叫:\n" @@ -4083,6 +4018,11 @@ msgstr "搖桿 ID" msgid "Joystick button repetition interval" msgstr "搖桿按鈕重覆間隔" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Joystick deadzone" +msgstr "搖桿類型" + #: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "搖桿靈敏度" @@ -4185,6 +4125,17 @@ msgstr "" "請見 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"跳躍的按鍵。\n" +"請見 http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" @@ -4327,6 +4278,17 @@ msgstr "" "請見 http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"跳躍的按鍵。\n" +"請見 http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + #: src/settings_translation_file.cpp msgid "" "Key for selecting the 11th hotbar slot.\n" @@ -5076,11 +5038,6 @@ msgstr "大型偽隨機洞穴的 Y 上限。" msgid "Main menu script" msgstr "主選單指令稿" -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "主選單指令稿" - #: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." @@ -5094,6 +5051,14 @@ msgstr "讓 DirectX 與 LuaJIT 一同運作。若其造成麻煩則請停用。" msgid "Makes all liquids opaque" msgstr "讓所有的液體不透明" +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "" + #: src/settings_translation_file.cpp msgid "Map directory" msgstr "地圖目錄" @@ -5294,7 +5259,8 @@ msgid "Maximum FPS" msgstr "最高 FPS" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "當遊戲暫停時的最高 FPS。" #: src/settings_translation_file.cpp @@ -5348,6 +5314,13 @@ msgstr "" "可被放進佇列內等待從檔案載入的最大區塊數。\n" "將其設定留空則會自動選擇適當的值。" +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" + #: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "強制載入地圖區塊的最大數量。" @@ -5594,14 +5567,6 @@ msgstr "NodeTimer 間隔" msgid "Noises" msgstr "雜訊" -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "法線貼圖採樣" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "法線貼圖強度" - #: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "出現的執行緒數" @@ -5630,10 +5595,6 @@ msgstr "" "這是與 sqlite 處理耗費的折衷與\n" "記憶體耗費(根據經驗,4096=100MB)。" -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "視差遮蔽迭代次數。" - #: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5659,35 +5620,6 @@ msgid "" "open." msgstr "" -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "視差遮蔽效果的總偏差,通常是規模/2。" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "視差遮蔽效果的總規模。" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "視差遮蔽" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "視差遮蔽偏差" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "視差遮蔽迭代" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "視差遮蔽模式" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "視差遮蔽係數" - #: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" @@ -5755,6 +5687,16 @@ msgstr "飛行按鍵" msgid "Pitch move mode" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "飛行按鍵" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "右鍵點擊重覆間隔" + #: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" @@ -5922,10 +5864,6 @@ msgstr "山脊大小雜訊" msgid "Right key" msgstr "右鍵" -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "右鍵點擊重覆間隔" - #: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" @@ -6228,6 +6166,19 @@ msgstr "顯示除錯資訊" msgid "Show entity selection boxes" msgstr "顯示物體選取方塊" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"設定語言。留空以使用系統語言。\n" +"變更後必須重新啟動以使其生效。" + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + #: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "關閉訊息" @@ -6373,10 +6324,6 @@ msgstr "山雜訊" msgid "Strength of 3D mode parallax." msgstr "視差強度。" -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "生成之一般地圖的強度。" - #: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" @@ -6477,6 +6424,11 @@ msgstr "" msgid "The URL for the content repository" msgstr "" +#: src/settings_translation_file.cpp +#, fuzzy +msgid "The deadzone of the joystick" +msgstr "要使用的搖桿的識別碼" + #: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" @@ -6541,8 +6493,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -6575,6 +6527,12 @@ msgstr "" "超過時將會嘗試透過傾倒舊佇列項目減少其\n" "大小。將值設為 0 以停用此功能。" +#: src/settings_translation_file.cpp +msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + #: src/settings_translation_file.cpp msgid "" "The time in seconds it takes between repeated events\n" @@ -6586,9 +6544,8 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "當按住滑鼠右鍵時,重覆右鍵點選的間隔以秒計。" #: src/settings_translation_file.cpp @@ -6737,6 +6694,17 @@ msgid "" "Gamma correct downscaling is not supported." msgstr "" +#: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" + #: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "當縮放材質時使用三線性過濾。" @@ -6976,6 +6944,12 @@ msgid "" "If disabled, bitmap and XML vectors fonts are used instead." msgstr "是否使用 freetype 字型,需要將 freetype 支援編譯進來。" +#: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + #: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "是否每個地圖區塊的節點材質動畫可以不同步。" @@ -7111,6 +7085,24 @@ msgstr "較低地形與湖底的 Y 高度。" msgid "Y-level of seabed." msgstr "海底的 Y 高度。" +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + #: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "cURL 檔案下載逾時" @@ -7123,23 +7115,12 @@ msgstr "cURL 並行限制" msgid "cURL timeout" msgstr "cURL 逾時" -#~ msgid "Ok" -#~ msgstr "確定" - -#~ msgid "Back" -#~ msgstr "返回" - -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "正在下載並安裝 $1,請稍候……" - -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "在磁碟上出現佇列的限制" - -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差遮蔽強度" - -#~ msgid "Path to save screenshots at." -#~ msgstr "儲存螢幕截圖的路徑。" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = 包含斜率資訊的視差遮蔽(較快)。\n" +#~ "1 = 替換貼圖(較慢,較準確)。" #~ msgid "" #~ "Adjust the gamma encoding for the light tables. Higher numbers are " @@ -7149,6 +7130,24 @@ msgstr "cURL 逾時" #~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n" #~ "這個設定是給客戶端使用的,會被伺服器忽略。" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "您確定要重設您的單人遊戲世界嗎?" + +#~ msgid "Back" +#~ msgstr "返回" + +#~ msgid "Bump Mapping" +#~ msgstr "映射貼圖" + +#~ msgid "Bumpmapping" +#~ msgstr "映射貼圖" + +#~ msgid "Config mods" +#~ msgstr "設定 Mod" + +#~ msgid "Configure" +#~ msgstr "設定" + #, fuzzy #~ msgid "" #~ "Controls the density of mountain-type floatlands.\n" @@ -7160,6 +7159,9 @@ msgstr "cURL 逾時" #~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." #~ msgstr "控制隧道的寬度,較小的值會創造出較寬的隧道。" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "十字色彩 (R,G,B)。" + #, fuzzy #~ msgid "Darkness sharpness" #~ msgstr "湖泊坡度" @@ -7171,12 +7173,56 @@ msgstr "cURL 逾時" #~ "定義浮地的平整地形區。\n" #~ "平整的浮地會在噪音 > 0 時產生。" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定義材質的採樣步驟。\n" +#~ "較高的值會有較平滑的一般地圖。" + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "正在下載並安裝 $1,請稍候……" + #~ msgid "Enable VBO" #~ msgstr "啟用 VBO" +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "為材質啟用貼圖轉儲。普通地圖需要材質包的支援\n" +#~ "或是自動生成。\n" +#~ "必須啟用著色器。" + #~ msgid "Enables filmic tone mapping" #~ msgstr "啟用電影色調映射" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "啟用忙碌的一般地圖生成(浮雕效果)。\n" +#~ "必須啟用貼圖轉儲。" + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "啟用視差遮蔽貼圖。\n" +#~ "必須啟用著色器。" + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "實驗性選項,當設定到大於零的值時\n" +#~ "也許會造成在方塊間有視覺空隙。" + +#~ msgid "FPS in pause menu" +#~ msgstr "在暫停選單中的 FPS" + #~ msgid "Floatland base height noise" #~ msgstr "浮地基礎高度噪音" @@ -7186,6 +7232,12 @@ msgstr "cURL 逾時" #~ msgid "Gamma" #~ msgstr "Gamma" +#~ msgid "Generate Normal Maps" +#~ msgstr "產生一般地圖" + +#~ msgid "Generate normalmaps" +#~ msgstr "生成一般地圖" + #~ msgid "IPv6 support." #~ msgstr "IPv6 支援。" @@ -7193,15 +7245,102 @@ msgstr "cURL 逾時" #~ msgid "Lava depth" #~ msgstr "大型洞穴深度" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "在磁碟上出現佇列的限制" + +#~ msgid "Main" +#~ msgstr "主要" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "主選單指令稿" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "雷達模式的迷你地圖,放大 2 倍" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "雷達模式的迷你地圖,放大 4 倍" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "表面模式的迷你地圖,放大 2 倍" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "表面模式的迷你地圖,放大 4 倍" + +#~ msgid "Name/Password" +#~ msgstr "名稱/密碼" + +#~ msgid "No" +#~ msgstr "否" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法線貼圖採樣" + +#~ msgid "Normalmaps strength" +#~ msgstr "法線貼圖強度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "視差遮蔽迭代次數。" + +#~ msgid "Ok" +#~ msgstr "確定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "視差遮蔽效果的總偏差,通常是規模/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "視差遮蔽效果的總規模。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion" +#~ msgstr "視差遮蔽" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "視差遮蔽偏差" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "視差遮蔽迭代" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "視差遮蔽模式" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "視差遮蔽係數" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差遮蔽強度" + #~ msgid "Path to TrueTypeFont or bitmap." #~ msgstr "TrueType 字型或點陣字的路徑。" +#~ msgid "Path to save screenshots at." +#~ msgstr "儲存螢幕截圖的路徑。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "重設單人遊戲世界" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "選取 Mod 檔案:" + #~ msgid "Shadow limit" #~ msgstr "陰影限制" +#~ msgid "Start Singleplayer" +#~ msgstr "開始單人遊戲" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生成之一般地圖的強度。" + #~ msgid "This font will be used for certain languages." #~ msgstr "這個字型將會被用於特定的語言。" +#~ msgid "Toggle Cinematic" +#~ msgstr "切換過場動畫" + #, fuzzy #~ msgid "" #~ "Typical maximum height, above and below midpoint, of floatland mountains." @@ -7210,22 +7349,24 @@ msgstr "cURL 逾時" #~ msgid "Variation of hill height and lake depth on floatland smooth terrain." #~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。" +#~ msgid "View" +#~ msgstr "查看" + +#~ msgid "Waving Water" +#~ msgstr "波動的水" + #~ msgid "Waving water" #~ msgstr "波動的水" +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型偽隨機洞穴的 Y 上限。" + #~ msgid "Y-level of floatland midpoint and lake surface." #~ msgstr "浮地中點與湖表面的 Y 高度。" #~ msgid "Y-level to which floatland shadows extend." #~ msgstr "浮地陰影擴展的 Y 高度。" -#~ msgid "Waving Water" -#~ msgstr "波動的水" - -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "大型偽隨機洞穴的 Y 上限。" - -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "選取 Mod 檔案:" +#~ msgid "Yes" +#~ msgstr "是" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b8ce69f1d..9526e88f9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 2.6) - project(minetest) INCLUDE(CheckIncludeFiles) @@ -57,7 +55,7 @@ if(NOT USE_CURL) endif() -option(ENABLE_GETTEXT "Use GetText for internationalization" TRUE) +option(ENABLE_GETTEXT "Use GetText for internationalization" ${BUILD_CLIENT}) set(USE_GETTEXT FALSE) if(ENABLE_GETTEXT) @@ -65,14 +63,13 @@ if(ENABLE_GETTEXT) if(GETTEXTLIB_FOUND) if(WIN32) message(STATUS "GetText library: ${GETTEXT_LIBRARY}") - message(STATUS "GetText DLL: ${GETTEXT_DLL}") - message(STATUS "GetText iconv DLL: ${GETTEXT_ICONV_DLL}") + message(STATUS "GetText DLL(s): ${GETTEXT_DLL}") endif() set(USE_GETTEXT TRUE) message(STATUS "GetText enabled; locales found: ${GETTEXT_AVAILABLE_LOCALES}") endif(GETTEXTLIB_FOUND) else() - mark_as_advanced(GETTEXT_ICONV_DLL GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT) + mark_as_advanced(GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT) message(STATUS "GetText disabled.") endif() @@ -105,11 +102,11 @@ endif() option(ENABLE_GLES "Use OpenGL ES instead of OpenGL" FALSE) mark_as_advanced(ENABLE_GLES) if(BUILD_CLIENT) - if(ENABLE_GLES) - find_package(OpenGLES2 REQUIRED) - else() - # transitive dependency from Irrlicht (see longer explanation below) - if(NOT WIN32) + # transitive dependency from Irrlicht (see longer explanation below) + if(NOT WIN32) + if(ENABLE_GLES) + find_package(OpenGLES2 REQUIRED) + else() set(OPENGL_GL_PREFERENCE "LEGACY" CACHE STRING "See CMake Policy CMP0072 for reference. GLVND is broken on some nvidia setups") set(OpenGL_GL_PREFERENCE ${OPENGL_GL_PREFERENCE}) @@ -123,34 +120,13 @@ endif() option(ENABLE_FREETYPE "Enable FreeType2 (TrueType fonts and basic unicode support)" TRUE) set(USE_FREETYPE FALSE) -if(ENABLE_FREETYPE) -## -## Note: FindFreetype.cmake seems to have been fixed in recent versions of -## CMake. If issues persist, re-enable this workaround specificially for the -## failing platforms. -## -# if(UNIX) -# include(FindPkgConfig) -# if(PKG_CONFIG_FOUND) -# pkg_check_modules(FREETYPE QUIET freetype2) -# if(FREETYPE_FOUND) -# SET(FREETYPE_PKGCONFIG_FOUND TRUE) -# SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES}) -# # Because CMake is idiotic -# string(REPLACE ";" " " FREETYPE_CFLAGS_STR ${FREETYPE_CFLAGS}) -# string(REPLACE ";" " " FREETYPE_LDFLAGS_STR ${FREETYPE_LDFLAGS}) -# endif(FREETYPE_FOUND) -# endif(PKG_CONFIG_FOUND) -# endif(UNIX) -# if(NOT FREETYPE_FOUND) -# find_package(Freetype) -# endif() +if(BUILD_CLIENT AND ENABLE_FREETYPE) find_package(Freetype) if(FREETYPE_FOUND) message(STATUS "Freetype enabled.") set(USE_FREETYPE TRUE) endif() -endif(ENABLE_FREETYPE) +endif() option(ENABLE_CURSES "Enable ncurses console" TRUE) set(USE_CURSES FALSE) @@ -170,7 +146,17 @@ option(ENABLE_POSTGRESQL "Enable PostgreSQL backend" TRUE) set(USE_POSTGRESQL FALSE) if(ENABLE_POSTGRESQL) - find_package("PostgreSQL") + if(CMAKE_VERSION VERSION_LESS "3.20") + find_package(PostgreSQL QUIET) + # Before CMake 3.20 FindPostgreSQL.cmake always looked for server includes + # but we don't need them, so continue anyway if only those are missing. + if(PostgreSQL_INCLUDE_DIR AND PostgreSQL_LIBRARY) + set(PostgreSQL_FOUND TRUE) + set(PostgreSQL_INCLUDE_DIRS ${PostgreSQL_INCLUDE_DIR}) + endif() + else() + find_package(PostgreSQL) + endif() if(PostgreSQL_FOUND) set(USE_POSTGRESQL TRUE) @@ -291,8 +277,10 @@ if(WIN32) if(ENABLE_SOUND) set(OPENAL_DLL "" CACHE FILEPATH "Path to OpenAL32.dll for installation (optional)") set(OGG_DLL "" CACHE FILEPATH "Path to libogg.dll for installation (optional)") - set(VORBIS_DLL "" CACHE FILEPATH "Path to libvorbis.dll for installation (optional)") - set(VORBISFILE_DLL "" CACHE FILEPATH "Path to libvorbisfile.dll for installation (optional)") + set(VORBIS_DLL "" CACHE FILEPATH "Path to Vorbis DLLs for installation (optional)") + endif() + if(USE_GETTEXT) + set(GETTEXT_DLL "" CACHE FILEPATH "Path to Intl/Iconv DLLs for installation (optional)") endif() if(USE_LUAJIT) set(LUA_DLL "" CACHE FILEPATH "Path to luajit-5.1.dll for installation (optional)") @@ -318,7 +306,6 @@ else() endif(NOT HAIKU AND NOT APPLE) find_package(JPEG REQUIRED) - find_package(BZip2 REQUIRED) find_package(PNG REQUIRED) if(APPLE) find_library(CARBON_LIB Carbon REQUIRED) @@ -549,13 +536,16 @@ if(USE_CURL) endif() -set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin") - +# When cross-compiling assume the user doesn't want to run the executable anyway, +# otherwise place it in /bin/ since Minetest can only run from there. +if(NOT CMAKE_CROSSCOMPILING) + set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin") +endif() if(BUILD_CLIENT) add_executable(${PROJECT_NAME} ${client_SRCS} ${extra_windows_SRCS}) add_dependencies(${PROJECT_NAME} GenerateVersion) - set(client_LIBS + target_link_libraries( ${PROJECT_NAME} ${ZLIB_LIBRARIES} ${IRRLICHT_LIBRARY} @@ -571,9 +561,14 @@ if(BUILD_CLIENT) ${PLATFORM_LIBS} ${CLIENT_PLATFORM_LIBS} ) - target_link_libraries( - ${client_LIBS} - ) + if(NOT USE_LUAJIT) + set_target_properties(${PROJECT_NAME} PROPERTIES + # This is necessary for dynamic Lua modules + # to work when Lua is statically linked (issue #10806) + ENABLE_EXPORTS 1 + ) + endif() + if(ENABLE_GLES) target_link_libraries( ${PROJECT_NAME} @@ -644,7 +639,15 @@ if(BUILD_SERVER) ${PLATFORM_LIBS} ) set_target_properties(${PROJECT_NAME}server PROPERTIES - COMPILE_DEFINITIONS "SERVER") + COMPILE_DEFINITIONS "SERVER") + if(NOT USE_LUAJIT) + set_target_properties(${PROJECT_NAME}server PROPERTIES + # This is necessary for dynamic Lua modules + # to work when Lua is statically linked (issue #10806) + ENABLE_EXPORTS 1 + ) + endif() + if (USE_GETTEXT) target_link_libraries(${PROJECT_NAME}server ${GETTEXT_LIBRARY}) endif() @@ -678,7 +681,10 @@ endif(BUILD_SERVER) # see issue #4638 set(GETTEXT_BLACKLISTED_LOCALES ar + dv he + hi + kn ky ms_Arab th @@ -689,7 +695,7 @@ option(APPLY_LOCALE_BLACKLIST "Use a blacklist to avoid broken locales" TRUE) if (GETTEXTLIB_FOUND AND APPLY_LOCALE_BLACKLIST) set(GETTEXT_USED_LOCALES "") foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES}) - if (NOT ";${GETTEXT_BLACKLISTED_LOCALES};" MATCHES ";${LOCALE};") + if (NOT "${LOCALE}" IN_LIST GETTEXT_BLACKLISTED_LOCALES) list(APPEND GETTEXT_USED_LOCALES ${LOCALE}) endif() endforeach() @@ -723,7 +729,7 @@ if(MSVC) # Flags that cannot be shared between cl and clang-cl # https://clang.llvm.org/docs/UsersManual.html#clang-cl - if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld") # Disable pragma-pack warning @@ -741,7 +747,7 @@ else() else() set(RELEASE_WARNING_FLAGS "") endif() - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + if(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Clang") set(WARNING_FLAGS "${WARNING_FLAGS} -Wsign-compare") endif() @@ -778,7 +784,7 @@ else() else() set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MATH_FLAGS}") endif() - endif(CMAKE_SYSTEM_NAME MATCHES "(Darwin|BSD|DragonFly)") + endif() set(CMAKE_CXX_FLAGS_SEMIDEBUG "-g -O1 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}") @@ -815,7 +821,7 @@ if(WIN32) FILES_MATCHING PATTERN "*.dll") else() # Use the old-style way to install dll's - if(USE_SOUND) + if(BUILD_CLIENT AND USE_SOUND) if(OPENAL_DLL) install(FILES ${OPENAL_DLL} DESTINATION ${BINDIR}) endif() @@ -825,9 +831,6 @@ if(WIN32) if(VORBIS_DLL) install(FILES ${VORBIS_DLL} DESTINATION ${BINDIR}) endif() - if(VORBISFILE_DLL) - install(FILES ${VORBISFILE_DLL} DESTINATION ${BINDIR}) - endif() endif() if(CURL_DLL) install(FILES ${CURL_DLL} DESTINATION ${BINDIR}) @@ -835,7 +838,7 @@ if(WIN32) if(ZLIB_DLL) install(FILES ${ZLIB_DLL} DESTINATION ${BINDIR}) endif() - if(FREETYPE_DLL) + if(BUILD_CLIENT AND FREETYPE_DLL) install(FILES ${FREETYPE_DLL} DESTINATION ${BINDIR}) endif() if(SQLITE3_DLL) @@ -847,6 +850,12 @@ if(WIN32) if(LUA_DLL) install(FILES ${LUA_DLL} DESTINATION ${BINDIR}) endif() + if(BUILD_CLIENT AND IRRLICHT_DLL) + install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR}) + endif() + if(BUILD_CLIENT AND USE_GETTEXT AND GETTEXT_DLL) + install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR}) + endif() endif() endif() @@ -874,6 +883,7 @@ if(BUILD_CLIENT) endforeach() endif() + # Install necessary fonts depending on configuration if(USE_FREETYPE) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}" FILES_MATCHING PATTERN "*.ttf" PATTERN "*.txt") @@ -881,22 +891,6 @@ if(BUILD_CLIENT) install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" DESTINATION "${SHAREDIR}" FILES_MATCHING PATTERN "*.png" PATTERN "*.xml") endif() - - if(WIN32) - if(NOT VCPKG_APPLOCAL_DEPS) - if(DEFINED IRRLICHT_DLL) - install(FILES ${IRRLICHT_DLL} DESTINATION ${BINDIR}) - endif() - if(USE_GETTEXT) - if(DEFINED GETTEXT_DLL) - install(FILES ${GETTEXT_DLL} DESTINATION ${BINDIR}) - endif() - if(DEFINED GETTEXT_ICONV_DLL) - install(FILES ${GETTEXT_ICONV_DLL} DESTINATION ${BINDIR}) - endif() - endif() - endif() - endif() endif(BUILD_CLIENT) if(BUILD_SERVER) diff --git a/src/activeobject.h b/src/activeobject.h index 0829858ad..1d8a3712b 100644 --- a/src/activeobject.h +++ b/src/activeobject.h @@ -28,11 +28,11 @@ enum ActiveObjectType { ACTIVEOBJECT_TYPE_INVALID = 0, ACTIVEOBJECT_TYPE_TEST = 1, // Obsolete stuff - ACTIVEOBJECT_TYPE_ITEM = 2, -// ACTIVEOBJECT_TYPE_RAT = 3, -// ACTIVEOBJECT_TYPE_OERKKI1 = 4, -// ACTIVEOBJECT_TYPE_FIREFLY = 5, - ACTIVEOBJECT_TYPE_MOBV2 = 6, +// ACTIVEOBJECT_TYPE_ITEM = 2, +// ACTIVEOBJECT_TYPE_RAT = 3, +// ACTIVEOBJECT_TYPE_OERKKI1 = 4, +// ACTIVEOBJECT_TYPE_FIREFLY = 5, +// ACTIVEOBJECT_TYPE_MOBV2 = 6, // End obsolete stuff ACTIVEOBJECT_TYPE_LUAENTITY = 7, // Special type, not stored as a static object diff --git a/src/activeobjectmgr.h b/src/activeobjectmgr.h index 5139d61dd..835f19dc2 100644 --- a/src/activeobjectmgr.h +++ b/src/activeobjectmgr.h @@ -25,7 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc., class TestClientActiveObjectMgr; class TestServerActiveObjectMgr; -template class ActiveObjectMgr +template +class ActiveObjectMgr { friend class ::TestClientActiveObjectMgr; friend class ::TestServerActiveObjectMgr; diff --git a/src/chat.cpp b/src/chat.cpp index 2f65e68b3..c9317a079 100644 --- a/src/chat.cpp +++ b/src/chat.cpp @@ -485,8 +485,8 @@ void ChatPrompt::nickCompletion(const std::list& names, bool backwa // find all names that start with the selected prefix std::vector completions; for (const std::string &name : names) { - if (str_starts_with(narrow_to_wide(name), prefix, true)) { - std::wstring completion = narrow_to_wide(name); + std::wstring completion = utf8_to_wide(name); + if (str_starts_with(completion, prefix, true)) { if (prefix_start == 0) completion += L": "; completions.push_back(completion); diff --git a/src/client/camera.cpp b/src/client/camera.cpp index 53c0b351c..52bedcba9 100644 --- a/src/client/camera.cpp +++ b/src/client/camera.cpp @@ -35,6 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/numeric.h" #include "constants.h" #include "fontengine.h" +#include "guiscalingfilter.h" #include "script/scripting_client.h" #define CAMERA_OFFSET_STEP 200 @@ -43,11 +44,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #define WIELDMESH_AMPLITUDE_X 7.0f #define WIELDMESH_AMPLITUDE_Y 10.0f -Camera::Camera(MapDrawControl &draw_control, Client *client): +Camera::Camera(MapDrawControl &draw_control, Client *client, RenderingEngine *rendering_engine): m_draw_control(draw_control), m_client(client) { - scene::ISceneManager *smgr = RenderingEngine::get_scene_manager(); + auto smgr = rendering_engine->get_scene_manager(); // note: making the camera node a child of the player node // would lead to unexpected behaviour, so we don't do that. m_playernode = smgr->addEmptySceneNode(smgr->getRootSceneNode()); @@ -79,6 +80,7 @@ Camera::Camera(MapDrawControl &draw_control, Client *client): m_cache_fov = std::fmax(g_settings->getFloat("fov"), 45.0f); m_arm_inertia = g_settings->getBool("arm_inertia"); m_nametags.clear(); + m_show_nametag_backgrounds = g_settings->getBool("show_nametag_backgrounds"); } Camera::~Camera() @@ -540,7 +542,7 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime, f32 tool_r m_curr_fov_degrees = rangelim(m_curr_fov_degrees, 1.0f, 160.0f); // FOV and aspect ratio - const v2u32 &window_size = RenderingEngine::get_instance()->getWindowSize(); + const v2u32 &window_size = RenderingEngine::getWindowSize(); m_aspect = (f32) window_size.X / (f32) window_size.Y; m_fov_y = m_curr_fov_degrees * M_PI / 180.0; // Increase vertical FOV on lower aspect ratios (<16:10) @@ -663,7 +665,7 @@ void Camera::wield(const ItemStack &item) void Camera::drawWieldedTool(irr::core::matrix4* translation) { // Clear Z buffer so that the wielded tool stays in front of world geometry - m_wieldmgr->getVideoDriver()->clearZBuffer(); + m_wieldmgr->getVideoDriver()->clearBuffers(video::ECBF_DEPTH); // Draw the wielded node (in a separate scene manager) scene::ICameraSceneNode* cam = m_wieldmgr->getActiveCamera(); @@ -691,46 +693,61 @@ void Camera::drawNametags() core::matrix4 trans = m_cameranode->getProjectionMatrix(); trans *= m_cameranode->getViewMatrix(); - for (std::list::const_iterator - i = m_nametags.begin(); - i != m_nametags.end(); ++i) { - Nametag *nametag = *i; - if (nametag->nametag_color.getAlpha() == 0) { - // Enforce hiding nametag, - // because if freetype is enabled, a grey - // shadow can remain. - continue; - } - v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->nametag_pos * BS; + gui::IGUIFont *font = g_fontengine->getFont(); + video::IVideoDriver *driver = RenderingEngine::get_video_driver(); + v2u32 screensize = driver->getScreenSize(); + + for (const Nametag *nametag : m_nametags) { + // Nametags are hidden in GenericCAO::updateNametag() + + v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->pos * BS; f32 transformed_pos[4] = { pos.X, pos.Y, pos.Z, 1.0f }; trans.multiplyWith1x4Matrix(transformed_pos); if (transformed_pos[3] > 0) { std::wstring nametag_colorless = - unescape_translate(utf8_to_wide(nametag->nametag_text)); - core::dimension2d textsize = - g_fontengine->getFont()->getDimension( + unescape_translate(utf8_to_wide(nametag->text)); + core::dimension2d textsize = font->getDimension( nametag_colorless.c_str()); f32 zDiv = transformed_pos[3] == 0.0f ? 1.0f : core::reciprocal(transformed_pos[3]); - v2u32 screensize = RenderingEngine::get_video_driver()->getScreenSize(); v2s32 screen_pos; screen_pos.X = screensize.X * (0.5 * transformed_pos[0] * zDiv + 0.5) - textsize.Width / 2; screen_pos.Y = screensize.Y * (0.5 - transformed_pos[1] * zDiv * 0.5) - textsize.Height / 2; core::rect size(0, 0, textsize.Width, textsize.Height); - g_fontengine->getFont()->draw( - translate_string(utf8_to_wide(nametag->nametag_text)).c_str(), - size + screen_pos, nametag->nametag_color); + core::rect bg_size(-2, 0, std::max(textsize.Width+2, (u32) nametag->images_dim.Width), textsize.Height + nametag->images_dim.Height); + + auto bgcolor = nametag->getBgColor(m_show_nametag_backgrounds); + if (bgcolor.getAlpha() != 0) + driver->draw2DRectangle(bgcolor, bg_size + screen_pos); + + font->draw( + translate_string(utf8_to_wide(nametag->text)).c_str(), + size + screen_pos, nametag->textcolor); + + v2s32 image_pos(screen_pos); + image_pos.Y += textsize.Height; + + const video::SColor color(255, 255, 255, 255); + const video::SColor colors[] = {color, color, color, color}; + + for (video::ITexture *texture : nametag->images) { + core::dimension2di imgsize(texture->getOriginalSize()); + core::rect rect(core::position2d(0, 0), imgsize); + draw2DImageFilterScaled(driver, texture, rect + image_pos, rect, NULL, colors, true); + image_pos += core::dimension2di(imgsize.Width, 0); + } + } } } - Nametag *Camera::addNametag(scene::ISceneNode *parent_node, - const std::string &nametag_text, video::SColor nametag_color, - const v3f &pos) + const std::string &text, video::SColor textcolor, + Optional bgcolor, const v3f &pos, + const std::vector &images) { - Nametag *nametag = new Nametag(parent_node, nametag_text, nametag_color, pos); + Nametag *nametag = new Nametag(parent_node, text, textcolor, bgcolor, pos, m_client->tsrc(), images); m_nametags.push_back(nametag); return nametag; } diff --git a/src/client/camera.h b/src/client/camera.h index 16a1961be..30fac5289 100644 --- a/src/client/camera.h +++ b/src/client/camera.h @@ -25,27 +25,74 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include "util/Optional.h" class LocalPlayer; struct MapDrawControl; class Client; +class RenderingEngine; class WieldMeshSceneNode; -struct Nametag { - Nametag(scene::ISceneNode *a_parent_node, - const std::string &a_nametag_text, - const video::SColor &a_nametag_color, - const v3f &a_nametag_pos): - parent_node(a_parent_node), - nametag_text(a_nametag_text), - nametag_color(a_nametag_color), - nametag_pos(a_nametag_pos) - { - } +struct Nametag +{ scene::ISceneNode *parent_node; - std::string nametag_text; - video::SColor nametag_color; - v3f nametag_pos; + std::string text; + video::SColor textcolor; + Optional bgcolor; + v3f pos; + ITextureSource *texture_source; + std::vector images; + core::dimension2di images_dim; + + Nametag(scene::ISceneNode *a_parent_node, + const std::string &text, + const video::SColor &textcolor, + const Optional &bgcolor, + const v3f &pos, + ITextureSource *tsrc, + const std::vector &image_names): + parent_node(a_parent_node), + text(text), + textcolor(textcolor), + bgcolor(bgcolor), + pos(pos), + texture_source(tsrc), + images(), + images_dim(0, 0) + { + setImages(image_names); + } + + void setImages(const std::vector &image_names) + { + images.clear(); + images_dim = core::dimension2di(0, 0); + + for (const std::string &image_name : image_names) { + video::ITexture *texture = texture_source->getTexture(image_name); + core::dimension2di imgsize(texture->getOriginalSize()); + + images_dim.Width += imgsize.Width; + if (images_dim.Height < imgsize.Height) + images_dim.Height = imgsize.Height; + + images.push_back(texture); + } + } + + video::SColor getBgColor(bool use_fallback) const + { + if (bgcolor) + return bgcolor.value(); + else if (!use_fallback) + return video::SColor(0, 0, 0, 0); + else if (textcolor.getLuminance() > 186) + // Dark background for light text + return video::SColor(50, 50, 50, 50); + else + // Light background for dark text + return video::SColor(50, 255, 255, 255); + } }; enum CameraMode {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT}; @@ -58,7 +105,7 @@ enum CameraMode {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT}; class Camera { public: - Camera(MapDrawControl &draw_control, Client *client); + Camera(MapDrawControl &draw_control, Client *client, RenderingEngine *rendering_engine); ~Camera(); // Get camera scene node. @@ -164,8 +211,9 @@ public: } Nametag *addNametag(scene::ISceneNode *parent_node, - const std::string &nametag_text, video::SColor nametag_color, - const v3f &pos); + const std::string &text, video::SColor textcolor, + Optional bgcolor, const v3f &pos, + const std::vector &image_names); void removeNametag(Nametag *nametag); @@ -245,4 +293,5 @@ private: bool m_arm_inertia; std::list m_nametags; + bool m_show_nametag_backgrounds; }; diff --git a/src/client/client.cpp b/src/client/client.cpp index d104db54c..4759a29be 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -98,6 +98,7 @@ Client::Client( NodeDefManager *nodedef, ISoundManager *sound, MtEventManager *event, + RenderingEngine *rendering_engine, bool ipv6, GameUI *game_ui ): @@ -108,8 +109,9 @@ Client::Client( m_nodedef(nodedef), m_sound(sound), m_event(event), + m_rendering_engine(rendering_engine), m_env( - new ClientMap(this, control, 666), + new ClientMap(this, rendering_engine, control, 666), tsrc, this ), m_particle_manager(&m_env), @@ -160,20 +162,6 @@ void Client::loadMods() scanModIntoMemory(BUILTIN_MOD_NAME, getBuiltinLuaPath()); m_script->loadModFromMemory(BUILTIN_MOD_NAME); - // TODO Uncomment when server-sent CSM and verifying of builtin are complete - /* - // Don't load client-provided mods if disabled by server - if (checkCSMRestrictionFlag(CSMRestrictionFlags::CSM_RF_LOAD_CLIENT_MODS)) { - warningstream << "Client-provided mod loading is disabled by server." << - std::endl; - // If builtin integrity is wrong, disconnect user - if (!checkBuiltinIntegrity()) { - // TODO disconnect user - } - return; - } - */ - ClientModConfiguration modconf(getClientModsLuaPath()); m_mods = modconf.getMods(); // complain about mods with unsatisfied dependencies @@ -219,12 +207,6 @@ void Client::loadMods() m_script->on_minimap_ready(m_minimap); } -bool Client::checkBuiltinIntegrity() -{ - // TODO - return true; -} - void Client::scanModSubfolder(const std::string &mod_name, const std::string &mod_path, std::string mod_subpath) { @@ -321,12 +303,7 @@ Client::~Client() } // cleanup 3d model meshes on client shutdown - while (RenderingEngine::get_mesh_cache()->getMeshCount() != 0) { - scene::IAnimatedMesh *mesh = RenderingEngine::get_mesh_cache()->getMeshByIndex(0); - - if (mesh) - RenderingEngine::get_mesh_cache()->removeMesh(mesh); - } + m_rendering_engine->cleanupMeshCache(); delete m_minimap; m_minimap = nullptr; @@ -683,15 +660,11 @@ bool Client::loadMedia(const std::string &data, const std::string &filename, TRACESTREAM(<< "Client: Attempting to load image " << "file \"" << filename << "\"" << std::endl); - io::IFileSystem *irrfs = RenderingEngine::get_filesystem(); - video::IVideoDriver *vdrv = RenderingEngine::get_video_driver(); + io::IFileSystem *irrfs = m_rendering_engine->get_filesystem(); + video::IVideoDriver *vdrv = m_rendering_engine->get_video_driver(); - // Silly irrlicht's const-incorrectness - Buffer data_rw(data.c_str(), data.size()); - - // Create an irrlicht memory file io::IReadFile *rfile = irrfs->createMemoryReadFile( - *data_rw, data_rw.getSize(), "_tempreadfile"); + data.c_str(), data.size(), "_tempreadfile"); FATAL_ERROR_IF(!rfile, "Could not create irrlicht memory file."); @@ -932,7 +905,7 @@ void Client::Send(NetworkPacket* pkt) void writePlayerPos(LocalPlayer *myplayer, ClientMap *clientMap, NetworkPacket *pkt) { v3f pf = myplayer->getLegitPosition() * 100; - v3f sf = myplayer->getLegitSpeed() * 100; + v3f sf = myplayer->getSendSpeed() * 100; s32 pitch = myplayer->getPitch() * 100; s32 yaw = myplayer->getYaw() * 100; u32 keyPressed = myplayer->keyPressed; @@ -1225,7 +1198,7 @@ void Client::sendChatMessage(const std::wstring &message) if (canSendChatMessage()) { u32 now = time(NULL); float time_passed = now - m_last_chat_message_sent; - m_last_chat_message_sent = time(NULL); + m_last_chat_message_sent = now; m_chat_message_allowance += time_passed * (CLIENT_CHAT_MESSAGE_LIMIT_PER_10S / 8.0f); if (m_chat_message_allowance > CLIENT_CHAT_MESSAGE_LIMIT_PER_10S) @@ -1305,13 +1278,12 @@ void Client::sendPlayerPos(v3f pos,bool force) // Save bandwidth by only updating position when // player is not dead and something changed - // FIXME: This part causes breakages in mods like 3d_armor, and has been commented for now - // if (m_activeobjects_received && player->isDead()) - // return; + if (m_activeobjects_received && player->isDead()) + return; if ( player->last_position == pos && - player->last_speed == player->getLegitSpeed() && + player->last_speed == player->getSendSpeed() && player->last_pitch == player->getPitch() && player->last_yaw == player->getYaw() && player->last_keyPressed == player->keyPressed && @@ -1320,7 +1292,7 @@ void Client::sendPlayerPos(v3f pos,bool force) return; player->last_position = pos; - player->last_speed = player->getLegitSpeed(); + player->last_speed = player->getSendSpeed(); player->last_pitch = player->getPitch(); player->last_yaw = player->getYaw(); player->last_keyPressed = player->keyPressed; @@ -1455,6 +1427,11 @@ bool Client::updateWieldedItem() return true; } +scene::ISceneManager* Client::getSceneManager() +{ + return m_rendering_engine->get_scene_manager(); +} + Inventory* Client::getInventory(const InventoryLocation &loc) { switch(loc.type){ @@ -1717,7 +1694,7 @@ typedef struct TextureUpdateArgs { ITextureSource *tsrc; } TextureUpdateArgs; -void texture_update_progress(void *args, u32 progress, u32 max_progress) +void Client::showUpdateProgressTexture(void *args, u32 progress, u32 max_progress) { TextureUpdateArgs* targs = (TextureUpdateArgs*) args; u16 cur_percent = ceil(progress / (double) max_progress * 100.); @@ -1736,7 +1713,7 @@ void texture_update_progress(void *args, u32 progress, u32 max_progress) targs->last_time_ms = time_ms; std::basic_stringstream strm; strm << targs->text_base << " " << targs->last_percent << "%..."; - RenderingEngine::draw_load_screen(strm.str(), targs->guienv, targs->tsrc, 0, + m_rendering_engine->draw_load_screen(strm.str(), targs->guienv, targs->tsrc, 0, 72 + (u16) ((18. / 100.) * (double) targs->last_percent), true); } } @@ -1757,21 +1734,21 @@ void Client::afterContentReceived() // Rebuild inherited images and recreate textures infostream<<"- Rebuilding images and textures"<draw_load_screen(text, guienv, m_tsrc, 0, 70); m_tsrc->rebuildImagesAndTextures(); delete[] text; // Rebuild shaders infostream<<"- Rebuilding shaders"<draw_load_screen(text, guienv, m_tsrc, 0, 71); m_shsrc->rebuildShaders(); delete[] text; // Update node aliases infostream<<"- Updating node aliases"<draw_load_screen(text, guienv, m_tsrc, 0, 72); m_nodedef->updateAliases(m_itemdef); for (const auto &path : getTextureDirs()) { TextureOverrideSource override_source(path + DIR_DELIM + "override.txt"); @@ -1790,7 +1767,7 @@ void Client::afterContentReceived() tu_args.last_percent = 0; tu_args.text_base = wgettext("Initializing nodes"); tu_args.tsrc = m_tsrc; - m_nodedef->updateTextures(this, texture_update_progress, &tu_args); + m_nodedef->updateTextures(this, &tu_args); delete[] tu_args.text_base; // Start mesh update thread after setting up content definitions @@ -1804,7 +1781,7 @@ void Client::afterContentReceived() m_script->on_client_ready(m_env.getLocalPlayer()); text = wgettext("Done!"); - RenderingEngine::draw_load_screen(text, guienv, m_tsrc, 0, 100); + m_rendering_engine->draw_load_screen(text, guienv, m_tsrc, 0, 100); infostream<<"Client::afterContentReceived() done"<get_video_driver(); irr::video::IImage* const raw_image = driver->createScreenShot(); if (!raw_image) @@ -1882,7 +1859,7 @@ void Client::makeScreenshot(bool hide_msg,bool autofly) sstr << "Failed to save screenshot '" << filename << "'"; } if(!hide_msg) pushToChatQueue(new ChatMessage(CHATMESSAGE_TYPE_SYSTEM, - narrow_to_wide(sstr.str()))); + utf8_to_wide(sstr.str()))); infostream << sstr.str() << std::endl; image->drop(); } @@ -1972,16 +1949,17 @@ scene::IAnimatedMesh* Client::getMesh(const std::string &filename, bool cache) // Create the mesh, remove it from cache and return it // This allows unique vertex colors and other properties for each instance - Buffer data_rw(data.c_str(), data.size()); // Const-incorrect Irrlicht - io::IReadFile *rfile = RenderingEngine::get_filesystem()->createMemoryReadFile( - *data_rw, data_rw.getSize(), filename.c_str()); + io::IReadFile *rfile = m_rendering_engine->get_filesystem()->createMemoryReadFile( + data.c_str(), data.size(), filename.c_str()); FATAL_ERROR_IF(!rfile, "Could not create/open RAM file"); - scene::IAnimatedMesh *mesh = RenderingEngine::get_scene_manager()->getMesh(rfile); + scene::IAnimatedMesh *mesh = m_rendering_engine->get_scene_manager()->getMesh(rfile); rfile->drop(); + if (!mesh) + return nullptr; mesh->grab(); if (!cache) - RenderingEngine::get_mesh_cache()->removeMesh(mesh); + m_rendering_engine->removeMesh(mesh); return mesh; } diff --git a/src/client/client.h b/src/client/client.h index 77301858e..143cec44f 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -45,6 +45,7 @@ struct ClientEvent; struct MeshMakeData; struct ChatMessage; class MapBlockMesh; +class RenderingEngine; class IWritableTextureSource; class IWritableShaderSource; class ISoundManager; @@ -122,6 +123,7 @@ public: NodeDefManager *nodedef, ISoundManager *sound, MtEventManager *event, + RenderingEngine *rendering_engine, bool ipv6, GameUI *game_ui ); @@ -348,6 +350,7 @@ public: float mediaReceiveProgress(); void afterContentReceived(); + void showUpdateProgressTexture(void *args, u32 progress, u32 max_progress); float getRTT(); float getCurRate(); @@ -356,6 +359,7 @@ public: void setCamera(Camera* camera) { m_camera = camera; } Camera* getCamera () { return m_camera; } + scene::ISceneManager *getSceneManager(); bool shouldShowMinimap() const; @@ -383,6 +387,7 @@ public: // Insert a media file appropriately into the appropriate manager bool loadMedia(const std::string &data, const std::string &filename, bool from_media_push = false); + // Send a request for conventional media transfer void request_media(const std::vector &file_requests); @@ -420,16 +425,6 @@ public: return false; } - u32 getCSMNodeRangeLimit() const - { - return m_csm_restriction_noderange; - } - - inline std::unordered_map &getHUDTranslationMap() - { - return m_hud_server_to_client; - } - bool joinModChannel(const std::string &channel) override; bool leaveModChannel(const std::string &channel) override; bool sendModChannelMessage(const std::string &channel, @@ -447,7 +442,6 @@ public: private: void loadMods(); - bool checkBuiltinIntegrity(); // Virtual methods from con::PeerHandler void peerAdded(con::Peer *peer) override; @@ -489,6 +483,7 @@ private: NodeDefManager *m_nodedef; ISoundManager *m_sound; MtEventManager *m_event; + RenderingEngine *m_rendering_engine; ClientEnvironment m_env; @@ -570,9 +565,6 @@ private: // Relation of client id to object id std::unordered_map m_sounds_to_objects; - // Map server hud ids to client hud ids - std::unordered_map m_hud_server_to_client; - // Privileges std::unordered_set m_privileges; @@ -595,7 +587,6 @@ private: // Client modding ClientScripting *m_script = nullptr; - bool m_modding_enabled; std::unordered_map m_mod_storages; float m_mod_storage_save_timer = 10.0f; std::vector m_mods; diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index d584bb694..87b1ffc07 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -51,12 +51,8 @@ public: ~CAOShaderConstantSetter() override = default; - void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) override + void onSetConstants(video::IMaterialRendererServices *services) override { - if (!is_highlevel) - return; - // Ambient color video::SColorf emissive_color(m_emissive_color); @@ -239,7 +235,16 @@ void ClientEnvironment::step(float dtime) &player_collisions); } - bool player_immortal = lplayer->getCAO() && lplayer->getCAO()->isImmortal(); + bool player_immortal = false; + f32 player_fall_factor = 1.0f; + GenericCAO *playercao = lplayer->getCAO(); + if (playercao) { + player_immortal = playercao->isImmortal(); + int addp_p = itemgroup_get(playercao->getGroups(), + "fall_damage_add_percent"); + // convert armor group into an usable fall damage factor + player_fall_factor = 1.0f + (float)addp_p / 100.0f; + } for (const CollisionInfo &info : player_collisions) { v3f speed_diff = info.new_speed - info.old_speed;; @@ -252,17 +257,20 @@ void ClientEnvironment::step(float dtime) speed_diff.Z = 0; f32 pre_factor = 1; // 1 hp per node/s f32 tolerance = BS*14; // 5 without damage - f32 post_factor = 1; // 1 hp per node/s if (info.type == COLLISION_NODE) { const ContentFeatures &f = m_client->ndef()-> get(m_map->getNode(info.node_p)); - // Determine fall damage multiplier - int addp = itemgroup_get(f.groups, "fall_damage_add_percent"); - pre_factor = 1.0f + (float)addp / 100.0f; + // Determine fall damage modifier + int addp_n = itemgroup_get(f.groups, "fall_damage_add_percent"); + // convert node group to an usable fall damage factor + f32 node_fall_factor = 1.0f + (float)addp_n / 100.0f; + // combine both player fall damage modifiers + pre_factor = node_fall_factor * player_fall_factor; } float speed = pre_factor * speed_diff.getLength(); - if (speed > tolerance && !player_immortal) { - f32 damage_f = (speed - tolerance) / BS * post_factor; + + if (speed > tolerance && !player_immortal && pre_factor > 0.0f) { + f32 damage_f = (speed - tolerance) / BS; u16 damage = (u16)MYMIN(damage_f + 0.5, U16_MAX); if (!g_settings->getBool("prevent_natural_damage") && damage != 0) { damageLocalPlayer(damage, true); @@ -338,20 +346,13 @@ GenericCAO* ClientEnvironment::getGenericCAO(u16 id) return NULL; } -bool isFreeClientActiveObjectId(const u16 id, - ClientActiveObjectMap &objects) -{ - return id != 0 && objects.find(id) == objects.end(); - -} - u16 ClientEnvironment::addActiveObject(ClientActiveObject *object) { // Register object. If failed return zero id if (!m_ao_manager.registerObject(object)) return 0; - object->addToScene(m_texturesource); + object->addToScene(m_texturesource, m_client->getSceneManager()); // Update lighting immediately object->updateLight(getDayNightRatio()); @@ -363,6 +364,7 @@ void ClientEnvironment::addActiveObject(u16 id, u8 type, { ClientActiveObject* obj = ClientActiveObject::create((ActiveObjectType) type, m_client, this); + if(obj == NULL) { infostream<<"ClientEnvironment::addActiveObject(): " @@ -373,6 +375,9 @@ void ClientEnvironment::addActiveObject(u16 id, u8 type, obj->setId(id); + if (m_client->modsLoaded()) + m_client->getScript()->addObjectReference(dynamic_cast(obj)); + try { obj->initialize(init_data); @@ -405,9 +410,14 @@ void ClientEnvironment::removeActiveObject(u16 id) { // Get current attachment childs to detach them visually std::unordered_set attachment_childs; - if (auto *obj = getActiveObject(id)) + auto *obj = getActiveObject(id); + if (obj) { attachment_childs = obj->getAttachmentChildIds(); + if (m_client->modsLoaded()) + m_client->getScript()->removeObjectReference(dynamic_cast(obj)); + } + m_ao_manager.removeObject(id); // Perform a proper detach in Irrlicht diff --git a/src/client/clientevent.h b/src/client/clientevent.h index 9bd31efce..2215aecbd 100644 --- a/src/client/clientevent.h +++ b/src/client/clientevent.h @@ -52,6 +52,31 @@ enum ClientEventType : u8 CLIENTEVENT_MAX, }; +struct ClientEventHudAdd +{ + u32 server_id; + u8 type; + v2f pos, scale; + std::string name; + std::string text, text2; + u32 number, item, dir; + v2f align, offset; + v3f world_pos; + v2s32 size; + s16 z_index; +}; + +struct ClientEventHudChange +{ + u32 id; + HudElementStat stat; + v2f v2fdata; + std::string sdata; + u32 data; + v3f v3fdata; + v2s32 v2s32data; +}; + struct ClientEvent { ClientEventType type; @@ -93,38 +118,12 @@ struct ClientEvent { u32 id; } delete_particlespawner; - struct - { - u32 server_id; - u8 type; - v2f *pos; - std::string *name; - v2f *scale; - std::string *text; - u32 number; - u32 item; - u32 dir; - v2f *align; - v2f *offset; - v3f *world_pos; - v2s32 *size; - s16 z_index; - std::string *text2; - } hudadd; + ClientEventHudAdd *hudadd; struct { u32 id; } hudrm; - struct - { - u32 id; - HudElementStat stat; - v2f *v2fdata; - std::string *sdata; - u32 data; - v3f *v3fdata; - v2s32 *v2s32data; - } hudchange; + ClientEventHudChange *hudchange; SkyboxParams *set_sky; struct { diff --git a/src/client/clientlauncher.cpp b/src/client/clientlauncher.cpp index 29427f609..6db5f2e70 100644 --- a/src/client/clientlauncher.cpp +++ b/src/client/clientlauncher.cpp @@ -80,7 +80,7 @@ ClientLauncher::~ClientLauncher() delete g_fontengine; delete g_gamecallback; - delete RenderingEngine::get_instance(); + delete m_rendering_engine; #if USE_SOUND g_sound_manager_singleton.reset(); @@ -101,7 +101,7 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) // List video modes if requested if (list_video_modes) - return RenderingEngine::print_video_modes(); + return m_rendering_engine->print_video_modes(); #if USE_SOUND if (g_settings->getBool("enable_sound")) @@ -120,12 +120,12 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) return true; } - if (RenderingEngine::get_video_driver() == NULL) { + if (m_rendering_engine->get_video_driver() == NULL) { errorstream << "Could not initialize video driver." << std::endl; return false; } - RenderingEngine::get_instance()->setupTopLevelWindow(PROJECT_NAME_C); + m_rendering_engine->setupTopLevelWindow(PROJECT_NAME_C); /* This changes the minimum allowed number of vertices in a VBO. @@ -136,15 +136,15 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) // Create game callback for menus g_gamecallback = new MainGameCallback(); - RenderingEngine::get_instance()->setResizable(true); + m_rendering_engine->setResizable(true); init_input(); - RenderingEngine::get_scene_manager()->getParameters()-> + m_rendering_engine->get_scene_manager()->getParameters()-> setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true); - guienv = RenderingEngine::get_gui_env(); - skin = RenderingEngine::get_gui_env()->getSkin(); + guienv = m_rendering_engine->get_gui_env(); + skin = guienv->getSkin(); skin->setColor(gui::EGDC_BUTTON_TEXT, video::SColor(255, 255, 255, 255)); skin->setColor(gui::EGDC_3D_LIGHT, video::SColor(0, 0, 0, 0)); skin->setColor(gui::EGDC_3D_HIGH_LIGHT, video::SColor(255, 30, 30, 30)); @@ -166,7 +166,7 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) sprite_path.append("checkbox_16.png"); // Texture dimensions should be a power of 2 gui::IGUISpriteBank *sprites = skin->getSpriteBank(); - video::IVideoDriver *driver = RenderingEngine::get_video_driver(); + video::IVideoDriver *driver = m_rendering_engine->get_video_driver(); video::ITexture *sprite_texture = driver->getTexture(sprite_path.c_str()); if (sprite_texture) { s32 sprite_id = sprites->addTextureAsSprite(sprite_texture); @@ -175,18 +175,16 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) } } #endif - g_fontengine = new FontEngine(g_settings, guienv); + g_fontengine = new FontEngine(guienv); FATAL_ERROR_IF(g_fontengine == NULL, "Font engine creation failed."); -#if (IRRLICHT_VERSION_MAJOR >= 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR >= 2 // Irrlicht 1.8 input colours skin->setColor(gui::EGDC_EDITABLE, video::SColor(255, 128, 128, 128)); skin->setColor(gui::EGDC_FOCUSED_EDITABLE, video::SColor(255, 96, 134, 49)); -#endif // Create the menu clouds if (!g_menucloudsmgr) - g_menucloudsmgr = RenderingEngine::get_scene_manager()->createNewSceneManager(); + g_menucloudsmgr = m_rendering_engine->get_scene_manager()->createNewSceneManager(); if (!g_menuclouds) g_menuclouds = new Clouds(g_menucloudsmgr, -1, rand()); g_menuclouds->setHeight(100.0f); @@ -214,11 +212,11 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) bool retval = true; bool *kill = porting::signal_handler_killstatus(); - while (RenderingEngine::run() && !*kill && + while (m_rendering_engine->run() && !*kill && !g_gamecallback->shutdown_requested) { // Set the window caption const wchar_t *text = wgettext("Main Menu"); - RenderingEngine::get_raw_device()-> + m_rendering_engine->get_raw_device()-> setWindowCaption((utf8_to_wide(PROJECT_NAME_C) + L" " + utf8_to_wide(g_version_hash) + L" [" + text + L"]").c_str()); @@ -226,14 +224,14 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) try { // This is used for catching disconnects - RenderingEngine::get_gui_env()->clear(); + m_rendering_engine->get_gui_env()->clear(); /* We need some kind of a root node to be able to add custom gui elements directly on the screen. Otherwise they won't be automatically drawn. */ - guiroot = RenderingEngine::get_gui_env()->addStaticText(L"", + guiroot = m_rendering_engine->get_gui_env()->addStaticText(L"", core::rect(0, 0, 10000, 10000)); bool game_has_run = launch_game(error_message, reconnect_requested, @@ -256,29 +254,30 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) } // Break out of menu-game loop to shut down cleanly - if (!RenderingEngine::get_raw_device()->run() || *kill) { + if (!m_rendering_engine->run() || *kill) { if (!g_settings_path.empty()) g_settings->updateConfigFile(g_settings_path.c_str()); break; } - RenderingEngine::get_video_driver()->setTextureCreationFlag( + m_rendering_engine->get_video_driver()->setTextureCreationFlag( video::ETCF_CREATE_MIP_MAPS, g_settings->getBool("mip_map")); #ifdef HAVE_TOUCHSCREENGUI - receiver->m_touchscreengui = new TouchScreenGUI(RenderingEngine::get_raw_device(), receiver); + receiver->m_touchscreengui = new TouchScreenGUI(m_rendering_engine->get_raw_device(), receiver); g_touchscreengui = receiver->m_touchscreengui; #endif the_game( kill, input, + m_rendering_engine, start_data, error_message, chat_backend, &reconnect_requested ); - RenderingEngine::get_scene_manager()->clear(); + m_rendering_engine->get_scene_manager()->clear(); #ifdef HAVE_TOUCHSCREENGUI delete g_touchscreengui; @@ -346,8 +345,8 @@ void ClientLauncher::init_args(GameStartData &start_data, const Settings &cmd_ar bool ClientLauncher::init_engine() { receiver = new MyEventReceiver(); - new RenderingEngine(receiver); - return RenderingEngine::get_raw_device() != nullptr; + m_rendering_engine = new RenderingEngine(receiver); + return m_rendering_engine->get_raw_device() != nullptr; } void ClientLauncher::init_input() @@ -364,7 +363,7 @@ void ClientLauncher::init_input() // Make sure this is called maximum once per // irrlicht device, otherwise it will give you // multiple events for the same joystick. - if (RenderingEngine::get_raw_device()->activateJoysticks(infos)) { + if (m_rendering_engine->get_raw_device()->activateJoysticks(infos)) { infostream << "Joystick support enabled" << std::endl; joystick_infos.reserve(infos.size()); for (u32 i = 0; i < infos.size(); i++) { @@ -471,7 +470,7 @@ bool ClientLauncher::launch_game(std::string &error_message, start_data.address.empty() && !start_data.name.empty(); } - if (!RenderingEngine::run()) + if (!m_rendering_engine->run()) return false; if (!start_data.isSinglePlayer() && start_data.name.empty()) { @@ -487,14 +486,6 @@ bool ClientLauncher::launch_game(std::string &error_message, start_data.socket_port = myrand_range(49152, 65535); } else { g_settings->set("name", start_data.name); - if (!start_data.address.empty()) { - ServerListSpec server; - server["name"] = server_name; - server["address"] = start_data.address; - server["port"] = itos(start_data.socket_port); - server["description"] = server_description; - ServerList::insert(server); - } } if (start_data.name.length() > PLAYERNAME_SIZE - 1) { @@ -551,14 +542,14 @@ bool ClientLauncher::launch_game(std::string &error_message, void ClientLauncher::main_menu(MainMenuData *menudata) { bool *kill = porting::signal_handler_killstatus(); - video::IVideoDriver *driver = RenderingEngine::get_video_driver(); + video::IVideoDriver *driver = m_rendering_engine->get_video_driver(); infostream << "Waiting for other menus" << std::endl; - while (RenderingEngine::get_raw_device()->run() && !*kill) { + while (m_rendering_engine->run() && !*kill) { if (!isMenuActive()) break; driver->beginScene(true, true, video::SColor(255, 128, 128, 128)); - RenderingEngine::get_gui_env()->drawAll(); + m_rendering_engine->get_gui_env()->drawAll(); driver->endScene(); // On some computers framerate doesn't seem to be automatically limited sleep_ms(25); @@ -567,14 +558,14 @@ void ClientLauncher::main_menu(MainMenuData *menudata) // Cursor can be non-visible when coming from the game #ifndef ANDROID - RenderingEngine::get_raw_device()->getCursorControl()->setVisible(true); + m_rendering_engine->get_raw_device()->getCursorControl()->setVisible(true); #endif /* show main menu */ - GUIEngine mymenu(&input->joystick, guiroot, &g_menumgr, menudata, *kill); + GUIEngine mymenu(&input->joystick, guiroot, m_rendering_engine, &g_menumgr, menudata, *kill); /* leave scene manager in a clean state */ - RenderingEngine::get_scene_manager()->clear(); + m_rendering_engine->get_scene_manager()->clear(); } void ClientLauncher::speed_tests() diff --git a/src/client/clientlauncher.h b/src/client/clientlauncher.h index b280d8e6b..79727e1fe 100644 --- a/src/client/clientlauncher.h +++ b/src/client/clientlauncher.h @@ -49,6 +49,7 @@ private: bool list_video_modes = false; bool skip_main_menu = false; bool random_input = false; + RenderingEngine *m_rendering_engine = nullptr; InputHandler *input = nullptr; MyEventReceiver *receiver = nullptr; gui::IGUISkin *skin = nullptr; diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index 937c38bf1..29a7fd3ba 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -31,14 +31,46 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "client/renderingengine.h" +// struct MeshBufListList +void MeshBufListList::clear() +{ + for (auto &list : lists) + list.clear(); +} + +void MeshBufListList::add(scene::IMeshBuffer *buf, v3s16 position, u8 layer) +{ + // Append to the correct layer + std::vector &list = lists[layer]; + const video::SMaterial &m = buf->getMaterial(); + for (MeshBufList &l : list) { + // comparing a full material is quite expensive so we don't do it if + // not even first texture is equal + if (l.m.TextureLayer[0].Texture != m.TextureLayer[0].Texture) + continue; + + if (l.m == m) { + l.bufs.emplace_back(position, buf); + return; + } + } + MeshBufList l; + l.m = m; + l.bufs.emplace_back(position, buf); + list.emplace_back(l); +} + +// ClientMap + ClientMap::ClientMap( Client *client, + RenderingEngine *rendering_engine, MapDrawControl &control, s32 id ): Map(client), - scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), - RenderingEngine::get_scene_manager(), id), + scene::ISceneNode(rendering_engine->get_scene_manager()->getRootSceneNode(), + rendering_engine->get_scene_manager(), id), m_client(client), m_control(control) { @@ -134,6 +166,9 @@ void ClientMap::updateDrawList() v3s16 p_blocks_max; getBlocksInViewRange(cam_pos_nodes, &p_blocks_min, &p_blocks_max); + // Read the vision range, unless unlimited range is enabled. + float range = m_control.range_all ? 1e7 : m_control.wanted_range; + // Number of blocks currently loaded by the client u32 blocks_loaded = 0; // Number of blocks with mesh in rendering range @@ -151,6 +186,7 @@ void ClientMap::updateDrawList() occlusion_culling_enabled = false; } + // Uncomment to debug occluded blocks in the wireframe mode // TODO: Include this as a flag for an extended debugging setting //if (occlusion_culling_enabled && m_control.show_wireframe) @@ -182,39 +218,39 @@ void ClientMap::updateDrawList() if not seen on display */ - if (block->mesh) { - block->mesh->updateCameraOffset(m_camera_offset); - } else { + if (!block->mesh) { // Ignore if mesh doesn't exist continue; } - float range = 100000 * BS; - if (!m_control.range_all) - range = m_control.wanted_range * BS; + v3s16 block_coord = block->getPos(); + v3s16 block_position = block->getPosRelative() + MAP_BLOCKSIZE / 2; - float d = 0.0; - if (!isBlockInSight(block->getPos(), camera_position, - camera_direction, camera_fov, range, &d)) - continue; + // First, perform a simple distance check, with a padding of one extra block. + if (!m_control.range_all && + block_position.getDistanceFrom(cam_pos_nodes) > range + MAP_BLOCKSIZE) + continue; // Out of range, skip. + // Keep the block alive as long as it is in range. + block->resetUsageTimer(); blocks_in_range_with_mesh++; - /* - Occlusion culling - */ + // Frustum culling + float d = 0.0; + if (!isBlockInSight(block_coord, camera_position, + camera_direction, camera_fov, range * BS, &d)) + continue; + + // Occlusion culling if ((!m_control.range_all && d > m_control.wanted_range * BS) || (occlusion_culling_enabled && isBlockOccluded(block, cam_pos_nodes))) { blocks_occlusion_culled++; continue; } - // This block is in range. Reset usage timer. - block->resetUsageTimer(); - // Add to set block->refGrab(); - m_drawlist[block->getPos()] = block; + m_drawlist[block_coord] = block; sector_blocks_drawn++; } // foreach sectorblocks @@ -229,50 +265,6 @@ void ClientMap::updateDrawList() g_profiler->avg("MapBlocks loaded [#]", blocks_loaded); } -struct MeshBufList -{ - video::SMaterial m; - std::vector bufs; -}; - -struct MeshBufListList -{ - /*! - * Stores the mesh buffers of the world. - * The array index is the material's layer. - * The vector part groups vertices by material. - */ - std::vector lists[MAX_TILE_LAYERS]; - - void clear() - { - for (auto &list : lists) - list.clear(); - } - - void add(scene::IMeshBuffer *buf, u8 layer) - { - // Append to the correct layer - std::vector &list = lists[layer]; - const video::SMaterial &m = buf->getMaterial(); - for (MeshBufList &l : list) { - // comparing a full material is quite expensive so we don't do it if - // not even first texture is equal - if (l.m.TextureLayer[0].Texture != m.TextureLayer[0].Texture) - continue; - - if (l.m == m) { - l.bufs.push_back(buf); - return; - } - } - MeshBufList l; - l.m = m; - l.bufs.push_back(buf); - list.push_back(l); - } -}; - void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) { bool is_transparent_pass = pass == scene::ESNRP_TRANSPARENT; @@ -297,14 +289,13 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) const u32 daynight_ratio = m_client->getEnv().getDayNightRatio(); const v3f camera_position = m_camera_position; - const v3f camera_direction = m_camera_direction; - const f32 camera_fov = m_camera_fov; /* Get all blocks and draw all visible ones */ u32 vertex_count = 0; + u32 drawcall_count = 0; // For limiting number of mesh animations per frame u32 mesh_animate_count = 0; @@ -317,16 +308,16 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) MeshBufListList drawbufs; for (auto &i : m_drawlist) { + v3s16 block_pos = i.first; MapBlock *block = i.second; // If the mesh of the block happened to get deleted, ignore it if (!block->mesh) continue; - float d = 0.0; - if (!isBlockInSight(block->getPos(), camera_position, - camera_direction, camera_fov, 100000 * BS, &d)) - continue; + v3f block_pos_r = intToFloat(block->getPosRelative() + MAP_BLOCKSIZE / 2, BS); + float d = camera_position.getDistanceFrom(block_pos_r); + d = MYMAX(0,d - BLOCK_MAX_RADIUS); // Mesh animation if (pass == scene::ESNRP_SOLID) { @@ -382,7 +373,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) material.setFlag(video::EMF_WIREFRAME, m_control.show_wireframe); - drawbufs.add(buf, layer); + drawbufs.add(buf, block_pos, layer); } } } @@ -391,6 +382,9 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) TimeTaker draw("Drawing mesh buffers"); + core::matrix4 m; // Model matrix + v3f offset = intToFloat(m_camera_offset, BS); + // Render all layers in order for (auto &lists : drawbufs.lists) { for (MeshBufList &list : lists) { @@ -402,7 +396,14 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) } driver->setMaterial(list.m); - for (scene::IMeshBuffer *buf : list.bufs) { + drawcall_count += list.bufs.size(); + for (auto &pair : list.bufs) { + scene::IMeshBuffer *buf = pair.second; + + v3f block_wpos = intToFloat(pair.first * MAP_BLOCKSIZE, BS); + m.setTranslation(block_wpos - offset); + + driver->setTransform(video::ETS_WORLD, m); driver->drawMeshBuffer(buf); vertex_count += buf->getVertexCount(); } @@ -416,6 +417,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) } g_profiler->avg(prefix + "vertices drawn [#]", vertex_count); + g_profiler->avg(prefix + "drawcalls [#]", drawcall_count); } static bool getVisibleBrightness(Map *map, const v3f &p0, v3f dir, float step, @@ -498,12 +500,12 @@ int ClientMap::getBackgroundBrightness(float max_d, u32 daylight_factor, static v3f z_directions[50] = { v3f(-100, 0, 0) }; - static f32 z_offsets[sizeof(z_directions)/sizeof(*z_directions)] = { + static f32 z_offsets[50] = { -1000, }; - if(z_directions[0].X < -99){ - for(u32 i=0; i 35*BS) sunlight_min_d = 35*BS; std::vector values; - for(u32 i=0; i a; a.buildRotateFromTo(v3f(0,1,0), z_dir); @@ -607,5 +610,3 @@ void ClientMap::PrintInfo(std::ostream &out) { out<<"ClientMap: "; } - - diff --git a/src/client/clientmap.h b/src/client/clientmap.h index 172e3a1d6..80add4a44 100644 --- a/src/client/clientmap.h +++ b/src/client/clientmap.h @@ -35,6 +35,25 @@ struct MapDrawControl bool show_wireframe = false; }; +struct MeshBufList +{ + video::SMaterial m; + std::vector> bufs; +}; + +struct MeshBufListList +{ + /*! + * Stores the mesh buffers of the world. + * The array index is the material's layer. + * The vector part groups vertices by material. + */ + std::vector lists[MAX_TILE_LAYERS]; + + void clear(); + void add(scene::IMeshBuffer *buf, v3s16 position, u8 layer); +}; + class Client; class ITextureSource; @@ -49,6 +68,7 @@ class ClientMap : public Map, public scene::ISceneNode public: ClientMap( Client *client, + RenderingEngine *rendering_engine, MapDrawControl &control, s32 id ); diff --git a/src/client/clientmedia.cpp b/src/client/clientmedia.cpp index c4c08c05d..0f9ba5356 100644 --- a/src/client/clientmedia.cpp +++ b/src/client/clientmedia.cpp @@ -216,7 +216,6 @@ void ClientMediaDownloader::initialStep(Client *client) // This is the first time we use httpfetch, so alloc a caller ID m_httpfetch_caller = httpfetch_caller_alloc(); - m_httpfetch_timeout = g_settings->getS32("curl_timeout"); // Set the active fetch limit to curl_parallel_limit or 84, // whichever is greater. This gives us some leeway so that @@ -258,8 +257,6 @@ void ClientMediaDownloader::initialStep(Client *client) remote->baseurl + MTHASHSET_FILE_NAME; fetch_request.caller = m_httpfetch_caller; fetch_request.request_id = m_httpfetch_next_id; // == i - fetch_request.timeout = m_httpfetch_timeout; - fetch_request.connect_timeout = m_httpfetch_timeout; fetch_request.method = HTTP_POST; fetch_request.raw_data = required_hash_set; fetch_request.extra_headers.emplace_back( @@ -432,9 +429,8 @@ void ClientMediaDownloader::startRemoteMediaTransfers() fetch_request.url = url; fetch_request.caller = m_httpfetch_caller; fetch_request.request_id = m_httpfetch_next_id; - fetch_request.timeout = 0; // no data timeout! - fetch_request.connect_timeout = - m_httpfetch_timeout; + fetch_request.timeout = + g_settings->getS32("curl_file_download_timeout"); httpfetch_async(fetch_request); m_remote_file_transfers.insert(std::make_pair( diff --git a/src/client/clientmedia.h b/src/client/clientmedia.h index 5a918535b..e97a0f24b 100644 --- a/src/client/clientmedia.h +++ b/src/client/clientmedia.h @@ -137,7 +137,6 @@ private: // Status of remote transfers unsigned long m_httpfetch_caller; unsigned long m_httpfetch_next_id = 0; - long m_httpfetch_timeout = 0; s32 m_httpfetch_active = 0; s32 m_httpfetch_active_limit = 0; s32 m_outstanding_hash_sets = 0; diff --git a/src/client/clientobject.h b/src/client/clientobject.h index 4a1743d72..c0b14497c 100644 --- a/src/client/clientobject.h +++ b/src/client/clientobject.h @@ -44,7 +44,7 @@ public: ClientActiveObject(u16 id, Client *client, ClientEnvironment *env); virtual ~ClientActiveObject(); - virtual void addToScene(ITextureSource *tsrc) {} + virtual void addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) = 0; virtual void removeFromScene(bool permanent) {} virtual void updateLight(u32 day_night_ratio) {} diff --git a/src/client/clouds.cpp b/src/client/clouds.cpp index 253dee8b9..5008047af 100644 --- a/src/client/clouds.cpp +++ b/src/client/clouds.cpp @@ -30,7 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., // Menu clouds are created later class Clouds; Clouds *g_menuclouds = NULL; -irr::scene::ISceneManager *g_menucloudsmgr = NULL; +scene::ISceneManager *g_menucloudsmgr = NULL; // Constant for now static constexpr const float cloud_size = BS * 64.0f; @@ -170,7 +170,7 @@ void Clouds::render() // Read noise - std::vector grid(m_cloud_radius_i * 2 * m_cloud_radius_i * 2); // vector is broken + std::vector grid(m_cloud_radius_i * 2 * m_cloud_radius_i * 2); std::vector vertices; vertices.reserve(16 * m_cloud_radius_i * m_cloud_radius_i); diff --git a/src/client/clouds.h b/src/client/clouds.h index a4d810faa..c009a05b7 100644 --- a/src/client/clouds.h +++ b/src/client/clouds.h @@ -29,8 +29,7 @@ class Clouds; extern Clouds *g_menuclouds; // Scene manager used for menu clouds -namespace irr{namespace scene{class ISceneManager;}} -extern irr::scene::ISceneManager *g_menucloudsmgr; +extern scene::ISceneManager *g_menucloudsmgr; class Clouds : public scene::ISceneNode { diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 60dd28503..1259fcbd3 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -24,7 +24,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "client/client.h" -#include "client/renderingengine.h" #include "client/sound.h" #include "client/tile.h" #include "util/basic_macros.h" @@ -190,7 +189,7 @@ public: static ClientActiveObject* create(Client *client, ClientEnvironment *env); - void addToScene(ITextureSource *tsrc); + void addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr); void removeFromScene(bool permanent); void updateLight(u32 day_night_ratio); void updateNodePos(); @@ -221,7 +220,7 @@ ClientActiveObject* TestCAO::create(Client *client, ClientEnvironment *env) return new TestCAO(client, env); } -void TestCAO::addToScene(ITextureSource *tsrc) +void TestCAO::addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) { if(m_node != NULL) return; @@ -250,7 +249,7 @@ void TestCAO::addToScene(ITextureSource *tsrc) // Add to mesh mesh->addMeshBuffer(buf); buf->drop(); - m_node = RenderingEngine::get_scene_manager()->addMeshSceneNode(mesh, NULL); + m_node = smgr->addMeshSceneNode(mesh, NULL); mesh->drop(); updateNodePos(); } @@ -595,9 +594,9 @@ void GenericCAO::removeFromScene(bool permanent) m_client->getMinimap()->removeMarker(&m_marker); } -void GenericCAO::addToScene(ITextureSource *tsrc) +void GenericCAO::addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) { - m_smgr = RenderingEngine::get_scene_manager(); + m_smgr = smgr; if (getSceneNode() != NULL) { return; @@ -629,8 +628,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) } auto grabMatrixNode = [this] { - m_matrixnode = RenderingEngine::get_scene_manager()-> - addDummyTransformationSceneNode(); + m_matrixnode = m_smgr->addDummyTransformationSceneNode(); m_matrixnode->grab(); }; @@ -648,7 +646,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) if (m_prop.visual == "sprite") { grabMatrixNode(); - m_spritenode = RenderingEngine::get_scene_manager()->addBillboardSceneNode( + m_spritenode = m_smgr->addBillboardSceneNode( m_matrixnode, v2f(1, 1), v3f(0,0,0), -1); m_spritenode->grab(); m_spritenode->setMaterialTexture(0, @@ -733,8 +731,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) mesh->addMeshBuffer(buf); buf->drop(); } - m_meshnode = RenderingEngine::get_scene_manager()-> - addMeshSceneNode(mesh, m_matrixnode); + m_meshnode = m_smgr->addMeshSceneNode(mesh, m_matrixnode); m_meshnode->grab(); mesh->drop(); // Set it to use the materials of the meshbuffers directly. @@ -743,8 +740,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) } else if (m_prop.visual == "cube") { grabMatrixNode(); scene::IMesh *mesh = createCubeMesh(v3f(BS,BS,BS)); - m_meshnode = RenderingEngine::get_scene_manager()-> - addMeshSceneNode(mesh, m_matrixnode); + m_meshnode = m_smgr->addMeshSceneNode(mesh, m_matrixnode); m_meshnode->grab(); mesh->drop(); @@ -757,8 +753,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) grabMatrixNode(); scene::IAnimatedMesh *mesh = m_client->getMesh(m_prop.mesh, true); if (mesh) { - m_animated_meshnode = RenderingEngine::get_scene_manager()-> - addAnimatedMeshSceneNode(mesh, m_matrixnode); + m_animated_meshnode = m_smgr->addAnimatedMeshSceneNode(mesh, m_matrixnode); m_animated_meshnode->grab(); mesh->drop(); // The scene node took hold of it @@ -799,8 +794,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) infostream << "serialized form: " << m_prop.wield_item << std::endl; item.deSerialize(m_prop.wield_item, m_client->idef()); } - m_wield_meshnode = new WieldMeshSceneNode( - RenderingEngine::get_scene_manager(), -1); + m_wield_meshnode = new WieldMeshSceneNode(m_smgr, -1); m_wield_meshnode->setItem(item, m_client, (m_prop.visual == "wielditem")); @@ -828,6 +822,12 @@ void GenericCAO::addToScene(ITextureSource *tsrc) updateAttachments(); setNodeLight(m_last_light); updateMeshCulling(); + + if (m_client->modsLoaded()) + m_client->getScript()->on_object_add(m_id); + + if (m_client->modsLoaded()) + m_client->getScript()->on_object_properties_change(m_id); } void GenericCAO::updateLight(u32 day_night_ratio) @@ -838,9 +838,6 @@ void GenericCAO::updateLight(u32 day_night_ratio) u8 light_at_pos = 0; bool pos_ok = false; - if (g_settings->getBool("fullbright")) - light_at_pos = 255; - v3s16 pos[3]; u16 npos = getLightPosition(pos); for (u16 i = 0; i < npos; i++) { @@ -943,7 +940,7 @@ void GenericCAO::updateNametag() //if (m_is_local_player && ! g_settings->getBool("freecam")) // No nametag for local player //return; - if (m_prop.nametag.empty()) { + if (m_prop.nametag.empty() || m_prop.nametag_color.getAlpha() == 0) { // Delete nametag if (m_nametag) { m_client->getCamera()->removeNametag(m_nametag); @@ -961,12 +958,15 @@ void GenericCAO::updateNametag() if (!m_nametag) { // Add nametag m_nametag = m_client->getCamera()->addNametag(node, - m_prop.nametag, m_prop.nametag_color, pos); + m_prop.nametag, m_prop.nametag_color, + m_prop.nametag_bgcolor, pos, nametag_images); } else { // Update nametag - m_nametag->nametag_text = m_prop.nametag; - m_nametag->nametag_color = m_prop.nametag_color; - m_nametag->nametag_pos = pos; + m_nametag->text = m_prop.nametag; + m_nametag->textcolor = m_prop.nametag_color; + m_nametag->bgcolor = m_prop.nametag_bgcolor; + m_nametag->pos = pos; + m_nametag->setImages(nametag_images); } } @@ -1083,7 +1083,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) } removeFromScene(false); - addToScene(m_client->tsrc()); + addToScene(m_client->tsrc(), m_smgr); // Attachments, part 2: Now that the parent has been refreshed, put its attachments back for (u16 cao_id : m_attachment_child_ids) { @@ -1176,7 +1176,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) } } - if (!getParent() && std::fabs(m_prop.automatic_rotate) > 0.001) { + if (!getParent() && node && fabs(m_prop.automatic_rotate) > 0.001f) { // This is the child node's rotation. It is only used for automatic_rotate. v3f local_rot = node->getRotation(); local_rot.Y = modulo360f(local_rot.Y - dtime * core::RADTODEG * @@ -1185,7 +1185,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) } if (!getParent() && m_prop.automatic_face_movement_dir && - (fabs(m_velocity.Z) > 0.001 || fabs(m_velocity.X) > 0.001)) { + (fabs(m_velocity.Z) > 0.001f || fabs(m_velocity.X) > 0.001f)) { float target_yaw = atan2(m_velocity.Z, m_velocity.X) * 180 / M_PI + m_prop.automatic_face_movement_dir_offset; float max_rotation_per_sec = @@ -1482,11 +1482,8 @@ void GenericCAO::updateAnimation() if (m_animated_meshnode->getAnimationSpeed() != m_animation_speed) m_animated_meshnode->setAnimationSpeed(m_animation_speed); m_animated_meshnode->setTransitionTime(m_animation_blend); -// Requires Irrlicht 1.8 or greater -#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR > 1 if (m_animated_meshnode->getLoopMode() != m_animation_loop) m_animated_meshnode->setLoopMode(m_animation_loop); -#endif } void GenericCAO::updateAnimationSpeed() @@ -1502,10 +1499,10 @@ void GenericCAO::updateBonePosition() if (m_bone_position.empty() || !m_animated_meshnode) return; - m_animated_meshnode->setJointMode(irr::scene::EJUOR_CONTROL); // To write positions to the mesh on render + m_animated_meshnode->setJointMode(scene::EJUOR_CONTROL); // To write positions to the mesh on render for (auto &it : m_bone_position) { std::string bone_name = it.first; - irr::scene::IBoneSceneNode* bone = m_animated_meshnode->getJointNode(bone_name.c_str()); + scene::IBoneSceneNode* bone = m_animated_meshnode->getJointNode(bone_name.c_str()); if (bone) { bone->setPosition(it.second.X); bone->setRotation(it.second.Y); @@ -1514,7 +1511,7 @@ void GenericCAO::updateBonePosition() // search through bones to find mistakenly rotated bones due to bug in Irrlicht for (u32 i = 0; i < m_animated_meshnode->getJointCount(); ++i) { - irr::scene::IBoneSceneNode *bone = m_animated_meshnode->getJointNode(i); + scene::IBoneSceneNode *bone = m_animated_meshnode->getJointNode(i); if (!bone) continue; @@ -1630,6 +1627,57 @@ bool GenericCAO::visualExpiryRequired(const ObjectProperties &new_) const (uses_legacy_texture && old.textures != new_.textures); } +void GenericCAO::setProperties(ObjectProperties newprops) +{ + // Check what exactly changed + bool expire_visuals = visualExpiryRequired(newprops); + bool textures_changed = m_prop.textures != newprops.textures; + + // Apply changes + m_prop = std::move(newprops); + + m_selection_box = m_prop.selectionbox; + m_selection_box.MinEdge *= BS; + m_selection_box.MaxEdge *= BS; + + m_tx_size.X = 1.0f / m_prop.spritediv.X; + m_tx_size.Y = 1.0f / m_prop.spritediv.Y; + + if(!m_initial_tx_basepos_set){ + m_initial_tx_basepos_set = true; + m_tx_basepos = m_prop.initial_sprite_basepos; + } + if (m_is_local_player) { + LocalPlayer *player = m_env->getLocalPlayer(); + player->makes_footstep_sound = m_prop.makes_footstep_sound; + aabb3f collision_box = m_prop.collisionbox; + collision_box.MinEdge *= BS; + collision_box.MaxEdge *= BS; + player->setCollisionbox(collision_box); + player->setEyeHeight(m_prop.eye_height); + player->setZoomFOV(m_prop.zoom_fov); + } + + if ((m_is_player && !m_is_local_player) && m_prop.nametag.empty()) + m_prop.nametag = m_name; + if (m_is_local_player) + m_prop.show_on_minimap = false; + + if (expire_visuals) { + expireVisuals(); + } else { + infostream << "GenericCAO: properties updated but expiring visuals" + << " not necessary" << std::endl; + if (textures_changed) { + // don't update while punch texture modifier is active + if (m_reset_textures_timer < 0) + updateTextures(m_current_texture_modifier); + } + updateNametag(); + updateMarker(); + } +} + void GenericCAO::processMessage(const std::string &data) { //infostream<<"GenericCAO: Got message"<modsLoaded()) + m_client->getScript()->on_object_properties_change(m_id); - // Apply changes - m_prop = std::move(newprops); - - m_selection_box = m_prop.selectionbox; - m_selection_box.MinEdge *= BS; - m_selection_box.MaxEdge *= BS; - - m_tx_size.X = 1.0f / m_prop.spritediv.X; - m_tx_size.Y = 1.0f / m_prop.spritediv.Y; - - if(!m_initial_tx_basepos_set){ - m_initial_tx_basepos_set = true; - m_tx_basepos = m_prop.initial_sprite_basepos; - } - if (m_is_local_player) { - LocalPlayer *player = m_env->getLocalPlayer(); - player->makes_footstep_sound = m_prop.makes_footstep_sound; - aabb3f collision_box = m_prop.collisionbox; - collision_box.MinEdge *= BS; - collision_box.MaxEdge *= BS; - player->setCollisionbox(collision_box); - player->setEyeHeight(m_prop.eye_height); - player->setZoomFOV(m_prop.zoom_fov); - } - - if ((m_is_player && !m_is_local_player) && m_prop.nametag.empty()) - m_prop.nametag = m_name; - if (m_is_local_player) - m_prop.show_on_minimap = false; - - if (expire_visuals) { - expireVisuals(); - } else { - infostream << "GenericCAO: properties updated but expiring visuals" - << " not necessary" << std::endl; - if (textures_changed) { - // don't update while punch texture modifier is active - if (m_reset_textures_timer < 0) - updateTextures(m_current_texture_modifier); - } - updateNametag(); - updateMarker(); - } } else if (cmd == AO_CMD_UPDATE_POSITION) { // Not sent by the server if this object is an attachment. // We might however get here if the server notices the object being detached before the client. @@ -1852,6 +1858,9 @@ void GenericCAO::processMessage(const std::string &data) // Same as 'ObjectRef::l_remove' if (!m_is_player) clearChildAttachments(); + } else { + if (m_client->modsLoaded()) + m_client->getScript()->on_object_hp_change(m_id); } } else if (cmd == AO_CMD_UPDATE_ARMOR_GROUPS) { m_armor_groups.clear(); @@ -1947,7 +1956,7 @@ void GenericCAO::updateMeshCulling() return; } - irr::scene::ISceneNode *node = getSceneNode(); + scene::ISceneNode *node = getSceneNode(); if (!node) return; diff --git a/src/client/content_cao.h b/src/client/content_cao.h index c2daa0a66..7e9bb6671 100644 --- a/src/client/content_cao.h +++ b/src/client/content_cao.h @@ -189,6 +189,8 @@ public: const bool isImmortal(); + inline const ObjectProperties &getProperties() const { return m_prop; } + scene::ISceneNode *getSceneNode() const; scene::IAnimatedMeshSceneNode *getAnimatedMeshSceneNode() const; @@ -218,6 +220,11 @@ public: return m_prop.stepheight; } + inline bool isLocalPlayer() const + { + return m_is_local_player; + } + inline std::string getName() const { return m_name; @@ -228,11 +235,6 @@ public: return m_is_player; } - inline bool isLocalPlayer() const - { - return m_is_local_player; - } - inline bool isVisible() const { return m_is_visible; @@ -260,7 +262,7 @@ public: void removeFromScene(bool permanent); - void addToScene(ITextureSource *tsrc); + void addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr); inline void expireVisuals() { @@ -315,5 +317,9 @@ public: return &m_prop; } + void setProperties(ObjectProperties newprops); + void updateMeshCulling(); + + std::vector nametag_images = {}; }; diff --git a/src/client/content_mapblock.cpp b/src/client/content_mapblock.cpp index df2748212..810c57138 100644 --- a/src/client/content_mapblock.cpp +++ b/src/client/content_mapblock.cpp @@ -60,18 +60,16 @@ static constexpr u16 quad_indices[] = {0, 1, 2, 2, 3, 0}; const std::string MapblockMeshGenerator::raillike_groupname = "connect_to_raillike"; -MapblockMeshGenerator::MapblockMeshGenerator(MeshMakeData *input, MeshCollector *output) +MapblockMeshGenerator::MapblockMeshGenerator(MeshMakeData *input, MeshCollector *output, + scene::IMeshManipulator *mm): + data(input), + collector(output), + nodedef(data->m_client->ndef()), + meshmanip(mm), + blockpos_nodes(data->m_blockpos * MAP_BLOCKSIZE) { - data = input; - collector = output; - - nodedef = data->m_client->ndef(); - meshmanip = RenderingEngine::get_scene_manager()->getMeshManipulator(); - enable_mesh_cache = g_settings->getBool("enable_mesh_cache") && !data->m_smooth_lighting; // Mesh cache is not supported with smooth lighting - - blockpos_nodes = data->m_blockpos * MAP_BLOCKSIZE; } void MapblockMeshGenerator::useTile(int index, u8 set_flags, u8 reset_flags, bool special) @@ -513,10 +511,10 @@ f32 MapblockMeshGenerator::getCornerLevel(int i, int k) count++; } else if (content == CONTENT_AIR) { air_count++; - if (air_count >= 2) - return -0.5 * BS + 0.2; } } + if (air_count >= 2) + return -0.5 * BS + 0.2; if (count > 0) return sum / count; return 0; @@ -968,7 +966,7 @@ void MapblockMeshGenerator::drawPlantlike() draw_style = PLANT_STYLE_CROSS; scale = BS / 2 * f->visual_scale; offset = v3f(0, 0, 0); - rotate_degree = 0; + rotate_degree = 0.0f; random_offset_Y = false; face_num = 0; plant_height = 1.0; @@ -988,7 +986,8 @@ void MapblockMeshGenerator::drawPlantlike() break; case CPT2_DEGROTATE: - rotate_degree = n.param2 * 2; + case CPT2_COLORED_DEGROTATE: + rotate_degree = 1.5f * n.getDegRotate(nodedef); break; case CPT2_LEVELED: @@ -1343,6 +1342,7 @@ void MapblockMeshGenerator::drawMeshNode() u8 facedir = 0; scene::IMesh* mesh; bool private_mesh; // as a grab/drop pair is not thread-safe + int degrotate = 0; if (f->param_type_2 == CPT2_FACEDIR || f->param_type_2 == CPT2_COLORED_FACEDIR) { @@ -1354,9 +1354,12 @@ void MapblockMeshGenerator::drawMeshNode() facedir = n.getWallMounted(nodedef); if (!enable_mesh_cache) facedir = wallmounted_to_facedir[facedir]; + } else if (f->param_type_2 == CPT2_DEGROTATE || + f->param_type_2 == CPT2_COLORED_DEGROTATE) { + degrotate = n.getDegRotate(nodedef); } - if (!data->m_smooth_lighting && f->mesh_ptr[facedir]) { + if (!data->m_smooth_lighting && f->mesh_ptr[facedir] && !degrotate) { // use cached meshes private_mesh = false; mesh = f->mesh_ptr[facedir]; @@ -1364,7 +1367,10 @@ void MapblockMeshGenerator::drawMeshNode() // no cache, clone and rotate mesh private_mesh = true; mesh = cloneMesh(f->mesh_ptr[0]); - rotateMeshBy6dFacedir(mesh, facedir); + if (facedir) + rotateMeshBy6dFacedir(mesh, facedir); + else if (degrotate) + rotateMeshXZby(mesh, 1.5f * degrotate); recalculateBoundingBox(mesh); meshmanip->recalculateNormals(mesh, true, false); } else diff --git a/src/client/content_mapblock.h b/src/client/content_mapblock.h index 487d84a07..237cc7847 100644 --- a/src/client/content_mapblock.h +++ b/src/client/content_mapblock.h @@ -139,7 +139,7 @@ public: // plantlike-specific PlantlikeStyle draw_style; v3f offset; - int rotate_degree; + float rotate_degree; bool random_offset_Y; int face_num; float plant_height; @@ -172,7 +172,8 @@ public: void drawNode(); public: - MapblockMeshGenerator(MeshMakeData *input, MeshCollector *output); + MapblockMeshGenerator(MeshMakeData *input, MeshCollector *output, + scene::IMeshManipulator *mm); void generate(); void renderSingle(content_t node, u8 param2 = 0x00); }; diff --git a/src/client/fontengine.cpp b/src/client/fontengine.cpp index a55420846..0382c2f18 100644 --- a/src/client/fontengine.cpp +++ b/src/client/fontengine.cpp @@ -42,8 +42,7 @@ static void font_setting_changed(const std::string &name, void *userdata) } /******************************************************************************/ -FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) : - m_settings(main_settings), +FontEngine::FontEngine(gui::IGUIEnvironment* env) : m_env(env) { @@ -51,34 +50,29 @@ FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) : i = (FontMode) FONT_SIZE_UNSPECIFIED; } - assert(m_settings != NULL); // pre-condition + assert(g_settings != NULL); // pre-condition assert(m_env != NULL); // pre-condition assert(m_env->getSkin() != NULL); // pre-condition readSettings(); - if (m_currentMode == FM_Standard) { - m_settings->registerChangedCallback("font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_bold", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_italic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL); - } - else if (m_currentMode == FM_Fallback) { - m_settings->registerChangedCallback("fallback_font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_shadow", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_shadow_alpha", font_setting_changed, NULL); + if (m_currentMode != FM_Simple) { + g_settings->registerChangedCallback("font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_bold", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_italic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL); } - m_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL); - m_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL); + g_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL); + g_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL); } /******************************************************************************/ @@ -102,6 +96,11 @@ void FontEngine::cleanCache() /******************************************************************************/ irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec) +{ + return getFont(spec, false); +} + +irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec, bool may_fail) { if (spec.mode == FM_Unspecified) { spec.mode = m_currentMode; @@ -113,6 +112,10 @@ irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec) // Support for those could be added, but who cares? spec.bold = false; spec.italic = false; + } else if (spec.mode == _FM_Fallback) { + // Fallback font doesn't support these either + spec.bold = false; + spec.italic = false; } // Fallback to default size @@ -131,6 +134,13 @@ irr::gui::IGUIFont *FontEngine::getFont(FontSpec spec) else font = initFont(spec); + if (!font && !may_fail) { + errorstream << "Minetest cannot continue without a valid font. " + "Please correct the 'font_path' setting or install the font " + "file in the proper location." << std::endl; + abort(); + } + m_font_cache[spec.getHash()][spec.size] = font; return font; @@ -205,30 +215,19 @@ unsigned int FontEngine::getFontSize(FontMode mode) void FontEngine::readSettings() { if (USE_FREETYPE && g_settings->getBool("freetype")) { - m_default_size[FM_Standard] = m_settings->getU16("font_size"); - m_default_size[FM_Fallback] = m_settings->getU16("fallback_font_size"); - m_default_size[FM_Mono] = m_settings->getU16("mono_font_size"); + m_default_size[FM_Standard] = g_settings->getU16("font_size"); + m_default_size[_FM_Fallback] = g_settings->getU16("font_size"); + m_default_size[FM_Mono] = g_settings->getU16("mono_font_size"); - /*~ DO NOT TRANSLATE THIS LITERALLY! - This is a special string. Put either "no" or "yes" - into the translation field (literally). - Choose "yes" if the language requires use of the fallback - font, "no" otherwise. - The fallback font is (normally) required for languages with - non-Latin script, like Chinese. - When in doubt, test your translation. */ - m_currentMode = is_yes(gettext("needs_fallback_font")) ? - FM_Fallback : FM_Standard; - - m_default_bold = m_settings->getBool("font_bold"); - m_default_italic = m_settings->getBool("font_italic"); + m_default_bold = g_settings->getBool("font_bold"); + m_default_italic = g_settings->getBool("font_italic"); } else { m_currentMode = FM_Simple; } - m_default_size[FM_Simple] = m_settings->getU16("font_size"); - m_default_size[FM_SimpleMono] = m_settings->getU16("mono_font_size"); + m_default_size[FM_Simple] = g_settings->getU16("font_size"); + m_default_size[FM_SimpleMono] = g_settings->getU16("mono_font_size"); cleanCache(); updateFontCache(); @@ -244,7 +243,7 @@ void FontEngine::updateSkin() m_env->getSkin()->setFont(font); else errorstream << "FontEngine: Default font file: " << - "\n\t\"" << m_settings->get("font_path") << "\"" << + "\n\t\"" << g_settings->get("font_path") << "\"" << "\n\trequired for current screen configuration was not found" << " or was invalid file format." << "\n\tUsing irrlicht default font." << std::endl; @@ -272,18 +271,8 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) assert(spec.size != FONT_SIZE_UNSPECIFIED); std::string setting_prefix = ""; - - switch (spec.mode) { - case FM_Fallback: - setting_prefix = "fallback_"; - break; - case FM_Mono: - case FM_SimpleMono: - setting_prefix = "mono_"; - break; - default: - break; - } + if (spec.mode == FM_Mono) + setting_prefix = "mono_"; std::string setting_suffix = ""; if (spec.bold) @@ -292,7 +281,7 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) setting_suffix.append("_italic"); u32 size = std::floor(RenderingEngine::getDisplayDensity() * - m_settings->getFloat("gui_scaling") * spec.size); + g_settings->getFloat("gui_scaling") * spec.size); if (size == 0) { errorstream << "FontEngine: attempt to use font size 0" << std::endl; @@ -306,38 +295,41 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) g_settings->getU16NoEx(setting_prefix + "font_shadow_alpha", font_shadow_alpha); - std::string wanted_font_path; - wanted_font_path = g_settings->get(setting_prefix + "font_path" + setting_suffix); + std::string path_setting; + if (spec.mode == _FM_Fallback) + path_setting = "fallback_font_path"; + else + path_setting = setting_prefix + "font_path" + setting_suffix; std::string fallback_settings[] = { - wanted_font_path, - m_settings->get("fallback_font_path"), - m_settings->getDefault(setting_prefix + "font_path") + g_settings->get(path_setting), + Settings::getLayer(SL_DEFAULTS)->get(path_setting) }; #if USE_FREETYPE for (const std::string &font_path : fallback_settings) { - irr::gui::IGUIFont *font = gui::CGUITTFont::createTTFont(m_env, + gui::CGUITTFont *font = gui::CGUITTFont::createTTFont(m_env, font_path.c_str(), size, true, true, font_shadow, font_shadow_alpha); - if (font) - return font; - - errorstream << "FontEngine: Cannot load '" << font_path << + if (!font) { + errorstream << "FontEngine: Cannot load '" << font_path << "'. Trying to fall back to another path." << std::endl; + continue; + } + + if (spec.mode != _FM_Fallback) { + FontSpec spec2(spec); + spec2.mode = _FM_Fallback; + font->setFallback(getFont(spec2, true)); + } + return font; } - - - // give up - errorstream << "minetest can not continue without a valid font. " - "Please correct the 'font_path' setting or install the font " - "file in the proper location" << std::endl; #else - errorstream << "FontEngine: Tried to load freetype fonts but Minetest was" - " not compiled with that library." << std::endl; + errorstream << "FontEngine: Tried to load TTF font but Minetest was" + " compiled without Freetype." << std::endl; #endif - abort(); + return nullptr; } /** initialize a font without freetype */ @@ -346,7 +338,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec) assert(spec.mode == FM_Simple || spec.mode == FM_SimpleMono); assert(spec.size != FONT_SIZE_UNSPECIFIED); - const std::string &font_path = m_settings->get( + const std::string &font_path = g_settings->get( (spec.mode == FM_SimpleMono) ? "mono_font_path" : "font_path"); size_t pos_dot = font_path.find_last_of('.'); @@ -364,7 +356,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec) u32 size = std::floor( RenderingEngine::getDisplayDensity() * - m_settings->getFloat("gui_scaling") * + g_settings->getFloat("gui_scaling") * spec.size); irr::gui::IGUIFont *font = nullptr; diff --git a/src/client/fontengine.h b/src/client/fontengine.h index c6efa0df4..3d389ea48 100644 --- a/src/client/fontengine.h +++ b/src/client/fontengine.h @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "util/basic_macros.h" +#include "irrlichttypes.h" #include #include #include @@ -32,7 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc., enum FontMode : u8 { FM_Standard = 0, FM_Mono, - FM_Fallback, + _FM_Fallback, // do not use directly FM_Simple, FM_SimpleMono, FM_MaxMode, @@ -46,7 +47,7 @@ struct FontSpec { bold(bold), italic(italic) {} - u16 getHash() + u16 getHash() const { return (mode << 2) | (static_cast(bold) << 1) | static_cast(italic); } @@ -61,7 +62,7 @@ class FontEngine { public: - FontEngine(Settings* main_settings, gui::IGUIEnvironment* env); + FontEngine(gui::IGUIEnvironment* env); ~FontEngine(); @@ -127,17 +128,16 @@ public: /** get font size for a specific mode */ unsigned int getFontSize(FontMode mode); - /** initialize font engine */ - void initialize(Settings* main_settings, gui::IGUIEnvironment* env); - /** update internal parameters from settings */ void readSettings(); private: + irr::gui::IGUIFont *getFont(FontSpec spec, bool may_fail); + /** update content of font cache in case of a setting change made it invalid */ void updateFontCache(); - /** initialize a new font */ + /** initialize a new TTF font */ gui::IGUIFont *initFont(const FontSpec &spec); /** initialize a font without freetype */ @@ -149,9 +149,6 @@ private: /** clean cache */ void cleanCache(); - /** pointer to settings for registering callbacks or reading config */ - Settings* m_settings = nullptr; - /** pointer to irrlicht gui environment */ gui::IGUIEnvironment* m_env = nullptr; diff --git a/src/client/game.cpp b/src/client/game.cpp index 6ec4efa35..2318d2389 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -68,6 +68,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/pointedthing.h" #include "util/quicktune_shortcutter.h" #include "irrlicht_changes/static_text.h" +#include "irr_ptr.h" #include "version.h" #include "script/scripting_client.h" #include "hud.h" @@ -152,7 +153,7 @@ Game::~Game() delete itemdef_manager; delete draw_control; - extendedResourceCleanup(); + clearTextureNameCache(); g_settings->deregisterChangedCallback("doubletap_jump", &settingChangedCallback, this); @@ -190,6 +191,7 @@ Game::~Game() bool Game::startup(bool *kill, InputHandler *input, + RenderingEngine *rendering_engine, const GameStartData &start_data, std::string &error_message, bool *reconnect, @@ -197,21 +199,21 @@ bool Game::startup(bool *kill, { // "cache" - this->device = RenderingEngine::get_raw_device(); + m_rendering_engine = rendering_engine; + device = m_rendering_engine->get_raw_device(); this->kill = kill; this->error_message = &error_message; - this->reconnect_requested = reconnect; + reconnect_requested = reconnect; this->input = input; this->chat_backend = chat_backend; - this->simple_singleplayer_mode = start_data.isSinglePlayer(); + simple_singleplayer_mode = start_data.isSinglePlayer(); input->keycache.populate(); driver = device->getVideoDriver(); - smgr = RenderingEngine::get_scene_manager(); + smgr = m_rendering_engine->get_scene_manager(); - RenderingEngine::get_scene_manager()->getParameters()-> - setAttribute(scene::OBJ_LOADER_IGNORE_MATERIAL_FILES, true); + smgr->getParameters()->setAttribute(scene::OBJ_LOADER_IGNORE_MATERIAL_FILES, true); // Reinit runData runData = GameRunData(); @@ -232,7 +234,7 @@ bool Game::startup(bool *kill, if (!createClient(start_data)) return false; - RenderingEngine::initialize(client, hud); + m_rendering_engine->initialize(client, hud); return true; } @@ -249,7 +251,7 @@ void Game::run() Profiler::GraphValues dummyvalues; g_profiler->graphGet(dummyvalues); - draw_times.last_time = RenderingEngine::get_timer_time(); + draw_times.last_time = m_rendering_engine->get_timer_time(); set_light_table(g_settings->getFloat("display_gamma")); @@ -261,12 +263,12 @@ void Game::run() irr::core::dimension2d previous_screen_size(g_settings->getU16("screen_w"), g_settings->getU16("screen_h")); - while (RenderingEngine::run() + while (m_rendering_engine->run() && !(*kill || g_gamecallback->shutdown_requested || (server && server->isShutdownRequested()))) { const irr::core::dimension2d ¤t_screen_size = - RenderingEngine::get_video_driver()->getScreenSize(); + m_rendering_engine->get_video_driver()->getScreenSize(); // Verify if window size has changed and save it if it's the case // Ensure evaluating settings->getBool after verifying screensize // First condition is cheaper @@ -279,7 +281,7 @@ void Game::run() } // Calculate dtime = - // RenderingEngine::run() from this iteration + // m_rendering_engine->run() from this iteration // + Sleep time until the wanted FPS are reached limitFps(&draw_times, &dtime); @@ -328,7 +330,7 @@ void Game::run() void Game::shutdown() { - RenderingEngine::finalize(); + m_rendering_engine->finalize(); #if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 8 if (g_settings->get("3d_mode") == "pageflip") { driver->setRenderTarget(irr::video::ERT_STEREO_BOTH_BUFFERS); @@ -487,7 +489,7 @@ bool Game::createClient(const GameStartData &start_data) { showOverlayMessage(N_("Creating client..."), 0, 10); - draw_control = new MapDrawControl; + draw_control = new MapDrawControl(); if (!draw_control) return false; @@ -519,7 +521,7 @@ bool Game::createClient(const GameStartData &start_data) return false; } - GameGlobalShaderConstantSetterFactory *scsf = new GameGlobalShaderConstantSetterFactory( + auto *scsf = new GameGlobalShaderConstantSetterFactory( &m_flags.force_fog_off, &runData.fog_range, client); shader_src->addShaderConstantSetterFactory(scsf); @@ -528,34 +530,22 @@ bool Game::createClient(const GameStartData &start_data) /* Camera */ - camera = new Camera(*draw_control, client); - if (!camera || !camera->successfullyCreated(*error_message)) + camera = new Camera(*draw_control, client, m_rendering_engine); + if (!camera->successfullyCreated(*error_message)) return false; client->setCamera(camera); /* Clouds */ - if (m_cache_enable_clouds) { + if (m_cache_enable_clouds) clouds = new Clouds(smgr, -1, time(0)); - if (!clouds) { - *error_message = "Memory allocation error (clouds)"; - errorstream << *error_message << std::endl; - return false; - } - } /* Skybox */ - sky = new Sky(-1, texture_src, shader_src); + sky = new Sky(-1, m_rendering_engine, texture_src, shader_src); scsf->setSky(sky); skybox = NULL; // This is used/set later on in the main run loop - if (!sky) { - *error_message = "Memory allocation error sky"; - errorstream << *error_message << std::endl; - return false; - } - /* Pre-calculated values */ video::ITexture *t = texture_src->getTexture("crack_anylength.png"); @@ -574,22 +564,28 @@ bool Game::createClient(const GameStartData &start_data) std::wstring str = utf8_to_wide(PROJECT_NAME_C); str += L" "; str += utf8_to_wide(g_version_hash); + { + const wchar_t *text = nullptr; + if (simple_singleplayer_mode) + text = wgettext("Singleplayer"); + else + text = wgettext("Multiplayer"); + str += L" ["; + str += text; + str += L"]"; + delete text; + } str += L" ["; str += L"Minetest Hackclient"; str += L"]"; + device->setWindowCaption(str.c_str()); LocalPlayer *player = client->getEnv().getLocalPlayer(); player->hurt_tilt_timer = 0; player->hurt_tilt_strength = 0; - hud = new Hud(guienv, client, player, &player->inventory); - - if (!hud) { - *error_message = "Memory error: could not create HUD"; - errorstream << *error_message << std::endl; - return false; - } + hud = new Hud(client, player, &player->inventory); mapper = client->getMinimap(); @@ -680,10 +676,7 @@ bool Game::connectToServer(const GameStartData &start_data, start_data.password, start_data.address, *draw_control, texture_src, shader_src, itemdef_manager, nodedef_manager, sound, eventmgr, - connect_address.isIPv6(), m_game_ui.get()); - - if (!client) - return false; + m_rendering_engine, connect_address.isIPv6(), m_game_ui.get()); client->m_simple_singleplayer_mode = simple_singleplayer_mode; @@ -705,9 +698,9 @@ bool Game::connectToServer(const GameStartData &start_data, f32 dtime; f32 wait_time = 0; // in seconds - fps_control.last_time = RenderingEngine::get_timer_time(); + fps_control.last_time = m_rendering_engine->get_timer_time(); - while (RenderingEngine::run()) { + while (m_rendering_engine->run()) { limitFps(&fps_control, &dtime); @@ -744,7 +737,7 @@ bool Game::connectToServer(const GameStartData &start_data, if (client->m_is_registration_confirmation_state) { if (registration_confirmation_shown) { // Keep drawing the GUI - RenderingEngine::draw_menu_scene(guienv, dtime, true); + m_rendering_engine->draw_menu_scene(guienv, dtime, true); } else { registration_confirmation_shown = true; (new GUIConfirmRegistration(guienv, guienv->getRootGUIElement(), -1, @@ -754,7 +747,7 @@ bool Game::connectToServer(const GameStartData &start_data, } else { wait_time += dtime; // Only time out if we aren't waiting for the server we started - if (!start_data.isSinglePlayer() && wait_time > 10) { + if (!start_data.address.empty() && wait_time > 10) { *error_message = "Connection timed out."; errorstream << *error_message << std::endl; break; @@ -780,9 +773,9 @@ bool Game::getServerContent(bool *aborted) FpsControl fps_control = { 0 }; f32 dtime; // in seconds - fps_control.last_time = RenderingEngine::get_timer_time(); + fps_control.last_time = m_rendering_engine->get_timer_time(); - while (RenderingEngine::run()) { + while (m_rendering_engine->run()) { limitFps(&fps_control, &dtime); @@ -820,13 +813,13 @@ bool Game::getServerContent(bool *aborted) if (!client->itemdefReceived()) { const wchar_t *text = wgettext("Item definitions..."); progress = 25; - RenderingEngine::draw_load_screen(text, guienv, texture_src, + m_rendering_engine->draw_load_screen(text, guienv, texture_src, dtime, progress); delete[] text; } else if (!client->nodedefReceived()) { const wchar_t *text = wgettext("Node definitions..."); progress = 30; - RenderingEngine::draw_load_screen(text, guienv, texture_src, + m_rendering_engine->draw_load_screen(text, guienv, texture_src, dtime, progress); delete[] text; } else { @@ -853,7 +846,7 @@ bool Game::getServerContent(bool *aborted) } progress = 30 + client->mediaReceiveProgress() * 35 + 0.5; - RenderingEngine::draw_load_screen(utf8_to_wide(message.str()), guienv, + m_rendering_engine->draw_load_screen(utf8_to_wide(message.str()), guienv, texture_src, dtime, progress); } } @@ -1170,6 +1163,8 @@ void Game::processKeyInput() toggleCinematic(); } else if (wasKeyDown(KeyType::SCREENSHOT)) { client->makeScreenshot(); + } else if (wasKeyDown(KeyType::TOGGLE_BLOCK_BOUNDS)) { + hud->toggleBlockBounds(); } else if (wasKeyDown(KeyType::TOGGLE_HUD)) { m_game_ui->toggleHud(); } else if (wasKeyDown(KeyType::MINIMAP)) { @@ -1284,8 +1279,8 @@ void Game::openInventory() || !client->getScript()->on_inventory_open(fs_src->m_client->getInventory(inventoryloc))) { TextDest *txt_dst = new TextDestPlayerInventory(client); auto *&formspec = m_game_ui->updateFormspec(""); - GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src, - txt_dst, client->getFormspecPrepend(), sound); + GUIFormSpecMenu::create(formspec, client, m_rendering_engine->get_gui_env(), + &input->joystick, fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFormSpec(fs_src->getForm(), inventoryloc); } @@ -1638,7 +1633,6 @@ void Game::checkZoomEnabled() m_game_ui->showTranslatedStatusText("Zoom currently disabled by game or mod"); } - void Game::updateCameraDirection(CameraOrientation *cam, float dtime) { if ((device->isWindowActive() && device->isWindowFocused() @@ -1674,6 +1668,18 @@ void Game::updateCameraDirection(CameraOrientation *cam, float dtime) } } +// Get the factor to multiply with sensitivity to get the same mouse/joystick +// responsiveness independently of FOV. +f32 Game::getSensitivityScaleFactor() const +{ + f32 fov_y = client->getCamera()->getFovY(); + + // Multiply by a constant such that it becomes 1.0 at 72 degree FOV and + // 16:9 aspect ratio to minimize disruption of existing sensitivity + // settings. + return tan(fov_y / 2.0f) * 1.3763818698f; +} + void Game::updateCameraOrientation(CameraOrientation *cam, float dtime) { #ifdef HAVE_TOUCHSCREENGUI @@ -1689,8 +1695,9 @@ void Game::updateCameraOrientation(CameraOrientation *cam, float dtime) dist.Y = -dist.Y; } - cam->camera_yaw -= dist.X * m_cache_mouse_sensitivity; - cam->camera_pitch += dist.Y * m_cache_mouse_sensitivity; + f32 sens_scale = getSensitivityScaleFactor(); + cam->camera_yaw -= dist.X * m_cache_mouse_sensitivity * sens_scale; + cam->camera_pitch += dist.Y * m_cache_mouse_sensitivity * sens_scale; if (dist.X != 0 || dist.Y != 0) input->setMousePos(center.X, center.Y); @@ -1699,7 +1706,8 @@ void Game::updateCameraOrientation(CameraOrientation *cam, float dtime) #endif if (m_cache_enable_joysticks) { - f32 c = m_cache_joystick_frustum_sensitivity * (1.f / 32767.f) * dtime; + f32 sens_scale = getSensitivityScaleFactor(); + f32 c = m_cache_joystick_frustum_sensitivity * (1.f / 32767.f) * dtime * sens_scale; cam->camera_yaw -= input->joystick.getAxisWithoutDead(JA_FRUSTUM_HORIZONTAL) * c; cam->camera_pitch += input->joystick.getAxisWithoutDead(JA_FRUSTUM_VERTICAL) * c; } @@ -1722,7 +1730,7 @@ void Game::updatePlayerControl(const CameraOrientation &cam) input->isKeyDown(KeyType::LEFT), input->isKeyDown(KeyType::RIGHT), isKeyDown(KeyType::JUMP), - isKeyDown(KeyType::SPECIAL1), + isKeyDown(KeyType::AUX1), isKeyDown(KeyType::SNEAK), isKeyDown(KeyType::ZOOM), isKeyDown(KeyType::DIG), @@ -1739,7 +1747,7 @@ void Game::updatePlayerControl(const CameraOrientation &cam) ( (u32)(isKeyDown(KeyType::LEFT) & 0x1) << 2) | ( (u32)(isKeyDown(KeyType::RIGHT) & 0x1) << 3) | ( (u32)(isKeyDown(KeyType::JUMP) & 0x1) << 4) | - ( (u32)(isKeyDown(KeyType::SPECIAL1) & 0x1) << 5) | + ( (u32)(isKeyDown(KeyType::AUX1) & 0x1) << 5) | ( (u32)(isKeyDown(KeyType::SNEAK) & 0x1) << 6) | ( (u32)(isKeyDown(KeyType::DIG) & 0x1) << 7) | ( (u32)(isKeyDown(KeyType::PLACE) & 0x1) << 8) | @@ -1788,6 +1796,9 @@ inline void Game::step(f32 *dtime) if (can_be_and_is_paused) { // This is for a singleplayer server *dtime = 0; // No time passes } else { + if (simple_singleplayer_mode && !paused_animated_nodes.empty()) + resumeAnimation(); + if (server) server->step(*dtime); @@ -1795,6 +1806,33 @@ inline void Game::step(f32 *dtime) } } +static void pauseNodeAnimation(PausedNodesList &paused, scene::ISceneNode *node) { + if (!node) + return; + for (auto &&child: node->getChildren()) + pauseNodeAnimation(paused, child); + if (node->getType() != scene::ESNT_ANIMATED_MESH) + return; + auto animated_node = static_cast(node); + float speed = animated_node->getAnimationSpeed(); + if (!speed) + return; + paused.push_back({grab(animated_node), speed}); + animated_node->setAnimationSpeed(0.0f); +} + +void Game::pauseAnimation() +{ + pauseNodeAnimation(paused_animated_nodes, smgr->getRootSceneNode()); +} + +void Game::resumeAnimation() +{ + for (auto &&pair: paused_animated_nodes) + pair.first->setAnimationSpeed(pair.second); + paused_animated_nodes.clear(); +} + const ClientEventHandler Game::clientEventHandler[CLIENTEVENT_MAX] = { {&Game::handleClientEvent_None}, {&Game::handleClientEvent_PlayerDamage}, @@ -1828,14 +1866,18 @@ void Game::handleClientEvent_PlayerDamage(ClientEvent *event, CameraOrientation // Damage flash and hurt tilt are not used at death if (client->getHP() > 0) { - runData.damage_flash += 95.0f + 3.2f * event->player_damage.amount; - runData.damage_flash = MYMIN(runData.damage_flash, 127.0f); - LocalPlayer *player = client->getEnv().getLocalPlayer(); + f32 hp_max = player->getCAO() ? + player->getCAO()->getProperties()->hp_max : PLAYER_MAX_HP_DEFAULT; + f32 damage_ratio = event->player_damage.amount / hp_max; + + runData.damage_flash += 95.0f + 64.f * damage_ratio; + runData.damage_flash = MYMIN(runData.damage_flash, 127.0f); + player->hurt_tilt_timer = 1.5f; player->hurt_tilt_strength = - rangelim(event->player_damage.amount / 4.0f, 1.0f, 4.0f); + rangelim(damage_ratio * 5.0f, 1.0f, 4.0f); } // Play damage sound @@ -1879,8 +1921,8 @@ void Game::handleClientEvent_ShowFormSpec(ClientEvent *event, CameraOrientation new TextDestPlayerInventory(client, *(event->show_formspec.formname)); auto *&formspec = m_game_ui->updateFormspec(*(event->show_formspec.formname)); - GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend(), sound); + GUIFormSpecMenu::create(formspec, client, m_rendering_engine->get_gui_env(), + &input->joystick, fs_src, txt_dst, client->getFormspecPrepend(), sound); } delete event->show_formspec.formspec; @@ -1899,7 +1941,7 @@ void Game::handleClientEvent_ShowLocalFormSpec(ClientEvent *event, CameraOrienta FormspecFormSource *fs_src = new FormspecFormSource(*event->show_formspec.formspec); LocalFormspecHandler *txt_dst = new LocalFormspecHandler(*event->show_formspec.formname, client); - GUIFormSpecMenu::create(m_game_ui->getFormspecGUI(), client, &input->joystick, + GUIFormSpecMenu::create(m_game_ui->getFormspecGUI(), client, m_rendering_engine->get_gui_env(), &input->joystick, fs_src, txt_dst, client->getFormspecPrepend(), sound); } @@ -1917,132 +1959,100 @@ void Game::handleClientEvent_HandleParticleEvent(ClientEvent *event, void Game::handleClientEvent_HudAdd(ClientEvent *event, CameraOrientation *cam) { LocalPlayer *player = client->getEnv().getLocalPlayer(); - auto &hud_server_to_client = client->getHUDTranslationMap(); - u32 server_id = event->hudadd.server_id; + u32 server_id = event->hudadd->server_id; // ignore if we already have a HUD with that ID - auto i = hud_server_to_client.find(server_id); - if (i != hud_server_to_client.end()) { - delete event->hudadd.pos; - delete event->hudadd.name; - delete event->hudadd.scale; - delete event->hudadd.text; - delete event->hudadd.align; - delete event->hudadd.offset; - delete event->hudadd.world_pos; - delete event->hudadd.size; - delete event->hudadd.text2; + auto i = m_hud_server_to_client.find(server_id); + if (i != m_hud_server_to_client.end()) { + delete event->hudadd; return; } HudElement *e = new HudElement; - e->type = (HudElementType)event->hudadd.type; - e->pos = *event->hudadd.pos; - e->name = *event->hudadd.name; - e->scale = *event->hudadd.scale; - e->text = *event->hudadd.text; - e->number = event->hudadd.number; - e->item = event->hudadd.item; - e->dir = event->hudadd.dir; - e->align = *event->hudadd.align; - e->offset = *event->hudadd.offset; - e->world_pos = *event->hudadd.world_pos; - e->size = *event->hudadd.size; - e->z_index = event->hudadd.z_index; - e->text2 = *event->hudadd.text2; - hud_server_to_client[server_id] = player->addHud(e); + e->type = static_cast(event->hudadd->type); + e->pos = event->hudadd->pos; + e->name = event->hudadd->name; + e->scale = event->hudadd->scale; + e->text = event->hudadd->text; + e->number = event->hudadd->number; + e->item = event->hudadd->item; + e->dir = event->hudadd->dir; + e->align = event->hudadd->align; + e->offset = event->hudadd->offset; + e->world_pos = event->hudadd->world_pos; + e->size = event->hudadd->size; + e->z_index = event->hudadd->z_index; + e->text2 = event->hudadd->text2; + m_hud_server_to_client[server_id] = player->addHud(e); - delete event->hudadd.pos; - delete event->hudadd.name; - delete event->hudadd.scale; - delete event->hudadd.text; - delete event->hudadd.align; - delete event->hudadd.offset; - delete event->hudadd.world_pos; - delete event->hudadd.size; - delete event->hudadd.text2; + delete event->hudadd; } void Game::handleClientEvent_HudRemove(ClientEvent *event, CameraOrientation *cam) { LocalPlayer *player = client->getEnv().getLocalPlayer(); - HudElement *e = player->removeHud(event->hudrm.id); - delete e; + + auto i = m_hud_server_to_client.find(event->hudrm.id); + if (i != m_hud_server_to_client.end()) { + HudElement *e = player->removeHud(i->second); + delete e; + m_hud_server_to_client.erase(i); + } + } void Game::handleClientEvent_HudChange(ClientEvent *event, CameraOrientation *cam) { LocalPlayer *player = client->getEnv().getLocalPlayer(); - u32 id = event->hudchange.id; - HudElement *e = player->getHud(id); + HudElement *e = nullptr; - if (e == NULL) { - delete event->hudchange.v3fdata; - delete event->hudchange.v2fdata; - delete event->hudchange.sdata; - delete event->hudchange.v2s32data; + auto i = m_hud_server_to_client.find(event->hudchange->id); + if (i != m_hud_server_to_client.end()) { + e = player->getHud(i->second); + } + + if (e == nullptr) { + delete event->hudchange; return; } - switch (event->hudchange.stat) { - case HUD_STAT_POS: - e->pos = *event->hudchange.v2fdata; - break; +#define CASE_SET(statval, prop, dataprop) \ + case statval: \ + e->prop = event->hudchange->dataprop; \ + break - case HUD_STAT_NAME: - e->name = *event->hudchange.sdata; - break; + switch (event->hudchange->stat) { + CASE_SET(HUD_STAT_POS, pos, v2fdata); - case HUD_STAT_SCALE: - e->scale = *event->hudchange.v2fdata; - break; + CASE_SET(HUD_STAT_NAME, name, sdata); - case HUD_STAT_TEXT: - e->text = *event->hudchange.sdata; - break; + CASE_SET(HUD_STAT_SCALE, scale, v2fdata); - case HUD_STAT_NUMBER: - e->number = event->hudchange.data; - break; + CASE_SET(HUD_STAT_TEXT, text, sdata); - case HUD_STAT_ITEM: - e->item = event->hudchange.data; - break; + CASE_SET(HUD_STAT_NUMBER, number, data); - case HUD_STAT_DIR: - e->dir = event->hudchange.data; - break; + CASE_SET(HUD_STAT_ITEM, item, data); - case HUD_STAT_ALIGN: - e->align = *event->hudchange.v2fdata; - break; + CASE_SET(HUD_STAT_DIR, dir, data); - case HUD_STAT_OFFSET: - e->offset = *event->hudchange.v2fdata; - break; + CASE_SET(HUD_STAT_ALIGN, align, v2fdata); - case HUD_STAT_WORLD_POS: - e->world_pos = *event->hudchange.v3fdata; - break; + CASE_SET(HUD_STAT_OFFSET, offset, v2fdata); - case HUD_STAT_SIZE: - e->size = *event->hudchange.v2s32data; - break; + CASE_SET(HUD_STAT_WORLD_POS, world_pos, v3fdata); - case HUD_STAT_Z_INDEX: - e->z_index = event->hudchange.data; - break; + CASE_SET(HUD_STAT_SIZE, size, v2s32data); - case HUD_STAT_TEXT2: - e->text2 = *event->hudchange.sdata; - break; + CASE_SET(HUD_STAT_Z_INDEX, z_index, data); + + CASE_SET(HUD_STAT_TEXT2, text2, sdata); } - delete event->hudchange.v3fdata; - delete event->hudchange.v2fdata; - delete event->hudchange.sdata; - delete event->hudchange.v2s32data; +#undef CASE_SET + + delete event->hudchange; } void Game::handleClientEvent_SetSky(ClientEvent *event, CameraOrientation *cam) @@ -2097,6 +2107,7 @@ void Game::handleClientEvent_SetSky(ClientEvent *event, CameraOrientation *cam) "custom" ); } + delete event->set_sky; } @@ -2301,10 +2312,9 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) const ItemDefinition &selected_def = selected_item.getDefinition(itemdef_manager); f32 d = getToolRange(selected_def, hand_item.getDefinition(itemdef_manager)); - if (g_settings->getBool("increase_tool_range")) - d += 2; - if (g_settings->getBool("increase_tool_range_plus")) - d = 1000; + + if (g_settings->getBool("reach")) + d += g_settings->getU16("tool_range"); core::line3d shootline; @@ -2426,9 +2436,12 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) input->clearWasKeyPressed(); input->clearWasKeyReleased(); + // Ensure DIG & PLACE are marked as handled + wasKeyDown(KeyType::DIG); + wasKeyDown(KeyType::PLACE); - input->joystick.clearWasKeyDown(KeyType::DIG); - input->joystick.clearWasKeyDown(KeyType::PLACE); + input->joystick.clearWasKeyPressed(KeyType::DIG); + input->joystick.clearWasKeyPressed(KeyType::PLACE); input->joystick.clearWasKeyReleased(KeyType::DIG); input->joystick.clearWasKeyReleased(KeyType::PLACE); @@ -2570,7 +2583,6 @@ void Game::handlePointingAtNode(const PointedThing &pointed, } } - if ((wasKeyPressed(KeyType::PLACE) || (runData.repeat_place_timer >= (g_settings->getBool("fastplace") ? 0.001 : m_repeat_place_time))) && client->checkPrivilege("interact")) { @@ -2597,14 +2609,14 @@ void Game::handlePointingAtNode(const PointedThing &pointed, bool Game::nodePlacement(const ItemDefinition &selected_def, const ItemStack &selected_item, const v3s16 &nodepos, const v3s16 &neighbourpos, - const PointedThing &pointed, const NodeMetadata *meta, bool force_sneak) + const PointedThing &pointed, const NodeMetadata *meta, bool force) { - std::string prediction = selected_def.node_placement_prediction; + const auto &prediction = selected_def.node_placement_prediction; + const NodeDefManager *nodedef = client->ndef(); ClientMap &map = client->getEnv().getClientMap(); MapNode node; bool is_valid_position; - bool sneaking = force_sneak or isKeyDown(KeyType::SNEAK); node = map.getNode(nodepos, &is_valid_position); if (!is_valid_position) { @@ -2614,7 +2626,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, // formspec in meta if (meta && !meta->getString("formspec").empty() && !input->isRandom() - && !sneaking) { + && !isKeyDown(KeyType::SNEAK) && !force) { // on_rightclick callbacks are called anyway if (nodedef_manager->get(map.getNode(nodepos)).rightclickable) client->interact(INTERACT_PLACE, pointed); @@ -2632,8 +2644,8 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, TextDest *txt_dst = new TextDestNodeMetadata(nodepos, client); auto *&formspec = m_game_ui->updateFormspec(""); - GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src, - txt_dst, client->getFormspecPrepend(), sound); + GUIFormSpecMenu::create(formspec, client, m_rendering_engine->get_gui_env(), + &input->joystick, fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFormSpec(formspec_str, inventoryloc); } @@ -2641,8 +2653,8 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, } // on_rightclick callback - if (prediction.empty() || (nodedef->get(node).rightclickable - && !sneaking)) { + if (prediction.empty() || (nodedef->get(node).rightclickable && + !isKeyDown(KeyType::SNEAK) && !force)) { // Report to server client->interact(INTERACT_PLACE, pointed); return false; @@ -2674,8 +2686,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, if (!found) { errorstream << "Node placement prediction failed for " - << selected_def.name << " (places " - << prediction + << selected_def.name << " (places " << prediction << ") - Name not known" << std::endl; // Handle this as if prediction was empty // Report to server @@ -2686,9 +2697,14 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, const ContentFeatures &predicted_f = nodedef->get(id); // Predict param2 for facedir and wallmounted nodes + // Compare core.item_place_node() for what the server does u8 param2 = 0; - if (predicted_f.param_type_2 == CPT2_WALLMOUNTED || + const u8 place_param2 = selected_def.place_param2; + + if (place_param2) { + param2 = place_param2; + } else if (predicted_f.param_type_2 == CPT2_WALLMOUNTED || predicted_f.param_type_2 == CPT2_COLORED_WALLMOUNTED) { v3s16 dir = nodepos - neighbourpos; @@ -2699,9 +2715,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, } else { param2 = dir.Z < 0 ? 5 : 4; } - } - - if (predicted_f.param_type_2 == CPT2_FACEDIR || + } else if (predicted_f.param_type_2 == CPT2_FACEDIR || predicted_f.param_type_2 == CPT2_COLORED_FACEDIR) { v3s16 dir = nodepos - floatToInt(client->getEnv().getLocalPlayer()->getPosition(), BS); @@ -2712,11 +2726,9 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, } } - assert(param2 <= 5); - - //Check attachment if node is in group attached_node - if (((ItemGroupList) predicted_f.groups)["attached_node"] != 0) { - static v3s16 wallmounted_dirs[8] = { + // Check attachment if node is in group attached_node + if (itemgroup_get(predicted_f.groups, "attached_node") != 0) { + const static v3s16 wallmounted_dirs[8] = { v3s16(0, 1, 0), v3s16(0, -1, 0), v3s16(1, 0, 0), @@ -2741,11 +2753,11 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, } // Apply color - if ((predicted_f.param_type_2 == CPT2_COLOR + if (!place_param2 && (predicted_f.param_type_2 == CPT2_COLOR || predicted_f.param_type_2 == CPT2_COLORED_FACEDIR || predicted_f.param_type_2 == CPT2_COLORED_WALLMOUNTED)) { - const std::string &indexstr = selected_item.metadata.getString( - "palette_index", 0); + const auto &indexstr = selected_item.metadata. + getString("palette_index", 0); if (!indexstr.empty()) { s32 index = mystoi(indexstr); if (predicted_f.param_type_2 == CPT2_COLOR) { @@ -2785,11 +2797,10 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed; return false; } - } catch (InvalidPositionException &e) { + } catch (const InvalidPositionException &e) { errorstream << "Node placement prediction failed for " << selected_def.name << " (places " - << prediction - << ") - Position not loaded" << std::endl; + << prediction << ") - Position not loaded" << std::endl; soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed; return false; } @@ -3197,7 +3208,7 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, } catch (SettingNotFoundException) { } #endif - RenderingEngine::draw_scene(skycolor, m_game_ui->m_flags.show_hud, + m_rendering_engine->draw_scene(skycolor, m_game_ui->m_flags.show_hud, m_game_ui->m_flags.show_minimap, draw_wield_tool, draw_crosshair); /* @@ -3336,7 +3347,7 @@ inline void Game::limitFps(FpsControl *fps_timings, f32 *dtime) void Game::showOverlayMessage(const char *msg, float dtime, int percent, bool draw_clouds) { const wchar_t *wmsg = wgettext(msg); - RenderingEngine::draw_load_screen(wmsg, guienv, texture_src, dtime, percent, + m_rendering_engine->draw_load_screen(wmsg, guienv, texture_src, dtime, percent, draw_clouds); delete[] wmsg; } @@ -3393,33 +3404,32 @@ void Game::readSettings() m_does_lost_focus_pause_game = g_settings->getBool("pause_on_lost_focus"); } +bool Game::isKeyDown(GameKeyType k) +{ + return input->isKeyDown(k); +} + +bool Game::wasKeyDown(GameKeyType k) +{ + return input->wasKeyDown(k); +} + +bool Game::wasKeyPressed(GameKeyType k) +{ + return input->wasKeyPressed(k); +} + +bool Game::wasKeyReleased(GameKeyType k) +{ + return input->wasKeyReleased(k); +} + /****************************************************************************/ /**************************************************************************** Shutdown / cleanup ****************************************************************************/ /****************************************************************************/ -void Game::extendedResourceCleanup() -{ - // Extended resource accounting - infostream << "Irrlicht resources after cleanup:" << std::endl; - infostream << "\tRemaining meshes : " - << RenderingEngine::get_mesh_cache()->getMeshCount() << std::endl; - infostream << "\tRemaining textures : " - << driver->getTextureCount() << std::endl; - - for (unsigned int i = 0; i < driver->getTextureCount(); i++) { - irr::video::ITexture *texture = driver->getTextureByIndex(i); - infostream << "\t\t" << i << ":" << texture->getName().getPath().c_str() - << std::endl; - } - - clearTextureNameCache(); - infostream << "\tRemaining materials: " - << driver-> getMaterialRendererCount() - << " (note: irrlicht doesn't support removing renderers)" << std::endl; -} - void Game::showDeathFormspec() { static std::string formspec_str = @@ -3437,8 +3447,8 @@ void Game::showDeathFormspec() LocalFormspecHandler *txt_dst = new LocalFormspecHandler("MT_DEATH_SCREEN", client); auto *&formspec = m_game_ui->getFormspecGUI(); - GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend(), sound); + GUIFormSpecMenu::create(formspec, client, m_rendering_engine->get_gui_env(), + &input->joystick, fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFocus("btn_respawn"); } @@ -3579,10 +3589,13 @@ void Game::showPauseMenu() LocalFormspecHandler *txt_dst = new LocalFormspecHandler("MT_PAUSE_MENU"); auto *&formspec = m_game_ui->getFormspecGUI(); - GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend(), sound); + GUIFormSpecMenu::create(formspec, client, m_rendering_engine->get_gui_env(), + &input->joystick, fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFocus("btn_continue"); formspec->doPause = true; + + if (simple_singleplayer_mode) + pauseAnimation(); } /****************************************************************************/ @@ -3595,6 +3608,7 @@ Game *g_game; void the_game(bool *kill, InputHandler *input, + RenderingEngine *rendering_engine, const GameStartData &start_data, std::string &error_message, ChatBackend &chat_backend, @@ -3611,8 +3625,8 @@ void the_game(bool *kill, try { - if (game.startup(kill, input, start_data, error_message, - reconnect_requested, &chat_backend)) { + if (game.startup(kill, input, rendering_engine, start_data, + error_message, reconnect_requested, &chat_backend)) { game.run(); } diff --git a/src/client/game.h b/src/client/game.h index f4d9b3893..d8dc081f9 100644 --- a/src/client/game.h +++ b/src/client/game.h @@ -68,6 +68,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/pointedthing.h" #include "util/quicktune_shortcutter.h" #include "irrlicht_changes/static_text.h" +#include "irr_ptr.h" #include "version.h" #include "script/scripting_client.h" #include "hud.h" @@ -75,7 +76,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include class InputHandler; -class ChatBackend; /* to avoid having to include chat.h */ +class ChatBackend; +class RenderingEngine; struct SubgameSpec; struct GameStartData; @@ -190,13 +192,7 @@ struct LocalFormspecHandler : public TextDest return; } - if (fields.find("quit") != fields.end()) { - return; - } - - if (fields.find("btn_continue") != fields.end()) { - return; - } + return; } if (m_formname == "MT_DEATH_SCREEN") { @@ -205,7 +201,7 @@ struct LocalFormspecHandler : public TextDest return; } - if (m_client && m_client->modsLoaded()) + if (m_client->modsLoaded()) m_client->getScript()->on_formspec_input(m_formname, fields); } @@ -424,12 +420,7 @@ public: }; -// before 1.8 there isn't a "integer interface", only float -#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 8) -typedef f32 SamplerLayer_t; -#else typedef s32 SamplerLayer_t; -#endif class GameGlobalShaderConstantSetter : public IShaderConstantSetter @@ -450,6 +441,7 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter CachedPixelShaderSetting m_camera_offset_pixel; CachedPixelShaderSetting m_camera_offset_vertex; CachedPixelShaderSetting m_base_texture; + CachedPixelShaderSetting m_normal_texture; Client *m_client; public: @@ -483,6 +475,7 @@ public: m_camera_offset_pixel("cameraOffset"), m_camera_offset_vertex("cameraOffset"), m_base_texture("baseTexture"), + m_normal_texture("normalTexture"), m_client(client) { g_settings->registerChangedCallback("enable_fog", settingsCallback, this); @@ -494,12 +487,8 @@ public: g_settings->deregisterChangedCallback("enable_fog", settingsCallback, this); } - virtual void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) + void onSetConstants(video::IMaterialRendererServices *services) override { - if (!is_highlevel) - return; - // Background color video::SColor bgcolor = m_sky->getBgColor(); video::SColorf bgcolorf(bgcolor); @@ -539,43 +528,26 @@ public: float eye_position_array[3]; v3f epos = m_client->getEnv().getLocalPlayer()->getEyePosition(); -#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 8) - eye_position_array[0] = epos.X; - eye_position_array[1] = epos.Y; - eye_position_array[2] = epos.Z; -#else epos.getAs3Values(eye_position_array); -#endif m_eye_position_pixel.set(eye_position_array, services); m_eye_position_vertex.set(eye_position_array, services); if (m_client->getMinimap()) { float minimap_yaw_array[3]; v3f minimap_yaw = m_client->getMinimap()->getYawVec(); -#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 8) - minimap_yaw_array[0] = minimap_yaw.X; - minimap_yaw_array[1] = minimap_yaw.Y; - minimap_yaw_array[2] = minimap_yaw.Z; -#else minimap_yaw.getAs3Values(minimap_yaw_array); -#endif m_minimap_yaw.set(minimap_yaw_array, services); } float camera_offset_array[3]; v3f offset = intToFloat(m_client->getCamera()->getOffset(), BS); -#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 8) - camera_offset_array[0] = offset.X; - camera_offset_array[1] = offset.Y; - camera_offset_array[2] = offset.Z; -#else offset.getAs3Values(camera_offset_array); -#endif m_camera_offset_pixel.set(camera_offset_array, services); m_camera_offset_vertex.set(camera_offset_array, services); - SamplerLayer_t base_tex = 0; + SamplerLayer_t base_tex = 0, normal_tex = 1; m_base_texture.set(&base_tex, services); + m_normal_texture.set(&normal_tex, services); } }; @@ -606,7 +578,7 @@ public: virtual IShaderConstantSetter* create() { - GameGlobalShaderConstantSetter *scs = new GameGlobalShaderConstantSetter( + auto *scs = new GameGlobalShaderConstantSetter( m_sky, m_force_fog_off, m_fog_range, m_client); if (!m_sky) created_nosky.push_back(scs); @@ -645,7 +617,6 @@ struct GameRunData { bool btn_down_for_dig; bool dig_instantly; bool digging_blocked; - bool left_punch; bool reset_jump_timer; float nodig_delay_timer; float dig_time; @@ -673,6 +644,8 @@ struct ClientEventHandler void (Game::*handler)(ClientEvent *, CameraOrientation *); }; +using PausedNodesList = std::vector, float>>; + class Game { public: Game(); @@ -680,6 +653,7 @@ public: bool startup(bool *kill, InputHandler *input, + RenderingEngine *rendering_engine, const GameStartData &game_params, std::string &error_message, bool *reconnect, @@ -689,8 +663,6 @@ public: void run(); void shutdown(); - void extendedResourceCleanup(); - // Basic initialisation bool init(const std::string &map_dir, const std::string &address, u16 port, const SubgameSpec &gamespec); @@ -796,22 +768,10 @@ public: static void updateAllMapBlocksCallback(const std::string &setting_name, void *data); void readSettings(); - inline bool isKeyDown(GameKeyType k) - { - return input->isKeyDown(k); - } - inline bool wasKeyDown(GameKeyType k) - { - return input->wasKeyDown(k); - } - inline bool wasKeyPressed(GameKeyType k) - { - return input->wasKeyPressed(k); - } - inline bool wasKeyReleased(GameKeyType k) - { - return input->wasKeyReleased(k); - } + bool isKeyDown(GameKeyType k); + bool wasKeyDown(GameKeyType k); + bool wasKeyPressed(GameKeyType k); + bool wasKeyReleased(GameKeyType k); #ifdef __ANDROID__ void handleAndroidChatInput(); @@ -825,6 +785,9 @@ public: void showDeathFormspec(); void showPauseMenu(); + void pauseAnimation(); + void resumeAnimation(); + // ClientEvent handlers void handleClientEvent_None(ClientEvent *event, CameraOrientation *cam); void handleClientEvent_PlayerDamage(ClientEvent *event, CameraOrientation *cam); @@ -849,9 +812,11 @@ public: bool nodePlacement(const ItemDefinition &selected_def, const ItemStack &selected_item, const v3s16 &nodepos, const v3s16 &neighbourpos, const PointedThing &pointed, - const NodeMetadata *meta, bool force_sneak = false); + const NodeMetadata *meta, bool force = false); static const ClientEventHandler clientEventHandler[CLIENTEVENT_MAX]; + f32 getSensitivityScaleFactor() const; + InputHandler *input = nullptr; Client *client = nullptr; @@ -886,6 +851,9 @@ public: Hud *hud = nullptr; Minimap *mapper = nullptr; + // Map server hud ids to client hud ids + std::unordered_map m_hud_server_to_client; + GameRunData runData; Flags m_flags; @@ -894,12 +862,14 @@ public: these items (e.g. device) */ IrrlichtDevice *device; + RenderingEngine *m_rendering_engine; video::IVideoDriver *driver; scene::ISceneManager *smgr; bool *kill; std::string *error_message; bool *reconnect_requested; scene::ISceneNode *skybox; + PausedNodesList paused_animated_nodes; bool simple_singleplayer_mode; /* End 'cache' */ @@ -948,6 +918,7 @@ extern Game *g_game; void the_game(bool *kill, InputHandler *input, + RenderingEngine *rendering_engine, const GameStartData &start_data, std::string &error_message, ChatBackend &chat_backend, diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp index 9376e4209..b2cd95395 100644 --- a/src/client/gameui.cpp +++ b/src/client/gameui.cpp @@ -102,7 +102,8 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_ { LocalPlayer *player = client->getEnv().getLocalPlayer(); v3f player_position = player->getPosition(); - v2u32 screensize = RenderingEngine::get_instance()->getWindowSize(); + + v2u32 screensize = RenderingEngine::getWindowSize(); bool show_coords = g_settings->getBool("coords"); @@ -243,7 +244,7 @@ void GameUI::setChatText(const EnrichedString &chat_text, u32 recent_chat_count) // Update gui element size and position - const v2u32 &window_size = RenderingEngine::get_instance()->getWindowSize(); + const v2u32 &window_size = RenderingEngine::getWindowSize(); s32 chat_y = window_size.Y - 150 - m_guitext_chat->getTextHeight(); diff --git a/src/client/gameui.h b/src/client/gameui.h index 999005de3..e3885815c 100644 --- a/src/client/gameui.h +++ b/src/client/gameui.h @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "irrlichttypes.h" #include #include "gui/guiFormSpecMenu.h" #include "util/enriched_string.h" diff --git a/src/client/guiscalingfilter.cpp b/src/client/guiscalingfilter.cpp index 406c096e6..232219237 100644 --- a/src/client/guiscalingfilter.cpp +++ b/src/client/guiscalingfilter.cpp @@ -23,7 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/numeric.h" #include #include "client/renderingengine.h" -#include "client/tile.h" // hasNPotSupport() /* Maintain a static cache to store the images that correspond to textures * in a format that's manipulable by code. Some platforms exhibit issues @@ -102,7 +101,7 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver, if (!g_settings->getBool("gui_scaling_filter_txr2img")) return src; srcimg = driver->createImageFromData(src->getColorFormat(), - src->getSize(), src->lock(), false); + src->getSize(), src->lock(video::ETLM_READ_ONLY), false); src->unlock(); g_imgCache[origname] = srcimg; } @@ -117,7 +116,7 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver, #if ENABLE_GLES // Some platforms are picky about textures being powers of 2, so expand // the image dimensions to the next power of 2, if necessary. - if (!hasNPotSupport()) { + if (!driver->queryFeature(video::EVDF_TEXTURE_NPOT)) { video::IImage *po2img = driver->createImage(src->getColorFormat(), core::dimension2d(npot2((u32)destrect.getWidth()), npot2((u32)destrect.getHeight()))); @@ -129,7 +128,7 @@ video::ITexture *guiScalingResizeCached(video::IVideoDriver *driver, #endif // Convert the scaled image back into a texture. - scaled = driver->addTexture(scalename, destimg, NULL); + scaled = driver->addTexture(scalename, destimg); destimg->drop(); g_txrCache[scalename] = scaled; diff --git a/src/client/hud.cpp b/src/client/hud.cpp index f6497fe25..391af0995 100644 --- a/src/client/hud.cpp +++ b/src/client/hud.cpp @@ -45,11 +45,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #define OBJECT_CROSSHAIR_LINE_SIZE 8 #define CROSSHAIR_LINE_SIZE 10 -Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, +Hud::Hud(Client *client, LocalPlayer *player, Inventory *inventory) { driver = RenderingEngine::get_video_driver(); - this->guienv = guienv; this->client = client; this->player = player; this->inventory = inventory; @@ -100,7 +99,7 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, if (g_settings->getBool("enable_shaders")) { IShaderSource *shdrsrc = client->getShaderSource(); u16 shader_id = shdrsrc->getShader( - m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", 1, 1); + m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", TILE_MATERIAL_ALPHA); m_selection_material.MaterialType = shdrsrc->getShaderInfo(shader_id).material; } else { m_selection_material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; @@ -149,7 +148,7 @@ void Hud::drawItem(const ItemStack &item, const core::rect& rect, bool selected) { if (selected) { - /* draw hihlighting around selected item */ + /* draw highlighting around selected item */ if (use_hotbar_selected_image) { core::rect imgrect2 = rect; imgrect2.UpperLeftCorner.X -= (m_padding*2); @@ -315,7 +314,7 @@ bool Hud::calculateScreenPos(const v3s16 &camera_offset, HudElement *e, v2s32 *p { v3f w_pos = e->world_pos * BS; scene::ICameraSceneNode* camera = - RenderingEngine::get_scene_manager()->getActiveCamera(); + client->getSceneManager()->getActiveCamera(); w_pos -= intToFloat(camera_offset, BS); core::matrix4 trans = camera->getProjectionMatrix(); trans *= camera->getViewMatrix(); @@ -336,22 +335,22 @@ void Hud::drawLuaElements(const v3s16 &camera_offset) irr::gui::IGUIFont* font = g_fontengine->getFont(); // Reorder elements by z_index - std::vector ids; + std::vector elems; + elems.reserve(player->maxHudId()); for (size_t i = 0; i != player->maxHudId(); i++) { HudElement *e = player->getHud(i); if (!e) continue; - auto it = ids.begin(); - while (it != ids.end() && player->getHud(*it)->z_index <= e->z_index) + auto it = elems.begin(); + while (it != elems.end() && (*it)->z_index <= e->z_index) ++it; - ids.insert(it, i); + elems.insert(it, e); } - for (size_t i : ids) { - HudElement *e = player->getHud(i); + for (HudElement *e : elems) { v2s32 pos(floor(e->pos.X * (float) m_screensize.X + 0.5), floor(e->pos.Y * (float) m_screensize.Y + 0.5)); @@ -475,7 +474,7 @@ void Hud::drawLuaElements(const v3s16 &camera_offset) // Angle according to camera view v3f fore(0.f, 0.f, 1.f); - scene::ICameraSceneNode *cam = RenderingEngine::get_scene_manager()->getActiveCamera(); + scene::ICameraSceneNode *cam = client->getSceneManager()->getActiveCamera(); cam->getAbsoluteTransformation().rotateVect(fore); int angle = - fore.getHorizontalAngle().Y; @@ -522,8 +521,8 @@ void Hud::drawLuaElements(const v3s16 &camera_offset) client->getMinimap()->drawMinimap(rect); break; } default: - infostream << "Hud::drawLuaElements: ignoring drawform " << e->type << - " of hud element ID " << i << " due to unrecognized type" << std::endl; + infostream << "Hud::drawLuaElements: ignoring drawform " << e->type + << " due to unrecognized type" << std::endl; } } } @@ -571,8 +570,6 @@ void Hud::drawCompassTranslate(HudElement *e, video::ITexture *texture, void Hud::drawCompassRotate(HudElement *e, video::ITexture *texture, const core::rect &rect, int angle) { - core::dimension2di imgsize(texture->getOriginalSize()); - core::rect oldViewPort = driver->getViewPort(); core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION); core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW); @@ -749,7 +746,7 @@ void Hud::drawHotbar(u16 playeritem) { s32 width = hotbar_itemcount * (m_hotbar_imagesize + m_padding * 2); v2s32 pos = centerlowerpos - v2s32(width / 2, m_hotbar_imagesize + m_padding * 3); - const v2u32 &window_size = RenderingEngine::get_instance()->getWindowSize(); + const v2u32 &window_size = RenderingEngine::getWindowSize(); if ((float) width / (float) window_size.X <= g_settings->getFloat("hud_hotbar_max_width")) { if (player->hud_flags & HUD_FLAG_HOTBAR_VISIBLE) { @@ -864,6 +861,54 @@ void Hud::drawSelectionMesh() } } +void Hud::toggleBlockBounds() +{ + m_block_bounds_mode = static_cast(m_block_bounds_mode + 1); + + if (m_block_bounds_mode >= BLOCK_BOUNDS_MAX) { + m_block_bounds_mode = BLOCK_BOUNDS_OFF; + } +} + +void Hud::drawBlockBounds() +{ + if (m_block_bounds_mode == BLOCK_BOUNDS_OFF) { + return; + } + + video::SMaterial old_material = driver->getMaterial2D(); + driver->setMaterial(m_selection_material); + + v3s16 pos = player->getStandingNodePos(); + + v3s16 blockPos( + floorf((float) pos.X / MAP_BLOCKSIZE), + floorf((float) pos.Y / MAP_BLOCKSIZE), + floorf((float) pos.Z / MAP_BLOCKSIZE) + ); + + v3f offset = intToFloat(client->getCamera()->getOffset(), BS); + + s8 radius = m_block_bounds_mode == BLOCK_BOUNDS_ALL ? 2 : 0; + + v3f halfNode = v3f(BS, BS, BS) / 2.0f; + + for (s8 x = -radius; x <= radius; x++) + for (s8 y = -radius; y <= radius; y++) + for (s8 z = -radius; z <= radius; z++) { + v3s16 blockOffset(x, y, z); + + aabb3f box( + intToFloat((blockPos + blockOffset) * MAP_BLOCKSIZE, BS) - offset - halfNode, + intToFloat(((blockPos + blockOffset) * MAP_BLOCKSIZE) + (MAP_BLOCKSIZE - 1), BS) - offset + halfNode + ); + + driver->draw3DBox(box, video::SColor(255, 255, 0, 0)); + } + + driver->setMaterial(old_material); +} + void Hud::updateSelectionMesh(const v3s16 &camera_offset) { m_camera_offset = camera_offset; @@ -910,7 +955,7 @@ void Hud::updateSelectionMesh(const v3s16 &camera_offset) } void Hud::resizeHotbar() { - const v2u32 &window_size = RenderingEngine::get_instance()->getWindowSize(); + const v2u32 &window_size = RenderingEngine::getWindowSize(); if (m_screensize != window_size) { m_hotbar_imagesize = floor(HOTBAR_IMAGE_SIZE * @@ -947,12 +992,20 @@ void drawItemStack( return; } - const ItemDefinition &def = item.getDefinition(client->idef()); - ItemMesh *imesh = client->idef()->getWieldMesh(def.name, client); + const static thread_local bool enable_animations = + g_settings->getBool("inventory_items_animations"); - if (imesh && imesh->mesh) { + const ItemDefinition &def = item.getDefinition(client->idef()); + + bool draw_overlay = false; + + // Render as mesh if animated or no inventory image + if ((enable_animations && rotation_kind < IT_ROT_NONE) || def.inventory_image.empty()) { + ItemMesh *imesh = client->idef()->getWieldMesh(def.name, client); + if (!imesh || !imesh->mesh) + return; scene::IMesh *mesh = imesh->mesh; - driver->clearZBuffer(); + driver->clearBuffers(video::ECBF_DEPTH); s32 delta = 0; if (rotation_kind < IT_ROT_NONE) { MeshTimeInfo &ti = rotation_time_infos[rotation_kind]; @@ -994,9 +1047,6 @@ void drawItemStack( core::matrix4 matrix; matrix.makeIdentity(); - static thread_local bool enable_animations = - g_settings->getBool("inventory_items_animations"); - if (enable_animations) { float timer_f = (float) delta / 5000.f; matrix.setRotationDegrees(v3f( @@ -1042,22 +1092,36 @@ void drawItemStack( driver->setTransform(video::ETS_PROJECTION, oldProjMat); driver->setViewPort(oldViewPort); - // draw the inventory_overlay - if (def.type == ITEM_NODE && def.inventory_image.empty() && - !def.inventory_overlay.empty()) { - ITextureSource *tsrc = client->getTextureSource(); - video::ITexture *overlay_texture = tsrc->getTexture(def.inventory_overlay); - core::dimension2d dimens = overlay_texture->getOriginalSize(); - core::rect srcrect(0, 0, dimens.Width, dimens.Height); - draw2DImageFilterScaled(driver, overlay_texture, rect, srcrect, clip, 0, true); - } + draw_overlay = def.type == ITEM_NODE && def.inventory_image.empty(); + } else { // Otherwise just draw as 2D + video::ITexture *texture = client->idef()->getInventoryTexture(def.name, client); + if (!texture) + return; + video::SColor color = + client->idef()->getItemstackColor(item, client); + const video::SColor colors[] = { color, color, color, color }; + + draw2DImageFilterScaled(driver, texture, rect, + core::rect({0, 0}, core::dimension2di(texture->getOriginalSize())), + clip, colors, true); + + draw_overlay = true; + } + + // draw the inventory_overlay + if (!def.inventory_overlay.empty() && draw_overlay) { + ITextureSource *tsrc = client->getTextureSource(); + video::ITexture *overlay_texture = tsrc->getTexture(def.inventory_overlay); + core::dimension2d dimens = overlay_texture->getOriginalSize(); + core::rect srcrect(0, 0, dimens.Width, dimens.Height); + draw2DImageFilterScaled(driver, overlay_texture, rect, srcrect, clip, 0, true); } if (def.type == ITEM_TOOL && item.wear != 0) { // Draw a progressbar - float barheight = rect.getHeight() / 16; - float barpad_x = rect.getWidth() / 16; - float barpad_y = rect.getHeight() / 16; + float barheight = static_cast(rect.getHeight()) / 16; + float barpad_x = static_cast(rect.getWidth()) / 16; + float barpad_y = static_cast(rect.getHeight()) / 16; core::rect progressrect( rect.UpperLeftCorner.X + barpad_x, diff --git a/src/client/hud.h b/src/client/hud.h index d46545d71..d341105d2 100644 --- a/src/client/hud.h +++ b/src/client/hud.h @@ -35,14 +35,6 @@ struct ItemStack; class Hud { public: - video::IVideoDriver *driver; - scene::ISceneManager *smgr; - gui::IGUIEnvironment *guienv; - Client *client; - LocalPlayer *player; - Inventory *inventory; - ITextureSource *tsrc; - video::SColor crosshair_argb; video::SColor selectionbox_argb; @@ -55,10 +47,13 @@ public: bool pointing_at_object = false; - Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, + Hud(Client *client, LocalPlayer *player, Inventory *inventory); ~Hud(); + void toggleBlockBounds(); + void drawBlockBounds(); + void drawHotbar(u16 playeritem); void resizeHotbar(); void drawCrosshair(); @@ -103,6 +98,12 @@ private: void drawCompassRotate(HudElement *e, video::ITexture *texture, const core::rect &rect, int way); + Client *client = nullptr; + video::IVideoDriver *driver = nullptr; + LocalPlayer *player = nullptr; + Inventory *inventory = nullptr; + ITextureSource *tsrc = nullptr; + float m_hud_scaling; // cached minetest setting float m_scale_factor; v3s16 m_camera_offset; @@ -125,6 +126,14 @@ private: scene::SMeshBuffer m_rotation_mesh_buffer; + enum BlockBoundsMode + { + BLOCK_BOUNDS_OFF, + BLOCK_BOUNDS_CURRENT, + BLOCK_BOUNDS_ALL, + BLOCK_BOUNDS_MAX + } m_block_bounds_mode = BLOCK_BOUNDS_OFF; + enum { HIGHLIGHT_BOX, diff --git a/src/client/imagefilters.cpp b/src/client/imagefilters.cpp index 0fa501410..7b2ef9822 100644 --- a/src/client/imagefilters.cpp +++ b/src/client/imagefilters.cpp @@ -19,63 +19,134 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "imagefilters.h" #include "util/numeric.h" #include +#include +#include + +// Simple 2D bitmap class with just the functionality needed here +class Bitmap { + u32 linesize, lines; + std::vector data; + + static inline u32 bytepos(u32 index) { return index >> 3; } + static inline u8 bitpos(u32 index) { return index & 7; } + +public: + Bitmap(u32 width, u32 height) : linesize(width), lines(height), + data(bytepos(width * height) + 1) {} + + inline bool get(u32 x, u32 y) const { + u32 index = y * linesize + x; + return data[bytepos(index)] & (1 << bitpos(index)); + } + + inline void set(u32 x, u32 y) { + u32 index = y * linesize + x; + data[bytepos(index)] |= 1 << bitpos(index); + } + + inline bool all() const { + for (u32 i = 0; i < data.size() - 1; i++) { + if (data[i] != 0xff) + return false; + } + // last byte not entirely filled + for (u8 i = 0; i < bitpos(linesize * lines); i++) { + bool value_of_bit = data.back() & (1 << i); + if (!value_of_bit) + return false; + } + return true; + } + + inline void copy(Bitmap &to) const { + assert(to.linesize == linesize && to.lines == lines); + to.data = data; + } +}; /* Fill in RGB values for transparent pixels, to correct for odd colors * appearing at borders when blending. This is because many PNG optimizers * like to discard RGB values of transparent pixels, but when blending then - * with non-transparent neighbors, their RGB values will shpw up nonetheless. + * with non-transparent neighbors, their RGB values will show up nonetheless. * * This function modifies the original image in-place. * * Parameter "threshold" is the alpha level below which pixels are considered - * transparent. Should be 127 for 3d where alpha is threshold, but 0 for - * 2d where alpha is blended. + * transparent. Should be 127 when the texture is used with ALPHA_CHANNEL_REF, + * 0 when alpha blending is used. */ void imageCleanTransparent(video::IImage *src, u32 threshold) { core::dimension2d dim = src->getDimension(); - // Walk each pixel looking for fully transparent ones. + Bitmap bitmap(dim.Width, dim.Height); + + // First pass: Mark all opaque pixels // Note: loop y around x for better cache locality. for (u32 ctry = 0; ctry < dim.Height; ctry++) for (u32 ctrx = 0; ctrx < dim.Width; ctrx++) { + if (src->getPixel(ctrx, ctry).getAlpha() > threshold) + bitmap.set(ctrx, ctry); + } - // Ignore opaque pixels. - irr::video::SColor c = src->getPixel(ctrx, ctry); - if (c.getAlpha() > threshold) + // Exit early if all pixels opaque + if (bitmap.all()) + return; + + Bitmap newmap = bitmap; + + // Then repeatedly look for transparent pixels, filling them in until + // we're finished (capped at 50 iterations). + for (u32 iter = 0; iter < 50; iter++) { + + for (u32 ctry = 0; ctry < dim.Height; ctry++) + for (u32 ctrx = 0; ctrx < dim.Width; ctrx++) { + // Skip pixels we have already processed + if (bitmap.get(ctrx, ctry)) continue; - // Sample size and total weighted r, g, b values. + video::SColor c = src->getPixel(ctrx, ctry); + + // Sample size and total weighted r, g, b values u32 ss = 0, sr = 0, sg = 0, sb = 0; - // Walk each neighbor pixel (clipped to image bounds). + // Walk each neighbor pixel (clipped to image bounds) for (u32 sy = (ctry < 1) ? 0 : (ctry - 1); sy <= (ctry + 1) && sy < dim.Height; sy++) for (u32 sx = (ctrx < 1) ? 0 : (ctrx - 1); sx <= (ctrx + 1) && sx < dim.Width; sx++) { - - // Ignore transparent pixels. - irr::video::SColor d = src->getPixel(sx, sy); - if (d.getAlpha() <= threshold) + // Ignore pixels we haven't processed + if (!bitmap.get(sx, sy)) continue; - - // Add RGB values weighted by alpha. - u32 a = d.getAlpha(); + + // Add RGB values weighted by alpha IF the pixel is opaque, otherwise + // use full weight since we want to propagate colors. + video::SColor d = src->getPixel(sx, sy); + u32 a = d.getAlpha() <= threshold ? 255 : d.getAlpha(); ss += a; sr += a * d.getRed(); sg += a * d.getGreen(); sb += a * d.getBlue(); } - // If we found any neighbor RGB data, set pixel to average - // weighted by alpha. + // Set pixel to average weighted by alpha if (ss > 0) { c.setRed(sr / ss); c.setGreen(sg / ss); c.setBlue(sb / ss); src->setPixel(ctrx, ctry, c); + newmap.set(ctrx, ctry); } } + + if (newmap.all()) + return; + + // Apply changes to bitmap for next run. This is done so we don't introduce + // a bias in color propagation in the direction pixels are processed. + newmap.copy(bitmap); + + } } /* Scale a region of an image into another image, using nearest-neighbor with diff --git a/src/client/imagefilters.h b/src/client/imagefilters.h index 5676faf85..c9bdefbb6 100644 --- a/src/client/imagefilters.h +++ b/src/client/imagefilters.h @@ -23,13 +23,13 @@ with this program; if not, write to the Free Software Foundation, Inc., /* Fill in RGB values for transparent pixels, to correct for odd colors * appearing at borders when blending. This is because many PNG optimizers * like to discard RGB values of transparent pixels, but when blending then - * with non-transparent neighbors, their RGB values will shpw up nonetheless. + * with non-transparent neighbors, their RGB values will show up nonetheless. * * This function modifies the original image in-place. * * Parameter "threshold" is the alpha level below which pixels are considered - * transparent. Should be 127 for 3d where alpha is threshold, but 0 for - * 2d where alpha is blended. + * transparent. Should be 127 when the texture is used with ALPHA_CHANNEL_REF, + * 0 when alpha blending is used. */ void imageCleanTransparent(video::IImage *src, u32 threshold); diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index 544c0e344..d833db2f1 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -35,7 +35,7 @@ void KeyCache::populate() key[KeyType::LEFT] = getKeySetting("keymap_left"); key[KeyType::RIGHT] = getKeySetting("keymap_right"); key[KeyType::JUMP] = getKeySetting("keymap_jump"); - key[KeyType::SPECIAL1] = getKeySetting("keymap_special1"); + key[KeyType::AUX1] = getKeySetting("keymap_aux1"); key[KeyType::SNEAK] = getKeySetting("keymap_sneak"); key[KeyType::DIG] = getKeySetting("keymap_dig"); key[KeyType::PLACE] = getKeySetting("keymap_place"); @@ -61,6 +61,7 @@ void KeyCache::populate() key[KeyType::DEC_VOLUME] = getKeySetting("keymap_decrease_volume"); key[KeyType::CINEMATIC] = getKeySetting("keymap_cinematic"); key[KeyType::SCREENSHOT] = getKeySetting("keymap_screenshot"); + key[KeyType::TOGGLE_BLOCK_BOUNDS] = getKeySetting("keymap_toggle_block_bounds"); key[KeyType::TOGGLE_HUD] = getKeySetting("keymap_toggle_hud"); key[KeyType::TOGGLE_CHAT] = getKeySetting("keymap_toggle_chat"); key[KeyType::TOGGLE_FOG] = getKeySetting("keymap_toggle_fog"); @@ -123,17 +124,12 @@ bool MyEventReceiver::OnEvent(const SEvent &event) if (event.EventType == irr::EET_KEY_INPUT_EVENT) { const KeyPress &keyCode = event.KeyInput; if (keysListenedFor[keyCode]) { - // If the key is being held down then the OS may - // send a continuous stream of keydown events. - // In this case, we don't want to let this - // stream reach the application as it will cause - // certain actions to repeat constantly. if (event.KeyInput.PressedDown) { - if (!IsKeyDown(keyCode)) { - keyWasDown.set(keyCode); + if (!IsKeyDown(keyCode)) keyWasPressed.set(keyCode); - } + keyIsDown.set(keyCode); + keyWasDown.set(keyCode); } else { if (IsKeyDown(keyCode)) keyWasReleased.set(keyCode); @@ -234,7 +230,7 @@ void RandomInputHandler::step(float dtime) { static RandomInputHandlerSimData rnd_data[] = { { "keymap_jump", 0.0f, 40 }, - { "keymap_special1", 0.0f, 40 }, + { "keymap_aux1", 0.0f, 40 }, { "keymap_forward", 0.0f, 40 }, { "keymap_left", 0.0f, 40 }, { "keymap_dig", 0.0f, 30 }, diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h index d0a5d7c27..dd471587f 100644 --- a/src/client/inputhandler.h +++ b/src/client/inputhandler.h @@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #endif class InputHandler; +class TouchScreenGUI; /**************************************************************************** Fast key cache for main game loop @@ -200,7 +201,7 @@ public: // The current state of keys KeyList keyIsDown; - // Whether a key was down + // Like keyIsDown but only reset when that key is read KeyList keyWasDown; // Whether a key has just been pressed @@ -289,7 +290,7 @@ public: } virtual bool wasKeyPressed(GameKeyType k) { - return m_receiver->WasKeyPressed(keycache.key[k]) || joystick.wasKeyReleased(k); + return m_receiver->WasKeyPressed(keycache.key[k]) || joystick.wasKeyPressed(k); } virtual bool wasKeyReleased(GameKeyType k) { diff --git a/src/client/joystick_controller.cpp b/src/client/joystick_controller.cpp index 742115046..919db5315 100644 --- a/src/client/joystick_controller.cpp +++ b/src/client/joystick_controller.cpp @@ -37,7 +37,7 @@ bool JoystickAxisCmb::isTriggered(const irr::SEvent::SJoystickEvent &ev) const { s16 ax_val = ev.Axis[axis_to_compare]; - return (ax_val * direction < 0) && (thresh * direction > ax_val * direction); + return (ax_val * direction < -thresh); } // spares many characters @@ -48,7 +48,7 @@ JoystickLayout create_default_layout() { JoystickLayout jlo; - jlo.axes_dead_border = 1024; + jlo.axes_deadzone = g_settings->getU16("joystick_deadzone"); const JoystickAxisLayout axes[JA_COUNT] = { {0, 1}, // JA_SIDEWARD_MOVE @@ -79,7 +79,7 @@ JoystickLayout create_default_layout() // Accessible without any modifier pressed JLO_B_PB(KeyType::JUMP, bm | 1 << 0, 1 << 0); - JLO_B_PB(KeyType::SPECIAL1, bm | 1 << 1, 1 << 1); + JLO_B_PB(KeyType::AUX1, bm | 1 << 1, 1 << 1); // Accessible with start button not pressed, but four pressed // TODO find usage for button 0 @@ -93,14 +93,14 @@ JoystickLayout create_default_layout() // Now about the buttons simulated by the axes // Movement buttons, important for vessels - JLO_A_PB(KeyType::FORWARD, 1, 1, 1024); - JLO_A_PB(KeyType::BACKWARD, 1, -1, 1024); - JLO_A_PB(KeyType::LEFT, 0, 1, 1024); - JLO_A_PB(KeyType::RIGHT, 0, -1, 1024); + JLO_A_PB(KeyType::FORWARD, 1, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::BACKWARD, 1, -1, jlo.axes_deadzone); + JLO_A_PB(KeyType::LEFT, 0, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::RIGHT, 0, -1, jlo.axes_deadzone); // Scroll buttons - JLO_A_PB(KeyType::HOTBAR_PREV, 2, -1, 1024); - JLO_A_PB(KeyType::HOTBAR_NEXT, 5, -1, 1024); + JLO_A_PB(KeyType::HOTBAR_PREV, 2, -1, jlo.axes_deadzone); + JLO_A_PB(KeyType::HOTBAR_NEXT, 5, -1, jlo.axes_deadzone); return jlo; } @@ -109,7 +109,7 @@ JoystickLayout create_xbox_layout() { JoystickLayout jlo; - jlo.axes_dead_border = 7000; + jlo.axes_deadzone = 7000; const JoystickAxisLayout axes[JA_COUNT] = { {0, 1}, // JA_SIDEWARD_MOVE @@ -126,11 +126,11 @@ JoystickLayout create_xbox_layout() // 4 Buttons JLO_B_PB(KeyType::JUMP, 1 << 0, 1 << 0); // A/green JLO_B_PB(KeyType::ESC, 1 << 1, 1 << 1); // B/red - JLO_B_PB(KeyType::SPECIAL1, 1 << 2, 1 << 2); // X/blue + JLO_B_PB(KeyType::AUX1, 1 << 2, 1 << 2); // X/blue JLO_B_PB(KeyType::INVENTORY, 1 << 3, 1 << 3); // Y/yellow // Analog Sticks - JLO_B_PB(KeyType::SPECIAL1, 1 << 11, 1 << 11); // left + JLO_B_PB(KeyType::AUX1, 1 << 11, 1 << 11); // left JLO_B_PB(KeyType::SNEAK, 1 << 12, 1 << 12); // right // Triggers @@ -146,10 +146,10 @@ JoystickLayout create_xbox_layout() JLO_B_PB(KeyType::FREEMOVE, 1 << 16, 1 << 16); // down // Movement buttons, important for vessels - JLO_A_PB(KeyType::FORWARD, 1, 1, 1024); - JLO_A_PB(KeyType::BACKWARD, 1, -1, 1024); - JLO_A_PB(KeyType::LEFT, 0, 1, 1024); - JLO_A_PB(KeyType::RIGHT, 0, -1, 1024); + JLO_A_PB(KeyType::FORWARD, 1, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::BACKWARD, 1, -1, jlo.axes_deadzone); + JLO_A_PB(KeyType::LEFT, 0, 1, jlo.axes_deadzone); + JLO_A_PB(KeyType::RIGHT, 0, -1, jlo.axes_deadzone); return jlo; } @@ -219,16 +219,19 @@ bool JoystickController::handleEvent(const irr::SEvent::SJoystickEvent &ev) for (size_t i = 0; i < KeyType::INTERNAL_ENUM_COUNT; i++) { if (keys_pressed[i]) { - if (!m_past_pressed_keys[i] && + if (!m_past_keys_pressed[i] && m_past_pressed_time[i] < m_internal_time - doubling_dtime) { - m_past_pressed_keys[i] = true; + m_past_keys_pressed[i] = true; m_past_pressed_time[i] = m_internal_time; } - } else if (m_pressed_keys[i]) { - m_past_released_keys[i] = true; + } else if (m_keys_down[i]) { + m_keys_released[i] = true; } - m_pressed_keys[i] = keys_pressed[i]; + if (keys_pressed[i] && !(m_keys_down[i])) + m_keys_pressed[i] = true; + + m_keys_down[i] = keys_pressed[i]; } for (size_t i = 0; i < JA_COUNT; i++) { @@ -236,23 +239,22 @@ bool JoystickController::handleEvent(const irr::SEvent::SJoystickEvent &ev) m_axes_vals[i] = ax_la.invert * ev.Axis[ax_la.axis_id]; } - return true; } void JoystickController::clear() { - m_pressed_keys.reset(); - m_past_pressed_keys.reset(); - m_past_released_keys.reset(); + m_keys_pressed.reset(); + m_keys_down.reset(); + m_past_keys_pressed.reset(); + m_keys_released.reset(); memset(m_axes_vals, 0, sizeof(m_axes_vals)); } s16 JoystickController::getAxisWithoutDead(JoystickAxis axis) { s16 v = m_axes_vals[axis]; - if (((v > 0) && (v < m_layout.axes_dead_border)) || - ((v < 0) && (v > -m_layout.axes_dead_border))) + if (abs(v) < m_layout.axes_deadzone) return 0; return v; } diff --git a/src/client/joystick_controller.h b/src/client/joystick_controller.h index 7baacd81b..3f361e4ef 100644 --- a/src/client/joystick_controller.h +++ b/src/client/joystick_controller.h @@ -96,7 +96,7 @@ struct JoystickLayout { std::vector button_keys; std::vector axis_keys; JoystickAxisLayout axes[JA_COUNT]; - s16 axes_dead_border; + s16 axes_deadzone; }; class JoystickController { @@ -111,37 +111,32 @@ public: bool wasKeyDown(GameKeyType b) { - bool r = m_past_pressed_keys[b]; - m_past_pressed_keys[b] = false; + bool r = m_past_keys_pressed[b]; + m_past_keys_pressed[b] = false; return r; } - bool getWasKeyDown(GameKeyType b) - { - return m_past_pressed_keys[b]; - } - void clearWasKeyDown(GameKeyType b) - { - m_past_pressed_keys[b] = false; - } bool wasKeyReleased(GameKeyType b) { - bool r = m_past_released_keys[b]; - m_past_released_keys[b] = false; - return r; - } - bool getWasKeyReleased(GameKeyType b) - { - return m_past_pressed_keys[b]; + return m_keys_released[b]; } void clearWasKeyReleased(GameKeyType b) { - m_past_pressed_keys[b] = false; + m_keys_released[b] = false; + } + + bool wasKeyPressed(GameKeyType b) + { + return m_keys_pressed[b]; + } + void clearWasKeyPressed(GameKeyType b) + { + m_keys_pressed[b] = false; } bool isKeyDown(GameKeyType b) { - return m_pressed_keys[b]; + return m_keys_down[b]; } s16 getAxis(JoystickAxis axis) @@ -162,12 +157,13 @@ private: u8 m_joystick_id = 0; - std::bitset m_pressed_keys; + std::bitset m_keys_down; + std::bitset m_keys_pressed; f32 m_internal_time; f32 m_past_pressed_time[KeyType::INTERNAL_ENUM_COUNT]; - std::bitset m_past_pressed_keys; - std::bitset m_past_released_keys; + std::bitset m_past_keys_pressed; + std::bitset m_keys_released; }; diff --git a/src/client/keycode.cpp b/src/client/keycode.cpp index 6a0e9f569..fac077f0f 100644 --- a/src/client/keycode.cpp +++ b/src/client/keycode.cpp @@ -197,7 +197,6 @@ static const struct table_key table[] = { DEFINEKEY1(KEY_MODECHANGE, N_("IME Mode Change")) DEFINEKEY1(KEY_APPS, N_("Apps")) DEFINEKEY1(KEY_SLEEP, N_("Sleep")) -#if !(IRRLICHT_VERSION_MAJOR <= 1 && IRRLICHT_VERSION_MINOR <= 7 && IRRLICHT_VERSION_REVISION < 3) DEFINEKEY1(KEY_OEM_1, "OEM 1") // KEY_OEM_[0-9] and KEY_OEM_102 are assigned to multiple DEFINEKEY1(KEY_OEM_2, "OEM 2") // different chars (on different platforms too) and thus w/o char DEFINEKEY1(KEY_OEM_3, "OEM 3") @@ -208,7 +207,6 @@ static const struct table_key table[] = { DEFINEKEY1(KEY_OEM_8, "OEM 8") DEFINEKEY1(KEY_OEM_AX, "OEM AX") DEFINEKEY1(KEY_OEM_102, "OEM 102") -#endif DEFINEKEY1(KEY_ATTN, "Attn") DEFINEKEY1(KEY_CRSEL, "CrSel") DEFINEKEY1(KEY_EXSEL, "ExSel") @@ -316,7 +314,8 @@ KeyPress::KeyPress(const char *name) int chars_read = mbtowc(&Char, name, 1); FATAL_ERROR_IF(chars_read != 1, "Unexpected multibyte character"); m_name = ""; - warningstream << "KeyPress: Unknown key '" << name << "', falling back to first char."; + warningstream << "KeyPress: Unknown key '" << name + << "', falling back to first char." << std::endl; } KeyPress::KeyPress(const irr::SEvent::SKeyInput &in, bool prefer_character) diff --git a/src/client/keys.h b/src/client/keys.h index d4f3dd4c1..b81b571b2 100644 --- a/src/client/keys.h +++ b/src/client/keys.h @@ -32,7 +32,7 @@ public: LEFT, RIGHT, JUMP, - SPECIAL1, + AUX1, SNEAK, AUTOFORWARD, DIG, @@ -60,6 +60,7 @@ public: DEC_VOLUME, CINEMATIC, SCREENSHOT, + TOGGLE_BLOCK_BOUNDS, TOGGLE_HUD, TOGGLE_CHAT, TOGGLE_FOG, diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp index 662d893dc..24a12c35e 100644 --- a/src/client/localplayer.cpp +++ b/src/client/localplayer.cpp @@ -461,8 +461,6 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d, m_speed.Y += jumpspeed; } setSpeed(m_speed); - if (! m_freecam) - m_legit_speed = m_speed; m_can_jump = false; } @@ -711,6 +709,16 @@ v3s16 LocalPlayer::getLightPosition() const return floatToInt(m_position + v3f(0.0f, BS * 1.5f, 0.0f), BS); } +v3f LocalPlayer::getSendSpeed() +{ + v3f speed = getLegitSpeed(); + + if (m_client->modsLoaded()) + speed = m_client->getScript()->get_send_speed(speed); + + return speed; +} + v3f LocalPlayer::getEyeOffset() const { float eye_height = camera_barely_in_ceiling ? m_eye_height - 0.125f : m_eye_height; diff --git a/src/client/localplayer.h b/src/client/localplayer.h index 5a913f384..eaac216d3 100644 --- a/src/client/localplayer.h +++ b/src/client/localplayer.h @@ -141,7 +141,9 @@ public: v3f getLegitPosition() const { return m_legit_position; } - v3f getLegitSpeed() const { return m_legit_speed; } + v3f getLegitSpeed() const { return m_freecam ? m_legit_speed : m_speed; } + + v3f getSendSpeed(); inline void setLegitPosition(const v3f &position) { diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index 7b342fc33..8877e0549 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -407,7 +407,7 @@ static void getNodeVertexDirs(const v3s16 &dir, v3s16 *vertex_dirs) static void getNodeTextureCoords(v3f base, const v3f &scale, const v3s16 &dir, float *u, float *v) { - if (dir.X > 0 || dir.Y > 0 || dir.Z < 0) + if (dir.X > 0 || dir.Y != 0 || dir.Z < 0) base -= scale; if (dir == v3s16(0,0,1)) { *u = -base.X - 1; @@ -425,8 +425,8 @@ static void getNodeTextureCoords(v3f base, const v3f &scale, const v3s16 &dir, f *u = base.X + 1; *v = -base.Z - 2; } else if (dir == v3s16(0,-1,0)) { - *u = base.X; - *v = base.Z; + *u = base.X + 1; + *v = base.Z + 1; } } @@ -1140,8 +1140,8 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): */ { - MapblockMeshGenerator generator(data, &collector); - generator.generate(); + MapblockMeshGenerator(data, &collector, + data->m_client->getSceneManager()->getMeshManipulator()).generate(); } /* @@ -1243,21 +1243,7 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): buf->drop(); } - /* - Do some stuff to the mesh - */ - m_camera_offset = camera_offset; - translateMesh(m_mesh[layer], - intToFloat(data->m_blockpos * MAP_BLOCKSIZE - camera_offset, BS)); - if (m_mesh[layer]) { -#if 0 - // Usually 1-700 faces and 1-7 materials - std::cout << "Updated MapBlock has " << fastfaces_new.size() - << " faces and uses " << m_mesh[layer]->getMeshBufferCount() - << " materials (meshbuffers)" << std::endl; -#endif - // Use VBO for mesh (this just would set this for ever buffer) if (m_enable_vbo) m_mesh[layer]->setHardwareMappingHint(scene::EHM_STATIC); @@ -1276,13 +1262,13 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): MapBlockMesh::~MapBlockMesh() { for (scene::IMesh *m : m_mesh) { - if (m_enable_vbo && m) + if (m_enable_vbo) { for (u32 i = 0; i < m->getMeshBufferCount(); i++) { scene::IMeshBuffer *buf = m->getMeshBuffer(i); RenderingEngine::get_video_driver()->removeHardwareBuffer(buf); } + } m->drop(); - m = NULL; } delete m_minimap_mapblock; } @@ -1376,19 +1362,6 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack, return true; } -void MapBlockMesh::updateCameraOffset(v3s16 camera_offset) -{ - if (camera_offset != m_camera_offset) { - for (scene::IMesh *layer : m_mesh) { - translateMesh(layer, - intToFloat(m_camera_offset - camera_offset, BS)); - if (m_enable_vbo) - layer->setDirty(); - } - m_camera_offset = camera_offset; - } -} - video::SColor encode_light(u16 light, u8 emissive_light) { // Get components diff --git a/src/client/mapblock_mesh.h b/src/client/mapblock_mesh.h index ec1faea32..80075fce2 100644 --- a/src/client/mapblock_mesh.h +++ b/src/client/mapblock_mesh.h @@ -125,8 +125,6 @@ public: m_animation_force_timer--; } - void updateCameraOffset(v3s16 camera_offset); - std::set esp_nodes; private: @@ -162,9 +160,6 @@ private: // of sunlit vertices // Keys are pairs of (mesh index, buffer index in the mesh) std::map, std::map > m_daynight_diffs; - - // Camera offset info -> do we have to translate the mesh? - v3s16 m_camera_offset; }; /*! diff --git a/src/client/mesh.cpp b/src/client/mesh.cpp index 2400a374c..e43139218 100644 --- a/src/client/mesh.cpp +++ b/src/client/mesh.cpp @@ -27,14 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include -// In Irrlicht 1.8 the signature of ITexture::lock was changed from -// (bool, u32) to (E_TEXTURE_LOCK_MODE, u32). -#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 7 -#define MY_ETLM_READ_ONLY true -#else -#define MY_ETLM_READ_ONLY video::ETLM_READ_ONLY -#endif - inline static void applyShadeFactor(video::SColor& color, float factor) { color.setRed(core::clamp(core::round32(color.getRed()*factor), 0, 255)); diff --git a/src/client/mesh_generator_thread.h b/src/client/mesh_generator_thread.h index 8e13dec3e..f393e2368 100644 --- a/src/client/mesh_generator_thread.h +++ b/src/client/mesh_generator_thread.h @@ -40,7 +40,6 @@ struct QueuedMeshUpdate { v3s16 p = v3s16(-1337, -1337, -1337); bool ack_block_to_server = false; - bool urgent = false; int crack_level = -1; v3s16 crack_pos; MeshMakeData *data = nullptr; // This is generated in MeshUpdateQueue::pop() diff --git a/src/client/minimap.cpp b/src/client/minimap.cpp index f809821c3..3013e1406 100644 --- a/src/client/minimap.cpp +++ b/src/client/minimap.cpp @@ -304,7 +304,7 @@ void Minimap::setModeIndex(size_t index) data->mode = m_modes[index]; m_current_mode_index = index; } else { - data->mode = MinimapModeDef{MINIMAP_TYPE_OFF, N_("Minimap hidden"), 0, 0, ""}; + data->mode = MinimapModeDef{MINIMAP_TYPE_OFF, gettext("Minimap hidden"), 0, 0, ""}; m_current_mode_index = 0; } @@ -330,25 +330,26 @@ void Minimap::addMode(MinimapModeDef mode) if (mode.label == "") { switch (mode.type) { case MINIMAP_TYPE_OFF: - mode.label = N_("Minimap hidden"); + mode.label = gettext("Minimap hidden"); break; case MINIMAP_TYPE_SURFACE: - mode.label = N_("Minimap in surface mode, Zoom x%d"); + mode.label = gettext("Minimap in surface mode, Zoom x%d"); if (mode.map_size > 0) zoom = 256 / mode.map_size; break; case MINIMAP_TYPE_RADAR: - mode.label = N_("Minimap in radar mode, Zoom x%d"); + mode.label = gettext("Minimap in radar mode, Zoom x%d"); if (mode.map_size > 0) zoom = 512 / mode.map_size; break; case MINIMAP_TYPE_TEXTURE: - mode.label = N_("Minimap in texture mode"); + mode.label = gettext("Minimap in texture mode"); break; default: break; } } + // else: Custom labels need mod-provided client-side translation if (zoom >= 0) { char label_buf[1024]; @@ -490,7 +491,8 @@ video::ITexture *Minimap::getMinimapTexture() // Want to use texture source, to : 1 find texture, 2 cache it video::ITexture* texture = m_tsrc->getTexture(data->mode.texture); video::IImage* image = driver->createImageFromData( - texture->getColorFormat(), texture->getSize(), texture->lock(), true, false); + texture->getColorFormat(), texture->getSize(), + texture->lock(video::ETLM_READ_ONLY), true, false); texture->unlock(); auto dim = image->getDimension(); @@ -575,7 +577,7 @@ scene::SMeshBuffer *Minimap::getMinimapMeshBuffer() void Minimap::drawMinimap() { // Non hud managed minimap drawing (legacy minimap) - v2u32 screensize = RenderingEngine::get_instance()->getWindowSize(); + v2u32 screensize = RenderingEngine::getWindowSize(); const u32 size = 0.25 * screensize.Y; drawMinimap(core::rect( @@ -612,7 +614,7 @@ void Minimap::drawMinimap(core::rect rect) { material.TextureLayer[1].Texture = data->heightmap_texture; if (m_enable_shaders && data->mode.type == MINIMAP_TYPE_SURFACE) { - u16 sid = m_shdrsrc->getShader("minimap_shader", 1, 1); + u16 sid = m_shdrsrc->getShader("minimap_shader", TILE_MATERIAL_ALPHA); material.MaterialType = m_shdrsrc->getShaderInfo(sid).material; } else { material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; diff --git a/src/client/minimap.h b/src/client/minimap.h index 4a2c462f8..87c9668ee 100644 --- a/src/client/minimap.h +++ b/src/client/minimap.h @@ -138,7 +138,6 @@ public: size_t getMaxModeIndex() const { return m_modes.size() - 1; }; void nextMode(); - void setModesFromString(std::string modes_string); MinimapModeDef getModeDef() const { return data->mode; } video::ITexture *getMinimapTexture(); diff --git a/src/client/particles.cpp b/src/client/particles.cpp index bbe0493a8..de8365a1d 100644 --- a/src/client/particles.cpp +++ b/src/client/particles.cpp @@ -64,8 +64,8 @@ Particle::Particle( v2f texsize, video::SColor color ): - scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), - RenderingEngine::get_scene_manager()) + scene::ISceneNode(((Client *)gamedef)->getSceneManager()->getRootSceneNode(), + ((Client *)gamedef)->getSceneManager()) { // Misc m_gamedef = gamedef; diff --git a/src/client/render/anaglyph.cpp b/src/client/render/anaglyph.cpp index 9ba4464a2..153e77400 100644 --- a/src/client/render/anaglyph.cpp +++ b/src/client/render/anaglyph.cpp @@ -40,7 +40,7 @@ void RenderingCoreAnaglyph::setupMaterial(int color_mask) void RenderingCoreAnaglyph::useEye(bool right) { RenderingCoreStereo::useEye(right); - driver->clearZBuffer(); + driver->clearBuffers(video::ECBF_DEPTH); setupMaterial(right ? video::ECP_GREEN | video::ECP_BLUE : video::ECP_RED); } diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp index 648077510..37d2e6ee8 100644 --- a/src/client/render/core.cpp +++ b/src/client/render/core.cpp @@ -164,6 +164,7 @@ void RenderingCore::draw3D() driver->setTransform(video::ETS_WORLD, core::IdentityMatrix); if (!show_hud) return; + hud->drawBlockBounds(); hud->drawSelectionMesh(); if (draw_entity_esp || draw_entity_tracers || draw_player_esp || draw_player_tracers || draw_node_esp || draw_node_tracers) drawTracersAndESP(); diff --git a/src/client/render/factory.cpp b/src/client/render/factory.cpp index 30f9480fc..7fcec40dd 100644 --- a/src/client/render/factory.cpp +++ b/src/client/render/factory.cpp @@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #include "factory.h" -#include +#include "log.h" #include "plain.h" #include "anaglyph.h" #include "interlaced.h" @@ -45,5 +45,8 @@ RenderingCore *createRenderingCore(const std::string &stereo_mode, IrrlichtDevic return new RenderingCoreSideBySide(device, client, hud, true); if (stereo_mode == "crossview") return new RenderingCoreSideBySide(device, client, hud, false, true); - throw std::invalid_argument("Invalid rendering mode: " + stereo_mode); + + // fallback to plain renderer + errorstream << "Invalid rendering mode: " << stereo_mode << std::endl; + return new RenderingCorePlain(device, client, hud); } diff --git a/src/client/render/interlaced.cpp b/src/client/render/interlaced.cpp index 2aadadc17..3f79a8eb5 100644 --- a/src/client/render/interlaced.cpp +++ b/src/client/render/interlaced.cpp @@ -35,8 +35,12 @@ void RenderingCoreInterlaced::initMaterial() IShaderSource *s = client->getShaderSource(); mat.UseMipMaps = false; mat.ZBuffer = false; +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 + mat.ZWriteEnable = video::EZW_OFF; +#else mat.ZWriteEnable = false; - u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC, 0); +#endif + u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC); mat.MaterialType = s->getShaderInfo(shader).material; for (int k = 0; k < 3; ++k) { mat.TextureLayer[k].AnisotropicFilter = false; diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp index f5aca8f58..138012414 100644 --- a/src/client/renderingengine.cpp +++ b/src/client/renderingengine.cpp @@ -118,6 +118,8 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver) } SIrrlichtCreationParameters params = SIrrlichtCreationParameters(); + if (g_logger.getTraceEnabled()) + params.LoggingLevel = irr::ELL_DEBUG; params.DriverType = driverType; params.WindowSize = core::dimension2d(screen_w, screen_h); params.Bits = bits; @@ -153,11 +155,11 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver) RenderingEngine::~RenderingEngine() { core.reset(); - m_device->drop(); + m_device->closeDevice(); s_singleton = nullptr; } -v2u32 RenderingEngine::getWindowSize() const +v2u32 RenderingEngine::_getWindowSize() const { if (core) return core->getVirtualSize(); @@ -223,6 +225,20 @@ bool RenderingEngine::print_video_modes() return videomode_list != NULL; } +void RenderingEngine::removeMesh(const scene::IMesh* mesh) +{ + m_device->getSceneManager()->getMeshCache()->removeMesh(mesh); +} + +void RenderingEngine::cleanupMeshCache() +{ + auto mesh_cache = m_device->getSceneManager()->getMeshCache(); + while (mesh_cache->getMeshCount() != 0) { + if (scene::IAnimatedMesh *mesh = mesh_cache->getMeshByIndex(0)) + mesh_cache->removeMesh(mesh); + } +} + bool RenderingEngine::setupTopLevelWindow(const std::string &name) { // FIXME: It would make more sense for there to be a switch of some @@ -325,12 +341,18 @@ static bool getWindowHandle(irr::video::IVideoDriver *driver, HWND &hWnd) const video::SExposedVideoData exposedData = driver->getExposedVideoData(); switch (driver->getDriverType()) { +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 9 case video::EDT_DIRECT3D8: hWnd = reinterpret_cast(exposedData.D3D8.HWnd); break; +#endif case video::EDT_DIRECT3D9: hWnd = reinterpret_cast(exposedData.D3D9.HWnd); break; +#if ENABLE_GLES + case video::EDT_OGLES1: + case video::EDT_OGLES2: +#endif case video::EDT_OPENGL: hWnd = reinterpret_cast(exposedData.OpenGLWin32.HWnd); break; @@ -347,15 +369,14 @@ bool RenderingEngine::setWindowIcon() #if defined(XORG_USED) #if RUN_IN_PLACE return setXorgWindowIconFromPath( - porting::path_share + "/misc/" PROJECT_NAME "-xorg-icon-128.png"); + porting::path_share + "/misc/dragonfire-xorg-icon-128.png"); #else // We have semi-support for reading in-place data if we are // compiled with RUN_IN_PLACE. Don't break with this and // also try the path_share location. return setXorgWindowIconFromPath( - ICON_DIR "/hicolor/128x128/apps/" PROJECT_NAME ".png") || - setXorgWindowIconFromPath(porting::path_share + "/misc/" PROJECT_NAME - "-xorg-icon-128.png"); + ICON_DIR "/hicolor/128x128/apps/dragonfire.png") || + setXorgWindowIconFromPath(porting::path_share + "/misc/dragonfire-xorg-icon-128.png"); #endif #elif defined(_WIN32) HWND hWnd; // Window handle @@ -471,11 +492,11 @@ bool RenderingEngine::setXorgWindowIconFromPath(const std::string &icon_file) Text will be removed when the screen is drawn the next time. Additionally, a progressbar can be drawn when percent is set between 0 and 100. */ -void RenderingEngine::_draw_load_screen(const std::wstring &text, +void RenderingEngine::draw_load_screen(const std::wstring &text, gui::IGUIEnvironment *guienv, ITextureSource *tsrc, float dtime, int percent, bool clouds) { - v2u32 screensize = RenderingEngine::get_instance()->getWindowSize(); + v2u32 screensize = getWindowSize(); v2s32 textsize(g_fontengine->getTextWidth(text), g_fontengine->getLineHeight()); v2s32 center(screensize.X / 2, screensize.Y / 2); @@ -543,7 +564,7 @@ void RenderingEngine::_draw_load_screen(const std::wstring &text, /* Draws the menu scene including (optional) cloud background. */ -void RenderingEngine::_draw_menu_scene(gui::IGUIEnvironment *guienv, +void RenderingEngine::draw_menu_scene(gui::IGUIEnvironment *guienv, float dtime, bool clouds) { bool cloud_menu_background = clouds && g_settings->getBool("menu_clouds"); @@ -591,19 +612,19 @@ std::vector RenderingEngine::getSupportedVideoDrivers return drivers; } -void RenderingEngine::_initialize(Client *client, Hud *hud) +void RenderingEngine::initialize(Client *client, Hud *hud) { const std::string &draw_mode = g_settings->get("3d_mode"); core.reset(createRenderingCore(draw_mode, m_device, client, hud)); core->initialize(); } -void RenderingEngine::_finalize() +void RenderingEngine::finalize() { core.reset(); } -void RenderingEngine::_draw_scene(video::SColor skycolor, bool show_hud, +void RenderingEngine::draw_scene(video::SColor skycolor, bool show_hud, bool show_minimap, bool draw_wield_tool, bool draw_crosshair) { core->draw(skycolor, show_hud, show_minimap, draw_wield_tool, draw_crosshair); diff --git a/src/client/renderingengine.h b/src/client/renderingengine.h index 34cc60630..28ddc8652 100644 --- a/src/client/renderingengine.h +++ b/src/client/renderingengine.h @@ -41,7 +41,6 @@ public: RenderingEngine(IEventReceiver *eventReceiver); ~RenderingEngine(); - v2u32 getWindowSize() const; void setResizable(bool resize); video::IVideoDriver *getVideoDriver() { return driver; } @@ -56,13 +55,19 @@ public: bool setWindowIcon(); bool setXorgWindowIconFromPath(const std::string &icon_file); static bool print_video_modes(); + void cleanupMeshCache(); - static RenderingEngine *get_instance() { return s_singleton; } + void removeMesh(const scene::IMesh* mesh); - static io::IFileSystem *get_filesystem() + static v2u32 getWindowSize() { - sanity_check(s_singleton && s_singleton->m_device); - return s_singleton->m_device->getFileSystem(); + sanity_check(s_singleton); + return s_singleton->_getWindowSize(); + } + + io::IFileSystem *get_filesystem() + { + return m_device->getFileSystem(); } static video::IVideoDriver *get_video_driver() @@ -71,16 +76,9 @@ public: return s_singleton->m_device->getVideoDriver(); } - static scene::IMeshCache *get_mesh_cache() + scene::ISceneManager *get_scene_manager() { - sanity_check(s_singleton && s_singleton->m_device); - return s_singleton->m_device->getSceneManager()->getMeshCache(); - } - - static scene::ISceneManager *get_scene_manager() - { - sanity_check(s_singleton && s_singleton->m_device); - return s_singleton->m_device->getSceneManager(); + return m_device->getSceneManager(); } static irr::IrrlichtDevice *get_raw_device() @@ -89,70 +87,37 @@ public: return s_singleton->m_device; } - static u32 get_timer_time() + u32 get_timer_time() { - sanity_check(s_singleton && s_singleton->m_device && - s_singleton->m_device->getTimer()); - return s_singleton->m_device->getTimer()->getTime(); + return m_device->getTimer()->getTime(); } - static gui::IGUIEnvironment *get_gui_env() + gui::IGUIEnvironment *get_gui_env() { - sanity_check(s_singleton && s_singleton->m_device); - return s_singleton->m_device->getGUIEnvironment(); + return m_device->getGUIEnvironment(); } - inline static void draw_load_screen(const std::wstring &text, + void draw_load_screen(const std::wstring &text, gui::IGUIEnvironment *guienv, ITextureSource *tsrc, - float dtime = 0, int percent = 0, bool clouds = true) - { - s_singleton->_draw_load_screen( - text, guienv, tsrc, dtime, percent, clouds); - } + float dtime = 0, int percent = 0, bool clouds = true); - inline static void draw_menu_scene( - gui::IGUIEnvironment *guienv, float dtime, bool clouds) - { - s_singleton->_draw_menu_scene(guienv, dtime, clouds); - } + void draw_menu_scene(gui::IGUIEnvironment *guienv, float dtime, bool clouds); + void draw_scene(video::SColor skycolor, bool show_hud, + bool show_minimap, bool draw_wield_tool, bool draw_crosshair); - inline static void draw_scene(video::SColor skycolor, bool show_hud, - bool show_minimap, bool draw_wield_tool, bool draw_crosshair) - { - s_singleton->_draw_scene(skycolor, show_hud, show_minimap, - draw_wield_tool, draw_crosshair); - } + void initialize(Client *client, Hud *hud); + void finalize(); - inline static void initialize(Client *client, Hud *hud) + bool run() { - s_singleton->_initialize(client, hud); - } - - inline static void finalize() { s_singleton->_finalize(); } - - static bool run() - { - sanity_check(s_singleton && s_singleton->m_device); - return s_singleton->m_device->run(); + return m_device->run(); } static std::vector> getSupportedVideoModes(); static std::vector getSupportedVideoDrivers(); private: - void _draw_load_screen(const std::wstring &text, gui::IGUIEnvironment *guienv, - ITextureSource *tsrc, float dtime = 0, int percent = 0, - bool clouds = true); - - void _draw_menu_scene(gui::IGUIEnvironment *guienv, float dtime = 0, - bool clouds = true); - - void _draw_scene(video::SColor skycolor, bool show_hud, bool show_minimap, - bool draw_wield_tool, bool draw_crosshair); - - void _initialize(Client *client, Hud *hud); - - void _finalize(); + v2u32 _getWindowSize() const; std::unique_ptr core; irr::IrrlichtDevice *m_device = nullptr; diff --git a/src/client/shader.cpp b/src/client/shader.cpp index 1cec20d2c..58946b90f 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "shader.h" #include "irrlichttypes_extrabloated.h" +#include "irr_ptr.h" #include "debug.h" #include "filesys.h" #include "util/container.h" @@ -189,19 +190,14 @@ private: class ShaderCallback : public video::IShaderConstantSetCallBack { - std::vector m_setters; + std::vector> m_setters; public: - ShaderCallback(const std::vector &factories) + template + ShaderCallback(const Factories &factories) { - for (IShaderConstantSetterFactory *factory : factories) - m_setters.push_back(factory->create()); - } - - ~ShaderCallback() - { - for (IShaderConstantSetter *setter : m_setters) - delete setter; + for (auto &&factory : factories) + m_setters.push_back(std::unique_ptr(factory->create())); } virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData) override @@ -209,15 +205,13 @@ public: video::IVideoDriver *driver = services->getVideoDriver(); sanity_check(driver != NULL); - bool is_highlevel = userData; - - for (IShaderConstantSetter *setter : m_setters) - setter->onSetConstants(services, is_highlevel); + for (auto &&setter : m_setters) + setter->onSetConstants(services); } virtual void OnSetMaterial(const video::SMaterial& material) override { - for (IShaderConstantSetter *setter : m_setters) + for (auto &&setter : m_setters) setter->onSetMaterial(material); } }; @@ -252,47 +246,39 @@ public: {} ~MainShaderConstantSetter() = default; - virtual void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) + virtual void onSetConstants(video::IMaterialRendererServices *services) override { video::IVideoDriver *driver = services->getVideoDriver(); sanity_check(driver); // Set world matrix core::matrix4 world = driver->getTransform(video::ETS_WORLD); - if (is_highlevel) - m_world.set(*reinterpret_cast(world.pointer()), services); - else - services->setVertexShaderConstant(world.pointer(), 4, 4); + m_world.set(*reinterpret_cast(world.pointer()), services); // Set clip matrix core::matrix4 worldView; worldView = driver->getTransform(video::ETS_VIEW); worldView *= world; + core::matrix4 worldViewProj; worldViewProj = driver->getTransform(video::ETS_PROJECTION); worldViewProj *= worldView; - if (is_highlevel) - m_world_view_proj.set(*reinterpret_cast(worldViewProj.pointer()), services); - else - services->setVertexShaderConstant(worldViewProj.pointer(), 0, 4); + m_world_view_proj.set(*reinterpret_cast(worldViewProj.pointer()), services); #if ENABLE_GLES - if (is_highlevel) { - core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0); - m_world_view.set(*reinterpret_cast(worldView.pointer()), services); - m_texture.set(*reinterpret_cast(texture.pointer()), services); + core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0); + m_world_view.set(*reinterpret_cast(worldView.pointer()), services); + m_texture.set(*reinterpret_cast(texture.pointer()), services); - core::matrix4 normal; - worldView.getTransposed(normal); - sanity_check(normal.makeInverse()); - float m[9] = { - normal[0], normal[1], normal[2], - normal[4], normal[5], normal[6], - normal[8], normal[9], normal[10], - }; - m_normal.set(m, services); - } + core::matrix4 normal; + worldView.getTransposed(normal); + sanity_check(normal.makeInverse()); + float m[9] = { + normal[0], normal[1], normal[2], + normal[4], normal[5], normal[6], + normal[8], normal[9], normal[10], + }; + m_normal.set(m, services); #endif } }; @@ -314,7 +300,6 @@ class ShaderSource : public IWritableShaderSource { public: ShaderSource(); - ~ShaderSource(); /* - If shader material specified by name is found from cache, @@ -324,7 +309,7 @@ public: The id 0 points to a null shader. Its material is EMT_SOLID. */ u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype); + MaterialType material_type, NodeDrawType drawtype) override; /* If shader specified by the name pointed by the id doesn't @@ -336,26 +321,26 @@ public: */ u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype); + MaterialType material_type, NodeDrawType drawtype) override; - ShaderInfo getShaderInfo(u32 id); + ShaderInfo getShaderInfo(u32 id) override; // Processes queued shader requests from other threads. // Shall be called from the main thread. - void processQueue(); + void processQueue() override; // Insert a shader program into the cache without touching the // filesystem. Shall be called from the main thread. void insertSourceShader(const std::string &name_of_shader, - const std::string &filename, const std::string &program); + const std::string &filename, const std::string &program) override; // Rebuild shaders from the current set of source shaders // Shall be called from the main thread. - void rebuildShaders(); + void rebuildShaders() override; - void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) + void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) override { - m_setter_factories.push_back(setter); + m_setter_factories.push_back(std::unique_ptr(setter)); } private: @@ -377,10 +362,11 @@ private: RequestQueue m_get_shader_queue; // Global constant setter factories - std::vector m_setter_factories; + std::vector> m_setter_factories; - // Shader callbacks - std::vector m_callbacks; + // Generate shader given the shader name. + ShaderInfo generateShader(const std::string &name, + MaterialType material_type, NodeDrawType drawtype); }; IWritableShaderSource *createShaderSource() @@ -388,22 +374,6 @@ IWritableShaderSource *createShaderSource() return new ShaderSource(); } -/* - Generate shader given the shader name. -*/ -ShaderInfo generate_shader(const std::string &name, - u8 material_type, u8 drawtype, std::vector &callbacks, - const std::vector &setter_factories, - SourceShaderCache *sourcecache); - -/* - Load shader programs -*/ -void load_shaders(const std::string &name, SourceShaderCache *sourcecache, - video::E_DRIVER_TYPE drivertype, bool enable_shaders, - std::string &vertex_program, std::string &pixel_program, - std::string &geometry_program, bool &is_highlevel); - ShaderSource::ShaderSource() { m_main_thread = std::this_thread::get_id(); @@ -415,18 +385,8 @@ ShaderSource::ShaderSource() addShaderConstantSetterFactory(new MainShaderConstantSetterFactory()); } -ShaderSource::~ShaderSource() -{ - for (ShaderCallback *callback : m_callbacks) { - delete callback; - } - for (IShaderConstantSetterFactory *setter_factorie : m_setter_factories) { - delete setter_factorie; - } -} - u32 ShaderSource::getShader(const std::string &name, - const u8 material_type, const u8 drawtype) + MaterialType material_type, NodeDrawType drawtype) { /* Get shader @@ -468,7 +428,7 @@ u32 ShaderSource::getShader(const std::string &name, This method generates all the shaders */ u32 ShaderSource::getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype) + MaterialType material_type, NodeDrawType drawtype) { //infostream<<"getShaderIdDirect(): name=\""<name.empty()) { - *info = generate_shader(info->name, info->material_type, - info->drawtype, m_callbacks, - m_setter_factories, &m_sourcecache); + *info = generateShader(info->name, info->material_type, info->drawtype); } } } -ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtype, - std::vector &callbacks, - const std::vector &setter_factories, - SourceShaderCache *sourcecache) +ShaderInfo ShaderSource::generateShader(const std::string &name, + MaterialType material_type, NodeDrawType drawtype) { ShaderInfo shaderinfo; shaderinfo.name = name; @@ -604,65 +559,30 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp return shaderinfo; video::IVideoDriver *driver = RenderingEngine::get_video_driver(); - + if (!driver->queryFeature(video::EVDF_ARB_GLSL)) { + errorstream << "Shaders are enabled but GLSL is not supported by the driver\n"; + return shaderinfo; + } video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices(); - if(!gpu){ - errorstream<<"generate_shader(): " - "failed to generate \""<getDriverType(), - enable_shaders, vertex_program, pixel_program, - geometry_program, is_highlevel); - // Check hardware/driver support - if (!vertex_program.empty() && - !driver->queryFeature(video::EVDF_VERTEX_SHADER_1_1) && - !driver->queryFeature(video::EVDF_ARB_VERTEX_PROGRAM_1)){ - infostream<<"generate_shader(): vertex shaders disabled " - "because of missing driver/hardware support." - <queryFeature(video::EVDF_PIXEL_SHADER_1_1) && - !driver->queryFeature(video::EVDF_ARB_FRAGMENT_PROGRAM_1)){ - infostream<<"generate_shader(): pixel shaders disabled " - "because of missing driver/hardware support." - <queryFeature(video::EVDF_GEOMETRY_SHADER)){ - infostream<<"generate_shader(): geometry shaders disabled " - "because of missing driver/hardware support." - <getDriverType() == video::EDT_OGLES2; #endif - std::string shaders_header, vertex_header, pixel_header; // geometry shaders aren’t supported in GLES<3 + std::stringstream shaders_header; + shaders_header + << std::noboolalpha + << std::showpoint // for GLSL ES + ; + std::string vertex_header, fragment_header, geometry_header; if (use_gles) { - shaders_header = - "#version 100\n" - ; + shaders_header << R"( + #version 100 + )"; vertex_header = R"( + precision mediump float; + uniform highp mat4 mWorldView; uniform highp mat4 mWorldViewProj; uniform mediump mat4 mTexture; @@ -674,17 +594,17 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp attribute mediump vec3 inVertexNormal; attribute mediump vec4 inVertexTangent; attribute mediump vec4 inVertexBinormal; - )"; - pixel_header = R"( + )"; + fragment_header = R"( precision mediump float; - )"; + )"; } else { - shaders_header = R"( + shaders_header << R"( #version 120 #define lowp #define mediump #define highp - )"; + )"; vertex_header = R"( #define mWorldView gl_ModelViewMatrix #define mWorldViewProj gl_ModelViewProjectionMatrix @@ -697,7 +617,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp #define inVertexNormal gl_Normal #define inVertexTangent gl_MultiTexCoord1 #define inVertexBinormal gl_MultiTexCoord2 - )"; + )"; } bool use_discard = use_gles; @@ -708,224 +628,97 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp use_discard = true; #endif if (use_discard && shaderinfo.base_material != video::EMT_SOLID) - shaders_header += "#define USE_DISCARD\n"; + shaders_header << "#define USE_DISCARD 1\n"; - static const char* drawTypes[] = { - "NDT_NORMAL", - "NDT_AIRLIKE", - "NDT_LIQUID", - "NDT_FLOWINGLIQUID", - "NDT_GLASSLIKE", - "NDT_ALLFACES", - "NDT_ALLFACES_OPTIONAL", - "NDT_TORCHLIKE", - "NDT_SIGNLIKE", - "NDT_PLANTLIKE", - "NDT_FENCELIKE", - "NDT_RAILLIKE", - "NDT_NODEBOX", - "NDT_GLASSLIKE_FRAMED", - "NDT_FIRELIKE", - "NDT_GLASSLIKE_FRAMED_OPTIONAL", - "NDT_PLANTLIKE_ROOTED", - }; +#define PROVIDE(constant) shaders_header << "#define " #constant " " << (int)constant << "\n" - for (int i = 0; i < 14; i++){ - shaders_header += "#define "; - shaders_header += drawTypes[i]; - shaders_header += " "; - shaders_header += itos(i); - shaders_header += "\n"; + PROVIDE(NDT_NORMAL); + PROVIDE(NDT_AIRLIKE); + PROVIDE(NDT_LIQUID); + PROVIDE(NDT_FLOWINGLIQUID); + PROVIDE(NDT_GLASSLIKE); + PROVIDE(NDT_ALLFACES); + PROVIDE(NDT_ALLFACES_OPTIONAL); + PROVIDE(NDT_TORCHLIKE); + PROVIDE(NDT_SIGNLIKE); + PROVIDE(NDT_PLANTLIKE); + PROVIDE(NDT_FENCELIKE); + PROVIDE(NDT_RAILLIKE); + PROVIDE(NDT_NODEBOX); + PROVIDE(NDT_GLASSLIKE_FRAMED); + PROVIDE(NDT_FIRELIKE); + PROVIDE(NDT_GLASSLIKE_FRAMED_OPTIONAL); + PROVIDE(NDT_PLANTLIKE_ROOTED); + + PROVIDE(TILE_MATERIAL_BASIC); + PROVIDE(TILE_MATERIAL_ALPHA); + PROVIDE(TILE_MATERIAL_LIQUID_TRANSPARENT); + PROVIDE(TILE_MATERIAL_LIQUID_OPAQUE); + PROVIDE(TILE_MATERIAL_WAVING_LEAVES); + PROVIDE(TILE_MATERIAL_WAVING_PLANTS); + PROVIDE(TILE_MATERIAL_OPAQUE); + PROVIDE(TILE_MATERIAL_WAVING_LIQUID_BASIC); + PROVIDE(TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT); + PROVIDE(TILE_MATERIAL_WAVING_LIQUID_OPAQUE); + PROVIDE(TILE_MATERIAL_PLAIN); + PROVIDE(TILE_MATERIAL_PLAIN_ALPHA); + +#undef PROVIDE + + shaders_header << "#define MATERIAL_TYPE " << (int)material_type << "\n"; + shaders_header << "#define DRAW_TYPE " << (int)drawtype << "\n"; + + bool enable_waving_water = g_settings->getBool("enable_waving_water"); + shaders_header << "#define ENABLE_WAVING_WATER " << enable_waving_water << "\n"; + if (enable_waving_water) { + shaders_header << "#define WATER_WAVE_HEIGHT " << g_settings->getFloat("water_wave_height") << "\n"; + shaders_header << "#define WATER_WAVE_LENGTH " << g_settings->getFloat("water_wave_length") << "\n"; + shaders_header << "#define WATER_WAVE_SPEED " << g_settings->getFloat("water_wave_speed") << "\n"; } - static const char* materialTypes[] = { - "TILE_MATERIAL_BASIC", - "TILE_MATERIAL_ALPHA", - "TILE_MATERIAL_LIQUID_TRANSPARENT", - "TILE_MATERIAL_LIQUID_OPAQUE", - "TILE_MATERIAL_WAVING_LEAVES", - "TILE_MATERIAL_WAVING_PLANTS", - "TILE_MATERIAL_OPAQUE", - "TILE_MATERIAL_WAVING_LIQUID_BASIC", - "TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT", - "TILE_MATERIAL_WAVING_LIQUID_OPAQUE", - "TILE_MATERIAL_PLAIN", - "TILE_MATERIAL_PLAIN_ALPHA", - }; + shaders_header << "#define ENABLE_WAVING_LEAVES " << g_settings->getBool("enable_waving_leaves") << "\n"; + shaders_header << "#define ENABLE_WAVING_PLANTS " << g_settings->getBool("enable_waving_plants") << "\n"; + shaders_header << "#define ENABLE_TONE_MAPPING " << g_settings->getBool("tone_mapping") << "\n"; - for (int i = 0; i < 12; i++){ - shaders_header += "#define "; - shaders_header += materialTypes[i]; - shaders_header += " "; - shaders_header += itos(i); - shaders_header += "\n"; + shaders_header << "#define FOG_START " << core::clamp(g_settings->getFloat("fog_start"), 0.0f, 0.99f) << "\n"; + + std::string common_header = shaders_header.str(); + + std::string vertex_shader = m_sourcecache.getOrLoad(name, "opengl_vertex.glsl"); + std::string fragment_shader = m_sourcecache.getOrLoad(name, "opengl_fragment.glsl"); + std::string geometry_shader = m_sourcecache.getOrLoad(name, "opengl_geometry.glsl"); + + vertex_shader = common_header + vertex_header + vertex_shader; + fragment_shader = common_header + fragment_header + fragment_shader; + const char *geometry_shader_ptr = nullptr; // optional + if (!geometry_shader.empty()) { + geometry_shader = common_header + geometry_header + geometry_shader; + geometry_shader_ptr = geometry_shader.c_str(); } - shaders_header += "#define MATERIAL_TYPE "; - shaders_header += itos(material_type); - shaders_header += "\n"; - shaders_header += "#define DRAW_TYPE "; - shaders_header += itos(drawtype); - shaders_header += "\n"; - - if (g_settings->getBool("enable_waving_water")){ - shaders_header += "#define ENABLE_WAVING_WATER 1\n"; - shaders_header += "#define WATER_WAVE_HEIGHT "; - shaders_header += std::to_string(g_settings->getFloat("water_wave_height")); - shaders_header += "\n"; - shaders_header += "#define WATER_WAVE_LENGTH "; - shaders_header += std::to_string(g_settings->getFloat("water_wave_length")); - shaders_header += "\n"; - shaders_header += "#define WATER_WAVE_SPEED "; - shaders_header += std::to_string(g_settings->getFloat("water_wave_speed")); - shaders_header += "\n"; - } else{ - shaders_header += "#define ENABLE_WAVING_WATER 0\n"; + irr_ptr cb{new ShaderCallback(m_setter_factories)}; + infostream<<"Compiling high level shaders for "<addHighLevelShaderMaterial( + vertex_shader.c_str(), nullptr, video::EVST_VS_1_1, + fragment_shader.c_str(), nullptr, video::EPST_PS_1_1, + geometry_shader_ptr, nullptr, video::EGST_GS_4_0, scene::EPT_TRIANGLES, scene::EPT_TRIANGLES, 0, + cb.get(), shaderinfo.base_material, 1); + if (shadermat == -1) { + errorstream<<"generate_shader(): " + "failed to generate \""<getBool("enable_waving_leaves")) - shaders_header += "1\n"; - else - shaders_header += "0\n"; - - shaders_header += "#define ENABLE_WAVING_PLANTS "; - if (g_settings->getBool("enable_waving_plants")) - shaders_header += "1\n"; - else - shaders_header += "0\n"; - - if (g_settings->getBool("tone_mapping")) - shaders_header += "#define ENABLE_TONE_MAPPING\n"; - - shaders_header += "#define FOG_START "; - shaders_header += std::to_string(rangelim(g_settings->getFloat("fog_start"), 0.0f, 0.99f)); - shaders_header += "\n"; - - // Call addHighLevelShaderMaterial() or addShaderMaterial() - const c8* vertex_program_ptr = 0; - const c8* pixel_program_ptr = 0; - const c8* geometry_program_ptr = 0; - if (!vertex_program.empty()) { - vertex_program = shaders_header + vertex_header + vertex_program; - vertex_program_ptr = vertex_program.c_str(); - } - if (!pixel_program.empty()) { - pixel_program = shaders_header + pixel_header + pixel_program; - pixel_program_ptr = pixel_program.c_str(); - } - if (!geometry_program.empty()) { - geometry_program = shaders_header + geometry_program; - geometry_program_ptr = geometry_program.c_str(); - } - ShaderCallback *cb = new ShaderCallback(setter_factories); - s32 shadermat = -1; - if(is_highlevel){ - infostream<<"Compiling high level shaders for "<addHighLevelShaderMaterial( - vertex_program_ptr, // Vertex shader program - "vertexMain", // Vertex shader entry point - video::EVST_VS_1_1, // Vertex shader version - pixel_program_ptr, // Pixel shader program - "pixelMain", // Pixel shader entry point - video::EPST_PS_1_2, // Pixel shader version - geometry_program_ptr, // Geometry shader program - "geometryMain", // Geometry shader entry point - video::EGST_GS_4_0, // Geometry shader version - scene::EPT_TRIANGLES, // Geometry shader input - scene::EPT_TRIANGLE_STRIP, // Geometry shader output - 0, // Support maximum number of vertices - cb, // Set-constant callback - shaderinfo.base_material, // Base material - 1 // Userdata passed to callback - ); - if(shadermat == -1){ - errorstream<<"generate_shader(): " - "failed to generate \""<addShaderMaterial( - vertex_program_ptr, // Vertex shader program - pixel_program_ptr, // Pixel shader program - cb, // Set-constant callback - shaderinfo.base_material, // Base material - 0 // Userdata passed to callback - ); - - if(shadermat == -1){ - errorstream<<"generate_shader(): " - "failed to generate \""<getMaterialRenderer(shadermat)->grab(); - // Apply the newly created material type shaderinfo.material = (video::E_MATERIAL_TYPE) shadermat; return shaderinfo; } -void load_shaders(const std::string &name, SourceShaderCache *sourcecache, - video::E_DRIVER_TYPE drivertype, bool enable_shaders, - std::string &vertex_program, std::string &pixel_program, - std::string &geometry_program, bool &is_highlevel) -{ - vertex_program = ""; - pixel_program = ""; - geometry_program = ""; - is_highlevel = false; - - if (!enable_shaders) - return; - - // Look for high level shaders - switch (drivertype) { - case video::EDT_DIRECT3D9: - // Direct3D 9: HLSL - // (All shaders in one file) - vertex_program = sourcecache->getOrLoad(name, "d3d9.hlsl"); - pixel_program = vertex_program; - geometry_program = vertex_program; - break; - - case video::EDT_OPENGL: -#if ENABLE_GLES - case video::EDT_OGLES2: -#endif - // OpenGL: GLSL - vertex_program = sourcecache->getOrLoad(name, "opengl_vertex.glsl"); - pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl"); - geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl"); - break; - - default: - // e.g. OpenGL ES 1 (with no shader support) - break; - } - if (!vertex_program.empty() || !pixel_program.empty() || !geometry_program.empty()){ - is_highlevel = true; - return; - } -} - void dumpShaderProgram(std::ostream &output_stream, const std::string &program_type, const std::string &program) { diff --git a/src/client/shader.h b/src/client/shader.h index 109d39336..49a563115 100644 --- a/src/client/shader.h +++ b/src/client/shader.h @@ -20,9 +20,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -#include #include "irrlichttypes_bloated.h" +#include #include +#include "tile.h" +#include "nodedef.h" class IGameDef; @@ -46,8 +48,8 @@ struct ShaderInfo { std::string name = ""; video::E_MATERIAL_TYPE base_material = video::EMT_SOLID; video::E_MATERIAL_TYPE material = video::EMT_SOLID; - u8 drawtype = 0; - u8 material_type = 0; + NodeDrawType drawtype = NDT_NORMAL; + MaterialType material_type = TILE_MATERIAL_BASIC; ShaderInfo() = default; virtual ~ShaderInfo() = default; @@ -65,8 +67,7 @@ namespace irr { namespace video { class IShaderConstantSetter { public: virtual ~IShaderConstantSetter() = default; - virtual void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) = 0; + virtual void onSetConstants(video::IMaterialRendererServices *services) = 0; virtual void onSetMaterial(const video::SMaterial& material) { } }; @@ -95,9 +96,10 @@ public: if (has_been_set && std::equal(m_sent, m_sent + count, value)) return; if (is_pixel) - services->setPixelShaderConstant(m_name, value, count); + services->setPixelShaderConstant(services->getPixelShaderConstantID(m_name), value, count); else - services->setVertexShaderConstant(m_name, value, count); + services->setVertexShaderConstant(services->getVertexShaderConstantID(m_name), value, count); + std::copy(value, value + count, m_sent); has_been_set = true; } @@ -128,10 +130,10 @@ public: virtual ~IShaderSource() = default; virtual u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} + MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;} virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();} virtual u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} + MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;} }; class IWritableShaderSource : public IShaderSource { @@ -139,16 +141,12 @@ public: IWritableShaderSource() = default; virtual ~IWritableShaderSource() = default; - virtual u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} - virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();} - virtual u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} - virtual void processQueue()=0; virtual void insertSourceShader(const std::string &name_of_shader, const std::string &filename, const std::string &program)=0; virtual void rebuildShaders()=0; + + /// @note Takes ownership of @p setter. virtual void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) = 0; }; diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 9a2614eda..47296a7a5 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -39,12 +39,13 @@ static video::SMaterial baseMaterial() { video::SMaterial mat; mat.Lighting = false; -#if ENABLE_GLES +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 mat.ZBuffer = video::ECFN_DISABLED; + mat.ZWriteEnable = video::EZW_OFF; #else + mat.ZWriteEnable = false; mat.ZBuffer = video::ECFN_NEVER; #endif - mat.ZWriteEnable = false; mat.AntiAliasing = 0; mat.TextureLayer[0].TextureWrapU = video::ETC_CLAMP_TO_EDGE; mat.TextureLayer[0].TextureWrapV = video::ETC_CLAMP_TO_EDGE; @@ -52,10 +53,12 @@ static video::SMaterial baseMaterial() return mat; }; -Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) : - scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), - RenderingEngine::get_scene_manager(), id) +Sky::Sky(s32 id, RenderingEngine *rendering_engine, ITextureSource *tsrc, IShaderSource *ssrc) : + scene::ISceneNode(rendering_engine->get_scene_manager()->getRootSceneNode(), + rendering_engine->get_scene_manager(), id) { + m_seed = (u64)myrand() << 32 | myrand(); + setAutomaticCulling(scene::EAC_OFF); m_box.MaxEdge.set(0, 0, 0); m_box.MinEdge.set(0, 0, 0); @@ -65,7 +68,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) : // Create materials m_materials[0] = baseMaterial(); - m_materials[0].MaterialType = ssrc->getShaderInfo(ssrc->getShader("stars_shader", TILE_MATERIAL_ALPHA, 0)).material; + m_materials[0].MaterialType = ssrc->getShaderInfo(ssrc->getShader("stars_shader", TILE_MATERIAL_ALPHA)).material; m_materials[0].Lighting = true; m_materials[0].ColorMaterial = video::ECM_NONE; @@ -81,13 +84,13 @@ Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) : // Ensures that sun and moon textures and tonemaps are correct. setSkyDefaults(); m_sun_texture = tsrc->isKnownSourceImage(m_sun_params.texture) ? - tsrc->getTextureForMesh(m_sun_params.texture) : NULL; + tsrc->getTextureForMesh(m_sun_params.texture) : nullptr; m_moon_texture = tsrc->isKnownSourceImage(m_moon_params.texture) ? - tsrc->getTextureForMesh(m_moon_params.texture) : NULL; + tsrc->getTextureForMesh(m_moon_params.texture) : nullptr; m_sun_tonemap = tsrc->isKnownSourceImage(m_sun_params.tonemap) ? - tsrc->getTexture(m_sun_params.tonemap) : NULL; + tsrc->getTexture(m_sun_params.tonemap) : nullptr; m_moon_tonemap = tsrc->isKnownSourceImage(m_moon_params.tonemap) ? - tsrc->getTexture(m_moon_params.tonemap) : NULL; + tsrc->getTexture(m_moon_params.tonemap) : nullptr; if (m_sun_texture) { m_materials[3] = baseMaterial(); @@ -743,14 +746,14 @@ void Sky::place_sky_body( } } -void Sky::setSunTexture(std::string sun_texture, - std::string sun_tonemap, ITextureSource *tsrc) +void Sky::setSunTexture(const std::string &sun_texture, + const std::string &sun_tonemap, ITextureSource *tsrc) { // Ignore matching textures (with modifiers) entirely, // but lets at least update the tonemap before hand. m_sun_params.tonemap = sun_tonemap; m_sun_tonemap = tsrc->isKnownSourceImage(m_sun_params.tonemap) ? - tsrc->getTexture(m_sun_params.tonemap) : NULL; + tsrc->getTexture(m_sun_params.tonemap) : nullptr; m_materials[3].Lighting = !!m_sun_tonemap; if (m_sun_params.texture == sun_texture) @@ -779,7 +782,7 @@ void Sky::setSunTexture(std::string sun_texture, } } -void Sky::setSunriseTexture(std::string sunglow_texture, +void Sky::setSunriseTexture(const std::string &sunglow_texture, ITextureSource* tsrc) { // Ignore matching textures (with modifiers) entirely. @@ -791,14 +794,14 @@ void Sky::setSunriseTexture(std::string sunglow_texture, ); } -void Sky::setMoonTexture(std::string moon_texture, - std::string moon_tonemap, ITextureSource *tsrc) +void Sky::setMoonTexture(const std::string &moon_texture, + const std::string &moon_tonemap, ITextureSource *tsrc) { // Ignore matching textures (with modifiers) entirely, // but lets at least update the tonemap before hand. m_moon_params.tonemap = moon_tonemap; m_moon_tonemap = tsrc->isKnownSourceImage(m_moon_params.tonemap) ? - tsrc->getTexture(m_moon_params.tonemap) : NULL; + tsrc->getTexture(m_moon_params.tonemap) : nullptr; m_materials[4].Lighting = !!m_moon_tonemap; if (m_moon_params.texture == moon_texture) @@ -832,7 +835,6 @@ void Sky::setStarCount(u16 star_count, bool force_update) // Allow force updating star count at game init. if (m_star_params.count != star_count || force_update) { m_star_params.count = star_count; - m_seed = (u64)myrand() << 32 | myrand(); updateStars(); } } @@ -892,7 +894,7 @@ void Sky::setSkyColors(const SkyColor &sky_color) } void Sky::setHorizonTint(video::SColor sun_tint, video::SColor moon_tint, - std::string use_sun_tint) + const std::string &use_sun_tint) { // Change sun and moon tinting: m_sky_params.fog_sun_tint = sun_tint; @@ -906,7 +908,7 @@ void Sky::setHorizonTint(video::SColor sun_tint, video::SColor moon_tint, m_default_tint = true; } -void Sky::addTextureToSkybox(std::string texture, int material_id, +void Sky::addTextureToSkybox(const std::string &texture, int material_id, ITextureSource *tsrc) { // Sanity check for more than six textures. diff --git a/src/client/sky.h b/src/client/sky.h index 10e1cd976..121a16bb7 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -17,10 +17,10 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "irrlichttypes_extrabloated.h" #include #include #include "camera.h" -#include "irrlichttypes_extrabloated.h" #include "irr_ptr.h" #include "shader.h" #include "skyparams.h" @@ -36,7 +36,7 @@ class Sky : public scene::ISceneNode { public: //! constructor - Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc); + Sky(s32 id, RenderingEngine *rendering_engine, ITextureSource *tsrc, IShaderSource *ssrc); virtual void OnRegisterSceneNode(); @@ -65,15 +65,15 @@ public: } void setSunVisible(bool sun_visible) { m_sun_params.visible = sun_visible; } - void setSunTexture(std::string sun_texture, - std::string sun_tonemap, ITextureSource *tsrc); + void setSunTexture(const std::string &sun_texture, + const std::string &sun_tonemap, ITextureSource *tsrc); void setSunScale(f32 sun_scale) { m_sun_params.scale = sun_scale; } void setSunriseVisible(bool glow_visible) { m_sun_params.sunrise_visible = glow_visible; } - void setSunriseTexture(std::string sunglow_texture, ITextureSource* tsrc); + void setSunriseTexture(const std::string &sunglow_texture, ITextureSource* tsrc); void setMoonVisible(bool moon_visible) { m_moon_params.visible = moon_visible; } - void setMoonTexture(std::string moon_texture, - std::string moon_tonemap, ITextureSource *tsrc); + void setMoonTexture(const std::string &moon_texture, + const std::string &moon_tonemap, ITextureSource *tsrc); void setMoonScale(f32 moon_scale) { m_moon_params.scale = moon_scale; } void setStarsVisible(bool stars_visible) { m_star_params.visible = stars_visible; } @@ -87,21 +87,21 @@ public: void setVisible(bool visible) { m_visible = visible; } // Set only from set_sky API void setCloudsEnabled(bool clouds_enabled) { m_clouds_enabled = clouds_enabled; } - void setFallbackBgColor(const video::SColor &fallback_bg_color) + void setFallbackBgColor(video::SColor fallback_bg_color) { m_fallback_bg_color = fallback_bg_color; } - void overrideColors(const video::SColor &bgcolor, const video::SColor &skycolor) + void overrideColors(video::SColor bgcolor, video::SColor skycolor) { m_bgcolor = bgcolor; m_skycolor = skycolor; } void setSkyColors(const SkyColor &sky_color); void setHorizonTint(video::SColor sun_tint, video::SColor moon_tint, - std::string use_sun_tint); + const std::string &use_sun_tint); void setInClouds(bool clouds) { m_in_clouds = clouds; } void clearSkyboxTextures() { m_sky_params.textures.clear(); } - void addTextureToSkybox(std::string texture, int material_id, + void addTextureToSkybox(const std::string &texture, int material_id, ITextureSource *tsrc); const video::SColorf &getCurrentStarColor() const { return m_star_color; } @@ -126,7 +126,7 @@ private: } // Mix two colors by a given amount - video::SColor m_mix_scolor(video::SColor col1, video::SColor col2, f32 factor) + static video::SColor m_mix_scolor(video::SColor col1, video::SColor col2, f32 factor) { video::SColor result = video::SColor( col1.getAlpha() * (1 - factor) + col2.getAlpha() * factor, @@ -135,7 +135,7 @@ private: col1.getBlue() * (1 - factor) + col2.getBlue() * factor); return result; } - video::SColorf m_mix_scolorf(video::SColorf col1, video::SColorf col2, f32 factor) + static video::SColorf m_mix_scolorf(video::SColorf col1, video::SColorf col2, f32 factor) { video::SColorf result = video::SColorf(col1.r * (1 - factor) + col2.r * factor, diff --git a/src/client/sound_openal.cpp b/src/client/sound_openal.cpp index f4e61f93e..8dceeede6 100644 --- a/src/client/sound_openal.cpp +++ b/src/client/sound_openal.cpp @@ -671,8 +671,8 @@ public: alSourcei(sound->source_id, AL_SOURCE_RELATIVE, false); alSource3f(sound->source_id, AL_POSITION, pos.X, pos.Y, pos.Z); - alSource3f(sound->source_id, AL_VELOCITY, 0, 0, 0); - alSourcef(sound->source_id, AL_REFERENCE_DISTANCE, 30.0); + alSource3f(sound->source_id, AL_VELOCITY, 0.0f, 0.0f, 0.0f); + alSourcef(sound->source_id, AL_REFERENCE_DISTANCE, 10.0f); } bool updateSoundGain(int id, float gain) diff --git a/src/client/tile.cpp b/src/client/tile.cpp index d03588b2b..96312ea27 100644 --- a/src/client/tile.cpp +++ b/src/client/tile.cpp @@ -34,15 +34,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "guiscalingfilter.h" #include "renderingengine.h" - -#if ENABLE_GLES -#ifdef _IRR_COMPILE_WITH_OGLES1_ -#include -#else -#include -#endif -#endif - /* A cache from texture name to texture path */ @@ -427,9 +418,9 @@ private: std::unordered_map m_palettes; // Cached settings needed for making textures from meshes + bool m_setting_mipmap; bool m_setting_trilinear_filter; bool m_setting_bilinear_filter; - bool m_setting_anisotropic_filter; }; IWritableTextureSource *createTextureSource() @@ -448,9 +439,9 @@ TextureSource::TextureSource() // Cache some settings // Note: Since this is only done once, the game must be restarted // for these settings to take effect + m_setting_mipmap = g_settings->getBool("mip_map"); m_setting_trilinear_filter = g_settings->getBool("trilinear_filter"); m_setting_bilinear_filter = g_settings->getBool("bilinear_filter"); - m_setting_anisotropic_filter = g_settings->getBool("anisotropic_filter"); } TextureSource::~TextureSource() @@ -669,7 +660,7 @@ video::ITexture* TextureSource::getTexture(const std::string &name, u32 *id) video::ITexture* TextureSource::getTextureForMesh(const std::string &name, u32 *id) { static thread_local bool filter_needed = - g_settings->getBool("texture_clean_transparent") || + g_settings->getBool("texture_clean_transparent") || m_setting_mipmap || ((m_setting_trilinear_filter || m_setting_bilinear_filter) && g_settings->getS32("texture_min_size") > 1); // Avoid duplicating texture if it won't actually change @@ -839,17 +830,16 @@ static video::IImage *createInventoryCubeImage( image = scaled; } sanity_check(image->getPitch() == 4 * size); - return reinterpret_cast(image->lock()); + return reinterpret_cast(image->getData()); }; auto free_image = [] (video::IImage *image) -> void { - image->unlock(); image->drop(); }; video::IImage *result = driver->createImage(video::ECF_A8R8G8B8, {cube_size, cube_size}); sanity_check(result->getPitch() == 4 * cube_size); result->fill(video::SColor(0x00000000u)); - u32 *target = reinterpret_cast(result->lock()); + u32 *target = reinterpret_cast(result->getData()); // Draws single cube face // `shade_factor` is face brightness, in range [0.0, 1.0] @@ -908,7 +898,6 @@ static video::IImage *createInventoryCubeImage( {0, 5}, {1, 5}, }); - result->unlock(); return result; } @@ -1015,42 +1004,19 @@ video::IImage* TextureSource::generateImage(const std::string &name) #if ENABLE_GLES - -static inline u16 get_GL_major_version() -{ - const GLubyte *gl_version = glGetString(GL_VERSION); - return (u16) (gl_version[0] - '0'); -} - -/** - * Check if hardware requires npot2 aligned textures - * @return true if alignment NOT(!) requires, false otherwise - */ - -bool hasNPotSupport() -{ - // Only GLES2 is trusted to correctly report npot support - // Note: we cache the boolean result, the GL context will never change. - static const bool supported = get_GL_major_version() > 1 && - glGetString(GL_EXTENSIONS) && - strstr((char *)glGetString(GL_EXTENSIONS), "GL_OES_texture_npot"); - return supported; -} - /** * Check and align image to npot2 if required by hardware * @param image image to check for npot2 alignment * @param driver driver to use for image operations * @return image or copy of image aligned to npot2 */ - -video::IImage * Align2Npot2(video::IImage * image, - video::IVideoDriver* driver) +video::IImage *Align2Npot2(video::IImage *image, + video::IVideoDriver *driver) { if (image == NULL) return image; - if (hasNPotSupport()) + if (driver->queryFeature(video::EVDF_TEXTURE_NPOT)) return image; core::dimension2d dim = image->getDimension(); @@ -1633,8 +1599,15 @@ bool TextureSource::generateImagePart(std::string part_of_name, /* IMPORTANT: When changing this, getTextureForMesh() needs to be * updated too. */ - // Apply the "clean transparent" filter, if configured. - if (g_settings->getBool("texture_clean_transparent")) + if (!baseimg) { + errorstream << "generateImagePart(): baseimg == NULL " + << "for part_of_name=\"" << part_of_name + << "\", cancelling." << std::endl; + return false; + } + + // Apply the "clean transparent" filter, if needed + if (m_setting_mipmap || g_settings->getBool("texture_clean_transparent")) imageCleanTransparent(baseimg, 127); /* Upscale textures to user's requested minimum size. This is a trick to make @@ -2219,9 +2192,14 @@ video::SColor TextureSource::getTextureAverageColor(const std::string &name) video::IVideoDriver *driver = RenderingEngine::get_video_driver(); video::SColor c(0, 0, 0, 0); video::ITexture *texture = getTexture(name); + if (!texture) + return c; video::IImage *image = driver->createImage(texture, core::position2d(0, 0), texture->getOriginalSize()); + if (!image) + return c; + u32 total = 0; u32 tR = 0; u32 tG = 0; diff --git a/src/client/tile.h b/src/client/tile.h index 49c46f749..fcdc46460 100644 --- a/src/client/tile.h +++ b/src/client/tile.h @@ -134,8 +134,7 @@ public: IWritableTextureSource *createTextureSource(); #if ENABLE_GLES -bool hasNPotSupport(); -video::IImage * Align2Npot2(video::IImage * image, irr::video::IVideoDriver* driver); +video::IImage *Align2Npot2(video::IImage *image, video::IVideoDriver *driver); #endif enum MaterialType{ diff --git a/src/client/wieldmesh.cpp b/src/client/wieldmesh.cpp index ad583210a..08fd49fc0 100644 --- a/src/client/wieldmesh.cpp +++ b/src/client/wieldmesh.cpp @@ -294,32 +294,36 @@ void WieldMeshSceneNode::setExtruded(const std::string &imagename, } material.setFlag(video::EMF_ANISOTROPIC_FILTER, m_anisotropic_filter); // mipmaps cause "thin black line" artifacts -#if (IRRLICHT_VERSION_MAJOR >= 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR >= 2 material.setFlag(video::EMF_USE_MIP_MAPS, false); -#endif if (m_enable_shaders) { material.setTexture(2, tsrc->getShaderFlagsTexture(false)); } } } -scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector *colors, const ContentFeatures &f) +static scene::SMesh *createSpecialNodeMesh(Client *client, MapNode n, + std::vector *colors, const ContentFeatures &f) { MeshMakeData mesh_make_data(client, false); MeshCollector collector; mesh_make_data.setSmoothLighting(false); - MapblockMeshGenerator gen(&mesh_make_data, &collector); - u8 param2 = 0; - if (f.param_type_2 == CPT2_WALLMOUNTED || + MapblockMeshGenerator gen(&mesh_make_data, &collector, + client->getSceneManager()->getMeshManipulator()); + + if (n.getParam2()) { + // keep it + } else if (f.param_type_2 == CPT2_WALLMOUNTED || f.param_type_2 == CPT2_COLORED_WALLMOUNTED) { - if (f.drawtype == NDT_TORCHLIKE) - param2 = 1; - else if (f.drawtype == NDT_SIGNLIKE || + if (f.drawtype == NDT_TORCHLIKE || + f.drawtype == NDT_SIGNLIKE || f.drawtype == NDT_NODEBOX || - f.drawtype == NDT_MESH) - param2 = 4; + f.drawtype == NDT_MESH) { + n.setParam2(4); + } + } else if (f.drawtype == NDT_SIGNLIKE || f.drawtype == NDT_TORCHLIKE) { + n.setParam2(1); } - gen.renderSingle(id, param2); + gen.renderSingle(n.getContent(), n.getParam2()); colors->clear(); scene::SMesh *mesh = new scene::SMesh(); @@ -392,7 +396,6 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client, bool che case NDT_TORCHLIKE: case NDT_RAILLIKE: case NDT_PLANTLIKE: - case NDT_PLANTLIKE_ROOTED: case NDT_FLOWINGLIQUID: { v3f wscale = def.wield_scale; if (f.drawtype == NDT_FLOWINGLIQUID) @@ -408,14 +411,26 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client, bool che m_colors.emplace_back(l1.has_color, l1.color); break; } + case NDT_PLANTLIKE_ROOTED: { + setExtruded(tsrc->getTextureName(f.special_tiles[0].layers[0].texture_id), + "", def.wield_scale, tsrc, + f.special_tiles[0].layers[0].animation_frame_count); + // Add color + const TileLayer &l0 = f.special_tiles[0].layers[0]; + m_colors.emplace_back(l0.has_color, l0.color); + break; + } case NDT_NORMAL: case NDT_ALLFACES: case NDT_LIQUID: setCube(f, def.wield_scale); break; - default: + default: { // Render non-trivial drawtypes like the actual node - mesh = createSpecialNodeMesh(client, id, &m_colors, f); + MapNode n(id); + n.setParam2(def.place_param2); + + mesh = createSpecialNodeMesh(client, n, &m_colors, f); changeToMesh(mesh); mesh->drop(); m_meshnode->setScale( @@ -423,6 +438,7 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client, bool che / (BS * f.visual_scale)); break; } + } u32 material_count = m_meshnode->getMaterialCount(); for (u32 i = 0; i < material_count; ++i) { @@ -523,7 +539,7 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result) content_t id = ndef->getId(def.name); FATAL_ERROR_IF(!g_extrusion_mesh_cache, "Extrusion mesh cache is not yet initialized"); - + scene::SMesh *mesh = nullptr; // Shading is on by default @@ -585,12 +601,16 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result) result->buffer_colors.emplace_back(l0.has_color, l0.color); break; } - default: + default: { // Render non-trivial drawtypes like the actual node - mesh = createSpecialNodeMesh(client, id, &result->buffer_colors, f); + MapNode n(id); + n.setParam2(def.place_param2); + + mesh = createSpecialNodeMesh(client, n, &result->buffer_colors, f); scaleMesh(mesh, v3f(0.12, 0.12, 0.12)); break; } + } u32 mc = mesh->getMeshBufferCount(); for (u32 i = 0; i < mc; ++i) { diff --git a/src/clientiface.cpp b/src/clientiface.cpp index 01852c5d1..f35dcd0eb 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -452,9 +452,6 @@ void RemoteClient::notifyEvent(ClientStateEvent event) case CSE_Hello: m_state = CS_HelloSent; break; - case CSE_InitLegacy: - m_state = CS_AwaitingInit2; - break; case CSE_Disconnect: m_state = CS_Disconnecting; break; @@ -674,7 +671,6 @@ void ClientInterface::UpdatePlayerList() std::vector clients = getClientIDs(); m_clients_names.clear(); - if (!clients.empty()) infostream<<"Players:"< #include #include +#include #include class MapBlock; @@ -188,7 +190,6 @@ enum ClientStateEvent { CSE_Hello, CSE_AuthAccept, - CSE_InitLegacy, CSE_GotInit2, CSE_SetDenied, CSE_SetDefinitionsSent, @@ -338,17 +339,24 @@ public: u8 getMajor() const { return m_version_major; } u8 getMinor() const { return m_version_minor; } u8 getPatch() const { return m_version_patch; } - const std::string &getFull() const { return m_full_version; } + const std::string &getFullVer() const { return m_full_version; } void setLangCode(const std::string &code) { m_lang_code = code; } const std::string &getLangCode() const { return m_lang_code; } + + void setCachedAddress(const Address &addr) { m_addr = addr; } + const Address &getAddress() const { return m_addr; } + private: // Version is stored in here after INIT before INIT2 u8 m_pending_serialization_version = SER_FMT_VER_INVALID; /* current state of client */ ClientState m_state = CS_Created; - + + // Cached here so retrieval doesn't have to go to connection API + Address m_addr; + // Client sent language code std::string m_lang_code; @@ -412,7 +420,7 @@ private: /* client information - */ + */ u8 m_version_major = 0; u8 m_version_minor = 0; u8 m_version_patch = 0; diff --git a/src/constants.h b/src/constants.h index c17f3b6af..3cc3af094 100644 --- a/src/constants.h +++ b/src/constants.h @@ -89,7 +89,7 @@ with this program; if not, write to the Free Software Foundation, Inc., // Size of player's main inventory #define PLAYER_INVENTORY_SIZE (8 * 4) -// Default maximum hit points of a player +// Default maximum health points of a player #define PLAYER_MAX_HP_DEFAULT 20 // Default maximal breath of a player diff --git a/src/content/mods.cpp b/src/content/mods.cpp index 95ab0290a..f791fa797 100644 --- a/src/content/mods.cpp +++ b/src/content/mods.cpp @@ -28,6 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "settings.h" #include "porting.h" #include "convert_json.h" +#include "script/common/c_internal.h" bool parseDependsString(std::string &dep, std::unordered_set &symbols) { @@ -44,20 +45,25 @@ bool parseDependsString(std::string &dep, std::unordered_set &symbols) return !dep.empty(); } +static void log_mod_deprecation(const ModSpec &spec, const std::string &warning) +{ + auto handling_mode = get_deprecated_handling_mode(); + if (handling_mode != DeprecatedHandlingMode::Ignore) { + std::ostringstream os; + os << warning << " (" << spec.name << " at " << spec.path << ")" + << std::endl; + + if (handling_mode == DeprecatedHandlingMode::Error) { + throw ModError(os.str()); + } else { + warningstream << os.str(); + } + } +} + void parseModContents(ModSpec &spec) { // NOTE: this function works in mutual recursion with getModsInPath - Settings info; - info.readConfigFile((spec.path + DIR_DELIM + "mod.conf").c_str()); - - if (info.exists("name")) - spec.name = info.get("name"); - - if (info.exists("author")) - spec.author = info.get("author"); - - if (info.exists("release")) - spec.release = info.getS32("release"); spec.depends.clear(); spec.optdepends.clear(); @@ -78,6 +84,21 @@ void parseModContents(ModSpec &spec) spec.modpack_content = getModsInPath(spec.path, true); } else { + Settings info; + info.readConfigFile((spec.path + DIR_DELIM + "mod.conf").c_str()); + + if (info.exists("name")) + spec.name = info.get("name"); + else + log_mod_deprecation(spec, "Mods not having a mod.conf file with " + "the name is deprecated."); + + if (info.exists("author")) + spec.author = info.get("author"); + + if (info.exists("release")) + spec.release = info.getS32("release"); + // Attempt to load dependencies from mod.conf bool mod_conf_has_depends = false; if (info.exists("depends")) { @@ -109,6 +130,11 @@ void parseModContents(ModSpec &spec) std::vector dependencies; std::ifstream is((spec.path + DIR_DELIM + "depends.txt").c_str()); + + if (is.good()) + log_mod_deprecation(spec, "depends.txt is deprecated, " + "please use mod.conf instead."); + while (is.good()) { std::string dep; std::getline(is, dep); @@ -127,14 +153,12 @@ void parseModContents(ModSpec &spec) } } - if (info.exists("description")) { + if (info.exists("description")) spec.desc = info.get("description"); - } else { - std::ifstream is((spec.path + DIR_DELIM + "description.txt") - .c_str()); - spec.desc = std::string((std::istreambuf_iterator(is)), - std::istreambuf_iterator()); - } + else if (fs::ReadFile(spec.path + DIR_DELIM + "description.txt", + spec.desc)) + log_mod_deprecation(spec, "description.txt is deprecated, please " + "use mod.conf instead."); } } diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp index c6350f2dd..e9dc609b0 100644 --- a/src/content/subgames.cpp +++ b/src/content/subgames.cpp @@ -329,18 +329,16 @@ void loadGameConfAndInitWorld(const std::string &path, const std::string &name, } } - // Override defaults with those provided by the game. - // We clear and reload the defaults because the defaults - // might have been overridden by other subgame config - // files that were loaded before. - g_settings->clearDefaults(); - set_default_settings(g_settings); + Settings *game_settings = Settings::getLayer(SL_GAME); + const bool new_game_settings = (game_settings == nullptr); + if (new_game_settings) { + // Called by main-menu without a Server instance running + // -> create and free manually + game_settings = Settings::createLayer(SL_GAME); + } - Settings game_defaults; - getGameMinetestConfig(gamespec.path, game_defaults); - game_defaults.removeSecureSettings(); - - g_settings->overrideDefaults(&game_defaults); + getGameMinetestConfig(gamespec.path, *game_settings); + game_settings->removeSecureSettings(); infostream << "Initializing world at " << final_path << std::endl; @@ -381,4 +379,8 @@ void loadGameConfAndInitWorld(const std::string &path, const std::string &name, fs::safeWriteToFile(map_meta_path, oss.str()); } + + // The Settings object is no longer needed for created worlds + if (new_game_settings) + delete game_settings; } diff --git a/src/convert_json.cpp b/src/convert_json.cpp index c774aa002..686113fa8 100644 --- a/src/convert_json.cpp +++ b/src/convert_json.cpp @@ -17,63 +17,23 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include #include +#include #include "convert_json.h" -#include "content/mods.h" -#include "config.h" -#include "log.h" -#include "settings.h" -#include "httpfetch.h" -#include "porting.h" -Json::Value fetchJsonValue(const std::string &url, - std::vector *extra_headers) +void fastWriteJson(const Json::Value &value, std::ostream &to) { - HTTPFetchRequest fetch_request; - HTTPFetchResult fetch_result; - fetch_request.url = url; - fetch_request.caller = HTTPFETCH_SYNC; - - if (extra_headers != NULL) - fetch_request.extra_headers = *extra_headers; - - httpfetch_sync(fetch_request, fetch_result); - - if (!fetch_result.succeeded) { - return Json::Value(); - } - Json::Value root; - std::istringstream stream(fetch_result.data); - - Json::CharReaderBuilder builder; - builder.settings_["collectComments"] = false; - std::string errs; - - if (!Json::parseFromStream(builder, stream, &root, &errs)) { - errorstream << "URL: " << url << std::endl; - errorstream << "Failed to parse json data " << errs << std::endl; - if (fetch_result.data.size() > 100) { - errorstream << "Data (" << fetch_result.data.size() - << " bytes) printed to warningstream." << std::endl; - warningstream << "data: \"" << fetch_result.data << "\"" << std::endl; - } else { - errorstream << "data: \"" << fetch_result.data << "\"" << std::endl; - } - return Json::Value(); - } - - return root; + Json::StreamWriterBuilder builder; + builder["indentation"] = ""; + std::unique_ptr writer(builder.newStreamWriter()); + writer->write(value, &to); } std::string fastWriteJson(const Json::Value &value) { std::ostringstream oss; - Json::StreamWriterBuilder builder; - builder["indentation"] = ""; - std::unique_ptr writer(builder.newStreamWriter()); - writer->write(value, &oss); + fastWriteJson(value, oss); return oss.str(); } diff --git a/src/convert_json.h b/src/convert_json.h index d8825acdc..d1d487e77 100644 --- a/src/convert_json.h +++ b/src/convert_json.h @@ -20,8 +20,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include +#include -Json::Value fetchJsonValue(const std::string &url, - std::vector *extra_headers); +void fastWriteJson(const Json::Value &value, std::ostream &to); std::string fastWriteJson(const Json::Value &value); diff --git a/src/database/database-files.cpp b/src/database/database-files.cpp index d2b0b1543..d9d113b4e 100644 --- a/src/database/database-files.cpp +++ b/src/database/database-files.cpp @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include +#include "convert_json.h" #include "database-files.h" #include "remoteplayer.h" #include "settings.h" @@ -36,29 +37,116 @@ PlayerDatabaseFiles::PlayerDatabaseFiles(const std::string &savedir) : m_savedir fs::CreateDir(m_savedir); } -void PlayerDatabaseFiles::serialize(std::ostringstream &os, RemotePlayer *player) +void PlayerDatabaseFiles::deSerialize(RemotePlayer *p, std::istream &is, + const std::string &playername, PlayerSAO *sao) +{ + Settings args("PlayerArgsEnd"); + + if (!args.parseConfigLines(is)) { + throw SerializationError("PlayerArgsEnd of player " + playername + " not found!"); + } + + p->m_dirty = true; + //args.getS32("version"); // Version field value not used + const std::string &name = args.get("name"); + strlcpy(p->m_name, name.c_str(), PLAYERNAME_SIZE); + + if (sao) { + try { + sao->setHPRaw(args.getU16("hp")); + } catch(SettingNotFoundException &e) { + sao->setHPRaw(PLAYER_MAX_HP_DEFAULT); + } + + try { + sao->setBasePosition(args.getV3F("position")); + } catch (SettingNotFoundException &e) {} + + try { + sao->setLookPitch(args.getFloat("pitch")); + } catch (SettingNotFoundException &e) {} + try { + sao->setPlayerYaw(args.getFloat("yaw")); + } catch (SettingNotFoundException &e) {} + + try { + sao->setBreath(args.getU16("breath"), false); + } catch (SettingNotFoundException &e) {} + + try { + const std::string &extended_attributes = args.get("extended_attributes"); + std::istringstream iss(extended_attributes); + Json::CharReaderBuilder builder; + builder.settings_["collectComments"] = false; + std::string errs; + + Json::Value attr_root; + Json::parseFromStream(builder, iss, &attr_root, &errs); + + const Json::Value::Members attr_list = attr_root.getMemberNames(); + for (const auto &it : attr_list) { + Json::Value attr_value = attr_root[it]; + sao->getMeta().setString(it, attr_value.asString()); + } + sao->getMeta().setModified(false); + } catch (SettingNotFoundException &e) {} + } + + try { + p->inventory.deSerialize(is); + } catch (SerializationError &e) { + errorstream << "Failed to deserialize player inventory. player_name=" + << name << " " << e.what() << std::endl; + } + + if (!p->inventory.getList("craftpreview") && p->inventory.getList("craftresult")) { + // Convert players without craftpreview + p->inventory.addList("craftpreview", 1); + + bool craftresult_is_preview = true; + if(args.exists("craftresult_is_preview")) + craftresult_is_preview = args.getBool("craftresult_is_preview"); + if(craftresult_is_preview) + { + // Clear craftresult + p->inventory.getList("craftresult")->changeItem(0, ItemStack()); + } + } +} + +void PlayerDatabaseFiles::serialize(RemotePlayer *p, std::ostream &os) { // Utilize a Settings object for storing values - Settings args; + Settings args("PlayerArgsEnd"); args.setS32("version", 1); - args.set("name", player->getName()); + args.set("name", p->m_name); - sanity_check(player->getPlayerSAO()); - args.setU16("hp", player->getPlayerSAO()->getHP()); - args.setV3F("position", player->getPlayerSAO()->getBasePosition()); - args.setFloat("pitch", player->getPlayerSAO()->getLookPitch()); - args.setFloat("yaw", player->getPlayerSAO()->getRotation().Y); - args.setU16("breath", player->getPlayerSAO()->getBreath()); + PlayerSAO *sao = p->getPlayerSAO(); + // This should not happen + sanity_check(sao); + args.setU16("hp", sao->getHP()); + args.setV3F("position", sao->getBasePosition()); + args.setFloat("pitch", sao->getLookPitch()); + args.setFloat("yaw", sao->getRotation().Y); + args.setU16("breath", sao->getBreath()); std::string extended_attrs; - player->serializeExtraAttributes(extended_attrs); + { + // serializeExtraAttributes + Json::Value json_root; + + const StringMap &attrs = sao->getMeta().getStrings(); + for (const auto &attr : attrs) { + json_root[attr.first] = attr.second; + } + + extended_attrs = fastWriteJson(json_root); + } args.set("extended_attributes", extended_attrs); args.writeLines(os); - os << "PlayerArgsEnd\n"; - - player->inventory.serialize(os); + p->inventory.serialize(os); } void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) @@ -83,7 +171,7 @@ void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) return; } - testplayer.deSerialize(is, path, NULL); + deSerialize(&testplayer, is, path, NULL); is.close(); if (strcmp(testplayer.getName(), player->getName()) == 0) { path_found = true; @@ -101,7 +189,7 @@ void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) // Open and serialize file std::ostringstream ss(std::ios_base::binary); - serialize(ss, player); + serialize(player, ss); if (!fs::safeWriteToFile(path, ss.str())) { infostream << "Failed to write " << path << std::endl; } @@ -121,7 +209,7 @@ bool PlayerDatabaseFiles::removePlayer(const std::string &name) if (!is.good()) continue; - temp_player.deSerialize(is, path, NULL); + deSerialize(&temp_player, is, path, NULL); is.close(); if (temp_player.getName() == name) { @@ -147,7 +235,7 @@ bool PlayerDatabaseFiles::loadPlayer(RemotePlayer *player, PlayerSAO *sao) if (!is.good()) continue; - player->deSerialize(is, path, sao); + deSerialize(player, is, path, sao); is.close(); if (player->getName() == player_to_load) @@ -180,7 +268,7 @@ void PlayerDatabaseFiles::listPlayers(std::vector &res) // Null env & dummy peer_id PlayerSAO playerSAO(NULL, &player, 15789, false); - player.deSerialize(is, "", &playerSAO); + deSerialize(&player, is, "", &playerSAO); is.close(); res.emplace_back(player.getName()); diff --git a/src/database/database-files.h b/src/database/database-files.h index cb830a3ed..e647a2e24 100644 --- a/src/database/database-files.h +++ b/src/database/database-files.h @@ -38,7 +38,14 @@ public: void listPlayers(std::vector &res); private: - void serialize(std::ostringstream &os, RemotePlayer *player); + void deSerialize(RemotePlayer *p, std::istream &is, const std::string &playername, + PlayerSAO *sao); + /* + serialize() writes a bunch of text that can contain + any characters except a '\0', and such an ending that + deSerialize stops reading exactly at the right point. + */ + void serialize(RemotePlayer *p, std::ostream &os); std::string m_savedir; }; diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 64e5af3a7..830600bb8 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -27,11 +27,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mapgen/mapgen.h" // Mapgen::setDefaultSettings #include "util/string.h" - - - -void set_default_settings(Settings *settings) +void set_default_settings() { + Settings *settings = Settings::createLayer(SL_DEFAULTS); + // Client and server settings->setDefault("language", ""); settings->setDefault("name", ""); @@ -45,7 +44,7 @@ void set_default_settings(Settings *settings) settings->setDefault("mute_sound", "false"); settings->setDefault("enable_mesh_cache", "false"); settings->setDefault("mesh_generation_interval", "0"); - settings->setDefault("meshgen_block_cache_size", "40"); + settings->setDefault("meshgen_block_cache_size", "20"); settings->setDefault("enable_vbo", "true"); settings->setDefault("free_move", "false"); settings->setDefault("pitch_move", "false"); @@ -57,7 +56,7 @@ void set_default_settings(Settings *settings) settings->setDefault("client_unload_unused_data_timeout", "600"); settings->setDefault("client_mapblock_limit", "7500"); settings->setDefault("enable_build_where_you_stand", "true"); - settings->setDefault("curl_timeout", "5000"); + settings->setDefault("curl_timeout", "20000"); settings->setDefault("curl_parallel_limit", "8"); settings->setDefault("curl_file_download_timeout", "300000"); settings->setDefault("curl_verify_cert", "true"); @@ -77,6 +76,9 @@ void set_default_settings(Settings *settings) settings->setDefault("cheat_menu_font_color_alpha", "195"); settings->setDefault("cheat_menu_selected_font_color", "(255, 255, 255)"); settings->setDefault("cheat_menu_selected_font_color_alpha", "235"); + settings->setDefault("cheat_menu_head_height", "50"); + settings->setDefault("cheat_menu_entry_height", "35"); + settings->setDefault("cheat_menu_entry_width", "200"); // Cheats settings->setDefault("xray", "false"); @@ -86,10 +88,8 @@ void set_default_settings(Settings *settings) settings->setDefault("freecam", "false"); settings->setDefault("prevent_natural_damage", "true"); settings->setDefault("freecam", "false"); - settings->setDefault("killaura", "false"); settings->setDefault("no_hurt_cam", "false"); - settings->setDefault("increase_tool_range", "true"); - settings->setDefault("increase_tool_range_plus", "false"); + settings->setDefault("reach", "true"); settings->setDefault("hud_flags_bypass", "true"); settings->setDefault("antiknockback", "false"); settings->setDefault("entity_speed", "false"); @@ -107,38 +107,9 @@ void set_default_settings(Settings *settings) settings->setDefault("no_force_rotate", "false"); settings->setDefault("no_slow", "false"); settings->setDefault("float_above_parent", "false"); - settings->setDefault("ignore_status_messages", "true"); - settings->setDefault("mark_deathmessages", "true"); - settings->setDefault("autosneak", "false"); - settings->setDefault("autoeject", "false"); - settings->setDefault("eject_items", ""); - settings->setDefault("autotool", "false"); - settings->setDefault("autorespawn", "false"); - settings->setDefault("scaffold", "false"); - settings->setDefault("scaffold_plus", "false"); - settings->setDefault("block_water", "false"); - settings->setDefault("autotnt", "false"); - settings->setDefault("replace", "false"); - settings->setDefault("crystal_pvp", "false"); - settings->setDefault("autototem", "false"); settings->setDefault("dont_point_nodes", "false"); - settings->setDefault("strip", "false"); - settings->setDefault("autorefill", "false"); - settings->setDefault("nuke", "false"); - settings->setDefault("chat_color", "rainbow"); - settings->setDefault("use_chat_color", "false"); - settings->setDefault("chat_reverse", "false"); - settings->setDefault("forcefield", "false"); - settings->setDefault("friendlist", ""); settings->setDefault("cheat_hud", "true"); settings->setDefault("node_esp_nodes", ""); - settings->setDefault("autosprint", "false"); - settings->setDefault("override_speed", "false"); - settings->setDefault("override_jump", "false"); - settings->setDefault("override_gravity", "false"); - settings->setDefault("override_speed_factor", "1.2"); - settings->setDefault("override_jump_factor", "2.0"); - settings->setDefault("override_gravity_factor", "0.9"); settings->setDefault("jetpack", "false"); settings->setDefault("autohit", "false"); settings->setDefault("antislip", "false"); @@ -153,6 +124,9 @@ void set_default_settings(Settings *settings) settings->setDefault("noweather", "false"); settings->setDefault("noparticles", "false"); settings->setDefault("noposupdate", "false"); + settings->setDefault("tool_range", "2"); + settings->setDefault("scaffold", "false"); + settings->setDefault("killaura", "false"); // Keymap settings->setDefault("remote_port", "30000"); @@ -169,7 +143,7 @@ void set_default_settings(Settings *settings) settings->setDefault("keymap_zoom", "KEY_KEY_Z"); settings->setDefault("keymap_inventory", "KEY_KEY_I"); settings->setDefault("keymap_enderchest", "KEY_KEY_O"); - settings->setDefault("keymap_special1", "KEY_KEY_E"); + settings->setDefault("keymap_aux1", "KEY_KEY_E"); settings->setDefault("keymap_chat", "KEY_KEY_T"); settings->setDefault("keymap_cmd", "/"); settings->setDefault("keymap_cmd_local", "."); @@ -186,6 +160,7 @@ void set_default_settings(Settings *settings) settings->setDefault("keymap_increase_volume", ""); settings->setDefault("keymap_decrease_volume", ""); settings->setDefault("keymap_cinematic", ""); + settings->setDefault("keymap_toggle_block_bounds", ""); settings->setDefault("keymap_toggle_hud", "KEY_F1"); settings->setDefault("keymap_toggle_chat", "KEY_F2"); settings->setDefault("keymap_toggle_fog", "KEY_F3"); @@ -338,6 +313,7 @@ void set_default_settings(Settings *settings) #endif settings->setDefault("enable_particles", "true"); settings->setDefault("arm_inertia", "true"); + settings->setDefault("show_nametag_backgrounds", "true"); settings->setDefault("enable_minimap", "true"); settings->setDefault("minimap_shape_round", "false"); @@ -379,10 +355,11 @@ void set_default_settings(Settings *settings) settings->setDefault("joystick_type", ""); settings->setDefault("repeat_joystick_button_time", "0.17"); settings->setDefault("joystick_frustum_sensitivity", "170"); + settings->setDefault("joystick_deadzone", "2048"); // Main menu settings->setDefault("main_menu_path", ""); - settings->setDefault("serverlist_file", "favoriteservers.txt"); + settings->setDefault("serverlist_file", "favoriteservers.json"); #if USE_FREETYPE settings->setDefault("freetype", "true"); @@ -400,12 +377,7 @@ void set_default_settings(Settings *settings) settings->setDefault("mono_font_path_bold_italic", porting::getDataPath("fonts" DIR_DELIM "Cousine-BoldItalic.ttf")); settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "DroidSansFallbackFull.ttf")); - settings->setDefault("fallback_font_shadow", "1"); - settings->setDefault("fallback_font_shadow_alpha", "128"); - std::string font_size_str = std::to_string(TTF_DEFAULT_FONT_SIZE); - - settings->setDefault("fallback_font_size", font_size_str); #else settings->setDefault("freetype", "false"); settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "mono_dejavu_sans")); @@ -443,10 +415,10 @@ void set_default_settings(Settings *settings) settings->setDefault("port", "30000"); settings->setDefault("strict_protocol_version_checking", "false"); settings->setDefault("player_transfer_distance", "0"); - settings->setDefault("max_simultaneous_block_sends_per_client", "128"); + settings->setDefault("max_simultaneous_block_sends_per_client", "40"); settings->setDefault("time_send_interval", "5"); - settings->setDefault("default_game", "minetest"); + settings->setDefault("default_game", "MineClone2"); settings->setDefault("motd", ""); settings->setDefault("max_users", "15"); settings->setDefault("creative_mode", "false"); @@ -485,6 +457,8 @@ void set_default_settings(Settings *settings) settings->setDefault("chat_message_limit_per_10sec", "8.0"); settings->setDefault("chat_message_limit_trigger_kick", "50"); settings->setDefault("sqlite_synchronous", "2"); + settings->setDefault("map_compression_level_disk", "3"); + settings->setDefault("map_compression_level_net", "-1"); settings->setDefault("full_block_send_enable_min_time_from_building", "2.0"); settings->setDefault("dedicated_server_step", "0.09"); settings->setDefault("active_block_mgmt_interval", "2.0"); @@ -570,10 +544,9 @@ void set_default_settings(Settings *settings) settings->setDefault("screen_h", "0"); settings->setDefault("fullscreen", "true"); settings->setDefault("touchtarget", "true"); - settings->setDefault("TMPFolder", porting::path_cache); settings->setDefault("touchscreen_threshold","20"); settings->setDefault("fixed_virtual_joystick", "false"); - settings->setDefault("virtual_joystick_triggers_aux", "false"); + settings->setDefault("virtual_joystick_triggers_aux1", "false"); settings->setDefault("smooth_lighting", "false"); settings->setDefault("max_simultaneous_block_sends_per_client", "10"); settings->setDefault("emergequeue_limit_diskonly", "16"); @@ -584,6 +557,8 @@ void set_default_settings(Settings *settings) settings->setDefault("fps_max_unfocused", "10"); settings->setDefault("max_objects_per_block", "20"); settings->setDefault("sqlite_synchronous", "1"); + settings->setDefault("map_compression_level_disk", "-1"); + settings->setDefault("map_compression_level_net", "3"); settings->setDefault("server_map_save_interval", "15"); settings->setDefault("client_mapblock_limit", "1000"); settings->setDefault("active_block_range", "2"); diff --git a/src/defaultsettings.h b/src/defaultsettings.h index c81e88502..c239b3c12 100644 --- a/src/defaultsettings.h +++ b/src/defaultsettings.h @@ -25,11 +25,4 @@ class Settings; * initialize basic default settings * @param settings pointer to settings */ -void set_default_settings(Settings *settings); - -/** - * override a default settings by settings from another settings element - * @param settings target settings pointer - * @param from source settings pointer - */ -void override_default_settings(Settings *settings, Settings *from); +void set_default_settings(); diff --git a/src/emerge.cpp b/src/emerge.cpp index 12e407797..32e7d9f24 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -113,13 +113,15 @@ EmergeParams::~EmergeParams() { infostream << "EmergeParams: destroying " << this << std::endl; // Delete everything that was cloned on creation of EmergeParams + delete biomegen; delete biomemgr; delete oremgr; delete decomgr; delete schemmgr; } -EmergeParams::EmergeParams(EmergeManager *parent, const BiomeManager *biomemgr, +EmergeParams::EmergeParams(EmergeManager *parent, const BiomeGen *biomegen, + const BiomeManager *biomemgr, const OreManager *oremgr, const DecorationManager *decomgr, const SchematicManager *schemmgr) : ndef(parent->ndef), @@ -129,6 +131,7 @@ EmergeParams::EmergeParams(EmergeManager *parent, const BiomeManager *biomemgr, biomemgr(biomemgr->clone()), oremgr(oremgr->clone()), decomgr(decomgr->clone()), schemmgr(schemmgr->clone()) { + this->biomegen = biomegen->clone(this->biomemgr); } //// @@ -143,6 +146,10 @@ EmergeManager::EmergeManager(Server *server) this->decomgr = new DecorationManager(server); this->schemmgr = new SchematicManager(server); + // initialized later + this->mgparams = nullptr; + this->biomegen = nullptr; + // Note that accesses to this variable are not synchronized. // This is because the *only* thread ever starting or stopping // EmergeThreads should be the ServerThread. @@ -240,9 +247,12 @@ void EmergeManager::initMapgens(MapgenParams *params) mgparams = params; + v3s16 csize = v3s16(1, 1, 1) * (params->chunksize * MAP_BLOCKSIZE); + biomegen = biomemgr->createBiomeGen(BIOMEGEN_ORIGINAL, params->bparams, csize); + for (u32 i = 0; i != m_threads.size(); i++) { - EmergeParams *p = new EmergeParams( - this, biomemgr, oremgr, decomgr, schemmgr); + EmergeParams *p = new EmergeParams(this, biomegen, + biomemgr, oremgr, decomgr, schemmgr); infostream << "EmergeManager: Created params " << p << " for thread " << i << std::endl; m_mapgens.push_back(Mapgen::createMapgen(params->mgtype, params, p)); @@ -396,14 +406,7 @@ int EmergeManager::getGroundLevelAtPoint(v2s16 p) // TODO(hmmmm): Move this to ServerMap bool EmergeManager::isBlockUnderground(v3s16 blockpos) { -#if 0 - v2s16 p = v2s16((blockpos.X * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2, - (blockpos.Y * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2); - int ground_level = getGroundLevelAtPoint(p); - return blockpos.Y * (MAP_BLOCKSIZE + 1) <= min(water_level, ground_level); -#endif - - // Use a simple heuristic; the above method is wildly inaccurate anyway. + // Use a simple heuristic return blockpos.Y * (MAP_BLOCKSIZE + 1) <= mgparams->water_level; } diff --git a/src/emerge.h b/src/emerge.h index da845e243..aac3e7dd3 100644 --- a/src/emerge.h +++ b/src/emerge.h @@ -99,13 +99,15 @@ public: u32 gen_notify_on; const std::set *gen_notify_on_deco_ids; // shared + BiomeGen *biomegen; BiomeManager *biomemgr; OreManager *oremgr; DecorationManager *decomgr; SchematicManager *schemmgr; private: - EmergeParams(EmergeManager *parent, const BiomeManager *biomemgr, + EmergeParams(EmergeManager *parent, const BiomeGen *biomegen, + const BiomeManager *biomemgr, const OreManager *oremgr, const DecorationManager *decomgr, const SchematicManager *schemmgr); }; @@ -140,6 +142,8 @@ public: ~EmergeManager(); DISABLE_CLASS_COPY(EmergeManager); + const BiomeGen *getBiomeGen() const { return biomegen; } + // no usage restrictions const BiomeManager *getBiomeManager() const { return biomemgr; } const OreManager *getOreManager() const { return oremgr; } @@ -196,6 +200,7 @@ private: // Managers of various map generation-related components // Note that each Mapgen gets a copy(!) of these to work with + BiomeGen *biomegen; BiomeManager *biomemgr; OreManager *oremgr; DecorationManager *decomgr; diff --git a/src/exceptions.h b/src/exceptions.h index c54307653..a558adc5d 100644 --- a/src/exceptions.h +++ b/src/exceptions.h @@ -72,11 +72,6 @@ public: SettingNotFoundException(const std::string &s): BaseException(s) {} }; -class InvalidFilenameException : public BaseException { -public: - InvalidFilenameException(const std::string &s): BaseException(s) {} -}; - class ItemNotFoundException : public BaseException { public: ItemNotFoundException(const std::string &s): BaseException(s) {} diff --git a/src/filesys.cpp b/src/filesys.cpp index 2470b1b64..99b030624 100644 --- a/src/filesys.cpp +++ b/src/filesys.cpp @@ -27,9 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "config.h" #include "porting.h" -#ifdef __ANDROID__ -#include "settings.h" // For g_settings -#endif namespace fs { @@ -295,31 +292,26 @@ bool RecursiveDelete(const std::string &path) infostream<<"Removing \""<(argv)); // Execv shouldn't return. Failed. _exit(1); @@ -331,7 +323,6 @@ bool RecursiveDelete(const std::string &path) pid_t tpid; do{ tpid = wait(&child_status); - //if(tpid != child_pid) process_terminated(tpid); }while(tpid != child_pid); return (child_status == 0); } @@ -365,8 +356,9 @@ std::string TempPath() compatible with lua's os.tmpname which under the default configuration hardcodes mkstemp("/tmp/lua_XXXXXX"). */ + #ifdef __ANDROID__ - return g_settings->get("TMPFolder"); + return porting::path_cache; #else return DIR_DELIM "tmp"; #endif @@ -407,21 +399,6 @@ void GetRecursiveSubPaths(const std::string &path, } } -bool DeletePaths(const std::vector &paths) -{ - bool success = true; - // Go backwards to succesfully delete the output of GetRecursiveSubPaths - for(int i=paths.size()-1; i>=0; i--){ - const std::string &path = paths[i]; - bool did = DeleteSingleFileOrEmptyDirectory(path); - if(!did){ - errorstream<<"Failed to delete "<addFileArchive(filename, false, false, io::EFAT_ZIP)) { + return false; + } + + sanity_check(fs->getFileArchiveCount() > 0); + + /**********************************************************************/ + /* WARNING this is not threadsafe!! */ + /**********************************************************************/ + io::IFileArchive* opened_zip = fs->getFileArchive(fs->getFileArchiveCount() - 1); + + const io::IFileList* files_in_zip = opened_zip->getFileList(); + + unsigned int number_of_files = files_in_zip->getFileCount(); + + for (unsigned int i=0; i < number_of_files; i++) { + std::string fullpath = destination; + fullpath += DIR_DELIM; + fullpath += files_in_zip->getFullFileName(i).c_str(); + std::string fullpath_dir = fs::RemoveLastPathComponent(fullpath); + + if (!files_in_zip->isDirectory(i)) { + if (!fs::PathExists(fullpath_dir) && !fs::CreateAllDirs(fullpath_dir)) { + fs->removeFileArchive(fs->getFileArchiveCount()-1); + return false; + } + + io::IReadFile* toread = opened_zip->createAndOpenFile(i); + + FILE *targetfile = fopen(fullpath.c_str(),"wb"); + + if (targetfile == NULL) { + fs->removeFileArchive(fs->getFileArchiveCount()-1); + return false; + } + + char read_buffer[1024]; + long total_read = 0; + + while (total_read < toread->getSize()) { + + unsigned int bytes_read = + toread->read(read_buffer,sizeof(read_buffer)); + if ((bytes_read == 0 ) || + (fwrite(read_buffer, 1, bytes_read, targetfile) != bytes_read)) + { + fclose(targetfile); + fs->removeFileArchive(fs->getFileArchiveCount() - 1); + return false; + } + total_read += bytes_read; + } + + fclose(targetfile); + } + + } + + fs->removeFileArchive(fs->getFileArchiveCount() - 1); + return true; +} + bool ReadFile(const std::string &path, std::string &out) { std::ifstream is(path, std::ios::binary | std::ios::ate); diff --git a/src/filesys.h b/src/filesys.h index b2c800c55..a9584b036 100644 --- a/src/filesys.h +++ b/src/filesys.h @@ -36,6 +36,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #define PATH_DELIM ":" #endif +namespace irr { namespace io { +class IFileSystem; +}} + namespace fs { @@ -85,9 +89,6 @@ void GetRecursiveSubPaths(const std::string &path, bool list_files, const std::set &ignore = {}); -// Tries to delete all, returns false if any failed -bool DeletePaths(const std::vector &paths); - // Only pass full paths to this one. True on success. bool RecursiveDeleteContent(const std::string &path); @@ -128,6 +129,8 @@ const char *GetFilenameFromPath(const char *path); bool safeWriteToFile(const std::string &path, const std::string &content); +bool extractZipFile(irr::io::IFileSystem *fs, const char *filename, const std::string &destination); + bool ReadFile(const std::string &path, std::string &out); bool Rename(const std::string &from, const std::string &to); diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 91476ada6..ea6e44ab7 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -8,6 +8,7 @@ set(gui_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/guiButtonItemImage.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiChatConsole.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiConfirmRegistration.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/guiEditBox.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiEditBoxWithScrollbar.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiEngine.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiFormSpecMenu.cpp @@ -23,7 +24,6 @@ set(gui_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/guiTable.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiHyperText.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiVolumeChange.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/intlGUIEditBox.cpp ${CMAKE_CURRENT_SOURCE_DIR}/modalMenu.cpp ${CMAKE_CURRENT_SOURCE_DIR}/profilergraph.cpp PARENT_SCOPE diff --git a/src/gui/StyleSpec.h b/src/gui/StyleSpec.h index f2844ce28..fc92a861b 100644 --- a/src/gui/StyleSpec.h +++ b/src/gui/StyleSpec.h @@ -55,6 +55,8 @@ public: BORDERCOLORS, BORDERWIDTHS, SOUND, + SPACING, + SIZE, NUM_PROPERTIES, NONE }; @@ -119,6 +121,10 @@ public: return BORDERWIDTHS; } else if (name == "sound") { return SOUND; + } else if (name == "spacing") { + return SPACING; + } else if (name == "size") { + return SIZE; } else { return NONE; } @@ -259,27 +265,40 @@ public: return rect; } - irr::core::vector2d getVector2i(Property prop, irr::core::vector2d def) const + v2f32 getVector2f(Property prop, v2f32 def) const { const auto &val = properties[prop]; if (val.empty()) return def; - irr::core::vector2d vec; - if (!parseVector2i(val, &vec)) + v2f32 vec; + if (!parseVector2f(val, &vec)) return def; return vec; } - irr::core::vector2d getVector2i(Property prop) const + v2s32 getVector2i(Property prop, v2s32 def) const + { + const auto &val = properties[prop]; + if (val.empty()) + return def; + + v2f32 vec; + if (!parseVector2f(val, &vec)) + return def; + + return v2s32(vec.X, vec.Y); + } + + v2s32 getVector2i(Property prop) const { const auto &val = properties[prop]; FATAL_ERROR_IF(val.empty(), "Unexpected missing property"); - irr::core::vector2d vec; - parseVector2i(val, &vec); - return vec; + v2f32 vec; + parseVector2f(val, &vec); + return v2s32(vec.X, vec.Y); } gui::IGUIFont *getFont() const @@ -432,22 +451,20 @@ private: return true; } - bool parseVector2i(const std::string &value, irr::core::vector2d *parsed_vec) const + bool parseVector2f(const std::string &value, v2f32 *parsed_vec) const { - irr::core::vector2d vec; + v2f32 vec; std::vector v_vector = split(value, ','); if (v_vector.size() == 1) { - s32 x = stoi(v_vector[0]); + f32 x = stof(v_vector[0]); vec.X = x; vec.Y = x; } else if (v_vector.size() == 2) { - s32 x = stoi(v_vector[0]); - s32 y = stoi(v_vector[1]); - vec.X = x; - vec.Y = y; + vec.X = stof(v_vector[0]); + vec.Y = stof(v_vector[1]); } else { - warningstream << "Invalid vector2d string format: \"" << value + warningstream << "Invalid 2d vector string format: \"" << value << "\"" << std::endl; return false; } diff --git a/src/gui/cheatMenu.cpp b/src/gui/cheatMenu.cpp index 94a4e9a1a..1d73247c6 100644 --- a/src/gui/cheatMenu.cpp +++ b/src/gui/cheatMenu.cpp @@ -30,7 +30,7 @@ FontMode CheatMenu::fontStringToEnum(std::string str) else if (str == "FM_Mono") return FM_Mono; else if (str == "FM_Fallback") - return FM_Fallback; + return _FM_Fallback; else if (str == "FM_Simple") return FM_Simple; else if (str == "FM_SimpleMono") @@ -68,6 +68,10 @@ CheatMenu::CheatMenu(Client *client) : m_client(client) selected_font_color.X, selected_font_color.Y, selected_font_color.Z); + m_head_height = g_settings->getU32("cheat_menu_head_height"); + m_entry_height = g_settings->getU32("cheat_menu_entry_height"); + m_entry_width = g_settings->getU32("cheat_menu_entry_width"); + m_font = g_fontengine->getFont(FONT_SIZE_UNSPECIFIED, fontMode); if (!m_font) { @@ -95,15 +99,11 @@ void CheatMenu::drawRect(video::IVideoDriver *driver, std::string name, fontcolor = &m_selected_font_color; driver->draw2DRectangle(*bgcolor, core::rect(x, y, x + width, y + height)); - if (selected) driver->draw2DRectangleOutline( core::rect(x - 1, y - 1, x + width, y + height), *fontcolor); - - int fx = x + 5, - fy = y + (height - m_fontsize.Y) / 2; - + int fx = x + 5, fy = y + (height - m_fontsize.Y) / 2; core::rect fontbounds( fx, fy, fx + m_fontsize.X * name.size(), fy + m_fontsize.Y); m_font->draw(name.c_str(), fontbounds, *fontcolor, false, false); diff --git a/src/gui/guiButton.cpp b/src/gui/guiButton.cpp index b98e5de82..d6dbddf54 100644 --- a/src/gui/guiButton.cpp +++ b/src/gui/guiButton.cpp @@ -506,6 +506,13 @@ video::SColor GUIButton::getOverrideColor() const return OverrideColor; } +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 +video::SColor GUIButton::getActiveColor() const +{ + return video::SColor(0,0,0,0); // unused? +} +#endif + void GUIButton::enableOverrideColor(bool enable) { OverrideColorEnabled = enable; diff --git a/src/gui/guiButton.h b/src/gui/guiButton.h index 4e1b04aac..834405f51 100644 --- a/src/gui/guiButton.h +++ b/src/gui/guiButton.h @@ -69,6 +69,12 @@ using namespace irr; class ISimpleTextureSource; +#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 8) +#define OVERRIDE_19 +#else +#define OVERRIDE_19 override +#endif + class GUIButton : public gui::IGUIButton { public: @@ -97,22 +103,27 @@ public: virtual gui::IGUIFont* getActiveFont() const override; //! Sets another color for the button text. - virtual void setOverrideColor(video::SColor color); + virtual void setOverrideColor(video::SColor color) OVERRIDE_19; //! Gets the override color - virtual video::SColor getOverrideColor(void) const; + virtual video::SColor getOverrideColor(void) const OVERRIDE_19; + + #if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 + //! Gets the currently used text color + virtual video::SColor getActiveColor() const override; + #endif //! Sets if the button text should use the override color or the color in the gui skin. - virtual void enableOverrideColor(bool enable); + virtual void enableOverrideColor(bool enable) OVERRIDE_19; //! Checks if an override color is enabled - virtual bool isOverrideColorEnabled(void) const; + virtual bool isOverrideColorEnabled(void) const OVERRIDE_19; // PATCH //! Sets an image which should be displayed on the button when it is in the given state. virtual void setImage(gui::EGUI_BUTTON_IMAGE_STATE state, video::ITexture* image=nullptr, - const core::rect& sourceRect=core::rect(0,0,0,0)); + const core::rect& sourceRect=core::rect(0,0,0,0)) OVERRIDE_19; //! Sets an image which should be displayed on the button when it is in normal state. virtual void setImage(video::ITexture* image=nullptr) override; @@ -141,7 +152,7 @@ public: */ virtual void setSprite(gui::EGUI_BUTTON_STATE state, s32 index, video::SColor color=video::SColor(255,255,255,255), - bool loop=false, bool scale=false); + bool loop=false, bool scale=false) OVERRIDE_19; #if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 8) void setSprite(gui::EGUI_BUTTON_STATE state, s32 index, video::SColor color, bool loop) override { @@ -150,16 +161,16 @@ public: #endif //! Get the sprite-index for the given state or -1 when no sprite is set - virtual s32 getSpriteIndex(gui::EGUI_BUTTON_STATE state) const; + virtual s32 getSpriteIndex(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Get the sprite color for the given state. Color is only used when a sprite is set. - virtual video::SColor getSpriteColor(gui::EGUI_BUTTON_STATE state) const; + virtual video::SColor getSpriteColor(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Returns if the sprite in the given state does loop - virtual bool getSpriteLoop(gui::EGUI_BUTTON_STATE state) const; + virtual bool getSpriteLoop(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Returns if the sprite in the given state is scaled - virtual bool getSpriteScale(gui::EGUI_BUTTON_STATE state) const; + virtual bool getSpriteScale(gui::EGUI_BUTTON_STATE state) const OVERRIDE_19; //! Sets if the button should behave like a push button. Which means it //! can be in two states: Normal or Pressed. With a click on the button, @@ -199,13 +210,13 @@ public: virtual bool isScalingImage() const override; //! Get if the shift key was pressed in last EGET_BUTTON_CLICKED event - virtual bool getClickShiftState() const + virtual bool getClickShiftState() const OVERRIDE_19 { return ClickShiftState; } //! Get if the control key was pressed in last EGET_BUTTON_CLICKED event - virtual bool getClickControlState() const + virtual bool getClickControlState() const OVERRIDE_19 { return ClickControlState; } diff --git a/src/gui/guiButtonItemImage.cpp b/src/gui/guiButtonItemImage.cpp index d8b9042ac..d9ab4b935 100644 --- a/src/gui/guiButtonItemImage.cpp +++ b/src/gui/guiButtonItemImage.cpp @@ -30,7 +30,7 @@ using namespace gui; GUIButtonItemImage::GUIButtonItemImage(gui::IGUIEnvironment *environment, gui::IGUIElement *parent, s32 id, core::rect rectangle, - ISimpleTextureSource *tsrc, std::string item, Client *client, + ISimpleTextureSource *tsrc, const std::string &item, Client *client, bool noclip) : GUIButton (environment, parent, id, rectangle, tsrc, noclip) { @@ -39,13 +39,12 @@ GUIButtonItemImage::GUIButtonItemImage(gui::IGUIEnvironment *environment, item, getActiveFont(), client); sendToBack(m_image); - m_item_name = item; m_client = client; } GUIButtonItemImage *GUIButtonItemImage::addButton(IGUIEnvironment *environment, const core::rect &rectangle, ISimpleTextureSource *tsrc, - IGUIElement *parent, s32 id, const wchar_t *text, std::string item, + IGUIElement *parent, s32 id, const wchar_t *text, const std::string &item, Client *client) { GUIButtonItemImage *button = new GUIButtonItemImage(environment, diff --git a/src/gui/guiButtonItemImage.h b/src/gui/guiButtonItemImage.h index aad923bda..205e957a7 100644 --- a/src/gui/guiButtonItemImage.h +++ b/src/gui/guiButtonItemImage.h @@ -33,16 +33,15 @@ public: //! constructor GUIButtonItemImage(gui::IGUIEnvironment *environment, gui::IGUIElement *parent, s32 id, core::rect rectangle, ISimpleTextureSource *tsrc, - std::string item, Client *client, bool noclip = false); + const std::string &item, Client *client, bool noclip = false); //! Do not drop returned handle static GUIButtonItemImage *addButton(gui::IGUIEnvironment *environment, const core::rect &rectangle, ISimpleTextureSource *tsrc, - IGUIElement *parent, s32 id, const wchar_t *text, std::string item, - Client *client); + IGUIElement *parent, s32 id, const wchar_t *text, + const std::string &item, Client *client); private: - std::string m_item_name; Client *m_client; GUIItemImage *m_image; }; diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp index ef471106d..baaaea5e8 100644 --- a/src/gui/guiChatConsole.cpp +++ b/src/gui/guiChatConsole.cpp @@ -17,6 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "IrrCompileConfig.h" #include "guiChatConsole.h" #include "chat.h" #include "client/client.h" @@ -326,7 +327,6 @@ void GUIChatConsole::drawText() tmp->draw( fragment.text, destrect, - video::SColor(255, 255, 255, 255), false, false, &AbsoluteClippingRect); @@ -607,13 +607,7 @@ bool GUIChatConsole::OnEvent(const SEvent& event) prompt.nickCompletion(names, backwards); return true; } else if (!iswcntrl(event.KeyInput.Char) && !event.KeyInput.Control) { - #if defined(__linux__) && (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 9) - wchar_t wc = L'_'; - mbtowc( &wc, (char *) &event.KeyInput.Char, sizeof(event.KeyInput.Char) ); - prompt.input(wc); - #else - prompt.input(event.KeyInput.Char); - #endif + prompt.input(event.KeyInput.Char); return true; } } @@ -625,6 +619,13 @@ bool GUIChatConsole::OnEvent(const SEvent& event) m_chat_backend->scroll(rows); } } +#if (IRRLICHT_VERSION_MT_REVISION >= 2) + else if(event.EventType == EET_STRING_INPUT_EVENT) + { + prompt.input(std::wstring(event.StringInput.Str->c_str())); + return true; + } +#endif return Parent ? Parent->OnEvent(event) : false; } diff --git a/src/gui/guiChatConsole.h b/src/gui/guiChatConsole.h index 204f9f9cc..1152f2b2d 100644 --- a/src/gui/guiChatConsole.h +++ b/src/gui/guiChatConsole.h @@ -68,12 +68,12 @@ public: // Irrlicht draw method virtual void draw(); - bool canTakeFocus(gui::IGUIElement* element) { return false; } - virtual bool OnEvent(const SEvent& event); virtual void setVisible(bool visible); + virtual bool acceptsIME() { return true; } + private: void reformatConsole(); void recalculateConsolePosition(); diff --git a/src/gui/guiConfirmRegistration.cpp b/src/gui/guiConfirmRegistration.cpp index 020a2796a..4ca9a64ed 100644 --- a/src/gui/guiConfirmRegistration.cpp +++ b/src/gui/guiConfirmRegistration.cpp @@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include -#include "intlGUIEditBox.h" +#include "guiEditBoxWithScrollbar.h" #include "porting.h" #include "gettext.h" @@ -109,10 +109,9 @@ void GUIConfirmRegistration::regenerateGui(v2u32 screensize) porting::mt_snprintf(info_text_buf, sizeof(info_text_buf), info_text_template.c_str(), m_playername.c_str()); - wchar_t *info_text_buf_wide = utf8_to_wide_c(info_text_buf); - gui::IGUIEditBox *e = new gui::intlGUIEditBox(info_text_buf_wide, true, - Environment, this, ID_intotext, rect2, false, true); - delete[] info_text_buf_wide; + std::wstring info_text_w = utf8_to_wide(info_text_buf); + gui::IGUIEditBox *e = new GUIEditBoxWithScrollBar(info_text_w.c_str(), + true, Environment, this, ID_intotext, rect2, false, true); e->drop(); e->setMultiLine(true); e->setWordWrap(true); @@ -192,8 +191,7 @@ void GUIConfirmRegistration::acceptInput() bool GUIConfirmRegistration::processInput() { - std::wstring m_password_ws = narrow_to_wide(m_password); - if (m_password_ws != m_pass_confirm) { + if (utf8_to_wide(m_password) != m_pass_confirm) { gui::IGUIElement *e = getElementFromId(ID_message); if (e) e->setVisible(true); diff --git a/src/gui/guiEditBox.cpp b/src/gui/guiEditBox.cpp new file mode 100644 index 000000000..ba548aa2d --- /dev/null +++ b/src/gui/guiEditBox.cpp @@ -0,0 +1,901 @@ +/* +Minetest +Copyright (C) 2021 Minetest + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "guiEditBox.h" + +#include "IrrCompileConfig.h" +#include "IGUISkin.h" +#include "IGUIEnvironment.h" +#include "IGUIFont.h" + +#include "porting.h" + +GUIEditBox::~GUIEditBox() +{ + if (m_override_font) + m_override_font->drop(); + + if (m_operator) + m_operator->drop(); + + if (m_vscrollbar) + m_vscrollbar->drop(); +} + +void GUIEditBox::setOverrideFont(IGUIFont *font) +{ + if (m_override_font == font) + return; + + if (m_override_font) + m_override_font->drop(); + + m_override_font = font; + + if (m_override_font) + m_override_font->grab(); + + breakText(); +} + +//! Get the font which is used right now for drawing +IGUIFont *GUIEditBox::getActiveFont() const +{ + if (m_override_font) + return m_override_font; + IGUISkin *skin = Environment->getSkin(); + if (skin) + return skin->getFont(); + return 0; +} + +//! Sets another color for the text. +void GUIEditBox::setOverrideColor(video::SColor color) +{ + m_override_color = color; + m_override_color_enabled = true; +} + +video::SColor GUIEditBox::getOverrideColor() const +{ + return m_override_color; +} + +//! Sets if the text should use the overide color or the color in the gui skin. +void GUIEditBox::enableOverrideColor(bool enable) +{ + m_override_color_enabled = enable; +} + +//! Enables or disables word wrap +void GUIEditBox::setWordWrap(bool enable) +{ + m_word_wrap = enable; + breakText(); +} + +//! Enables or disables newlines. +void GUIEditBox::setMultiLine(bool enable) +{ + m_multiline = enable; +} + +//! Enables or disables automatic scrolling with cursor position +//! \param enable: If set to true, the text will move around with the cursor position +void GUIEditBox::setAutoScroll(bool enable) +{ + m_autoscroll = enable; +} + +void GUIEditBox::setPasswordBox(bool password_box, wchar_t password_char) +{ + m_passwordbox = password_box; + if (m_passwordbox) { + m_passwordchar = password_char; + setMultiLine(false); + setWordWrap(false); + m_broken_text.clear(); + } +} + +//! Sets text justification +void GUIEditBox::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) +{ + m_halign = horizontal; + m_valign = vertical; +} + +//! Sets the new caption of this element. +void GUIEditBox::setText(const wchar_t *text) +{ + Text = text; + if (u32(m_cursor_pos) > Text.size()) + m_cursor_pos = Text.size(); + m_hscroll_pos = 0; + breakText(); +} + +//! Sets the maximum amount of characters which may be entered in the box. +//! \param max: Maximum amount of characters. If 0, the character amount is +//! infinity. +void GUIEditBox::setMax(u32 max) +{ + m_max = max; + + if (Text.size() > m_max && m_max != 0) + Text = Text.subString(0, m_max); +} + +//! Gets the area of the text in the edit box +//! \return Returns the size in pixels of the text +core::dimension2du GUIEditBox::getTextDimension() +{ + core::rect ret; + + setTextRect(0); + ret = m_current_text_rect; + + for (u32 i = 1; i < m_broken_text.size(); ++i) { + setTextRect(i); + ret.addInternalPoint(m_current_text_rect.UpperLeftCorner); + ret.addInternalPoint(m_current_text_rect.LowerRightCorner); + } + + return core::dimension2du(ret.getSize()); +} + +//! Turns the border on or off +void GUIEditBox::setDrawBorder(bool border) +{ + m_border = border; +} + +void GUIEditBox::setWritable(bool can_write_text) +{ + m_writable = can_write_text; +} + +//! set text markers +void GUIEditBox::setTextMarkers(s32 begin, s32 end) +{ + if (begin != m_mark_begin || end != m_mark_end) { + m_mark_begin = begin; + m_mark_end = end; + sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); + } +} + +//! send some gui event to parent +void GUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type) +{ + if (Parent) { + SEvent e; + e.EventType = EET_GUI_EVENT; + e.GUIEvent.Caller = this; + e.GUIEvent.Element = 0; + e.GUIEvent.EventType = type; + + Parent->OnEvent(e); + } +} + +//! called if an event happened. +bool GUIEditBox::OnEvent(const SEvent &event) +{ + if (isEnabled()) { + + switch (event.EventType) { + case EET_GUI_EVENT: + if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) { + if (event.GUIEvent.Caller == this) { + m_mouse_marking = false; + setTextMarkers(0, 0); + } + } + break; + case EET_KEY_INPUT_EVENT: + if (processKey(event)) + return true; + break; + case EET_MOUSE_INPUT_EVENT: + if (processMouse(event)) + return true; + break; +#if (IRRLICHT_VERSION_MT_REVISION >= 2) + case EET_STRING_INPUT_EVENT: + inputString(*event.StringInput.Str); + return true; +#endif + default: + break; + } + } + + return IGUIElement::OnEvent(event); +} + +bool GUIEditBox::processKey(const SEvent &event) +{ + if (!m_writable) { + return false; + } + + if (!event.KeyInput.PressedDown) + return false; + + bool text_changed = false; + s32 new_mark_begin = m_mark_begin; + s32 new_mark_end = m_mark_end; + + // control shortcut handling + if (event.KeyInput.Control) { + + // german backlash '\' entered with control + '?' + if (event.KeyInput.Char == '\\') { + inputChar(event.KeyInput.Char); + return true; + } + + switch (event.KeyInput.Key) { + case KEY_KEY_A: + // select all + new_mark_begin = 0; + new_mark_end = Text.size(); + break; + case KEY_KEY_C: + onKeyControlC(event); + break; + case KEY_KEY_X: + text_changed = onKeyControlX(event, new_mark_begin, new_mark_end); + break; + case KEY_KEY_V: + text_changed = onKeyControlV(event, new_mark_begin, new_mark_end); + break; + case KEY_HOME: + // move/highlight to start of text + if (event.KeyInput.Shift) { + new_mark_end = m_cursor_pos; + new_mark_begin = 0; + m_cursor_pos = 0; + } else { + m_cursor_pos = 0; + new_mark_begin = 0; + new_mark_end = 0; + } + break; + case KEY_END: + // move/highlight to end of text + if (event.KeyInput.Shift) { + new_mark_begin = m_cursor_pos; + new_mark_end = Text.size(); + m_cursor_pos = 0; + } else { + m_cursor_pos = Text.size(); + new_mark_begin = 0; + new_mark_end = 0; + } + break; + default: + return false; + } + } else { + switch (event.KeyInput.Key) { + case KEY_END: { + s32 p = Text.size(); + if (m_word_wrap || m_multiline) { + p = getLineFromPos(m_cursor_pos); + p = m_broken_text_positions[p] + + (s32)m_broken_text[p].size(); + if (p > 0 && (Text[p - 1] == L'\r' || + Text[p - 1] == L'\n')) + p -= 1; + } + + if (event.KeyInput.Shift) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = p; + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + m_cursor_pos = p; + m_blink_start_time = porting::getTimeMs(); + } break; + case KEY_HOME: { + + s32 p = 0; + if (m_word_wrap || m_multiline) { + p = getLineFromPos(m_cursor_pos); + p = m_broken_text_positions[p]; + } + + if (event.KeyInput.Shift) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + new_mark_end = p; + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + m_cursor_pos = p; + m_blink_start_time = porting::getTimeMs(); + } break; + case KEY_RETURN: + if (m_multiline) { + inputChar(L'\n'); + } else { + calculateScrollPos(); + sendGuiEvent(EGET_EDITBOX_ENTER); + } + return true; + case KEY_LEFT: + if (event.KeyInput.Shift) { + if (m_cursor_pos > 0) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = m_cursor_pos - 1; + } + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + + if (m_cursor_pos > 0) + m_cursor_pos--; + m_blink_start_time = porting::getTimeMs(); + break; + case KEY_RIGHT: + if (event.KeyInput.Shift) { + if (Text.size() > (u32)m_cursor_pos) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = m_cursor_pos + 1; + } + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + + if (Text.size() > (u32)m_cursor_pos) + m_cursor_pos++; + m_blink_start_time = porting::getTimeMs(); + break; + case KEY_UP: + if (!onKeyUp(event, new_mark_begin, new_mark_end)) { + return false; + } + break; + case KEY_DOWN: + if (!onKeyDown(event, new_mark_begin, new_mark_end)) { + return false; + } + break; + case KEY_BACK: + text_changed = onKeyBack(event, new_mark_begin, new_mark_end); + break; + + case KEY_DELETE: + text_changed = onKeyDelete(event, new_mark_begin, new_mark_end); + break; + + case KEY_ESCAPE: + case KEY_TAB: + case KEY_SHIFT: + case KEY_F1: + case KEY_F2: + case KEY_F3: + case KEY_F4: + case KEY_F5: + case KEY_F6: + case KEY_F7: + case KEY_F8: + case KEY_F9: + case KEY_F10: + case KEY_F11: + case KEY_F12: + case KEY_F13: + case KEY_F14: + case KEY_F15: + case KEY_F16: + case KEY_F17: + case KEY_F18: + case KEY_F19: + case KEY_F20: + case KEY_F21: + case KEY_F22: + case KEY_F23: + case KEY_F24: + // ignore these keys + return false; + + default: + inputChar(event.KeyInput.Char); + return true; + } + } + + // Set new text markers + setTextMarkers(new_mark_begin, new_mark_end); + + // break the text if it has changed + if (text_changed) { + breakText(); + sendGuiEvent(EGET_EDITBOX_CHANGED); + } + + calculateScrollPos(); + + return true; +} + +bool GUIEditBox::onKeyUp(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // clang-format off + if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { + s32 lineNo = getLineFromPos(m_cursor_pos); + s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : + (m_mark_begin > m_mark_end ? m_mark_begin : m_mark_end); + if (lineNo > 0) { + s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; + if ((s32)m_broken_text[lineNo - 1].size() < cp) { + m_cursor_pos = m_broken_text_positions[lineNo - 1] + + core::max_((u32)1, m_broken_text[lineNo - 1].size()) - 1; + } + else + m_cursor_pos = m_broken_text_positions[lineNo - 1] + cp; + } + + if (event.KeyInput.Shift) { + mark_begin = mb; + mark_end = m_cursor_pos; + } else { + mark_begin = 0; + mark_end = 0; + } + + return true; + } + + // clang-format on + return false; +} + +bool GUIEditBox::onKeyDown(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // clang-format off + if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { + s32 lineNo = getLineFromPos(m_cursor_pos); + s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : + (m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end); + if (lineNo < (s32)m_broken_text.size() - 1) { + s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; + if ((s32)m_broken_text[lineNo + 1].size() < cp) { + m_cursor_pos = m_broken_text_positions[lineNo + 1] + + core::max_((u32)1, m_broken_text[lineNo + 1].size()) - 1; + } + else + m_cursor_pos = m_broken_text_positions[lineNo + 1] + cp; + } + + if (event.KeyInput.Shift) { + mark_begin = mb; + mark_end = m_cursor_pos; + } else { + mark_begin = 0; + mark_end = 0; + } + + return true; + } + + // clang-format on + return false; +} + +void GUIEditBox::onKeyControlC(const SEvent &event) +{ + // copy to clipboard + if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end) + return; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + core::stringc s; + s = Text.subString(realmbgn, realmend - realmbgn).c_str(); + m_operator->copyToClipboard(s.c_str()); +} + +bool GUIEditBox::onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // First copy to clipboard + onKeyControlC(event); + + if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end) + return false; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + // Now remove from box if enabled + if (isEnabled()) { + // delete + core::stringw s; + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + mark_begin = 0; + mark_end = 0; + return true; + } + + return false; +} + +bool GUIEditBox::onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled()) + return false; + + // paste from the clipboard + if (!m_operator) + return false; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + // add new character + if (const c8 *p = m_operator->getTextFromClipboard()) { + if (m_mark_begin == m_mark_end) { + // insert text + core::stringw s = Text.subString(0, m_cursor_pos); + s.append(p); + s.append(Text.subString( + m_cursor_pos, Text.size() - m_cursor_pos)); + + if (!m_max || s.size() <= m_max) { + Text = s; + s = p; + m_cursor_pos += s.size(); + } + } else { + // replace text + + core::stringw s = Text.subString(0, realmbgn); + s.append(p); + s.append(Text.subString(realmend, Text.size() - realmend)); + + if (!m_max || s.size() <= m_max) { + Text = s; + s = p; + m_cursor_pos = realmbgn + s.size(); + } + } + } + + mark_begin = 0; + mark_end = 0; + return true; +} + +bool GUIEditBox::onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled() || Text.empty()) + return false; + + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // delete marked text + const s32 realmbgn = + m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = + m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + } else { + // delete text behind cursor + if (m_cursor_pos > 0) + s = Text.subString(0, m_cursor_pos - 1); + else + s = L""; + s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); + Text = s; + --m_cursor_pos; + } + + if (m_cursor_pos < 0) + m_cursor_pos = 0; + m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); + mark_begin = 0; + mark_end = 0; + return true; +} + +bool GUIEditBox::onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled() || Text.empty()) + return false; + + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // delete marked text + const s32 realmbgn = + m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = + m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + } else { + // delete text before cursor + s = Text.subString(0, m_cursor_pos); + s.append(Text.subString( + m_cursor_pos + 1, Text.size() - m_cursor_pos - 1)); + Text = s; + } + + if (m_cursor_pos > (s32)Text.size()) + m_cursor_pos = (s32)Text.size(); + + m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); + mark_begin = 0; + mark_end = 0; + return true; +} + +void GUIEditBox::inputChar(wchar_t c) +{ + if (c == 0) + return; + core::stringw s(&c, 1); + inputString(s); +} + +void GUIEditBox::inputString(const core::stringw &str) +{ + if (!isEnabled() || !m_writable) + return; + + u32 len = str.size(); + if (Text.size()+len <= m_max || m_max == 0) { + core::stringw s; + if (m_mark_begin != m_mark_end) { + // replace marked text + s32 real_begin = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + s32 real_end = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, real_begin); + s.append(str); + s.append(Text.subString(real_end, Text.size() - real_end)); + Text = s; + m_cursor_pos = real_begin + len; + } else { + // append string + s = Text.subString(0, m_cursor_pos); + s.append(str); + s.append(Text.subString(m_cursor_pos, + Text.size() - m_cursor_pos)); + Text = s; + m_cursor_pos += len; + } + + m_blink_start_time = porting::getTimeMs(); + setTextMarkers(0, 0); + } + + breakText(); + sendGuiEvent(EGET_EDITBOX_CHANGED); + calculateScrollPos(); +} + +bool GUIEditBox::processMouse(const SEvent &event) +{ + switch (event.MouseInput.Event) { + case irr::EMIE_LMOUSE_LEFT_UP: + if (Environment->hasFocus(this)) { + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + if (m_mouse_marking) { + setTextMarkers(m_mark_begin, m_cursor_pos); + } + m_mouse_marking = false; + calculateScrollPos(); + return true; + } + break; + case irr::EMIE_MOUSE_MOVED: { + if (m_mouse_marking) { + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + setTextMarkers(m_mark_begin, m_cursor_pos); + calculateScrollPos(); + return true; + } + } break; + case EMIE_LMOUSE_PRESSED_DOWN: + + if (!Environment->hasFocus(this)) { + m_blink_start_time = porting::getTimeMs(); + m_mouse_marking = true; + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + setTextMarkers(m_cursor_pos, m_cursor_pos); + calculateScrollPos(); + return true; + } else { + if (!AbsoluteClippingRect.isPointInside(core::position2d( + event.MouseInput.X, event.MouseInput.Y))) { + return false; + } else { + // move cursor + m_cursor_pos = getCursorPos( + event.MouseInput.X, event.MouseInput.Y); + + s32 newMarkBegin = m_mark_begin; + if (!m_mouse_marking) + newMarkBegin = m_cursor_pos; + + m_mouse_marking = true; + setTextMarkers(newMarkBegin, m_cursor_pos); + calculateScrollPos(); + return true; + } + } + case EMIE_MOUSE_WHEEL: + if (m_vscrollbar && m_vscrollbar->isVisible()) { + s32 pos = m_vscrollbar->getPos(); + s32 step = m_vscrollbar->getSmallStep(); + m_vscrollbar->setPos(pos - event.MouseInput.Wheel * step); + return true; + } + break; + default: + break; + } + + return false; +} + +s32 GUIEditBox::getLineFromPos(s32 pos) +{ + if (!m_word_wrap && !m_multiline) + return 0; + + s32 i = 0; + while (i < (s32)m_broken_text_positions.size()) { + if (m_broken_text_positions[i] > pos) + return i - 1; + ++i; + } + return (s32)m_broken_text_positions.size() - 1; +} + +void GUIEditBox::updateVScrollBar() +{ + if (!m_vscrollbar) { + return; + } + + // OnScrollBarChanged(...) + if (m_vscrollbar->getPos() != m_vscroll_pos) { + s32 deltaScrollY = m_vscrollbar->getPos() - m_vscroll_pos; + m_current_text_rect.UpperLeftCorner.Y -= deltaScrollY; + m_current_text_rect.LowerRightCorner.Y -= deltaScrollY; + + s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); + if (scrollymax != m_vscrollbar->getMax()) { + // manage a newline or a deleted line + m_vscrollbar->setMax(scrollymax); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); + calculateScrollPos(); + } else { + // manage a newline or a deleted line + m_vscroll_pos = m_vscrollbar->getPos(); + } + } + + // check if a vertical scrollbar is needed ? + if (getTextDimension().Height > (u32)m_frame_rect.getHeight()) { + m_frame_rect.LowerRightCorner.X -= m_scrollbar_width; + + s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); + if (scrollymax != m_vscrollbar->getMax()) { + m_vscrollbar->setMax(scrollymax); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); + } + + if (!m_vscrollbar->isVisible()) { + m_vscrollbar->setVisible(true); + } + } else { + if (m_vscrollbar->isVisible()) { + m_vscrollbar->setVisible(false); + m_vscroll_pos = 0; + m_vscrollbar->setPos(0); + m_vscrollbar->setMax(1); + m_vscrollbar->setPageSize(s32(getTextDimension().Height)); + } + } +} + +void GUIEditBox::deserializeAttributes( + io::IAttributes *in, io::SAttributeReadWriteOptions *options = 0) +{ + IGUIEditBox::deserializeAttributes(in, options); + + setOverrideColor(in->getAttributeAsColor("OverrideColor")); + enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); + setMax(in->getAttributeAsInt("MaxChars")); + setWordWrap(in->getAttributeAsBool("WordWrap")); + setMultiLine(in->getAttributeAsBool("MultiLine")); + setAutoScroll(in->getAttributeAsBool("AutoScroll")); + core::stringw ch = in->getAttributeAsStringW("PasswordChar"); + + if (ch.empty()) + setPasswordBox(in->getAttributeAsBool("PasswordBox")); + else + setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]); + + setTextAlignment((EGUI_ALIGNMENT)in->getAttributeAsEnumeration( + "HTextAlign", GUIAlignmentNames), + (EGUI_ALIGNMENT)in->getAttributeAsEnumeration( + "VTextAlign", GUIAlignmentNames)); + + setWritable(in->getAttributeAsBool("Writable")); + // setOverrideFont(in->getAttributeAsFont("OverrideFont")); +} + +//! Writes attributes of the element. +void GUIEditBox::serializeAttributes( + io::IAttributes *out, io::SAttributeReadWriteOptions *options = 0) const +{ + // IGUIEditBox::serializeAttributes(out,options); + + out->addBool("OverrideColorEnabled", m_override_color_enabled); + out->addColor("OverrideColor", m_override_color); + // out->addFont("OverrideFont",m_override_font); + out->addInt("MaxChars", m_max); + out->addBool("WordWrap", m_word_wrap); + out->addBool("MultiLine", m_multiline); + out->addBool("AutoScroll", m_autoscroll); + out->addBool("PasswordBox", m_passwordbox); + core::stringw ch = L" "; + ch[0] = m_passwordchar; + out->addString("PasswordChar", ch.c_str()); + out->addEnum("HTextAlign", m_halign, GUIAlignmentNames); + out->addEnum("VTextAlign", m_valign, GUIAlignmentNames); + out->addBool("Writable", m_writable); + + IGUIEditBox::serializeAttributes(out, options); +} diff --git a/src/gui/guiEditBox.h b/src/gui/guiEditBox.h new file mode 100644 index 000000000..2a5c911bc --- /dev/null +++ b/src/gui/guiEditBox.h @@ -0,0 +1,223 @@ +/* +Minetest +Copyright (C) 2021 Minetest + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#pragma once + +#include "irrlichttypes.h" +#include "IGUIEditBox.h" +#include "IOSOperator.h" +#include "guiScrollBar.h" +#include + +using namespace irr; +using namespace irr::gui; + +class GUIEditBox : public IGUIEditBox +{ +public: + GUIEditBox(IGUIEnvironment *environment, IGUIElement *parent, s32 id, + core::rect rectangle, bool border, bool writable) : + IGUIEditBox(environment, parent, id, rectangle), + m_border(border), m_writable(writable), m_frame_rect(rectangle) + { + } + + virtual ~GUIEditBox(); + + //! Sets another skin independent font. + virtual void setOverrideFont(IGUIFont *font = 0); + + virtual IGUIFont *getOverrideFont() const { return m_override_font; } + + //! Get the font which is used right now for drawing + /** Currently this is the override font when one is set and the + font of the active skin otherwise */ + virtual IGUIFont *getActiveFont() const; + + //! Sets another color for the text. + virtual void setOverrideColor(video::SColor color); + + //! Gets the override color + virtual video::SColor getOverrideColor() const; + + //! Sets if the text should use the overide color or the + //! color in the gui skin. + virtual void enableOverrideColor(bool enable); + + //! Checks if an override color is enabled + /** \return true if the override color is enabled, false otherwise */ + virtual bool isOverrideColorEnabled(void) const + { + return m_override_color_enabled; + } + + //! Enables or disables word wrap for using the edit box as multiline text editor. + virtual void setWordWrap(bool enable); + + //! Checks if word wrap is enabled + //! \return true if word wrap is enabled, false otherwise + virtual bool isWordWrapEnabled() const { return m_word_wrap; } + + //! Turns the border on or off + virtual void setDrawBorder(bool border); + + virtual bool isDrawBorderEnabled() const { return m_border; } + + //! Enables or disables newlines. + /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired, + instead a newline character will be inserted. */ + virtual void setMultiLine(bool enable); + + //! Checks if multi line editing is enabled + //! \return true if mult-line is enabled, false otherwise + virtual bool isMultiLineEnabled() const { return m_multiline; } + + //! Enables or disables automatic scrolling with cursor position + //! \param enable: If set to true, the text will move around with the cursor + //! position + virtual void setAutoScroll(bool enable); + + //! Checks to see if automatic scrolling is enabled + //! \return true if automatic scrolling is enabled, false if not + virtual bool isAutoScrollEnabled() const { return m_autoscroll; } + + //! Sets whether the edit box is a password box. Setting this to true will + /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x + \param passwordBox: true to enable password, false to disable + \param passwordChar: the character that is displayed instead of letters */ + virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*'); + + //! Returns true if the edit box is currently a password box. + virtual bool isPasswordBox() const { return m_passwordbox; } + + //! Sets text justification + virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical); + + //! Sets the new caption of this element. + virtual void setText(const wchar_t *text); + + //! Sets the maximum amount of characters which may be entered in the box. + //! \param max: Maximum amount of characters. If 0, the character amount is + //! infinity. + virtual void setMax(u32 max); + + //! Returns maximum amount of characters, previously set by setMax(); + virtual u32 getMax() const { return m_max; } + + //! Gets the size area of the text in the edit box + //! \return Returns the size in pixels of the text + virtual core::dimension2du getTextDimension(); + + //! set true if this EditBox is writable + virtual void setWritable(bool can_write_text); + + //! called if an event happened. + virtual bool OnEvent(const SEvent &event); + + //! Writes attributes of the element. + virtual void serializeAttributes(io::IAttributes *out, + io::SAttributeReadWriteOptions *options) const; + + //! Reads attributes of the element + virtual void deserializeAttributes( + io::IAttributes *in, io::SAttributeReadWriteOptions *options); + + virtual bool acceptsIME() { return isEnabled() && m_writable; }; + +protected: + virtual void breakText() = 0; + + //! sets the area of the given line + virtual void setTextRect(s32 line) = 0; + + //! set text markers + void setTextMarkers(s32 begin, s32 end); + + //! send some gui event to parent + void sendGuiEvent(EGUI_EVENT_TYPE type); + + //! calculates the current scroll position + virtual void calculateScrollPos() = 0; + + virtual s32 getCursorPos(s32 x, s32 y) = 0; + + bool processKey(const SEvent &event); + virtual void inputString(const core::stringw &str); + virtual void inputChar(wchar_t c); + + //! returns the line number that the cursor is on + s32 getLineFromPos(s32 pos); + + //! update the vertical scrollBar (visibilty & position) + void updateVScrollBar(); + + gui::IGUIFont *m_override_font = nullptr; + + bool m_override_color_enabled = false; + bool m_word_wrap = false; + bool m_multiline = false; + bool m_autoscroll = true; + + bool m_border; + + bool m_passwordbox = false; + wchar_t m_passwordchar = L'*'; + + std::vector m_broken_text; + std::vector m_broken_text_positions; + + EGUI_ALIGNMENT m_halign = EGUIA_UPPERLEFT; + EGUI_ALIGNMENT m_valign = EGUIA_CENTER; + + u32 m_blink_start_time = 0; + s32 m_cursor_pos = 0; + s32 m_hscroll_pos = 0; + s32 m_vscroll_pos = 0; // scroll position in characters + u32 m_max = 0; + + video::SColor m_override_color = video::SColor(101, 255, 255, 255); + + core::rect m_current_text_rect = core::rect(0, 0, 1, 1); + + bool m_writable; + + bool m_mouse_marking = false; + + s32 m_mark_begin = 0; + s32 m_mark_end = 0; + + gui::IGUIFont *m_last_break_font = nullptr; + IOSOperator *m_operator = nullptr; + + core::rect m_frame_rect; // temporary values + + u32 m_scrollbar_width = 0; + GUIScrollBar *m_vscrollbar = nullptr; + +private: + bool processMouse(const SEvent &event); + + bool onKeyUp(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyDown(const SEvent &event, s32 &mark_begin, s32 &mark_end); + void onKeyControlC(const SEvent &event); + bool onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end); + bool onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end); +}; diff --git a/src/gui/guiEditBoxWithScrollbar.cpp b/src/gui/guiEditBoxWithScrollbar.cpp index 169425a9a..c72070787 100644 --- a/src/gui/guiEditBoxWithScrollbar.cpp +++ b/src/gui/guiEditBoxWithScrollbar.cpp @@ -22,20 +22,12 @@ optional? dragging selected text numerical */ - //! constructor GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool border, IGUIEnvironment* environment, IGUIElement* parent, s32 id, const core::rect& rectangle, bool writable, bool has_vscrollbar) - : IGUIEditBox(environment, parent, id, rectangle), m_mouse_marking(false), - m_border(border), m_background(true), m_override_color_enabled(false), m_mark_begin(0), m_mark_end(0), - m_override_color(video::SColor(101, 255, 255, 255)), m_override_font(0), m_last_break_font(0), - m_operator(0), m_blink_start_time(0), m_cursor_pos(0), m_hscroll_pos(0), m_vscroll_pos(0), m_max(0), - m_word_wrap(false), m_multiline(false), m_autoscroll(true), m_passwordbox(false), - m_passwordchar(L'*'), m_halign(EGUIA_UPPERLEFT), m_valign(EGUIA_CENTER), - m_current_text_rect(0, 0, 1, 1), m_frame_rect(rectangle), - m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable), - m_bg_color_used(false) + : GUIEditBox(environment, parent, id, rectangle, border, writable), + m_background(true), m_bg_color_used(false) { #ifdef _DEBUG setDebugName("GUIEditBoxWithScrollBar"); @@ -65,99 +57,12 @@ GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool borde setWritable(writable); } - -//! destructor -GUIEditBoxWithScrollBar::~GUIEditBoxWithScrollBar() -{ - if (m_override_font) - m_override_font->drop(); - - if (m_operator) - m_operator->drop(); - - if (m_vscrollbar) - m_vscrollbar->drop(); -} - - -//! Sets another skin independent font. -void GUIEditBoxWithScrollBar::setOverrideFont(IGUIFont* font) -{ - if (m_override_font == font) - return; - - if (m_override_font) - m_override_font->drop(); - - m_override_font = font; - - if (m_override_font) - m_override_font->grab(); - - breakText(); -} - -//! Gets the override font (if any) -IGUIFont * GUIEditBoxWithScrollBar::getOverrideFont() const -{ - return m_override_font; -} - -//! Get the font which is used right now for drawing -IGUIFont* GUIEditBoxWithScrollBar::getActiveFont() const -{ - if (m_override_font) - return m_override_font; - IGUISkin* skin = Environment->getSkin(); - if (skin) - return skin->getFont(); - return 0; -} - -//! Sets another color for the text. -void GUIEditBoxWithScrollBar::setOverrideColor(video::SColor color) -{ - m_override_color = color; - m_override_color_enabled = true; -} - - -video::SColor GUIEditBoxWithScrollBar::getOverrideColor() const -{ - return m_override_color; -} - - -//! Turns the border on or off -void GUIEditBoxWithScrollBar::setDrawBorder(bool border) -{ - m_border = border; -} - //! Sets whether to draw the background void GUIEditBoxWithScrollBar::setDrawBackground(bool draw) { m_background = draw; } -//! Sets if the text should use the overide color or the color in the gui skin. -void GUIEditBoxWithScrollBar::enableOverrideColor(bool enable) -{ - m_override_color_enabled = enable; -} - -bool GUIEditBoxWithScrollBar::isOverrideColorEnabled() const -{ - return m_override_color_enabled; -} - -//! Enables or disables word wrap -void GUIEditBoxWithScrollBar::setWordWrap(bool enable) -{ - m_word_wrap = enable; - breakText(); -} - void GUIEditBoxWithScrollBar::updateAbsolutePosition() { @@ -170,486 +75,6 @@ void GUIEditBoxWithScrollBar::updateAbsolutePosition() } } -//! Checks if word wrap is enabled -bool GUIEditBoxWithScrollBar::isWordWrapEnabled() const -{ - return m_word_wrap; -} - - -//! Enables or disables newlines. -void GUIEditBoxWithScrollBar::setMultiLine(bool enable) -{ - m_multiline = enable; -} - - -//! Checks if multi line editing is enabled -bool GUIEditBoxWithScrollBar::isMultiLineEnabled() const -{ - return m_multiline; -} - - -void GUIEditBoxWithScrollBar::setPasswordBox(bool password_box, wchar_t password_char) -{ - m_passwordbox = password_box; - if (m_passwordbox) { - m_passwordchar = password_char; - setMultiLine(false); - setWordWrap(false); - m_broken_text.clear(); - } -} - - -bool GUIEditBoxWithScrollBar::isPasswordBox() const -{ - return m_passwordbox; -} - - -//! Sets text justification -void GUIEditBoxWithScrollBar::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) -{ - m_halign = horizontal; - m_valign = vertical; -} - - -//! called if an event happened. -bool GUIEditBoxWithScrollBar::OnEvent(const SEvent& event) -{ - if (isEnabled()) { - switch (event.EventType) - { - case EET_GUI_EVENT: - if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) { - if (event.GUIEvent.Caller == this) { - m_mouse_marking = false; - setTextMarkers(0, 0); - } - } - break; - case EET_KEY_INPUT_EVENT: - if (processKey(event)) - return true; - break; - case EET_MOUSE_INPUT_EVENT: - if (processMouse(event)) - return true; - break; - default: - break; - } - } - - return IGUIElement::OnEvent(event); -} - - -bool GUIEditBoxWithScrollBar::processKey(const SEvent& event) -{ - if (!m_writable) { - return false; - } - - if (!event.KeyInput.PressedDown) - return false; - - bool text_changed = false; - s32 new_mark_begin = m_mark_begin; - s32 new_mark_end = m_mark_end; - - // control shortcut handling - - if (event.KeyInput.Control) { - - // german backlash '\' entered with control + '?' - if (event.KeyInput.Char == '\\') { - inputChar(event.KeyInput.Char); - return true; - } - - switch (event.KeyInput.Key) { - case KEY_KEY_A: - // select all - new_mark_begin = 0; - new_mark_end = Text.size(); - break; - case KEY_KEY_C: - // copy to clipboard - if (!m_passwordbox && m_operator && m_mark_begin != m_mark_end) - { - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - core::stringc s; - s = Text.subString(realmbgn, realmend - realmbgn).c_str(); - m_operator->copyToClipboard(s.c_str()); - } - break; - case KEY_KEY_X: - // cut to the clipboard - if (!m_passwordbox && m_operator && m_mark_begin != m_mark_end) { - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - // copy - core::stringc sc; - sc = Text.subString(realmbgn, realmend - realmbgn).c_str(); - m_operator->copyToClipboard(sc.c_str()); - - if (isEnabled()) - { - // delete - core::stringw s; - s = Text.subString(0, realmbgn); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - - m_cursor_pos = realmbgn; - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - } - break; - case KEY_KEY_V: - if (!isEnabled()) - break; - - // paste from the clipboard - if (m_operator) { - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - // add new character - const c8* p = m_operator->getTextFromClipboard(); - if (p) { - if (m_mark_begin == m_mark_end) { - // insert text - core::stringw s = Text.subString(0, m_cursor_pos); - s.append(p); - s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); - - if (!m_max || s.size() <= m_max) // thx to Fish FH for fix - { - Text = s; - s = p; - m_cursor_pos += s.size(); - } - } else { - // replace text - - core::stringw s = Text.subString(0, realmbgn); - s.append(p); - s.append(Text.subString(realmend, Text.size() - realmend)); - - if (!m_max || s.size() <= m_max) // thx to Fish FH for fix - { - Text = s; - s = p; - m_cursor_pos = realmbgn + s.size(); - } - } - } - - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - break; - case KEY_HOME: - // move/highlight to start of text - if (event.KeyInput.Shift) { - new_mark_end = m_cursor_pos; - new_mark_begin = 0; - m_cursor_pos = 0; - } else { - m_cursor_pos = 0; - new_mark_begin = 0; - new_mark_end = 0; - } - break; - case KEY_END: - // move/highlight to end of text - if (event.KeyInput.Shift) { - new_mark_begin = m_cursor_pos; - new_mark_end = Text.size(); - m_cursor_pos = 0; - } else { - m_cursor_pos = Text.size(); - new_mark_begin = 0; - new_mark_end = 0; - } - break; - default: - return false; - } - } - // default keyboard handling - else - switch (event.KeyInput.Key) { - case KEY_END: - { - s32 p = Text.size(); - if (m_word_wrap || m_multiline) { - p = getLineFromPos(m_cursor_pos); - p = m_broken_text_positions[p] + (s32)m_broken_text[p].size(); - if (p > 0 && (Text[p - 1] == L'\r' || Text[p - 1] == L'\n')) - p -= 1; - } - - if (event.KeyInput.Shift) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - - new_mark_end = p; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - m_cursor_pos = p; - m_blink_start_time = porting::getTimeMs(); - } - break; - case KEY_HOME: - { - - s32 p = 0; - if (m_word_wrap || m_multiline) { - p = getLineFromPos(m_cursor_pos); - p = m_broken_text_positions[p]; - } - - if (event.KeyInput.Shift) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - new_mark_end = p; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - m_cursor_pos = p; - m_blink_start_time = porting::getTimeMs(); - } - break; - case KEY_RETURN: - if (m_multiline) { - inputChar(L'\n'); - } else { - calculateScrollPos(); - sendGuiEvent(EGET_EDITBOX_ENTER); - } - return true; - case KEY_LEFT: - - if (event.KeyInput.Shift) { - if (m_cursor_pos > 0) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - - new_mark_end = m_cursor_pos - 1; - } - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - - if (m_cursor_pos > 0) - m_cursor_pos--; - m_blink_start_time = porting::getTimeMs(); - break; - - case KEY_RIGHT: - if (event.KeyInput.Shift) { - if (Text.size() > (u32)m_cursor_pos) { - if (m_mark_begin == m_mark_end) - new_mark_begin = m_cursor_pos; - - new_mark_end = m_cursor_pos + 1; - } - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - - if (Text.size() > (u32)m_cursor_pos) - m_cursor_pos++; - m_blink_start_time = porting::getTimeMs(); - break; - case KEY_UP: - if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { - s32 lineNo = getLineFromPos(m_cursor_pos); - s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : (m_mark_begin > m_mark_end ? m_mark_begin : m_mark_end); - if (lineNo > 0) { - s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; - if ((s32)m_broken_text[lineNo - 1].size() < cp) - m_cursor_pos = m_broken_text_positions[lineNo - 1] + core::max_((u32)1, m_broken_text[lineNo - 1].size()) - 1; - else - m_cursor_pos = m_broken_text_positions[lineNo - 1] + cp; - } - - if (event.KeyInput.Shift) { - new_mark_begin = mb; - new_mark_end = m_cursor_pos; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - } else { - return false; - } - break; - case KEY_DOWN: - if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { - s32 lineNo = getLineFromPos(m_cursor_pos); - s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : (m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end); - if (lineNo < (s32)m_broken_text.size() - 1) - { - s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; - if ((s32)m_broken_text[lineNo + 1].size() < cp) - m_cursor_pos = m_broken_text_positions[lineNo + 1] + core::max_((u32)1, m_broken_text[lineNo + 1].size()) - 1; - else - m_cursor_pos = m_broken_text_positions[lineNo + 1] + cp; - } - - if (event.KeyInput.Shift) { - new_mark_begin = mb; - new_mark_end = m_cursor_pos; - } else { - new_mark_begin = 0; - new_mark_end = 0; - } - - } else { - return false; - } - break; - - case KEY_BACK: - if (!isEnabled()) - break; - - if (Text.size()) { - core::stringw s; - - if (m_mark_begin != m_mark_end) { - // delete marked text - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - s = Text.subString(0, realmbgn); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - - m_cursor_pos = realmbgn; - } else { - // delete text behind cursor - if (m_cursor_pos > 0) - s = Text.subString(0, m_cursor_pos - 1); - else - s = L""; - s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); - Text = s; - --m_cursor_pos; - } - - if (m_cursor_pos < 0) - m_cursor_pos = 0; - m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - break; - case KEY_DELETE: - if (!isEnabled()) - break; - - if (Text.size() != 0) { - core::stringw s; - - if (m_mark_begin != m_mark_end) { - // delete marked text - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - s = Text.subString(0, realmbgn); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - - m_cursor_pos = realmbgn; - } else { - // delete text before cursor - s = Text.subString(0, m_cursor_pos); - s.append(Text.subString(m_cursor_pos + 1, Text.size() - m_cursor_pos - 1)); - Text = s; - } - - if (m_cursor_pos > (s32)Text.size()) - m_cursor_pos = (s32)Text.size(); - - m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); - new_mark_begin = 0; - new_mark_end = 0; - text_changed = true; - } - break; - - case KEY_ESCAPE: - case KEY_TAB: - case KEY_SHIFT: - case KEY_F1: - case KEY_F2: - case KEY_F3: - case KEY_F4: - case KEY_F5: - case KEY_F6: - case KEY_F7: - case KEY_F8: - case KEY_F9: - case KEY_F10: - case KEY_F11: - case KEY_F12: - case KEY_F13: - case KEY_F14: - case KEY_F15: - case KEY_F16: - case KEY_F17: - case KEY_F18: - case KEY_F19: - case KEY_F20: - case KEY_F21: - case KEY_F22: - case KEY_F23: - case KEY_F24: - // ignore these keys - return false; - - default: - inputChar(event.KeyInput.Char); - return true; - } - - // Set new text markers - setTextMarkers(new_mark_begin, new_mark_end); - - // break the text if it has changed - if (text_changed) { - breakText(); - calculateScrollPos(); - sendGuiEvent(EGET_EDITBOX_CHANGED); - } - else - { - calculateScrollPos(); - } - - return true; -} - //! draws the element and its children void GUIEditBoxWithScrollBar::draw() @@ -839,131 +264,6 @@ void GUIEditBoxWithScrollBar::draw() } -//! Sets the new caption of this element. -void GUIEditBoxWithScrollBar::setText(const wchar_t* text) -{ - Text = text; - if (u32(m_cursor_pos) > Text.size()) - m_cursor_pos = Text.size(); - m_hscroll_pos = 0; - breakText(); -} - - -//! Enables or disables automatic scrolling with cursor position -//! \param enable: If set to true, the text will move around with the cursor position -void GUIEditBoxWithScrollBar::setAutoScroll(bool enable) -{ - m_autoscroll = enable; -} - - -//! Checks to see if automatic scrolling is enabled -//! \return true if automatic scrolling is enabled, false if not -bool GUIEditBoxWithScrollBar::isAutoScrollEnabled() const -{ - return m_autoscroll; -} - - -//! Gets the area of the text in the edit box -//! \return Returns the size in pixels of the text -core::dimension2du GUIEditBoxWithScrollBar::getTextDimension() -{ - core::rect ret; - - setTextRect(0); - ret = m_current_text_rect; - - for (u32 i = 1; i < m_broken_text.size(); ++i) { - setTextRect(i); - ret.addInternalPoint(m_current_text_rect.UpperLeftCorner); - ret.addInternalPoint(m_current_text_rect.LowerRightCorner); - } - - return core::dimension2du(ret.getSize()); -} - - -//! Sets the maximum amount of characters which may be entered in the box. -//! \param max: Maximum amount of characters. If 0, the character amount is -//! infinity. -void GUIEditBoxWithScrollBar::setMax(u32 max) -{ - m_max = max; - - if (Text.size() > m_max && m_max != 0) - Text = Text.subString(0, m_max); -} - - -//! Returns maximum amount of characters, previously set by setMax(); -u32 GUIEditBoxWithScrollBar::getMax() const -{ - return m_max; -} - - -bool GUIEditBoxWithScrollBar::processMouse(const SEvent& event) -{ - switch (event.MouseInput.Event) - { - case irr::EMIE_LMOUSE_LEFT_UP: - if (Environment->hasFocus(this)) { - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - if (m_mouse_marking) { - setTextMarkers(m_mark_begin, m_cursor_pos); - } - m_mouse_marking = false; - calculateScrollPos(); - return true; - } - break; - case irr::EMIE_MOUSE_MOVED: - { - if (m_mouse_marking) { - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers(m_mark_begin, m_cursor_pos); - calculateScrollPos(); - return true; - } - } - break; - case EMIE_LMOUSE_PRESSED_DOWN: - - if (!Environment->hasFocus(this)) { - m_blink_start_time = porting::getTimeMs(); - m_mouse_marking = true; - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers(m_cursor_pos, m_cursor_pos); - calculateScrollPos(); - return true; - } else { - if (!AbsoluteClippingRect.isPointInside( - core::position2d(event.MouseInput.X, event.MouseInput.Y))) { - return false; - } else { - // move cursor - m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - - s32 newMarkBegin = m_mark_begin; - if (!m_mouse_marking) - newMarkBegin = m_cursor_pos; - - m_mouse_marking = true; - setTextMarkers(newMarkBegin, m_cursor_pos); - calculateScrollPos(); - return true; - } - } - default: - break; - } - - return false; -} - - s32 GUIEditBoxWithScrollBar::getCursorPos(s32 x, s32 y) { IGUIFont* font = getActiveFont(); @@ -1181,59 +481,6 @@ void GUIEditBoxWithScrollBar::setTextRect(s32 line) m_current_text_rect += m_frame_rect.UpperLeftCorner; } - -s32 GUIEditBoxWithScrollBar::getLineFromPos(s32 pos) -{ - if (!m_word_wrap && !m_multiline) - return 0; - - s32 i = 0; - while (i < (s32)m_broken_text_positions.size()) { - if (m_broken_text_positions[i] > pos) - return i - 1; - ++i; - } - return (s32)m_broken_text_positions.size() - 1; -} - - -void GUIEditBoxWithScrollBar::inputChar(wchar_t c) -{ - if (!isEnabled()) - return; - - if (c != 0) { - if (Text.size() < m_max || m_max == 0) { - core::stringw s; - - if (m_mark_begin != m_mark_end) { - // replace marked text - const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; - const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; - - s = Text.subString(0, realmbgn); - s.append(c); - s.append(Text.subString(realmend, Text.size() - realmend)); - Text = s; - m_cursor_pos = realmbgn + 1; - } else { - // add new character - s = Text.subString(0, m_cursor_pos); - s.append(c); - s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); - Text = s; - ++m_cursor_pos; - } - - m_blink_start_time = porting::getTimeMs(); - setTextMarkers(0, 0); - } - } - breakText(); - calculateScrollPos(); - sendGuiEvent(EGET_EDITBOX_CHANGED); -} - // calculate autoscroll void GUIEditBoxWithScrollBar::calculateScrollPos() { @@ -1366,30 +613,6 @@ void GUIEditBoxWithScrollBar::calculateFrameRect() updateVScrollBar(); } -//! set text markers -void GUIEditBoxWithScrollBar::setTextMarkers(s32 begin, s32 end) -{ - if (begin != m_mark_begin || end != m_mark_end) { - m_mark_begin = begin; - m_mark_end = end; - sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); - } -} - -//! send some gui event to parent -void GUIEditBoxWithScrollBar::sendGuiEvent(EGUI_EVENT_TYPE type) -{ - if (Parent) { - SEvent e; - e.EventType = EET_GUI_EVENT; - e.GUIEvent.Caller = this; - e.GUIEvent.Element = 0; - e.GUIEvent.EventType = type; - - Parent->OnEvent(e); - } -} - //! create a vertical scroll bar void GUIEditBoxWithScrollBar::createVScrollBar() { @@ -1409,61 +632,7 @@ void GUIEditBoxWithScrollBar::createVScrollBar() m_vscrollbar->setLargeStep(1); } -void GUIEditBoxWithScrollBar::updateVScrollBar() -{ - if (!m_vscrollbar) { - return; - } - // OnScrollBarChanged(...) - if (m_vscrollbar->getPos() != m_vscroll_pos) { - s32 deltaScrollY = m_vscrollbar->getPos() - m_vscroll_pos; - m_current_text_rect.UpperLeftCorner.Y -= deltaScrollY; - m_current_text_rect.LowerRightCorner.Y -= deltaScrollY; - - s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - // manage a newline or a deleted line - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - calculateScrollPos(); - } else { - // manage a newline or a deleted line - m_vscroll_pos = m_vscrollbar->getPos(); - } - } - - // check if a vertical scrollbar is needed ? - if (getTextDimension().Height > (u32) m_frame_rect.getHeight()) { - m_frame_rect.LowerRightCorner.X -= m_scrollbar_width; - - s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - } - - if (!m_vscrollbar->isVisible()) { - m_vscrollbar->setVisible(true); - } - } else { - if (m_vscrollbar->isVisible()) - { - m_vscrollbar->setVisible(false); - m_vscroll_pos = 0; - m_vscrollbar->setPos(0); - m_vscrollbar->setMax(1); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - } - } - -} - -//! set true if this editbox is writable -void GUIEditBoxWithScrollBar::setWritable(bool writable) -{ - m_writable = writable; -} //! Change the background color void GUIEditBoxWithScrollBar::setBackgroundColor(const video::SColor &bg_color) @@ -1475,54 +644,21 @@ void GUIEditBoxWithScrollBar::setBackgroundColor(const video::SColor &bg_color) //! Writes attributes of the element. void GUIEditBoxWithScrollBar::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options = 0) const { - // IGUIEditBox::serializeAttributes(out,options); - out->addBool("Border", m_border); out->addBool("Background", m_background); - out->addBool("OverrideColorEnabled", m_override_color_enabled); - out->addColor("OverrideColor", m_override_color); // out->addFont("OverrideFont", OverrideFont); - out->addInt("MaxChars", m_max); - out->addBool("WordWrap", m_word_wrap); - out->addBool("MultiLine", m_multiline); - out->addBool("AutoScroll", m_autoscroll); - out->addBool("PasswordBox", m_passwordbox); - core::stringw ch = L" "; - ch[0] = m_passwordchar; - out->addString("PasswordChar", ch.c_str()); - out->addEnum("HTextAlign", m_halign, GUIAlignmentNames); - out->addEnum("VTextAlign", m_valign, GUIAlignmentNames); - out->addBool("Writable", m_writable); - IGUIEditBox::serializeAttributes(out, options); + GUIEditBox::serializeAttributes(out, options); } //! Reads attributes of the element void GUIEditBoxWithScrollBar::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options = 0) { - IGUIEditBox::deserializeAttributes(in, options); + GUIEditBox::deserializeAttributes(in, options); setDrawBorder(in->getAttributeAsBool("Border")); setDrawBackground(in->getAttributeAsBool("Background")); - setOverrideColor(in->getAttributeAsColor("OverrideColor")); - enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); - setMax(in->getAttributeAsInt("MaxChars")); - setWordWrap(in->getAttributeAsBool("WordWrap")); - setMultiLine(in->getAttributeAsBool("MultiLine")); - setAutoScroll(in->getAttributeAsBool("AutoScroll")); - core::stringw ch = in->getAttributeAsStringW("PasswordChar"); - - if (!ch.size()) - setPasswordBox(in->getAttributeAsBool("PasswordBox")); - else - setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]); - - setTextAlignment((EGUI_ALIGNMENT)in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames), - (EGUI_ALIGNMENT)in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames)); - - // setOverrideFont(in->getAttributeAsFont("OverrideFont")); - setWritable(in->getAttributeAsBool("Writable")); } bool GUIEditBoxWithScrollBar::isDrawBackgroundEnabled() const { return false; } diff --git a/src/gui/guiEditBoxWithScrollbar.h b/src/gui/guiEditBoxWithScrollbar.h index 77538e2f7..3f7450dcb 100644 --- a/src/gui/guiEditBoxWithScrollbar.h +++ b/src/gui/guiEditBoxWithScrollbar.h @@ -5,15 +5,9 @@ #ifndef GUIEDITBOXWITHSCROLLBAR_HEADER #define GUIEDITBOXWITHSCROLLBAR_HEADER -#include "IGUIEditBox.h" -#include "IOSOperator.h" -#include "guiScrollBar.h" -#include +#include "guiEditBox.h" -using namespace irr; -using namespace irr::gui; - -class GUIEditBoxWithScrollBar : public IGUIEditBox +class GUIEditBoxWithScrollBar : public GUIEditBox { public: @@ -23,102 +17,17 @@ public: bool writable = true, bool has_vscrollbar = true); //! destructor - virtual ~GUIEditBoxWithScrollBar(); - - //! Sets another skin independent font. - virtual void setOverrideFont(IGUIFont* font = 0); - - //! Gets the override font (if any) - /** \return The override font (may be 0) */ - virtual IGUIFont* getOverrideFont() const; - - //! Get the font which is used right now for drawing - /** Currently this is the override font when one is set and the - font of the active skin otherwise */ - virtual IGUIFont* getActiveFont() const; - - //! Sets another color for the text. - virtual void setOverrideColor(video::SColor color); - - //! Gets the override color - virtual video::SColor getOverrideColor() const; - - //! Sets if the text should use the overide color or the - //! color in the gui skin. - virtual void enableOverrideColor(bool enable); - - //! Checks if an override color is enabled - /** \return true if the override color is enabled, false otherwise */ - virtual bool isOverrideColorEnabled(void) const; + virtual ~GUIEditBoxWithScrollBar() {} //! Sets whether to draw the background virtual void setDrawBackground(bool draw); - //! Turns the border on or off - virtual void setDrawBorder(bool border); - - //! Enables or disables word wrap for using the edit box as multiline text editor. - virtual void setWordWrap(bool enable); - - //! Checks if word wrap is enabled - //! \return true if word wrap is enabled, false otherwise - virtual bool isWordWrapEnabled() const; - - //! Enables or disables newlines. - /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired, - instead a newline character will be inserted. */ - virtual void setMultiLine(bool enable); - - //! Checks if multi line editing is enabled - //! \return true if mult-line is enabled, false otherwise - virtual bool isMultiLineEnabled() const; - - //! Enables or disables automatic scrolling with cursor position - //! \param enable: If set to true, the text will move around with the cursor position - virtual void setAutoScroll(bool enable); - - //! Checks to see if automatic scrolling is enabled - //! \return true if automatic scrolling is enabled, false if not - virtual bool isAutoScrollEnabled() const; - - //! Gets the size area of the text in the edit box - //! \return Returns the size in pixels of the text - virtual core::dimension2du getTextDimension(); - - //! Sets text justification - virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical); - - //! called if an event happened. - virtual bool OnEvent(const SEvent& event); - //! draws the element and its children virtual void draw(); - //! Sets the new caption of this element. - virtual void setText(const wchar_t* text); - - //! Sets the maximum amount of characters which may be entered in the box. - //! \param max: Maximum amount of characters. If 0, the character amount is - //! infinity. - virtual void setMax(u32 max); - - //! Returns maximum amount of characters, previously set by setMax(); - virtual u32 getMax() const; - - //! Sets whether the edit box is a password box. Setting this to true will - /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x - \param passwordBox: true to enable password, false to disable - \param passwordChar: the character that is displayed instead of letters */ - virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*'); - - //! Returns true if the edit box is currently a password box. - virtual bool isPasswordBox() const; - //! Updates the absolute position, splits text if required virtual void updateAbsolutePosition(); - virtual void setWritable(bool writable); - //! Change the background color virtual void setBackgroundColor(const video::SColor &bg_color); @@ -137,58 +46,19 @@ public: protected: //! Breaks the single text line. - void breakText(); + virtual void breakText(); //! sets the area of the given line - void setTextRect(s32 line); - //! returns the line number that the cursor is on - s32 getLineFromPos(s32 pos); - //! adds a letter to the edit box - void inputChar(wchar_t c); + virtual void setTextRect(s32 line); //! calculates the current scroll position void calculateScrollPos(); //! calculated the FrameRect void calculateFrameRect(); - //! send some gui event to parent - void sendGuiEvent(EGUI_EVENT_TYPE type); - //! set text markers - void setTextMarkers(s32 begin, s32 end); //! create a Vertical ScrollBar void createVScrollBar(); - //! update the vertical scrollBar (visibilty & position) - void updateVScrollBar(); - bool processKey(const SEvent& event); - bool processMouse(const SEvent& event); s32 getCursorPos(s32 x, s32 y); - bool m_mouse_marking; - bool m_border; bool m_background; - bool m_override_color_enabled; - s32 m_mark_begin; - s32 m_mark_end; - - video::SColor m_override_color; - gui::IGUIFont *m_override_font, *m_last_break_font; - IOSOperator* m_operator; - - u32 m_blink_start_time; - s32 m_cursor_pos; - s32 m_hscroll_pos, m_vscroll_pos; // scroll position in characters - u32 m_max; - - bool m_word_wrap, m_multiline, m_autoscroll, m_passwordbox; - wchar_t m_passwordchar; - EGUI_ALIGNMENT m_halign, m_valign; - - std::vector m_broken_text; - std::vector m_broken_text_positions; - - core::rect m_current_text_rect, m_frame_rect; // temporary values - - u32 m_scrollbar_width; - GUIScrollBar *m_vscrollbar; - bool m_writable; bool m_bg_color_used; video::SColor m_bg_color; diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index c5ad5c323..694baf482 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -75,8 +75,6 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id) if (name.empty()) return NULL; - m_to_delete.insert(name); - #if ENABLE_GLES video::ITexture *retval = m_driver->findTexture(name.c_str()); if (retval) @@ -88,6 +86,7 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id) image = Align2Npot2(image, m_driver); retval = m_driver->addTexture(name.c_str(), image); + m_to_delete.insert(name); image->drop(); return retval; #else @@ -122,12 +121,14 @@ void MenuMusicFetcher::fetchSounds(const std::string &name, /******************************************************************************/ GUIEngine::GUIEngine(JoystickController *joystick, gui::IGUIElement *parent, + RenderingEngine *rendering_engine, IMenuManager *menumgr, MainMenuData *data, bool &kill) : + m_rendering_engine(rendering_engine), m_parent(parent), m_menumanager(menumgr), - m_smgr(RenderingEngine::get_scene_manager()), + m_smgr(rendering_engine->get_scene_manager()), m_data(data), m_kill(kill) { @@ -139,7 +140,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, m_buttonhandler = new TextDestGuiEngine(this); //create texture source - m_texture_source = new MenuTextureSource(RenderingEngine::get_video_driver()); + m_texture_source = new MenuTextureSource(rendering_engine->get_video_driver()); //create soundmanager MenuMusicFetcher soundfetcher; @@ -157,7 +158,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, g_fontengine->getTextHeight()); rect += v2s32(4, 0); - m_irr_toplefttext = gui::StaticText::add(RenderingEngine::get_gui_env(), + m_irr_toplefttext = gui::StaticText::add(rendering_engine->get_gui_env(), m_toplefttext, rect, false, true, 0, -1); //create formspecsource @@ -169,6 +170,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, -1, m_menumanager, NULL /* &client */, + m_rendering_engine->get_gui_env(), m_texture_source, m_sound_manager, m_formspecgui, @@ -233,7 +235,7 @@ void GUIEngine::run() { // Always create clouds because they may or may not be // needed based on the game selected - video::IVideoDriver *driver = RenderingEngine::get_video_driver(); + video::IVideoDriver *driver = m_rendering_engine->get_video_driver(); cloudInit(); @@ -260,10 +262,10 @@ void GUIEngine::run() fog_pixelfog, fog_rangefog); } - while (RenderingEngine::run() && (!m_startgame) && (!m_kill)) { + while (m_rendering_engine->run() && (!m_startgame) && (!m_kill)) { const irr::core::dimension2d ¤t_screen_size = - RenderingEngine::get_video_driver()->getScreenSize(); + m_rendering_engine->get_video_driver()->getScreenSize(); // Verify if window size has changed and save it if it's the case // Ensure evaluating settings->getBool after verifying screensize // First condition is cheaper @@ -294,11 +296,11 @@ void GUIEngine::run() drawHeader(driver); drawFooter(driver); - RenderingEngine::get_gui_env()->drawAll(); + m_rendering_engine->get_gui_env()->drawAll(); driver->endScene(); - IrrlichtDevice *device = RenderingEngine::get_raw_device(); + IrrlichtDevice *device = m_rendering_engine->get_raw_device(); u32 frametime_min = 1000 / (device->isWindowFocused() ? g_settings->getFloat("fps_max") : g_settings->getFloat("fps_max_unfocused")); @@ -331,7 +333,7 @@ GUIEngine::~GUIEngine() //clean up texture pointers for (image_definition &texture : m_textures) { if (texture.texture) - RenderingEngine::get_video_driver()->removeTexture(texture.texture); + m_rendering_engine->get_video_driver()->removeTexture(texture.texture); } delete m_texture_source; @@ -351,13 +353,13 @@ void GUIEngine::cloudInit() v3f(0,0,0), v3f(0, 60, 100)); m_cloud.camera->setFarValue(10000); - m_cloud.lasttime = RenderingEngine::get_timer_time(); + m_cloud.lasttime = m_rendering_engine->get_timer_time(); } /******************************************************************************/ void GUIEngine::cloudPreProcess() { - u32 time = RenderingEngine::get_timer_time(); + u32 time = m_rendering_engine->get_timer_time(); if(time > m_cloud.lasttime) m_cloud.dtime = (time - m_cloud.lasttime) / 1000.0; @@ -378,7 +380,7 @@ void GUIEngine::cloudPostProcess(u32 frametime_min, IrrlichtDevice *device) u32 busytime_u32; // not using getRealTime is necessary for wine - u32 time = RenderingEngine::get_timer_time(); + u32 time = m_rendering_engine->get_timer_time(); if(time > m_cloud.lasttime) busytime_u32 = time - m_cloud.lasttime; else @@ -486,8 +488,6 @@ void GUIEngine::drawHeader(video::IVideoDriver *driver) splashrect += v2s32((screensize.Width/2)-(splashsize.X/2), ((free_space/2)-splashsize.Y/2)+10); - video::SColor bgcolor(255,50,50,50); - draw2DImageFilterScaled(driver, texture, splashrect, core::rect(core::position2d(0,0), core::dimension2di(texture->getOriginalSize())), @@ -531,7 +531,7 @@ void GUIEngine::drawFooter(video::IVideoDriver *driver) bool GUIEngine::setTexture(texture_layer layer, const std::string &texturepath, bool tile_image, unsigned int minsize) { - video::IVideoDriver *driver = RenderingEngine::get_video_driver(); + video::IVideoDriver *driver = m_rendering_engine->get_video_driver(); if (m_textures[layer].texture) { driver->removeTexture(m_textures[layer].texture); @@ -598,7 +598,7 @@ void GUIEngine::updateTopLeftTextSize() rect += v2s32(4, 0); m_irr_toplefttext->remove(); - m_irr_toplefttext = gui::StaticText::add(RenderingEngine::get_gui_env(), + m_irr_toplefttext = gui::StaticText::add(m_rendering_engine->get_gui_env(), m_toplefttext, rect, false, true, 0, -1); } diff --git a/src/gui/guiEngine.h b/src/gui/guiEngine.h index eef1ad8aa..70abce181 100644 --- a/src/gui/guiEngine.h +++ b/src/gui/guiEngine.h @@ -50,6 +50,7 @@ struct image_definition { /* forward declarations */ /******************************************************************************/ class GUIEngine; +class RenderingEngine; class MainMenuScripting; class Clouds; struct MainMenuData; @@ -150,6 +151,7 @@ public: */ GUIEngine(JoystickController *joystick, gui::IGUIElement *parent, + RenderingEngine *rendering_engine, IMenuManager *menumgr, MainMenuData *data, bool &kill); @@ -188,6 +190,7 @@ private: /** update size of topleftext element */ void updateTopLeftTextSize(); + RenderingEngine *m_rendering_engine = nullptr; /** parent gui element */ gui::IGUIElement *m_parent = nullptr; /** manager to add menus to */ diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 632b15992..c6435804f 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include +#include #include #include #include @@ -64,13 +65,12 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "guiInventoryList.h" #include "guiItemImage.h" #include "guiScrollContainer.h" -#include "intlGUIEditBox.h" #include "guiHyperText.h" #include "guiScene.h" #define MY_CHECKPOS(a,b) \ if (v_pos.size() != 2) { \ - errorstream<< "Invalid pos for element " << a << "specified: \"" \ + errorstream<< "Invalid pos for element " << a << " specified: \"" \ << parts[b] << "\"" << std::endl; \ return; \ } @@ -78,7 +78,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #define MY_CHECKGEOM(a,b) \ if (v_geom.size() != 2) { \ errorstream<< "Invalid geometry for element " << a << \ - "specified: \"" << parts[b] << "\"" << std::endl; \ + " specified: \"" << parts[b] << "\"" << std::endl; \ return; \ } /* @@ -96,10 +96,10 @@ inline u32 clamp_u8(s32 value) GUIFormSpecMenu::GUIFormSpecMenu(JoystickController *joystick, gui::IGUIElement *parent, s32 id, IMenuManager *menumgr, - Client *client, ISimpleTextureSource *tsrc, ISoundManager *sound_manager, - IFormSource *fsrc, TextDest *tdst, + Client *client, gui::IGUIEnvironment *guienv, ISimpleTextureSource *tsrc, + ISoundManager *sound_manager, IFormSource *fsrc, TextDest *tdst, const std::string &formspecPrepend, bool remap_dbl_click): - GUIModalMenu(RenderingEngine::get_gui_env(), parent, id, menumgr, remap_dbl_click), + GUIModalMenu(guienv, parent, id, menumgr, remap_dbl_click), m_invmgr(client), m_tsrc(tsrc), m_sound_manager(sound_manager), @@ -145,12 +145,12 @@ GUIFormSpecMenu::~GUIFormSpecMenu() } void GUIFormSpecMenu::create(GUIFormSpecMenu *&cur_formspec, Client *client, - JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest, - const std::string &formspecPrepend, ISoundManager *sound_manager) + gui::IGUIEnvironment *guienv, JoystickController *joystick, IFormSource *fs_src, + TextDest *txt_dest, const std::string &formspecPrepend, ISoundManager *sound_manager) { if (cur_formspec == nullptr) { cur_formspec = new GUIFormSpecMenu(joystick, guiroot, -1, &g_menumgr, - client, client->getTextureSource(), sound_manager, fs_src, + client, guienv, client->getTextureSource(), sound_manager, fs_src, txt_dest, formspecPrepend); cur_formspec->doPause = false; @@ -497,19 +497,39 @@ void GUIFormSpecMenu::parseList(parserData *data, const std::string &element) 3 ); - v2f32 slot_spacing = data->real_coordinates ? - v2f32(imgsize.X * 1.25f, imgsize.Y * 1.25f) : spacing; + auto style = getDefaultStyleForElement("list", spec.fname); - v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos) - : getElementBasePos(&v_pos); + v2f32 slot_scale = style.getVector2f(StyleSpec::SIZE, v2f32(0, 0)); + v2f32 slot_size( + slot_scale.X <= 0 ? imgsize.X : std::max(slot_scale.X * imgsize.X, 1), + slot_scale.Y <= 0 ? imgsize.Y : std::max(slot_scale.Y * imgsize.Y, 1) + ); + + v2f32 slot_spacing = style.getVector2f(StyleSpec::SPACING, v2f32(-1, -1)); + v2f32 default_spacing = data->real_coordinates ? + v2f32(imgsize.X * 0.25f, imgsize.Y * 0.25f) : + v2f32(spacing.X - imgsize.X, spacing.Y - imgsize.Y); + + slot_spacing.X = slot_spacing.X < 0 ? default_spacing.X : + imgsize.X * slot_spacing.X; + slot_spacing.Y = slot_spacing.Y < 0 ? default_spacing.Y : + imgsize.Y * slot_spacing.Y; + + slot_spacing += slot_size; + + v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos) : + getElementBasePos(&v_pos); core::rect rect = core::rect(pos.X, pos.Y, - pos.X + (geom.X - 1) * slot_spacing.X + imgsize.X, - pos.Y + (geom.Y - 1) * slot_spacing.Y + imgsize.Y); + pos.X + (geom.X - 1) * slot_spacing.X + slot_size.X, + pos.Y + (geom.Y - 1) * slot_spacing.Y + slot_size.Y); GUIInventoryList *e = new GUIInventoryList(Environment, data->current_parent, - spec.fid, rect, m_invmgr, loc, listname, geom, start_i, imgsize, - slot_spacing, this, data->inventorylist_options, m_font); + spec.fid, rect, m_invmgr, loc, listname, geom, start_i, + v2s32(slot_size.X, slot_size.Y), slot_spacing, this, + data->inventorylist_options, m_font); + + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); m_inventorylists.push_back(e); m_fields.push_back(spec); @@ -907,7 +927,7 @@ void GUIFormSpecMenu::parseAnimatedImage(parserData *data, const std::string &el core::rect rect = core::rect(pos, pos + geom); - GUIAnimatedImage *e = new GUIAnimatedImage(Environment, this, spec.fid, + GUIAnimatedImage *e = new GUIAnimatedImage(Environment, data->current_parent, spec.fid, rect, texture_name, frame_count, frame_duration, m_tsrc); if (parts.size() >= 7) @@ -1526,21 +1546,13 @@ void GUIFormSpecMenu::createTextField(parserData *data, FieldSpec &spec, } gui::IGUIEditBox *e = nullptr; - static constexpr bool use_intl_edit_box = USE_FREETYPE && - IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 9; - - if (use_intl_edit_box && g_settings->getBool("freetype")) { - e = new gui::intlGUIEditBox(spec.fdefault.c_str(), true, Environment, - data->current_parent, spec.fid, rect, is_editable, is_multiline); - } else { - if (is_multiline) { - e = new GUIEditBoxWithScrollBar(spec.fdefault.c_str(), true, Environment, - data->current_parent, spec.fid, rect, is_editable, true); - } else if (is_editable) { - e = Environment->addEditBox(spec.fdefault.c_str(), rect, true, - data->current_parent, spec.fid); - e->grab(); - } + if (is_multiline) { + e = new GUIEditBoxWithScrollBar(spec.fdefault.c_str(), true, Environment, + data->current_parent, spec.fid, rect, is_editable, true); + } else if (is_editable) { + e = Environment->addEditBox(spec.fdefault.c_str(), rect, true, + data->current_parent, spec.fid); + e->grab(); } auto style = getDefaultStyleForElement(is_multiline ? "textarea" : "field", spec.fname); @@ -2725,7 +2737,7 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) { std::vector parts = split(element, ';'); - if (parts.size() < 5 || (parts.size() > 8 && + if (parts.size() < 5 || (parts.size() > 10 && m_formspec_version <= FORMSPEC_API_VERSION)) { errorstream << "Invalid model element (" << parts.size() << "): '" << element << "'" << std::endl; @@ -2733,8 +2745,8 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) } // Avoid length checks by resizing - if (parts.size() < 8) - parts.resize(8); + if (parts.size() < 10) + parts.resize(10); std::vector v_pos = split(parts[0], ','); std::vector v_geom = split(parts[1], ','); @@ -2744,6 +2756,8 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) std::vector vec_rot = split(parts[5], ','); bool inf_rotation = is_yes(parts[6]); bool mousectrl = is_yes(parts[7]) || parts[7].empty(); // default true + std::vector frame_loop = split(parts[8], ','); + std::string speed = unescape_string(parts[9]); MY_CHECKPOS("model", 0); MY_CHECKGEOM("model", 1); @@ -2780,13 +2794,13 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) core::rect rect(pos, pos + geom); - GUIScene *e = new GUIScene(Environment, RenderingEngine::get_scene_manager(), + GUIScene *e = new GUIScene(Environment, m_client->getSceneManager(), data->current_parent, rect, spec.fid); auto meshnode = e->setMesh(mesh); for (u32 i = 0; i < textures.size() && i < meshnode->getMaterialCount(); ++i) - e->setTexture(i, m_tsrc->getTexture(textures[i])); + e->setTexture(i, m_tsrc->getTexture(unescape_string(textures[i]))); if (vec_rot.size() >= 2) e->setRotation(v2f(stof(vec_rot[0]), stof(vec_rot[1]))); @@ -2794,6 +2808,17 @@ void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) e->enableContinuousRotation(inf_rotation); e->enableMouseControl(mousectrl); + s32 frame_loop_begin = 0; + s32 frame_loop_end = 0x7FFFFFFF; + + if (frame_loop.size() == 2) { + frame_loop_begin = stoi(frame_loop[0]); + frame_loop_end = stoi(frame_loop[1]); + } + + e->setFrameLoop(frame_loop_begin, frame_loop_end); + e->setAnimationSpeed(stof(speed)); + auto style = getStyleForElement("model", spec.fname); e->setStyles(style); e->drop(); @@ -3494,8 +3519,6 @@ bool GUIFormSpecMenu::getAndroidUIInput() GUIInventoryList::ItemSpec GUIFormSpecMenu::getItemAtPos(v2s32 p) const { - core::rect imgrect(0, 0, imgsize.X, imgsize.Y); - for (const GUIInventoryList *e : m_inventorylists) { s32 item_index = e->getItemIndexAtPos(p); if (item_index != -1) @@ -3707,7 +3730,8 @@ void GUIFormSpecMenu::showTooltip(const std::wstring &text, { EnrichedString ntext(text); ntext.setDefaultColor(color); - ntext.setBackground(bgcolor); + if (!ntext.hasBackground()) + ntext.setBackground(bgcolor); setStaticText(m_tooltip_element, ntext); @@ -3825,7 +3849,7 @@ ItemStack GUIFormSpecMenu::verifySelectedItem() return ItemStack(); } -void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no) +void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode) { if(m_text_dst) { diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h index 37106cb65..926de66d5 100644 --- a/src/gui/guiFormSpecMenu.h +++ b/src/gui/guiFormSpecMenu.h @@ -152,6 +152,7 @@ public: gui::IGUIElement* parent, s32 id, IMenuManager *menumgr, Client *client, + gui::IGUIEnvironment *guienv, ISimpleTextureSource *tsrc, ISoundManager *sound_manager, IFormSource* fs_src, @@ -162,8 +163,9 @@ public: ~GUIFormSpecMenu(); static void create(GUIFormSpecMenu *&cur_formspec, Client *client, - JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest, - const std::string &formspecPrepend, ISoundManager *sound_manager); + gui::IGUIEnvironment *guienv, JoystickController *joystick, IFormSource *fs_src, + TextDest *txt_dest, const std::string &formspecPrepend, + ISoundManager *sound_manager); void setFormSpec(const std::string &formspec_string, const InventoryLocation ¤t_inventory_location) @@ -253,7 +255,7 @@ public: void updateSelectedItem(); ItemStack verifySelectedItem(); - void acceptInput(FormspecQuitMode quitmode); + void acceptInput(FormspecQuitMode quitmode=quit_mode_no); bool preprocessEvent(const SEvent& event); bool OnEvent(const SEvent& event); bool doPause; diff --git a/src/gui/guiHyperText.cpp b/src/gui/guiHyperText.cpp index 88931cdf9..ccfdcb81d 100644 --- a/src/gui/guiHyperText.cpp +++ b/src/gui/guiHyperText.cpp @@ -1088,7 +1088,7 @@ bool GUIHyperText::OnEvent(const SEvent &event) if (event.MouseInput.Event == EMIE_MOUSE_MOVED) checkHover(event.MouseInput.X, event.MouseInput.Y); - if (event.MouseInput.Event == EMIE_MOUSE_WHEEL) { + if (event.MouseInput.Event == EMIE_MOUSE_WHEEL && m_vscrollbar->isVisible()) { m_vscrollbar->setPos(m_vscrollbar->getPos() - event.MouseInput.Wheel * m_vscrollbar->getSmallStep()); m_text_scrollpos.Y = -m_vscrollbar->getPos(); diff --git a/src/gui/guiInventoryList.cpp b/src/gui/guiInventoryList.cpp index 58d7ae771..290ae40e7 100644 --- a/src/gui/guiInventoryList.cpp +++ b/src/gui/guiInventoryList.cpp @@ -101,8 +101,6 @@ void GUIInventoryList::draw() && m_invmgr->getInventory(selected_item->inventoryloc) == inv && selected_item->listname == m_listname && selected_item->i == item_i; - core::rect clipped_rect(rect); - clipped_rect.clipAgainst(AbsoluteClippingRect); bool hovering = m_hovered_i == item_i; ItemRotationKind rotation_kind = selected ? IT_ROT_SELECTED : (hovering ? IT_ROT_HOVERED : IT_ROT_NONE); diff --git a/src/gui/guiKeyChangeMenu.cpp b/src/gui/guiKeyChangeMenu.cpp index a7270da06..719a4101a 100644 --- a/src/gui/guiKeyChangeMenu.cpp +++ b/src/gui/guiKeyChangeMenu.cpp @@ -46,7 +46,7 @@ enum GUI_ID_KEY_BACKWARD_BUTTON, GUI_ID_KEY_LEFT_BUTTON, GUI_ID_KEY_RIGHT_BUTTON, - GUI_ID_KEY_USE_BUTTON, + GUI_ID_KEY_AUX1_BUTTON, GUI_ID_KEY_FLY_BUTTON, GUI_ID_KEY_FAST_BUTTON, GUI_ID_KEY_JUMP_BUTTON, @@ -71,6 +71,7 @@ enum GUI_ID_KEY_MINIMAP_BUTTON, GUI_ID_KEY_SCREENSHOT_BUTTON, GUI_ID_KEY_CHATLOG_BUTTON, + GUI_ID_KEY_BLOCK_BOUNDS_BUTTON, GUI_ID_KEY_HUD_BUTTON, GUI_ID_KEY_FOG_BUTTON, GUI_ID_KEY_CHEAT_MENU_BUTTON, @@ -187,7 +188,7 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) { core::rect rect(0, 0, option_w, 30 * s); rect += topleft + v2s32(option_x, option_y); - const wchar_t *text = wgettext("\"Special\" = climb down"); + const wchar_t *text = wgettext("\"Aux1\" = climb down"); Environment->addCheckBox(g_settings->getBool("aux1_descends"), rect, this, GUI_ID_CB_AUX1_DESCENDS, text); delete[] text; @@ -258,7 +259,7 @@ bool GUIKeyChangeMenu::acceptInput() { for (key_setting *k : key_settings) { std::string default_key; - g_settings->getDefaultNoEx(k->setting_name, default_key); + Settings::getLayer(SL_DEFAULTS)->getNoEx(k->setting_name, default_key); if (k->key.sym() != default_key) g_settings->set(k->setting_name, k->key.sym()); @@ -422,47 +423,48 @@ void GUIKeyChangeMenu::add_key(int id, const wchar_t *button_name, const std::st void GUIKeyChangeMenu::init_keys() { - this->add_key(GUI_ID_KEY_FORWARD_BUTTON, wgettext("Forward"), "keymap_forward"); - this->add_key(GUI_ID_KEY_BACKWARD_BUTTON, wgettext("Backward"), "keymap_backward"); - this->add_key(GUI_ID_KEY_LEFT_BUTTON, wgettext("Left"), "keymap_left"); - this->add_key(GUI_ID_KEY_RIGHT_BUTTON, wgettext("Right"), "keymap_right"); - this->add_key(GUI_ID_KEY_USE_BUTTON, wgettext("Special"), "keymap_special1"); - this->add_key(GUI_ID_KEY_JUMP_BUTTON, wgettext("Jump"), "keymap_jump"); - this->add_key(GUI_ID_KEY_SNEAK_BUTTON, wgettext("Sneak"), "keymap_sneak"); - this->add_key(GUI_ID_KEY_DROP_BUTTON, wgettext("Drop"), "keymap_drop"); - this->add_key(GUI_ID_KEY_INVENTORY_BUTTON, wgettext("Inventory"), "keymap_inventory"); - this->add_key(GUI_ID_KEY_ENDERCHEST_BUTTON,wgettext("Enderchest"), "keymap_enderchest"); - this->add_key(GUI_ID_KEY_HOTBAR_PREV_BUTTON,wgettext("Prev. item"), "keymap_hotbar_previous"); - this->add_key(GUI_ID_KEY_HOTBAR_NEXT_BUTTON,wgettext("Next item"), "keymap_hotbar_next"); - this->add_key(GUI_ID_KEY_ZOOM_BUTTON, wgettext("Zoom"), "keymap_zoom"); - this->add_key(GUI_ID_KEY_CAMERA_BUTTON, wgettext("Change camera"), "keymap_camera_mode"); - this->add_key(GUI_ID_KEY_MINIMAP_BUTTON, wgettext("Toggle minimap"), "keymap_minimap"); - this->add_key(GUI_ID_KEY_FLY_BUTTON, wgettext("Toggle fly"), "keymap_freemove"); - this->add_key(GUI_ID_KEY_PITCH_MOVE, wgettext("Toggle pitchmove"), "keymap_pitchmove"); - this->add_key(GUI_ID_KEY_FAST_BUTTON, wgettext("Toggle fast"), "keymap_fastmove"); - this->add_key(GUI_ID_KEY_NOCLIP_BUTTON, wgettext("Toggle noclip"), "keymap_noclip"); - this->add_key(GUI_ID_KEY_MUTE_BUTTON, wgettext("Mute"), "keymap_mute"); - this->add_key(GUI_ID_KEY_DEC_VOLUME_BUTTON,wgettext("Dec. volume"), "keymap_decrease_volume"); - this->add_key(GUI_ID_KEY_INC_VOLUME_BUTTON,wgettext("Inc. volume"), "keymap_increase_volume"); - this->add_key(GUI_ID_KEY_AUTOFWD_BUTTON, wgettext("Autoforward"), "keymap_autoforward"); - this->add_key(GUI_ID_KEY_CHAT_BUTTON, wgettext("Chat"), "keymap_chat"); - this->add_key(GUI_ID_KEY_SCREENSHOT_BUTTON,wgettext("Screenshot"), "keymap_screenshot"); - this->add_key(GUI_ID_KEY_RANGE_BUTTON, wgettext("Range select"), "keymap_rangeselect"); - this->add_key(GUI_ID_KEY_DEC_RANGE_BUTTON, wgettext("Dec. range"), "keymap_decrease_viewing_range_min"); - this->add_key(GUI_ID_KEY_INC_RANGE_BUTTON, wgettext("Inc. range"), "keymap_increase_viewing_range_min"); - this->add_key(GUI_ID_KEY_CONSOLE_BUTTON, wgettext("Console"), "keymap_console"); - this->add_key(GUI_ID_KEY_CMD_BUTTON, wgettext("Command"), "keymap_cmd"); - this->add_key(GUI_ID_KEY_CMD_LOCAL_BUTTON, wgettext("Local command"), "keymap_cmd_local"); - this->add_key(GUI_ID_KEY_HUD_BUTTON, wgettext("Toggle HUD"), "keymap_toggle_hud"); - this->add_key(GUI_ID_KEY_CHATLOG_BUTTON, wgettext("Toggle chat log"), "keymap_toggle_chat"); - this->add_key(GUI_ID_KEY_FOG_BUTTON, wgettext("Toggle fog"), "keymap_toggle_fog"); - this->add_key(GUI_ID_KEY_CHEAT_MENU_BUTTON,wgettext("Toggle C. Menu"),"keymap_toggle_cheat_menu"); - this->add_key(GUI_ID_KEY_KILLAURA_BUTTON, wgettext("Killaura"), "keymap_toggle_killaura"); - this->add_key(GUI_ID_KEY_FREECAM_BUTTON, wgettext("Freecam"), "keymap_toggle_freecam"); - this->add_key(GUI_ID_KEY_SCAFFOLD_BUTTON, wgettext("Scaffold"), "keymap_toggle_scaffold"); - this->add_key(GUI_ID_KEY_SELECT_UP_BUTTON, wgettext("C. Menu Up"), "keymap_select_up"); - this->add_key(GUI_ID_KEY_SELECT_DOWN_BUTTON,wgettext("C. Menu Down"), "keymap_select_down"); - this->add_key(GUI_ID_KEY_SELECT_LEFT_BUTTON,wgettext("C. Menu Left"), "keymap_select_left"); - this->add_key(GUI_ID_KEY_SELECT_RIGHT_BUTTON,wgettext("C. Menu Right"),"keymap_select_right"); - this->add_key(GUI_ID_KEY_SELECT_CONFIRM_BUTTON,wgettext("C. Menu Enter"),"keymap_select_confirm"); + this->add_key(GUI_ID_KEY_FORWARD_BUTTON, wgettext("Forward"), "keymap_forward"); + this->add_key(GUI_ID_KEY_BACKWARD_BUTTON, wgettext("Backward"), "keymap_backward"); + this->add_key(GUI_ID_KEY_LEFT_BUTTON, wgettext("Left"), "keymap_left"); + this->add_key(GUI_ID_KEY_RIGHT_BUTTON, wgettext("Right"), "keymap_right"); + this->add_key(GUI_ID_KEY_AUX1_BUTTON, wgettext("Aux1"), "keymap_aux1"); + this->add_key(GUI_ID_KEY_JUMP_BUTTON, wgettext("Jump"), "keymap_jump"); + this->add_key(GUI_ID_KEY_SNEAK_BUTTON, wgettext("Sneak"), "keymap_sneak"); + this->add_key(GUI_ID_KEY_DROP_BUTTON, wgettext("Drop"), "keymap_drop"); + this->add_key(GUI_ID_KEY_INVENTORY_BUTTON, wgettext("Inventory"), "keymap_inventory"); + this->add_key(GUI_ID_KEY_ENDERCHEST_BUTTON, wgettext("Enderchest"), "keymap_enderchest"); + this->add_key(GUI_ID_KEY_HOTBAR_PREV_BUTTON, wgettext("Prev. item"), "keymap_hotbar_previous"); + this->add_key(GUI_ID_KEY_HOTBAR_NEXT_BUTTON, wgettext("Next item"), "keymap_hotbar_next"); + this->add_key(GUI_ID_KEY_ZOOM_BUTTON, wgettext("Zoom"), "keymap_zoom"); + this->add_key(GUI_ID_KEY_CAMERA_BUTTON, wgettext("Change camera"), "keymap_camera_mode"); + this->add_key(GUI_ID_KEY_MINIMAP_BUTTON, wgettext("Toggle minimap"), "keymap_minimap"); + this->add_key(GUI_ID_KEY_FLY_BUTTON, wgettext("Toggle fly"), "keymap_freemove"); + this->add_key(GUI_ID_KEY_PITCH_MOVE, wgettext("Toggle pitchmove"), "keymap_pitchmove"); + this->add_key(GUI_ID_KEY_FAST_BUTTON, wgettext("Toggle fast"), "keymap_fastmove"); + this->add_key(GUI_ID_KEY_NOCLIP_BUTTON, wgettext("Toggle noclip"), "keymap_noclip"); + this->add_key(GUI_ID_KEY_MUTE_BUTTON, wgettext("Mute"), "keymap_mute"); + this->add_key(GUI_ID_KEY_DEC_VOLUME_BUTTON, wgettext("Dec. volume"), "keymap_decrease_volume"); + this->add_key(GUI_ID_KEY_INC_VOLUME_BUTTON, wgettext("Inc. volume"), "keymap_increase_volume"); + this->add_key(GUI_ID_KEY_AUTOFWD_BUTTON, wgettext("Autoforward"), "keymap_autoforward"); + this->add_key(GUI_ID_KEY_CHAT_BUTTON, wgettext("Chat"), "keymap_chat"); + this->add_key(GUI_ID_KEY_SCREENSHOT_BUTTON, wgettext("Screenshot"), "keymap_screenshot"); + this->add_key(GUI_ID_KEY_RANGE_BUTTON, wgettext("Range select"), "keymap_rangeselect"); + this->add_key(GUI_ID_KEY_DEC_RANGE_BUTTON, wgettext("Dec. range"), "keymap_decrease_viewing_range_min"); + this->add_key(GUI_ID_KEY_INC_RANGE_BUTTON, wgettext("Inc. range"), "keymap_increase_viewing_range_min"); + this->add_key(GUI_ID_KEY_CONSOLE_BUTTON, wgettext("Console"), "keymap_console"); + this->add_key(GUI_ID_KEY_CMD_BUTTON, wgettext("Command"), "keymap_cmd"); + this->add_key(GUI_ID_KEY_CMD_LOCAL_BUTTON, wgettext("Local command"), "keymap_cmd_local"); + this->add_key(GUI_ID_KEY_BLOCK_BOUNDS_BUTTON, wgettext("Block bounds"), "keymap_toggle_block_bounds"); + this->add_key(GUI_ID_KEY_HUD_BUTTON, wgettext("Toggle HUD"), "keymap_toggle_hud"); + this->add_key(GUI_ID_KEY_CHATLOG_BUTTON, wgettext("Toggle chat log"), "keymap_toggle_chat"); + this->add_key(GUI_ID_KEY_FOG_BUTTON, wgettext("Toggle fog"), "keymap_toggle_fog"); + this->add_key(GUI_ID_KEY_CHEAT_MENU_BUTTON, wgettext("Toggle C. Menu"), "keymap_toggle_cheat_menu"); + this->add_key(GUI_ID_KEY_KILLAURA_BUTTON, wgettext("Killaura"), "keymap_toggle_killaura"); + this->add_key(GUI_ID_KEY_FREECAM_BUTTON, wgettext("Freecam"), "keymap_toggle_freecam"); + this->add_key(GUI_ID_KEY_SCAFFOLD_BUTTON, wgettext("Scaffold"), "keymap_toggle_scaffold"); + this->add_key(GUI_ID_KEY_SELECT_UP_BUTTON, wgettext("C. Menu Up"), "keymap_select_up"); + this->add_key(GUI_ID_KEY_SELECT_DOWN_BUTTON, wgettext("C. Menu Down"), "keymap_select_down"); + this->add_key(GUI_ID_KEY_SELECT_LEFT_BUTTON, wgettext("C. Menu Left"), "keymap_select_left"); + this->add_key(GUI_ID_KEY_SELECT_RIGHT_BUTTON, wgettext("C. Menu Right"), "keymap_select_right"); + this->add_key(GUI_ID_KEY_SELECT_CONFIRM_BUTTON, wgettext("C. Menu Enter"), "keymap_select_confirm"); } diff --git a/src/gui/guiScene.cpp b/src/gui/guiScene.cpp index 08f119e07..f0cfbec5e 100644 --- a/src/gui/guiScene.cpp +++ b/src/gui/guiScene.cpp @@ -34,9 +34,6 @@ GUIScene::GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr, m_cam = m_smgr->addCameraSceneNode(0, v3f(0.f, 0.f, -100.f), v3f(0.f)); m_cam->setFOV(30.f * core::DEGTORAD); - scene::ILightSceneNode *light = m_smgr->addLightSceneNode(m_cam); - light->setRadius(1000.f); - m_smgr->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true); } @@ -60,6 +57,7 @@ scene::IAnimatedMeshSceneNode *GUIScene::setMesh(scene::IAnimatedMesh *mesh) m_mesh = m_smgr->addAnimatedMeshSceneNode(mesh); m_mesh->setPosition(-m_mesh->getBoundingBox().getCenter()); m_mesh->animateJoints(); + return m_mesh; } @@ -73,10 +71,13 @@ void GUIScene::setTexture(u32 idx, video::ITexture *texture) material.setFlag(video::EMF_FOG_ENABLE, true); material.setFlag(video::EMF_BILINEAR_FILTER, false); material.setFlag(video::EMF_BACK_FACE_CULLING, false); + material.setFlag(video::EMF_ZWRITE_ENABLE, true); } void GUIScene::draw() { + m_driver->clearBuffers(video::ECBF_DEPTH); + // Control rotation speed based on time u64 new_time = porting::getTimeMs(); u64 dtime_ms = 0; @@ -152,6 +153,23 @@ void GUIScene::setStyles(const std::array &sty setBackgroundColor(style.getColor(StyleSpec::BGCOLOR, m_bgcolor)); } +/** + * Sets the frame loop range for the mesh + */ +void GUIScene::setFrameLoop(s32 begin, s32 end) +{ + if (m_mesh->getStartFrame() != begin || m_mesh->getEndFrame() != end) + m_mesh->setFrameLoop(begin, end); +} + +/** + * Sets the animation speed (FPS) for the mesh + */ +void GUIScene::setAnimationSpeed(f32 speed) +{ + m_mesh->setAnimationSpeed(speed); +} + /* Camera control functions */ inline void GUIScene::calcOptimalDistance() diff --git a/src/gui/guiScene.h b/src/gui/guiScene.h index 707e6f66a..0f5f3a891 100644 --- a/src/gui/guiScene.h +++ b/src/gui/guiScene.h @@ -36,6 +36,8 @@ public: scene::IAnimatedMeshSceneNode *setMesh(scene::IAnimatedMesh *mesh = nullptr); void setTexture(u32 idx, video::ITexture *texture); void setBackgroundColor(const video::SColor &color) noexcept { m_bgcolor = color; }; + void setFrameLoop(s32 begin, s32 end); + void setAnimationSpeed(f32 speed); void enableMouseControl(bool enable) noexcept { m_mouse_ctrl = enable; }; void setRotation(v2f rot) noexcept { m_custom_rot = rot; }; void enableContinuousRotation(bool enable) noexcept { m_inf_rot = enable; }; diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp deleted file mode 100644 index 8be63fd6f..000000000 --- a/src/gui/intlGUIEditBox.cpp +++ /dev/null @@ -1,1597 +0,0 @@ -// 11.11.2011 11:11 ValkaTR -// -// This is a copy of intlGUIEditBox from the irrlicht, but with a -// fix in the OnEvent function, which doesn't allowed input of -// other keyboard layouts than latin-1 -// -// Characters like: ä ö ü õ ы й ю я ъ № € ° ... -// -// This fix is only needed for linux, because of a bug -// in the CIrrDeviceLinux.cpp:1014-1015 of the irrlicht -// -// Also locale in the programm should not be changed to -// a "C", "POSIX" or whatever, it should be set to "", -// or XLookupString will return nothing for the international -// characters. -// -// From the "man setlocale": -// -// On startup of the main program, the portable "C" locale -// is selected as default. A program may be made -// portable to all locales by calling: -// -// setlocale(LC_ALL, ""); -// -// after program initialization.... -// - -// Copyright (C) 2002-2013 Nikolaus Gebhardt -// This file is part of the "Irrlicht Engine". -// For conditions of distribution and use, see copyright notice in irrlicht.h - -#include -#include "intlGUIEditBox.h" - -#include "IGUISkin.h" -#include "IGUIEnvironment.h" -#include "IGUIFont.h" -#include "IVideoDriver.h" -//#include "irrlicht/os.cpp" -#include "porting.h" -//#include "Keycodes.h" -#include "log.h" - -/* - todo: - optional scrollbars - ctrl+left/right to select word - double click/ctrl click: word select + drag to select whole words, triple click to select line - optional? dragging selected text - numerical -*/ - -namespace irr -{ -namespace gui -{ - -//! constructor -intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, - IGUIEnvironment* environment, IGUIElement* parent, s32 id, - const core::rect& rectangle, bool writable, bool has_vscrollbar) - : IGUIEditBox(environment, parent, id, rectangle), - Border(border), FrameRect(rectangle), - m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable) -{ - #ifdef _DEBUG - setDebugName("intlintlGUIEditBox"); - #endif - - Text = text; - - if (Environment) - Operator = Environment->getOSOperator(); - - if (Operator) - Operator->grab(); - - // this element can be tabbed to - setTabStop(true); - setTabOrder(-1); - - IGUISkin *skin = 0; - if (Environment) - skin = Environment->getSkin(); - if (Border && skin) - { - FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - } - - if (skin && has_vscrollbar) { - m_scrollbar_width = skin->getSize(gui::EGDS_SCROLLBAR_SIZE); - - if (m_scrollbar_width > 0) { - createVScrollBar(); - } - } - - breakText(); - - calculateScrollPos(); - setWritable(writable); -} - - -//! destructor -intlGUIEditBox::~intlGUIEditBox() -{ - if (OverrideFont) - OverrideFont->drop(); - - if (Operator) - Operator->drop(); - - if (m_vscrollbar) - m_vscrollbar->drop(); -} - - -//! Sets another skin independent font. -void intlGUIEditBox::setOverrideFont(IGUIFont* font) -{ - if (OverrideFont == font) - return; - - if (OverrideFont) - OverrideFont->drop(); - - OverrideFont = font; - - if (OverrideFont) - OverrideFont->grab(); - - breakText(); -} - -IGUIFont * intlGUIEditBox::getOverrideFont() const -{ - return OverrideFont; -} - -//! Get the font which is used right now for drawing -IGUIFont* intlGUIEditBox::getActiveFont() const -{ - if ( OverrideFont ) - return OverrideFont; - IGUISkin* skin = Environment->getSkin(); - if (skin) - return skin->getFont(); - return 0; -} - -//! Sets another color for the text. -void intlGUIEditBox::setOverrideColor(video::SColor color) -{ - OverrideColor = color; - OverrideColorEnabled = true; -} - -video::SColor intlGUIEditBox::getOverrideColor() const -{ - return OverrideColor; -} - -//! Turns the border on or off -void intlGUIEditBox::setDrawBorder(bool border) -{ - Border = border; -} - -//! Sets whether to draw the background -void intlGUIEditBox::setDrawBackground(bool draw) -{ -} - -//! Sets if the text should use the overide color or the color in the gui skin. -void intlGUIEditBox::enableOverrideColor(bool enable) -{ - OverrideColorEnabled = enable; -} - -bool intlGUIEditBox::isOverrideColorEnabled() const -{ - return OverrideColorEnabled; -} - -//! Enables or disables word wrap -void intlGUIEditBox::setWordWrap(bool enable) -{ - WordWrap = enable; - breakText(); -} - - -void intlGUIEditBox::updateAbsolutePosition() -{ - core::rect oldAbsoluteRect(AbsoluteRect); - IGUIElement::updateAbsolutePosition(); - if ( oldAbsoluteRect != AbsoluteRect ) - { - breakText(); - } -} - - -//! Checks if word wrap is enabled -bool intlGUIEditBox::isWordWrapEnabled() const -{ - return WordWrap; -} - - -//! Enables or disables newlines. -void intlGUIEditBox::setMultiLine(bool enable) -{ - MultiLine = enable; -} - - -//! Checks if multi line editing is enabled -bool intlGUIEditBox::isMultiLineEnabled() const -{ - return MultiLine; -} - - -void intlGUIEditBox::setPasswordBox(bool passwordBox, wchar_t passwordChar) -{ - PasswordBox = passwordBox; - if (PasswordBox) - { - PasswordChar = passwordChar; - setMultiLine(false); - setWordWrap(false); - BrokenText.clear(); - } -} - - -bool intlGUIEditBox::isPasswordBox() const -{ - return PasswordBox; -} - - -//! Sets text justification -void intlGUIEditBox::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) -{ - HAlign = horizontal; - VAlign = vertical; -} - - -//! called if an event happened. -bool intlGUIEditBox::OnEvent(const SEvent& event) -{ - if (IsEnabled) - { - - switch(event.EventType) - { - case EET_GUI_EVENT: - if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) - { - if (event.GUIEvent.Caller == this) - { - MouseMarking = false; - setTextMarkers(0,0); - } - } - break; - case EET_KEY_INPUT_EVENT: - { -#if (defined(__linux__) || defined(__FreeBSD__)) || defined(__DragonFly__) - // ################################################################ - // ValkaTR: - // This part is the difference from the original intlGUIEditBox - // It converts UTF-8 character into a UCS-2 (wchar_t) - wchar_t wc = L'_'; - mbtowc( &wc, (char *) &event.KeyInput.Char, sizeof(event.KeyInput.Char) ); - - //printf( "char: %lc (%u) \r\n", wc, wc ); - - SEvent irrevent(event); - irrevent.KeyInput.Char = wc; - // ################################################################ - - if (processKey(irrevent)) - return true; -#else - if (processKey(event)) - return true; -#endif // defined(linux) - - break; - } - case EET_MOUSE_INPUT_EVENT: - if (processMouse(event)) - return true; - break; - default: - break; - } - } - - return IGUIElement::OnEvent(event); -} - - -bool intlGUIEditBox::processKey(const SEvent& event) -{ - if (!event.KeyInput.PressedDown) - return false; - - bool textChanged = false; - s32 newMarkBegin = MarkBegin; - s32 newMarkEnd = MarkEnd; - - // control shortcut handling - - if (event.KeyInput.Control) - { - // german backlash '\' entered with control + '?' - if ( event.KeyInput.Char == '\\' ) - { - inputChar(event.KeyInput.Char); - return true; - } - - switch(event.KeyInput.Key) - { - case KEY_KEY_A: - // select all - newMarkBegin = 0; - newMarkEnd = Text.size(); - break; - case KEY_KEY_C: - // copy to clipboard - if (!PasswordBox && Operator && MarkBegin != MarkEnd) - { - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - core::stringc s; - s = Text.subString(realmbgn, realmend - realmbgn).c_str(); - Operator->copyToClipboard(s.c_str()); - } - break; - case KEY_KEY_X: - // cut to the clipboard - if (!PasswordBox && Operator && MarkBegin != MarkEnd) { - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - // copy - core::stringc sc; - sc = Text.subString(realmbgn, realmend - realmbgn).c_str(); - Operator->copyToClipboard(sc.c_str()); - - if (IsEnabled && m_writable) { - // delete - core::stringw s; - s = Text.subString(0, realmbgn); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - - CursorPos = realmbgn; - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - } - break; - case KEY_KEY_V: - if (!IsEnabled || !m_writable) - break; - - // paste from the clipboard - if (Operator) - { - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - // add new character - const c8* p = Operator->getTextFromClipboard(); - if (p) - { - if (MarkBegin == MarkEnd) - { - // insert text - core::stringw s = Text.subString(0, CursorPos); - s.append(p); - s.append( Text.subString(CursorPos, Text.size()-CursorPos) ); - - if (!Max || s.size()<=Max) // thx to Fish FH for fix - { - Text = s; - s = p; - CursorPos += s.size(); - } - } - else - { - // replace text - - core::stringw s = Text.subString(0, realmbgn); - s.append(p); - s.append( Text.subString(realmend, Text.size()-realmend) ); - - if (!Max || s.size()<=Max) // thx to Fish FH for fix - { - Text = s; - s = p; - CursorPos = realmbgn + s.size(); - } - } - } - - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - break; - case KEY_HOME: - // move/highlight to start of text - if (event.KeyInput.Shift) - { - newMarkEnd = CursorPos; - newMarkBegin = 0; - CursorPos = 0; - } - else - { - CursorPos = 0; - newMarkBegin = 0; - newMarkEnd = 0; - } - break; - case KEY_END: - // move/highlight to end of text - if (event.KeyInput.Shift) - { - newMarkBegin = CursorPos; - newMarkEnd = Text.size(); - CursorPos = 0; - } - else - { - CursorPos = Text.size(); - newMarkBegin = 0; - newMarkEnd = 0; - } - break; - default: - return false; - } - } - // default keyboard handling - else - switch(event.KeyInput.Key) - { - case KEY_END: - { - s32 p = Text.size(); - if (WordWrap || MultiLine) - { - p = getLineFromPos(CursorPos); - p = BrokenTextPositions[p] + (s32)BrokenText[p].size(); - if (p > 0 && (Text[p-1] == L'\r' || Text[p-1] == L'\n' )) - p-=1; - } - - if (event.KeyInput.Shift) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - - newMarkEnd = p; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - CursorPos = p; - BlinkStartTime = porting::getTimeMs(); - } - break; - case KEY_HOME: - { - - s32 p = 0; - if (WordWrap || MultiLine) - { - p = getLineFromPos(CursorPos); - p = BrokenTextPositions[p]; - } - - if (event.KeyInput.Shift) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - newMarkEnd = p; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - CursorPos = p; - BlinkStartTime = porting::getTimeMs(); - } - break; - case KEY_RETURN: - if (MultiLine) - { - inputChar(L'\n'); - return true; - } - else - { - sendGuiEvent( EGET_EDITBOX_ENTER ); - } - break; - case KEY_LEFT: - - if (event.KeyInput.Shift) - { - if (CursorPos > 0) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - - newMarkEnd = CursorPos-1; - } - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - if (CursorPos > 0) CursorPos--; - BlinkStartTime = porting::getTimeMs(); - break; - - case KEY_RIGHT: - if (event.KeyInput.Shift) - { - if (Text.size() > (u32)CursorPos) - { - if (MarkBegin == MarkEnd) - newMarkBegin = CursorPos; - - newMarkEnd = CursorPos+1; - } - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - if (Text.size() > (u32)CursorPos) CursorPos++; - BlinkStartTime = porting::getTimeMs(); - break; - case KEY_UP: - if (MultiLine || (WordWrap && BrokenText.size() > 1) ) - { - s32 lineNo = getLineFromPos(CursorPos); - s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin > MarkEnd ? MarkBegin : MarkEnd); - if (lineNo > 0) - { - s32 cp = CursorPos - BrokenTextPositions[lineNo]; - if ((s32)BrokenText[lineNo-1].size() < cp) - CursorPos = BrokenTextPositions[lineNo-1] + (s32)BrokenText[lineNo-1].size()-1; - else - CursorPos = BrokenTextPositions[lineNo-1] + cp; - } - - if (event.KeyInput.Shift) - { - newMarkBegin = mb; - newMarkEnd = CursorPos; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - } - else - { - return false; - } - break; - case KEY_DOWN: - if (MultiLine || (WordWrap && BrokenText.size() > 1) ) - { - s32 lineNo = getLineFromPos(CursorPos); - s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin < MarkEnd ? MarkBegin : MarkEnd); - if (lineNo < (s32)BrokenText.size()-1) - { - s32 cp = CursorPos - BrokenTextPositions[lineNo]; - if ((s32)BrokenText[lineNo+1].size() < cp) - CursorPos = BrokenTextPositions[lineNo+1] + BrokenText[lineNo+1].size()-1; - else - CursorPos = BrokenTextPositions[lineNo+1] + cp; - } - - if (event.KeyInput.Shift) - { - newMarkBegin = mb; - newMarkEnd = CursorPos; - } - else - { - newMarkBegin = 0; - newMarkEnd = 0; - } - - } - else - { - return false; - } - break; - - case KEY_BACK: - if (!this->IsEnabled || !m_writable) - break; - - if (!Text.empty()) { - core::stringw s; - - if (MarkBegin != MarkEnd) - { - // delete marked text - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - s = Text.subString(0, realmbgn); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - - CursorPos = realmbgn; - } - else - { - // delete text behind cursor - if (CursorPos>0) - s = Text.subString(0, CursorPos-1); - else - s = L""; - s.append( Text.subString(CursorPos, Text.size()-CursorPos) ); - Text = s; - --CursorPos; - } - - if (CursorPos < 0) - CursorPos = 0; - BlinkStartTime = porting::getTimeMs(); - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - break; - case KEY_DELETE: - if (!this->IsEnabled || !m_writable) - break; - - if (!Text.empty()) { - core::stringw s; - - if (MarkBegin != MarkEnd) - { - // delete marked text - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - s = Text.subString(0, realmbgn); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - - CursorPos = realmbgn; - } - else - { - // delete text before cursor - s = Text.subString(0, CursorPos); - s.append( Text.subString(CursorPos+1, Text.size()-CursorPos-1) ); - Text = s; - } - - if (CursorPos > (s32)Text.size()) - CursorPos = (s32)Text.size(); - - BlinkStartTime = porting::getTimeMs(); - newMarkBegin = 0; - newMarkEnd = 0; - textChanged = true; - } - break; - - case KEY_ESCAPE: - case KEY_TAB: - case KEY_SHIFT: - case KEY_F1: - case KEY_F2: - case KEY_F3: - case KEY_F4: - case KEY_F5: - case KEY_F6: - case KEY_F7: - case KEY_F8: - case KEY_F9: - case KEY_F10: - case KEY_F11: - case KEY_F12: - case KEY_F13: - case KEY_F14: - case KEY_F15: - case KEY_F16: - case KEY_F17: - case KEY_F18: - case KEY_F19: - case KEY_F20: - case KEY_F21: - case KEY_F22: - case KEY_F23: - case KEY_F24: - // ignore these keys - return false; - - default: - inputChar(event.KeyInput.Char); - return true; - } - - // Set new text markers - setTextMarkers( newMarkBegin, newMarkEnd ); - - // break the text if it has changed - if (textChanged) - { - breakText(); - sendGuiEvent(EGET_EDITBOX_CHANGED); - } - - calculateScrollPos(); - - return true; -} - - -//! draws the element and its children -void intlGUIEditBox::draw() -{ - if (!IsVisible) - return; - - const bool focus = Environment->hasFocus(this); - - IGUISkin* skin = Environment->getSkin(); - if (!skin) - return; - - FrameRect = AbsoluteRect; - - // draw the border - - if (Border) - { - if (m_writable) { - skin->draw3DSunkenPane(this, skin->getColor(EGDC_WINDOW), - false, true, FrameRect, &AbsoluteClippingRect); - } - - FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - } - - updateVScrollBar(); - core::rect localClipRect = FrameRect; - localClipRect.clipAgainst(AbsoluteClippingRect); - - // draw the text - - IGUIFont* font = OverrideFont; - if (!OverrideFont) - font = skin->getFont(); - - s32 cursorLine = 0; - s32 charcursorpos = 0; - - if (font) - { - if (LastBreakFont != font) - { - breakText(); - } - - // calculate cursor pos - - core::stringw *txtLine = &Text; - s32 startPos = 0; - - core::stringw s, s2; - - // get mark position - const bool ml = (!PasswordBox && (WordWrap || MultiLine)); - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - const s32 hlineStart = ml ? getLineFromPos(realmbgn) : 0; - const s32 hlineCount = ml ? getLineFromPos(realmend) - hlineStart + 1 : 1; - const s32 lineCount = ml ? BrokenText.size() : 1; - - // Save the override color information. - // Then, alter it if the edit box is disabled. - const bool prevOver = OverrideColorEnabled; - const video::SColor prevColor = OverrideColor; - - if (!Text.empty()) { - if (!IsEnabled && !OverrideColorEnabled) - { - OverrideColorEnabled = true; - OverrideColor = skin->getColor(EGDC_GRAY_TEXT); - } - - for (s32 i=0; i < lineCount; ++i) - { - setTextRect(i); - - // clipping test - don't draw anything outside the visible area - core::rect c = localClipRect; - c.clipAgainst(CurrentTextRect); - if (!c.isValid()) - continue; - - // get current line - if (PasswordBox) - { - if (BrokenText.size() != 1) - { - BrokenText.clear(); - BrokenText.push_back(core::stringw()); - } - if (BrokenText[0].size() != Text.size()) - { - BrokenText[0] = Text; - for (u32 q = 0; q < Text.size(); ++q) - { - BrokenText[0] [q] = PasswordChar; - } - } - txtLine = &BrokenText[0]; - startPos = 0; - } - else - { - txtLine = ml ? &BrokenText[i] : &Text; - startPos = ml ? BrokenTextPositions[i] : 0; - } - - - // draw normal text - font->draw(txtLine->c_str(), CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT), - false, true, &localClipRect); - - // draw mark and marked text - if (focus && MarkBegin != MarkEnd && i >= hlineStart && i < hlineStart + hlineCount) - { - - s32 mbegin = 0, mend = 0; - s32 lineStartPos = 0, lineEndPos = txtLine->size(); - - if (i == hlineStart) - { - // highlight start is on this line - s = txtLine->subString(0, realmbgn - startPos); - mbegin = font->getDimension(s.c_str()).Width; - - // deal with kerning - mbegin += font->getKerningWidth( - &((*txtLine)[realmbgn - startPos]), - realmbgn - startPos > 0 ? &((*txtLine)[realmbgn - startPos - 1]) : 0); - - lineStartPos = realmbgn - startPos; - } - if (i == hlineStart + hlineCount - 1) - { - // highlight end is on this line - s2 = txtLine->subString(0, realmend - startPos); - mend = font->getDimension(s2.c_str()).Width; - lineEndPos = (s32)s2.size(); - } - else - mend = font->getDimension(txtLine->c_str()).Width; - - CurrentTextRect.UpperLeftCorner.X += mbegin; - CurrentTextRect.LowerRightCorner.X = CurrentTextRect.UpperLeftCorner.X + mend - mbegin; - - // draw mark - skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), CurrentTextRect, &localClipRect); - - // draw marked text - s = txtLine->subString(lineStartPos, lineEndPos - lineStartPos); - - if (!s.empty()) - font->draw(s.c_str(), CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_HIGH_LIGHT_TEXT), - false, true, &localClipRect); - - } - } - - // Return the override color information to its previous settings. - OverrideColorEnabled = prevOver; - OverrideColor = prevColor; - } - - // draw cursor - - if (WordWrap || MultiLine) - { - cursorLine = getLineFromPos(CursorPos); - txtLine = &BrokenText[cursorLine]; - startPos = BrokenTextPositions[cursorLine]; - } - s = txtLine->subString(0,CursorPos-startPos); - charcursorpos = font->getDimension(s.c_str()).Width + - font->getKerningWidth(L"_", CursorPos-startPos > 0 ? &((*txtLine)[CursorPos-startPos-1]) : 0); - - if (m_writable) { - if (focus && (porting::getTimeMs() - BlinkStartTime) % 700 < 350) { - setTextRect(cursorLine); - CurrentTextRect.UpperLeftCorner.X += charcursorpos; - - font->draw(L"_", CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT), - false, true, &localClipRect); - } - } - } - - // draw children - IGUIElement::draw(); -} - - -//! Sets the new caption of this element. -void intlGUIEditBox::setText(const wchar_t* text) -{ - Text = text; - if (u32(CursorPos) > Text.size()) - CursorPos = Text.size(); - HScrollPos = 0; - breakText(); -} - - -//! Enables or disables automatic scrolling with cursor position -//! \param enable: If set to true, the text will move around with the cursor position -void intlGUIEditBox::setAutoScroll(bool enable) -{ - AutoScroll = enable; -} - - -//! Checks to see if automatic scrolling is enabled -//! \return true if automatic scrolling is enabled, false if not -bool intlGUIEditBox::isAutoScrollEnabled() const -{ - return AutoScroll; -} - - -//! Gets the area of the text in the edit box -//! \return Returns the size in pixels of the text -core::dimension2du intlGUIEditBox::getTextDimension() -{ - core::rect ret; - - setTextRect(0); - ret = CurrentTextRect; - - for (u32 i=1; i < BrokenText.size(); ++i) - { - setTextRect(i); - ret.addInternalPoint(CurrentTextRect.UpperLeftCorner); - ret.addInternalPoint(CurrentTextRect.LowerRightCorner); - } - - return core::dimension2du(ret.getSize()); -} - - -//! Sets the maximum amount of characters which may be entered in the box. -//! \param max: Maximum amount of characters. If 0, the character amount is -//! infinity. -void intlGUIEditBox::setMax(u32 max) -{ - Max = max; - - if (Text.size() > Max && Max != 0) - Text = Text.subString(0, Max); -} - - -//! Returns maximum amount of characters, previously set by setMax(); -u32 intlGUIEditBox::getMax() const -{ - return Max; -} - - -bool intlGUIEditBox::processMouse(const SEvent& event) -{ - switch(event.MouseInput.Event) - { - case irr::EMIE_LMOUSE_LEFT_UP: - if (Environment->hasFocus(this)) - { - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - if (MouseMarking) - { - setTextMarkers( MarkBegin, CursorPos ); - } - MouseMarking = false; - calculateScrollPos(); - return true; - } - break; - case irr::EMIE_MOUSE_MOVED: - { - if (MouseMarking) - { - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers( MarkBegin, CursorPos ); - calculateScrollPos(); - return true; - } - } - break; - case EMIE_LMOUSE_PRESSED_DOWN: - if (!Environment->hasFocus(this)) - { - BlinkStartTime = porting::getTimeMs(); - MouseMarking = true; - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - setTextMarkers(CursorPos, CursorPos ); - calculateScrollPos(); - return true; - } - else - { - if (!AbsoluteClippingRect.isPointInside( - core::position2d(event.MouseInput.X, event.MouseInput.Y))) { - return false; - } - - - // move cursor - CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y); - - s32 newMarkBegin = MarkBegin; - if (!MouseMarking) - newMarkBegin = CursorPos; - - MouseMarking = true; - setTextMarkers( newMarkBegin, CursorPos); - calculateScrollPos(); - return true; - } - break; - case EMIE_MOUSE_WHEEL: - if (m_vscrollbar && m_vscrollbar->isVisible()) { - s32 pos = m_vscrollbar->getPos(); - s32 step = m_vscrollbar->getSmallStep(); - m_vscrollbar->setPos(pos - event.MouseInput.Wheel * step); - } - break; - default: - break; - } - - return false; -} - - -s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) -{ - IGUIFont* font = OverrideFont; - IGUISkin* skin = Environment->getSkin(); - if (!OverrideFont) - font = skin->getFont(); - - const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1; - - core::stringw *txtLine = NULL; - s32 startPos = 0; - u32 curr_line_idx = 0; - x += 3; - - for (; curr_line_idx < lineCount; ++curr_line_idx) { - setTextRect(curr_line_idx); - if (curr_line_idx == 0 && y < CurrentTextRect.UpperLeftCorner.Y) - y = CurrentTextRect.UpperLeftCorner.Y; - if (curr_line_idx == lineCount - 1 && y > CurrentTextRect.LowerRightCorner.Y) - y = CurrentTextRect.LowerRightCorner.Y; - - // is it inside this region? - if (y >= CurrentTextRect.UpperLeftCorner.Y && y <= CurrentTextRect.LowerRightCorner.Y) { - // we've found the clicked line - txtLine = (WordWrap || MultiLine) ? &BrokenText[curr_line_idx] : &Text; - startPos = (WordWrap || MultiLine) ? BrokenTextPositions[curr_line_idx] : 0; - break; - } - } - - if (x < CurrentTextRect.UpperLeftCorner.X) - x = CurrentTextRect.UpperLeftCorner.X; - else if (x > CurrentTextRect.LowerRightCorner.X) - x = CurrentTextRect.LowerRightCorner.X; - - s32 idx = font->getCharacterFromPos(txtLine->c_str(), x - CurrentTextRect.UpperLeftCorner.X); - // Special handling for last line, if we are on limits, add 1 extra shift because idx - // will be the last char, not null char of the wstring - if (curr_line_idx == lineCount - 1 && x == CurrentTextRect.LowerRightCorner.X) - idx++; - - return rangelim(idx + startPos, 0, S32_MAX); -} - - -//! Breaks the single text line. -void intlGUIEditBox::breakText() -{ - IGUISkin* skin = Environment->getSkin(); - - if ((!WordWrap && !MultiLine) || !skin) - return; - - BrokenText.clear(); // need to reallocate :/ - BrokenTextPositions.set_used(0); - - IGUIFont* font = OverrideFont; - if (!OverrideFont) - font = skin->getFont(); - - if (!font) - return; - - LastBreakFont = font; - - core::stringw line; - core::stringw word; - core::stringw whitespace; - s32 lastLineStart = 0; - s32 size = Text.size(); - s32 length = 0; - s32 elWidth = RelativeRect.getWidth() - m_scrollbar_width - 10; - wchar_t c; - - for (s32 i=0; igetDimension(whitespace.c_str()).Width; - s32 worldlgth = font->getDimension(word.c_str()).Width; - - if (WordWrap && length + worldlgth + whitelgth > elWidth) - { - // break to next line - length = worldlgth; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); - lastLineStart = i - (s32)word.size(); - line = word; - } - else - { - // add word to line - line += whitespace; - line += word; - length += whitelgth + worldlgth; - } - - word = L""; - whitespace = L""; - } - - whitespace += c; - - // compute line break - if (lineBreak) - { - line += whitespace; - line += word; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); - lastLineStart = i+1; - line = L""; - word = L""; - whitespace = L""; - length = 0; - } - } - else - { - // yippee this is a word.. - word += c; - } - } - - line += whitespace; - line += word; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); -} - - -void intlGUIEditBox::setTextRect(s32 line) -{ - core::dimension2du d; - - IGUISkin* skin = Environment->getSkin(); - if (!skin) - return; - - IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont(); - - if (!font) - return; - - // get text dimension - const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1; - if (WordWrap || MultiLine) - { - d = font->getDimension(BrokenText[line].c_str()); - } - else - { - d = font->getDimension(Text.c_str()); - d.Height = AbsoluteRect.getHeight(); - } - d.Height += font->getKerningHeight(); - - // justification - switch (HAlign) - { - case EGUIA_CENTER: - // align to h centre - CurrentTextRect.UpperLeftCorner.X = (FrameRect.getWidth()/2) - (d.Width/2); - CurrentTextRect.LowerRightCorner.X = (FrameRect.getWidth()/2) + (d.Width/2); - break; - case EGUIA_LOWERRIGHT: - // align to right edge - CurrentTextRect.UpperLeftCorner.X = FrameRect.getWidth() - d.Width; - CurrentTextRect.LowerRightCorner.X = FrameRect.getWidth(); - break; - default: - // align to left edge - CurrentTextRect.UpperLeftCorner.X = 0; - CurrentTextRect.LowerRightCorner.X = d.Width; - - } - - switch (VAlign) - { - case EGUIA_CENTER: - // align to v centre - CurrentTextRect.UpperLeftCorner.Y = - (FrameRect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line; - break; - case EGUIA_LOWERRIGHT: - // align to bottom edge - CurrentTextRect.UpperLeftCorner.Y = - FrameRect.getHeight() - lineCount*d.Height + d.Height*line; - break; - default: - // align to top edge - CurrentTextRect.UpperLeftCorner.Y = d.Height*line; - break; - } - - CurrentTextRect.UpperLeftCorner.X -= HScrollPos; - CurrentTextRect.LowerRightCorner.X -= HScrollPos; - CurrentTextRect.UpperLeftCorner.Y -= VScrollPos; - CurrentTextRect.LowerRightCorner.Y = CurrentTextRect.UpperLeftCorner.Y + d.Height; - - CurrentTextRect += FrameRect.UpperLeftCorner; - -} - - -s32 intlGUIEditBox::getLineFromPos(s32 pos) -{ - if (!WordWrap && !MultiLine) - return 0; - - s32 i=0; - while (i < (s32)BrokenTextPositions.size()) - { - if (BrokenTextPositions[i] > pos) - return i-1; - ++i; - } - return (s32)BrokenTextPositions.size() - 1; -} - - -void intlGUIEditBox::inputChar(wchar_t c) -{ - if (!IsEnabled || !m_writable) - return; - - if (c != 0) - { - if (Text.size() < Max || Max == 0) - { - core::stringw s; - - if (MarkBegin != MarkEnd) - { - // replace marked text - const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd; - const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin; - - s = Text.subString(0, realmbgn); - s.append(c); - s.append( Text.subString(realmend, Text.size()-realmend) ); - Text = s; - CursorPos = realmbgn+1; - } - else - { - // add new character - s = Text.subString(0, CursorPos); - s.append(c); - s.append( Text.subString(CursorPos, Text.size()-CursorPos) ); - Text = s; - ++CursorPos; - } - - BlinkStartTime = porting::getTimeMs(); - setTextMarkers(0, 0); - } - } - breakText(); - sendGuiEvent(EGET_EDITBOX_CHANGED); - calculateScrollPos(); -} - - -void intlGUIEditBox::calculateScrollPos() -{ - if (!AutoScroll) - return; - - // calculate horizontal scroll position - s32 cursLine = getLineFromPos(CursorPos); - setTextRect(cursLine); - - // don't do horizontal scrolling when wordwrap is enabled. - if (!WordWrap) - { - // get cursor position - IGUISkin* skin = Environment->getSkin(); - if (!skin) - return; - IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont(); - if (!font) - return; - - core::stringw *txtLine = MultiLine ? &BrokenText[cursLine] : &Text; - s32 cPos = MultiLine ? CursorPos - BrokenTextPositions[cursLine] : CursorPos; - - s32 cStart = CurrentTextRect.UpperLeftCorner.X + HScrollPos + - font->getDimension(txtLine->subString(0, cPos).c_str()).Width; - - s32 cEnd = cStart + font->getDimension(L"_ ").Width; - - if (FrameRect.LowerRightCorner.X < cEnd) - HScrollPos = cEnd - FrameRect.LowerRightCorner.X; - else if (FrameRect.UpperLeftCorner.X > cStart) - HScrollPos = cStart - FrameRect.UpperLeftCorner.X; - else - HScrollPos = 0; - - // todo: adjust scrollbar - } - - if (!WordWrap && !MultiLine) - return; - - // vertical scroll position - if (FrameRect.LowerRightCorner.Y < CurrentTextRect.LowerRightCorner.Y) - VScrollPos += CurrentTextRect.LowerRightCorner.Y - FrameRect.LowerRightCorner.Y; // scrolling downwards - else if (FrameRect.UpperLeftCorner.Y > CurrentTextRect.UpperLeftCorner.Y) - VScrollPos += CurrentTextRect.UpperLeftCorner.Y - FrameRect.UpperLeftCorner.Y; // scrolling upwards - - // todo: adjust scrollbar - if (m_vscrollbar) - m_vscrollbar->setPos(VScrollPos); -} - -//! set text markers -void intlGUIEditBox::setTextMarkers(s32 begin, s32 end) -{ - if ( begin != MarkBegin || end != MarkEnd ) - { - MarkBegin = begin; - MarkEnd = end; - sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); - } -} - -//! send some gui event to parent -void intlGUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type) -{ - if ( Parent ) - { - SEvent e; - e.EventType = EET_GUI_EVENT; - e.GUIEvent.Caller = this; - e.GUIEvent.Element = 0; - e.GUIEvent.EventType = type; - - Parent->OnEvent(e); - } -} - -//! Create a vertical scrollbar -void intlGUIEditBox::createVScrollBar() -{ - s32 fontHeight = 1; - - if (OverrideFont) { - fontHeight = OverrideFont->getDimension(L"").Height; - } else { - if (IGUISkin* skin = Environment->getSkin()) { - if (IGUIFont* font = skin->getFont()) { - fontHeight = font->getDimension(L"").Height; - } - } - } - - irr::core::rect scrollbarrect = FrameRect; - scrollbarrect.UpperLeftCorner.X += FrameRect.getWidth() - m_scrollbar_width; - m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1, - scrollbarrect, false, true); - - m_vscrollbar->setVisible(false); - m_vscrollbar->setSmallStep(3 * fontHeight); - m_vscrollbar->setLargeStep(10 * fontHeight); -} - -//! Update the vertical scrollbar (visibilty & scroll position) -void intlGUIEditBox::updateVScrollBar() -{ - if (!m_vscrollbar) - return; - - // OnScrollBarChanged(...) - if (m_vscrollbar->getPos() != VScrollPos) { - s32 deltaScrollY = m_vscrollbar->getPos() - VScrollPos; - CurrentTextRect.UpperLeftCorner.Y -= deltaScrollY; - CurrentTextRect.LowerRightCorner.Y -= deltaScrollY; - - s32 scrollymax = getTextDimension().Height - FrameRect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - // manage a newline or a deleted line - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - calculateScrollPos(); - } else { - // manage a newline or a deleted line - VScrollPos = m_vscrollbar->getPos(); - } - } - - // check if a vertical scrollbar is needed ? - if (getTextDimension().Height > (u32) FrameRect.getHeight()) { - s32 scrollymax = getTextDimension().Height - FrameRect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - } - - if (!m_vscrollbar->isVisible() && MultiLine) { - AbsoluteRect.LowerRightCorner.X -= m_scrollbar_width; - - m_vscrollbar->setVisible(true); - } - } else { - if (m_vscrollbar->isVisible()) { - AbsoluteRect.LowerRightCorner.X += m_scrollbar_width; - - VScrollPos = 0; - m_vscrollbar->setPos(0); - m_vscrollbar->setMax(1); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - m_vscrollbar->setVisible(false); - } - } -} - -void intlGUIEditBox::setWritable(bool can_write_text) -{ - m_writable = can_write_text; -} - -//! Writes attributes of the element. -void intlGUIEditBox::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const -{ - // IGUIEditBox::serializeAttributes(out,options); - - out->addBool ("OverrideColorEnabled",OverrideColorEnabled ); - out->addColor ("OverrideColor", OverrideColor); - // out->addFont("OverrideFont",OverrideFont); - out->addInt ("MaxChars", Max); - out->addBool ("WordWrap", WordWrap); - out->addBool ("MultiLine", MultiLine); - out->addBool ("AutoScroll", AutoScroll); - out->addBool ("PasswordBox", PasswordBox); - core::stringw ch = L" "; - ch[0] = PasswordChar; - out->addString("PasswordChar", ch.c_str()); - out->addEnum ("HTextAlign", HAlign, GUIAlignmentNames); - out->addEnum ("VTextAlign", VAlign, GUIAlignmentNames); - out->addBool ("Writable", m_writable); - - IGUIEditBox::serializeAttributes(out,options); -} - - -//! Reads attributes of the element -void intlGUIEditBox::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) -{ - IGUIEditBox::deserializeAttributes(in,options); - - setOverrideColor(in->getAttributeAsColor("OverrideColor")); - enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled")); - setMax(in->getAttributeAsInt("MaxChars")); - setWordWrap(in->getAttributeAsBool("WordWrap")); - setMultiLine(in->getAttributeAsBool("MultiLine")); - setAutoScroll(in->getAttributeAsBool("AutoScroll")); - core::stringw ch = in->getAttributeAsStringW("PasswordChar"); - - if (ch.empty()) - setPasswordBox(in->getAttributeAsBool("PasswordBox")); - else - setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]); - - setTextAlignment( (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames), - (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames)); - - setWritable(in->getAttributeAsBool("Writable")); - // setOverrideFont(in->getAttributeAsFont("OverrideFont")); -} - - -} // end namespace gui -} // end namespace irr diff --git a/src/gui/intlGUIEditBox.h b/src/gui/intlGUIEditBox.h deleted file mode 100644 index 9d643495e..000000000 --- a/src/gui/intlGUIEditBox.h +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright (C) 2002-2013 Nikolaus Gebhardt -// This file is part of the "Irrlicht Engine". -// For conditions of distribution and use, see copyright notice in irrlicht.h - -#pragma once - -#include "IrrCompileConfig.h" -//#ifdef _IRR_COMPILE_WITH_GUI_ - -#include -#include "irrArray.h" -#include "IOSOperator.h" -#include "guiScrollBar.h" - -namespace irr -{ -namespace gui -{ - class intlGUIEditBox : public IGUIEditBox - { - public: - - //! constructor - intlGUIEditBox(const wchar_t* text, bool border, IGUIEnvironment* environment, - IGUIElement* parent, s32 id, const core::rect& rectangle, - bool writable = true, bool has_vscrollbar = false); - - //! destructor - virtual ~intlGUIEditBox(); - - //! Sets another skin independent font. - virtual void setOverrideFont(IGUIFont* font=0); - - //! Gets the override font (if any) - /** \return The override font (may be 0) */ - virtual IGUIFont* getOverrideFont() const; - - //! Get the font which is used right now for drawing - /** Currently this is the override font when one is set and the - font of the active skin otherwise */ - virtual IGUIFont* getActiveFont() const; - - //! Sets another color for the text. - virtual void setOverrideColor(video::SColor color); - - //! Gets the override color - virtual video::SColor getOverrideColor() const; - - //! Sets if the text should use the overide color or the - //! color in the gui skin. - virtual void enableOverrideColor(bool enable); - - //! Checks if an override color is enabled - /** \return true if the override color is enabled, false otherwise */ - virtual bool isOverrideColorEnabled(void) const; - - //! Sets whether to draw the background - virtual void setDrawBackground(bool draw); - - virtual bool isDrawBackgroundEnabled() const { return true; } - - //! Turns the border on or off - virtual void setDrawBorder(bool border); - - virtual bool isDrawBorderEnabled() const { return Border; } - - //! Enables or disables word wrap for using the edit box as multiline text editor. - virtual void setWordWrap(bool enable); - - //! Checks if word wrap is enabled - //! \return true if word wrap is enabled, false otherwise - virtual bool isWordWrapEnabled() const; - - //! Enables or disables newlines. - /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired, - instead a newline character will be inserted. */ - virtual void setMultiLine(bool enable); - - //! Checks if multi line editing is enabled - //! \return true if mult-line is enabled, false otherwise - virtual bool isMultiLineEnabled() const; - - //! Enables or disables automatic scrolling with cursor position - //! \param enable: If set to true, the text will move around with the cursor position - virtual void setAutoScroll(bool enable); - - //! Checks to see if automatic scrolling is enabled - //! \return true if automatic scrolling is enabled, false if not - virtual bool isAutoScrollEnabled() const; - - //! Gets the size area of the text in the edit box - //! \return Returns the size in pixels of the text - virtual core::dimension2du getTextDimension(); - - //! Sets text justification - virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical); - - //! called if an event happened. - virtual bool OnEvent(const SEvent& event); - - //! draws the element and its children - virtual void draw(); - - //! Sets the new caption of this element. - virtual void setText(const wchar_t* text); - - //! Sets the maximum amount of characters which may be entered in the box. - //! \param max: Maximum amount of characters. If 0, the character amount is - //! infinity. - virtual void setMax(u32 max); - - //! Returns maximum amount of characters, previously set by setMax(); - virtual u32 getMax() const; - - //! Sets whether the edit box is a password box. Setting this to true will - /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x - \param passwordBox: true to enable password, false to disable - \param passwordChar: the character that is displayed instead of letters */ - virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*'); - - //! Returns true if the edit box is currently a password box. - virtual bool isPasswordBox() const; - - //! Updates the absolute position, splits text if required - virtual void updateAbsolutePosition(); - - //! set true if this EditBox is writable - virtual void setWritable(bool can_write_text); - - //! Writes attributes of the element. - virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const; - - //! Reads attributes of the element - virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options); - - virtual void setCursorChar(const wchar_t cursorChar) {} - - virtual wchar_t getCursorChar() const { return L'|'; } - - virtual void setCursorBlinkTime(u32 timeMs) {} - - virtual u32 getCursorBlinkTime() const { return 500; } - - protected: - //! Breaks the single text line. - void breakText(); - //! sets the area of the given line - void setTextRect(s32 line); - //! returns the line number that the cursor is on - s32 getLineFromPos(s32 pos); - //! adds a letter to the edit box - void inputChar(wchar_t c); - //! calculates the current scroll position - void calculateScrollPos(); - //! send some gui event to parent - void sendGuiEvent(EGUI_EVENT_TYPE type); - //! set text markers - void setTextMarkers(s32 begin, s32 end); - - bool processKey(const SEvent& event); - bool processMouse(const SEvent& event); - s32 getCursorPos(s32 x, s32 y); - - //! Create a vertical scrollbar - void createVScrollBar(); - - //! Update the vertical scrollbar (visibilty & scroll position) - void updateVScrollBar(); - - bool MouseMarking = false; - bool Border; - bool OverrideColorEnabled = false; - s32 MarkBegin = 0; - s32 MarkEnd = 0; - - video::SColor OverrideColor = video::SColor(101,255,255,255); - gui::IGUIFont *OverrideFont = nullptr; - gui::IGUIFont *LastBreakFont = nullptr; - IOSOperator *Operator = nullptr; - - u64 BlinkStartTime = 0; - s32 CursorPos = 0; - s32 HScrollPos = 0; - s32 VScrollPos = 0; // scroll position in characters - u32 Max = 0; - - bool WordWrap = false; - bool MultiLine = false; - bool AutoScroll = true; - bool PasswordBox = false; - wchar_t PasswordChar = L'*'; - EGUI_ALIGNMENT HAlign = EGUIA_UPPERLEFT; - EGUI_ALIGNMENT VAlign = EGUIA_CENTER; - - core::array BrokenText; - core::array BrokenTextPositions; - - core::rect CurrentTextRect = core::rect(0,0,1,1); - core::rect FrameRect; // temporary values - u32 m_scrollbar_width; - GUIScrollBar *m_vscrollbar; - bool m_writable; - - }; - - -} // end namespace gui -} // end namespace irr - -//#endif // _IRR_COMPILE_WITH_GUI_ diff --git a/src/gui/modalMenu.cpp b/src/gui/modalMenu.cpp index 9b1e6dd9c..0d3fb55f0 100644 --- a/src/gui/modalMenu.cpp +++ b/src/gui/modalMenu.cpp @@ -183,6 +183,64 @@ static bool isChild(gui::IGUIElement *tocheck, gui::IGUIElement *parent) return false; } +#ifdef __ANDROID__ + +bool GUIModalMenu::simulateMouseEvent( + gui::IGUIElement *target, ETOUCH_INPUT_EVENT touch_event) +{ + SEvent mouse_event{}; // value-initialized, not unitialized + mouse_event.EventType = EET_MOUSE_INPUT_EVENT; + mouse_event.MouseInput.X = m_pointer.X; + mouse_event.MouseInput.Y = m_pointer.Y; + switch (touch_event) { + case ETIE_PRESSED_DOWN: + mouse_event.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN; + mouse_event.MouseInput.ButtonStates = EMBSM_LEFT; + break; + case ETIE_MOVED: + mouse_event.MouseInput.Event = EMIE_MOUSE_MOVED; + mouse_event.MouseInput.ButtonStates = EMBSM_LEFT; + break; + case ETIE_LEFT_UP: + mouse_event.MouseInput.Event = EMIE_LMOUSE_LEFT_UP; + mouse_event.MouseInput.ButtonStates = 0; + break; + default: + return false; + } + if (preprocessEvent(mouse_event)) + return true; + if (!target) + return false; + return target->OnEvent(mouse_event); +} + +void GUIModalMenu::enter(gui::IGUIElement *hovered) +{ + sanity_check(!m_hovered); + m_hovered.grab(hovered); + SEvent gui_event{}; + gui_event.EventType = EET_GUI_EVENT; + gui_event.GUIEvent.Caller = m_hovered.get(); + gui_event.GUIEvent.EventType = EGET_ELEMENT_HOVERED; + gui_event.GUIEvent.Element = gui_event.GUIEvent.Caller; + m_hovered->OnEvent(gui_event); +} + +void GUIModalMenu::leave() +{ + if (!m_hovered) + return; + SEvent gui_event{}; + gui_event.EventType = EET_GUI_EVENT; + gui_event.GUIEvent.Caller = m_hovered.get(); + gui_event.GUIEvent.EventType = EGET_ELEMENT_LEFT; + m_hovered->OnEvent(gui_event); + m_hovered.reset(); +} + +#endif + bool GUIModalMenu::preprocessEvent(const SEvent &event) { #ifdef __ANDROID__ @@ -230,89 +288,50 @@ bool GUIModalMenu::preprocessEvent(const SEvent &event) } if (event.EventType == EET_TOUCH_INPUT_EVENT) { - SEvent translated; - memset(&translated, 0, sizeof(SEvent)); - translated.EventType = EET_MOUSE_INPUT_EVENT; - gui::IGUIElement *root = Environment->getRootGUIElement(); + irr_ptr holder; + holder.grab(this); // keep this alive until return (it might be dropped downstream [?]) - if (!root) { - errorstream << "GUIModalMenu::preprocessEvent" - << " unable to get root element" << std::endl; - return false; - } - gui::IGUIElement *hovered = - root->getElementFromPoint(core::position2d( - event.TouchInput.X, event.TouchInput.Y)); - - translated.MouseInput.X = event.TouchInput.X; - translated.MouseInput.Y = event.TouchInput.Y; - translated.MouseInput.Control = false; - - if (event.TouchInput.touchedCount == 1) { - switch (event.TouchInput.Event) { - case ETIE_PRESSED_DOWN: + switch ((int)event.TouchInput.touchedCount) { + case 1: { + if (event.TouchInput.Event == ETIE_PRESSED_DOWN || event.TouchInput.Event == ETIE_MOVED) m_pointer = v2s32(event.TouchInput.X, event.TouchInput.Y); - translated.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN; - translated.MouseInput.ButtonStates = EMBSM_LEFT; + if (event.TouchInput.Event == ETIE_PRESSED_DOWN) m_down_pos = m_pointer; - break; - case ETIE_MOVED: - m_pointer = v2s32(event.TouchInput.X, event.TouchInput.Y); - translated.MouseInput.Event = EMIE_MOUSE_MOVED; - translated.MouseInput.ButtonStates = EMBSM_LEFT; - break; - case ETIE_LEFT_UP: - translated.MouseInput.Event = EMIE_LMOUSE_LEFT_UP; - translated.MouseInput.ButtonStates = 0; - hovered = root->getElementFromPoint(m_down_pos); - // we don't have a valid pointer element use last - // known pointer pos - translated.MouseInput.X = m_pointer.X; - translated.MouseInput.Y = m_pointer.Y; - - // reset down pos - m_down_pos = v2s32(0, 0); - break; - default: - break; + gui::IGUIElement *hovered = Environment->getRootGUIElement()->getElementFromPoint(core::position2d(m_pointer)); + if (event.TouchInput.Event == ETIE_PRESSED_DOWN) + Environment->setFocus(hovered); + if (m_hovered != hovered) { + leave(); + enter(hovered); } - } else if ((event.TouchInput.touchedCount == 2) && - (event.TouchInput.Event == ETIE_PRESSED_DOWN)) { - hovered = root->getElementFromPoint(m_down_pos); - - translated.MouseInput.Event = EMIE_RMOUSE_PRESSED_DOWN; - translated.MouseInput.ButtonStates = EMBSM_LEFT | EMBSM_RIGHT; - translated.MouseInput.X = m_pointer.X; - translated.MouseInput.Y = m_pointer.Y; - if (hovered) - hovered->OnEvent(translated); - - translated.MouseInput.Event = EMIE_RMOUSE_LEFT_UP; - translated.MouseInput.ButtonStates = EMBSM_LEFT; - - if (hovered) - hovered->OnEvent(translated); - - return true; - } else { - // ignore unhandled 2 touch events (accidental moving for example) + gui::IGUIElement *focused = Environment->getFocus(); + bool ret = simulateMouseEvent(focused, event.TouchInput.Event); + if (!ret && m_hovered != focused) + ret = simulateMouseEvent(m_hovered.get(), event.TouchInput.Event); + if (event.TouchInput.Event == ETIE_LEFT_UP) + leave(); + return ret; + } + case 2: { + if (event.TouchInput.Event != ETIE_PRESSED_DOWN) + return true; // ignore + auto focused = Environment->getFocus(); + if (!focused) + return true; + SEvent rclick_event{}; + rclick_event.EventType = EET_MOUSE_INPUT_EVENT; + rclick_event.MouseInput.Event = EMIE_RMOUSE_PRESSED_DOWN; + rclick_event.MouseInput.ButtonStates = EMBSM_LEFT | EMBSM_RIGHT; + rclick_event.MouseInput.X = m_pointer.X; + rclick_event.MouseInput.Y = m_pointer.Y; + focused->OnEvent(rclick_event); + rclick_event.MouseInput.Event = EMIE_RMOUSE_LEFT_UP; + rclick_event.MouseInput.ButtonStates = EMBSM_LEFT; + focused->OnEvent(rclick_event); return true; } - - // check if translated event needs to be preprocessed again - if (preprocessEvent(translated)) + default: // ignored return true; - - if (hovered) { - grab(); - bool retval = hovered->OnEvent(translated); - - if (event.TouchInput.Event == ETIE_LEFT_UP) - // reset pointer - m_pointer = v2s32(0, 0); - - drop(); - return retval; } } #endif diff --git a/src/gui/modalMenu.h b/src/gui/modalMenu.h index 1cb687f82..ed0da3205 100644 --- a/src/gui/modalMenu.h +++ b/src/gui/modalMenu.h @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include "irrlichttypes_extrabloated.h" +#include "irr_ptr.h" #include "util/string.h" class GUIModalMenu; @@ -100,4 +101,12 @@ private: // This might be necessary to expose to the implementation if it // wants to launch other menus bool m_allow_focus_removal = false; + +#ifdef __ANDROID__ + irr_ptr m_hovered; + + bool simulateMouseEvent(gui::IGUIElement *target, ETOUCH_INPUT_EVENT touch_event); + void enter(gui::IGUIElement *element); + void leave(); +#endif }; diff --git a/src/gui/touchscreengui.cpp b/src/gui/touchscreengui.cpp index 0d64aa618..78b18c2d9 100644 --- a/src/gui/touchscreengui.cpp +++ b/src/gui/touchscreengui.cpp @@ -40,7 +40,7 @@ const char **button_imagenames = (const char *[]) { "jump_btn.png", "down.png", "zoom.png", - "aux_btn.png" + "aux1_btn.png" }; const char **joystick_imagenames = (const char *[]) { @@ -80,8 +80,8 @@ static irr::EKEY_CODE id2keycode(touch_gui_button_id id) case zoom_id: key = "zoom"; break; - case special1_id: - key = "special1"; + case aux1_id: + key = "aux1"; break; case fly_id: key = "freemove"; @@ -425,7 +425,7 @@ TouchScreenGUI::TouchScreenGUI(IrrlichtDevice *device, IEventReceiver *receiver) m_touchscreen_threshold = g_settings->getU16("touchscreen_threshold"); m_fixed_joystick = g_settings->getBool("fixed_virtual_joystick"); - m_joystick_triggers_special1 = g_settings->getBool("virtual_joystick_triggers_aux"); + m_joystick_triggers_aux1 = g_settings->getBool("virtual_joystick_triggers_aux1"); m_screensize = m_device->getVideoDriver()->getScreenSize(); button_size = MYMIN(m_screensize.Y / 4.5f, porting::getDisplayDensity() * @@ -521,9 +521,9 @@ void TouchScreenGUI::init(ISimpleTextureSource *tsrc) m_screensize.Y - (3 * button_size)), L"z", false); - // init special1/aux button - if (!m_joystick_triggers_special1) - initButton(special1_id, + // init aux1 button + if (!m_joystick_triggers_aux1) + initButton(aux1_id, rect(m_screensize.X - (1.25 * button_size), m_screensize.Y - (2.5 * button_size), m_screensize.X - (0.25 * button_size), @@ -881,8 +881,7 @@ void TouchScreenGUI::translateEvent(const SEvent &event) s32 dyj = event.TouchInput.Y - m_screensize.Y + button_size * 5.0f / 2.0f; bool inside_joystick = (dxj * dxj + dyj * dyj <= button_size * button_size * 1.5 * 1.5); - if (m_joystick_has_really_moved || - (!m_joystick_has_really_moved && inside_joystick) || + if (m_joystick_has_really_moved || inside_joystick || (!m_fixed_joystick && distance_sq > m_touchscreen_threshold * m_touchscreen_threshold)) { m_joystick_has_really_moved = true; @@ -924,7 +923,7 @@ void TouchScreenGUI::translateEvent(const SEvent &event) } if (distance > button_size) { - m_joystick_status[j_special1] = true; + m_joystick_status[j_aux1] = true; // move joystick "button" s32 ndx = button_size * dx / distance - button_size / 2.0f; s32 ndy = button_size * dy / distance - button_size / 2.0f; @@ -1040,7 +1039,7 @@ bool TouchScreenGUI::doubleTapDetection() void TouchScreenGUI::applyJoystickStatus() { for (unsigned int i = 0; i < 5; i++) { - if (i == 4 && !m_joystick_triggers_special1) + if (i == 4 && !m_joystick_triggers_aux1) continue; SEvent translated{}; diff --git a/src/gui/touchscreengui.h b/src/gui/touchscreengui.h index 761d33207..ad5abae87 100644 --- a/src/gui/touchscreengui.h +++ b/src/gui/touchscreengui.h @@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "irrlichttypes.h" #include #include #include @@ -38,7 +39,7 @@ typedef enum jump_id = 0, crunch_id, zoom_id, - special1_id, + aux1_id, after_last_element_id, settings_starter_id, rare_controls_starter_id, @@ -68,7 +69,7 @@ typedef enum j_backward, j_left, j_right, - j_special1 + j_aux1 } touch_gui_joystick_move_id; typedef enum @@ -216,7 +217,7 @@ private: // forward, backward, left, right touch_gui_button_id m_joystick_names[5] = { - forward_id, backward_id, left_id, right_id, special1_id}; + forward_id, backward_id, left_id, right_id, aux1_id}; bool m_joystick_status[5] = {false, false, false, false, false}; /* @@ -236,7 +237,7 @@ private: int m_joystick_id = -1; bool m_joystick_has_really_moved = false; bool m_fixed_joystick = false; - bool m_joystick_triggers_special1 = false; + bool m_joystick_triggers_aux1 = false; button_info *m_joystick_btn_off = nullptr; button_info *m_joystick_btn_bg = nullptr; button_info *m_joystick_btn_center = nullptr; diff --git a/src/httpfetch.cpp b/src/httpfetch.cpp index 65202ce3e..6137782ff 100644 --- a/src/httpfetch.cpp +++ b/src/httpfetch.cpp @@ -22,7 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include -#include +#include #include #include #include "network/socket.h" // for select() @@ -37,13 +37,14 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "settings.h" #include "noise.h" -std::mutex g_httpfetch_mutex; -std::map > g_httpfetch_results; -PcgRandom g_callerid_randomness; +static std::mutex g_httpfetch_mutex; +static std::unordered_map> + g_httpfetch_results; +static PcgRandom g_callerid_randomness; HTTPFetchRequest::HTTPFetchRequest() : timeout(g_settings->getS32("curl_timeout")), - connect_timeout(timeout), + connect_timeout(10 * 1000), useragent(std::string(PROJECT_NAME_C "/") + g_version_hash + " (" + porting::get_sysinfo() + ")") { } @@ -54,7 +55,7 @@ static void httpfetch_deliver_result(const HTTPFetchResult &fetch_result) unsigned long caller = fetch_result.caller; if (caller != HTTPFETCH_DISCARD) { MutexAutoLock lock(g_httpfetch_mutex); - g_httpfetch_results[caller].push(fetch_result); + g_httpfetch_results[caller].emplace(fetch_result); } } @@ -67,8 +68,7 @@ unsigned long httpfetch_caller_alloc() // Check each caller ID except HTTPFETCH_DISCARD const unsigned long discard = HTTPFETCH_DISCARD; for (unsigned long caller = discard + 1; caller != discard; ++caller) { - std::map >::iterator - it = g_httpfetch_results.find(caller); + auto it = g_httpfetch_results.find(caller); if (it == g_httpfetch_results.end()) { verbosestream << "httpfetch_caller_alloc: allocating " << caller << std::endl; @@ -127,8 +127,7 @@ bool httpfetch_async_get(unsigned long caller, HTTPFetchResult &fetch_result) MutexAutoLock lock(g_httpfetch_mutex); // Check that caller exists - std::map >::iterator - it = g_httpfetch_results.find(caller); + auto it = g_httpfetch_results.find(caller); if (it == g_httpfetch_results.end()) return false; @@ -138,7 +137,7 @@ bool httpfetch_async_get(unsigned long caller, HTTPFetchResult &fetch_result) return false; // Pop first result - fetch_result = caller_results.front(); + fetch_result = std::move(caller_results.front()); caller_results.pop(); return true; } diff --git a/src/inventory.cpp b/src/inventory.cpp index 1ef9b13cd..fc1aaf371 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -965,13 +965,14 @@ InventoryList * Inventory::getList(const std::string &name) { s32 i = getListIndex(name); if(i == -1) - return NULL; + return nullptr; return m_lists[i]; } std::vector Inventory::getLists() { std::vector lists; + lists.reserve(m_lists.size()); for (auto list : m_lists) { lists.push_back(list); } @@ -990,11 +991,11 @@ bool Inventory::deleteList(const std::string &name) return true; } -const InventoryList * Inventory::getList(const std::string &name) const +const InventoryList *Inventory::getList(const std::string &name) const { s32 i = getListIndex(name); if(i == -1) - return NULL; + return nullptr; return m_lists[i]; } diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp index 635bd2e4b..1e81c1dbc 100644 --- a/src/inventorymanager.cpp +++ b/src/inventorymanager.cpp @@ -301,6 +301,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame if (!list_to->getItem(dest_i).empty()) { to_i = dest_i; apply(mgr, player, gamedef); + assert(move_count <= count); count -= move_count; } } @@ -339,7 +340,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame */ ItemStack src_item = list_from->getItem(from_i); - if (count > 0) + if (count > 0 && count < src_item.count) src_item.count = count; if (src_item.empty()) return; @@ -352,10 +353,12 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame bool allow_swap = !list_to->itemFits(to_i, src_item, &restitem) && restitem.count == src_item.count && !caused_by_move_somewhere; + move_count = src_item.count - restitem.count; // Shift-click: Cannot fill this stack, proceed with next slot - if (caused_by_move_somewhere && restitem.count == src_item.count) + if (caused_by_move_somewhere && move_count == 0) { return; + } if (allow_swap) { // Swap will affect the entire stack if it can performed. @@ -384,9 +387,16 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame src_can_take_count = dst_can_put_count = 0; } else { // Take from one inventory, put into another + int src_item_count = src_item.count; + if (caused_by_move_somewhere) + // When moving somewhere: temporarily use the actual movable stack + // size to ensure correct callback execution. + src_item.count = move_count; dst_can_put_count = allowPut(src_item, player); src_can_take_count = allowTake(src_item, player); - + if (caused_by_move_somewhere) + // Reset source item count + src_item.count = src_item_count; bool swap_expected = allow_swap; allow_swap = allow_swap && (src_can_take_count == -1 || src_can_take_count >= src_item.count) @@ -416,12 +426,17 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame count = src_can_take_count; if (dst_can_put_count != -1 && count > dst_can_put_count) count = dst_can_put_count; + /* Limit according to source item count */ if (count > list_from->getItem(from_i).count) count = list_from->getItem(from_i).count; /* If no items will be moved, don't go further */ if (count == 0) { + if (caused_by_move_somewhere) + // Set move count to zero, as no items have been moved + move_count = 0; + // Undo client prediction. See 'clientApply' if (from_inv.type == InventoryLocation::PLAYER) list_from->setModified(); @@ -438,6 +453,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame <<" list=\""<& position, video::SColor color, bool hcenter, bool vcenter, const core::rect* clip) { - draw(EnrichedString(std::wstring(text.c_str()), color), position, color, hcenter, vcenter, clip); + draw(EnrichedString(std::wstring(text.c_str()), color), position, hcenter, vcenter, clip); } -void CGUITTFont::draw(const EnrichedString &text, const core::rect& position, video::SColor color, bool hcenter, bool vcenter, const core::rect* clip) +void CGUITTFont::draw(const EnrichedString &text, const core::rect& position, bool hcenter, bool vcenter, const core::rect* clip) { - std::vector colors = text.getColors(); + const std::vector &colors = text.getColors(); if (!Driver) return; @@ -563,6 +562,7 @@ void CGUITTFont::draw(const EnrichedString &text, const core::rect& positio { Glyph_Pages[i]->render_positions.clear(); Glyph_Pages[i]->render_source_rects.clear(); + Glyph_Pages[i]->render_colors.clear(); } // Set up some variables. @@ -591,7 +591,6 @@ void CGUITTFont::draw(const EnrichedString &text, const core::rect& positio u32 n; uchar32_t previousChar = 0; core::ustring::const_iterator iter(utext); - std::vector applied_colors; while (!iter.atEnd()) { uchar32_t currentChar = *iter; @@ -637,12 +636,36 @@ void CGUITTFont::draw(const EnrichedString &text, const core::rect& positio CGUITTGlyphPage* const page = Glyph_Pages[glyph.glyph_page]; page->render_positions.push_back(core::position2di(offset.X + offx, offset.Y + offy)); page->render_source_rects.push_back(glyph.source_rect); + if (iter.getPos() < colors.size()) + page->render_colors.push_back(colors[iter.getPos()]); + else + page->render_colors.push_back(video::SColor(255,255,255,255)); Render_Map.set(glyph.glyph_page, page); - u32 current_color = iter.getPos(); - if (current_color < colors.size()) - applied_colors.push_back(colors[current_color]); } - offset.X += getWidthFromCharacter(currentChar); + if (n > 0) + { + offset.X += getWidthFromCharacter(currentChar); + } + else if (fallback != 0) + { + // Let the fallback font draw it, this isn't super efficient but hopefully that doesn't matter + wchar_t l1[] = { (wchar_t) currentChar, 0 }, l2 = (wchar_t) previousChar; + + if (visible) + { + // Apply kerning. + offset.X += fallback->getKerningWidth(l1, &l2); + offset.Y += fallback->getKerningHeight(); + + u32 current_color = iter.getPos(); + fallback->draw(core::stringw(l1), + core::rect({offset.X-1, offset.Y-1}, position.LowerRightCorner), // ??? + current_color < colors.size() ? colors[current_color] : video::SColor(255, 255, 255, 255), + false, false, clip); + } + + offset.X += fallback->getDimension(l1).Width; + } previousChar = currentChar; ++iter; @@ -666,16 +689,24 @@ void CGUITTFont::draw(const EnrichedString &text, const core::rect& positio for (size_t i = 0; i < page->render_positions.size(); ++i) page->render_positions[i] -= core::vector2di(shadow_offset, shadow_offset); } + // render runs of matching color in batch + size_t ibegin; + video::SColor colprev; for (size_t i = 0; i < page->render_positions.size(); ++i) { - irr::video::SColor col; - if (!applied_colors.empty()) { - col = applied_colors[i < applied_colors.size() ? i : 0]; - } else { - col = irr::video::SColor(255, 255, 255, 255); - } + ibegin = i; + colprev = page->render_colors[i]; + do + ++i; + while (i < page->render_positions.size() && page->render_colors[i] == colprev); + core::array tmp_positions; + core::array tmp_source_rects; + tmp_positions.set_pointer(&page->render_positions[ibegin], i - ibegin, false, false); // no copy + tmp_source_rects.set_pointer(&page->render_source_rects[ibegin], i - ibegin, false, false); + --i; + if (!use_transparency) - col.color |= 0xff000000; - Driver->draw2DImage(page->texture, page->render_positions[i], page->render_source_rects[i], clip, col, true); + colprev.color |= 0xff000000; + Driver->draw2DImageBatch(page->texture, tmp_positions, tmp_source_rects, clip, colprev, true); } } } @@ -768,6 +799,12 @@ inline u32 CGUITTFont::getWidthFromCharacter(uchar32_t c) const int w = Glyphs[n-1].advance.x / 64; return w; } + if (fallback != 0) + { + wchar_t s[] = { (wchar_t) c, 0 }; + return fallback->getDimension(s).Width; + } + if (c >= 0x2000) return (font_metrics.ascender / 64); else return (font_metrics.ascender / 64) / 2; @@ -791,6 +828,12 @@ inline u32 CGUITTFont::getHeightFromCharacter(uchar32_t c) const s32 height = (font_metrics.ascender / 64) - Glyphs[n-1].offset.Y + Glyphs[n-1].source_rect.getHeight(); return height; } + if (fallback != 0) + { + wchar_t s[] = { (wchar_t) c, 0 }; + return fallback->getDimension(s).Height; + } + if (c >= 0x2000) return (font_metrics.ascender / 64); else return (font_metrics.ascender / 64) / 2; @@ -806,9 +849,9 @@ u32 CGUITTFont::getGlyphIndexByChar(uchar32_t c) const // Get the glyph. u32 glyph = FT_Get_Char_Index(tt_face, c); - // Check for a valid glyph. If it is invalid, attempt to use the replacement character. + // Check for a valid glyph. if (glyph == 0) - glyph = FT_Get_Char_Index(tt_face, core::unicode::UTF_REPLACEMENT_CHARACTER); + return 0; // If our glyph is already loaded, don't bother doing any batch loading code. if (glyph != 0 && Glyphs[glyph - 1].isLoaded) @@ -924,13 +967,26 @@ core::vector2di CGUITTFont::getKerning(const uchar32_t thisLetter, const uchar32 core::vector2di ret(GlobalKerningWidth, GlobalKerningHeight); + u32 n = getGlyphIndexByChar(thisLetter); + + // If we don't have this glyph, ask fallback font + if (n == 0) + { + if (fallback != 0) { + wchar_t l1 = (wchar_t) thisLetter, l2 = (wchar_t) previousLetter; + ret.X = fallback->getKerningWidth(&l1, &l2); + ret.Y = fallback->getKerningHeight(); + } + return ret; + } + // If we don't have kerning, no point in continuing. if (!FT_HAS_KERNING(tt_face)) return ret; // Get the kerning information. FT_Vector v; - FT_Get_Kerning(tt_face, getGlyphIndexByChar(previousLetter), getGlyphIndexByChar(thisLetter), FT_KERNING_DEFAULT, &v); + FT_Get_Kerning(tt_face, getGlyphIndexByChar(previousLetter), n, FT_KERNING_DEFAULT, &v); // If we have a scalable font, the return value will be in font points. if (FT_IS_SCALABLE(tt_face)) @@ -962,6 +1018,9 @@ void CGUITTFont::setInvisibleCharacters(const core::ustring& s) video::IImage* CGUITTFont::createTextureFromChar(const uchar32_t& ch) { u32 n = getGlyphIndexByChar(ch); + if (n == 0) + n = getGlyphIndexByChar((uchar32_t) core::unicode::UTF_REPLACEMENT_CHARACTER); + const SGUITTGlyph& glyph = Glyphs[n-1]; CGUITTGlyphPage* page = Glyph_Pages[glyph.glyph_page]; @@ -971,11 +1030,7 @@ video::IImage* CGUITTFont::createTextureFromChar(const uchar32_t& ch) video::ITexture* tex = page->texture; // Acquire a read-only lock of the corresponding page texture. - #if IRRLICHT_VERSION_MAJOR==1 && IRRLICHT_VERSION_MINOR>=8 void* ptr = tex->lock(video::ETLM_READ_ONLY); - #else - void* ptr = tex->lock(true); - #endif video::ECOLOR_FORMAT format = tex->getColorFormat(); core::dimension2du tex_size = tex->getOriginalSize(); @@ -1132,11 +1187,7 @@ core::array CGUITTFont::addTextSceneNode(const wchar_t* text // Now we copy planes corresponding to the letter size. IMeshManipulator* mani = smgr->getMeshManipulator(); IMesh* meshcopy = mani->createMeshCopy(shared_plane_ptr_); - #if IRRLICHT_VERSION_MAJOR==1 && IRRLICHT_VERSION_MINOR>=8 mani->scale(meshcopy, vector3df((f32)letter_size.Width, (f32)letter_size.Height, 1)); - #else - mani->scaleMesh(meshcopy, vector3df((f32)letter_size.Width, (f32)letter_size.Height, 1)); - #endif ISceneNode* current_node = smgr->addMeshSceneNode(meshcopy, parent, -1, current_pos); meshcopy->drop(); @@ -1149,6 +1200,8 @@ core::array CGUITTFont::addTextSceneNode(const wchar_t* text container.push_back(current_node); } offset.X += getWidthFromCharacter(current_char); + // Note that fallback font handling is missing here (Minetest never uses this) + previous_char = current_char; ++text; } diff --git a/src/irrlicht_changes/CGUITTFont.h b/src/irrlicht_changes/CGUITTFont.h index cf64934a2..7b04ae828 100644 --- a/src/irrlicht_changes/CGUITTFont.h +++ b/src/irrlicht_changes/CGUITTFont.h @@ -34,7 +34,7 @@ #include #include #include -#include "irrUString.h" +#include #include "util/enriched_string.h" #include FT_FREETYPE_H @@ -199,6 +199,7 @@ namespace gui core::array render_positions; core::array render_source_rects; + core::array render_colors; private: core::array glyph_to_be_paged; @@ -269,8 +270,8 @@ namespace gui video::SColor color, bool hcenter=false, bool vcenter=false, const core::rect* clip=0); - virtual void draw(const EnrichedString& text, const core::rect& position, - video::SColor color, bool hcenter=false, bool vcenter=false, + void draw(const EnrichedString& text, const core::rect& position, + bool hcenter=false, bool vcenter=false, const core::rect* clip=0); //! Returns the dimension of a character produced by this font. @@ -313,6 +314,9 @@ namespace gui //! Get the last glyph page's index. u32 getLastGlyphPageIndex() const { return Glyph_Pages.size() - 1; } + //! Set font that should be used for glyphs not present in ours + void setFallback(gui::IGUIFont* font) { fallback = font; } + //! Create corresponding character's software image copy from the font, //! so you can use this data just like any ordinary video::IImage. //! \param ch The character you need @@ -356,7 +360,7 @@ namespace gui load_flags = FT_LOAD_DEFAULT | FT_LOAD_RENDER; if (!useHinting()) load_flags |= FT_LOAD_NO_HINTING; if (!useAutoHinting()) load_flags |= FT_LOAD_NO_AUTOHINT; - if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO | FT_RENDER_MODE_MONO; + if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO; else load_flags |= FT_LOAD_TARGET_NORMAL; } u32 getWidthFromCharacter(wchar_t c) const; @@ -387,6 +391,8 @@ namespace gui core::ustring Invisible; u32 shadow_offset; u32 shadow_alpha; + + gui::IGUIFont* fallback; }; } // end namespace gui diff --git a/src/irrlicht_changes/CMakeLists.txt b/src/irrlicht_changes/CMakeLists.txt index d2f66ab77..87c88f7e8 100644 --- a/src/irrlicht_changes/CMakeLists.txt +++ b/src/irrlicht_changes/CMakeLists.txt @@ -3,7 +3,7 @@ if (BUILD_CLIENT) ${CMAKE_CURRENT_SOURCE_DIR}/static_text.cpp ) - if (ENABLE_FREETYPE) + if (USE_FREETYPE) set(client_irrlicht_changes_SRCS ${client_irrlicht_changes_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/CGUITTFont.cpp ) diff --git a/src/irrlicht_changes/irrUString.h b/src/irrlicht_changes/irrUString.h deleted file mode 100644 index b628c092c..000000000 --- a/src/irrlicht_changes/irrUString.h +++ /dev/null @@ -1,3891 +0,0 @@ -/* - Basic Unicode string class for Irrlicht. - Copyright (c) 2009-2011 John Norman - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any - damages arising from the use of this software. - - Permission is granted to anyone to use this software for any - purpose, including commercial applications, and to alter it and - redistribute it freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you - must not claim that you wrote the original software. If you use - this software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and - must not be misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source - distribution. - - The original version of this class can be located at: - http://irrlicht.suckerfreegames.com/ - - John Norman - john@suckerfreegames.com -*/ - -#pragma once - -#if (__cplusplus > 199711L) || (_MSC_VER >= 1600) || defined(__GXX_EXPERIMENTAL_CXX0X__) -# define USTRING_CPP0X -# if defined(__GXX_EXPERIMENTAL_CXX0X__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))) -# define USTRING_CPP0X_NEWLITERALS -# endif -#endif - -#include -#include -#include -#include - -#ifdef _WIN32 -#define __BYTE_ORDER 0 -#define __LITTLE_ENDIAN 0 -#define __BIG_ENDIAN 1 -#elif defined(__MACH__) && defined(__APPLE__) -#include -#elif defined(__FreeBSD__) || defined(__DragonFly__) -#include -#else -#include -#endif - -#ifdef USTRING_CPP0X -# include -#endif - -#ifndef USTRING_NO_STL -# include -# include -# include -#endif - -#include "irrTypes.h" -#include "irrAllocator.h" -#include "irrArray.h" -#include "irrMath.h" -#include "irrString.h" -#include "path.h" - -//! UTF-16 surrogate start values. -static const irr::u16 UTF16_HI_SURROGATE = 0xD800; -static const irr::u16 UTF16_LO_SURROGATE = 0xDC00; - -//! Is a UTF-16 code point a surrogate? -#define UTF16_IS_SURROGATE(c) (((c) & 0xF800) == 0xD800) -#define UTF16_IS_SURROGATE_HI(c) (((c) & 0xFC00) == 0xD800) -#define UTF16_IS_SURROGATE_LO(c) (((c) & 0xFC00) == 0xDC00) - - -namespace irr -{ - - // Define our character types. -#ifdef USTRING_CPP0X_NEWLITERALS // C++0x - typedef char32_t uchar32_t; - typedef char16_t uchar16_t; - typedef char uchar8_t; -#else - typedef u32 uchar32_t; - typedef u16 uchar16_t; - typedef u8 uchar8_t; -#endif - -namespace core -{ - -namespace unicode -{ - -//! The unicode replacement character. Used to replace invalid characters. -const irr::u16 UTF_REPLACEMENT_CHARACTER = 0xFFFD; - -//! Convert a UTF-16 surrogate pair into a UTF-32 character. -//! \param high The high value of the pair. -//! \param low The low value of the pair. -//! \return The UTF-32 character expressed by the surrogate pair. -inline uchar32_t toUTF32(uchar16_t high, uchar16_t low) -{ - // Convert the surrogate pair into a single UTF-32 character. - uchar32_t x = ((high & ((1 << 6) -1)) << 10) | (low & ((1 << 10) -1)); - uchar32_t wu = ((high >> 6) & ((1 << 5) - 1)) + 1; - return (wu << 16) | x; -} - -//! Swaps the endianness of a 16-bit value. -//! \return The new value. -inline uchar16_t swapEndian16(const uchar16_t& c) -{ - return ((c >> 8) & 0x00FF) | ((c << 8) & 0xFF00); -} - -//! Swaps the endianness of a 32-bit value. -//! \return The new value. -inline uchar32_t swapEndian32(const uchar32_t& c) -{ - return ((c >> 24) & 0x000000FF) | - ((c >> 8) & 0x0000FF00) | - ((c << 8) & 0x00FF0000) | - ((c << 24) & 0xFF000000); -} - -//! The Unicode byte order mark. -const u16 BOM = 0xFEFF; - -//! The size of the Unicode byte order mark in terms of the Unicode character size. -const u8 BOM_UTF8_LEN = 3; -const u8 BOM_UTF16_LEN = 1; -const u8 BOM_UTF32_LEN = 1; - -//! Unicode byte order marks for file operations. -const u8 BOM_ENCODE_UTF8[3] = { 0xEF, 0xBB, 0xBF }; -const u8 BOM_ENCODE_UTF16_BE[2] = { 0xFE, 0xFF }; -const u8 BOM_ENCODE_UTF16_LE[2] = { 0xFF, 0xFE }; -const u8 BOM_ENCODE_UTF32_BE[4] = { 0x00, 0x00, 0xFE, 0xFF }; -const u8 BOM_ENCODE_UTF32_LE[4] = { 0xFF, 0xFE, 0x00, 0x00 }; - -//! The size in bytes of the Unicode byte marks for file operations. -const u8 BOM_ENCODE_UTF8_LEN = 3; -const u8 BOM_ENCODE_UTF16_LEN = 2; -const u8 BOM_ENCODE_UTF32_LEN = 4; - -//! Unicode encoding type. -enum EUTF_ENCODE -{ - EUTFE_NONE = 0, - EUTFE_UTF8, - EUTFE_UTF16, - EUTFE_UTF16_LE, - EUTFE_UTF16_BE, - EUTFE_UTF32, - EUTFE_UTF32_LE, - EUTFE_UTF32_BE -}; - -//! Unicode endianness. -enum EUTF_ENDIAN -{ - EUTFEE_NATIVE = 0, - EUTFEE_LITTLE, - EUTFEE_BIG -}; - -//! Returns the specified unicode byte order mark in a byte array. -//! The byte order mark is the first few bytes in a text file that signifies its encoding. -/** \param mode The Unicode encoding method that we want to get the byte order mark for. - If EUTFE_UTF16 or EUTFE_UTF32 is passed, it uses the native system endianness. **/ -//! \return An array that contains a byte order mark. -inline core::array getUnicodeBOM(EUTF_ENCODE mode) -{ -#define COPY_ARRAY(source, size) \ - memcpy(ret.pointer(), source, size); \ - ret.set_used(size) - - core::array ret(4); - switch (mode) - { - case EUTFE_UTF8: - COPY_ARRAY(BOM_ENCODE_UTF8, BOM_ENCODE_UTF8_LEN); - break; - case EUTFE_UTF16: - #ifdef __BIG_ENDIAN__ - COPY_ARRAY(BOM_ENCODE_UTF16_BE, BOM_ENCODE_UTF16_LEN); - #else - COPY_ARRAY(BOM_ENCODE_UTF16_LE, BOM_ENCODE_UTF16_LEN); - #endif - break; - case EUTFE_UTF16_BE: - COPY_ARRAY(BOM_ENCODE_UTF16_BE, BOM_ENCODE_UTF16_LEN); - break; - case EUTFE_UTF16_LE: - COPY_ARRAY(BOM_ENCODE_UTF16_LE, BOM_ENCODE_UTF16_LEN); - break; - case EUTFE_UTF32: - #ifdef __BIG_ENDIAN__ - COPY_ARRAY(BOM_ENCODE_UTF32_BE, BOM_ENCODE_UTF32_LEN); - #else - COPY_ARRAY(BOM_ENCODE_UTF32_LE, BOM_ENCODE_UTF32_LEN); - #endif - break; - case EUTFE_UTF32_BE: - COPY_ARRAY(BOM_ENCODE_UTF32_BE, BOM_ENCODE_UTF32_LEN); - break; - case EUTFE_UTF32_LE: - COPY_ARRAY(BOM_ENCODE_UTF32_LE, BOM_ENCODE_UTF32_LEN); - break; - case EUTFE_NONE: - // TODO sapier: fixed warning only, - // don't know if something needs to be done here - break; - } - return ret; - -#undef COPY_ARRAY -} - -//! Detects if the given data stream starts with a unicode BOM. -//! \param data The data stream to check. -//! \return The unicode BOM associated with the data stream, or EUTFE_NONE if none was found. -inline EUTF_ENCODE determineUnicodeBOM(const char* data) -{ - if (memcmp(data, BOM_ENCODE_UTF8, 3) == 0) return EUTFE_UTF8; - if (memcmp(data, BOM_ENCODE_UTF16_BE, 2) == 0) return EUTFE_UTF16_BE; - if (memcmp(data, BOM_ENCODE_UTF16_LE, 2) == 0) return EUTFE_UTF16_LE; - if (memcmp(data, BOM_ENCODE_UTF32_BE, 4) == 0) return EUTFE_UTF32_BE; - if (memcmp(data, BOM_ENCODE_UTF32_LE, 4) == 0) return EUTFE_UTF32_LE; - return EUTFE_NONE; -} - -} // end namespace unicode - - -//! UTF-16 string class. -template > -class ustring16 -{ -public: - - ///------------------/// - /// iterator classes /// - ///------------------/// - - //! Access an element in a unicode string, allowing one to change it. - class _ustring16_iterator_access - { - public: - _ustring16_iterator_access(const ustring16* s, u32 p) : ref(s), pos(p) {} - - //! Allow the class to be interpreted as a single UTF-32 character. - operator uchar32_t() const - { - return _get(); - } - - //! Allow one to change the character in the unicode string. - //! \param c The new character to use. - //! \return Myself. - _ustring16_iterator_access& operator=(const uchar32_t c) - { - _set(c); - return *this; - } - - //! Increments the value by 1. - //! \return Myself. - _ustring16_iterator_access& operator++() - { - _set(_get() + 1); - return *this; - } - - //! Increments the value by 1, returning the old value. - //! \return A unicode character. - uchar32_t operator++(int) - { - uchar32_t old = _get(); - _set(old + 1); - return old; - } - - //! Decrements the value by 1. - //! \return Myself. - _ustring16_iterator_access& operator--() - { - _set(_get() - 1); - return *this; - } - - //! Decrements the value by 1, returning the old value. - //! \return A unicode character. - uchar32_t operator--(int) - { - uchar32_t old = _get(); - _set(old - 1); - return old; - } - - //! Adds to the value by a specified amount. - //! \param val The amount to add to this character. - //! \return Myself. - _ustring16_iterator_access& operator+=(int val) - { - _set(_get() + val); - return *this; - } - - //! Subtracts from the value by a specified amount. - //! \param val The amount to subtract from this character. - //! \return Myself. - _ustring16_iterator_access& operator-=(int val) - { - _set(_get() - val); - return *this; - } - - //! Multiples the value by a specified amount. - //! \param val The amount to multiply this character by. - //! \return Myself. - _ustring16_iterator_access& operator*=(int val) - { - _set(_get() * val); - return *this; - } - - //! Divides the value by a specified amount. - //! \param val The amount to divide this character by. - //! \return Myself. - _ustring16_iterator_access& operator/=(int val) - { - _set(_get() / val); - return *this; - } - - //! Modulos the value by a specified amount. - //! \param val The amount to modulo this character by. - //! \return Myself. - _ustring16_iterator_access& operator%=(int val) - { - _set(_get() % val); - return *this; - } - - //! Adds to the value by a specified amount. - //! \param val The amount to add to this character. - //! \return A unicode character. - uchar32_t operator+(int val) const - { - return _get() + val; - } - - //! Subtracts from the value by a specified amount. - //! \param val The amount to subtract from this character. - //! \return A unicode character. - uchar32_t operator-(int val) const - { - return _get() - val; - } - - //! Multiplies the value by a specified amount. - //! \param val The amount to multiply this character by. - //! \return A unicode character. - uchar32_t operator*(int val) const - { - return _get() * val; - } - - //! Divides the value by a specified amount. - //! \param val The amount to divide this character by. - //! \return A unicode character. - uchar32_t operator/(int val) const - { - return _get() / val; - } - - //! Modulos the value by a specified amount. - //! \param val The amount to modulo this character by. - //! \return A unicode character. - uchar32_t operator%(int val) const - { - return _get() % val; - } - - private: - //! Gets a uchar32_t from our current position. - uchar32_t _get() const - { - const uchar16_t* a = ref->c_str(); - if (!UTF16_IS_SURROGATE(a[pos])) - return static_cast(a[pos]); - else - { - if (pos + 1 >= ref->size_raw()) - return 0; - - return unicode::toUTF32(a[pos], a[pos + 1]); - } - } - - //! Sets a uchar32_t at our current position. - void _set(uchar32_t c) - { - ustring16* ref2 = const_cast*>(ref); - const uchar16_t* a = ref2->c_str(); - if (c > 0xFFFF) - { - // c will be multibyte, so split it up into the high and low surrogate pairs. - uchar16_t x = static_cast(c); - uchar16_t vh = UTF16_HI_SURROGATE | ((((c >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10); - uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1)); - - // If the previous position was a surrogate pair, just replace them. Else, insert the low pair. - if (UTF16_IS_SURROGATE_HI(a[pos]) && pos + 1 != ref2->size_raw()) - ref2->replace_raw(vl, static_cast(pos) + 1); - else ref2->insert_raw(vl, static_cast(pos) + 1); - - ref2->replace_raw(vh, static_cast(pos)); - } - else - { - // c will be a single byte. - uchar16_t vh = static_cast(c); - - // If the previous position was a surrogate pair, remove the extra byte. - if (UTF16_IS_SURROGATE_HI(a[pos])) - ref2->erase_raw(static_cast(pos) + 1); - - ref2->replace_raw(vh, static_cast(pos)); - } - } - - const ustring16* ref; - u32 pos; - }; - typedef typename ustring16::_ustring16_iterator_access access; - - - //! Iterator to iterate through a UTF-16 string. -#ifndef USTRING_NO_STL - class _ustring16_const_iterator : public std::iterator< - std::bidirectional_iterator_tag, // iterator_category - access, // value_type - ptrdiff_t, // difference_type - const access, // pointer - const access // reference - > -#else - class _ustring16_const_iterator -#endif - { - public: - typedef _ustring16_const_iterator _Iter; - typedef std::iterator _Base; - typedef const access const_pointer; - typedef const access const_reference; - -#ifndef USTRING_NO_STL - typedef typename _Base::value_type value_type; - typedef typename _Base::difference_type difference_type; - typedef typename _Base::difference_type distance_type; - typedef typename _Base::pointer pointer; - typedef const_reference reference; -#else - typedef access value_type; - typedef u32 difference_type; - typedef u32 distance_type; - typedef const_pointer pointer; - typedef const_reference reference; -#endif - - //! Constructors. - _ustring16_const_iterator(const _Iter& i) : ref(i.ref), pos(i.pos) {} - _ustring16_const_iterator(const ustring16& s) : ref(&s), pos(0) {} - _ustring16_const_iterator(const ustring16& s, const u32 p) : ref(&s), pos(0) - { - if (ref->size_raw() == 0 || p == 0) - return; - - // Go to the appropriate position. - u32 i = p; - u32 sr = ref->size_raw(); - const uchar16_t* a = ref->c_str(); - while (i != 0 && pos < sr) - { - if (UTF16_IS_SURROGATE_HI(a[pos])) - pos += 2; - else ++pos; - --i; - } - } - - //! Test for equalness. - bool operator==(const _Iter& iter) const - { - if (ref == iter.ref && pos == iter.pos) - return true; - return false; - } - - //! Test for unequalness. - bool operator!=(const _Iter& iter) const - { - if (ref != iter.ref || pos != iter.pos) - return true; - return false; - } - - //! Switch to the next full character in the string. - _Iter& operator++() - { // ++iterator - if (pos == ref->size_raw()) return *this; - const uchar16_t* a = ref->c_str(); - if (UTF16_IS_SURROGATE_HI(a[pos])) - pos += 2; // TODO: check for valid low surrogate? - else ++pos; - if (pos > ref->size_raw()) pos = ref->size_raw(); - return *this; - } - - //! Switch to the next full character in the string, returning the previous position. - _Iter operator++(int) - { // iterator++ - _Iter _tmp(*this); - ++*this; - return _tmp; - } - - //! Switch to the previous full character in the string. - _Iter& operator--() - { // --iterator - if (pos == 0) return *this; - const uchar16_t* a = ref->c_str(); - --pos; - if (UTF16_IS_SURROGATE_LO(a[pos]) && pos != 0) // low surrogate, go back one more. - --pos; - return *this; - } - - //! Switch to the previous full character in the string, returning the previous position. - _Iter operator--(int) - { // iterator-- - _Iter _tmp(*this); - --*this; - return _tmp; - } - - //! Advance a specified number of full characters in the string. - //! \return Myself. - _Iter& operator+=(const difference_type v) - { - if (v == 0) return *this; - if (v < 0) return operator-=(v * -1); - - if (pos >= ref->size_raw()) - return *this; - - // Go to the appropriate position. - // TODO: Don't force u32 on an x64 OS. Make it agnostic. - u32 i = (u32)v; - u32 sr = ref->size_raw(); - const uchar16_t* a = ref->c_str(); - while (i != 0 && pos < sr) - { - if (UTF16_IS_SURROGATE_HI(a[pos])) - pos += 2; - else ++pos; - --i; - } - if (pos > sr) - pos = sr; - - return *this; - } - - //! Go back a specified number of full characters in the string. - //! \return Myself. - _Iter& operator-=(const difference_type v) - { - if (v == 0) return *this; - if (v > 0) return operator+=(v * -1); - - if (pos == 0) - return *this; - - // Go to the appropriate position. - // TODO: Don't force u32 on an x64 OS. Make it agnostic. - u32 i = (u32)v; - const uchar16_t* a = ref->c_str(); - while (i != 0 && pos != 0) - { - --pos; - if (UTF16_IS_SURROGATE_LO(a[pos]) != 0 && pos != 0) - --pos; - --i; - } - - return *this; - } - - //! Return a new iterator that is a variable number of full characters forward from the current position. - _Iter operator+(const difference_type v) const - { - _Iter ret(*this); - ret += v; - return ret; - } - - //! Return a new iterator that is a variable number of full characters backward from the current position. - _Iter operator-(const difference_type v) const - { - _Iter ret(*this); - ret -= v; - return ret; - } - - //! Returns the distance between two iterators. - difference_type operator-(const _Iter& iter) const - { - // Make sure we reference the same object! - if (ref != iter.ref) - return difference_type(); - - _Iter i = iter; - difference_type ret; - - // Walk up. - if (pos > i.pos) - { - while (pos > i.pos) - { - ++i; - ++ret; - } - return ret; - } - - // Walk down. - while (pos < i.pos) - { - --i; - --ret; - } - return ret; - } - - //! Accesses the full character at the iterator's position. - const_reference operator*() const - { - if (pos >= ref->size_raw()) - { - const uchar16_t* a = ref->c_str(); - u32 p = ref->size_raw(); - if (UTF16_IS_SURROGATE_LO(a[p])) - --p; - reference ret(ref, p); - return ret; - } - const_reference ret(ref, pos); - return ret; - } - - //! Accesses the full character at the iterator's position. - reference operator*() - { - if (pos >= ref->size_raw()) - { - const uchar16_t* a = ref->c_str(); - u32 p = ref->size_raw(); - if (UTF16_IS_SURROGATE_LO(a[p])) - --p; - reference ret(ref, p); - return ret; - } - reference ret(ref, pos); - return ret; - } - - //! Accesses the full character at the iterator's position. - const_pointer operator->() const - { - return operator*(); - } - - //! Accesses the full character at the iterator's position. - pointer operator->() - { - return operator*(); - } - - //! Is the iterator at the start of the string? - bool atStart() const - { - return pos == 0; - } - - //! Is the iterator at the end of the string? - bool atEnd() const - { - const uchar16_t* a = ref->c_str(); - if (UTF16_IS_SURROGATE(a[pos])) - return (pos + 1) >= ref->size_raw(); - else return pos >= ref->size_raw(); - } - - //! Moves the iterator to the start of the string. - void toStart() - { - pos = 0; - } - - //! Moves the iterator to the end of the string. - void toEnd() - { - pos = ref->size_raw(); - } - - //! Returns the iterator's position. - //! \return The iterator's position. - u32 getPos() const - { - return pos; - } - - protected: - const ustring16* ref; - u32 pos; - }; - - //! Iterator to iterate through a UTF-16 string. - class _ustring16_iterator : public _ustring16_const_iterator - { - public: - typedef _ustring16_iterator _Iter; - typedef _ustring16_const_iterator _Base; - typedef typename _Base::const_pointer const_pointer; - typedef typename _Base::const_reference const_reference; - - - typedef typename _Base::value_type value_type; - typedef typename _Base::difference_type difference_type; - typedef typename _Base::distance_type distance_type; - typedef access pointer; - typedef access reference; - - using _Base::pos; - using _Base::ref; - - //! Constructors. - _ustring16_iterator(const _Iter& i) : _ustring16_const_iterator(i) {} - _ustring16_iterator(const ustring16& s) : _ustring16_const_iterator(s) {} - _ustring16_iterator(const ustring16& s, const u32 p) : _ustring16_const_iterator(s, p) {} - - //! Accesses the full character at the iterator's position. - reference operator*() const - { - if (pos >= ref->size_raw()) - { - const uchar16_t* a = ref->c_str(); - u32 p = ref->size_raw(); - if (UTF16_IS_SURROGATE_LO(a[p])) - --p; - reference ret(ref, p); - return ret; - } - reference ret(ref, pos); - return ret; - } - - //! Accesses the full character at the iterator's position. - reference operator*() - { - if (pos >= ref->size_raw()) - { - const uchar16_t* a = ref->c_str(); - u32 p = ref->size_raw(); - if (UTF16_IS_SURROGATE_LO(a[p])) - --p; - reference ret(ref, p); - return ret; - } - reference ret(ref, pos); - return ret; - } - - //! Accesses the full character at the iterator's position. - pointer operator->() const - { - return operator*(); - } - - //! Accesses the full character at the iterator's position. - pointer operator->() - { - return operator*(); - } - }; - - typedef typename ustring16::_ustring16_iterator iterator; - typedef typename ustring16::_ustring16_const_iterator const_iterator; - - ///----------------------/// - /// end iterator classes /// - ///----------------------/// - - //! Default constructor - ustring16() - : array(0), allocated(1), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - array = allocator.allocate(1); // new u16[1]; - array[0] = 0x0; - } - - - //! Constructor - ustring16(const ustring16& other) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - *this = other; - } - - - //! Constructor from other string types - template - ustring16(const string& other) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - *this = other; - } - - -#ifndef USTRING_NO_STL - //! Constructor from std::string - template - ustring16(const std::basic_string& other) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - *this = other.c_str(); - } - - - //! Constructor from iterator. - template - ustring16(Itr first, Itr last) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - reserve(std::distance(first, last)); - array[used] = 0; - - for (; first != last; ++first) - append((uchar32_t)*first); - } -#endif - - -#ifndef USTRING_CPP0X_NEWLITERALS - //! Constructor for copying a character string from a pointer. - ustring16(const char* const c) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - loadDataStream(c, strlen(c)); - //append((uchar8_t*)c); - } - - - //! Constructor for copying a character string from a pointer with a given length. - ustring16(const char* const c, u32 length) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - loadDataStream(c, length); - } -#endif - - - //! Constructor for copying a UTF-8 string from a pointer. - ustring16(const uchar8_t* const c) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - append(c); - } - - - //! Constructor for copying a UTF-8 string from a single char. - ustring16(const char c) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - append((uchar32_t)c); - } - - - //! Constructor for copying a UTF-8 string from a pointer with a given length. - ustring16(const uchar8_t* const c, u32 length) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - append(c, length); - } - - - //! Constructor for copying a UTF-16 string from a pointer. - ustring16(const uchar16_t* const c) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - append(c); - } - - - //! Constructor for copying a UTF-16 string from a pointer with a given length - ustring16(const uchar16_t* const c, u32 length) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - append(c, length); - } - - - //! Constructor for copying a UTF-32 string from a pointer. - ustring16(const uchar32_t* const c) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - append(c); - } - - - //! Constructor for copying a UTF-32 from a pointer with a given length. - ustring16(const uchar32_t* const c, u32 length) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - append(c, length); - } - - - //! Constructor for copying a wchar_t string from a pointer. - ustring16(const wchar_t* const c) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - if (sizeof(wchar_t) == 4) - append(reinterpret_cast(c)); - else if (sizeof(wchar_t) == 2) - append(reinterpret_cast(c)); - else if (sizeof(wchar_t) == 1) - append(reinterpret_cast(c)); - } - - - //! Constructor for copying a wchar_t string from a pointer with a given length. - ustring16(const wchar_t* const c, u32 length) - : array(0), allocated(0), used(0) - { -#if __BYTE_ORDER == __BIG_ENDIAN - encoding = unicode::EUTFE_UTF16_BE; -#else - encoding = unicode::EUTFE_UTF16_LE; -#endif - - if (sizeof(wchar_t) == 4) - append(reinterpret_cast(c), length); - else if (sizeof(wchar_t) == 2) - append(reinterpret_cast(c), length); - else if (sizeof(wchar_t) == 1) - append(reinterpret_cast(c), length); - } - - -#ifdef USTRING_CPP0X - //! Constructor for moving a ustring16 - ustring16(ustring16&& other) - : array(other.array), encoding(other.encoding), allocated(other.allocated), used(other.used) - { - //std::cout << "MOVE constructor" << std::endl; - other.array = 0; - other.allocated = 0; - other.used = 0; - } -#endif - - - //! Destructor - ~ustring16() - { - allocator.deallocate(array); // delete [] array; - } - - - //! Assignment operator - ustring16& operator=(const ustring16& other) - { - if (this == &other) - return *this; - - used = other.size_raw(); - if (used >= allocated) - { - allocator.deallocate(array); // delete [] array; - allocated = used + 1; - array = allocator.allocate(used + 1); //new u16[used]; - } - - const uchar16_t* p = other.c_str(); - for (u32 i=0; i<=used; ++i, ++p) - array[i] = *p; - - array[used] = 0; - - // Validate our new UTF-16 string. - validate(); - - return *this; - } - - -#ifdef USTRING_CPP0X - //! Move assignment operator - ustring16& operator=(ustring16&& other) - { - if (this != &other) - { - //std::cout << "MOVE operator=" << std::endl; - allocator.deallocate(array); - - array = other.array; - allocated = other.allocated; - encoding = other.encoding; - used = other.used; - other.array = 0; - other.used = 0; - } - return *this; - } -#endif - - - //! Assignment operator for other string types - template - ustring16& operator=(const string& other) - { - *this = other.c_str(); - return *this; - } - - - //! Assignment operator for UTF-8 strings - ustring16& operator=(const uchar8_t* const c) - { - if (!array) - { - array = allocator.allocate(1); //new u16[1]; - allocated = 1; - } - used = 0; - array[used] = 0x0; - if (!c) return *this; - - //! Append our string now. - append(c); - return *this; - } - - - //! Assignment operator for UTF-16 strings - ustring16& operator=(const uchar16_t* const c) - { - if (!array) - { - array = allocator.allocate(1); //new u16[1]; - allocated = 1; - } - used = 0; - array[used] = 0x0; - if (!c) return *this; - - //! Append our string now. - append(c); - return *this; - } - - - //! Assignment operator for UTF-32 strings - ustring16& operator=(const uchar32_t* const c) - { - if (!array) - { - array = allocator.allocate(1); //new u16[1]; - allocated = 1; - } - used = 0; - array[used] = 0x0; - if (!c) return *this; - - //! Append our string now. - append(c); - return *this; - } - - - //! Assignment operator for wchar_t strings. - /** Note that this assumes that a correct unicode string is stored in the wchar_t string. - Since wchar_t changes depending on its platform, it could either be a UTF-8, -16, or -32 string. - This function assumes you are storing the correct unicode encoding inside the wchar_t string. **/ - ustring16& operator=(const wchar_t* const c) - { - if (sizeof(wchar_t) == 4) - *this = reinterpret_cast(c); - else if (sizeof(wchar_t) == 2) - *this = reinterpret_cast(c); - else if (sizeof(wchar_t) == 1) - *this = reinterpret_cast(c); - - return *this; - } - - - //! Assignment operator for other strings. - /** Note that this assumes that a correct unicode string is stored in the string. **/ - template - ustring16& operator=(const B* const c) - { - if (sizeof(B) == 4) - *this = reinterpret_cast(c); - else if (sizeof(B) == 2) - *this = reinterpret_cast(c); - else if (sizeof(B) == 1) - *this = reinterpret_cast(c); - - return *this; - } - - - //! Direct access operator - access operator [](const u32 index) - { - _IRR_DEBUG_BREAK_IF(index>=size()) // bad index - iterator iter(*this, index); - return iter.operator*(); - } - - - //! Direct access operator - const access operator [](const u32 index) const - { - _IRR_DEBUG_BREAK_IF(index>=size()) // bad index - const_iterator iter(*this, index); - return iter.operator*(); - } - - - //! Equality operator - bool operator ==(const uchar16_t* const str) const - { - if (!str) - return false; - - u32 i; - for(i=0; array[i] && str[i]; ++i) - if (array[i] != str[i]) - return false; - - return !array[i] && !str[i]; - } - - - //! Equality operator - bool operator ==(const ustring16& other) const - { - for(u32 i=0; array[i] && other.array[i]; ++i) - if (array[i] != other.array[i]) - return false; - - return used == other.used; - } - - - //! Is smaller comparator - bool operator <(const ustring16& other) const - { - for(u32 i=0; array[i] && other.array[i]; ++i) - { - s32 diff = array[i] - other.array[i]; - if ( diff ) - return diff < 0; - } - - return used < other.used; - } - - - //! Inequality operator - bool operator !=(const uchar16_t* const str) const - { - return !(*this == str); - } - - - //! Inequality operator - bool operator !=(const ustring16& other) const - { - return !(*this == other); - } - - - //! Returns the length of a ustring16 in full characters. - //! \return Length of a ustring16 in full characters. - u32 size() const - { - const_iterator i(*this, 0); - u32 pos = 0; - while (!i.atEnd()) - { - ++i; - ++pos; - } - return pos; - } - - - //! Informs if the ustring is empty or not. - //! \return True if the ustring is empty, false if not. - bool empty() const - { - return (size_raw() == 0); - } - - - //! Returns a pointer to the raw UTF-16 string data. - //! \return pointer to C-style NUL terminated array of UTF-16 code points. - const uchar16_t* c_str() const - { - return array; - } - - - //! Compares the first n characters of this string with another. - //! \param other Other string to compare to. - //! \param n Number of characters to compare. - //! \return True if the n first characters of both strings are equal. - bool equalsn(const ustring16& other, u32 n) const - { - u32 i; - const uchar16_t* oa = other.c_str(); - for(i=0; array[i] && oa[i] && i < n; ++i) - if (array[i] != oa[i]) - return false; - - // if one (or both) of the strings was smaller then they - // are only equal if they have the same length - return (i == n) || (used == other.used); - } - - - //! Compares the first n characters of this string with another. - //! \param str Other string to compare to. - //! \param n Number of characters to compare. - //! \return True if the n first characters of both strings are equal. - bool equalsn(const uchar16_t* const str, u32 n) const - { - if (!str) - return false; - u32 i; - for(i=0; array[i] && str[i] && i < n; ++i) - if (array[i] != str[i]) - return false; - - // if one (or both) of the strings was smaller then they - // are only equal if they have the same length - return (i == n) || (array[i] == 0 && str[i] == 0); - } - - - //! Appends a character to this ustring16 - //! \param character The character to append. - //! \return A reference to our current string. - ustring16& append(uchar32_t character) - { - if (used + 2 >= allocated) - reallocate(used + 2); - - if (character > 0xFFFF) - { - used += 2; - - // character will be multibyte, so split it up into a surrogate pair. - uchar16_t x = static_cast(character); - uchar16_t vh = UTF16_HI_SURROGATE | ((((character >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10); - uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1)); - array[used-2] = vh; - array[used-1] = vl; - } - else - { - ++used; - array[used-1] = character; - } - array[used] = 0; - - return *this; - } - - - //! Appends a UTF-8 string to this ustring16 - //! \param other The UTF-8 string to append. - //! \param length The length of the string to append. - //! \return A reference to our current string. - ustring16& append(const uchar8_t* const other, u32 length=0xffffffff) - { - if (!other) - return *this; - - // Determine if the string is long enough for a BOM. - u32 len = 0; - const uchar8_t* p = other; - do - { - ++len; - } while (*p++ && len < unicode::BOM_ENCODE_UTF8_LEN); - - // Check for BOM. - unicode::EUTF_ENCODE c_bom = unicode::EUTFE_NONE; - if (len == unicode::BOM_ENCODE_UTF8_LEN) - { - if (memcmp(other, unicode::BOM_ENCODE_UTF8, unicode::BOM_ENCODE_UTF8_LEN) == 0) - c_bom = unicode::EUTFE_UTF8; - } - - // If a BOM was found, don't include it in the string. - const uchar8_t* c2 = other; - if (c_bom != unicode::EUTFE_NONE) - { - c2 = other + unicode::BOM_UTF8_LEN; - length -= unicode::BOM_UTF8_LEN; - } - - // Calculate the size of the string to read in. - len = 0; - p = c2; - do - { - ++len; - } while(*p++ && len < length); - if (len > length) - len = length; - - // If we need to grow the array, do it now. - if (used + len >= allocated) - reallocate(used + (len * 2)); - u32 start = used; - - // Convert UTF-8 to UTF-16. - u32 pos = start; - for (u32 l = 0; l> 6) & 0x03) == 0x02) - { // Invalid continuation byte. - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - ++l; - } - else if (c2[l] == 0xC0 || c2[l] == 0xC1) - { // Invalid byte - overlong encoding. - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - ++l; - } - else if ((c2[l] & 0xF8) == 0xF0) - { // 4 bytes UTF-8, 2 bytes UTF-16. - // Check for a full string. - if ((l + 3) >= len) - { - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - l += 3; - break; - } - - // Validate. - bool valid = true; - u8 l2 = 0; - if (valid && (((c2[l+1] >> 6) & 0x03) == 0x02)) ++l2; else valid = false; - if (valid && (((c2[l+2] >> 6) & 0x03) == 0x02)) ++l2; else valid = false; - if (valid && (((c2[l+3] >> 6) & 0x03) == 0x02)) ++l2; else valid = false; - if (!valid) - { - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - l += l2; - continue; - } - - // Decode. - uchar8_t b1 = ((c2[l] & 0x7) << 2) | ((c2[l+1] >> 4) & 0x3); - uchar8_t b2 = ((c2[l+1] & 0xF) << 4) | ((c2[l+2] >> 2) & 0xF); - uchar8_t b3 = ((c2[l+2] & 0x3) << 6) | (c2[l+3] & 0x3F); - uchar32_t v = b3 | ((uchar32_t)b2 << 8) | ((uchar32_t)b1 << 16); - - // Split v up into a surrogate pair. - uchar16_t x = static_cast(v); - uchar16_t vh = UTF16_HI_SURROGATE | ((((v >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10); - uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1)); - - array[pos++] = vh; - array[pos++] = vl; - l += 4; - ++used; // Using two shorts this time, so increase used by 1. - } - else if ((c2[l] & 0xF0) == 0xE0) - { // 3 bytes UTF-8, 1 byte UTF-16. - // Check for a full string. - if ((l + 2) >= len) - { - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - l += 2; - break; - } - - // Validate. - bool valid = true; - u8 l2 = 0; - if (valid && (((c2[l+1] >> 6) & 0x03) == 0x02)) ++l2; else valid = false; - if (valid && (((c2[l+2] >> 6) & 0x03) == 0x02)) ++l2; else valid = false; - if (!valid) - { - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - l += l2; - continue; - } - - // Decode. - uchar8_t b1 = ((c2[l] & 0xF) << 4) | ((c2[l+1] >> 2) & 0xF); - uchar8_t b2 = ((c2[l+1] & 0x3) << 6) | (c2[l+2] & 0x3F); - uchar16_t ch = b2 | ((uchar16_t)b1 << 8); - array[pos++] = ch; - l += 3; - } - else if ((c2[l] & 0xE0) == 0xC0) - { // 2 bytes UTF-8, 1 byte UTF-16. - // Check for a full string. - if ((l + 1) >= len) - { - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - l += 1; - break; - } - - // Validate. - if (((c2[l+1] >> 6) & 0x03) != 0x02) - { - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - ++l; - continue; - } - - // Decode. - uchar8_t b1 = (c2[l] >> 2) & 0x7; - uchar8_t b2 = ((c2[l] & 0x3) << 6) | (c2[l+1] & 0x3F); - uchar16_t ch = b2 | ((uchar16_t)b1 << 8); - array[pos++] = ch; - l += 2; - } - else - { // 1 byte UTF-8, 1 byte UTF-16. - // Validate. - if (c2[l] > 0x7F) - { // Values above 0xF4 are restricted and aren't used. By now, anything above 0x7F is invalid. - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - } - else array[pos++] = static_cast(c2[l]); - ++l; - } - } - array[used] = 0; - - // Validate our new UTF-16 string. - validate(); - - return *this; - } - - - //! Appends a UTF-16 string to this ustring16 - //! \param other The UTF-16 string to append. - //! \param length The length of the string to append. - //! \return A reference to our current string. - ustring16& append(const uchar16_t* const other, u32 length=0xffffffff) - { - if (!other) - return *this; - - // Determine if the string is long enough for a BOM. - u32 len = 0; - const uchar16_t* p = other; - do - { - ++len; - } while (*p++ && len < unicode::BOM_ENCODE_UTF16_LEN); - - // Check for the BOM to determine the string's endianness. - unicode::EUTF_ENDIAN c_end = unicode::EUTFEE_NATIVE; - if (memcmp(other, unicode::BOM_ENCODE_UTF16_LE, unicode::BOM_ENCODE_UTF16_LEN) == 0) - c_end = unicode::EUTFEE_LITTLE; - else if (memcmp(other, unicode::BOM_ENCODE_UTF16_BE, unicode::BOM_ENCODE_UTF16_LEN) == 0) - c_end = unicode::EUTFEE_BIG; - - // If a BOM was found, don't include it in the string. - const uchar16_t* c2 = other; - if (c_end != unicode::EUTFEE_NATIVE) - { - c2 = other + unicode::BOM_UTF16_LEN; - length -= unicode::BOM_UTF16_LEN; - } - - // Calculate the size of the string to read in. - len = 0; - p = c2; - do - { - ++len; - } while(*p++ && len < length); - if (len > length) - len = length; - - // If we need to grow the size of the array, do it now. - if (used + len >= allocated) - reallocate(used + (len * 2)); - u32 start = used; - used += len; - - // Copy the string now. - unicode::EUTF_ENDIAN m_end = getEndianness(); - for (u32 l = start; l < start + len; ++l) - { - array[l] = (uchar16_t)c2[l]; - if (c_end != unicode::EUTFEE_NATIVE && c_end != m_end) - array[l] = unicode::swapEndian16(array[l]); - } - - array[used] = 0; - - // Validate our new UTF-16 string. - validate(); - return *this; - } - - - //! Appends a UTF-32 string to this ustring16 - //! \param other The UTF-32 string to append. - //! \param length The length of the string to append. - //! \return A reference to our current string. - ustring16& append(const uchar32_t* const other, u32 length=0xffffffff) - { - if (!other) - return *this; - - // Check for the BOM to determine the string's endianness. - unicode::EUTF_ENDIAN c_end = unicode::EUTFEE_NATIVE; - if (memcmp(other, unicode::BOM_ENCODE_UTF32_LE, unicode::BOM_ENCODE_UTF32_LEN) == 0) - c_end = unicode::EUTFEE_LITTLE; - else if (memcmp(other, unicode::BOM_ENCODE_UTF32_BE, unicode::BOM_ENCODE_UTF32_LEN) == 0) - c_end = unicode::EUTFEE_BIG; - - // If a BOM was found, don't include it in the string. - const uchar32_t* c2 = other; - if (c_end != unicode::EUTFEE_NATIVE) - { - c2 = other + unicode::BOM_UTF32_LEN; - length -= unicode::BOM_UTF32_LEN; - } - - // Calculate the size of the string to read in. - u32 len = 0; - const uchar32_t* p = c2; - do - { - ++len; - } while(*p++ && len < length); - if (len > length) - len = length; - - // If we need to grow the size of the array, do it now. - // In case all of the UTF-32 string is split into surrogate pairs, do len * 2. - if (used + (len * 2) >= allocated) - reallocate(used + ((len * 2) * 2)); - u32 start = used; - - // Convert UTF-32 to UTF-16. - unicode::EUTF_ENDIAN m_end = getEndianness(); - u32 pos = start; - for (u32 l = 0; l 0xFFFF) - { - // Split ch up into a surrogate pair as it is over 16 bits long. - uchar16_t x = static_cast(ch); - uchar16_t vh = UTF16_HI_SURROGATE | ((((ch >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10); - uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1)); - array[pos++] = vh; - array[pos++] = vl; - ++used; // Using two shorts, so increased used again. - } - else if (ch >= 0xD800 && ch <= 0xDFFF) - { - // Between possible UTF-16 surrogates (invalid!) - array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER; - } - else array[pos++] = static_cast(ch); - } - array[used] = 0; - - // Validate our new UTF-16 string. - validate(); - - return *this; - } - - - //! Appends a ustring16 to this ustring16 - //! \param other The string to append to this one. - //! \return A reference to our current string. - ustring16& append(const ustring16& other) - { - const uchar16_t* oa = other.c_str(); - - u32 len = other.size_raw(); - - if (used + len >= allocated) - reallocate(used + len); - - for (u32 l=0; l& append(const ustring16& other, u32 length) - { - if (other.size() == 0) - return *this; - - if (other.size() < length) - { - append(other); - return *this; - } - - if (used + length * 2 >= allocated) - reallocate(used + length * 2); - - const_iterator iter(other, 0); - u32 l = length; - while (!iter.atEnd() && l) - { - uchar32_t c = *iter; - append(c); - ++iter; - --l; - } - - return *this; - } - - - //! Reserves some memory. - //! \param count The amount of characters to reserve. - void reserve(u32 count) - { - if (count < allocated) - return; - - reallocate(count); - } - - - //! Finds first occurrence of character. - //! \param c The character to search for. - //! \return Position where the character has been found, or -1 if not found. - s32 findFirst(uchar32_t c) const - { - const_iterator i(*this, 0); - - s32 pos = 0; - while (!i.atEnd()) - { - uchar32_t t = *i; - if (c == t) - return pos; - ++pos; - ++i; - } - - return -1; - } - - //! Finds first occurrence of a character of a list. - //! \param c A list of characters to find. For example if the method should find the first occurrence of 'a' or 'b', this parameter should be "ab". - //! \param count The amount of characters in the list. Usually, this should be strlen(c). - //! \return Position where one of the characters has been found, or -1 if not found. - s32 findFirstChar(const uchar32_t* const c, u32 count=1) const - { - if (!c || !count) - return -1; - - const_iterator i(*this, 0); - - s32 pos = 0; - while (!i.atEnd()) - { - uchar32_t t = *i; - for (u32 j=0; j& str, const u32 start = 0) const - { - u32 my_size = size(); - u32 their_size = str.size(); - - if (their_size == 0 || my_size - start < their_size) - return -1; - - const_iterator i(*this, start); - - s32 pos = start; - while (!i.atEnd()) - { - const_iterator i2(i); - const_iterator j(str, 0); - uchar32_t t1 = (uchar32_t)*i2; - uchar32_t t2 = (uchar32_t)*j; - while (t1 == t2) - { - ++i2; - ++j; - if (j.atEnd()) - return pos; - t1 = (uchar32_t)*i2; - t2 = (uchar32_t)*j; - } - ++i; - ++pos; - } - - return -1; - } - - - //! Finds another ustring16 in this ustring16. - //! \param str The string to find. - //! \param start The start position of the search. - //! \return Positions where the string has been found, or -1 if not found. - s32 find_raw(const ustring16& str, const u32 start = 0) const - { - const uchar16_t* data = str.c_str(); - if (data && *data) - { - u32 len = 0; - - while (data[len]) - ++len; - - if (len > used) - return -1; - - for (u32 i=start; i<=used-len; ++i) - { - u32 j=0; - - while(data[j] && array[i+j] == data[j]) - ++j; - - if (!data[j]) - return i; - } - } - - return -1; - } - - - //! Returns a substring. - //! \param begin: Start of substring. - //! \param length: Length of substring. - //! \return A reference to our current string. - ustring16 subString(u32 begin, s32 length) const - { - u32 len = size(); - // if start after ustring16 - // or no proper substring length - if ((length <= 0) || (begin>=len)) - return ustring16(""); - // clamp length to maximal value - if ((length+begin) > len) - length = len-begin; - - ustring16 o; - o.reserve((length+1) * 2); - - const_iterator i(*this, begin); - while (!i.atEnd() && length) - { - o.append(*i); - ++i; - --length; - } - - return o; - } - - - //! Appends a character to this ustring16. - //! \param c Character to append. - //! \return A reference to our current string. - ustring16& operator += (char c) - { - append((uchar32_t)c); - return *this; - } - - - //! Appends a character to this ustring16. - //! \param c Character to append. - //! \return A reference to our current string. - ustring16& operator += (uchar32_t c) - { - append(c); - return *this; - } - - - //! Appends a number to this ustring16. - //! \param c Number to append. - //! \return A reference to our current string. - ustring16& operator += (short c) - { - append(core::stringc(c)); - return *this; - } - - - //! Appends a number to this ustring16. - //! \param c Number to append. - //! \return A reference to our current string. - ustring16& operator += (unsigned short c) - { - append(core::stringc(c)); - return *this; - } - - -#ifdef USTRING_CPP0X_NEWLITERALS - //! Appends a number to this ustring16. - //! \param c Number to append. - //! \return A reference to our current string. - ustring16& operator += (int c) - { - append(core::stringc(c)); - return *this; - } - - - //! Appends a number to this ustring16. - //! \param c Number to append. - //! \return A reference to our current string. - ustring16& operator += (unsigned int c) - { - append(core::stringc(c)); - return *this; - } -#endif - - - //! Appends a number to this ustring16. - //! \param c Number to append. - //! \return A reference to our current string. - ustring16& operator += (long c) - { - append(core::stringc(c)); - return *this; - } - - - //! Appends a number to this ustring16. - //! \param c Number to append. - //! \return A reference to our current string. - ustring16& operator += (unsigned long c) - { - append(core::stringc(c)); - return *this; - } - - - //! Appends a number to this ustring16. - //! \param c Number to append. - //! \return A reference to our current string. - ustring16& operator += (double c) - { - append(core::stringc(c)); - return *this; - } - - - //! Appends a char ustring16 to this ustring16. - //! \param c Char ustring16 to append. - //! \return A reference to our current string. - ustring16& operator += (const uchar16_t* const c) - { - append(c); - return *this; - } - - - //! Appends a ustring16 to this ustring16. - //! \param other ustring16 to append. - //! \return A reference to our current string. - ustring16& operator += (const ustring16& other) - { - append(other); - return *this; - } - - - //! Replaces all characters of a given type with another one. - //! \param toReplace Character to replace. - //! \param replaceWith Character replacing the old one. - //! \return A reference to our current string. - ustring16& replace(uchar32_t toReplace, uchar32_t replaceWith) - { - iterator i(*this, 0); - while (!i.atEnd()) - { - typename ustring16::access a = *i; - if ((uchar32_t)a == toReplace) - a = replaceWith; - ++i; - } - return *this; - } - - - //! Replaces all instances of a string with another one. - //! \param toReplace The string to replace. - //! \param replaceWith The string replacing the old one. - //! \return A reference to our current string. - ustring16& replace(const ustring16& toReplace, const ustring16& replaceWith) - { - if (toReplace.size() == 0) - return *this; - - const uchar16_t* other = toReplace.c_str(); - const uchar16_t* replace = replaceWith.c_str(); - const u32 other_size = toReplace.size_raw(); - const u32 replace_size = replaceWith.size_raw(); - - // Determine the delta. The algorithm will change depending on the delta. - s32 delta = replace_size - other_size; - - // A character for character replace. The string will not shrink or grow. - if (delta == 0) - { - s32 pos = 0; - while ((pos = find_raw(other, pos)) != -1) - { - for (u32 i = 0; i < replace_size; ++i) - array[pos + i] = replace[i]; - ++pos; - } - return *this; - } - - // We are going to be removing some characters. The string will shrink. - if (delta < 0) - { - u32 i = 0; - for (u32 pos = 0; pos <= used; ++i, ++pos) - { - // Is this potentially a match? - if (array[pos] == *other) - { - // Check to see if we have a match. - u32 j; - for (j = 0; j < other_size; ++j) - { - if (array[pos + j] != other[j]) - break; - } - - // If we have a match, replace characters. - if (j == other_size) - { - for (j = 0; j < replace_size; ++j) - array[i + j] = replace[j]; - i += replace_size - 1; - pos += other_size - 1; - continue; - } - } - - // No match found, just copy characters. - array[i - 1] = array[pos]; - } - array[i] = 0; - used = i; - - return *this; - } - - // We are going to be adding characters, so the string size will increase. - // Count the number of times toReplace exists in the string so we can allocate the new size. - u32 find_count = 0; - s32 pos = 0; - while ((pos = find_raw(other, pos)) != -1) - { - ++find_count; - ++pos; - } - - // Re-allocate the string now, if needed. - u32 len = delta * find_count; - if (used + len >= allocated) - reallocate(used + len); - - // Start replacing. - pos = 0; - while ((pos = find_raw(other, pos)) != -1) - { - uchar16_t* start = array + pos + other_size - 1; - uchar16_t* ptr = array + used; - uchar16_t* end = array + used + delta; - - // Shift characters to make room for the string. - while (ptr != start) - { - *end = *ptr; - --ptr; - --end; - } - - // Add the new string now. - for (u32 i = 0; i < replace_size; ++i) - array[pos + i] = replace[i]; - - pos += replace_size; - used += delta; - } - - // Terminate the string and return ourself. - array[used] = 0; - return *this; - } - - - //! Removes characters from a ustring16.. - //! \param c The character to remove. - //! \return A reference to our current string. - ustring16& remove(uchar32_t c) - { - u32 pos = 0; - u32 found = 0; - u32 len = (c > 0xFFFF ? 2 : 1); // Remove characters equal to the size of c as a UTF-16 character. - for (u32 i=0; i<=used; ++i) - { - uchar32_t uc32 = 0; - if (!UTF16_IS_SURROGATE_HI(array[i])) - uc32 |= array[i]; - else if (i + 1 <= used) - { - // Convert the surrogate pair into a single UTF-32 character. - uc32 = unicode::toUTF32(array[i], array[i + 1]); - } - u32 len2 = (uc32 > 0xFFFF ? 2 : 1); - - if (uc32 == c) - { - found += len; - continue; - } - - array[pos++] = array[i]; - if (len2 == 2) - array[pos++] = array[++i]; - } - used -= found; - array[used] = 0; - return *this; - } - - - //! Removes a ustring16 from the ustring16. - //! \param toRemove The string to remove. - //! \return A reference to our current string. - ustring16& remove(const ustring16& toRemove) - { - u32 size = toRemove.size_raw(); - if (size == 0) return *this; - - const uchar16_t* tra = toRemove.c_str(); - u32 pos = 0; - u32 found = 0; - for (u32 i=0; i<=used; ++i) - { - u32 j = 0; - while (j < size) - { - if (array[i + j] != tra[j]) - break; - ++j; - } - if (j == size) - { - found += size; - i += size - 1; - continue; - } - - array[pos++] = array[i]; - } - used -= found; - array[used] = 0; - return *this; - } - - - //! Removes characters from the ustring16. - //! \param characters The characters to remove. - //! \return A reference to our current string. - ustring16& removeChars(const ustring16& characters) - { - if (characters.size_raw() == 0) - return *this; - - u32 pos = 0; - u32 found = 0; - const_iterator iter(characters); - for (u32 i=0; i<=used; ++i) - { - uchar32_t uc32 = 0; - if (!UTF16_IS_SURROGATE_HI(array[i])) - uc32 |= array[i]; - else if (i + 1 <= used) - { - // Convert the surrogate pair into a single UTF-32 character. - uc32 = unicode::toUTF32(array[i], array[i+1]); - } - u32 len2 = (uc32 > 0xFFFF ? 2 : 1); - - bool cont = false; - iter.toStart(); - while (!iter.atEnd()) - { - uchar32_t c = *iter; - if (uc32 == c) - { - found += (c > 0xFFFF ? 2 : 1); // Remove characters equal to the size of c as a UTF-16 character. - ++i; - cont = true; - break; - } - ++iter; - } - if (cont) continue; - - array[pos++] = array[i]; - if (len2 == 2) - array[pos++] = array[++i]; - } - used -= found; - array[used] = 0; - return *this; - } - - - //! Trims the ustring16. - //! Removes the specified characters (by default, Latin-1 whitespace) from the begining and the end of the ustring16. - //! \param whitespace The characters that are to be considered as whitespace. - //! \return A reference to our current string. - ustring16& trim(const ustring16& whitespace = " \t\n\r") - { - core::array utf32white = whitespace.toUTF32(); - - // find start and end of the substring without the specified characters - const s32 begin = findFirstCharNotInList(utf32white.const_pointer(), whitespace.used + 1); - if (begin == -1) - return (*this=""); - - const s32 end = findLastCharNotInList(utf32white.const_pointer(), whitespace.used + 1); - - return (*this = subString(begin, (end +1) - begin)); - } - - - //! Erases a character from the ustring16. - //! May be slow, because all elements following after the erased element have to be copied. - //! \param index Index of element to be erased. - //! \return A reference to our current string. - ustring16& erase(u32 index) - { - _IRR_DEBUG_BREAK_IF(index>used) // access violation - - iterator i(*this, index); - - uchar32_t t = *i; - u32 len = (t > 0xFFFF ? 2 : 1); - - for (u32 j = static_cast(i.getPos()) + len; j <= used; ++j) - array[j - len] = array[j]; - - used -= len; - array[used] = 0; - - return *this; - } - - - //! Validate the existing ustring16, checking for valid surrogate pairs and checking for proper termination. - //! \return A reference to our current string. - ustring16& validate() - { - // Validate all unicode characters. - for (u32 i=0; i= allocated) || UTF16_IS_SURROGATE_LO(array[i])) - array[i] = unicode::UTF_REPLACEMENT_CHARACTER; - else if (UTF16_IS_SURROGATE_HI(array[i]) && !UTF16_IS_SURROGATE_LO(array[i+1])) - array[i] = unicode::UTF_REPLACEMENT_CHARACTER; - ++i; - } - if (array[i] >= 0xFDD0 && array[i] <= 0xFDEF) - array[i] = unicode::UTF_REPLACEMENT_CHARACTER; - } - - // terminate - used = 0; - if (allocated > 0) - { - used = allocated - 1; - array[used] = 0; - } - return *this; - } - - - //! Gets the last char of the ustring16, or 0. - //! \return The last char of the ustring16, or 0. - uchar32_t lastChar() const - { - if (used < 1) - return 0; - - if (UTF16_IS_SURROGATE_LO(array[used-1])) - { - // Make sure we have a paired surrogate. - if (used < 2) - return 0; - - // Check for an invalid surrogate. - if (!UTF16_IS_SURROGATE_HI(array[used-2])) - return 0; - - // Convert the surrogate pair into a single UTF-32 character. - return unicode::toUTF32(array[used-2], array[used-1]); - } - else - { - return array[used-1]; - } - } - - - //! Split the ustring16 into parts. - /** This method will split a ustring16 at certain delimiter characters - into the container passed in as reference. The type of the container - has to be given as template parameter. It must provide a push_back and - a size method. - \param ret The result container - \param c C-style ustring16 of delimiter characters - \param count Number of delimiter characters - \param ignoreEmptyTokens Flag to avoid empty substrings in the result - container. If two delimiters occur without a character in between, an - empty substring would be placed in the result. If this flag is set, - only non-empty strings are stored. - \param keepSeparators Flag which allows to add the separator to the - result ustring16. If this flag is true, the concatenation of the - substrings results in the original ustring16. Otherwise, only the - characters between the delimiters are returned. - \return The number of resulting substrings - */ - template - u32 split(container& ret, const uchar32_t* const c, u32 count=1, bool ignoreEmptyTokens=true, bool keepSeparators=false) const - { - if (!c) - return 0; - - const_iterator i(*this); - const u32 oldSize=ret.size(); - u32 pos = 0; - u32 lastpos = 0; - u32 lastpospos = 0; - bool lastWasSeparator = false; - while (!i.atEnd()) - { - uchar32_t ch = *i; - bool foundSeparator = false; - for (u32 j=0; j(&array[lastpospos], pos - lastpos)); - foundSeparator = true; - lastpos = (keepSeparators ? pos : pos + 1); - lastpospos = (keepSeparators ? i.getPos() : i.getPos() + 1); - break; - } - } - lastWasSeparator = foundSeparator; - ++pos; - ++i; - } - u32 s = size() + 1; - if (s > lastpos) - ret.push_back(ustring16(&array[lastpospos], s - lastpos)); - return ret.size()-oldSize; - } - - - //! Split the ustring16 into parts. - /** This method will split a ustring16 at certain delimiter characters - into the container passed in as reference. The type of the container - has to be given as template parameter. It must provide a push_back and - a size method. - \param ret The result container - \param c A unicode string of delimiter characters - \param ignoreEmptyTokens Flag to avoid empty substrings in the result - container. If two delimiters occur without a character in between, an - empty substring would be placed in the result. If this flag is set, - only non-empty strings are stored. - \param keepSeparators Flag which allows to add the separator to the - result ustring16. If this flag is true, the concatenation of the - substrings results in the original ustring16. Otherwise, only the - characters between the delimiters are returned. - \return The number of resulting substrings - */ - template - u32 split(container& ret, const ustring16& c, bool ignoreEmptyTokens=true, bool keepSeparators=false) const - { - core::array v = c.toUTF32(); - return split(ret, v.pointer(), v.size(), ignoreEmptyTokens, keepSeparators); - } - - - //! Gets the size of the allocated memory buffer for the string. - //! \return The size of the allocated memory buffer. - u32 capacity() const - { - return allocated; - } - - - //! Returns the raw number of UTF-16 code points in the string which includes the individual surrogates. - //! \return The raw number of UTF-16 code points, excluding the trialing NUL. - u32 size_raw() const - { - return used; - } - - - //! Inserts a character into the string. - //! \param c The character to insert. - //! \param pos The position to insert the character. - //! \return A reference to our current string. - ustring16& insert(uchar32_t c, u32 pos) - { - u8 len = (c > 0xFFFF ? 2 : 1); - - if (used + len >= allocated) - reallocate(used + len); - - used += len; - - iterator iter(*this, pos); - for (u32 i = used - 2; i > iter.getPos(); --i) - array[i] = array[i - len]; - - if (c > 0xFFFF) - { - // c will be multibyte, so split it up into a surrogate pair. - uchar16_t x = static_cast(c); - uchar16_t vh = UTF16_HI_SURROGATE | ((((c >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10); - uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1)); - array[iter.getPos()] = vh; - array[iter.getPos()+1] = vl; - } - else - { - array[iter.getPos()] = static_cast(c); - } - array[used] = 0; - return *this; - } - - - //! Inserts a string into the string. - //! \param c The string to insert. - //! \param pos The position to insert the string. - //! \return A reference to our current string. - ustring16& insert(const ustring16& c, u32 pos) - { - u32 len = c.size_raw(); - if (len == 0) return *this; - - if (used + len >= allocated) - reallocate(used + len); - - used += len; - - iterator iter(*this, pos); - for (u32 i = used - 2; i > iter.getPos() + len; --i) - array[i] = array[i - len]; - - const uchar16_t* s = c.c_str(); - for (u32 i = 0; i < len; ++i) - { - array[pos++] = *s; - ++s; - } - - array[used] = 0; - return *this; - } - - - //! Inserts a character into the string. - //! \param c The character to insert. - //! \param pos The position to insert the character. - //! \return A reference to our current string. - ustring16& insert_raw(uchar16_t c, u32 pos) - { - if (used + 1 >= allocated) - reallocate(used + 1); - - ++used; - - for (u32 i = used - 1; i > pos; --i) - array[i] = array[i - 1]; - - array[pos] = c; - array[used] = 0; - return *this; - } - - - //! Removes a character from string. - //! \param pos Position of the character to remove. - //! \return A reference to our current string. - ustring16& erase_raw(u32 pos) - { - for (u32 i=pos; i<=used; ++i) - { - array[i] = array[i + 1]; - } - --used; - array[used] = 0; - return *this; - } - - - //! Replaces a character in the string. - //! \param c The new character. - //! \param pos The position of the character to replace. - //! \return A reference to our current string. - ustring16& replace_raw(uchar16_t c, u32 pos) - { - array[pos] = c; - return *this; - } - - - //! Returns an iterator to the beginning of the string. - //! \return An iterator to the beginning of the string. - iterator begin() - { - iterator i(*this, 0); - return i; - } - - - //! Returns an iterator to the beginning of the string. - //! \return An iterator to the beginning of the string. - const_iterator begin() const - { - const_iterator i(*this, 0); - return i; - } - - - //! Returns an iterator to the beginning of the string. - //! \return An iterator to the beginning of the string. - const_iterator cbegin() const - { - const_iterator i(*this, 0); - return i; - } - - - //! Returns an iterator to the end of the string. - //! \return An iterator to the end of the string. - iterator end() - { - iterator i(*this, 0); - i.toEnd(); - return i; - } - - - //! Returns an iterator to the end of the string. - //! \return An iterator to the end of the string. - const_iterator end() const - { - const_iterator i(*this, 0); - i.toEnd(); - return i; - } - - - //! Returns an iterator to the end of the string. - //! \return An iterator to the end of the string. - const_iterator cend() const - { - const_iterator i(*this, 0); - i.toEnd(); - return i; - } - - - //! Converts the string to a UTF-8 encoded string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return A string containing the UTF-8 encoded string. - core::string toUTF8_s(const bool addBOM = false) const - { - core::string ret; - ret.reserve(used * 4 + (addBOM ? unicode::BOM_UTF8_LEN : 0) + 1); - const_iterator iter(*this, 0); - - // Add the byte order mark if the user wants it. - if (addBOM) - { - ret.append(unicode::BOM_ENCODE_UTF8[0]); - ret.append(unicode::BOM_ENCODE_UTF8[1]); - ret.append(unicode::BOM_ENCODE_UTF8[2]); - } - - while (!iter.atEnd()) - { - uchar32_t c = *iter; - if (c > 0xFFFF) - { // 4 bytes - uchar8_t b1 = (0x1E << 3) | ((c >> 18) & 0x7); - uchar8_t b2 = (0x2 << 6) | ((c >> 12) & 0x3F); - uchar8_t b3 = (0x2 << 6) | ((c >> 6) & 0x3F); - uchar8_t b4 = (0x2 << 6) | (c & 0x3F); - ret.append(b1); - ret.append(b2); - ret.append(b3); - ret.append(b4); - } - else if (c > 0x7FF) - { // 3 bytes - uchar8_t b1 = (0xE << 4) | ((c >> 12) & 0xF); - uchar8_t b2 = (0x2 << 6) | ((c >> 6) & 0x3F); - uchar8_t b3 = (0x2 << 6) | (c & 0x3F); - ret.append(b1); - ret.append(b2); - ret.append(b3); - } - else if (c > 0x7F) - { // 2 bytes - uchar8_t b1 = (0x6 << 5) | ((c >> 6) & 0x1F); - uchar8_t b2 = (0x2 << 6) | (c & 0x3F); - ret.append(b1); - ret.append(b2); - } - else - { // 1 byte - ret.append(static_cast(c)); - } - ++iter; - } - return ret; - } - - - //! Converts the string to a UTF-8 encoded string array. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return An array containing the UTF-8 encoded string. - core::array toUTF8(const bool addBOM = false) const - { - core::array ret(used * 4 + (addBOM ? unicode::BOM_UTF8_LEN : 0) + 1); - const_iterator iter(*this, 0); - - // Add the byte order mark if the user wants it. - if (addBOM) - { - ret.push_back(unicode::BOM_ENCODE_UTF8[0]); - ret.push_back(unicode::BOM_ENCODE_UTF8[1]); - ret.push_back(unicode::BOM_ENCODE_UTF8[2]); - } - - while (!iter.atEnd()) - { - uchar32_t c = *iter; - if (c > 0xFFFF) - { // 4 bytes - uchar8_t b1 = (0x1E << 3) | ((c >> 18) & 0x7); - uchar8_t b2 = (0x2 << 6) | ((c >> 12) & 0x3F); - uchar8_t b3 = (0x2 << 6) | ((c >> 6) & 0x3F); - uchar8_t b4 = (0x2 << 6) | (c & 0x3F); - ret.push_back(b1); - ret.push_back(b2); - ret.push_back(b3); - ret.push_back(b4); - } - else if (c > 0x7FF) - { // 3 bytes - uchar8_t b1 = (0xE << 4) | ((c >> 12) & 0xF); - uchar8_t b2 = (0x2 << 6) | ((c >> 6) & 0x3F); - uchar8_t b3 = (0x2 << 6) | (c & 0x3F); - ret.push_back(b1); - ret.push_back(b2); - ret.push_back(b3); - } - else if (c > 0x7F) - { // 2 bytes - uchar8_t b1 = (0x6 << 5) | ((c >> 6) & 0x1F); - uchar8_t b2 = (0x2 << 6) | (c & 0x3F); - ret.push_back(b1); - ret.push_back(b2); - } - else - { // 1 byte - ret.push_back(static_cast(c)); - } - ++iter; - } - ret.push_back(0); - return ret; - } - - -#ifdef USTRING_CPP0X_NEWLITERALS // C++0x - //! Converts the string to a UTF-16 encoded string. - //! \param endian The desired endianness of the string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return A string containing the UTF-16 encoded string. - core::string toUTF16_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const - { - core::string ret; - ret.reserve(used + (addBOM ? unicode::BOM_UTF16_LEN : 0) + 1); - - // Add the BOM if specified. - if (addBOM) - { - if (endian == unicode::EUTFEE_NATIVE) - ret[0] = unicode::BOM; - else if (endian == unicode::EUTFEE_LITTLE) - { - uchar8_t* ptr8 = reinterpret_cast(&ret[0]); - *ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0]; - *ptr8 = unicode::BOM_ENCODE_UTF16_LE[1]; - } - else - { - uchar8_t* ptr8 = reinterpret_cast(&ret[0]); - *ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0]; - *ptr8 = unicode::BOM_ENCODE_UTF16_BE[1]; - } - } - - ret.append(array); - if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian) - { - char16_t* ptr = ret.c_str(); - for (u32 i = 0; i < ret.size(); ++i) - *ptr++ = unicode::swapEndian16(*ptr); - } - return ret; - } -#endif - - - //! Converts the string to a UTF-16 encoded string array. - //! Unfortunately, no toUTF16_s() version exists due to limitations with Irrlicht's string class. - //! \param endian The desired endianness of the string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return An array containing the UTF-16 encoded string. - core::array toUTF16(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const - { - core::array ret(used + (addBOM ? unicode::BOM_UTF16_LEN : 0) + 1); - uchar16_t* ptr = ret.pointer(); - - // Add the BOM if specified. - if (addBOM) - { - if (endian == unicode::EUTFEE_NATIVE) - *ptr = unicode::BOM; - else if (endian == unicode::EUTFEE_LITTLE) - { - uchar8_t* ptr8 = reinterpret_cast(ptr); - *ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0]; - *ptr8 = unicode::BOM_ENCODE_UTF16_LE[1]; - } - else - { - uchar8_t* ptr8 = reinterpret_cast(ptr); - *ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0]; - *ptr8 = unicode::BOM_ENCODE_UTF16_BE[1]; - } - ++ptr; - } - - memcpy((void*)ptr, (void*)array, used * sizeof(uchar16_t)); - if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian) - { - for (u32 i = 0; i <= used; ++i) - ptr[i] = unicode::swapEndian16(ptr[i]); - } - ret.set_used(used + (addBOM ? unicode::BOM_UTF16_LEN : 0)); - ret.push_back(0); - return ret; - } - - -#ifdef USTRING_CPP0X_NEWLITERALS // C++0x - //! Converts the string to a UTF-32 encoded string. - //! \param endian The desired endianness of the string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return A string containing the UTF-32 encoded string. - core::string toUTF32_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const - { - core::string ret; - ret.reserve(size() + 1 + (addBOM ? unicode::BOM_UTF32_LEN : 0)); - const_iterator iter(*this, 0); - - // Add the BOM if specified. - if (addBOM) - { - if (endian == unicode::EUTFEE_NATIVE) - ret.append(unicode::BOM); - else - { - union - { - uchar32_t full; - u8 chunk[4]; - } t; - - if (endian == unicode::EUTFEE_LITTLE) - { - t.chunk[0] = unicode::BOM_ENCODE_UTF32_LE[0]; - t.chunk[1] = unicode::BOM_ENCODE_UTF32_LE[1]; - t.chunk[2] = unicode::BOM_ENCODE_UTF32_LE[2]; - t.chunk[3] = unicode::BOM_ENCODE_UTF32_LE[3]; - } - else - { - t.chunk[0] = unicode::BOM_ENCODE_UTF32_BE[0]; - t.chunk[1] = unicode::BOM_ENCODE_UTF32_BE[1]; - t.chunk[2] = unicode::BOM_ENCODE_UTF32_BE[2]; - t.chunk[3] = unicode::BOM_ENCODE_UTF32_BE[3]; - } - ret.append(t.full); - } - } - - while (!iter.atEnd()) - { - uchar32_t c = *iter; - if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian) - c = unicode::swapEndian32(c); - ret.append(c); - ++iter; - } - return ret; - } -#endif - - - //! Converts the string to a UTF-32 encoded string array. - //! Unfortunately, no toUTF32_s() version exists due to limitations with Irrlicht's string class. - //! \param endian The desired endianness of the string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return An array containing the UTF-32 encoded string. - core::array toUTF32(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const - { - core::array ret(size() + (addBOM ? unicode::BOM_UTF32_LEN : 0) + 1); - const_iterator iter(*this, 0); - - // Add the BOM if specified. - if (addBOM) - { - if (endian == unicode::EUTFEE_NATIVE) - ret.push_back(unicode::BOM); - else - { - union - { - uchar32_t full; - u8 chunk[4]; - } t; - - if (endian == unicode::EUTFEE_LITTLE) - { - t.chunk[0] = unicode::BOM_ENCODE_UTF32_LE[0]; - t.chunk[1] = unicode::BOM_ENCODE_UTF32_LE[1]; - t.chunk[2] = unicode::BOM_ENCODE_UTF32_LE[2]; - t.chunk[3] = unicode::BOM_ENCODE_UTF32_LE[3]; - } - else - { - t.chunk[0] = unicode::BOM_ENCODE_UTF32_BE[0]; - t.chunk[1] = unicode::BOM_ENCODE_UTF32_BE[1]; - t.chunk[2] = unicode::BOM_ENCODE_UTF32_BE[2]; - t.chunk[3] = unicode::BOM_ENCODE_UTF32_BE[3]; - } - ret.push_back(t.full); - } - } - ret.push_back(0); - - while (!iter.atEnd()) - { - uchar32_t c = *iter; - if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian) - c = unicode::swapEndian32(c); - ret.push_back(c); - ++iter; - } - return ret; - } - - - //! Converts the string to a wchar_t encoded string. - /** The size of a wchar_t changes depending on the platform. This function will store a - correct UTF-8, -16, or -32 encoded string depending on the size of a wchar_t. **/ - //! \param endian The desired endianness of the string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return A string containing the wchar_t encoded string. - core::string toWCHAR_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const - { - if (sizeof(wchar_t) == 4) - { - core::array a(toUTF32(endian, addBOM)); - core::stringw ret(a.pointer()); - return ret; - } - else if (sizeof(wchar_t) == 2) - { - if (endian == unicode::EUTFEE_NATIVE && addBOM == false) - { - core::stringw ret(array); - return ret; - } - else - { - core::array a(toUTF16(endian, addBOM)); - core::stringw ret(a.pointer()); - return ret; - } - } - else if (sizeof(wchar_t) == 1) - { - core::array a(toUTF8(addBOM)); - core::stringw ret(a.pointer()); - return ret; - } - - // Shouldn't happen. - return core::stringw(); - } - - - //! Converts the string to a wchar_t encoded string array. - /** The size of a wchar_t changes depending on the platform. This function will store a - correct UTF-8, -16, or -32 encoded string depending on the size of a wchar_t. **/ - //! \param endian The desired endianness of the string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return An array containing the wchar_t encoded string. - core::array toWCHAR(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const - { - if (sizeof(wchar_t) == 4) - { - core::array a(toUTF32(endian, addBOM)); - core::array ret(a.size()); - ret.set_used(a.size()); - memcpy((void*)ret.pointer(), (void*)a.pointer(), a.size() * sizeof(uchar32_t)); - return ret; - } - if (sizeof(wchar_t) == 2) - { - if (endian == unicode::EUTFEE_NATIVE && addBOM == false) - { - core::array ret(used); - ret.set_used(used); - memcpy((void*)ret.pointer(), (void*)array, used * sizeof(uchar16_t)); - return ret; - } - else - { - core::array a(toUTF16(endian, addBOM)); - core::array ret(a.size()); - ret.set_used(a.size()); - memcpy((void*)ret.pointer(), (void*)a.pointer(), a.size() * sizeof(uchar16_t)); - return ret; - } - } - if (sizeof(wchar_t) == 1) - { - core::array a(toUTF8(addBOM)); - core::array ret(a.size()); - ret.set_used(a.size()); - memcpy((void*)ret.pointer(), (void*)a.pointer(), a.size() * sizeof(uchar8_t)); - return ret; - } - - // Shouldn't happen. - return core::array(); - } - - //! Converts the string to a properly encoded io::path string. - //! \param endian The desired endianness of the string. - //! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string. - //! \return An io::path string containing the properly encoded string. - io::path toPATH_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const - { -#if defined(_IRR_WCHAR_FILESYSTEM) - return toWCHAR_s(endian, addBOM); -#else - return toUTF8_s(addBOM); -#endif - } - - //! Loads an unknown stream of data. - //! Will attempt to determine if the stream is unicode data. Useful for loading from files. - //! \param data The data stream to load from. - //! \param data_size The length of the data string. - //! \return A reference to our current string. - ustring16& loadDataStream(const char* data, size_t data_size) - { - // Clear our string. - *this = ""; - if (!data) - return *this; - - unicode::EUTF_ENCODE e = unicode::determineUnicodeBOM(data); - switch (e) - { - default: - case unicode::EUTFE_UTF8: - append((uchar8_t*)data, data_size); - break; - - case unicode::EUTFE_UTF16: - case unicode::EUTFE_UTF16_BE: - case unicode::EUTFE_UTF16_LE: - append((uchar16_t*)data, data_size / 2); - break; - - case unicode::EUTFE_UTF32: - case unicode::EUTFE_UTF32_BE: - case unicode::EUTFE_UTF32_LE: - append((uchar32_t*)data, data_size / 4); - break; - } - - return *this; - } - - //! Gets the encoding of the Unicode string this class contains. - //! \return An enum describing the current encoding of this string. - const unicode::EUTF_ENCODE getEncoding() const - { - return encoding; - } - - //! Gets the endianness of the Unicode string this class contains. - //! \return An enum describing the endianness of this string. - const unicode::EUTF_ENDIAN getEndianness() const - { - if (encoding == unicode::EUTFE_UTF16_LE || - encoding == unicode::EUTFE_UTF32_LE) - return unicode::EUTFEE_LITTLE; - else return unicode::EUTFEE_BIG; - } - -private: - - //! Reallocate the string, making it bigger or smaller. - //! \param new_size The new size of the string. - void reallocate(u32 new_size) - { - uchar16_t* old_array = array; - - array = allocator.allocate(new_size + 1); //new u16[new_size]; - allocated = new_size + 1; - if (old_array == 0) return; - - u32 amount = used < new_size ? used : new_size; - for (u32 i=0; i<=amount; ++i) - array[i] = old_array[i]; - - if (allocated <= used) - used = allocated - 1; - - array[used] = 0; - - allocator.deallocate(old_array); // delete [] old_array; - } - - //--- member variables - - uchar16_t* array; - unicode::EUTF_ENCODE encoding; - u32 allocated; - u32 used; - TAlloc allocator; - //irrAllocator allocator; -}; - -typedef ustring16 > ustring; - - -//! Appends two ustring16s. -template -inline ustring16 operator+(const ustring16& left, const ustring16& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a null-terminated unicode string. -template -inline ustring16 operator+(const ustring16& left, const B* const right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a null-terminated unicode string. -template -inline ustring16 operator+(const B* const left, const ustring16& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and an Irrlicht string. -template -inline ustring16 operator+(const ustring16& left, const string& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and an Irrlicht string. -template -inline ustring16 operator+(const string& left, const ustring16& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a std::basic_string. -template -inline ustring16 operator+(const ustring16& left, const std::basic_string& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a std::basic_string. -template -inline ustring16 operator+(const std::basic_string& left, const ustring16& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a char. -template -inline ustring16 operator+(const ustring16& left, const char right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a char. -template -inline ustring16 operator+(const char left, const ustring16& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -#ifdef USTRING_CPP0X_NEWLITERALS -//! Appends a ustring16 and a uchar32_t. -template -inline ustring16 operator+(const ustring16& left, const uchar32_t right) -{ - ustring16 ret(left); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a uchar32_t. -template -inline ustring16 operator+(const uchar32_t left, const ustring16& right) -{ - ustring16 ret(left); - ret += right; - return ret; -} -#endif - - -//! Appends a ustring16 and a short. -template -inline ustring16 operator+(const ustring16& left, const short right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and a short. -template -inline ustring16 operator+(const short left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -//! Appends a ustring16 and an unsigned short. -template -inline ustring16 operator+(const ustring16& left, const unsigned short right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and an unsigned short. -template -inline ustring16 operator+(const unsigned short left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -//! Appends a ustring16 and an int. -template -inline ustring16 operator+(const ustring16& left, const int right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and an int. -template -inline ustring16 operator+(const int left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -//! Appends a ustring16 and an unsigned int. -template -inline ustring16 operator+(const ustring16& left, const unsigned int right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and an unsigned int. -template -inline ustring16 operator+(const unsigned int left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a long. -template -inline ustring16 operator+(const ustring16& left, const long right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and a long. -template -inline ustring16 operator+(const long left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -//! Appends a ustring16 and an unsigned long. -template -inline ustring16 operator+(const ustring16& left, const unsigned long right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and an unsigned long. -template -inline ustring16 operator+(const unsigned long left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a float. -template -inline ustring16 operator+(const ustring16& left, const float right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and a float. -template -inline ustring16 operator+(const float left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -//! Appends a ustring16 and a double. -template -inline ustring16 operator+(const ustring16& left, const double right) -{ - ustring16 ret(left); - ret += core::stringc(right); - return ret; -} - - -//! Appends a ustring16 and a double. -template -inline ustring16 operator+(const double left, const ustring16& right) -{ - ustring16 ret((core::stringc(left))); - ret += right; - return ret; -} - - -#ifdef USTRING_CPP0X -//! Appends two ustring16s. -template -inline ustring16&& operator+(const ustring16& left, ustring16&& right) -{ - //std::cout << "MOVE operator+(&, &&)" << std::endl; - right.insert(left, 0); - return std::move(right); -} - - -//! Appends two ustring16s. -template -inline ustring16&& operator+(ustring16&& left, const ustring16& right) -{ - //std::cout << "MOVE operator+(&&, &)" << std::endl; - left.append(right); - return std::move(left); -} - - -//! Appends two ustring16s. -template -inline ustring16&& operator+(ustring16&& left, ustring16&& right) -{ - //std::cout << "MOVE operator+(&&, &&)" << std::endl; - if ((right.size_raw() <= left.capacity() - left.size_raw()) || - (right.capacity() - right.size_raw() < left.size_raw())) - { - left.append(right); - return std::move(left); - } - else - { - right.insert(left, 0); - return std::move(right); - } -} - - -//! Appends a ustring16 and a null-terminated unicode string. -template -inline ustring16&& operator+(ustring16&& left, const B* const right) -{ - //std::cout << "MOVE operator+(&&, B*)" << std::endl; - left.append(right); - return std::move(left); -} - - -//! Appends a ustring16 and a null-terminated unicode string. -template -inline ustring16&& operator+(const B* const left, ustring16&& right) -{ - //std::cout << "MOVE operator+(B*, &&)" << std::endl; - right.insert(left, 0); - return std::move(right); -} - - -//! Appends a ustring16 and an Irrlicht string. -template -inline ustring16&& operator+(const string& left, ustring16&& right) -{ - //std::cout << "MOVE operator+(&, &&)" << std::endl; - right.insert(left, 0); - return std::move(right); -} - - -//! Appends a ustring16 and an Irrlicht string. -template -inline ustring16&& operator+(ustring16&& left, const string& right) -{ - //std::cout << "MOVE operator+(&&, &)" << std::endl; - left.append(right); - return std::move(left); -} - - -//! Appends a ustring16 and a std::basic_string. -template -inline ustring16&& operator+(const std::basic_string& left, ustring16&& right) -{ - //std::cout << "MOVE operator+(&, &&)" << std::endl; - right.insert(core::ustring16(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and a std::basic_string. -template -inline ustring16&& operator+(ustring16&& left, const std::basic_string& right) -{ - //std::cout << "MOVE operator+(&&, &)" << std::endl; - left.append(right); - return std::move(left); -} - - -//! Appends a ustring16 and a char. -template -inline ustring16 operator+(ustring16&& left, const char right) -{ - left.append((uchar32_t)right); - return std::move(left); -} - - -//! Appends a ustring16 and a char. -template -inline ustring16 operator+(const char left, ustring16&& right) -{ - right.insert((uchar32_t)left, 0); - return std::move(right); -} - - -#ifdef USTRING_CPP0X_NEWLITERALS -//! Appends a ustring16 and a uchar32_t. -template -inline ustring16 operator+(ustring16&& left, const uchar32_t right) -{ - left.append(right); - return std::move(left); -} - - -//! Appends a ustring16 and a uchar32_t. -template -inline ustring16 operator+(const uchar32_t left, ustring16&& right) -{ - right.insert(left, 0); - return std::move(right); -} -#endif - - -//! Appends a ustring16 and a short. -template -inline ustring16 operator+(ustring16&& left, const short right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and a short. -template -inline ustring16 operator+(const short left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and an unsigned short. -template -inline ustring16 operator+(ustring16&& left, const unsigned short right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and an unsigned short. -template -inline ustring16 operator+(const unsigned short left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and an int. -template -inline ustring16 operator+(ustring16&& left, const int right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and an int. -template -inline ustring16 operator+(const int left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and an unsigned int. -template -inline ustring16 operator+(ustring16&& left, const unsigned int right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and an unsigned int. -template -inline ustring16 operator+(const unsigned int left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and a long. -template -inline ustring16 operator+(ustring16&& left, const long right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and a long. -template -inline ustring16 operator+(const long left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and an unsigned long. -template -inline ustring16 operator+(ustring16&& left, const unsigned long right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and an unsigned long. -template -inline ustring16 operator+(const unsigned long left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and a float. -template -inline ustring16 operator+(ustring16&& left, const float right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and a float. -template -inline ustring16 operator+(const float left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} - - -//! Appends a ustring16 and a double. -template -inline ustring16 operator+(ustring16&& left, const double right) -{ - left.append(core::stringc(right)); - return std::move(left); -} - - -//! Appends a ustring16 and a double. -template -inline ustring16 operator+(const double left, ustring16&& right) -{ - right.insert(core::stringc(left), 0); - return std::move(right); -} -#endif - - -#ifndef USTRING_NO_STL -//! Writes a ustring16 to an ostream. -template -inline std::ostream& operator<<(std::ostream& out, const ustring16& in) -{ - out << in.toUTF8_s().c_str(); - return out; -} - -//! Writes a ustring16 to a wostream. -template -inline std::wostream& operator<<(std::wostream& out, const ustring16& in) -{ - out << in.toWCHAR_s().c_str(); - return out; -} -#endif - - -#ifndef USTRING_NO_STL - -namespace unicode -{ - -//! Hashing algorithm for hashing a ustring. Used for things like unordered_maps. -//! Algorithm taken from std::hash. -class hash : public std::unary_function -{ - public: - size_t operator()(const core::ustring& s) const - { - size_t ret = 2166136261U; - size_t index = 0; - size_t stride = 1 + s.size_raw() / 10; - - core::ustring::const_iterator i = s.begin(); - while (i != s.end()) - { - // TODO: Don't force u32 on an x64 OS. Make it agnostic. - ret = 16777619U * ret ^ (size_t)s[(u32)index]; - index += stride; - i += stride; - } - return (ret); - } -}; - -} // end namespace unicode - -#endif - -} // end namespace core -} // end namespace irr diff --git a/src/irrlicht_changes/static_text.cpp b/src/irrlicht_changes/static_text.cpp index bf61cd64e..8908a91f7 100644 --- a/src/irrlicht_changes/static_text.cpp +++ b/src/irrlicht_changes/static_text.cpp @@ -108,16 +108,11 @@ void StaticText::draw() font->getDimension(str.c_str()).Width; } - //str = colorizeText(BrokenText[i].c_str(), colors, previous_color); - //if (!colors.empty()) - // previous_color = colors[colors.size() - 1]; - #if USE_FREETYPE if (font->getType() == irr::gui::EGFT_CUSTOM) { irr::gui::CGUITTFont *tmp = static_cast(font); tmp->draw(str, - r, previous_color, // FIXME - HAlign == EGUIA_CENTER, VAlign == EGUIA_CENTER, + r, HAlign == EGUIA_CENTER, VAlign == EGUIA_CENTER, (RestrainTextInside ? &AbsoluteClippingRect : NULL)); } else #endif @@ -246,15 +241,17 @@ void StaticText::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vert } -#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 7 -const video::SColor& StaticText::getOverrideColor() const -#else video::SColor StaticText::getOverrideColor() const -#endif { return ColoredText.getDefaultColor(); } +#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 +video::SColor StaticText::getActiveColor() const +{ + return getOverrideColor(); +} +#endif //! Sets if the static text should use the overide color or the //! color in the gui skin. diff --git a/src/irrlicht_changes/static_text.h b/src/irrlicht_changes/static_text.h index 1f111ea56..83bbf4c3d 100644 --- a/src/irrlicht_changes/static_text.h +++ b/src/irrlicht_changes/static_text.h @@ -134,10 +134,11 @@ namespace gui virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical); //! Gets the override color - #if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR <= 7 - virtual const video::SColor& getOverrideColor() const; - #else virtual video::SColor getOverrideColor() const; + + #if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8 + //! Gets the currently used text color + virtual video::SColor getActiveColor() const; #endif //! Sets if the static text should use the overide color or the diff --git a/src/irrlichttypes.h b/src/irrlichttypes.h index 794776b26..93c2d105b 100644 --- a/src/irrlichttypes.h +++ b/src/irrlichttypes.h @@ -19,16 +19,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -/* Ensure that is included before , unless building on - * MSVC, to address an irrlicht issue: https://sourceforge.net/p/irrlicht/bugs/433/ - * - * TODO: Decide whether or not we support non-compliant C++ compilers like old - * versions of MSCV. If we do not then can always be included - * regardless of the compiler. +/* + * IrrlichtMt already includes stdint.h in irrTypes.h. This works everywhere + * we need it to (including recent MSVC), so should be fine here too. */ -#ifndef _MSC_VER -# include -#endif +#include #include @@ -36,19 +31,6 @@ using namespace irr; namespace irr { -// Irrlicht 1.8+ defines 64bit unsigned symbol in irrTypes.h -#if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 8) -#ifdef _MSC_VER - // Windows - typedef long long s64; - typedef unsigned long long u64; -#else - // Posix - typedef int64_t s64; - typedef uint64_t u64; -#endif -#endif - #if (IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR >= 9) namespace core { template diff --git a/src/itemdef.cpp b/src/itemdef.cpp index 5fb1e4c47..d79d6b263 100644 --- a/src/itemdef.cpp +++ b/src/itemdef.cpp @@ -71,13 +71,11 @@ ItemDefinition& ItemDefinition::operator=(const ItemDefinition &def) stack_max = def.stack_max; usable = def.usable; liquids_pointable = def.liquids_pointable; - if(def.tool_capabilities) - { - tool_capabilities = new ToolCapabilities( - *def.tool_capabilities); - } + if (def.tool_capabilities) + tool_capabilities = new ToolCapabilities(*def.tool_capabilities); groups = def.groups; node_placement_prediction = def.node_placement_prediction; + place_param2 = def.place_param2; sound_place = def.sound_place; sound_place_failed = def.sound_place_failed; range = def.range; @@ -120,8 +118,8 @@ void ItemDefinition::reset() sound_place = SimpleSoundSpec(); sound_place_failed = SimpleSoundSpec(); range = -1; - node_placement_prediction = ""; + place_param2 = 0; } void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const @@ -166,6 +164,8 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const os << serializeString16(wield_overlay); os << serializeString16(short_description); + + os << place_param2; } void ItemDefinition::deSerialize(std::istream &is) @@ -219,6 +219,8 @@ void ItemDefinition::deSerialize(std::istream &is) // block to not need to increase the version. try { short_description = deSerializeString16(is); + + place_param2 = readU8(is); // 0 if missing } catch(SerializationError &e) {}; } diff --git a/src/itemdef.h b/src/itemdef.h index ebf0d3527..3e302840f 100644 --- a/src/itemdef.h +++ b/src/itemdef.h @@ -86,6 +86,7 @@ struct ItemDefinition // Server will update the precise end result a moment later. // "" = no prediction std::string node_placement_prediction; + u8 place_param2; /* Some helpful methods diff --git a/src/itemstackmetadata.cpp b/src/itemstackmetadata.cpp index 4aa1a0903..7a26fbb0e 100644 --- a/src/itemstackmetadata.cpp +++ b/src/itemstackmetadata.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "itemstackmetadata.h" #include "util/serialize.h" #include "util/strfnd.h" +#include #define DESERIALIZE_START '\x01' #define DESERIALIZE_KV_DELIM '\x02' @@ -37,10 +38,22 @@ void ItemStackMetadata::clear() updateToolCapabilities(); } +static void sanitize_string(std::string &str) +{ + str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_START), str.end()); + str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_KV_DELIM), str.end()); + str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_PAIR_DELIM), str.end()); +} + bool ItemStackMetadata::setString(const std::string &name, const std::string &var) { - bool result = Metadata::setString(name, var); - if (name == TOOLCAP_KEY) + std::string clean_name = name; + std::string clean_var = var; + sanitize_string(clean_name); + sanitize_string(clean_var); + + bool result = Metadata::setString(clean_name, clean_var); + if (clean_name == TOOLCAP_KEY) updateToolCapabilities(); return result; } diff --git a/src/main.cpp b/src/main.cpp index af6d307dc..7f96836b5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -47,11 +47,19 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "gui/guiEngine.h" #include "gui/mainmenumanager.h" #endif - #ifdef HAVE_TOUCHSCREENGUI #include "gui/touchscreengui.h" #endif +// for version information only +extern "C" { +#if USE_LUAJIT + #include +#else + #include +#endif +} + #if !defined(SERVER) && \ (IRRLICHT_VERSION_MAJOR == 1) && \ (IRRLICHT_VERSION_MINOR == 8) && \ @@ -217,8 +225,7 @@ int main(int argc, char *argv[]) return run_dedicated_server(game_params, cmd_args) ? 0 : 1; #ifndef SERVER - ClientLauncher launcher; - retval = launcher.run(game_params, cmd_args) ? 0 : 1; + retval = ClientLauncher().run(game_params, cmd_args) ? 0 : 1; #else retval = 0; #endif @@ -350,6 +357,11 @@ static void print_version() << " (" << porting::getPlatformName() << ")" << std::endl; #ifndef SERVER std::cout << "Using Irrlicht " IRRLICHT_SDK_VERSION << std::endl; +#endif +#if USE_LUAJIT + std::cout << "Using " << LUAJIT_VERSION << std::endl; +#else + std::cout << "Using " << LUA_RELEASE << std::endl; #endif std::cout << g_build_info << std::endl; } @@ -474,12 +486,15 @@ static bool create_userdata_path() static bool init_common(const Settings &cmd_args, int argc, char *argv[]) { startup_message(); - set_default_settings(g_settings); + set_default_settings(); // Initialize sockets sockets_init(); atexit(sockets_cleanup); + // Initialize g_settings + Settings::createLayer(SL_GLOBAL); + if (!read_config_file(cmd_args)) return false; diff --git a/src/map.cpp b/src/map.cpp index 6d53351ef..eeaf5c140 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -545,23 +545,6 @@ void Map::transformLiquids(std::map &modified_blocks, u32 liquid_loop_max = g_settings->getS32("liquid_loop_max"); u32 loop_max = liquid_loop_max; -#if 0 - - /* If liquid_loop_max is not keeping up with the queue size increase - * loop_max up to a maximum of liquid_loop_max * dedicated_server_step. - */ - if (m_transforming_liquid.size() > loop_max * 2) { - // "Burst" mode - float server_step = g_settings->getFloat("dedicated_server_step"); - if (m_transforming_liquid_loop_count_multiplier - 1.0 < server_step) - m_transforming_liquid_loop_count_multiplier *= 1.0 + server_step / 10; - } else { - m_transforming_liquid_loop_count_multiplier = 1.0; - } - - loop_max *= m_transforming_liquid_loop_count_multiplier; -#endif - while (m_transforming_liquid.size() != 0) { // This should be done here so that it is done when continue is used @@ -1216,7 +1199,7 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes) ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef, EmergeManager *emerge, MetricsBackend *mb): Map(gamedef), - settings_mgr(g_settings, savedir + DIR_DELIM + "map_meta.txt"), + settings_mgr(savedir + DIR_DELIM + "map_meta.txt"), m_emerge(emerge) { verbosestream<addCounter("minetest_core_map_save_time", "Map save time (in nanoseconds)"); + m_map_compression_level = rangelim(g_settings->getS16("map_compression_level_disk"), -1, 9); + try { // If directory exists, check contents and load if possible if (fs::PathExists(m_savedir)) { @@ -1315,18 +1300,6 @@ ServerMap::~ServerMap() */ delete dbase; delete dbase_ro; - -#if 0 - /* - Free all MapChunks - */ - core::map::Iterator i = m_chunks.getIterator(); - for(; i.atEnd() == false; i++) - { - MapChunk *chunk = i.getNode()->getValue(); - delete chunk; - } -#endif } MapgenParams *ServerMap::getMapgenParams() @@ -1415,25 +1388,6 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data) data->vmanip = new MMVManip(this); data->vmanip->initialEmerge(full_bpmin, full_bpmax); - // Note: we may need this again at some point. -#if 0 - // Ensure none of the blocks to be generated were marked as - // containing CONTENT_IGNORE - for (s16 z = blockpos_min.Z; z <= blockpos_max.Z; z++) { - for (s16 y = blockpos_min.Y; y <= blockpos_max.Y; y++) { - for (s16 x = blockpos_min.X; x <= blockpos_max.X; x++) { - core::map::Node *n; - n = data->vmanip->m_loaded_blocks.find(v3s16(x, y, z)); - if (n == NULL) - continue; - u8 flags = n->getValue(); - flags &= ~VMANIP_BLOCK_CONTAINS_CIGNORE; - n->setValue(flags); - } - } - } -#endif - // Data is ready now. return true; } @@ -1444,8 +1398,6 @@ void ServerMap::finishBlockMake(BlockMakeData *data, v3s16 bpmin = data->blockpos_min; v3s16 bpmax = data->blockpos_max; - v3s16 extra_borders(1, 1, 1); - bool enable_mapgen_debug_info = m_emerge->enable_mapgen_debug_info; EMERGE_DBG_OUT("finishBlockMake(): " PP(bpmin) " - " PP(bpmax)); @@ -1538,116 +1490,6 @@ MapSector *ServerMap::createSector(v2s16 p2d) return sector; } -#if 0 -/* - This is a quick-hand function for calling makeBlock(). -*/ -MapBlock * ServerMap::generateBlock( - v3s16 p, - std::map &modified_blocks -) -{ - bool enable_mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info"); - - TimeTaker timer("generateBlock"); - - //MapBlock *block = original_dummy; - - v2s16 p2d(p.X, p.Z); - v2s16 p2d_nodes = p2d * MAP_BLOCKSIZE; - - /* - Do not generate over-limit - */ - if(blockpos_over_limit(p)) - { - infostream<makeChunk(&data); - //mapgen::make_block(&data); - - if(enable_mapgen_debug_info == false) - t.stop(true); // Hide output - } - - /* - Blit data back on map, update lighting, add mobs and whatever this does - */ - finishBlockMake(&data, modified_blocks); - - /* - Get central block - */ - MapBlock *block = getBlockNoCreateNoEx(p); - -#if 0 - /* - Check result - */ - if(block) - { - bool erroneus_content = false; - for(s16 z0=0; z0getNode(p); - if(n.getContent() == CONTENT_IGNORE) - { - infostream<<"CONTENT_IGNORE at " - <<"("<setNode(v3s16(x0,y0,z0), n); - } - } - } -#endif - - if(enable_mapgen_debug_info == false) - timer.stop(true); // Hide output - - return block; -} -#endif - MapBlock * ServerMap::createBlock(v3s16 p) { /* @@ -1863,10 +1705,10 @@ void ServerMap::endSave() bool ServerMap::saveBlock(MapBlock *block) { - return saveBlock(block, dbase); + return saveBlock(block, dbase, m_map_compression_level); } -bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db) +bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db, int compression_level) { v3s16 p3d = block->getPos(); @@ -1886,7 +1728,7 @@ bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db) */ std::ostringstream o(std::ios_base::binary); o.write((char*) &version, 1); - block->serialize(o, version, true); + block->serialize(o, version, true, compression_level); bool ret = db->saveBlock(p3d, o.str()); if (ret) { diff --git a/src/map.h b/src/map.h index 0b0213ca0..e0db2e262 100644 --- a/src/map.h +++ b/src/map.h @@ -382,7 +382,7 @@ public: MapgenParams *getMapgenParams(); bool saveBlock(MapBlock *block); - static bool saveBlock(MapBlock *block, MapDatabase *db); + static bool saveBlock(MapBlock *block, MapDatabase *db, int compression_level = -1); MapBlock* loadBlock(v3s16 p); // Database version void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false); @@ -417,13 +417,8 @@ private: std::string m_savedir; bool m_map_saving_enabled; -#if 0 - // Chunk size in MapSectors - // If 0, chunks are disabled. - s16 m_chunksize; - // Chunks - core::map m_chunks; -#endif + int m_map_compression_level; + std::set m_chunks_in_progress; /* diff --git a/src/map_settings_manager.cpp b/src/map_settings_manager.cpp index 9c447b3d0..99e3cb0e6 100644 --- a/src/map_settings_manager.cpp +++ b/src/map_settings_manager.cpp @@ -25,17 +25,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "map_settings_manager.h" -MapSettingsManager::MapSettingsManager(Settings *user_settings, - const std::string &map_meta_path): - m_map_meta_path(map_meta_path), - m_map_settings(new Settings()), - m_user_settings(user_settings) +MapSettingsManager::MapSettingsManager(const std::string &map_meta_path): + m_map_meta_path(map_meta_path) { - assert(m_user_settings != NULL); - - Mapgen::setDefaultSettings(m_map_settings); - // This inherits the combined defaults provided by loadGameConfAndInitWorld. - m_map_settings->overrideDefaults(user_settings); + m_map_settings = Settings::createLayer(SL_MAP, "[end_of_params]"); + Mapgen::setDefaultSettings(Settings::getLayer(SL_DEFAULTS)); } @@ -49,22 +43,23 @@ MapSettingsManager::~MapSettingsManager() bool MapSettingsManager::getMapSetting( const std::string &name, std::string *value_out) { + // Get from map_meta.txt, then try from all other sources if (m_map_settings->getNoEx(name, *value_out)) return true; // Compatibility kludge - if (m_user_settings == g_settings && name == "seed") - return m_user_settings->getNoEx("fixed_map_seed", *value_out); + if (name == "seed") + return Settings::getLayer(SL_GLOBAL)->getNoEx("fixed_map_seed", *value_out); - return m_user_settings->getNoEx(name, *value_out); + return false; } bool MapSettingsManager::getMapSettingNoiseParams( const std::string &name, NoiseParams *value_out) { - return m_map_settings->getNoiseParams(name, *value_out) || - m_user_settings->getNoiseParams(name, *value_out); + // TODO: Rename to "getNoiseParams" + return m_map_settings->getNoiseParams(name, *value_out); } @@ -77,7 +72,7 @@ bool MapSettingsManager::setMapSetting( if (override_meta) m_map_settings->set(name, value); else - m_map_settings->setDefault(name, value); + Settings::getLayer(SL_GLOBAL)->set(name, value); return true; } @@ -89,7 +84,11 @@ bool MapSettingsManager::setMapSettingNoiseParams( if (mapgen_params) return false; - m_map_settings->setNoiseParams(name, *value, !override_meta); + if (override_meta) + m_map_settings->setNoiseParams(name, *value); + else + Settings::getLayer(SL_GLOBAL)->setNoiseParams(name, *value); + return true; } @@ -104,8 +103,8 @@ bool MapSettingsManager::loadMapMeta() return false; } - if (!m_map_settings->parseConfigLines(is, "[end_of_params]")) { - errorstream << "loadMapMeta: [end_of_params] not found!" << std::endl; + if (!m_map_settings->parseConfigLines(is)) { + errorstream << "loadMapMeta: Format error. '[end_of_params]' missing?" << std::endl; return false; } @@ -116,28 +115,23 @@ bool MapSettingsManager::loadMapMeta() bool MapSettingsManager::saveMapMeta() { // If mapgen params haven't been created yet; abort - if (!mapgen_params) + if (!mapgen_params) { + infostream << "saveMapMeta: mapgen_params not present! " + << "Server startup was probably interrupted." << std::endl; return false; + } + // Paths set up by subgames.cpp, but not in unittests if (!fs::CreateAllDirs(fs::RemoveLastPathComponent(m_map_meta_path))) { errorstream << "saveMapMeta: could not create dirs to " << m_map_meta_path; return false; } - std::ostringstream oss(std::ios_base::binary); - Settings conf; + mapgen_params->MapgenParams::writeParams(m_map_settings); + mapgen_params->writeParams(m_map_settings); - mapgen_params->MapgenParams::writeParams(&conf); - mapgen_params->writeParams(&conf); - conf.writeLines(oss); - - // NOTE: If there are ever types of map settings other than - // those relating to map generation, save them here - - oss << "[end_of_params]\n"; - - if (!fs::safeWriteToFile(m_map_meta_path, oss.str())) { + if (!m_map_settings->updateConfigFile(m_map_meta_path.c_str())) { errorstream << "saveMapMeta: could not write " << m_map_meta_path << std::endl; return false; @@ -152,23 +146,21 @@ MapgenParams *MapSettingsManager::makeMapgenParams() if (mapgen_params) return mapgen_params; - assert(m_user_settings != NULL); assert(m_map_settings != NULL); // At this point, we have (in order of precedence): - // 1). m_mapgen_settings->m_settings containing map_meta.txt settings or + // 1). SL_MAP containing map_meta.txt settings or // explicit overrides from scripts - // 2). m_mapgen_settings->m_defaults containing script-set mgparams without - // overrides - // 3). g_settings->m_settings containing all user-specified config file + // 2). SL_GLOBAL containing all user-specified config file // settings - // 4). g_settings->m_defaults containing any low-priority settings from + // 3). SL_DEFAULTS containing any low-priority settings from // scripts, e.g. mods using Lua as an enhanced config file) // Now, get the mapgen type so we can create the appropriate MapgenParams std::string mg_name; MapgenType mgtype = getMapSetting("mg_name", &mg_name) ? Mapgen::getMapgenType(mg_name) : MAPGEN_DEFAULT; + if (mgtype == MAPGEN_INVALID) { errorstream << "EmergeManager: mapgen '" << mg_name << "' not valid; falling back to " << diff --git a/src/map_settings_manager.h b/src/map_settings_manager.h index 5baa38455..9258d3032 100644 --- a/src/map_settings_manager.h +++ b/src/map_settings_manager.h @@ -44,8 +44,7 @@ struct MapgenParams; */ class MapSettingsManager { public: - MapSettingsManager(Settings *user_settings, - const std::string &map_meta_path); + MapSettingsManager(const std::string &map_meta_path); ~MapSettingsManager(); // Finalized map generation parameters @@ -71,6 +70,6 @@ public: private: std::string m_map_meta_path; + // TODO: Rename to "m_settings" Settings *m_map_settings; - Settings *m_user_settings; }; diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 8bfecd755..0ca71e643 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -355,7 +355,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes, } } -void MapBlock::serialize(std::ostream &os, u8 version, bool disk) +void MapBlock::serialize(std::ostream &os, u8 version, bool disk, int compression_level) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapBlock format not supported"); @@ -394,7 +394,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) writeU8(os, content_width); writeU8(os, params_width); MapNode::serializeBulk(os, version, tmp_nodes, nodecount, - content_width, params_width, true); + content_width, params_width, compression_level); delete[] tmp_nodes; } else @@ -404,7 +404,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) writeU8(os, content_width); writeU8(os, params_width); MapNode::serializeBulk(os, version, data, nodecount, - content_width, params_width, true); + content_width, params_width, compression_level); } /* @@ -412,7 +412,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) */ std::ostringstream oss(std::ios_base::binary); m_node_metadata.serialize(oss, version, disk); - compressZlib(oss.str(), os); + compressZlib(oss.str(), os, compression_level); /* Data that goes to disk, but not the network @@ -485,7 +485,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk) if(params_width != 2) throw SerializationError("MapBlock::deSerialize(): invalid params_width"); MapNode::deSerializeBulk(is, version, data, nodecount, - content_width, params_width, true); + content_width, params_width); /* NodeMetadata diff --git a/src/mapblock.h b/src/mapblock.h index 6b5015cab..7b82301e9 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -340,15 +340,6 @@ public: // is not valid on this MapBlock. bool isValidPositionParent(v3s16 p); MapNode getNodeParent(v3s16 p, bool *is_valid_position = NULL); - void setNodeParent(v3s16 p, MapNode & n); - - inline void drawbox(s16 x0, s16 y0, s16 z0, s16 w, s16 h, s16 d, MapNode node) - { - for (u16 z = 0; z < d; z++) - for (u16 y = 0; y < h; y++) - for (u16 x = 0; x < w; x++) - setNode(x0 + x, y0 + y, z0 + z, node); - } // Copies data to VoxelManipulator to getPosRelative() void copyTo(VoxelManipulator &dst); @@ -482,7 +473,7 @@ public: // These don't write or read version by itself // Set disk to true for on-disk format, false for over-the-network format // Precondition: version >= SER_FMT_VER_LOWEST_WRITE - void serialize(std::ostream &os, u8 version, bool disk); + void serialize(std::ostream &os, u8 version, bool disk, int compression_level); // If disk == true: In addition to doing other things, will add // unknown blocks from id-name mapping to wndef void deSerialize(std::istream &is, u8 version, bool disk); diff --git a/src/mapgen/mapgen.cpp b/src/mapgen/mapgen.cpp index e0dfd2d71..7984ff609 100644 --- a/src/mapgen/mapgen.cpp +++ b/src/mapgen/mapgen.cpp @@ -595,7 +595,8 @@ MapgenBasic::MapgenBasic(int mapgenid, MapgenParams *params, EmergeParams *emerg this->heightmap = new s16[csize.X * csize.Z]; //// Initialize biome generator - biomegen = m_bmgr->createBiomeGen(BIOMEGEN_ORIGINAL, params->bparams, csize); + biomegen = emerge->biomegen; + biomegen->assertChunkSize(csize); biomemap = biomegen->biomemap; //// Look up some commonly used content @@ -621,7 +622,6 @@ MapgenBasic::MapgenBasic(int mapgenid, MapgenParams *params, EmergeParams *emerg MapgenBasic::~MapgenBasic() { - delete biomegen; delete []heightmap; delete m_emerge; // destroying EmergeParams is our responsibility diff --git a/src/mapgen/mapgen.h b/src/mapgen/mapgen.h index 1487731e2..61db4f3b9 100644 --- a/src/mapgen/mapgen.h +++ b/src/mapgen/mapgen.h @@ -30,10 +30,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #define MAPGEN_DEFAULT_NAME "v7" /////////////////// Mapgen flags -#define MG_TREES 0x01 // Obsolete. Moved into mgv6 flags #define MG_CAVES 0x02 #define MG_DUNGEONS 0x04 -#define MG_FLAT 0x08 // Obsolete. Moved into mgv6 flags #define MG_LIGHT 0x10 #define MG_DECORATIONS 0x20 #define MG_BIOMES 0x40 diff --git a/src/mapgen/mapgen_v6.cpp b/src/mapgen/mapgen_v6.cpp index e04180f96..bce9cee81 100644 --- a/src/mapgen/mapgen_v6.cpp +++ b/src/mapgen/mapgen_v6.cpp @@ -792,7 +792,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos) v3s16(0, 0, -1), // Front v3s16(-1, 0, 0), // Left }; - + // Iterate twice for (s16 k = 0; k < 2; k++) { for (s16 z = mudflow_minpos; z <= mudflow_maxpos; z++) @@ -1055,7 +1055,6 @@ void MapgenV6::growGrass() // Add surface nodes MapNode n_dirt_with_grass(c_dirt_with_grass); MapNode n_dirt_with_snow(c_dirt_with_snow); MapNode n_snowblock(c_snowblock); - MapNode n_snow(c_snow); const v3s16 &em = vm->m_area.getExtent(); u32 index = 0; diff --git a/src/mapgen/mapgen_v7.cpp b/src/mapgen/mapgen_v7.cpp index cc5f5726d..91f004518 100644 --- a/src/mapgen/mapgen_v7.cpp +++ b/src/mapgen/mapgen_v7.cpp @@ -297,7 +297,7 @@ int MapgenV7::getSpawnLevelAtPoint(v2s16 p) int iters = 256; while (iters > 0 && y <= max_spawn_y) { if (!getMountainTerrainAtPoint(p.X, y + 1, p.Y)) { - if (y <= water_level || y > max_spawn_y) + if (y <= water_level) return MAX_MAP_GENERATION_LIMIT; // Unsuitable spawn point // y + 1 due to biome 'dust' diff --git a/src/mapgen/mapgen_valleys.cpp b/src/mapgen/mapgen_valleys.cpp index c4234857e..80a99b1f0 100644 --- a/src/mapgen/mapgen_valleys.cpp +++ b/src/mapgen/mapgen_valleys.cpp @@ -57,7 +57,8 @@ FlagDesc flagdesc_mapgen_valleys[] = { MapgenValleys::MapgenValleys(MapgenValleysParams *params, EmergeParams *emerge) : MapgenBasic(MAPGEN_VALLEYS, params, emerge) { - // NOTE: MapgenValleys has a hard dependency on BiomeGenOriginal + FATAL_ERROR_IF(biomegen->getType() != BIOMEGEN_ORIGINAL, + "MapgenValleys has a hard dependency on BiomeGenOriginal"); m_bgen = (BiomeGenOriginal *)biomegen; spflags = params->spflags; diff --git a/src/mapgen/mg_biome.cpp b/src/mapgen/mg_biome.cpp index 610c38594..f08cc190f 100644 --- a/src/mapgen/mg_biome.cpp +++ b/src/mapgen/mg_biome.cpp @@ -101,71 +101,6 @@ BiomeManager *BiomeManager::clone() const return mgr; } - -// For BiomeGen type 'BiomeGenOriginal' -float BiomeManager::getHeatAtPosOriginal(v3s16 pos, NoiseParams &np_heat, - NoiseParams &np_heat_blend, u64 seed) const -{ - return - NoisePerlin2D(&np_heat, pos.X, pos.Z, seed) + - NoisePerlin2D(&np_heat_blend, pos.X, pos.Z, seed); -} - - -// For BiomeGen type 'BiomeGenOriginal' -float BiomeManager::getHumidityAtPosOriginal(v3s16 pos, NoiseParams &np_humidity, - NoiseParams &np_humidity_blend, u64 seed) const -{ - return - NoisePerlin2D(&np_humidity, pos.X, pos.Z, seed) + - NoisePerlin2D(&np_humidity_blend, pos.X, pos.Z, seed); -} - - -// For BiomeGen type 'BiomeGenOriginal' -const Biome *BiomeManager::getBiomeFromNoiseOriginal(float heat, - float humidity, v3s16 pos) const -{ - Biome *biome_closest = nullptr; - Biome *biome_closest_blend = nullptr; - float dist_min = FLT_MAX; - float dist_min_blend = FLT_MAX; - - for (size_t i = 1; i < getNumObjects(); i++) { - Biome *b = (Biome *)getRaw(i); - if (!b || - pos.Y < b->min_pos.Y || pos.Y > b->max_pos.Y + b->vertical_blend || - pos.X < b->min_pos.X || pos.X > b->max_pos.X || - pos.Z < b->min_pos.Z || pos.Z > b->max_pos.Z) - continue; - - float d_heat = heat - b->heat_point; - float d_humidity = humidity - b->humidity_point; - float dist = (d_heat * d_heat) + (d_humidity * d_humidity); - - if (pos.Y <= b->max_pos.Y) { // Within y limits of biome b - if (dist < dist_min) { - dist_min = dist; - biome_closest = b; - } - } else if (dist < dist_min_blend) { // Blend area above biome b - dist_min_blend = dist; - biome_closest_blend = b; - } - } - - const u64 seed = pos.Y + (heat + humidity) * 0.9f; - PcgRandom rng(seed); - - if (biome_closest_blend && dist_min_blend <= dist_min && - rng.range(0, biome_closest_blend->vertical_blend) >= - pos.Y - biome_closest_blend->max_pos.Y) - return biome_closest_blend; - - return (biome_closest) ? biome_closest : (Biome *)getRaw(BIOME_NONE); -} - - //////////////////////////////////////////////////////////////////////////////// void BiomeParamsOriginal::readParams(const Settings *settings) @@ -189,7 +124,7 @@ void BiomeParamsOriginal::writeParams(Settings *settings) const //////////////////////////////////////////////////////////////////////////////// BiomeGenOriginal::BiomeGenOriginal(BiomeManager *biomemgr, - BiomeParamsOriginal *params, v3s16 chunksize) + const BiomeParamsOriginal *params, v3s16 chunksize) { m_bmgr = biomemgr; m_params = params; @@ -224,17 +159,26 @@ BiomeGenOriginal::~BiomeGenOriginal() delete noise_humidity_blend; } -// Only usable in a mapgen thread +BiomeGen *BiomeGenOriginal::clone(BiomeManager *biomemgr) const +{ + return new BiomeGenOriginal(biomemgr, m_params, m_csize); +} + +float BiomeGenOriginal::calcHeatAtPoint(v3s16 pos) const +{ + return NoisePerlin2D(&m_params->np_heat, pos.X, pos.Z, m_params->seed) + + NoisePerlin2D(&m_params->np_heat_blend, pos.X, pos.Z, m_params->seed); +} + +float BiomeGenOriginal::calcHumidityAtPoint(v3s16 pos) const +{ + return NoisePerlin2D(&m_params->np_humidity, pos.X, pos.Z, m_params->seed) + + NoisePerlin2D(&m_params->np_humidity_blend, pos.X, pos.Z, m_params->seed); +} + Biome *BiomeGenOriginal::calcBiomeAtPoint(v3s16 pos) const { - float heat = - NoisePerlin2D(&m_params->np_heat, pos.X, pos.Z, m_params->seed) + - NoisePerlin2D(&m_params->np_heat_blend, pos.X, pos.Z, m_params->seed); - float humidity = - NoisePerlin2D(&m_params->np_humidity, pos.X, pos.Z, m_params->seed) + - NoisePerlin2D(&m_params->np_humidity_blend, pos.X, pos.Z, m_params->seed); - - return calcBiomeFromNoise(heat, humidity, pos); + return calcBiomeFromNoise(calcHeatAtPoint(pos), calcHumidityAtPoint(pos), pos); } diff --git a/src/mapgen/mg_biome.h b/src/mapgen/mg_biome.h index be4cfea4d..c85afc3a0 100644 --- a/src/mapgen/mg_biome.h +++ b/src/mapgen/mg_biome.h @@ -97,6 +97,15 @@ public: virtual BiomeGenType getType() const = 0; + // Clone this BiomeGen and set a the new BiomeManager to be used by the copy + virtual BiomeGen *clone(BiomeManager *biomemgr) const = 0; + + // Check that the internal chunk size is what the mapgen expects, just to be sure. + inline void assertChunkSize(v3s16 expect) const + { + FATAL_ERROR_IF(m_csize != expect, "Chunk size mismatches"); + } + // Calculates the biome at the exact position provided. This function can // be called at any time, but may be less efficient than the latter methods, // depending on implementation. @@ -158,12 +167,18 @@ struct BiomeParamsOriginal : public BiomeParams { class BiomeGenOriginal : public BiomeGen { public: BiomeGenOriginal(BiomeManager *biomemgr, - BiomeParamsOriginal *params, v3s16 chunksize); + const BiomeParamsOriginal *params, v3s16 chunksize); virtual ~BiomeGenOriginal(); BiomeGenType getType() const { return BIOMEGEN_ORIGINAL; } + BiomeGen *clone(BiomeManager *biomemgr) const; + + // Slower, meant for Script API use + float calcHeatAtPoint(v3s16 pos) const; + float calcHumidityAtPoint(v3s16 pos) const; Biome *calcBiomeAtPoint(v3s16 pos) const; + void calcBiomeNoise(v3s16 pmin); biome_t *getBiomes(s16 *heightmap, v3s16 pmin); @@ -176,7 +191,7 @@ public: float *humidmap; private: - BiomeParamsOriginal *m_params; + const BiomeParamsOriginal *m_params; Noise *noise_heat; Noise *noise_humidity; @@ -229,14 +244,6 @@ public: virtual void clear(); - // For BiomeGen type 'BiomeGenOriginal' - float getHeatAtPosOriginal(v3s16 pos, NoiseParams &np_heat, - NoiseParams &np_heat_blend, u64 seed) const; - float getHumidityAtPosOriginal(v3s16 pos, NoiseParams &np_humidity, - NoiseParams &np_humidity_blend, u64 seed) const; - const Biome *getBiomeFromNoiseOriginal(float heat, float humidity, - v3s16 pos) const; - private: BiomeManager() {}; diff --git a/src/mapgen/mg_ore.h b/src/mapgen/mg_ore.h index 76420fab4..a757fa6d0 100644 --- a/src/mapgen/mg_ore.h +++ b/src/mapgen/mg_ore.h @@ -52,7 +52,7 @@ extern FlagDesc flagdesc_ore[]; class Ore : public ObjDef, public NodeResolver { public: - static const bool NEEDS_NOISE = false; + const bool needs_noise; content_t c_ore; // the node to place std::vector c_wherein; // the nodes to be placed in @@ -68,7 +68,7 @@ public: Noise *noise = nullptr; std::unordered_set biomes; - Ore() = default;; + explicit Ore(bool needs_noise): needs_noise(needs_noise) {} virtual ~Ore(); virtual void resolveNodeNames(); @@ -83,88 +83,81 @@ protected: class OreScatter : public Ore { public: - static const bool NEEDS_NOISE = false; + OreScatter() : Ore(false) {} - ObjDef *clone() const; + ObjDef *clone() const override; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreSheet : public Ore { public: - static const bool NEEDS_NOISE = true; + OreSheet() : Ore(true) {} - ObjDef *clone() const; + ObjDef *clone() const override; u16 column_height_min; u16 column_height_max; float column_midpoint_factor; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OrePuff : public Ore { public: - static const bool NEEDS_NOISE = true; - - ObjDef *clone() const; + ObjDef *clone() const override; NoiseParams np_puff_top; NoiseParams np_puff_bottom; Noise *noise_puff_top = nullptr; Noise *noise_puff_bottom = nullptr; - OrePuff() = default; + OrePuff() : Ore(true) {} virtual ~OrePuff(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreBlob : public Ore { public: - static const bool NEEDS_NOISE = true; + ObjDef *clone() const override; - ObjDef *clone() const; - - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + OreBlob() : Ore(true) {} + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreVein : public Ore { public: - static const bool NEEDS_NOISE = true; - - ObjDef *clone() const; + ObjDef *clone() const override; float random_factor; Noise *noise2 = nullptr; int sizey_prev = 0; - OreVein() = default; + OreVein() : Ore(true) {} virtual ~OreVein(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreStratum : public Ore { public: - static const bool NEEDS_NOISE = false; - - ObjDef *clone() const; + ObjDef *clone() const override; NoiseParams np_stratum_thickness; Noise *noise_stratum_thickness = nullptr; u16 stratum_thickness; - OreStratum() = default; + OreStratum() : Ore(false) {} virtual ~OreStratum(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreManager : public ObjDefManager { diff --git a/src/mapgen/mg_schematic.cpp b/src/mapgen/mg_schematic.cpp index dfd414709..653bad4fe 100644 --- a/src/mapgen/mg_schematic.cpp +++ b/src/mapgen/mg_schematic.cpp @@ -76,10 +76,6 @@ void SchematicManager::clear() /////////////////////////////////////////////////////////////////////////////// -Schematic::Schematic() -= default; - - Schematic::~Schematic() { delete []schemdata; @@ -108,13 +104,19 @@ ObjDef *Schematic::clone() const void Schematic::resolveNodeNames() { + c_nodes.clear(); getIdsFromNrBacklog(&c_nodes, true, CONTENT_AIR); size_t bufsize = size.X * size.Y * size.Z; for (size_t i = 0; i != bufsize; i++) { content_t c_original = schemdata[i].getContent(); - content_t c_new = c_nodes[c_original]; - schemdata[i].setContent(c_new); + if (c_original >= c_nodes.size()) { + errorstream << "Corrupt schematic. name=\"" << name + << "\" at index " << i << std::endl; + c_original = 0; + } + // Unfold condensed ID layout to content_t + schemdata[i].setContent(c_nodes[c_original]); } } @@ -279,8 +281,7 @@ void Schematic::placeOnMap(ServerMap *map, v3s16 p, u32 flags, } -bool Schematic::deserializeFromMts(std::istream *is, - std::vector *names) +bool Schematic::deserializeFromMts(std::istream *is) { std::istream &ss = *is; content_t cignore = CONTENT_IGNORE; @@ -312,6 +313,8 @@ bool Schematic::deserializeFromMts(std::istream *is, slice_probs[y] = (version >= 3) ? readU8(ss) : MTSCHEM_PROB_ALWAYS_OLD; //// Read node names + NodeResolver::reset(); + u16 nidmapcount = readU16(ss); for (int i = 0; i != nidmapcount; i++) { std::string name = deSerializeString16(ss); @@ -324,9 +327,12 @@ bool Schematic::deserializeFromMts(std::istream *is, have_cignore = true; } - names->push_back(name); + m_nodenames.push_back(name); } + // Prepare for node resolver + m_nnlistsizes.push_back(m_nodenames.size()); + //// Read node data size_t nodecount = size.X * size.Y * size.Z; @@ -334,7 +340,7 @@ bool Schematic::deserializeFromMts(std::istream *is, schemdata = new MapNode[nodecount]; MapNode::deSerializeBulk(ss, SER_FMT_VER_HIGHEST_READ, schemdata, - nodecount, 2, 2, true); + nodecount, 2, 2); // Fix probability values for nodes that were ignore; removed in v2 if (version < 2) { @@ -358,9 +364,11 @@ bool Schematic::deserializeFromMts(std::istream *is, } -bool Schematic::serializeToMts(std::ostream *os, - const std::vector &names) const +bool Schematic::serializeToMts(std::ostream *os) const { + // Nodes must not be resolved (-> condensed) + // checking here is not possible because "schemdata" might be temporary. + std::ostream &ss = *os; writeU32(ss, MTSCHEM_FILE_SIGNATURE); // signature @@ -370,20 +378,20 @@ bool Schematic::serializeToMts(std::ostream *os, for (int y = 0; y != size.Y; y++) // Y slice probabilities writeU8(ss, slice_probs[y]); - writeU16(ss, names.size()); // name count - for (size_t i = 0; i != names.size(); i++) - ss << serializeString16(names[i]); // node names + writeU16(ss, m_nodenames.size()); // name count + for (size_t i = 0; i != m_nodenames.size(); i++) { + ss << serializeString16(m_nodenames[i]); // node names + } // compressed bulk node data MapNode::serializeBulk(ss, SER_FMT_VER_HIGHEST_WRITE, - schemdata, size.X * size.Y * size.Z, 2, 2, true); + schemdata, size.X * size.Y * size.Z, 2, 2, -1); return true; } -bool Schematic::serializeToLua(std::ostream *os, - const std::vector &names, bool use_comments, +bool Schematic::serializeToLua(std::ostream *os, bool use_comments, u32 indent_spaces) const { std::ostream &ss = *os; @@ -392,6 +400,9 @@ bool Schematic::serializeToLua(std::ostream *os, if (indent_spaces > 0) indent.assign(indent_spaces, ' '); + bool resolve_done = isResolveDone(); + FATAL_ERROR_IF(resolve_done && !m_ndef, "serializeToLua: NodeDefManager is required"); + //// Write header { ss << "schematic = {" << std::endl; @@ -436,9 +447,22 @@ bool Schematic::serializeToLua(std::ostream *os, u8 probability = schemdata[i].param1 & MTSCHEM_PROB_MASK; bool force_place = schemdata[i].param1 & MTSCHEM_FORCE_PLACE; - ss << indent << indent << "{" - << "name=\"" << names[schemdata[i].getContent()] - << "\", prob=" << (u16)probability * 2 + // After node resolving: real content_t, lookup using NodeDefManager + // Prior node resolving: condensed ID, lookup using m_nodenames + content_t c = schemdata[i].getContent(); + + ss << indent << indent << "{" << "name=\""; + + if (!resolve_done) { + // Prior node resolving (eg. direct schematic load) + FATAL_ERROR_IF(c >= m_nodenames.size(), "Invalid node list"); + ss << m_nodenames[c]; + } else { + // After node resolving (eg. biome decoration) + ss << m_ndef->get(c).name; + } + + ss << "\", prob=" << (u16)probability * 2 << ", param2=" << (u16)schemdata[i].param2; if (force_place) @@ -467,25 +491,24 @@ bool Schematic::loadSchematicFromFile(const std::string &filename, return false; } - size_t origsize = m_nodenames.size(); - if (!deserializeFromMts(&is, &m_nodenames)) - return false; + if (!m_ndef) + m_ndef = ndef; - m_nnlistsizes.push_back(m_nodenames.size() - origsize); + if (!deserializeFromMts(&is)) + return false; name = filename; if (replace_names) { - for (size_t i = origsize; i < m_nodenames.size(); i++) { - std::string &node_name = m_nodenames[i]; + for (std::string &node_name : m_nodenames) { StringMap::iterator it = replace_names->find(node_name); if (it != replace_names->end()) node_name = it->second; } } - if (ndef) - ndef->pendNodeResolve(this); + if (m_ndef) + m_ndef->pendNodeResolve(this); return true; } @@ -494,33 +517,26 @@ bool Schematic::loadSchematicFromFile(const std::string &filename, bool Schematic::saveSchematicToFile(const std::string &filename, const NodeDefManager *ndef) { - MapNode *orig_schemdata = schemdata; - std::vector ndef_nodenames; - std::vector *names; + Schematic *schem = this; - if (m_resolve_done && ndef == NULL) - ndef = m_ndef; + bool needs_condense = isResolveDone(); - if (ndef) { - names = &ndef_nodenames; + if (!m_ndef) + m_ndef = ndef; - u32 volume = size.X * size.Y * size.Z; - schemdata = new MapNode[volume]; - for (u32 i = 0; i != volume; i++) - schemdata[i] = orig_schemdata[i]; + if (needs_condense) { + if (!m_ndef) + return false; - generate_nodelist_and_update_ids(schemdata, volume, names, ndef); - } else { // otherwise, use the names we have on hand in the list - names = &m_nodenames; + schem = (Schematic *)this->clone(); + schem->condenseContentIds(); } std::ostringstream os(std::ios_base::binary); - bool status = serializeToMts(&os, *names); + bool status = schem->serializeToMts(&os); - if (ndef) { - delete []schemdata; - schemdata = orig_schemdata; - } + if (needs_condense) + delete schem; if (!status) return false; @@ -556,6 +572,10 @@ bool Schematic::getSchematicFromMap(Map *map, v3s16 p1, v3s16 p2) } delete vm; + + // Reset and mark as complete + NodeResolver::reset(true); + return true; } @@ -584,26 +604,29 @@ void Schematic::applyProbabilities(v3s16 p0, } -void generate_nodelist_and_update_ids(MapNode *nodes, size_t nodecount, - std::vector *usednodes, const NodeDefManager *ndef) +void Schematic::condenseContentIds() { std::unordered_map nodeidmap; content_t numids = 0; + // Reset node resolve fields + NodeResolver::reset(); + + size_t nodecount = size.X * size.Y * size.Z; for (size_t i = 0; i != nodecount; i++) { content_t id; - content_t c = nodes[i].getContent(); + content_t c = schemdata[i].getContent(); - std::unordered_map::const_iterator it = nodeidmap.find(c); + auto it = nodeidmap.find(c); if (it == nodeidmap.end()) { id = numids; numids++; - usednodes->push_back(ndef->get(c).name); - nodeidmap.insert(std::make_pair(c, id)); + m_nodenames.push_back(m_ndef->get(c).name); + nodeidmap.emplace(std::make_pair(c, id)); } else { id = it->second; } - nodes[i].setContent(id); + schemdata[i].setContent(id); } } diff --git a/src/mapgen/mg_schematic.h b/src/mapgen/mg_schematic.h index 6b31251b6..5f64ea280 100644 --- a/src/mapgen/mg_schematic.h +++ b/src/mapgen/mg_schematic.h @@ -92,7 +92,7 @@ enum SchematicFormatType { class Schematic : public ObjDef, public NodeResolver { public: - Schematic(); + Schematic() = default; virtual ~Schematic(); ObjDef *clone() const; @@ -105,11 +105,9 @@ public: const NodeDefManager *ndef); bool getSchematicFromMap(Map *map, v3s16 p1, v3s16 p2); - bool deserializeFromMts(std::istream *is, std::vector *names); - bool serializeToMts(std::ostream *os, - const std::vector &names) const; - bool serializeToLua(std::ostream *os, const std::vector &names, - bool use_comments, u32 indent_spaces) const; + bool deserializeFromMts(std::istream *is); + bool serializeToMts(std::ostream *os) const; + bool serializeToLua(std::ostream *os, bool use_comments, u32 indent_spaces) const; void blitToVManip(MMVManip *vm, v3s16 p, Rotation rot, bool force_place); bool placeOnVManip(MMVManip *vm, v3s16 p, u32 flags, Rotation rot, bool force_place); @@ -124,6 +122,10 @@ public: v3s16 size; MapNode *schemdata = nullptr; u8 *slice_probs = nullptr; + +private: + // Counterpart to the node resolver: Condense content_t to a sequential "m_nodenames" list + void condenseContentIds(); }; class SchematicManager : public ObjDefManager { @@ -151,5 +153,3 @@ private: Server *m_server; }; -void generate_nodelist_and_update_ids(MapNode *nodes, size_t nodecount, - std::vector *usednodes, const NodeDefManager *ndef); diff --git a/src/mapgen/treegen.cpp b/src/mapgen/treegen.cpp index e633d800a..ec7771439 100644 --- a/src/mapgen/treegen.cpp +++ b/src/mapgen/treegen.cpp @@ -406,7 +406,8 @@ treegen::error make_ltree(MMVManip &vmanip, v3s16 p0, v3f(position.X, position.Y, position.Z - 1), tree_definition ); - } if (!stack_orientation.empty()) { + } + if (!stack_orientation.empty()) { s16 size = 1; for (x = -size; x <= size; x++) for (y = -size; y <= size; y++) diff --git a/src/mapnode.cpp b/src/mapnode.cpp index dcf1f6d6e..c885bfe1d 100644 --- a/src/mapnode.cpp +++ b/src/mapnode.cpp @@ -159,8 +159,11 @@ u8 MapNode::getWallMounted(const NodeDefManager *nodemgr) const { const ContentFeatures &f = nodemgr->get(*this); if (f.param_type_2 == CPT2_WALLMOUNTED || - f.param_type_2 == CPT2_COLORED_WALLMOUNTED) + f.param_type_2 == CPT2_COLORED_WALLMOUNTED) { return getParam2() & 0x07; + } else if (f.drawtype == NDT_SIGNLIKE || f.drawtype == NDT_TORCHLIKE) { + return 1; + } return 0; } @@ -177,6 +180,16 @@ v3s16 MapNode::getWallMountedDir(const NodeDefManager *nodemgr) const } } +u8 MapNode::getDegRotate(const NodeDefManager *nodemgr) const +{ + const ContentFeatures &f = nodemgr->get(*this); + if (f.param_type_2 == CPT2_DEGROTATE) + return getParam2() % 240; + if (f.param_type_2 == CPT2_COLORED_DEGROTATE) + return 10 * ((getParam2() & 0x1F) % 24); + return 0; +} + void MapNode::rotateAlongYAxis(const NodeDefManager *nodemgr, Rotation rot) { ContentParamType2 cpt2 = nodemgr->get(*this).param_type_2; @@ -230,6 +243,17 @@ void MapNode::rotateAlongYAxis(const NodeDefManager *nodemgr, Rotation rot) Rotation oldrot = wallmounted_to_rot[wmountface - 2]; param2 &= ~7; param2 |= rot_to_wallmounted[(oldrot - rot) & 3]; + } else if (cpt2 == CPT2_DEGROTATE) { + int angle = param2; // in 1.5° + angle += 60 * rot; // don’t do that on u8 + angle %= 240; + param2 = angle; + } else if (cpt2 == CPT2_COLORED_DEGROTATE) { + int angle = param2 & 0x1F; // in 15° + int color = param2 & 0xE0; + angle += 6 * rot; + angle %= 24; + param2 = color | angle; } } @@ -706,7 +730,7 @@ void MapNode::deSerialize(u8 *source, u8 version) } void MapNode::serializeBulk(std::ostream &os, int version, const MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed) + u8 content_width, u8 params_width, int compression_level) { if (!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); @@ -737,10 +761,7 @@ void MapNode::serializeBulk(std::ostream &os, int version, Compress data to output stream */ - if (compressed) - compressZlib(databuf, databuf_size, os); - else - os.write((const char*) &databuf[0], databuf_size); + compressZlib(databuf, databuf_size, os, compression_level); delete [] databuf; } @@ -748,7 +769,7 @@ void MapNode::serializeBulk(std::ostream &os, int version, // Deserialize bulk node data void MapNode::deSerializeBulk(std::istream &is, int version, MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed) + u8 content_width, u8 params_width) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); @@ -760,24 +781,13 @@ void MapNode::deSerializeBulk(std::istream &is, int version, // Uncompress or read data u32 len = nodecount * (content_width + params_width); - SharedBuffer databuf(len); - if(compressed) - { - std::ostringstream os(std::ios_base::binary); - decompressZlib(is, os); - std::string s = os.str(); - if(s.size() != len) - throw SerializationError("deSerializeBulkNodes: " - "decompress resulted in invalid size"); - memcpy(&databuf[0], s.c_str(), len); - } - else - { - is.read((char*) &databuf[0], len); - if(is.eof() || is.fail()) - throw SerializationError("deSerializeBulkNodes: " - "failed to read bulk node data"); - } + std::ostringstream os(std::ios_base::binary); + decompressZlib(is, os); + std::string s = os.str(); + if(s.size() != len) + throw SerializationError("deSerializeBulkNodes: " + "decompress resulted in invalid size"); + const u8 *databuf = reinterpret_cast(s.c_str()); // Deserialize content if(content_width == 1) diff --git a/src/mapnode.h b/src/mapnode.h index 32ac1b4f6..28ff9e43d 100644 --- a/src/mapnode.h +++ b/src/mapnode.h @@ -240,6 +240,9 @@ struct MapNode u8 getWallMounted(const NodeDefManager *nodemgr) const; v3s16 getWallMountedDir(const NodeDefManager *nodemgr) const; + /// @returns Rotation in range 0–239 (in 1.5° steps) + u8 getDegRotate(const NodeDefManager *nodemgr) const; + void rotateAlongYAxis(const NodeDefManager *nodemgr, Rotation rot); /*! @@ -292,10 +295,10 @@ struct MapNode // compressed = true to zlib-compress output static void serializeBulk(std::ostream &os, int version, const MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed); + u8 content_width, u8 params_width, int compression_level); static void deSerializeBulk(std::istream &is, int version, MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed); + u8 content_width, u8 params_width); private: // Deprecated serialization methods diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 7da242dc1..d442548df 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -872,12 +872,12 @@ void Client::handleCommand_PlaySound(NetworkPacket* pkt) *pkt >> pitch; *pkt >> ephemeral; } catch (PacketError &e) {}; - + SimpleSoundSpec sound_spec(name, gain, fade, pitch); - + if (m_mods_loaded && m_script->on_play_sound(sound_spec)) return; - + // Start playing int client_id = -1; switch(type) { @@ -1032,7 +1032,7 @@ void Client::handleCommand_SpawnParticle(NetworkPacket* pkt) if (g_settings->getBool("log_particles")) { std::cout << p.pos.X << " " << p.pos.Y << " " << p.pos.Z << std::endl; } - + if (m_mods_loaded && m_script->on_spawn_particle(*event->spawn_particle)) return; @@ -1108,9 +1108,6 @@ void Client::handleCommand_DeleteParticleSpawner(NetworkPacket* pkt) void Client::handleCommand_HudAdd(NetworkPacket* pkt) { - std::string datastring(pkt->getString(0), pkt->getSize()); - std::istringstream is(datastring, std::ios_base::binary); - u32 server_id; u8 type; v2f pos; @@ -1137,22 +1134,23 @@ void Client::handleCommand_HudAdd(NetworkPacket* pkt) } catch(PacketError &e) {}; ClientEvent *event = new ClientEvent(); - event->type = CE_HUDADD; - event->hudadd.server_id = server_id; - event->hudadd.type = type; - event->hudadd.pos = new v2f(pos); - event->hudadd.name = new std::string(name); - event->hudadd.scale = new v2f(scale); - event->hudadd.text = new std::string(text); - event->hudadd.number = number; - event->hudadd.item = item; - event->hudadd.dir = dir; - event->hudadd.align = new v2f(align); - event->hudadd.offset = new v2f(offset); - event->hudadd.world_pos = new v3f(world_pos); - event->hudadd.size = new v2s32(size); - event->hudadd.z_index = z_index; - event->hudadd.text2 = new std::string(text2); + event->type = CE_HUDADD; + event->hudadd = new ClientEventHudAdd(); + event->hudadd->server_id = server_id; + event->hudadd->type = type; + event->hudadd->pos = pos; + event->hudadd->name = name; + event->hudadd->scale = scale; + event->hudadd->text = text; + event->hudadd->number = number; + event->hudadd->item = item; + event->hudadd->dir = dir; + event->hudadd->align = align; + event->hudadd->offset = offset; + event->hudadd->world_pos = world_pos; + event->hudadd->size = size; + event->hudadd->z_index = z_index; + event->hudadd->text2 = text2; m_client_event_queue.push(event); } @@ -1162,16 +1160,10 @@ void Client::handleCommand_HudRemove(NetworkPacket* pkt) *pkt >> server_id; - auto i = m_hud_server_to_client.find(server_id); - if (i != m_hud_server_to_client.end()) { - int client_id = i->second; - m_hud_server_to_client.erase(i); - - ClientEvent *event = new ClientEvent(); - event->type = CE_HUDRM; - event->hudrm.id = client_id; - m_client_event_queue.push(event); - } + ClientEvent *event = new ClientEvent(); + event->type = CE_HUDRM; + event->hudrm.id = server_id; + m_client_event_queue.push(event); } void Client::handleCommand_HudChange(NetworkPacket* pkt) @@ -1198,19 +1190,17 @@ void Client::handleCommand_HudChange(NetworkPacket* pkt) else *pkt >> intdata; - std::unordered_map::const_iterator i = m_hud_server_to_client.find(server_id); - if (i != m_hud_server_to_client.end()) { - ClientEvent *event = new ClientEvent(); - event->type = CE_HUDCHANGE; - event->hudchange.id = i->second; - event->hudchange.stat = (HudElementStat)stat; - event->hudchange.v2fdata = new v2f(v2fdata); - event->hudchange.v3fdata = new v3f(v3fdata); - event->hudchange.sdata = new std::string(sdata); - event->hudchange.data = intdata; - event->hudchange.v2s32data = new v2s32(v2s32data); - m_client_event_queue.push(event); - } + ClientEvent *event = new ClientEvent(); + event->type = CE_HUDCHANGE; + event->hudchange = new ClientEventHudChange(); + event->hudchange->id = server_id; + event->hudchange->stat = static_cast(stat); + event->hudchange->v2fdata = v2fdata; + event->hudchange->v3fdata = v3fdata; + event->hudchange->sdata = sdata; + event->hudchange->data = intdata; + event->hudchange->v2s32data = v2s32data; + m_client_event_queue.push(event); } void Client::handleCommand_HudSetFlags(NetworkPacket* pkt) diff --git a/src/network/networkexceptions.h b/src/network/networkexceptions.h index f4913928c..58a3bb490 100644 --- a/src/network/networkexceptions.h +++ b/src/network/networkexceptions.h @@ -56,12 +56,6 @@ public: InvalidIncomingDataException(const char *s) : BaseException(s) {} }; -class InvalidOutgoingDataException : public BaseException -{ -public: - InvalidOutgoingDataException(const char *s) : BaseException(s) {} -}; - class NoIncomingDataException : public BaseException { public: @@ -103,4 +97,4 @@ class SendFailedException : public BaseException { public: SendFailedException(const std::string &s) : BaseException(s) {} -}; \ No newline at end of file +}; diff --git a/src/network/networkpacket.cpp b/src/network/networkpacket.cpp index 6d0abb12c..a71e26572 100644 --- a/src/network/networkpacket.cpp +++ b/src/network/networkpacket.cpp @@ -50,7 +50,7 @@ void NetworkPacket::checkReadOffset(u32 from_offset, u32 field_size) } } -void NetworkPacket::putRawPacket(u8 *data, u32 datasize, session_t peer_id) +void NetworkPacket::putRawPacket(const u8 *data, u32 datasize, session_t peer_id) { // If a m_command is already set, we are rewriting on same packet // This is not permitted @@ -145,6 +145,8 @@ void NetworkPacket::putLongString(const std::string &src) putRawString(src.c_str(), msgsize); } +static constexpr bool NEED_SURROGATE_CODING = sizeof(wchar_t) > 2; + NetworkPacket& NetworkPacket::operator>>(std::wstring& dst) { checkReadOffset(m_read_offset, 2); @@ -160,9 +162,16 @@ NetworkPacket& NetworkPacket::operator>>(std::wstring& dst) checkReadOffset(m_read_offset, strLen * 2); dst.reserve(strLen); - for(u16 i=0; i= 0xD800 && c < 0xDC00 && i+1 < strLen) { + i++; + m_read_offset += sizeof(u16); + + wchar_t c2 = readU16(&m_data[m_read_offset]); + c = 0x10000 + ( ((c & 0x3ff) << 10) | (c2 & 0x3ff) ); + } + dst.push_back(c); m_read_offset += sizeof(u16); } @@ -175,15 +184,37 @@ NetworkPacket& NetworkPacket::operator<<(const std::wstring &src) throw PacketError("String too long"); } - u16 msgsize = src.size(); + if (!NEED_SURROGATE_CODING || src.size() == 0) { + *this << static_cast(src.size()); + for (u16 i = 0; i < src.size(); i++) + *this << static_cast(src[i]); - *this << msgsize; - - // Write string - for (u16 i=0; i(0xfff0); + + for (u16 i = 0; i < src.size(); i++) { + wchar_t c = src[i]; + if (c > 0xffff) { + // Encode high code-points as surrogate pairs + u32 n = c - 0x10000; + *this << static_cast(0xD800 | (n >> 10)) + << static_cast(0xDC00 | (n & 0x3ff)); + written += 2; + } else { + *this << static_cast(c); + written++; + } + } + + if (written > WIDE_STRING_MAX_LEN) + throw PacketError("String too long"); + writeU16(&m_data[len_offset], written); + return *this; } diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h index e77bfb744..c7ff03b8e 100644 --- a/src/network/networkpacket.h +++ b/src/network/networkpacket.h @@ -34,7 +34,7 @@ public: ~NetworkPacket(); - void putRawPacket(u8 *data, u32 datasize, session_t peer_id); + void putRawPacket(const u8 *data, u32 datasize, session_t peer_id); void clear(); // Getters diff --git a/src/network/networkprotocol.h b/src/network/networkprotocol.h index 98d143c89..88a5ac177 100644 --- a/src/network/networkprotocol.h +++ b/src/network/networkprotocol.h @@ -226,22 +226,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #define PASSWORD_SIZE 28 // Maximum password length. Allows for // base64-encoded SHA-1 (27+\0). -/* - Changes by FORMSPEC_API_VERSION: - - FORMSPEC VERSION 1: - (too much) - FORMSPEC VERSION 2: - Forced real coordinates - background9[]: 9-slice scaling parameters - FORMSPEC VERSION 3: - Formspec elements are drawn in the order of definition - bgcolor[]: use 3 parameters (bgcolor, formspec (now an enum), fbgcolor) - box[] and image[] elements enable clipping by default - new element: scroll_container[] - FORMSPEC VERSION 4: - Allow dropdown indexing events -*/ +// See also: Formspec Version History in doc/lua_api.txt #define FORMSPEC_API_VERSION 4 #define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-" diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index 3db4eb286..708ddbf20 100644 --- a/src/network/serverpackethandler.cpp +++ b/src/network/serverpackethandler.cpp @@ -56,12 +56,12 @@ void Server::handleCommand_Init(NetworkPacket* pkt) session_t peer_id = pkt->getPeerId(); RemoteClient *client = getClient(peer_id, CS_Created); + Address addr; std::string addr_s; try { - Address address = getPeerAddress(peer_id); - addr_s = address.serializeString(); - } - catch (con::PeerNotFoundException &e) { + addr = m_con->GetPeerAddress(peer_id); + addr_s = addr.serializeString(); + } catch (con::PeerNotFoundException &e) { /* * no peer for this packet found * most common reason is peer timeout, e.g. peer didn't @@ -73,13 +73,14 @@ void Server::handleCommand_Init(NetworkPacket* pkt) return; } - // If net_proto_version is set, this client has already been handled if (client->getState() > CS_Created) { verbosestream << "Server: Ignoring multiple TOSERVER_INITs from " << addr_s << " (peer_id=" << peer_id << ")" << std::endl; return; } + client->setCachedAddress(addr); + verbosestream << "Server: Got TOSERVER_INIT from " << addr_s << " (peer_id=" << peer_id << ")" << std::endl; @@ -173,6 +174,16 @@ void Server::handleCommand_Init(NetworkPacket* pkt) return; } + RemotePlayer *player = m_env->getPlayer(playername); + + // If player is already connected, cancel + if (player && player->getPeerId() != PEER_ID_INEXISTENT) { + actionstream << "Server: Player with name \"" << playername << + "\" tried to connect, but player with same name is already connected" << std::endl; + DenyAccess(peer_id, SERVER_ACCESSDENIED_ALREADY_CONNECTED); + return; + } + m_clients.setPlayerName(peer_id, playername); //TODO (later) case insensitivity @@ -316,7 +327,7 @@ void Server::handleCommand_Init2(NetworkPacket* pkt) // Send active objects { PlayerSAO *sao = getPlayerSAO(peer_id); - if (client && sao) + if (sao) SendActiveObjectRemoveAdd(client, sao); } @@ -437,18 +448,20 @@ void Server::handleCommand_GotBlocks(NetworkPacket* pkt) u8 count; *pkt >> count; - RemoteClient *client = getClient(pkt->getPeerId()); - if ((s16)pkt->getSize() < 1 + (int)count * 6) { throw con::InvalidIncomingDataException ("GOTBLOCKS length is too short"); } + m_clients.lock(); + RemoteClient *client = m_clients.lockedGetClientNoEx(pkt->getPeerId()); + for (u16 i = 0; i < count; i++) { v3s16 p; *pkt >> p; client->GotBlock(p); } + m_clients.unlock(); } void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao, @@ -485,8 +498,12 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao, pitch = modulo360f(pitch); yaw = wrapDegrees_0_360(yaw); - playersao->setBasePosition(position); - player->setSpeed(speed); + if (!playersao->isAttached()) { + // Only update player positions when moving freely + // to not interfere with attachment handling + playersao->setBasePosition(position); + player->setSpeed(speed); + } playersao->setLookPitch(pitch); playersao->setPlayerYaw(yaw); playersao->setFov(fov); @@ -619,21 +636,36 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) const bool player_has_interact = checkPriv(player->getName(), "interact"); - auto check_inv_access = [player, player_has_interact] ( + auto check_inv_access = [player, player_has_interact, this] ( const InventoryLocation &loc) -> bool { - if (loc.type == InventoryLocation::CURRENT_PLAYER) - return false; // Only used internally on the client, never sent - if (loc.type == InventoryLocation::PLAYER) { - // Allow access to own inventory in all cases - return loc.name == player->getName(); - } - if (!player_has_interact) { + // Players without interact may modify their own inventory + if (!player_has_interact && loc.type != InventoryLocation::PLAYER) { infostream << "Cannot modify foreign inventory: " << "No interact privilege" << std::endl; return false; } - return true; + + switch (loc.type) { + case InventoryLocation::CURRENT_PLAYER: + // Only used internally on the client, never sent + return false; + case InventoryLocation::PLAYER: + // Allow access to own inventory in all cases + return loc.name == player->getName(); + case InventoryLocation::NODEMETA: + { + // Check for out-of-range interaction + v3f node_pos = intToFloat(loc.p, BS); + v3f player_pos = player->getPlayerSAO()->getEyePosition(); + f32 d = player_pos.getDistanceFrom(node_pos); + return checkInteractDistance(player, d, "inventory"); + } + case InventoryLocation::DETACHED: + return getInventoryMgr()->checkDetachedInventoryAccess(loc, player->getName()); + default: + return false; + } }; /* @@ -653,18 +685,6 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) !check_inv_access(ma->to_inv)) return; - InventoryLocation *remote = ma->from_inv.type == InventoryLocation::PLAYER ? - &ma->to_inv : &ma->from_inv; - - // Check for out-of-range interaction - if (remote->type == InventoryLocation::NODEMETA) { - v3f node_pos = intToFloat(remote->p, BS); - v3f player_pos = player->getPlayerSAO()->getEyePosition(); - f32 d = player_pos.getDistanceFrom(node_pos); - if (!checkInteractDistance(player, d, "inventory")) - return; - } - /* Disable moving items out of craftpreview */ @@ -749,21 +769,8 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) void Server::handleCommand_ChatMessage(NetworkPacket* pkt) { - /* - u16 command - u16 length - wstring message - */ - u16 len; - *pkt >> len; - std::wstring message; - for (u16 i = 0; i < len; i++) { - u16 tmp_wchar; - *pkt >> tmp_wchar; - - message += (wchar_t)tmp_wchar; - } + *pkt >> message; session_t peer_id = pkt->getPeerId(); RemotePlayer *player = m_env->getPlayer(peer_id); @@ -775,15 +782,13 @@ void Server::handleCommand_ChatMessage(NetworkPacket* pkt) return; } - // Get player name of this client std::string name = player->getName(); - std::wstring wname = narrow_to_wide(name); - std::wstring answer_to_sender = handleChat(name, wname, message, true, player); + std::wstring answer_to_sender = handleChat(name, message, true, player); if (!answer_to_sender.empty()) { // Send the answer to sender - SendChatMessage(peer_id, ChatMessage(CHATMESSAGE_TYPE_NORMAL, - answer_to_sender, wname)); + SendChatMessage(peer_id, ChatMessage(CHATMESSAGE_TYPE_SYSTEM, + answer_to_sender)); } } @@ -1046,6 +1051,12 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) if (pointed.type == POINTEDTHING_NODE) { target_pos = intToFloat(pointed.node_undersurface, BS); } else if (pointed.type == POINTEDTHING_OBJECT) { + if (playersao->getId() == pointed_object->getId()) { + actionstream << "Server: " << player->getName() + << " attempted to interact with themselves" << std::endl; + m_script->on_cheat(playersao, "interacted_with_self"); + return; + } target_pos = pointed_object->getBasePosition(); } float d = playersao->getEyePosition().getDistanceFrom(target_pos); diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 4d4fc7a7a..f27a8154b 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -360,7 +360,7 @@ void ContentFeatures::reset() i = TileDef(); for (auto &j : tiledef_special) j = TileDef(); - alpha = 255; + alpha = ALPHAMODE_OPAQUE; post_effect_color = video::SColor(0, 0, 0, 0); param_type = CPT_NONE; param_type_2 = CPT2_NONE; @@ -405,6 +405,31 @@ void ContentFeatures::reset() node_dig_prediction = "air"; } +void ContentFeatures::setAlphaFromLegacy(u8 legacy_alpha) +{ + // No special handling for nodebox/mesh here as it doesn't make sense to + // throw warnings when the server is too old to support the "correct" way + switch (drawtype) { + case NDT_NORMAL: + alpha = legacy_alpha == 255 ? ALPHAMODE_OPAQUE : ALPHAMODE_CLIP; + break; + case NDT_LIQUID: + case NDT_FLOWINGLIQUID: + alpha = legacy_alpha == 255 ? ALPHAMODE_OPAQUE : ALPHAMODE_BLEND; + break; + default: + alpha = legacy_alpha == 255 ? ALPHAMODE_CLIP : ALPHAMODE_BLEND; + break; + } +} + +u8 ContentFeatures::getAlphaForLegacy() const +{ + // This is so simple only because 255 and 0 mean wildly different things + // depending on drawtype... + return alpha == ALPHAMODE_OPAQUE ? 255 : 0; +} + void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const { const u8 version = CONTENTFEATURES_VERSION; @@ -433,7 +458,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const for (const TileDef &td : tiledef_special) { td.serialize(os, protocol_version); } - writeU8(os, alpha); + writeU8(os, getAlphaForLegacy()); writeU8(os, color.getRed()); writeU8(os, color.getGreen()); writeU8(os, color.getBlue()); @@ -489,21 +514,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const os << serializeString16(node_dig_prediction); writeU8(os, leveled_max); -} - -void ContentFeatures::correctAlpha(TileDef *tiles, int length) -{ - // alpha == 0 means that the node is using texture alpha - if (alpha == 0 || alpha == 255) - return; - - for (int i = 0; i < length; i++) { - if (tiles[i].name.empty()) - continue; - std::stringstream s; - s << tiles[i].name << "^[noalpha^[opacity:" << ((int)alpha); - tiles[i].name = s.str(); - } + writeU8(os, alpha); } void ContentFeatures::deSerialize(std::istream &is) @@ -539,7 +550,7 @@ void ContentFeatures::deSerialize(std::istream &is) throw SerializationError("unsupported CF_SPECIAL_COUNT"); for (TileDef &td : tiledef_special) td.deSerialize(is, version, drawtype); - alpha = readU8(is); + setAlphaFromLegacy(readU8(is)); color.setRed(readU8(is)); color.setGreen(readU8(is)); color.setBlue(readU8(is)); @@ -597,10 +608,16 @@ void ContentFeatures::deSerialize(std::istream &is) try { node_dig_prediction = deSerializeString16(is); - u8 tmp_leveled_max = readU8(is); + + u8 tmp = readU8(is); if (is.eof()) /* readU8 doesn't throw exceptions so we have to do this */ throw SerializationError(""); - leveled_max = tmp_leveled_max; + leveled_max = tmp; + + tmp = readU8(is); + if (is.eof()) + throw SerializationError(""); + alpha = static_cast(tmp); } catch(SerializationError &e) {}; } @@ -617,7 +634,7 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer, bool has_scale = tiledef.scale > 0; bool use_autoscale = tsettings.autoscale_mode == AUTOSCALE_FORCE || (tsettings.autoscale_mode == AUTOSCALE_ENABLE && !has_scale); - if (use_autoscale && layer->texture) { + if (use_autoscale) { auto texture_size = layer->texture->getOriginalSize(); float base_size = tsettings.node_texture_size; float size = std::fmin(texture_size.Width, texture_size.Height); @@ -692,6 +709,7 @@ bool ContentFeatures::textureAlphaCheck(ITextureSource *tsrc, const TileDef *til video::IVideoDriver *driver = RenderingEngine::get_video_driver(); static thread_local bool long_warning_printed = false; std::set seen; + for (int i = 0; i < length; i++) { if (seen.find(tiles[i].name) != seen.end()) continue; @@ -716,20 +734,21 @@ bool ContentFeatures::textureAlphaCheck(ITextureSource *tsrc, const TileDef *til break_loop: image->drop(); - if (!ok) { - warningstream << "Texture \"" << tiles[i].name << "\" of " - << name << " has transparent pixels, assuming " - "use_texture_alpha = true." << std::endl; - if (!long_warning_printed) { - warningstream << " This warning can be a false-positive if " - "unused pixels in the texture are transparent. However if " - "it is meant to be transparent, you *MUST* update the " - "nodedef and set use_texture_alpha = true! This compatibility " - "code will be removed in a few releases." << std::endl; - long_warning_printed = true; - } - return true; + if (ok) + continue; + warningstream << "Texture \"" << tiles[i].name << "\" of " + << name << " has transparency, assuming " + "use_texture_alpha = \"clip\"." << std::endl; + if (!long_warning_printed) { + warningstream << " This warning can be a false-positive if " + "unused pixels in the texture are transparent. However if " + "it is meant to be transparent, you *MUST* update the " + "nodedef and set use_texture_alpha = \"clip\"! This " + "compatibility code will be removed in a few releases." + << std::endl; + long_warning_printed = true; } + return true; } return false; } @@ -774,31 +793,33 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc bool is_liquid = false; - u8 material_type = (alpha == 255) ? - TILE_MATERIAL_BASIC : TILE_MATERIAL_ALPHA; + if (alpha == ALPHAMODE_LEGACY_COMPAT) { + // Before working with the alpha mode, resolve any legacy kludges + alpha = textureAlphaCheck(tsrc, tdef, 6) ? ALPHAMODE_CLIP : ALPHAMODE_OPAQUE; + } + + MaterialType material_type = alpha == ALPHAMODE_OPAQUE ? + TILE_MATERIAL_OPAQUE : (alpha == ALPHAMODE_CLIP ? TILE_MATERIAL_BASIC : + TILE_MATERIAL_ALPHA); switch (drawtype) { default: case NDT_NORMAL: - material_type = (alpha == 255) ? - TILE_MATERIAL_OPAQUE : TILE_MATERIAL_ALPHA; solidness = 2; break; case NDT_AIRLIKE: solidness = 0; break; case NDT_LIQUID: - assert(liquid_type == LIQUID_SOURCE); if (tsettings.opaque_water) - alpha = 255; + alpha = ALPHAMODE_OPAQUE; solidness = 1; is_liquid = true; break; case NDT_FLOWINGLIQUID: - assert(liquid_type == LIQUID_FLOWING); solidness = 0; if (tsettings.opaque_water) - alpha = 255; + alpha = ALPHAMODE_OPAQUE; is_liquid = true; break; case NDT_GLASSLIKE: @@ -850,19 +871,16 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc break; case NDT_MESH: case NDT_NODEBOX: - if (alpha == 255 && textureAlphaCheck(tsrc, tdef, 6)) - alpha = 0; - solidness = 0; - if (waving == 1) + if (waving == 1) { material_type = TILE_MATERIAL_WAVING_PLANTS; - else if (waving == 2) + } else if (waving == 2) { material_type = TILE_MATERIAL_WAVING_LEAVES; - else if (waving == 3) - material_type = (alpha == 255) ? TILE_MATERIAL_WAVING_LIQUID_OPAQUE : - TILE_MATERIAL_WAVING_LIQUID_BASIC; - else if (alpha == 255) - material_type = TILE_MATERIAL_OPAQUE; + } else if (waving == 3) { + material_type = alpha == ALPHAMODE_OPAQUE ? + TILE_MATERIAL_WAVING_LIQUID_OPAQUE : (alpha == ALPHAMODE_CLIP ? + TILE_MATERIAL_WAVING_LIQUID_BASIC : TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT); + } break; case NDT_TORCHLIKE: case NDT_SIGNLIKE: @@ -876,23 +894,19 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc } if (is_liquid) { - // Vertex alpha is no longer supported, correct if necessary. - correctAlpha(tdef, 6); - correctAlpha(tdef_overlay, 6); - correctAlpha(tdef_spec, CF_SPECIAL_COUNT); - if (waving == 3) { - material_type = (alpha == 255) ? TILE_MATERIAL_WAVING_LIQUID_OPAQUE : - TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT; + material_type = alpha == ALPHAMODE_OPAQUE ? + TILE_MATERIAL_WAVING_LIQUID_OPAQUE : (alpha == ALPHAMODE_CLIP ? + TILE_MATERIAL_WAVING_LIQUID_BASIC : TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT); } else { - material_type = (alpha == 255) ? TILE_MATERIAL_LIQUID_OPAQUE : + material_type = alpha == ALPHAMODE_OPAQUE ? TILE_MATERIAL_LIQUID_OPAQUE : TILE_MATERIAL_LIQUID_TRANSPARENT; } } u32 tile_shader = shdsrc->getShader("nodes_shader", material_type, drawtype); - u8 overlay_material = material_type; + MaterialType overlay_material = material_type; if (overlay_material == TILE_MATERIAL_OPAQUE) overlay_material = TILE_MATERIAL_BASIC; else if (overlay_material == TILE_MATERIAL_LIQUID_OPAQUE) @@ -913,7 +927,7 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc tdef[j].backface_culling, tsettings); } - u8 special_material = material_type; + MaterialType special_material = material_type; if (drawtype == NDT_PLANTLIKE_ROOTED) { if (waving == 1) special_material = TILE_MATERIAL_WAVING_PLANTS; @@ -930,7 +944,8 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc if (param_type_2 == CPT2_COLOR || param_type_2 == CPT2_COLORED_FACEDIR || - param_type_2 == CPT2_COLORED_WALLMOUNTED) + param_type_2 == CPT2_COLORED_WALLMOUNTED || + param_type_2 == CPT2_COLORED_DEGROTATE) palette = tsrc->getPalette(palette_name); if (drawtype == NDT_MESH && !mesh.empty()) { @@ -1436,9 +1451,7 @@ void NodeDefManager::applyTextureOverrides(const std::vector &o } } -void NodeDefManager::updateTextures(IGameDef *gamedef, - void (*progress_callback)(void *progress_args, u32 progress, u32 max_progress), - void *progress_callback_args) +void NodeDefManager::updateTextures(IGameDef *gamedef, void *progress_callback_args) { #ifndef SERVER infostream << "NodeDefManager::updateTextures(): Updating " @@ -1447,8 +1460,8 @@ void NodeDefManager::updateTextures(IGameDef *gamedef, Client *client = (Client *)gamedef; ITextureSource *tsrc = client->tsrc(); IShaderSource *shdsrc = client->getShaderSource(); - scene::IMeshManipulator *meshmanip = - RenderingEngine::get_scene_manager()->getMeshManipulator(); + auto smgr = client->getSceneManager(); + scene::IMeshManipulator *meshmanip = smgr->getMeshManipulator(); TextureSettings tsettings; tsettings.readSettings(); @@ -1457,7 +1470,7 @@ void NodeDefManager::updateTextures(IGameDef *gamedef, for (u32 i = 0; i < size; i++) { ContentFeatures *f = &(m_content_features[i]); f->updateTextures(tsrc, shdsrc, meshmanip, client, tsettings); - progress_callback(progress_callback_args, i, size); + client->showUpdateProgressTexture(progress_callback_args, i, size); } #endif } @@ -1545,10 +1558,10 @@ void NodeDefManager::deSerialize(std::istream &is) } -void NodeDefManager::addNameIdMapping(content_t i, std::string name) +void NodeDefManager::addNameIdMapping(content_t i, const std::string &name) { m_name_id_mapping.set(i, name); - m_name_id_mapping_with_aliases.insert(std::make_pair(name, i)); + m_name_id_mapping_with_aliases.emplace(name, i); } @@ -1612,7 +1625,7 @@ static void removeDupes(std::vector &list) void NodeDefManager::resolveCrossrefs() { for (ContentFeatures &f : m_content_features) { - if (f.liquid_type != LIQUID_NONE) { + if (f.liquid_type != LIQUID_NONE || f.drawtype == NDT_LIQUID || f.drawtype == NDT_FLOWINGLIQUID) { f.liquid_alternative_flowing_id = getId(f.liquid_alternative_flowing); f.liquid_alternative_source_id = getId(f.liquid_alternative_source); continue; @@ -1677,8 +1690,7 @@ bool NodeDefManager::nodeboxConnects(MapNode from, MapNode to, NodeResolver::NodeResolver() { - m_nodenames.reserve(16); - m_nnlistsizes.reserve(4); + reset(); } @@ -1781,3 +1793,16 @@ bool NodeResolver::getIdsFromNrBacklog(std::vector *result_out, return success; } + +void NodeResolver::reset(bool resolve_done) +{ + m_nodenames.clear(); + m_nodenames_idx = 0; + m_nnlistsizes.clear(); + m_nnlistsizes_idx = 0; + + m_resolve_done = resolve_done; + + m_nodenames.reserve(16); + m_nnlistsizes.reserve(4); +} diff --git a/src/nodedef.h b/src/nodedef.h index 66c21cc07..8a6d88071 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -44,6 +44,9 @@ class ITextureSource; class IShaderSource; class IGameDef; class NodeResolver; +#if BUILD_UNITTESTS +class TestSchematic; +#endif enum ContentParamType { @@ -64,7 +67,7 @@ enum ContentParamType2 CPT2_WALLMOUNTED, // Block level like FLOWINGLIQUID CPT2_LEVELED, - // 2D rotation for things like plants + // 2D rotation CPT2_DEGROTATE, // Mesh options for plants CPT2_MESHOPTIONS, @@ -76,6 +79,8 @@ enum ContentParamType2 CPT2_COLORED_WALLMOUNTED, // Glasslike framed drawtype internal liquid level, param2 values 0 to 63 CPT2_GLASSLIKE_LIQUID_LEVEL, + // 3 bits of palette index, then degrotate + CPT2_COLORED_DEGROTATE, }; enum LiquidType @@ -231,6 +236,14 @@ enum AlignStyle : u8 { ALIGN_STYLE_USER_DEFINED, }; +enum AlphaMode : u8 { + ALPHAMODE_BLEND, + ALPHAMODE_CLIP, + ALPHAMODE_OPAQUE, + ALPHAMODE_LEGACY_COMPAT, /* means either opaque or clip */ +}; + + /* Stand-alone definition of a TileSpec (basically a server-side TileSpec) */ @@ -315,9 +328,7 @@ struct ContentFeatures // These will be drawn over the base tiles. TileDef tiledef_overlay[6]; TileDef tiledef_special[CF_SPECIAL_COUNT]; // eg. flowing liquid - // If 255, the node is opaque. - // Otherwise it uses texture alpha. - u8 alpha; + AlphaMode alpha; // The color of the node. video::SColor color; std::string palette_name; @@ -418,29 +429,27 @@ struct ContentFeatures void serialize(std::ostream &os, u16 protocol_version) const; void deSerialize(std::istream &is); - /*! - * Since vertex alpha is no longer supported, this method - * adds opacity directly to the texture pixels. - * - * \param tiles array of the tile definitions. - * \param length length of tiles - */ - void correctAlpha(TileDef *tiles, int length); - -#ifndef SERVER - /* - * Checks if any tile texture has any transparent pixels. - * Prints a warning and returns true if that is the case, false otherwise. - * This is supposed to be used for use_texture_alpha backwards compatibility. - */ - bool textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles, - int length); -#endif - - /* Some handy methods */ + void setDefaultAlphaMode() + { + switch (drawtype) { + case NDT_NORMAL: + case NDT_LIQUID: + case NDT_FLOWINGLIQUID: + alpha = ALPHAMODE_OPAQUE; + break; + case NDT_NODEBOX: + case NDT_MESH: + alpha = ALPHAMODE_LEGACY_COMPAT; // this should eventually be OPAQUE + break; + default: + alpha = ALPHAMODE_CLIP; + break; + } + } + bool needsBackfaceCulling() const { switch (drawtype) { @@ -474,6 +483,21 @@ struct ContentFeatures void updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc, scene::IMeshManipulator *meshmanip, Client *client, const TextureSettings &tsettings); #endif + +private: +#ifndef SERVER + /* + * Checks if any tile texture has any transparent pixels. + * Prints a warning and returns true if that is the case, false otherwise. + * This is supposed to be used for use_texture_alpha backwards compatibility. + */ + bool textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles, + int length); +#endif + + void setAlphaFromLegacy(u8 legacy_alpha); + + u8 getAlphaForLegacy() const; }; /*! @@ -636,9 +660,7 @@ public: * total ContentFeatures. * @param progress_cbk_args passed to the callback function */ - void updateTextures(IGameDef *gamedef, - void (*progress_cbk)(void *progress_args, u32 progress, u32 max_progress), - void *progress_cbk_args); + void updateTextures(IGameDef *gamedef, void *progress_cbk_args); /*! * Writes the content of this manager to the given output stream. @@ -701,7 +723,7 @@ private: * @param i a content ID * @param name a node name */ - void addNameIdMapping(content_t i, std::string name); + void addNameIdMapping(content_t i, const std::string &name); /*! * Removes a content ID from all groups. @@ -770,10 +792,13 @@ private: NodeDefManager *createNodeDefManager(); +// NodeResolver: Queue for node names which are then translated +// to content_t after the NodeDefManager was initialized class NodeResolver { public: NodeResolver(); virtual ~NodeResolver(); + // Callback which is run as soon NodeDefManager is ready virtual void resolveNodeNames() = 0; // required because this class is used as mixin for ObjDef @@ -785,12 +810,31 @@ public: bool getIdsFromNrBacklog(std::vector *result_out, bool all_required = false, content_t c_fallback = CONTENT_IGNORE); + inline bool isResolveDone() const { return m_resolve_done; } + void reset(bool resolve_done = false); + + // Vector containing all node names in the resolve "queue" + std::vector m_nodenames; + // Specifies the "set size" of node names which are to be processed + // this is used for getIdsFromNrBacklog + // TODO: replace or remove + std::vector m_nnlistsizes; + +protected: + friend class NodeDefManager; // m_ndef + + const NodeDefManager *m_ndef = nullptr; + // Index of the next "m_nodenames" entry to resolve + u32 m_nodenames_idx = 0; + +private: +#if BUILD_UNITTESTS + // Unittest requires access to m_resolve_done + friend class TestSchematic; +#endif void nodeResolveInternal(); - u32 m_nodenames_idx = 0; + // Index of the next "m_nnlistsizes" entry to process u32 m_nnlistsizes_idx = 0; - std::vector m_nodenames; - std::vector m_nnlistsizes; - const NodeDefManager *m_ndef = nullptr; bool m_resolve_done = false; }; diff --git a/src/nodemetadata.cpp b/src/nodemetadata.cpp index 6447c8785..f98732385 100644 --- a/src/nodemetadata.cpp +++ b/src/nodemetadata.cpp @@ -206,10 +206,9 @@ NodeMetadataList::~NodeMetadataList() std::vector NodeMetadataList::getAllKeys() { std::vector keys; - - NodeMetadataMap::const_iterator it; - for (it = m_data.begin(); it != m_data.end(); ++it) - keys.push_back(it->first); + keys.reserve(m_data.size()); + for (const auto &it : m_data) + keys.push_back(it.first); return keys; } @@ -218,7 +217,7 @@ NodeMetadata *NodeMetadataList::get(v3s16 p) { NodeMetadataMap::const_iterator n = m_data.find(p); if (n == m_data.end()) - return NULL; + return nullptr; return n->second; } @@ -235,7 +234,7 @@ void NodeMetadataList::remove(v3s16 p) void NodeMetadataList::set(v3s16 p, NodeMetadata *d) { remove(p); - m_data.insert(std::make_pair(p, d)); + m_data.emplace(p, d); } void NodeMetadataList::clear() @@ -251,9 +250,8 @@ void NodeMetadataList::clear() int NodeMetadataList::countNonEmpty() const { int n = 0; - NodeMetadataMap::const_iterator it; - for (it = m_data.begin(); it != m_data.end(); ++it) { - if (!it->second->empty()) + for (const auto &it : m_data) { + if (!it.second->empty()) n++; } return n; diff --git a/src/noise.cpp b/src/noise.cpp index e16564b05..a10efa3c4 100644 --- a/src/noise.cpp +++ b/src/noise.cpp @@ -369,7 +369,7 @@ float contour(float v) ///////////////////////// [ New noise ] //////////////////////////// -float NoisePerlin2D(NoiseParams *np, float x, float y, s32 seed) +float NoisePerlin2D(const NoiseParams *np, float x, float y, s32 seed) { float a = 0; float f = 1.0; @@ -395,7 +395,7 @@ float NoisePerlin2D(NoiseParams *np, float x, float y, s32 seed) } -float NoisePerlin3D(NoiseParams *np, float x, float y, float z, s32 seed) +float NoisePerlin3D(const NoiseParams *np, float x, float y, float z, s32 seed) { float a = 0; float f = 1.0; @@ -422,7 +422,7 @@ float NoisePerlin3D(NoiseParams *np, float x, float y, float z, s32 seed) } -Noise::Noise(NoiseParams *np_, s32 seed, u32 sx, u32 sy, u32 sz) +Noise::Noise(const NoiseParams *np_, s32 seed, u32 sx, u32 sy, u32 sz) { np = *np_; this->seed = seed; diff --git a/src/noise.h b/src/noise.h index 613879890..854781731 100644 --- a/src/noise.h +++ b/src/noise.h @@ -146,7 +146,7 @@ public: float *persist_buf = nullptr; float *result = nullptr; - Noise(NoiseParams *np, s32 seed, u32 sx, u32 sy, u32 sz=1); + Noise(const NoiseParams *np, s32 seed, u32 sx, u32 sy, u32 sz=1); ~Noise(); void setSize(u32 sx, u32 sy, u32 sz=1); @@ -192,8 +192,8 @@ private: }; -float NoisePerlin2D(NoiseParams *np, float x, float y, s32 seed); -float NoisePerlin3D(NoiseParams *np, float x, float y, float z, s32 seed); +float NoisePerlin2D(const NoiseParams *np, float x, float y, s32 seed); +float NoisePerlin3D(const NoiseParams *np, float x, float y, float z, s32 seed); inline float NoisePerlin2D_PO(NoiseParams *np, float x, float xoff, float y, float yoff, s32 seed) diff --git a/src/object_properties.cpp b/src/object_properties.cpp index f31773060..2eebc27d6 100644 --- a/src/object_properties.cpp +++ b/src/object_properties.cpp @@ -24,6 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/basic_macros.h" #include +static const video::SColor NULL_BGCOLOR{0, 1, 1, 1}; + ObjectProperties::ObjectProperties() { textures.emplace_back("unknown_object.png"); @@ -62,6 +64,13 @@ std::string ObjectProperties::dump() os << ", nametag=" << nametag; os << ", nametag_color=" << "\"" << nametag_color.getAlpha() << "," << nametag_color.getRed() << "," << nametag_color.getGreen() << "," << nametag_color.getBlue() << "\" "; + + if (nametag_bgcolor) + os << ", nametag_bgcolor=" << "\"" << nametag_color.getAlpha() << "," << nametag_color.getRed() + << "," << nametag_color.getGreen() << "," << nametag_color.getBlue() << "\" "; + else + os << ", nametag_bgcolor=null "; + os << ", selectionbox=" << PP(selectionbox.MinEdge) << "," << PP(selectionbox.MaxEdge); os << ", pointable=" << pointable; os << ", static_save=" << static_save; @@ -121,6 +130,13 @@ void ObjectProperties::serialize(std::ostream &os) const writeU8(os, shaded); writeU8(os, show_on_minimap); + if (!nametag_bgcolor) + writeARGB8(os, NULL_BGCOLOR); + else if (nametag_bgcolor.value().getAlpha() == 0) + writeARGB8(os, video::SColor(0, 0, 0, 0)); + else + writeARGB8(os, nametag_bgcolor.value()); + // Add stuff only at the bottom. // Never remove anything, because we don't want new versions of this } @@ -182,5 +198,11 @@ void ObjectProperties::deSerialize(std::istream &is) if (is.eof()) return; show_on_minimap = tmp; + + auto bgcolor = readARGB8(is); + if (bgcolor != NULL_BGCOLOR) + nametag_bgcolor = bgcolor; + else + nametag_bgcolor = nullopt; } catch (SerializationError &e) {} } diff --git a/src/object_properties.h b/src/object_properties.h index adb483527..db28eebfd 100644 --- a/src/object_properties.h +++ b/src/object_properties.h @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include "util/Optional.h" struct ObjectProperties { @@ -53,6 +54,7 @@ struct ObjectProperties s8 glow = 0; std::string nametag = ""; video::SColor nametag_color = video::SColor(255, 255, 255, 255); + Optional nametag_bgcolor = nullopt; f32 automatic_face_movement_max_rotation_per_sec = -1.0f; std::string infotext; //! For dropped items, this contains item information. diff --git a/src/pathfinder.cpp b/src/pathfinder.cpp index 3f0b98c10..c45ce9158 100644 --- a/src/pathfinder.cpp +++ b/src/pathfinder.cpp @@ -157,9 +157,8 @@ public: ArrayGridNodeContainer(Pathfinder *pathf, v3s16 dimensions); virtual PathGridnode &access(v3s16 p); -private: - v3s16 m_dimensions; +private: int m_x_stride; int m_y_stride; std::vector m_nodes_array; @@ -306,8 +305,6 @@ private: int m_max_index_y = 0; /**< max index of search area in y direction */ int m_max_index_z = 0; /**< max index of search area in z direction */ - - int m_searchdistance = 0; /**< max distance to search in each direction */ int m_maxdrop = 0; /**< maximum number of blocks a path may drop */ int m_maxjump = 0; /**< maximum number of blocks a path may jump */ int m_min_target_distance = 0; /**< current smalest path to target */ @@ -619,7 +616,6 @@ std::vector Pathfinder::getPath(v3s16 source, std::vector retval; //initialization - m_searchdistance = searchdistance; m_maxjump = max_jump; m_maxdrop = max_drop; m_start = source; @@ -1432,7 +1428,7 @@ std::string Pathfinder::dirToName(PathDirections dir) } /******************************************************************************/ -void Pathfinder::printPath(std::vector path) +void Pathfinder::printPath(const std::vector &path) { unsigned int current = 0; for (std::vector::iterator i = path.begin(); diff --git a/src/porting.cpp b/src/porting.cpp index e7ed4e090..4c87bddee 100644 --- a/src/porting.cpp +++ b/src/porting.cpp @@ -719,29 +719,48 @@ int mt_snprintf(char *buf, const size_t buf_size, const char *fmt, ...) return c; } -bool openURL(const std::string &url) +static bool open_uri(const std::string &uri) { - if ((url.substr(0, 7) != "http://" && url.substr(0, 8) != "https://") || - url.find_first_of("\r\n") != std::string::npos) { - errorstream << "Invalid url: " << url << std::endl; + if (uri.find_first_of("\r\n") != std::string::npos) { + errorstream << "Unable to open URI as it is invalid, contains new line: " << uri << std::endl; return false; } #if defined(_WIN32) - return (intptr_t)ShellExecuteA(NULL, NULL, url.c_str(), NULL, NULL, SW_SHOWNORMAL) > 32; + return (intptr_t)ShellExecuteA(NULL, NULL, uri.c_str(), NULL, NULL, SW_SHOWNORMAL) > 32; #elif defined(__ANDROID__) - openURLAndroid(url); + openURIAndroid(uri); return true; #elif defined(__APPLE__) - const char *argv[] = {"open", url.c_str(), NULL}; + const char *argv[] = {"open", uri.c_str(), NULL}; return posix_spawnp(NULL, "open", NULL, NULL, (char**)argv, (*_NSGetEnviron())) == 0; #else - const char *argv[] = {"xdg-open", url.c_str(), NULL}; + const char *argv[] = {"xdg-open", uri.c_str(), NULL}; return posix_spawnp(NULL, "xdg-open", NULL, NULL, (char**)argv, environ) == 0; #endif } +bool open_url(const std::string &url) +{ + if (url.substr(0, 7) != "http://" && url.substr(0, 8) != "https://") { + errorstream << "Unable to open browser as URL is missing schema: " << url << std::endl; + return false; + } + + return open_uri(url); +} + +bool open_directory(const std::string &path) +{ + if (!fs::IsDir(path)) { + errorstream << "Unable to open directory as it does not exist: " << path << std::endl; + return false; + } + + return open_uri(path); +} + // Load performance counter frequency only once at startup #ifdef _WIN32 diff --git a/src/porting.h b/src/porting.h index c7adf12a2..93932e1d9 100644 --- a/src/porting.h +++ b/src/porting.h @@ -234,21 +234,21 @@ inline u64 getTimeMs() { struct timespec ts; os_get_clock(&ts); - return ts.tv_sec * 1000 + ts.tv_nsec / 1000000; + return ((u64) ts.tv_sec) * 1000LL + ((u64) ts.tv_nsec) / 1000000LL; } inline u64 getTimeUs() { struct timespec ts; os_get_clock(&ts); - return ts.tv_sec * 1000000 + ts.tv_nsec / 1000; + return ((u64) ts.tv_sec) * 1000000LL + ((u64) ts.tv_nsec) / 1000LL; } inline u64 getTimeNs() { struct timespec ts; os_get_clock(&ts); - return ts.tv_sec * 1000000000 + ts.tv_nsec; + return ((u64) ts.tv_sec) * 1000000000LL + ((u64) ts.tv_nsec); } #endif @@ -332,7 +332,25 @@ void attachOrCreateConsole(); int mt_snprintf(char *buf, const size_t buf_size, const char *fmt, ...); -bool openURL(const std::string &url); +/** + * Opens URL in default web browser + * + * Must begin with http:// or https://, and not contain any new lines + * + * @param url The URL + * @return true on success, false on failure + */ +bool open_url(const std::string &url); + +/** + * Opens a directory in the default file manager + * + * The directory must exist. + * + * @param path Path to directory + * @return true on success, false on failure + */ +bool open_directory(const std::string &path); } // namespace porting diff --git a/src/porting_android.cpp b/src/porting_android.cpp index 41b521ec2..f5870c174 100644 --- a/src/porting_android.cpp +++ b/src/porting_android.cpp @@ -213,13 +213,13 @@ void showInputDialog(const std::string &acceptButton, const std::string &hint, jacceptButton, jhint, jcurrent, jeditType); } -void openURLAndroid(const std::string &url) +void openURIAndroid(const std::string &url) { - jmethodID url_open = jnienv->GetMethodID(nativeActivity, "openURL", + jmethodID url_open = jnienv->GetMethodID(nativeActivity, "openURI", "(Ljava/lang/String;)V"); FATAL_ERROR_IF(url_open == nullptr, - "porting::openURLAndroid unable to find java openURL method"); + "porting::openURIAndroid unable to find java openURI method"); jstring jurl = jnienv->NewStringUTF(url.c_str()); jnienv->CallVoidMethod(app_global->activity->clazz, url_open, jurl); diff --git a/src/porting_android.h b/src/porting_android.h index 6eb054041..239815922 100644 --- a/src/porting_android.h +++ b/src/porting_android.h @@ -58,7 +58,7 @@ void initializePathsAndroid(); void showInputDialog(const std::string &acceptButton, const std::string &hint, const std::string ¤t, int editType); -void openURLAndroid(const std::string &url); +void openURIAndroid(const std::string &url); /** * WORKAROUND for not working callbacks from java -> c++ diff --git a/src/profiler.cpp b/src/profiler.cpp index be8be591e..d05b7abfe 100644 --- a/src/profiler.cpp +++ b/src/profiler.cpp @@ -38,7 +38,7 @@ ScopeProfiler::~ScopeProfiler() return; float duration_ms = m_timer->stop(true); - float duration = duration_ms / 1000.0; + float duration = duration_ms; if (m_profiler) { switch (m_type) { case SPT_ADD: diff --git a/src/remoteplayer.cpp b/src/remoteplayer.cpp index bef60c792..925ad001b 100644 --- a/src/remoteplayer.cpp +++ b/src/remoteplayer.cpp @@ -83,122 +83,6 @@ RemotePlayer::RemotePlayer(const char *name, IItemDefManager *idef): m_star_params = sky_defaults.getStarDefaults(); } -void RemotePlayer::serializeExtraAttributes(std::string &output) -{ - assert(m_sao); - Json::Value json_root; - - const StringMap &attrs = m_sao->getMeta().getStrings(); - for (const auto &attr : attrs) { - json_root[attr.first] = attr.second; - } - - output = fastWriteJson(json_root); -} - - -void RemotePlayer::deSerialize(std::istream &is, const std::string &playername, - PlayerSAO *sao) -{ - Settings args; - - if (!args.parseConfigLines(is, "PlayerArgsEnd")) { - throw SerializationError("PlayerArgsEnd of player " + playername + " not found!"); - } - - m_dirty = true; - //args.getS32("version"); // Version field value not used - const std::string &name = args.get("name"); - strlcpy(m_name, name.c_str(), PLAYERNAME_SIZE); - - if (sao) { - try { - sao->setHPRaw(args.getU16("hp")); - } catch(SettingNotFoundException &e) { - sao->setHPRaw(PLAYER_MAX_HP_DEFAULT); - } - - try { - sao->setBasePosition(args.getV3F("position")); - } catch (SettingNotFoundException &e) {} - - try { - sao->setLookPitch(args.getFloat("pitch")); - } catch (SettingNotFoundException &e) {} - try { - sao->setPlayerYaw(args.getFloat("yaw")); - } catch (SettingNotFoundException &e) {} - - try { - sao->setBreath(args.getU16("breath"), false); - } catch (SettingNotFoundException &e) {} - - try { - const std::string &extended_attributes = args.get("extended_attributes"); - std::istringstream iss(extended_attributes); - Json::CharReaderBuilder builder; - builder.settings_["collectComments"] = false; - std::string errs; - - Json::Value attr_root; - Json::parseFromStream(builder, iss, &attr_root, &errs); - - const Json::Value::Members attr_list = attr_root.getMemberNames(); - for (const auto &it : attr_list) { - Json::Value attr_value = attr_root[it]; - sao->getMeta().setString(it, attr_value.asString()); - } - sao->getMeta().setModified(false); - } catch (SettingNotFoundException &e) {} - } - - try { - inventory.deSerialize(is); - } catch (SerializationError &e) { - errorstream << "Failed to deserialize player inventory. player_name=" - << name << " " << e.what() << std::endl; - } - - if (!inventory.getList("craftpreview") && inventory.getList("craftresult")) { - // Convert players without craftpreview - inventory.addList("craftpreview", 1); - - bool craftresult_is_preview = true; - if(args.exists("craftresult_is_preview")) - craftresult_is_preview = args.getBool("craftresult_is_preview"); - if(craftresult_is_preview) - { - // Clear craftresult - inventory.getList("craftresult")->changeItem(0, ItemStack()); - } - } -} - -void RemotePlayer::serialize(std::ostream &os) -{ - // Utilize a Settings object for storing values - Settings args; - args.setS32("version", 1); - args.set("name", m_name); - - // This should not happen - assert(m_sao); - args.setU16("hp", m_sao->getHP()); - args.setV3F("position", m_sao->getBasePosition()); - args.setFloat("pitch", m_sao->getLookPitch()); - args.setFloat("yaw", m_sao->getRotation().Y); - args.setU16("breath", m_sao->getBreath()); - - std::string extended_attrs; - serializeExtraAttributes(extended_attrs); - args.set("extended_attributes", extended_attrs); - - args.writeLines(os); - - os<<"PlayerArgsEnd\n"; - - inventory.serialize(os); -} const RemotePlayerChatResult RemotePlayer::canSendChatMessage() { diff --git a/src/remoteplayer.h b/src/remoteplayer.h index e4209c54f..8d086fc5a 100644 --- a/src/remoteplayer.h +++ b/src/remoteplayer.h @@ -44,8 +44,6 @@ public: RemotePlayer(const char *name, IItemDefManager *idef); virtual ~RemotePlayer() = default; - void deSerialize(std::istream &is, const std::string &playername, PlayerSAO *sao); - PlayerSAO *getPlayerSAO() { return m_sao; } void setPlayerSAO(PlayerSAO *sao) { m_sao = sao; } @@ -142,14 +140,6 @@ public: void onSuccessfulSave(); private: - /* - serialize() writes a bunch of text that can contain - any characters except a '\0', and such an ending that - deSerialize stops reading exactly at the right point. - */ - void serialize(std::ostream &os); - void serializeExtraAttributes(std::string &output); - PlayerSAO *m_sao = nullptr; bool m_dirty = false; diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 72361bdb5..897ca2862 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -84,9 +84,6 @@ void read_item_definition(lua_State* L, int index, getboolfield(L, index, "liquids_pointable", def.liquids_pointable); - warn_if_field_exists(L, index, "tool_digging_properties", - "Obsolete; use tool_capabilities"); - lua_getfield(L, index, "tool_capabilities"); if(lua_istable(L, -1)){ def.tool_capabilities = new ToolCapabilities( @@ -123,6 +120,8 @@ void read_item_definition(lua_State* L, int index, // "" = no prediction getstringfield(L, index, "node_placement_prediction", def.node_placement_prediction); + + getintfield(L, index, "place_param2", def.place_param2); } /******************************************************************************/ @@ -144,8 +143,10 @@ void push_item_definition_full(lua_State *L, const ItemDefinition &i) lua_setfield(L, -2, "name"); lua_pushstring(L, i.description.c_str()); lua_setfield(L, -2, "description"); - lua_pushstring(L, i.short_description.c_str()); - lua_setfield(L, -2, "short_description"); + if (!i.short_description.empty()) { + lua_pushstring(L, i.short_description.c_str()); + lua_setfield(L, -2, "short_description"); + } lua_pushstring(L, type.c_str()); lua_setfield(L, -2, "type"); lua_pushstring(L, i.inventory_image.c_str()); @@ -199,7 +200,7 @@ void read_object_properties(lua_State *L, int index, if (getintfield(L, -1, "hp_max", hp_max)) { prop->hp_max = (u16)rangelim(hp_max, 0, U16_MAX); - if (prop->hp_max < sao->getHP()) { + if (sao && prop->hp_max < sao->getHP()) { PlayerHPChangeReason reason(PlayerHPChangeReason::SET_HP); sao->setHP(prop->hp_max, reason); if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) @@ -208,7 +209,7 @@ void read_object_properties(lua_State *L, int index, } if (getintfield(L, -1, "breath_max", prop->breath_max)) { - if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + if (sao && sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { PlayerSAO *player = (PlayerSAO *)sao; if (prop->breath_max < player->getBreath()) player->setBreath(prop->breath_max); @@ -316,6 +317,17 @@ void read_object_properties(lua_State *L, int index, prop->nametag_color = color; } lua_pop(L, 1); + lua_getfield(L, -1, "nametag_bgcolor"); + if (!lua_isnil(L, -1)) { + if (lua_toboolean(L, -1)) { + video::SColor color; + if (read_color(L, -1, &color)) + prop->nametag_bgcolor = color; + } else { + prop->nametag_bgcolor = nullopt; + } + } + lua_pop(L, 1); lua_getfield(L, -1, "automatic_face_movement_max_rotation_per_sec"); if (lua_isnumber(L, -1)) { @@ -407,6 +419,13 @@ void push_object_properties(lua_State *L, ObjectProperties *prop) lua_setfield(L, -2, "nametag"); push_ARGB8(L, prop->nametag_color); lua_setfield(L, -2, "nametag_color"); + if (prop->nametag_bgcolor) { + push_ARGB8(L, prop->nametag_bgcolor.value()); + lua_setfield(L, -2, "nametag_bgcolor"); + } else { + lua_pushboolean(L, false); + lua_setfield(L, -2, "nametag_bgcolor"); + } lua_pushnumber(L, prop->automatic_face_movement_max_rotation_per_sec); lua_setfield(L, -2, "automatic_face_movement_max_rotation_per_sec"); lua_pushlstring(L, prop->infotext.c_str(), prop->infotext.size()); @@ -496,6 +515,35 @@ TileDef read_tiledef(lua_State *L, int index, u8 drawtype) return tiledef; } +/******************************************************************************/ +void push_tiledef(lua_State *L, TileDef tiledef) +{ + lua_newtable(L); + setstringfield(L, -1, "name", tiledef.name); + setboolfield(L, -1, "backface_culling", tiledef.backface_culling); + setboolfield(L, -1, "tileable_horizontal", tiledef.tileable_horizontal); + setboolfield(L, -1, "tileable_vertical", tiledef.tileable_vertical); + std::string align_style; + switch (tiledef.align_style) { + case ALIGN_STYLE_USER_DEFINED: + align_style = "user"; + break; + case ALIGN_STYLE_WORLD: + align_style = "world"; + break; + default: + align_style = "node"; + } + setstringfield(L, -1, "align_style", align_style); + setintfield(L, -1, "scale", tiledef.scale); + if (tiledef.has_color) { + push_ARGB8(L, tiledef.color); + lua_setfield(L, -2, "color"); + } + push_animation_definition(L, tiledef.animation); + lua_setfield(L, -2, "animation"); +} + /******************************************************************************/ void read_content_features(lua_State *L, ContentFeatures &f, int index) { @@ -624,22 +672,39 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) } lua_pop(L, 1); - f.alpha = getintfield_default(L, index, "alpha", 255); + /* alpha & use_texture_alpha */ + // This is a bit complicated due to compatibility - bool usealpha = getboolfield_default(L, index, - "use_texture_alpha", false); - if (usealpha) - f.alpha = 0; + f.setDefaultAlphaMode(); + + warn_if_field_exists(L, index, "alpha", + "Obsolete, only limited compatibility provided; " + "replaced by \"use_texture_alpha\""); + if (getintfield_default(L, index, "alpha", 255) != 255) + f.alpha = ALPHAMODE_BLEND; + + lua_getfield(L, index, "use_texture_alpha"); + if (lua_isboolean(L, -1)) { + warn_if_field_exists(L, index, "use_texture_alpha", + "Boolean values are deprecated; use the new choices"); + if (lua_toboolean(L, -1)) + f.alpha = (f.drawtype == NDT_NORMAL) ? ALPHAMODE_CLIP : ALPHAMODE_BLEND; + } else if (check_field_or_nil(L, -1, LUA_TSTRING, "use_texture_alpha")) { + int result = f.alpha; + string_to_enum(ScriptApiNode::es_TextureAlphaMode, result, + std::string(lua_tostring(L, -1))); + f.alpha = static_cast(result); + } + lua_pop(L, 1); + + /* Other stuff */ - // Read node color. lua_getfield(L, index, "color"); read_color(L, -1, &f.color); lua_pop(L, 1); getstringfield(L, index, "palette", f.palette_name); - /* Other stuff */ - lua_getfield(L, index, "post_effect_color"); read_color(L, -1, &f.post_effect_color); lua_pop(L, 1); @@ -652,24 +717,11 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) if (!f.palette_name.empty() && !(f.param_type_2 == CPT2_COLOR || f.param_type_2 == CPT2_COLORED_FACEDIR || - f.param_type_2 == CPT2_COLORED_WALLMOUNTED)) + f.param_type_2 == CPT2_COLORED_WALLMOUNTED || + f.param_type_2 == CPT2_COLORED_DEGROTATE)) warningstream << "Node " << f.name.c_str() << " has a palette, but not a suitable paramtype2." << std::endl; - // Warn about some obsolete fields - warn_if_field_exists(L, index, "wall_mounted", - "Obsolete; use paramtype2 = 'wallmounted'"); - warn_if_field_exists(L, index, "light_propagates", - "Obsolete; determined from paramtype"); - warn_if_field_exists(L, index, "dug_item", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "extra_dug_item", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "extra_dug_item_rarity", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "metadata_name", - "Obsolete; use on_add and metadata callbacks"); - // True for all ground-like things like stone and mud, false for eg. trees getboolfield(L, index, "is_ground_content", f.is_ground_content); f.light_propagates = (f.param_type == CPT_LIGHT); @@ -813,9 +865,32 @@ void push_content_features(lua_State *L, const ContentFeatures &c) std::string drawtype(ScriptApiNode::es_DrawType[(int)c.drawtype].str); std::string liquid_type(ScriptApiNode::es_LiquidType[(int)c.liquid_type].str); - /* Missing "tiles" because I don't see a usecase (at least not yet). */ - lua_newtable(L); + + // tiles + lua_newtable(L); + for (int i = 0; i < 6; i++) { + push_tiledef(L, c.tiledef[i]); + lua_rawseti(L, -2, i + 1); + } + lua_setfield(L, -2, "tiles"); + + // overlay_tiles + lua_newtable(L); + for (int i = 0; i < 6; i++) { + push_tiledef(L, c.tiledef_overlay[i]); + lua_rawseti(L, -2, i + 1); + } + lua_setfield(L, -2, "overlay_tiles"); + + // special_tiles + lua_newtable(L); + for (int i = 0; i < CF_SPECIAL_COUNT; i++) { + push_tiledef(L, c.tiledef_special[i]); + lua_rawseti(L, -2, i + 1); + } + lua_setfield(L, -2, "special_tiles"); + lua_pushboolean(L, c.has_on_construct); lua_setfield(L, -2, "has_on_construct"); lua_pushboolean(L, c.has_on_destruct); @@ -1313,6 +1388,8 @@ void push_tool_capabilities(lua_State *L, /******************************************************************************/ void push_inventory(lua_State *L, Inventory *inventory) { + if (! inventory) + throw SerializationError("Attempt to push nonexistant inventory"); std::vector lists = inventory->getLists(); std::vector::iterator iter = lists.begin(); lua_createtable(L, 0, lists.size()); @@ -1862,14 +1939,7 @@ void push_pointed_thing(lua_State *L, const PointedThing &pointed, bool csm, } else if (pointed.type == POINTEDTHING_OBJECT) { lua_pushstring(L, "object"); lua_setfield(L, -2, "type"); - if (csm) { -#ifndef SERVER - ClientObjectRef::create(L, pointed.object_id); -#endif - } else { - push_objectRef(L, pointed.object_id); - } - + push_objectRef(L, pointed.object_id); lua_setfield(L, -2, "ref"); } else { lua_pushstring(L, "nothing"); @@ -2129,7 +2199,7 @@ void push_collision_move_result(lua_State *L, const collisionMoveResult &res) void push_physics_override(lua_State *L, float speed, float jump, float gravity, bool sneak, bool sneak_glitch, bool new_move) { lua_createtable(L, 0, 6); - + lua_pushnumber(L, speed); lua_setfield(L, -2, "speed"); diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h index aa513ef0d..335cff074 100644 --- a/src/script/common/c_content.h +++ b/src/script/common/c_content.h @@ -39,7 +39,9 @@ extern "C" { #include "itemgroup.h" #include "itemdef.h" #include "c_types.h" -#include "hud.h" +// We do a explicit path include because by default c_content.h include src/client/hud.h +// prior to the src/hud.h, which is not good on server only build +#include "../../hud.h" namespace Json { class Value; } diff --git a/src/script/common/helper.cpp b/src/script/common/helper.cpp index 488144790..fbf24e1b7 100644 --- a/src/script/common/helper.cpp +++ b/src/script/common/helper.cpp @@ -50,22 +50,26 @@ bool LuaHelper::isNaN(lua_State *L, int idx) /* * Read template functions */ -template <> bool LuaHelper::readParam(lua_State *L, int index) +template <> +bool LuaHelper::readParam(lua_State *L, int index) { return lua_toboolean(L, index) != 0; } -template <> s16 LuaHelper::readParam(lua_State *L, int index) +template <> +s16 LuaHelper::readParam(lua_State *L, int index) { return lua_tonumber(L, index); } -template <> int LuaHelper::readParam(lua_State *L, int index) +template <> +int LuaHelper::readParam(lua_State *L, int index) { return luaL_checkint(L, index); } -template <> float LuaHelper::readParam(lua_State *L, int index) +template <> +float LuaHelper::readParam(lua_State *L, int index) { if (isNaN(L, index)) throw LuaError("NaN value is not allowed."); @@ -73,7 +77,8 @@ template <> float LuaHelper::readParam(lua_State *L, int index) return (float)luaL_checknumber(L, index); } -template <> v2s16 LuaHelper::readParam(lua_State *L, int index) +template <> +v2s16 LuaHelper::readParam(lua_State *L, int index) { v2s16 p; CHECK_POS_TAB(index); @@ -88,7 +93,8 @@ template <> v2s16 LuaHelper::readParam(lua_State *L, int index) return p; } -template <> v2f LuaHelper::readParam(lua_State *L, int index) +template <> +v2f LuaHelper::readParam(lua_State *L, int index) { v2f p; CHECK_POS_TAB(index); @@ -103,7 +109,8 @@ template <> v2f LuaHelper::readParam(lua_State *L, int index) return p; } -template <> v3f LuaHelper::readParam(lua_State *L, int index) +template <> +v3f LuaHelper::readParam(lua_State *L, int index) { v3f p; CHECK_POS_TAB(index); @@ -122,7 +129,8 @@ template <> v3f LuaHelper::readParam(lua_State *L, int index) return p; } -template <> std::string LuaHelper::readParam(lua_State *L, int index) +template <> +std::string LuaHelper::readParam(lua_State *L, int index) { size_t length; std::string result; diff --git a/src/script/common/helper.h b/src/script/common/helper.h index 7a794dc9b..6491e73cf 100644 --- a/src/script/common/helper.h +++ b/src/script/common/helper.h @@ -38,7 +38,8 @@ protected: * @param index Lua Index to read * @return read value from Lua */ - template static T readParam(lua_State *L, int index); + template + static T readParam(lua_State *L, int index); /** * Read a value using a template type T from Lua State L and index diff --git a/src/script/cpp_api/s_async.cpp b/src/script/cpp_api/s_async.cpp index 5f1f9297e..0619b32c0 100644 --- a/src/script/cpp_api/s_async.cpp +++ b/src/script/cpp_api/s_async.cpp @@ -157,35 +157,6 @@ void AsyncEngine::step(lua_State *L) lua_pop(L, 2); // Pop core and error handler } -/******************************************************************************/ -void AsyncEngine::pushFinishedJobs(lua_State* L) { - // Result Table - MutexAutoLock l(resultQueueMutex); - - unsigned int index = 1; - lua_createtable(L, resultQueue.size(), 0); - int top = lua_gettop(L); - - while (!resultQueue.empty()) { - LuaJobInfo jobDone = resultQueue.front(); - resultQueue.pop_front(); - - lua_createtable(L, 0, 2); // Pre-allocate space for two map fields - int top_lvl2 = lua_gettop(L); - - lua_pushstring(L, "jobid"); - lua_pushnumber(L, jobDone.id); - lua_settable(L, top_lvl2); - - lua_pushstring(L, "retval"); - lua_pushlstring(L, jobDone.serializedResult.data(), - jobDone.serializedResult.size()); - lua_settable(L, top_lvl2); - - lua_rawseti(L, top, index++); - } -} - /******************************************************************************/ void AsyncEngine::prepareEnvironment(lua_State* L, int top) { diff --git a/src/script/cpp_api/s_async.h b/src/script/cpp_api/s_async.h index b1f4bf45f..99a4f891c 100644 --- a/src/script/cpp_api/s_async.h +++ b/src/script/cpp_api/s_async.h @@ -98,12 +98,6 @@ public: */ void step(lua_State *L); - /** - * Push a list of finished jobs onto the stack - * @param L The Lua stack - */ - void pushFinishedJobs(lua_State *L); - protected: /** * Get a Job from queue to be processed diff --git a/src/script/cpp_api/s_base.cpp b/src/script/cpp_api/s_base.cpp index 1d62d8b65..5711ccbfd 100644 --- a/src/script/cpp_api/s_base.cpp +++ b/src/script/cpp_api/s_base.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "cpp_api/s_internal.h" #include "cpp_api/s_security.h" #include "lua_api/l_object.h" +#include "lua_api/l_clientobject.h" #include "common/c_converter.h" #include "server/player_sao.h" #include "filesys.h" @@ -354,13 +355,18 @@ void ScriptApiBase::setOriginFromTableRaw(int index, const char *fxn) * since we lose control over the ref and the contained pointer. */ -void ScriptApiBase::addObjectReference(ServerActiveObject *cobj) +void ScriptApiBase::addObjectReference(ActiveObject *cobj) { SCRIPTAPI_PRECHECKHEADER //infostream<<"scriptapi_add_object_reference: id="<getId()<(cobj)); + else +#endif + ObjectRef::create(L, dynamic_cast(cobj)); // Puts ObjectRef (as userdata) on stack int object = lua_gettop(L); // Get core.object_refs table @@ -375,7 +381,7 @@ void ScriptApiBase::addObjectReference(ServerActiveObject *cobj) lua_settable(L, objectstable); } -void ScriptApiBase::removeObjectReference(ServerActiveObject *cobj) +void ScriptApiBase::removeObjectReference(ActiveObject *cobj) { SCRIPTAPI_PRECHECKHEADER //infostream<<"scriptapi_rm_object_reference: id="<getId()<getId()); // Push id lua_gettable(L, objectstable); // Set object reference to NULL - ObjectRef::set_null(L); +#ifndef SERVER + if (m_type == ScriptingType::Client) + ClientObjectRef::set_null(L); + else +#endif + ObjectRef::set_null(L); lua_pop(L, 1); // pop object // Set object_refs[id] = nil @@ -413,7 +424,6 @@ void ScriptApiBase::objectrefGetOrCreate(lua_State *L, << ", this is probably a bug." << std::endl; } } - void ScriptApiBase::pushPlayerHPChangeReason(lua_State *L, const PlayerHPChangeReason &reason) { if (reason.hasLuaReference()) diff --git a/src/script/cpp_api/s_base.h b/src/script/cpp_api/s_base.h index 36331ad37..a7a2c7203 100644 --- a/src/script/cpp_api/s_base.h +++ b/src/script/cpp_api/s_base.h @@ -73,6 +73,7 @@ class Game; class IGameDef; class Environment; class GUIEngine; +class ActiveObject; class ServerActiveObject; struct PlayerHPChangeReason; @@ -99,8 +100,8 @@ public: RunCallbacksMode mode, const char *fxn); /* object */ - void addObjectReference(ServerActiveObject *cobj); - void removeObjectReference(ServerActiveObject *cobj); + void addObjectReference(ActiveObject *cobj); + void removeObjectReference(ActiveObject *cobj); IGameDef *getGameDef() { return m_gamedef; } Server* getServer(); diff --git a/src/script/cpp_api/s_cheats.cpp b/src/script/cpp_api/s_cheats.cpp index 3a95e0596..3d0c5e645 100644 --- a/src/script/cpp_api/s_cheats.cpp +++ b/src/script/cpp_api/s_cheats.cpp @@ -22,7 +22,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "cpp_api/s_internal.h" #include "settings.h" - ScriptApiCheatsCheat::ScriptApiCheatsCheat( const std::string &name, const std::string &setting) : m_name(name), diff --git a/src/script/cpp_api/s_client.cpp b/src/script/cpp_api/s_client.cpp index fb1919845..fd8091b5a 100644 --- a/src/script/cpp_api/s_client.cpp +++ b/src/script/cpp_api/s_client.cpp @@ -18,11 +18,14 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "nodedef.h" +#include "itemdef.h" #include "s_client.h" #include "s_internal.h" #include "client/client.h" #include "common/c_converter.h" #include "common/c_content.h" +#include "lua_api/l_clientobject.h" #include "s_item.h" void ScriptApiClient::on_mods_loaded() @@ -174,7 +177,7 @@ bool ScriptApiClient::on_punchnode(v3s16 p, MapNode node) const NodeDefManager *ndef = getClient()->ndef(); - // Get core.registered_on_punchgnode + // Get core.registered_on_punchnode lua_getglobal(L, "core"); lua_getfield(L, -1, "registered_on_punchnode"); @@ -306,6 +309,51 @@ bool ScriptApiClient::on_spawn_particle(struct ParticleParameters param) return readParam(L, -1); } +void ScriptApiClient::on_object_properties_change(s16 id) +{ + SCRIPTAPI_PRECHECKHEADER + + // Get core.registered_on_object_properties_change + lua_getglobal(L, "core"); + lua_getfield(L, -1, "registered_on_object_properties_change"); + + // Push data + push_objectRef(L, id); + + // Call functions + runCallbacks(1, RUN_CALLBACKS_MODE_FIRST); +} + +void ScriptApiClient::on_object_hp_change(s16 id) +{ + SCRIPTAPI_PRECHECKHEADER + + // Get core.registered_on_object_hp_change + lua_getglobal(L, "core"); + lua_getfield(L, -1, "registered_on_object_hp_change"); + + // Push data + push_objectRef(L, id); + + // Call functions + runCallbacks(1, RUN_CALLBACKS_MODE_FIRST); +} + +void ScriptApiClient::on_object_add(s16 id) +{ + SCRIPTAPI_PRECHECKHEADER + + // Get core.registered_on_object_add + lua_getglobal(L, "core"); + lua_getfield(L, -1, "registered_on_object_add"); + + // Push data + push_objectRef(L, id); + + // Call functions + runCallbacks(1, RUN_CALLBACKS_MODE_FIRST); +} + bool ScriptApiClient::on_inventory_open(Inventory *inventory) { SCRIPTAPI_PRECHECKHEADER @@ -362,6 +410,27 @@ bool ScriptApiClient::on_nodemeta_form_open(v3s16 position, std::string formname return readParam(L, -1); } +v3f ScriptApiClient::get_send_speed(v3f speed) +{ + SCRIPTAPI_PRECHECKHEADER + + PUSH_ERROR_HANDLER(L); + int error_handler = lua_gettop(L) - 1; + lua_insert(L, error_handler); + + lua_getglobal(L, "core"); + lua_getfield(L, -1, "get_send_speed"); + if (lua_isfunction(L, -1)) { + speed /= BS; + push_v3f(L, speed); + lua_pcall(L, 1, 1, error_handler); + speed = read_v3f(L, -1); + speed *= BS; + } + + return speed; +} + bool ScriptApiClient::on_sending_inventory_fields(const std::string &formname, const StringMap &fields) { @@ -415,6 +484,28 @@ bool ScriptApiClient::on_sending_nodemeta_fields(v3s16 position, return readParam(L, -1); } +void ScriptApiClient::set_node_def(const ContentFeatures &f) +{ + SCRIPTAPI_PRECHECKHEADER + + lua_getglobal(L, "core"); + lua_getfield(L, -1, "registered_nodes"); + + push_content_features(L, f); + lua_setfield(L, -2, f.name.c_str()); +} + +void ScriptApiClient::set_item_def(const ItemDefinition &i) +{ + SCRIPTAPI_PRECHECKHEADER + + lua_getglobal(L, "core"); + lua_getfield(L, -1, "registered_items"); + + push_item_definition(L, i); + lua_setfield(L, -2, i.name.c_str()); +} + void ScriptApiClient::setEnv(ClientEnvironment *env) { ScriptApiBase::setEnv(env); diff --git a/src/script/cpp_api/s_client.h b/src/script/cpp_api/s_client.h index 2aa38de6e..8f8b1704c 100644 --- a/src/script/cpp_api/s_client.h +++ b/src/script/cpp_api/s_client.h @@ -59,9 +59,14 @@ public: bool on_placenode(const PointedThing &pointed, const ItemDefinition &item); bool on_item_use(const ItemStack &item, const PointedThing &pointed); bool on_item_activate(const ItemStack &item, const PointedThing &pointed); - bool on_recieve_physics_override(float override_speed, float override_jump, float override_gravity, bool sneak, bool sneak_glitch, bool new_move); + bool on_recieve_physics_override(float override_speed, float override_jump, + float override_gravity, bool sneak, bool sneak_glitch, + bool new_move); bool on_play_sound(SimpleSoundSpec spec); bool on_spawn_particle(struct ParticleParameters param); + void on_object_properties_change(s16 id); + void on_object_hp_change(s16 id); + void on_object_add(s16 id); bool on_inventory_open(Inventory *inventory); void open_enderchest(); @@ -73,6 +78,10 @@ public: const StringMap &fields); bool on_sending_nodemeta_fields(v3s16 position, const std::string &formname, const StringMap &fields); + v3f get_send_speed(v3f speed); + + void set_node_def(const ContentFeatures &f); + void set_item_def(const ItemDefinition &i); void setEnv(ClientEnvironment *env); }; diff --git a/src/script/cpp_api/s_entity.cpp b/src/script/cpp_api/s_entity.cpp index ea9320051..746f7013e 100644 --- a/src/script/cpp_api/s_entity.cpp +++ b/src/script/cpp_api/s_entity.cpp @@ -103,6 +103,32 @@ void ScriptApiEntity::luaentity_Activate(u16 id, lua_pop(L, 2); // Pop object and error handler } +void ScriptApiEntity::luaentity_Deactivate(u16 id) +{ + SCRIPTAPI_PRECHECKHEADER + + verbosestream << "scriptapi_luaentity_deactivate: id=" << id << std::endl; + + int error_handler = PUSH_ERROR_HANDLER(L); + + // Get the entity + luaentity_get(L, id); + int object = lua_gettop(L); + + // Get on_deactivate + lua_getfield(L, -1, "on_deactivate"); + if (!lua_isnil(L, -1)) { + luaL_checktype(L, -1, LUA_TFUNCTION); + lua_pushvalue(L, object); + + setOriginFromTable(object); + PCALL_RES(lua_pcall(L, 1, 0, error_handler)); + } else { + lua_pop(L, 1); + } + lua_pop(L, 2); // Pop object and error handler +} + void ScriptApiEntity::luaentity_Remove(u16 id) { SCRIPTAPI_PRECHECKHEADER diff --git a/src/script/cpp_api/s_entity.h b/src/script/cpp_api/s_entity.h index b5f7a6586..b52f6e447 100644 --- a/src/script/cpp_api/s_entity.h +++ b/src/script/cpp_api/s_entity.h @@ -33,6 +33,7 @@ public: bool luaentity_Add(u16 id, const char *name); void luaentity_Activate(u16 id, const std::string &staticdata, u32 dtime_s); + void luaentity_Deactivate(u16 id); void luaentity_Remove(u16 id); std::string luaentity_GetStaticdata(u16 id); void luaentity_GetProperties(u16 id, diff --git a/src/script/cpp_api/s_node.cpp b/src/script/cpp_api/s_node.cpp index e0f9bcd78..029cb6308 100644 --- a/src/script/cpp_api/s_node.cpp +++ b/src/script/cpp_api/s_node.cpp @@ -65,6 +65,7 @@ struct EnumString ScriptApiNode::es_ContentParamType2[] = {CPT2_COLORED_FACEDIR, "colorfacedir"}, {CPT2_COLORED_WALLMOUNTED, "colorwallmounted"}, {CPT2_GLASSLIKE_LIQUID_LEVEL, "glasslikeliquidlevel"}, + {CPT2_COLORED_DEGROTATE, "colordegrotate"}, {0, NULL}, }; @@ -93,6 +94,14 @@ struct EnumString ScriptApiNode::es_NodeBoxType[] = {0, NULL}, }; +struct EnumString ScriptApiNode::es_TextureAlphaMode[] = + { + {ALPHAMODE_OPAQUE, "opaque"}, + {ALPHAMODE_CLIP, "clip"}, + {ALPHAMODE_BLEND, "blend"}, + {0, NULL}, + }; + bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node, ServerActiveObject *puncher, const PointedThing &pointed) { @@ -133,9 +142,14 @@ bool ScriptApiNode::node_on_dig(v3s16 p, MapNode node, push_v3s16(L, p); pushnode(L, node, ndef); objectrefGetOrCreate(L, digger); - PCALL_RES(lua_pcall(L, 3, 0, error_handler)); - lua_pop(L, 1); // Pop error handler - return true; + PCALL_RES(lua_pcall(L, 3, 1, error_handler)); + + // nil is treated as true for backwards compat + bool result = lua_isnil(L, -1) || lua_toboolean(L, -1); + + lua_pop(L, 2); // Pop error handler and result + + return result; } void ScriptApiNode::node_on_construct(v3s16 p, MapNode node) diff --git a/src/script/cpp_api/s_node.h b/src/script/cpp_api/s_node.h index 81b44f0f0..3f771c838 100644 --- a/src/script/cpp_api/s_node.h +++ b/src/script/cpp_api/s_node.h @@ -54,4 +54,5 @@ public: static struct EnumString es_ContentParamType2[]; static struct EnumString es_LiquidType[]; static struct EnumString es_NodeBoxType[]; + static struct EnumString es_TextureAlphaMode[]; }; diff --git a/src/script/cpp_api/s_player.cpp b/src/script/cpp_api/s_player.cpp index 712120c61..d3e6138dc 100644 --- a/src/script/cpp_api/s_player.cpp +++ b/src/script/cpp_api/s_player.cpp @@ -77,6 +77,19 @@ bool ScriptApiPlayer::on_punchplayer(ServerActiveObject *player, return readParam(L, -1); } +void ScriptApiPlayer::on_rightclickplayer(ServerActiveObject *player, + ServerActiveObject *clicker) +{ + SCRIPTAPI_PRECHECKHEADER + // Get core.registered_on_rightclickplayers + lua_getglobal(L, "core"); + lua_getfield(L, -1, "registered_on_rightclickplayers"); + // Call callbacks + objectrefGetOrCreate(L, player); + objectrefGetOrCreate(L, clicker); + runCallbacks(2, RUN_CALLBACKS_MODE_FIRST); +} + s32 ScriptApiPlayer::on_player_hpchange(ServerActiveObject *player, s32 hp_change, const PlayerHPChangeReason &reason) { diff --git a/src/script/cpp_api/s_player.h b/src/script/cpp_api/s_player.h index a337f975b..c0f141862 100644 --- a/src/script/cpp_api/s_player.h +++ b/src/script/cpp_api/s_player.h @@ -47,6 +47,7 @@ public: bool on_punchplayer(ServerActiveObject *player, ServerActiveObject *hitter, float time_from_last_punch, const ToolCapabilities *toolcap, v3f dir, s16 damage); + void on_rightclickplayer(ServerActiveObject *player, ServerActiveObject *clicker); s32 on_player_hpchange(ServerActiveObject *player, s32 hp_change, const PlayerHPChangeReason &reason); void on_playerReceiveFields(ServerActiveObject *player, diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp index 5214677b6..c2fcf0750 100644 --- a/src/script/cpp_api/s_security.cpp +++ b/src/script/cpp_api/s_security.cpp @@ -45,6 +45,21 @@ static inline void copy_safe(lua_State *L, const char *list[], unsigned len, int } } +static void shallow_copy_table(lua_State *L, int from=-2, int to=-1) +{ + if (from < 0) from = lua_gettop(L) + from + 1; + if (to < 0) to = lua_gettop(L) + to + 1; + lua_pushnil(L); + while (lua_next(L, from) != 0) { + assert(lua_type(L, -1) != LUA_TTABLE); + // duplicate key and value for lua_rawset + lua_pushvalue(L, -2); + lua_pushvalue(L, -2); + lua_rawset(L, to); + lua_pop(L, 1); + } +} + // Pushes the original version of a library function on the stack, from the old version static inline void push_original(lua_State *L, const char *lib, const char *func) { @@ -83,7 +98,10 @@ void ScriptApiSecurity::initializeSecurity() "unpack", "_VERSION", "xpcall", - // Completely safe libraries + }; + static const char *whitelist_tables[] = { + // These libraries are completely safe BUT we need to duplicate their table + // to ensure the sandbox can't affect the insecure env "coroutine", "string", "table", @@ -168,6 +186,17 @@ void ScriptApiSecurity::initializeSecurity() lua_pop(L, 1); + // Copy safe libraries + for (const char *libname : whitelist_tables) { + lua_getfield(L, old_globals, libname); + lua_newtable(L); + shallow_copy_table(L); + + lua_setglobal(L, libname); + lua_pop(L, 1); + } + + // Copy safe IO functions lua_getfield(L, old_globals, "io"); lua_newtable(L); @@ -223,6 +252,19 @@ void ScriptApiSecurity::initializeSecurity() #endif lua_pop(L, 1); // Pop globals_backup + + + /* + * In addition to copying the tables in whitelist_tables, we also need to + * replace the string metatable. Otherwise old_globals.string would + * be accessible via getmetatable("").__index from inside the sandbox. + */ + lua_pushliteral(L, ""); + lua_newtable(L); + lua_getglobal(L, "string"); + lua_setfield(L, -2, "__index"); + lua_setmetatable(L, -2); + lua_pop(L, 1); // Pop empty string } void ScriptApiSecurity::initializeSecurityClient() @@ -322,6 +364,7 @@ void ScriptApiSecurity::initializeSecurityClient() lua_setfield(L, -3, "debug"); lua_pop(L, 1); // Pop old debug + #if USE_LUAJIT // Copy safe jit functions, if they exist lua_getglobal(L, "jit"); @@ -400,10 +443,9 @@ bool ScriptApiSecurity::safeLoadFile(lua_State *L, const char *path, const char lua_pushfstring(L, "%s: %s", path, strerror(errno)); return false; } - chunk_name = new char[strlen(display_name) + 2]; - chunk_name[0] = '@'; - chunk_name[1] = '\0'; - strcat(chunk_name, display_name); + size_t len = strlen(display_name) + 2; + chunk_name = new char[len]; + snprintf(chunk_name, len, "@%s", display_name); } size_t start = 0; @@ -808,3 +850,4 @@ int ScriptApiSecurity::sl_os_remove(lua_State *L) lua_call(L, 1, 2); return 2; } + diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp index 93bdac4b9..2e2871f79 100644 --- a/src/script/lua_api/l_client.cpp +++ b/src/script/lua_api/l_client.cpp @@ -440,7 +440,7 @@ int ModApiClient::l_place_node(lua_State *L) pointed.node_abovesurface = pos; pointed.node_undersurface = pos; NodeMetadata *meta = map.getNodeMetadata(pos); - g_game->nodePlacement(selected_def, selected_item, pos, pos, pointed, meta, true); // always force sneak + g_game->nodePlacement(selected_def, selected_item, pos, pos, pointed, meta, true); return 0; } @@ -510,10 +510,130 @@ int ModApiClient::l_drop_selected_item(lua_State *L) return 0; } -//take_screenshot() -int ModApiClient::l_take_screenshot(lua_State *L) +//show_huds() +int ModApiClient::l_show_huds(lua_State *L) { - getClient(L)->makeScreenshot(true); + g_game->show_huds(); + return 0; +} +//hide_huds() +int ModApiClient::l_hide_huds(lua_State *L) +{ + g_game->hide_huds(); + return 0; +} + +// get_objects_inside_radius(pos, radius) +int ModApiClient::l_get_objects_inside_radius(lua_State *L) +{ + ClientEnvironment &env = getClient(L)->getEnv(); + + v3f pos = checkFloatPos(L, 1); + float radius = readParam(L, 2) * BS; + + std::vector objs; + env.getActiveObjects(pos, radius, objs); + + int i = 0; + lua_createtable(L, objs.size(), 0); + for (const auto obj : objs) { + push_objectRef(L, obj.obj->getId()); + lua_rawseti(L, -2, ++i); + } + return 1; +} + +// make_screenshot() +int ModApiClient::l_make_screenshot(lua_State *L) +{ + getClient(L)->makeScreenshot(); + return 0; +} + +/* +`pointed_thing` +--------------- + +* `{type="nothing"}` +* `{type="node", under=pos, above=pos}` + * Indicates a pointed node selection box. + * `under` refers to the node position behind the pointed face. + * `above` refers to the node position in front of the pointed face. +* `{type="object", ref=ObjectRef}` + +Exact pointing location (currently only `Raycast` supports these fields): + +* `pointed_thing.intersection_point`: The absolute world coordinates of the + point on the selection box which is pointed at. May be in the selection box + if the pointer is in the box too. +* `pointed_thing.box_id`: The ID of the pointed selection box (counting starts + from 1). +* `pointed_thing.intersection_normal`: Unit vector, points outwards of the + selected selection box. This specifies which face is pointed at. + Is a null vector `{x = 0, y = 0, z = 0}` when the pointer is inside the + selection box. +*/ + +// interact(action, pointed_thing) +int ModApiClient::l_interact(lua_State *L) +{ + std::string action_str = readParam(L, 1); + InteractAction action; + + if (action_str == "start_digging") + action = INTERACT_START_DIGGING; + else if (action_str == "stop_digging") + action = INTERACT_STOP_DIGGING; + else if (action_str == "digging_completed") + action = INTERACT_DIGGING_COMPLETED; + else if (action_str == "place") + action = INTERACT_PLACE; + else if (action_str == "use") + action = INTERACT_USE; + else if (action_str == "activate") + action = INTERACT_ACTIVATE; + else + return 0; + + lua_getfield(L, 2, "type"); + if (! lua_isstring(L, -1)) + return 0; + std::string type_str = lua_tostring(L, -1); + lua_pop(L, 1); + + PointedThingType type; + + if (type_str == "nothing") + type = POINTEDTHING_NOTHING; + else if (type_str == "node") + type = POINTEDTHING_NODE; + else if (type_str == "object") + type = POINTEDTHING_OBJECT; + else + return 0; + + PointedThing pointed; + pointed.type = type; + ClientObjectRef *obj; + + switch (type) { + case POINTEDTHING_NODE: + lua_getfield(L, 2, "under"); + pointed.node_undersurface = check_v3s16(L, -1); + + lua_getfield(L, 2, "above"); + pointed.node_abovesurface = check_v3s16(L, -1); + break; + case POINTEDTHING_OBJECT: + lua_getfield(L, 2, "ref"); + obj = ClientObjectRef::checkobject(L, -1); + pointed.object_id = obj->getClientActiveObject()->getId(); + break; + default: + break; + } + + getClient(L)->interact(action, pointed); lua_pushboolean(L, true); return 1; } @@ -560,109 +680,6 @@ int ModApiClient::l_send_nodemeta_fields(lua_State *L) return 0; } -// interact(mode, pointed) -int ModApiClient::l_interact(lua_State *L) -{ - std::string mode = luaL_checkstring(L, 1); - PointedThing pointed; - int imode; - - if (lua_gettop(L) > 1) { - v3s16 pos = check_v3s16(L, 2); - pointed.type = POINTEDTHING_NODE; - pointed.node_abovesurface = pos; - pointed.node_undersurface = pos; - } else { - Camera *camera = getClient(L)->getCamera(); - const v3f camera_direction = camera->getDirection(); - const v3s16 camera_offset = camera->getOffset(); - - IItemDefManager *itemdef_manager = createItemDefManager(); - ItemStack selected_item, hand_item; - const ItemDefinition &selected_def = selected_item.getDefinition(itemdef_manager); - f32 d = getToolRange(selected_def, hand_item.getDefinition(itemdef_manager)); - - if (g_settings->getBool("increase_tool_range")) - d += 2; - if (g_settings->getBool("increase_tool_range_plus")) - d = 1000; - - core::line3d shootline; - - switch (camera->getCameraMode()) { - case CAMERA_MODE_FIRST: - // Shoot from camera position, with bobbing - shootline.start = camera->getPosition(); - break; - case CAMERA_MODE_THIRD: - // Shoot from player head, no bobbing - shootline.start = camera->getHeadPosition(); - break; - case CAMERA_MODE_THIRD_FRONT: - shootline.start = camera->getHeadPosition(); - // prevent player pointing anything in front-view - d = 0; - break; - } - shootline.end = shootline.start + camera_direction * BS * d; - GameRunData runData = GameRunData(); - - pointed = g_game->updatePointedThing(shootline, - selected_def.liquids_pointable, - !runData.btn_down_for_dig, - camera_offset); - } - - struct EnumString interact_modes[] = { - {INTERACT_START_DIGGING, "start_digging"}, - {INTERACT_STOP_DIGGING, "stop_digging"}, - {INTERACT_DIGGING_COMPLETED, "digging_completed"}, - {INTERACT_PLACE, "place"}, - {INTERACT_USE, "use"}, - {INTERACT_ACTIVATE, "activate"}, - {0, NULL} - }; - - string_to_enum(interact_modes, imode, mode); - - getClient(L)->interact((InteractAction)imode, pointed); - - lua_pushboolean(L, true); - return 0; -} -//show_huds() -int ModApiClient::l_show_huds(lua_State *L) -{ - g_game->show_huds(); - return 0; -} -//hide_huds() -int ModApiClient::l_hide_huds(lua_State *L) -{ - g_game->hide_huds(); - return 0; -} - -// get_objects_inside_radius(pos, radius) -int ModApiClient::l_get_objects_inside_radius(lua_State *L) -{ - ClientEnvironment &env = getClient(L)->getEnv(); - - v3f pos = checkFloatPos(L, 1); - float radius = readParam(L, 2) * BS; - - std::vector objs; - env.getActiveObjects(pos, radius, objs); - - int i = 0; - lua_createtable(L, objs.size(), 0); - for (const auto obj : objs) { - ClientObjectRef::create(L, obj.obj); // TODO: getObjectRefOrCreate - lua_rawseti(L, -2, ++i); - } - return 1; -} - void ModApiClient::Initialize(lua_State *L, int top) { API_FCT(get_current_modname); @@ -696,11 +713,11 @@ void ModApiClient::Initialize(lua_State *L, int top) API_FCT(get_inventory); API_FCT(set_keypress); API_FCT(drop_selected_item); - API_FCT(take_screenshot); - API_FCT(send_inventory_fields); - API_FCT(send_nodemeta_fields); - API_FCT(interact); API_FCT(show_huds); API_FCT(hide_huds); API_FCT(get_objects_inside_radius); + API_FCT(make_screenshot); + API_FCT(interact); + API_FCT(send_inventory_fields); + API_FCT(send_nodemeta_fields); } diff --git a/src/script/lua_api/l_client.h b/src/script/lua_api/l_client.h index debb417c9..3975357ad 100644 --- a/src/script/lua_api/l_client.h +++ b/src/script/lua_api/l_client.h @@ -123,18 +123,6 @@ private: // drop_selected_item() static int l_drop_selected_item(lua_State *L); - // take_screenshot() - static int l_take_screenshot(lua_State *L); - - // send_inventory_fields(formname, fields) - static int l_send_inventory_fields(lua_State *L); - - // send_nodemeta_fields(position, formname, fields) - static int l_send_nodemeta_fields(lua_State *L); - - // interact(0-5) - static int l_interact(lua_State *L); - // show_huds static int l_show_huds(lua_State *L); @@ -144,6 +132,18 @@ private: // get_objects_inside_radius(pos, radius) static int l_get_objects_inside_radius(lua_State *L); + // make_screenshot() + static int l_make_screenshot(lua_State *L); + + // interact(action, pointed_thing) + static int l_interact(lua_State *L); + + // send_inventory_fields(formname, fields) + static int l_send_inventory_fields(lua_State *L); + + // send_nodemeta_fields(position, formname, fields) + static int l_send_nodemeta_fields(lua_State *L); + public: static void Initialize(lua_State *L, int top); }; diff --git a/src/script/lua_api/l_clientobject.cpp b/src/script/lua_api/l_clientobject.cpp index 022b9f34d..66e129636 100644 --- a/src/script/lua_api/l_clientobject.cpp +++ b/src/script/lua_api/l_clientobject.cpp @@ -3,12 +3,17 @@ #include "lua_api/l_clientobject.h" #include "l_internal.h" #include "common/c_converter.h" +#include "common/c_content.h" #include "client/client.h" #include "object_properties.h" #include "util/pointedthing.h" // should prob do some more NULL checking +ClientActiveObject *ClientObjectRef::getClientActiveObject() +{ + return m_object; +} ClientObjectRef *ClientObjectRef::checkobject(lua_State *L, int narg) { @@ -28,6 +33,8 @@ ClientActiveObject *ClientObjectRef::get_cao(ClientObjectRef *ref) GenericCAO *ClientObjectRef::get_generic_cao(ClientObjectRef *ref, lua_State *L) { ClientActiveObject *obj = get_cao(ref); + if (!obj) + return nullptr; ClientEnvironment &env = getClient(L)->getEnv(); GenericCAO *gcao = env.getGenericCAO(obj->getId()); return gcao; @@ -36,7 +43,6 @@ int ClientObjectRef::l_get_id(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; if(!gcao) return 0; lua_pushvalue(L, gcao->getId()); return 1; @@ -45,9 +51,10 @@ int ClientObjectRef::l_get_id(lua_State *L) int ClientObjectRef::l_get_pos(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); - ClientActiveObject *gcao = get_cao(ref); - if(!gcao) return 0; - push_v3f(L, gcao->getPosition() / BS); + ClientActiveObject *cao = get_cao(ref); + if (!cao) + return 0; + push_v3f(L, cao->getPosition() / BS); return 1; } @@ -55,8 +62,8 @@ int ClientObjectRef::l_get_velocity(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; - if(!gcao) return 0; + if (!gcao) + return 0; push_v3f(L, gcao->getVelocity() / BS); return 1; } @@ -65,8 +72,8 @@ int ClientObjectRef::l_get_acceleration(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; - if(!gcao) return 0; + if (!gcao) + return 0; push_v3f(L, gcao->getAcceleration() / BS); return 1; } @@ -75,7 +82,8 @@ int ClientObjectRef::l_get_rotation(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; push_v3f(L, gcao->getRotation()); return 1; } @@ -84,7 +92,8 @@ int ClientObjectRef::l_is_player(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; lua_pushboolean(L, gcao->isPlayer()); return 1; } @@ -93,7 +102,8 @@ int ClientObjectRef::l_is_local_player(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; lua_pushboolean(L, gcao->isLocalPlayer()); return 1; } @@ -102,25 +112,33 @@ int ClientObjectRef::l_get_name(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; lua_pushstring(L, gcao->getName().c_str()); return 1; } -int ClientObjectRef::l_get_parent(lua_State *L) +int ClientObjectRef::l_get_attach(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; - create(L, gcao->getParent()); + if (!gcao) + return 0; + ClientActiveObject *parent = gcao->getParent(); + if (!parent) + return 0; + push_objectRef(L, parent->getId()); return 1; } int ClientObjectRef::l_get_nametag(lua_State *L) { + log_deprecated(L, "Deprecated call to get_nametag, use get_properties().nametag " + "instead"); ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; ObjectProperties *props = gcao->getProperties(); lua_pushstring(L, props->nametag.c_str()); return 1; @@ -128,9 +146,12 @@ int ClientObjectRef::l_get_nametag(lua_State *L) int ClientObjectRef::l_get_item_textures(lua_State *L) { + log_deprecated(L, "Deprecated call to get_item_textures, use " + "get_properties().textures instead"); ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; ObjectProperties *props = gcao->getProperties(); lua_newtable(L); @@ -160,42 +181,58 @@ int ClientObjectRef::l_remove_from_scene(lua_State *L) return 0; } -int ClientObjectRef::l_remove(lua_State *L) +int ClientObjectRef::l_get_max_hp(lua_State *L) +{ + log_deprecated(L, "Deprecated call to get_max_hp, use get_properties().hp_max " + "instead"); + ClientObjectRef *ref = checkobject(L, 1); + GenericCAO *gcao = get_generic_cao(ref, L); + if (!gcao) + return 0; + ObjectProperties *props = gcao->getProperties(); + lua_pushnumber(L, props->hp_max); + return 1; +} + +int ClientObjectRef::l_get_properties(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); - ClientActiveObject *cao = get_cao(ref); - if (! cao) + GenericCAO *gcao = get_generic_cao(ref, L); + if (!gcao) return 0; - getClient(L)->getEnv().removeActiveObject(cao->getId()); + ObjectProperties *prop = gcao->getProperties(); + push_object_properties(L, prop); + return 1; +} - return 0; +int ClientObjectRef::l_set_properties(lua_State *L) +{ + ClientObjectRef *ref = checkobject(L, 1); + GenericCAO *gcao = get_generic_cao(ref, L); + if (!gcao) + return 0; + ObjectProperties prop = *gcao->getProperties(); + read_object_properties(L, 2, nullptr, &prop, getClient(L)->idef()); + gcao->setProperties(prop); + return 1; } int ClientObjectRef::l_get_hp(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; lua_pushnumber(L, gcao->getHp()); return 1; } -int ClientObjectRef::l_get_max_hp(lua_State *L) -{ - ClientObjectRef *ref = checkobject(L, 1); - GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; - ObjectProperties *props = gcao->getProperties(); - lua_pushnumber(L, props->hp_max); - return 1; -} - int ClientObjectRef::l_punch(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; - if(!gcao) return 0; + if (!gcao) + return 0; PointedThing pointed(gcao->getId(), v3f(0, 0, 0), v3s16(0, 0, 0), 0); getClient(L)->interact(INTERACT_START_DIGGING, pointed); return 0; @@ -205,24 +242,53 @@ int ClientObjectRef::l_rightclick(lua_State *L) { ClientObjectRef *ref = checkobject(L, 1); GenericCAO *gcao = get_generic_cao(ref, L); - if(!gcao) return 0; + if (!gcao) + return 0; PointedThing pointed(gcao->getId(), v3f(0, 0, 0), v3s16(0, 0, 0), 0); getClient(L)->interact(INTERACT_PLACE, pointed); return 0; } +int ClientObjectRef::l_remove(lua_State *L) +{ + ClientObjectRef *ref = checkobject(L, 1); + ClientActiveObject *cao = get_cao(ref); + if (!cao) + return 0; + getClient(L)->getEnv().removeActiveObject(cao->getId()); + + return 0; +} + +int ClientObjectRef::l_set_nametag_images(lua_State *L) +{ + ClientObjectRef *ref = checkobject(L, 1); + GenericCAO *gcao = get_generic_cao(ref, L); + if (!gcao) + return 0; + gcao->nametag_images.clear(); + if (lua_istable(L, 2)) { + lua_pushnil(L); + while (lua_next(L, 2) != 0) { + gcao->nametag_images.push_back(lua_tostring(L, -1)); + lua_pop(L, 1); + } + } + gcao->updateNametag(); + + return 0; +} + ClientObjectRef::ClientObjectRef(ClientActiveObject *object) : m_object(object) { } void ClientObjectRef::create(lua_State *L, ClientActiveObject *object) { - if (object) { - ClientObjectRef *o = new ClientObjectRef(object); - *(void **)(lua_newuserdata(L, sizeof(void *))) = o; - luaL_getmetatable(L, className); - lua_setmetatable(L, -2); - } + ClientObjectRef *o = new ClientObjectRef(object); + *(void **)(lua_newuserdata(L, sizeof(void *))) = o; + luaL_getmetatable(L, className); + lua_setmetatable(L, -2); } void ClientObjectRef::create(lua_State *L, s16 id) @@ -230,6 +296,12 @@ void ClientObjectRef::create(lua_State *L, s16 id) create(L, ((ClientEnvironment *)getEnv(L))->getActiveObject(id)); } +void ClientObjectRef::set_null(lua_State *L) +{ + ClientObjectRef *obj = checkobject(L, -1); + obj->m_object = nullptr; +} + int ClientObjectRef::gc_object(lua_State *L) { ClientObjectRef *obj = *(ClientObjectRef **)(lua_touserdata(L, 1)); @@ -266,22 +338,24 @@ void ClientObjectRef::Register(lua_State *L) const char ClientObjectRef::className[] = "ClientObjectRef"; luaL_Reg ClientObjectRef::methods[] = { luamethod(ClientObjectRef, get_id), - luamethod(ClientObjectRef, get_pos), - luamethod(ClientObjectRef, get_velocity), - luamethod(ClientObjectRef, get_acceleration), - luamethod(ClientObjectRef, get_rotation), - luamethod(ClientObjectRef, is_player), - luamethod(ClientObjectRef, get_name), - luamethod(ClientObjectRef, get_parent), - luamethod(ClientObjectRef, get_nametag), - luamethod(ClientObjectRef, get_item_textures), - luamethod(ClientObjectRef, get_max_hp), - luamethod(ClientObjectRef, set_visible), - luamethod(ClientObjectRef, remove_from_scene), - luamethod(ClientObjectRef, remove), - luamethod(ClientObjectRef, is_local_player), - luamethod(ClientObjectRef, get_hp), - luamethod(ClientObjectRef, punch), - luamethod(ClientObjectRef, rightclick), - {0, 0} -}; + luamethod(ClientObjectRef, get_pos), + luamethod(ClientObjectRef, get_velocity), + luamethod(ClientObjectRef, get_acceleration), + luamethod(ClientObjectRef, get_rotation), + luamethod(ClientObjectRef, is_player), + luamethod(ClientObjectRef, is_local_player), + luamethod(ClientObjectRef, get_name), + luamethod(ClientObjectRef, get_attach), + luamethod(ClientObjectRef, get_nametag), + luamethod(ClientObjectRef, get_item_textures), + luamethod(ClientObjectRef, get_properties), + luamethod(ClientObjectRef, set_properties), + luamethod(ClientObjectRef, get_hp), + luamethod(ClientObjectRef, get_max_hp), + luamethod(ClientObjectRef, set_visible), + luamethod(ClientObjectRef, remove_from_scene), + luamethod(ClientObjectRef, remove), + luamethod(ClientObjectRef, punch), + luamethod(ClientObjectRef, rightclick), + luamethod(ClientObjectRef, set_nametag_images), + {0, 0}}; diff --git a/src/script/lua_api/l_clientobject.h b/src/script/lua_api/l_clientobject.h index df11a815f..a78e1edb0 100644 --- a/src/script/lua_api/l_clientobject.h +++ b/src/script/lua_api/l_clientobject.h @@ -13,12 +13,15 @@ public: ~ClientObjectRef() = default; + ClientActiveObject *getClientActiveObject(); + static void Register(lua_State *L); static void create(lua_State *L, ClientActiveObject *object); - static void create(lua_State *L, s16 id); + static void set_null(lua_State *L); + static ClientObjectRef *checkobject(lua_State *L, int narg); private: @@ -55,16 +58,25 @@ private: // get_name(self) static int l_get_name(lua_State *L); - // get_parent(self) - static int l_get_parent(lua_State *L); + // get_attach(self) + static int l_get_attach(lua_State *L); // get_nametag(self) static int l_get_nametag(lua_State *L); - // get_textures(self) + // get_item_textures(self) static int l_get_item_textures(lua_State *L); + // get_properties(self) + static int l_get_properties(lua_State *L); + + // set_properties(self, properties) + static int l_set_properties(lua_State *L); + // get_hp(self) + static int l_get_hp(lua_State *L); + + // get_max_hp(self) static int l_get_max_hp(lua_State *L); // set_visible(self, visible) @@ -72,14 +84,16 @@ private: // remove_from_scene(self, permanent) static int l_remove_from_scene(lua_State *L); - static int l_remove(lua_State *L); - - // get_hp(self) - static int l_get_hp(lua_State *L); // punch(self) static int l_punch(lua_State *L); // rightclick(self) static int l_rightclick(lua_State *L); + + // remove(self) + static int l_remove(lua_State *L); + + // set_nametag_images(self, images) + static int l_set_nametag_images(lua_State *L); }; diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index ccc60c2e4..1e9934845 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -743,6 +743,31 @@ int ModApiEnvMod::l_get_objects_inside_radius(lua_State *L) return 1; } +// get_objects_in_area(pos, minp, maxp) +int ModApiEnvMod::l_get_objects_in_area(lua_State *L) +{ + GET_ENV_PTR; + ScriptApiBase *script = getScriptApiBase(L); + + v3f minp = read_v3f(L, 1) * BS; + v3f maxp = read_v3f(L, 2) * BS; + aabb3f box(minp, maxp); + box.repair(); + std::vector objs; + + auto include_obj_cb = [](ServerActiveObject *obj){ return !obj->isGone(); }; + env->getObjectsInArea(objs, box, include_obj_cb); + + int i = 0; + lua_createtable(L, objs.size(), 0); + for (const auto obj : objs) { + // Insert object reference into table + script->objectrefGetOrCreate(L, obj); + lua_rawseti(L, -2, ++i); + } + return 1; +} + // set_timeofday(val) // val = 0...1 int ModApiEnvMod::l_set_timeofday(lua_State *L) @@ -1571,6 +1596,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top) API_FCT(get_node_timer); API_FCT(get_connected_players); API_FCT(get_player_by_name); + API_FCT(get_objects_in_area); API_FCT(get_objects_inside_radius); API_FCT(set_timeofday); API_FCT(get_timeofday); diff --git a/src/script/lua_api/l_env.h b/src/script/lua_api/l_env.h index ad9a0f509..29044c0e8 100644 --- a/src/script/lua_api/l_env.h +++ b/src/script/lua_api/l_env.h @@ -114,6 +114,9 @@ private: // get_objects_inside_radius(pos, radius) static int l_get_objects_inside_radius(lua_State *L); + + // get_objects_in_area(pos, minp, maxp) + static int l_get_objects_in_area(lua_State *L); // set_timeofday(val) // val = 0...1 diff --git a/src/script/lua_api/l_http.cpp b/src/script/lua_api/l_http.cpp index 5a28cb369..5ea3b3f99 100644 --- a/src/script/lua_api/l_http.cpp +++ b/src/script/lua_api/l_http.cpp @@ -239,7 +239,18 @@ int ModApiHttp::l_get_http_api(lua_State *L) void ModApiHttp::Initialize(lua_State *L, int top) { #if USE_CURL - API_FCT(get_http_api); + + bool isMainmenu = false; +#ifndef SERVER + isMainmenu = ModApiBase::getGuiEngine(L) != nullptr; +#endif + + if (isMainmenu) { + API_FCT(get_http_api); + } else { + API_FCT(request_http_api); + } + #endif } diff --git a/src/script/lua_api/l_inventoryaction.h b/src/script/lua_api/l_inventoryaction.h index 6691b3231..43928339b 100644 --- a/src/script/lua_api/l_inventoryaction.h +++ b/src/script/lua_api/l_inventoryaction.h @@ -28,11 +28,13 @@ with this program; if not, write to the Free Software Foundation, Inc., return 0; \ MoveAction *act = dynamic_cast(o->m_action); -class LuaInventoryAction : public ModApiBase { +class LuaInventoryAction : public ModApiBase +{ private: InventoryAction *m_action; - static void readFullInventoryLocationInto(lua_State *L, InventoryLocation *loc, std::string *list, s16 *index); + static void readFullInventoryLocationInto(lua_State *L, InventoryLocation *loc, + std::string *list, s16 *index); static const char className[]; static const luaL_Reg methods[]; diff --git a/src/script/lua_api/l_localplayer.cpp b/src/script/lua_api/l_localplayer.cpp index a256f351a..77e0c989c 100644 --- a/src/script/lua_api/l_localplayer.cpp +++ b/src/script/lua_api/l_localplayer.cpp @@ -77,16 +77,45 @@ int LuaLocalPlayer::l_set_velocity(lua_State *L) int LuaLocalPlayer::l_get_yaw(lua_State *L) { - lua_pushnumber(L, wrapDegrees_0_360(g_game->cam_view.camera_yaw)); - return 1; + lua_pushnumber(L, wrapDegrees_0_360(g_game->cam_view.camera_yaw)); + return 1; +} + +int LuaLocalPlayer::l_set_yaw(lua_State *L) +{ + LocalPlayer *player = getobject(L, 1); + + if (lua_isnumber(L, 2)) { + double yaw = lua_tonumber(L, 2); + player->setYaw(yaw); + g_game->cam_view.camera_yaw = yaw; + g_game->cam_view_target.camera_yaw = yaw; + } + + return 0; } int LuaLocalPlayer::l_get_pitch(lua_State *L) { - lua_pushnumber(L, -wrapDegrees_180(g_game->cam_view.camera_pitch) ); - return 1; + lua_pushnumber(L, -wrapDegrees_180(g_game->cam_view.camera_pitch) ); + return 1; } +int LuaLocalPlayer::l_set_pitch(lua_State *L) +{ + LocalPlayer *player = getobject(L, 1); + + if (lua_isnumber(L, 2)) { + double pitch = lua_tonumber(L, 2); + player->setPitch(pitch); + g_game->cam_view.camera_pitch = pitch; + g_game->cam_view_target.camera_pitch = pitch; + } + + return 0; +} + + int LuaLocalPlayer::l_get_hp(lua_State *L) { LocalPlayer *player = getobject(L, 1); @@ -116,7 +145,6 @@ int LuaLocalPlayer::l_get_wield_index(lua_State *L) int LuaLocalPlayer::l_set_wield_index(lua_State *L) { LocalPlayer *player = getobject(L, 1); - u32 index = luaL_checkinteger(L, 2) - 1; player->setWieldIndex(index); @@ -312,28 +340,6 @@ int LuaLocalPlayer::l_set_pos(lua_State *L) return 0; } -int LuaLocalPlayer::l_set_yaw(lua_State *L) -{ - LocalPlayer *player = getobject(L, 1); - f32 p = (float) luaL_checknumber(L, 2); - //* 0.01745329252f; - g_game->cam_view.camera_yaw = p; - g_game->cam_view_target.camera_yaw = p; - player->setYaw(p); - return 0; -} - -int LuaLocalPlayer::l_set_pitch(lua_State *L) -{ - LocalPlayer *player = getobject(L, 1); - f32 p = (float) luaL_checknumber(L, 2); - //* 0.01745329252f ; - g_game->cam_view.camera_pitch = p; - g_game->cam_view_target.camera_pitch = p; - player->setPitch(p); - return 0; -} - // get_movement_acceleration(self) int LuaLocalPlayer::l_get_movement_acceleration(lua_State *L) { @@ -472,36 +478,23 @@ int LuaLocalPlayer::l_hud_get(lua_State *L) return 1; } -// get_nearby_objects(self, radius) -int LuaLocalPlayer::l_get_nearby_objects(lua_State *L) -{ - // should this be a double? - float radius = readParam(L, 1) * BS; - std::vector objs; - - ClientEnvironment &env = getClient(L)->getEnv(); - v3f pos = env.getLocalPlayer()->getPosition(); - env.getActiveObjects(pos, radius, objs); - - lua_newtable(L); - - int i = 0; - lua_createtable(L, objs.size(), 0); - for (const auto obj : objs) { - ClientObjectRef::create(L, obj.obj); - lua_rawseti(L, -2, ++i); - } - - return 1; -} - +// get_object(self) int LuaLocalPlayer::l_get_object(lua_State *L) { LocalPlayer *player = getobject(L, 1); ClientEnvironment &env = getClient(L)->getEnv(); ClientActiveObject *obj = env.getGenericCAO(player->getCAO()->getId()); - ClientObjectRef::create(L, obj); + push_objectRef(L, obj->getId()); + + return 1; +} + +// get_hotbar_size(self) +int LuaLocalPlayer::l_get_hotbar_size(lua_State *L) +{ + LocalPlayer *player = getobject(L, 1); + lua_pushnumber(L, player->hud_hotbar_itemcount); return 1; } @@ -531,6 +524,29 @@ LocalPlayer *LuaLocalPlayer::getobject(lua_State *L, int narg) return player; } +// get_nearby_objects(self, radius) +int LuaLocalPlayer::l_get_nearby_objects(lua_State *L) +{ + // should this be a double? + float radius = readParam(L, 1) * BS; + std::vector objs; + + ClientEnvironment &env = getClient(L)->getEnv(); + v3f pos = env.getLocalPlayer()->getPosition(); + env.getActiveObjects(pos, radius, objs); + + lua_newtable(L); + + int i = 0; + lua_createtable(L, objs.size(), 0); + for (const auto obj : objs) { + ClientObjectRef::create(L, obj.obj); + lua_rawseti(L, -2, ++i); + } + + return 1; +} + int LuaLocalPlayer::l_set_override_speed(lua_State *L) { LocalPlayer *player = getobject(L, 1); @@ -590,6 +606,10 @@ const char LuaLocalPlayer::className[] = "LocalPlayer"; const luaL_Reg LuaLocalPlayer::methods[] = { luamethod(LuaLocalPlayer, get_velocity), luamethod(LuaLocalPlayer, set_velocity), + luamethod(LuaLocalPlayer, get_yaw), + luamethod(LuaLocalPlayer, set_yaw), + luamethod(LuaLocalPlayer, get_pitch), + luamethod(LuaLocalPlayer, set_pitch), luamethod(LuaLocalPlayer, get_hp), luamethod(LuaLocalPlayer, get_name), luamethod(LuaLocalPlayer, get_wield_index), @@ -614,10 +634,6 @@ const luaL_Reg LuaLocalPlayer::methods[] = { luamethod(LuaLocalPlayer, get_breath), luamethod(LuaLocalPlayer, get_pos), luamethod(LuaLocalPlayer, set_pos), - luamethod(LuaLocalPlayer, get_yaw), - luamethod(LuaLocalPlayer, set_yaw), - luamethod(LuaLocalPlayer, get_pitch), - luamethod(LuaLocalPlayer, set_pitch), luamethod(LuaLocalPlayer, get_movement_acceleration), luamethod(LuaLocalPlayer, get_movement_speed), luamethod(LuaLocalPlayer, get_movement), @@ -627,9 +643,9 @@ const luaL_Reg LuaLocalPlayer::methods[] = { luamethod(LuaLocalPlayer, hud_change), luamethod(LuaLocalPlayer, hud_get), luamethod(LuaLocalPlayer, get_object), + luamethod(LuaLocalPlayer, get_hotbar_size), luamethod(LuaLocalPlayer, get_nearby_objects), - luamethod(LuaLocalPlayer, get_object), luamethod(LuaLocalPlayer, set_override_speed), luamethod(LuaLocalPlayer, set_speeds_from_server_settings), luamethod(LuaLocalPlayer, set_speeds_from_local_settings), diff --git a/src/script/lua_api/l_localplayer.h b/src/script/lua_api/l_localplayer.h index 738cdfbe6..2214cf1a8 100644 --- a/src/script/lua_api/l_localplayer.h +++ b/src/script/lua_api/l_localplayer.h @@ -38,6 +38,18 @@ private: // set_velocity(self, vel) static int l_set_velocity(lua_State *L); + // get_yaw(self) + static int l_get_yaw(lua_State *L); + + // set_yaw(self, yaw) + static int l_set_yaw(lua_State *L); + + // get_pitch(self) + static int l_get_pitch(lua_State *L); + + // set_pitch(self,pitch) + static int l_set_pitch(lua_State *L); + // get_hp(self) static int l_get_hp(lua_State *L); @@ -53,6 +65,9 @@ private: // get_wielded_item(self) static int l_get_wielded_item(lua_State *L); + // get_hotbar_size(self) + static int l_get_hotbar_size(lua_State *L); + static int l_is_attached(lua_State *L); static int l_is_touching_ground(lua_State *L); static int l_is_in_liquid(lua_State *L); @@ -83,18 +98,6 @@ private: // set_pos(self, pos) static int l_set_pos(lua_State *L); - // get_yaw(self) - static int l_get_yaw(lua_State *L); - - // set_yaw(self, yaw) - static int l_set_yaw(lua_State *L); - - // get_pitch(self) - static int l_get_pitch(lua_State *L); - - // set_pitch(self, pitch) - static int l_set_pitch(lua_State *L); - // get_movement_acceleration(self) static int l_get_movement_acceleration(lua_State *L); @@ -118,12 +121,12 @@ private: // hud_get(self, id) static int l_hud_get(lua_State *L); - // get_nearby_objects(self, radius) - static int l_get_nearby_objects(lua_State *L); - // get_object(self) static int l_get_object(lua_State *L); + // get_nearby_objects(self, radius) + static int l_get_nearby_objects(lua_State *L); + // set_override_speed static int l_set_override_speed(lua_State *L); diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index 2cf4a979b..d88bf31c1 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -34,9 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serverlist.h" #include "mapgen/mapgen.h" #include "settings.h" - -#include -#include +#include "client/client.h" #include "client/renderingengine.h" #include "network/networkprotocol.h" @@ -274,207 +272,6 @@ int ModApiMainMenu::l_get_worlds(lua_State *L) return 1; } -/******************************************************************************/ -int ModApiMainMenu::l_get_favorites(lua_State *L) -{ - std::string listtype = "local"; - - if (!lua_isnone(L, 1)) { - listtype = luaL_checkstring(L, 1); - } - - std::vector servers; - - if(listtype == "online") { - servers = ServerList::getOnline(); - } else { - servers = ServerList::getLocal(); - } - - lua_newtable(L); - int top = lua_gettop(L); - unsigned int index = 1; - - for (const Json::Value &server : servers) { - - lua_pushnumber(L, index); - - lua_newtable(L); - int top_lvl2 = lua_gettop(L); - - if (!server["clients"].asString().empty()) { - std::string clients_raw = server["clients"].asString(); - char* endptr = 0; - int numbervalue = strtol(clients_raw.c_str(), &endptr,10); - - if ((!clients_raw.empty()) && (*endptr == 0)) { - lua_pushstring(L, "clients"); - lua_pushnumber(L, numbervalue); - lua_settable(L, top_lvl2); - } - } - - if (!server["clients_max"].asString().empty()) { - - std::string clients_max_raw = server["clients_max"].asString(); - char* endptr = 0; - int numbervalue = strtol(clients_max_raw.c_str(), &endptr,10); - - if ((!clients_max_raw.empty()) && (*endptr == 0)) { - lua_pushstring(L, "clients_max"); - lua_pushnumber(L, numbervalue); - lua_settable(L, top_lvl2); - } - } - - if (!server["version"].asString().empty()) { - lua_pushstring(L, "version"); - std::string topush = server["version"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["proto_min"].asString().empty()) { - lua_pushstring(L, "proto_min"); - lua_pushinteger(L, server["proto_min"].asInt()); - lua_settable(L, top_lvl2); - } - - if (!server["proto_max"].asString().empty()) { - lua_pushstring(L, "proto_max"); - lua_pushinteger(L, server["proto_max"].asInt()); - lua_settable(L, top_lvl2); - } - - if (!server["password"].asString().empty()) { - lua_pushstring(L, "password"); - lua_pushboolean(L, server["password"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["creative"].asString().empty()) { - lua_pushstring(L, "creative"); - lua_pushboolean(L, server["creative"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["damage"].asString().empty()) { - lua_pushstring(L, "damage"); - lua_pushboolean(L, server["damage"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["pvp"].asString().empty()) { - lua_pushstring(L, "pvp"); - lua_pushboolean(L, server["pvp"].asBool()); - lua_settable(L, top_lvl2); - } - - if (!server["description"].asString().empty()) { - lua_pushstring(L, "description"); - std::string topush = server["description"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["name"].asString().empty()) { - lua_pushstring(L, "name"); - std::string topush = server["name"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["address"].asString().empty()) { - lua_pushstring(L, "address"); - std::string topush = server["address"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (!server["port"].asString().empty()) { - lua_pushstring(L, "port"); - std::string topush = server["port"].asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl2); - } - - if (server.isMember("ping")) { - float ping = server["ping"].asFloat(); - lua_pushstring(L, "ping"); - lua_pushnumber(L, ping); - lua_settable(L, top_lvl2); - } - - if (server["clients_list"].isArray()) { - unsigned int index_lvl2 = 1; - lua_pushstring(L, "clients_list"); - lua_newtable(L); - int top_lvl3 = lua_gettop(L); - for (const Json::Value &client : server["clients_list"]) { - lua_pushnumber(L, index_lvl2); - std::string topush = client.asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl3); - index_lvl2++; - } - lua_settable(L, top_lvl2); - } - - if (server["mods"].isArray()) { - unsigned int index_lvl2 = 1; - lua_pushstring(L, "mods"); - lua_newtable(L); - int top_lvl3 = lua_gettop(L); - for (const Json::Value &mod : server["mods"]) { - - lua_pushnumber(L, index_lvl2); - std::string topush = mod.asString(); - lua_pushstring(L, topush.c_str()); - lua_settable(L, top_lvl3); - index_lvl2++; - } - lua_settable(L, top_lvl2); - } - - lua_settable(L, top); - index++; - } - return 1; -} - -/******************************************************************************/ -int ModApiMainMenu::l_delete_favorite(lua_State *L) -{ - std::vector servers; - - std::string listtype = "local"; - - if (!lua_isnone(L,2)) { - listtype = luaL_checkstring(L,2); - } - - if ((listtype != "local") && - (listtype != "online")) - return 0; - - - if(listtype == "online") { - servers = ServerList::getOnline(); - } else { - servers = ServerList::getLocal(); - } - - int fav_idx = luaL_checkinteger(L,1) -1; - - if ((fav_idx >= 0) && - (fav_idx < (int) servers.size())) { - - ServerList::deleteEntry(servers[fav_idx]); - } - - return 0; -} - /******************************************************************************/ int ModApiMainMenu::l_get_games(lua_State *L) { @@ -600,7 +397,8 @@ int ModApiMainMenu::l_show_keys_menu(lua_State *L) GUIEngine* engine = getGuiEngine(L); sanity_check(engine != NULL); - GUIKeyChangeMenu *kmenu = new GUIKeyChangeMenu(RenderingEngine::get_gui_env(), + GUIKeyChangeMenu *kmenu = new GUIKeyChangeMenu( + engine->m_rendering_engine->get_gui_env(), engine->m_parent, -1, engine->m_menumanager, @@ -686,6 +484,14 @@ int ModApiMainMenu::l_get_mapgen_names(lua_State *L) } +/******************************************************************************/ +int ModApiMainMenu::l_get_user_path(lua_State *L) +{ + std::string path = fs::RemoveRelativePathComponents(porting::path_user); + lua_pushstring(L, path.c_str()); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_get_modpath(lua_State *L) { @@ -722,6 +528,7 @@ int ModApiMainMenu::l_get_texturepath(lua_State *L) return 1; } +/******************************************************************************/ int ModApiMainMenu::l_get_texturepath_share(lua_State *L) { std::string gamepath = fs::RemoveRelativePathComponents( @@ -730,12 +537,20 @@ int ModApiMainMenu::l_get_texturepath_share(lua_State *L) return 1; } +/******************************************************************************/ int ModApiMainMenu::l_get_cache_path(lua_State *L) { lua_pushstring(L, fs::RemoveRelativePathComponents(porting::path_cache).c_str()); return 1; } +/******************************************************************************/ +int ModApiMainMenu::l_get_temp_path(lua_State *L) +{ + lua_pushstring(L, fs::TempPath().c_str()); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_create_dir(lua_State *L) { const char *path = luaL_checkstring(L, 1); @@ -795,6 +610,15 @@ int ModApiMainMenu::l_copy_dir(lua_State *L) return 1; } +/******************************************************************************/ +int ModApiMainMenu::l_is_dir(lua_State *L) +{ + const char *path = luaL_checkstring(L, 1); + + lua_pushboolean(L, fs::IsDir(path)); + return 1; +} + /******************************************************************************/ int ModApiMainMenu::l_extract_zip(lua_State *L) { @@ -804,75 +628,9 @@ int ModApiMainMenu::l_extract_zip(lua_State *L) std::string absolute_destination = fs::RemoveRelativePathComponents(destination); if (ModApiMainMenu::mayModifyPath(absolute_destination)) { + auto rendering_engine = getGuiEngine(L)->m_rendering_engine; fs::CreateAllDirs(absolute_destination); - - io::IFileSystem *fs = RenderingEngine::get_filesystem(); - - if (!fs->addFileArchive(zipfile, false, false, io::EFAT_ZIP)) { - lua_pushboolean(L,false); - return 1; - } - - sanity_check(fs->getFileArchiveCount() > 0); - - /**********************************************************************/ - /* WARNING this is not threadsafe!! */ - /**********************************************************************/ - io::IFileArchive* opened_zip = - fs->getFileArchive(fs->getFileArchiveCount()-1); - - const io::IFileList* files_in_zip = opened_zip->getFileList(); - - unsigned int number_of_files = files_in_zip->getFileCount(); - - for (unsigned int i=0; i < number_of_files; i++) { - std::string fullpath = destination; - fullpath += DIR_DELIM; - fullpath += files_in_zip->getFullFileName(i).c_str(); - std::string fullpath_dir = fs::RemoveLastPathComponent(fullpath); - - if (!files_in_zip->isDirectory(i)) { - if (!fs::PathExists(fullpath_dir) && !fs::CreateAllDirs(fullpath_dir)) { - fs->removeFileArchive(fs->getFileArchiveCount()-1); - lua_pushboolean(L,false); - return 1; - } - - io::IReadFile* toread = opened_zip->createAndOpenFile(i); - - FILE *targetfile = fopen(fullpath.c_str(),"wb"); - - if (targetfile == NULL) { - fs->removeFileArchive(fs->getFileArchiveCount()-1); - lua_pushboolean(L,false); - return 1; - } - - char read_buffer[1024]; - long total_read = 0; - - while (total_read < toread->getSize()) { - - unsigned int bytes_read = - toread->read(read_buffer,sizeof(read_buffer)); - if ((bytes_read == 0 ) || - (fwrite(read_buffer, 1, bytes_read, targetfile) != bytes_read)) - { - fclose(targetfile); - fs->removeFileArchive(fs->getFileArchiveCount()-1); - lua_pushboolean(L,false); - return 1; - } - total_read += bytes_read; - } - - fclose(targetfile); - } - - } - - fs->removeFileArchive(fs->getFileArchiveCount()-1); - lua_pushboolean(L,true); + lua_pushboolean(L, fs::extractZipFile(rendering_engine->get_filesystem(), zipfile, destination)); return 1; } @@ -891,24 +649,28 @@ int ModApiMainMenu::l_get_mainmenu_path(lua_State *L) } /******************************************************************************/ -bool ModApiMainMenu::mayModifyPath(const std::string &path) +bool ModApiMainMenu::mayModifyPath(std::string path) { + path = fs::RemoveRelativePathComponents(path); + if (fs::PathStartsWith(path, fs::TempPath())) return true; - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "games"))) - return true; + std::string path_user = fs::RemoveRelativePathComponents(porting::path_user); - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "mods"))) + if (fs::PathStartsWith(path, path_user + DIR_DELIM "client")) return true; - - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "clientmods"))) + if (fs::PathStartsWith(path, path_user + DIR_DELIM "clientmods")) return true; - - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "textures"))) + if (fs::PathStartsWith(path, path_user + DIR_DELIM "textures")) return true; - - if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_user + DIR_DELIM "worlds"))) + if (fs::PathStartsWith(path, path_user + DIR_DELIM "games")) + return true; + if (fs::PathStartsWith(path, path_user + DIR_DELIM "mods")) + return true; + if (fs::PathStartsWith(path, path_user + DIR_DELIM "textures")) + return true; + if (fs::PathStartsWith(path, path_user + DIR_DELIM "worlds")) return true; if (fs::PathStartsWith(path, fs::RemoveRelativePathComponents(porting::path_cache))) @@ -938,7 +700,7 @@ int ModApiMainMenu::l_show_path_select_dialog(lua_State *L) bool is_file_select = readParam(L, 3); GUIFileSelectMenu* fileOpenMenu = - new GUIFileSelectMenu(RenderingEngine::get_gui_env(), + new GUIFileSelectMenu(engine->m_rendering_engine->get_gui_env(), engine->m_parent, -1, engine->m_menumanager, @@ -1034,15 +796,7 @@ int ModApiMainMenu::l_get_screen_info(lua_State *L) lua_pushnumber(L,RenderingEngine::getDisplayDensity()); lua_settable(L, top); - lua_pushstring(L,"display_width"); - lua_pushnumber(L,RenderingEngine::getDisplaySize().X); - lua_settable(L, top); - - lua_pushstring(L,"display_height"); - lua_pushnumber(L,RenderingEngine::getDisplaySize().Y); - lua_settable(L, top); - - const v2u32 &window_size = RenderingEngine::get_instance()->getWindowSize(); + const v2u32 &window_size = RenderingEngine::getWindowSize(); lua_pushstring(L,"window_width"); lua_pushnumber(L, window_size.X); lua_settable(L, top); @@ -1050,6 +804,10 @@ int ModApiMainMenu::l_get_screen_info(lua_State *L) lua_pushstring(L,"window_height"); lua_pushnumber(L, window_size.Y); lua_settable(L, top); + + lua_pushstring(L, "render_info"); + lua_pushstring(L, wide_to_utf8(RenderingEngine::get_video_driver()->getName()).c_str()); + lua_settable(L, top); return 1; } @@ -1070,7 +828,15 @@ int ModApiMainMenu::l_get_max_supp_proto(lua_State *L) int ModApiMainMenu::l_open_url(lua_State *L) { std::string url = luaL_checkstring(L, 1); - lua_pushboolean(L, porting::openURL(url)); + lua_pushboolean(L, porting::open_url(url)); + return 1; +} + +/******************************************************************************/ +int ModApiMainMenu::l_open_dir(lua_State *L) +{ + std::string path = luaL_checkstring(L, 1); + lua_pushboolean(L, porting::open_directory(path)); return 1; } @@ -1108,23 +874,24 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(get_content_info); API_FCT(start); API_FCT(close); - API_FCT(get_favorites); API_FCT(show_keys_menu); API_FCT(create_world); API_FCT(delete_world); - API_FCT(delete_favorite); API_FCT(set_background); API_FCT(set_topleft_text); API_FCT(get_mapgen_names); + API_FCT(get_user_path); API_FCT(get_modpath); API_FCT(get_clientmodpath); API_FCT(get_gamepath); API_FCT(get_texturepath); API_FCT(get_texturepath_share); API_FCT(get_cache_path); + API_FCT(get_temp_path); API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); + API_FCT(is_dir); API_FCT(extract_zip); API_FCT(may_modify_path); API_FCT(get_mainmenu_path); @@ -1137,6 +904,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) API_FCT(get_min_supp_proto); API_FCT(get_max_supp_proto); API_FCT(open_url); + API_FCT(open_dir); API_FCT(do_async_callback); } @@ -1145,19 +913,23 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) { API_FCT(get_worlds); API_FCT(get_games); - API_FCT(get_favorites); API_FCT(get_mapgen_names); + API_FCT(get_user_path); API_FCT(get_modpath); API_FCT(get_clientmodpath); API_FCT(get_gamepath); API_FCT(get_texturepath); API_FCT(get_texturepath_share); API_FCT(get_cache_path); + API_FCT(get_temp_path); API_FCT(create_dir); API_FCT(delete_dir); API_FCT(copy_dir); + API_FCT(is_dir); //API_FCT(extract_zip); //TODO remove dependency to GuiEngine API_FCT(may_modify_path); API_FCT(download_file); + API_FCT(get_min_supp_proto); + API_FCT(get_max_supp_proto); //API_FCT(gettext); (gettext lib isn't threadsafe) } diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h index 5a16b3bfe..33ac9e721 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -58,7 +58,7 @@ private: * @param path path to check * @return true if the path may be modified */ - static bool mayModifyPath(const std::string &path); + static bool mayModifyPath(std::string path); //api calls @@ -74,10 +74,6 @@ private: static int l_get_mapgen_names(lua_State *L); - static int l_get_favorites(lua_State *L); - - static int l_delete_favorite(lua_State *L); - static int l_gettext(lua_State *L); //packages @@ -112,6 +108,8 @@ private: static int l_get_mainmenu_path(lua_State *L); + static int l_get_user_path(lua_State *L); + static int l_get_modpath(lua_State *L); static int l_get_clientmodpath(lua_State *L); @@ -124,12 +122,16 @@ private: static int l_get_cache_path(lua_State *L); + static int l_get_temp_path(lua_State *L); + static int l_create_dir(lua_State *L); static int l_delete_dir(lua_State *L); static int l_copy_dir(lua_State *L); + static int l_is_dir(lua_State *L); + static int l_extract_zip(lua_State *L); static int l_may_modify_path(lua_State *L); @@ -148,6 +150,8 @@ private: // other static int l_open_url(lua_State *L); + static int l_open_dir(lua_State *L); + // async static int l_do_async_callback(lua_State *L); diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp index 834938e56..eb3d49a5e 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -482,9 +482,7 @@ int ModApiMapgen::l_get_biome_id(lua_State *L) { NO_MAP_LOCK_REQUIRED; - const char *biome_str = lua_tostring(L, 1); - if (!biome_str) - return 0; + const char *biome_str = luaL_checkstring(L, 1); const BiomeManager *bmgr = getServer(L)->getEmergeManager()->getBiomeManager(); if (!bmgr) @@ -527,30 +525,12 @@ int ModApiMapgen::l_get_heat(lua_State *L) v3s16 pos = read_v3s16(L, 1); - NoiseParams np_heat; - NoiseParams np_heat_blend; + const BiomeGen *biomegen = getServer(L)->getEmergeManager()->getBiomeGen(); - MapSettingsManager *settingsmgr = - getServer(L)->getEmergeManager()->map_settings_mgr; - - if (!settingsmgr->getMapSettingNoiseParams("mg_biome_np_heat", - &np_heat) || - !settingsmgr->getMapSettingNoiseParams("mg_biome_np_heat_blend", - &np_heat_blend)) + if (!biomegen || biomegen->getType() != BIOMEGEN_ORIGINAL) return 0; - std::string value; - if (!settingsmgr->getMapSetting("seed", &value)) - return 0; - std::istringstream ss(value); - u64 seed; - ss >> seed; - - const BiomeManager *bmgr = getServer(L)->getEmergeManager()->getBiomeManager(); - if (!bmgr) - return 0; - - float heat = bmgr->getHeatAtPosOriginal(pos, np_heat, np_heat_blend, seed); + float heat = ((BiomeGenOriginal*) biomegen)->calcHeatAtPoint(pos); lua_pushnumber(L, heat); @@ -566,31 +546,12 @@ int ModApiMapgen::l_get_humidity(lua_State *L) v3s16 pos = read_v3s16(L, 1); - NoiseParams np_humidity; - NoiseParams np_humidity_blend; + const BiomeGen *biomegen = getServer(L)->getEmergeManager()->getBiomeGen(); - MapSettingsManager *settingsmgr = - getServer(L)->getEmergeManager()->map_settings_mgr; - - if (!settingsmgr->getMapSettingNoiseParams("mg_biome_np_humidity", - &np_humidity) || - !settingsmgr->getMapSettingNoiseParams("mg_biome_np_humidity_blend", - &np_humidity_blend)) + if (!biomegen || biomegen->getType() != BIOMEGEN_ORIGINAL) return 0; - std::string value; - if (!settingsmgr->getMapSetting("seed", &value)) - return 0; - std::istringstream ss(value); - u64 seed; - ss >> seed; - - const BiomeManager *bmgr = getServer(L)->getEmergeManager()->getBiomeManager(); - if (!bmgr) - return 0; - - float humidity = bmgr->getHumidityAtPosOriginal(pos, np_humidity, - np_humidity_blend, seed); + float humidity = ((BiomeGenOriginal*) biomegen)->calcHumidityAtPoint(pos); lua_pushnumber(L, humidity); @@ -606,45 +567,11 @@ int ModApiMapgen::l_get_biome_data(lua_State *L) v3s16 pos = read_v3s16(L, 1); - NoiseParams np_heat; - NoiseParams np_heat_blend; - NoiseParams np_humidity; - NoiseParams np_humidity_blend; - - MapSettingsManager *settingsmgr = - getServer(L)->getEmergeManager()->map_settings_mgr; - - if (!settingsmgr->getMapSettingNoiseParams("mg_biome_np_heat", - &np_heat) || - !settingsmgr->getMapSettingNoiseParams("mg_biome_np_heat_blend", - &np_heat_blend) || - !settingsmgr->getMapSettingNoiseParams("mg_biome_np_humidity", - &np_humidity) || - !settingsmgr->getMapSettingNoiseParams("mg_biome_np_humidity_blend", - &np_humidity_blend)) + const BiomeGen *biomegen = getServer(L)->getEmergeManager()->getBiomeGen(); + if (!biomegen) return 0; - std::string value; - if (!settingsmgr->getMapSetting("seed", &value)) - return 0; - std::istringstream ss(value); - u64 seed; - ss >> seed; - - const BiomeManager *bmgr = getServer(L)->getEmergeManager()->getBiomeManager(); - if (!bmgr) - return 0; - - float heat = bmgr->getHeatAtPosOriginal(pos, np_heat, np_heat_blend, seed); - if (!heat) - return 0; - - float humidity = bmgr->getHumidityAtPosOriginal(pos, np_humidity, - np_humidity_blend, seed); - if (!humidity) - return 0; - - const Biome *biome = bmgr->getBiomeFromNoiseOriginal(heat, humidity, pos); + const Biome *biome = biomegen->calcBiomeAtPoint(pos); if (!biome || biome->index == OBJDEF_INVALID_INDEX) return 0; @@ -653,11 +580,16 @@ int ModApiMapgen::l_get_biome_data(lua_State *L) lua_pushinteger(L, biome->index); lua_setfield(L, -2, "biome"); - lua_pushnumber(L, heat); - lua_setfield(L, -2, "heat"); + if (biomegen->getType() == BIOMEGEN_ORIGINAL) { + float heat = ((BiomeGenOriginal*) biomegen)->calcHeatAtPoint(pos); + float humidity = ((BiomeGenOriginal*) biomegen)->calcHumidityAtPoint(pos); - lua_pushnumber(L, humidity); - lua_setfield(L, -2, "humidity"); + lua_pushnumber(L, heat); + lua_setfield(L, -2, "heat"); + + lua_pushnumber(L, humidity); + lua_setfield(L, -2, "humidity"); + } return 1; } @@ -873,9 +805,6 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L) if (lua_isnumber(L, -1)) settingsmgr->setMapSetting("chunksize", readParam(L, -1), true); - warn_if_field_exists(L, 1, "flagmask", - "Obsolete: flags field now includes unset flags."); - lua_getfield(L, 1, "flags"); if (lua_isstring(L, -1)) settingsmgr->setMapSetting("mg_flags", readParam(L, -1), true); @@ -985,7 +914,7 @@ int ModApiMapgen::l_set_noiseparams(lua_State *L) bool set_default = !lua_isboolean(L, 3) || readParam(L, 3); - g_settings->setNoiseParams(name, np, set_default); + Settings::getLayer(set_default ? SL_DEFAULTS : SL_GLOBAL)->setNoiseParams(name, np); return 0; } @@ -1338,11 +1267,9 @@ int ModApiMapgen::l_register_ore(lua_State *L) lua_getfield(L, index, "noise_params"); if (read_noiseparams(L, -1, &ore->np)) { ore->flags |= OREFLAG_USE_NOISE; - } else if (ore->NEEDS_NOISE) { - errorstream << "register_ore: specified ore type requires valid " - "'noise_params' parameter" << std::endl; - delete ore; - return 0; + } else if (ore->needs_noise) { + log_deprecated(L, + "register_ore: ore type requires 'noise_params' but it is not specified, falling back to defaults"); } lua_pop(L, 1); @@ -1498,9 +1425,12 @@ int ModApiMapgen::l_generate_ores(lua_State *L) NO_MAP_LOCK_REQUIRED; EmergeManager *emerge = getServer(L)->getEmergeManager(); + if (!emerge || !emerge->mgparams) + return 0; Mapgen mg; - mg.seed = emerge->mgparams->seed; + // Intentionally truncates to s32, see Mapgen::Mapgen() + mg.seed = (s32)emerge->mgparams->seed; mg.vm = LuaVoxelManip::checkobject(L, 1)->vm; mg.ndef = getServer(L)->getNodeDefManager(); @@ -1524,9 +1454,12 @@ int ModApiMapgen::l_generate_decorations(lua_State *L) NO_MAP_LOCK_REQUIRED; EmergeManager *emerge = getServer(L)->getEmergeManager(); + if (!emerge || !emerge->mgparams) + return 0; Mapgen mg; - mg.seed = emerge->mgparams->seed; + // Intentionally truncates to s32, see Mapgen::Mapgen() + mg.seed = (s32)emerge->mgparams->seed; mg.vm = LuaVoxelManip::checkobject(L, 1)->vm; mg.ndef = getServer(L)->getNodeDefManager(); @@ -1739,11 +1672,10 @@ int ModApiMapgen::l_serialize_schematic(lua_State *L) std::ostringstream os(std::ios_base::binary); switch (schem_format) { case SCHEM_FMT_MTS: - schem->serializeToMts(&os, schem->m_nodenames); + schem->serializeToMts(&os); break; case SCHEM_FMT_LUA: - schem->serializeToLua(&os, schem->m_nodenames, - use_comments, indent_spaces); + schem->serializeToLua(&os, use_comments, indent_spaces); break; default: return 0; diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index bc59bd55c..8ae99b929 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -110,7 +110,7 @@ int ObjectRef::l_remove(lua_State *L) sao->clearParentAttachment(); verbosestream << "ObjectRef::l_remove(): id=" << sao->getId() << std::endl; - sao->m_pending_removal = true; + sao->markForRemoval(); return 0; } @@ -355,6 +355,15 @@ int ObjectRef::l_set_armor_groups(lua_State *L) ItemGroupList groups; read_groups(L, 2, groups); + if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + if (!g_settings->getBool("enable_damage") && !itemgroup_get(groups, "immortal")) { + warningstream << "Mod tried to enable damage for a player, but it's " + "disabled globally. Ignoring." << std::endl; + infostream << script_get_backtrace(L) << std::endl; + groups["immortal"] = 1; + } + } + sao->setArmorGroups(groups); return 0; } @@ -399,7 +408,7 @@ int ObjectRef::l_get_animation(lua_State *L) if (sao == nullptr) return 0; - v2f frames = v2f(1,1); + v2f frames = v2f(1, 1); float frame_speed = 15; float frame_blend = 0; bool frame_loop = true; @@ -463,8 +472,8 @@ int ObjectRef::l_set_eye_offset(lua_State *L) if (player == nullptr) return 0; - v3f offset_first = read_v3f(L, 2); - v3f offset_third = read_v3f(L, 3); + v3f offset_first = readParam(L, 2, v3f(0, 0, 0)); + v3f offset_third = readParam(L, 3, v3f(0, 0, 0)); // Prevent abuse of offset values (keep player always visible) offset_third.X = rangelim(offset_third.X,-10,10); @@ -537,9 +546,9 @@ int ObjectRef::l_set_bone_position(lua_State *L) if (sao == nullptr) return 0; - std::string bone = readParam(L, 2); - v3f position = check_v3f(L, 3); - v3f rotation = check_v3f(L, 4); + std::string bone = readParam(L, 2, ""); + v3f position = readParam(L, 3, v3f(0, 0, 0)); + v3f rotation = readParam(L, 4, v3f(0, 0, 0)); sao->setBonePosition(bone, position, rotation); return 0; @@ -554,7 +563,7 @@ int ObjectRef::l_get_bone_position(lua_State *L) if (sao == nullptr) return 0; - std::string bone = readParam(L, 2); + std::string bone = readParam(L, 2, ""); v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); @@ -578,10 +587,10 @@ int ObjectRef::l_set_attach(lua_State *L) if (sao == parent) throw LuaError("ObjectRef::set_attach: attaching object to itself is not allowed."); - int parent_id = 0; + int parent_id; std::string bone; - v3f position = v3f(0, 0, 0); - v3f rotation = v3f(0, 0, 0); + v3f position; + v3f rotation; bool force_visible; sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); @@ -590,9 +599,9 @@ int ObjectRef::l_set_attach(lua_State *L) old_parent->removeAttachmentChild(sao->getId()); } - bone = readParam(L, 3, ""); - position = read_v3f(L, 4); - rotation = read_v3f(L, 5); + bone = readParam(L, 3, ""); + position = readParam(L, 4, v3f(0, 0, 0)); + rotation = readParam(L, 5, v3f(0, 0, 0)); force_visible = readParam(L, 6, false); sao->setAttachment(parent->getId(), bone, position, rotation, force_visible); @@ -609,10 +618,10 @@ int ObjectRef::l_get_attach(lua_State *L) if (sao == nullptr) return 0; - int parent_id = 0; + int parent_id; std::string bone; - v3f position = v3f(0, 0, 0); - v3f rotation = v3f(0, 0, 0); + v3f position; + v3f rotation; bool force_visible; sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); @@ -728,6 +737,18 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L) } lua_pop(L, 1); + lua_getfield(L, -1, "bgcolor"); + if (!lua_isnil(L, -1)) { + if (lua_toboolean(L, -1)) { + video::SColor color; + if (read_color(L, -1, &color)) + prop->nametag_bgcolor = color; + } else { + prop->nametag_bgcolor = nullopt; + } + } + lua_pop(L, 1); + std::string nametag = getstringfield_default(L, 2, "text", ""); prop->nametag = nametag; @@ -749,13 +770,24 @@ int ObjectRef::l_get_nametag_attributes(lua_State *L) if (!prop) return 0; - video::SColor color = prop->nametag_color; - lua_newtable(L); - push_ARGB8(L, color); + + push_ARGB8(L, prop->nametag_color); lua_setfield(L, -2, "color"); + + if (prop->nametag_bgcolor) { + push_ARGB8(L, prop->nametag_bgcolor.value()); + lua_setfield(L, -2, "bgcolor"); + } else { + lua_pushboolean(L, false); + lua_setfield(L, -2, "bgcolor"); + } + lua_pushstring(L, prop->nametag.c_str()); lua_setfield(L, -2, "text"); + + + return 1; } @@ -892,9 +924,6 @@ int ObjectRef::l_set_yaw(lua_State *L) if (entitysao == nullptr) return 0; - if (isNaN(L, 2)) - throw LuaError("ObjectRef::set_yaw: NaN value is not allowed."); - float yaw = readParam(L, 2) * core::RADTODEG; entitysao->setRotation(v3f(0, yaw, 0)); @@ -1409,7 +1438,7 @@ int ObjectRef::l_set_physics_override(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *playersao = (PlayerSAO *) getobject(ref); + PlayerSAO *playersao = getplayersao(ref); if (playersao == nullptr) return 0; @@ -1449,7 +1478,7 @@ int ObjectRef::l_get_physics_override(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO *playersao = (PlayerSAO *)getobject(ref); + PlayerSAO *playersao = getplayersao(ref); if (playersao == nullptr) return 0; @@ -2199,7 +2228,7 @@ int ObjectRef::l_set_minimap_modes(lua_State *L) luaL_checktype(L, 2, LUA_TTABLE); std::vector modes; - s16 selected_mode = luaL_checkint(L, 3); + s16 selected_mode = readParam(L, 3); lua_pushnil(L); while (lua_next(L, 2) != 0) { diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 64ae924d2..026f5282c 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -44,7 +44,7 @@ int ModApiServer::l_request_shutdown(lua_State *L) int ModApiServer::l_get_server_status(lua_State *L) { NO_MAP_LOCK_REQUIRED; - lua_pushstring(L, wide_to_narrow(getServer(L)->getStatusString()).c_str()); + lua_pushstring(L, getServer(L)->getStatusString().c_str()); return 1; } @@ -116,24 +116,18 @@ int ModApiServer::l_get_player_privs(lua_State *L) int ModApiServer::l_get_player_ip(lua_State *L) { NO_MAP_LOCK_REQUIRED; - const char * name = luaL_checkstring(L, 1); - RemotePlayer *player = dynamic_cast(getEnv(L))->getPlayer(name); - if(player == NULL) - { + + Server *server = getServer(L); + + const char *name = luaL_checkstring(L, 1); + RemotePlayer *player = server->getEnv().getPlayer(name); + if (!player) { lua_pushnil(L); // no such player return 1; } - try - { - Address addr = getServer(L)->getPeerAddress(player->getPeerId()); - std::string ip_str = addr.serializeString(); - lua_pushstring(L, ip_str.c_str()); - return 1; - } catch (const con::PeerNotFoundException &) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; - lua_pushnil(L); // error - return 1; - } + + lua_pushstring(L, server->getPeerAddress(player->getPeerId()).serializeString().c_str()); + return 1; } // get_player_information(name) @@ -150,26 +144,18 @@ int ModApiServer::l_get_player_information(lua_State *L) return 1; } - Address addr; - try { - addr = server->getPeerAddress(player->getPeerId()); - } catch (const con::PeerNotFoundException &) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; - lua_pushnil(L); // error - return 1; - } - - float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter; - ClientState state; - u32 uptime; - u16 prot_vers; - u8 ser_vers, major, minor, patch; - std::string vers_string, lang_code; + /* + Be careful not to introduce a depdendency on the connection to + the peer here. This function is >>REQUIRED<< to still be able to return + values even when the peer unexpectedly disappears. + Hence all the ConInfo values here are optional. + */ auto getConInfo = [&] (con::rtt_stat_type type, float *value) -> bool { return server->getClientConInfo(player->getPeerId(), type, value); }; + float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter; bool have_con_info = getConInfo(con::MIN_RTT, &min_rtt) && getConInfo(con::MAX_RTT, &max_rtt) && @@ -178,11 +164,9 @@ int ModApiServer::l_get_player_information(lua_State *L) getConInfo(con::MAX_JITTER, &max_jitter) && getConInfo(con::AVG_JITTER, &avg_jitter); - bool r = server->getClientInfo(player->getPeerId(), &state, &uptime, - &ser_vers, &prot_vers, &major, &minor, &patch, &vers_string, - &lang_code); - if (!r) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; + ClientInfo info; + if (!server->getClientInfo(player->getPeerId(), info)) { + warningstream << FUNCTION_NAME << ": no client info?!" << std::endl; lua_pushnil(L); // error return 1; } @@ -191,13 +175,13 @@ int ModApiServer::l_get_player_information(lua_State *L) int table = lua_gettop(L); lua_pushstring(L,"address"); - lua_pushstring(L, addr.serializeString().c_str()); + lua_pushstring(L, info.addr.serializeString().c_str()); lua_settable(L, table); lua_pushstring(L,"ip_version"); - if (addr.getFamily() == AF_INET) { + if (info.addr.getFamily() == AF_INET) { lua_pushnumber(L, 4); - } else if (addr.getFamily() == AF_INET6) { + } else if (info.addr.getFamily() == AF_INET6) { lua_pushnumber(L, 6); } else { lua_pushnumber(L, 0); @@ -231,11 +215,11 @@ int ModApiServer::l_get_player_information(lua_State *L) } lua_pushstring(L,"connection_uptime"); - lua_pushnumber(L, uptime); + lua_pushnumber(L, info.uptime); lua_settable(L, table); lua_pushstring(L,"protocol_version"); - lua_pushnumber(L, prot_vers); + lua_pushnumber(L, info.prot_vers); lua_settable(L, table); lua_pushstring(L, "formspec_version"); @@ -243,32 +227,32 @@ int ModApiServer::l_get_player_information(lua_State *L) lua_settable(L, table); lua_pushstring(L, "lang_code"); - lua_pushstring(L, lang_code.c_str()); + lua_pushstring(L, info.lang_code.c_str()); lua_settable(L, table); #ifndef NDEBUG lua_pushstring(L,"serialization_version"); - lua_pushnumber(L, ser_vers); + lua_pushnumber(L, info.ser_vers); lua_settable(L, table); lua_pushstring(L,"major"); - lua_pushnumber(L, major); + lua_pushnumber(L, info.major); lua_settable(L, table); lua_pushstring(L,"minor"); - lua_pushnumber(L, minor); + lua_pushnumber(L, info.minor); lua_settable(L, table); lua_pushstring(L,"patch"); - lua_pushnumber(L, patch); + lua_pushnumber(L, info.patch); lua_settable(L, table); lua_pushstring(L,"version_string"); - lua_pushstring(L, vers_string.c_str()); + lua_pushstring(L, info.vers_string.c_str()); lua_settable(L, table); lua_pushstring(L,"state"); - lua_pushstring(L,ClientInterface::state2Name(state).c_str()); + lua_pushstring(L, ClientInterface::state2Name(info.state).c_str()); lua_settable(L, table); #endif @@ -296,23 +280,18 @@ int ModApiServer::l_get_ban_description(lua_State *L) int ModApiServer::l_ban_player(lua_State *L) { NO_MAP_LOCK_REQUIRED; - const char * name = luaL_checkstring(L, 1); - RemotePlayer *player = dynamic_cast(getEnv(L))->getPlayer(name); - if (player == NULL) { + + Server *server = getServer(L); + + const char *name = luaL_checkstring(L, 1); + RemotePlayer *player = server->getEnv().getPlayer(name); + if (!player) { lua_pushboolean(L, false); // no such player return 1; } - try - { - Address addr = getServer(L)->getPeerAddress( - dynamic_cast(getEnv(L))->getPlayer(name)->getPeerId()); - std::string ip_str = addr.serializeString(); - getServer(L)->setIpBanned(ip_str, name); - } catch(const con::PeerNotFoundException &) { - dstream << FUNCTION_NAME << ": peer was not found" << std::endl; - lua_pushboolean(L, false); // error - return 1; - } + + std::string ip_str = server->getPeerAddress(player->getPeerId()).serializeString(); + server->setIpBanned(ip_str, name); lua_pushboolean(L, true); return 1; } @@ -474,19 +453,30 @@ int ModApiServer::l_sound_fade(lua_State *L) } // dynamic_add_media(filepath) -int ModApiServer::l_dynamic_add_media(lua_State *L) +int ModApiServer::l_dynamic_add_media_raw(lua_State *L) { NO_MAP_LOCK_REQUIRED; - // Reject adding media before the server has started up if (!getEnv(L)) throw LuaError("Dynamic media cannot be added before server has started up"); std::string filepath = readParam(L, 1); CHECK_SECURE_PATH(L, filepath.c_str(), false); - bool ok = getServer(L)->dynamicAddMedia(filepath); - lua_pushboolean(L, ok); + std::vector sent_to; + bool ok = getServer(L)->dynamicAddMedia(filepath, sent_to); + if (ok) { + // (see wrapper code in builtin) + lua_createtable(L, sent_to.size(), 0); + int i = 0; + for (RemotePlayer *player : sent_to) { + lua_pushstring(L, player->getName()); + lua_rawseti(L, -2, ++i); + } + } else { + lua_pushboolean(L, false); + } + return 1; } @@ -554,7 +544,7 @@ void ModApiServer::Initialize(lua_State *L, int top) API_FCT(sound_play); API_FCT(sound_stop); API_FCT(sound_fade); - API_FCT(dynamic_add_media); + API_FCT(dynamic_add_media_raw); API_FCT(get_player_information); API_FCT(get_player_privs); diff --git a/src/script/lua_api/l_server.h b/src/script/lua_api/l_server.h index 938bfa8ef..2df180b17 100644 --- a/src/script/lua_api/l_server.h +++ b/src/script/lua_api/l_server.h @@ -71,7 +71,7 @@ private: static int l_sound_fade(lua_State *L); // dynamic_add_media(filepath) - static int l_dynamic_add_media(lua_State *L); + static int l_dynamic_add_media_raw(lua_State *L); // get_player_privs(name, text) static int l_get_player_privs(lua_State *L); diff --git a/src/script/lua_api/l_settings.cpp b/src/script/lua_api/l_settings.cpp index 33eb02392..a82073ed4 100644 --- a/src/script/lua_api/l_settings.cpp +++ b/src/script/lua_api/l_settings.cpp @@ -20,18 +20,43 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "lua_api/l_settings.h" #include "lua_api/l_internal.h" #include "cpp_api/s_security.h" +#include "threading/mutex_auto_lock.h" #include "util/string.h" // FlagDesc #include "settings.h" #include "noise.h" #include "log.h" -#define SET_SECURITY_CHECK(L, name) \ - if (o->m_settings == g_settings && ScriptApiSecurity::isSecure(L) && \ - name.compare(0, 7, "secure.") == 0) { \ - throw LuaError("Attempt to set secure setting."); \ +/* This protects: + * 'secure.*' settings from being set + * some mapgen settings from being set + * (not security-criticial, just to avoid messing up user configs) + */ +#define CHECK_SETTING_SECURITY(L, name) \ + if (o->m_settings == g_settings) { \ + if (checkSettingSecurity(L, name) == -1) \ + return 0; \ } +static inline int checkSettingSecurity(lua_State* L, const std::string &name) +{ + if (ScriptApiSecurity::isSecure(L) && name.compare(0, 7, "secure.") == 0) + throw LuaError("Attempt to set secure setting."); + + bool is_mainmenu = false; +#ifndef SERVER + is_mainmenu = ModApiBase::getGuiEngine(L) != nullptr; +#endif + if (!is_mainmenu && (name == "mg_name" || name == "mg_flags")) { + errorstream << "Tried to set global setting " << name << ", ignoring. " + "minetest.set_mapgen_setting() should be used instead." << std::endl; + infostream << script_get_backtrace(L) << std::endl; + return -1; + } + + return 0; +} + LuaSettings::LuaSettings(Settings *settings, const std::string &filename) : m_settings(settings), m_filename(filename) @@ -129,6 +154,7 @@ int LuaSettings::l_get_np_group(lua_State *L) return 1; } +// get_flags(self, key) -> table or nil int LuaSettings::l_get_flags(lua_State *L) { NO_MAP_LOCK_REQUIRED; @@ -161,7 +187,7 @@ int LuaSettings::l_set(lua_State* L) std::string key = std::string(luaL_checkstring(L, 2)); const char* value = luaL_checkstring(L, 3); - SET_SECURITY_CHECK(L, key); + CHECK_SETTING_SECURITY(L, key); if (!o->m_settings->set(key, value)) throw LuaError("Invalid sequence found in setting parameters"); @@ -178,14 +204,14 @@ int LuaSettings::l_set_bool(lua_State* L) std::string key = std::string(luaL_checkstring(L, 2)); bool value = readParam(L, 3); - SET_SECURITY_CHECK(L, key); + CHECK_SETTING_SECURITY(L, key); o->m_settings->setBool(key, value); - return 1; + return 0; } -// set(self, key, value) +// set_np_group(self, key, value) int LuaSettings::l_set_np_group(lua_State *L) { NO_MAP_LOCK_REQUIRED; @@ -195,9 +221,9 @@ int LuaSettings::l_set_np_group(lua_State *L) NoiseParams value; read_noiseparams(L, 3, &value); - SET_SECURITY_CHECK(L, key); + CHECK_SETTING_SECURITY(L, key); - o->m_settings->setNoiseParams(key, value, false); + o->m_settings->setNoiseParams(key, value); return 0; } @@ -210,7 +236,7 @@ int LuaSettings::l_remove(lua_State* L) std::string key = std::string(luaL_checkstring(L, 2)); - SET_SECURITY_CHECK(L, key); + CHECK_SETTING_SECURITY(L, key); bool success = o->m_settings->remove(key); lua_pushboolean(L, success); @@ -253,20 +279,36 @@ int LuaSettings::l_write(lua_State* L) return 1; } +static void push_settings_table(lua_State *L, const Settings *settings) +{ + std::vector keys = settings->getNames(); + lua_newtable(L); + for (const std::string &key : keys) { + std::string value; + Settings *group = nullptr; + + if (settings->getNoEx(key, value)) { + lua_pushstring(L, value.c_str()); + } else if (settings->getGroupNoEx(key, group)) { + // Recursively push tables + push_settings_table(L, group); + } else { + // Impossible case (multithreading) due to MutexAutoLock + continue; + } + + lua_setfield(L, -2, key.c_str()); + } +} + // to_table(self) -> {[key1]=value1,...} int LuaSettings::l_to_table(lua_State* L) { NO_MAP_LOCK_REQUIRED; LuaSettings* o = checkobject(L, 1); - std::vector keys = o->m_settings->getNames(); - - lua_newtable(L); - for (const std::string &key : keys) { - lua_pushstring(L, o->m_settings->get(key).c_str()); - lua_setfield(L, -2, key.c_str()); - } - + MutexAutoLock(o->m_settings->m_mutex); + push_settings_table(L, o->m_settings); return 1; } diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp index 3a5607952..c49a8eb0a 100644 --- a/src/script/lua_api/l_util.cpp +++ b/src/script/lua_api/l_util.cpp @@ -17,6 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include "irrlichttypes_extrabloated.h" #include "lua_api/l_util.h" #include "lua_api/l_internal.h" #include "lua_api/l_settings.h" @@ -40,7 +41,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/hex.h" #include "util/sha1.h" #include - +#include // log([level,] text) // Writes a line to the logger. @@ -242,12 +243,13 @@ int ModApiUtil::l_is_yes(lua_State *L) // is_nan(arg) int ModApiUtil::l_is_nan(lua_State *L) { - NO_MAP_LOCK_REQUIRED; + NO_MAP_LOCK_REQUIRED; lua_pushboolean(L, isNaN(L, 1)); return 1; } + // get_builtin_path() int ModApiUtil::l_get_builtin_path(lua_State *L) { @@ -259,6 +261,17 @@ int ModApiUtil::l_get_builtin_path(lua_State *L) return 1; } +// get_user_path() +int ModApiUtil::l_get_user_path(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + + std::string path = porting::path_user; + lua_pushstring(L, path.c_str()); + + return 1; +} + // compress(data, method, level) int ModApiUtil::l_compress(lua_State *L) { @@ -477,6 +490,23 @@ int ModApiUtil::l_sha1(lua_State *L) return 1; } +// colorspec_to_colorstring(colorspec) +int ModApiUtil::l_colorspec_to_colorstring(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + + video::SColor color(0); + if (read_color(L, 1, &color)) { + char colorstring[10]; + snprintf(colorstring, 10, "#%02X%02X%02X%02X", + color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()); + lua_pushstring(L, colorstring); + return 1; + } + + return 0; +} + void ModApiUtil::Initialize(lua_State *L, int top) { API_FCT(log); @@ -496,6 +526,7 @@ void ModApiUtil::Initialize(lua_State *L, int top) API_FCT(is_nan); API_FCT(get_builtin_path); + API_FCT(get_user_path); API_FCT(compress); API_FCT(decompress); @@ -511,6 +542,7 @@ void ModApiUtil::Initialize(lua_State *L, int top) API_FCT(get_version); API_FCT(sha1); + API_FCT(colorspec_to_colorstring); LuaSettings::create(L, g_settings, g_settings_path); lua_setfield(L, top, "settings"); @@ -538,6 +570,7 @@ void ModApiUtil::InitializeClient(lua_State *L, int top) API_FCT(get_version); API_FCT(sha1); + API_FCT(colorspec_to_colorstring); LuaSettings::create(L, g_settings, g_settings_path); lua_setfield(L, top, "settings"); @@ -555,6 +588,7 @@ void ModApiUtil::InitializeAsync(lua_State *L, int top) API_FCT(is_yes); API_FCT(get_builtin_path); + API_FCT(get_user_path); API_FCT(compress); API_FCT(decompress); @@ -567,6 +601,7 @@ void ModApiUtil::InitializeAsync(lua_State *L, int top) API_FCT(get_version); API_FCT(sha1); + API_FCT(colorspec_to_colorstring); LuaSettings::create(L, g_settings, g_settings_path); lua_setfield(L, top, "settings"); diff --git a/src/script/lua_api/l_util.h b/src/script/lua_api/l_util.h index 9ff91bb53..a8ace54b7 100644 --- a/src/script/lua_api/l_util.h +++ b/src/script/lua_api/l_util.h @@ -71,6 +71,9 @@ private: // get_builtin_path() static int l_get_builtin_path(lua_State *L); + // get_user_path() + static int l_get_user_path(lua_State *L); + // compress(data, method, ...) static int l_compress(lua_State *L); @@ -101,6 +104,9 @@ private: // sha1(string, raw) static int l_sha1(lua_State *L); + // colorspec_to_colorstring(colorspec) + static int l_colorspec_to_colorstring(lua_State *L); + public: static void Initialize(lua_State *L, int top); static void InitializeAsync(lua_State *L, int top); diff --git a/src/script/scripting_client.cpp b/src/script/scripting_client.cpp index 59db9d5f5..433a300e5 100644 --- a/src/script/scripting_client.cpp +++ b/src/script/scripting_client.cpp @@ -36,6 +36,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "lua_api/l_util.h" #include "lua_api/l_item.h" #include "lua_api/l_nodemeta.h" +#include "lua_api/l_noise.h" #include "lua_api/l_localplayer.h" #include "lua_api/l_camera.h" #include "lua_api/l_settings.h" @@ -73,6 +74,11 @@ ClientScripting::ClientScripting(Client *client): void ClientScripting::InitializeModApi(lua_State *L, int top) { LuaItemStack::Register(L); + LuaPerlinNoise::Register(L); + LuaPerlinNoiseMap::Register(L); + LuaPseudoRandom::Register(L); + LuaPcgRandom::Register(L); + LuaSecureRandom::Register(L); ItemStackMetaRef::Register(L); LuaRaycast::Register(L); StorageRef::Register(L); diff --git a/src/script/scripting_mainmenu.cpp b/src/script/scripting_mainmenu.cpp index 0f672f917..b102a66a1 100644 --- a/src/script/scripting_mainmenu.cpp +++ b/src/script/scripting_mainmenu.cpp @@ -31,7 +31,6 @@ with this program; if not, write to the Free Software Foundation, Inc., extern "C" { #include "lualib.h" } - #define MAINMENU_NUM_ASYNC_THREADS 4 diff --git a/src/server.cpp b/src/server.cpp index 8f6257afe..a8d452783 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -351,6 +351,8 @@ Server::~Server() // Deinitialize scripting infostream << "Server: Deinitializing scripting" << std::endl; delete m_script; + delete m_startup_server_map; // if available + delete m_game_settings; while (!m_unsent_map_edit_queue.empty()) { delete m_unsent_map_edit_queue.front(); @@ -368,6 +370,8 @@ void Server::init() infostream << "- world: " << m_path_world << std::endl; infostream << "- game: " << m_gamespec.path << std::endl; + m_game_settings = Settings::createLayer(SL_GAME); + // Create world if it doesn't exist try { loadGameConfAndInitWorld(m_path_world, @@ -396,6 +400,7 @@ void Server::init() // Create the Map (loads map_meta.txt, overriding configured mapgen params) ServerMap *servermap = new ServerMap(m_path_world, this, m_emerge, m_metrics_backend.get()); + m_startup_server_map = servermap; // Initialize scripting infostream << "Server: Initializing Lua" << std::endl; @@ -437,6 +442,7 @@ void Server::init() m_craftdef->initHashes(this); // Initialize Environment + m_startup_server_map = nullptr; // Ownership moved to ServerEnvironment m_env = new ServerEnvironment(servermap, m_script, this, m_path_world); m_inventory_mgr->setEnv(m_env); @@ -1239,20 +1245,8 @@ bool Server::getClientConInfo(session_t peer_id, con::rtt_stat_type type, float* return *retval != -1; } -bool Server::getClientInfo( - session_t peer_id, - ClientState* state, - u32* uptime, - u8* ser_vers, - u16* prot_vers, - u8* major, - u8* minor, - u8* patch, - std::string* vers_string, - std::string* lang_code - ) +bool Server::getClientInfo(session_t peer_id, ClientInfo &ret) { - *state = m_clients.getClientState(peer_id); m_clients.lock(); RemoteClient* client = m_clients.lockedGetClientNoEx(peer_id, CS_Invalid); @@ -1261,15 +1255,18 @@ bool Server::getClientInfo( return false; } - *uptime = client->uptime(); - *ser_vers = client->serialization_version; - *prot_vers = client->net_proto_version; + ret.state = client->getState(); + ret.addr = client->getAddress(); + ret.uptime = client->uptime(); + ret.ser_vers = client->serialization_version; + ret.prot_vers = client->net_proto_version; - *major = client->getMajor(); - *minor = client->getMinor(); - *patch = client->getPatch(); - *vers_string = client->getFull(); - *lang_code = client->getLangCode(); + ret.major = client->getMajor(); + ret.minor = client->getMinor(); + ret.patch = client->getPatch(); + ret.vers_string = client->getFullVer(); + + ret.lang_code = client->getLangCode(); m_clients.unlock(); @@ -1355,7 +1352,7 @@ void Server::SendPlayerHPOrDie(PlayerSAO *playersao, const PlayerHPChangeReason return; session_t peer_id = playersao->getPeerID(); - bool is_alive = playersao->getHP() > 0; + bool is_alive = !playersao->isDead(); if (is_alive) SendPlayerHP(peer_id); @@ -1488,7 +1485,8 @@ void Server::SendChatMessage(session_t peer_id, const ChatMessage &message) NetworkPacket pkt(TOCLIENT_CHAT_MESSAGE, 0, peer_id); u8 version = 1; u8 type = message.type; - pkt << version << type << std::wstring(L"") << message.message << (u64)message.timestamp; + pkt << version << type << message.sender << message.message + << static_cast(message.timestamp); if (peer_id != PEER_ID_INEXISTENT) { RemotePlayer *player = m_env->getPlayer(peer_id); @@ -1823,6 +1821,9 @@ void Server::SendMovePlayer(session_t peer_id) PlayerSAO *sao = player->getPlayerSAO(); assert(sao); + // Send attachment updates instantly to the client prior updating position + sao->sendOutdatedData(); + NetworkPacket pkt(TOCLIENT_MOVE_PLAYER, sizeof(v3f) + sizeof(f32) * 2, peer_id); pkt << sao->getBasePosition() << sao->getLookPitch() << sao->getRotation().Y; @@ -2332,9 +2333,9 @@ void Server::SendBlockNoLock(session_t peer_id, MapBlock *block, u8 ver, /* Create a packet with the block in the right format */ - + thread_local const int net_compression_level = rangelim(g_settings->getS16("map_compression_level_net"), -1, 9); std::ostringstream os(std::ios_base::binary); - block->serialize(os, ver, false); + block->serialize(os, ver, false, net_compression_level); block->serializeNetworkSpecific(os); std::string s = os.str(); @@ -2495,7 +2496,9 @@ void Server::fillMediaCache() // Collect all media file paths std::vector paths; - // The paths are ordered in descending priority + + // ordered in descending priority + paths.push_back(getBuiltinLuaPath() + DIR_DELIM + "locale"); fs::GetRecursiveDirs(paths, porting::path_user + DIR_DELIM + "textures" + DIR_DELIM + "server"); fs::GetRecursiveDirs(paths, m_gamespec.path + DIR_DELIM + "textures"); m_modmgr->getModsMediaPaths(paths); @@ -2961,7 +2964,7 @@ void Server::handleChatInterfaceEvent(ChatEvent *evt) } } -std::wstring Server::handleChat(const std::string &name, const std::wstring &wname, +std::wstring Server::handleChat(const std::string &name, std::wstring wmessage, bool check_shout_priv, RemotePlayer *player) { // If something goes wrong, this player is to blame @@ -2999,7 +3002,7 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna auto message = trim(wide_to_utf8(wmessage)); if (message.find_first_of("\n\r") != std::wstring::npos) { - return L"New lines are not permitted in chat messages"; + return L"Newlines are not permitted in chat messages"; } // Run script hook, exit if script ate the chat message @@ -3020,10 +3023,10 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna the Cyrillic alphabet and some characters on older Android devices */ #ifdef __ANDROID__ - line += L"<" + wname + L"> " + wmessage; + line += L"<" + utf8_to_wide(name) + L"> " + wmessage; #else - line += narrow_to_wide(m_script->formatChatMessage(name, - wide_to_narrow(wmessage))); + line += utf8_to_wide(m_script->formatChatMessage(name, + wide_to_utf8(wmessage))); #endif } @@ -3036,35 +3039,23 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna /* Send the message to others */ - actionstream << "CHAT: " << wide_to_narrow(unescape_enriched(line)) << std::endl; + actionstream << "CHAT: " << wide_to_utf8(unescape_enriched(line)) << std::endl; + + ChatMessage chatmsg(line); std::vector clients = m_clients.getClientIDs(); + for (u16 cid : clients) + SendChatMessage(cid, chatmsg); - /* - Send the message back to the inital sender - if they are using protocol version >= 29 - */ - - session_t peer_id_to_avoid_sending = - (player ? player->getPeerId() : PEER_ID_INEXISTENT); - - if (player && player->protocol_version >= 29) - peer_id_to_avoid_sending = PEER_ID_INEXISTENT; - - for (u16 cid : clients) { - if (cid != peer_id_to_avoid_sending) - SendChatMessage(cid, ChatMessage(line)); - } return L""; } void Server::handleAdminChat(const ChatEventChat *evt) { std::string name = evt->nick; - std::wstring wname = utf8_to_wide(name); std::wstring wmessage = evt->evt_msg; - std::wstring answer = handleChat(name, wname, wmessage); + std::wstring answer = handleChat(name, wmessage); // If asked to send answer to sender if (!answer.empty()) { @@ -3101,46 +3092,43 @@ PlayerSAO *Server::getPlayerSAO(session_t peer_id) return player->getPlayerSAO(); } -std::wstring Server::getStatusString() +std::string Server::getStatusString() { - std::wostringstream os(std::ios_base::binary); - os << L"# Server: "; + std::ostringstream os(std::ios_base::binary); + os << "# Server: "; // Version - os << L"version=" << narrow_to_wide(g_version_string); + os << "version=" << g_version_string; // Uptime - os << L", uptime=" << m_uptime_counter->get(); + os << ", uptime=" << m_uptime_counter->get(); // Max lag estimate - os << L", max_lag=" << (m_env ? m_env->getMaxLagEstimate() : 0); + os << ", max_lag=" << (m_env ? m_env->getMaxLagEstimate() : 0); // Information about clients bool first = true; - os << L", clients={"; + os << ", clients={"; if (m_env) { std::vector clients = m_clients.getClientIDs(); for (session_t client_id : clients) { RemotePlayer *player = m_env->getPlayer(client_id); // Get name of player - std::wstring name = L"unknown"; - if (player) - name = narrow_to_wide(player->getName()); + const char *name = player ? player->getName() : ""; // Add name to information string if (!first) - os << L", "; + os << ", "; else first = false; - os << name; } } - os << L"}"; + os << "}"; if (m_env && !((ServerMap*)(&m_env->getMap()))->isSavingEnabled()) - os << std::endl << L"# Server: " << " WARNING: Map saving is disabled."; + os << std::endl << "# Server: " << " WARNING: Map saving is disabled."; if (!g_settings->get("motd").empty()) - os << std::endl << L"# Server: " << narrow_to_wide(g_settings->get("motd")); + os << std::endl << "# Server: " << g_settings->get("motd"); return os.str(); } @@ -3336,7 +3324,8 @@ void Server::hudSetHotbarSelectedImage(RemotePlayer *player, const std::string & Address Server::getPeerAddress(session_t peer_id) { - return m_con->GetPeerAddress(peer_id); + // Note that this is only set after Init was received in Server::handleCommand_Init + return getClient(peer_id, CS_Invalid)->getAddress(); } void Server::setLocalPlayerAnimations(RemotePlayer *player, @@ -3470,7 +3459,8 @@ void Server::deleteParticleSpawner(const std::string &playername, u32 id) SendDeleteParticleSpawner(peer_id, id); } -bool Server::dynamicAddMedia(const std::string &filepath) +bool Server::dynamicAddMedia(const std::string &filepath, + std::vector &sent_to) { std::string filename = fs::GetFilenameFromPath(filepath.c_str()); if (m_media.find(filename) != m_media.end()) { @@ -3490,9 +3480,17 @@ bool Server::dynamicAddMedia(const std::string &filepath) pkt << raw_hash << filename << (bool) true; pkt.putLongString(filedata); - auto client_ids = m_clients.getClientIDs(CS_DefinitionsSent); - for (session_t client_id : client_ids) { + m_clients.lock(); + for (auto &pair : m_clients.getClientList()) { + if (pair.second->getState() < CS_DefinitionsSent) + continue; + if (pair.second->net_proto_version < 39) + continue; + + if (auto player = m_env->getPlayer(pair.second->peer_id)) + sent_to.emplace_back(player); /* + FIXME: this is a very awful hack The network layer only guarantees ordered delivery inside a channel. Since the very next packet could be one that uses the media, we have to push the media over ALL channels to ensure it is processed before @@ -3501,9 +3499,10 @@ bool Server::dynamicAddMedia(const std::string &filepath) - channel 1 (HUD) - channel 0 (everything else: e.g. play_sound, object messages) */ - m_clients.send(client_id, 1, &pkt, true); - m_clients.send(client_id, 0, &pkt, true); + m_clients.send(pair.second->peer_id, 1, &pkt, true); + m_clients.send(pair.second->peer_id, 0, &pkt, true); } + m_clients.unlock(); return true; } diff --git a/src/server.h b/src/server.h index 4b3ac5cf7..9857215d0 100644 --- a/src/server.h +++ b/src/server.h @@ -126,6 +126,17 @@ struct MinimapMode { u16 scale = 1; }; +// structure for everything getClientInfo returns, for convenience +struct ClientInfo { + ClientState state; + Address addr; + u32 uptime; + u8 ser_vers; + u16 prot_vers; + u8 major, minor, patch; + std::string vers_string, lang_code; +}; + class Server : public con::PeerHandler, public MapEventReceiver, public IGameDef { @@ -208,7 +219,7 @@ public: void onMapEditEvent(const MapEditEvent &event); // Connection must be locked when called - std::wstring getStatusString(); + std::string getStatusString(); inline double getUptime() const { return m_uptime_counter->get(); } // read shutdown state @@ -246,7 +257,7 @@ public: void deleteParticleSpawner(const std::string &playername, u32 id); - bool dynamicAddMedia(const std::string &filepath); + bool dynamicAddMedia(const std::string &filepath, std::vector &sent_to); ServerInventoryManager *getInventoryMgr() const { return m_inventory_mgr.get(); } void sendDetachedInventory(Inventory *inventory, const std::string &name, session_t peer_id); @@ -326,9 +337,7 @@ public: void DenyAccess_Legacy(session_t peer_id, const std::wstring &reason); void DisconnectPeer(session_t peer_id); bool getClientConInfo(session_t peer_id, con::rtt_stat_type type, float *retval); - bool getClientInfo(session_t peer_id, ClientState *state, u32 *uptime, - u8* ser_vers, u16* prot_vers, u8* major, u8* minor, u8* patch, - std::string* vers_string, std::string* lang_code); + bool getClientInfo(session_t peer_id, ClientInfo &ret); void printToConsoleOnly(const std::string &text); @@ -486,10 +495,8 @@ private: void handleChatInterfaceEvent(ChatEvent *evt); // This returns the answer to the sender of wmessage, or "" if there is none - std::wstring handleChat(const std::string &name, const std::wstring &wname, - std::wstring wmessage_input, - bool check_shout_priv = false, - RemotePlayer *player = NULL); + std::wstring handleChat(const std::string &name, std::wstring wmessage_input, + bool check_shout_priv = false, RemotePlayer *player = nullptr); void handleAdminChat(const ChatEventChat *evt); // When called, connection mutex should be locked @@ -524,6 +531,7 @@ private: u16 m_max_chatmessage_length; // For "dedicated" server list flag bool m_dedicated; + Settings *m_game_settings = nullptr; // Thread can set; step() will throw as ServerError MutexedVariable m_async_fatal_error; @@ -539,6 +547,10 @@ private: // Environment ServerEnvironment *m_env = nullptr; + // Reference to the server map until ServerEnvironment is initialized + // after that this variable must be a nullptr + ServerMap *m_startup_server_map = nullptr; + // server connection std::shared_ptr m_con; @@ -564,9 +576,6 @@ private: // Craft definition manager IWritableCraftDefManager *m_craftdef; - // Event manager - EventManager *m_event; - // Mods std::unique_ptr m_modmgr; diff --git a/src/server/activeobjectmgr.cpp b/src/server/activeobjectmgr.cpp index 1b8e31409..acd6611f4 100644 --- a/src/server/activeobjectmgr.cpp +++ b/src/server/activeobjectmgr.cpp @@ -127,6 +127,21 @@ void ActiveObjectMgr::getObjectsInsideRadius(const v3f &pos, float radius, } } +void ActiveObjectMgr::getObjectsInArea(const aabb3f &box, + std::vector &result, + std::function include_obj_cb) +{ + for (auto &activeObject : m_active_objects) { + ServerActiveObject *obj = activeObject.second; + const v3f &objectpos = obj->getBasePosition(); + if (!box.isPointInside(objectpos)) + continue; + + if (!include_obj_cb || include_obj_cb(obj)) + result.push_back(obj); + } +} + void ActiveObjectMgr::getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 radius, f32 player_radius, std::set ¤t_objects, std::queue &added_objects) diff --git a/src/server/activeobjectmgr.h b/src/server/activeobjectmgr.h index bc2085499..d43f5643c 100644 --- a/src/server/activeobjectmgr.h +++ b/src/server/activeobjectmgr.h @@ -38,6 +38,9 @@ public: void getObjectsInsideRadius(const v3f &pos, float radius, std::vector &result, std::function include_obj_cb); + void getObjectsInArea(const aabb3f &box, + std::vector &result, + std::function include_obj_cb); void getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 radius, f32 player_radius, std::set ¤t_objects, diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index b39797531..3bcbe107b 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -112,6 +112,15 @@ void LuaEntitySAO::addedToEnvironment(u32 dtime_s) } } +void LuaEntitySAO::dispatchScriptDeactivate() +{ + // Ensure that this is in fact a registered entity, + // and that it isn't already gone. + // The latter also prevents this from ever being called twice. + if (m_registered && !isGone()) + m_env->getScriptIface()->luaentity_Deactivate(m_id); +} + void LuaEntitySAO::step(float dtime, bool send_recommended) { if(!m_properties_sent) @@ -137,15 +146,11 @@ void LuaEntitySAO::step(float dtime, bool send_recommended) // Each frame, parent position is copied if the object is attached, otherwise it's calculated normally // If the object gets detached this comes into effect automatically from the last known origin - if(isAttached()) - { - v3f pos = m_env->getActiveObject(m_attachment_parent_id)->getBasePosition(); - m_base_position = pos; + if (auto *parent = getParent()) { + m_base_position = parent->getBasePosition(); m_velocity = v3f(0,0,0); m_acceleration = v3f(0,0,0); - } - else - { + } else { if(m_prop.physical){ aabb3f box = m_prop.collisionbox; box.MinEdge *= BS; @@ -302,7 +307,7 @@ u16 LuaEntitySAO::punch(v3f dir, { if (!m_registered) { // Delete unknown LuaEntities when punched - m_pending_removal = true; + markForRemoval(); return 0; } @@ -335,7 +340,7 @@ u16 LuaEntitySAO::punch(v3f dir, clearParentAttachment(); clearChildAttachments(); m_env->getScriptIface()->luaentity_on_death(m_id, puncher); - m_pending_removal = true; + markForRemoval(); } actionstream << puncher->getDescription() << " (id=" << puncher->getId() << @@ -483,6 +488,9 @@ void LuaEntitySAO::sendPosition(bool do_interpolate, bool is_movement_end) if(isAttached()) return; + // Send attachment updates instantly to the client prior updating position + sendOutdatedData(); + m_last_sent_move_precision = m_base_position.getDistanceFrom( m_last_sent_position); m_last_sent_position_timer = 0; diff --git a/src/server/luaentity_sao.h b/src/server/luaentity_sao.h index e060aa06d..6883ae1b9 100644 --- a/src/server/luaentity_sao.h +++ b/src/server/luaentity_sao.h @@ -71,6 +71,11 @@ public: bool getSelectionBox(aabb3f *toset) const; bool collideWithObjects() const; +protected: + void dispatchScriptDeactivate(); + virtual void onMarkedForDeactivation() { dispatchScriptDeactivate(); } + virtual void onMarkedForRemoval() { dispatchScriptDeactivate(); } + private: std::string getPropertyPacket(); void sendPosition(bool do_interpolate, bool is_movement_end); diff --git a/src/server/mods.cpp b/src/server/mods.cpp index cf1467648..83fa12da9 100644 --- a/src/server/mods.cpp +++ b/src/server/mods.cpp @@ -98,7 +98,8 @@ void ServerModManager::getModNames(std::vector &modlist) const void ServerModManager::getModsMediaPaths(std::vector &paths) const { - for (const ModSpec &spec : m_sorted_mods) { + for (auto it = m_sorted_mods.crbegin(); it != m_sorted_mods.crend(); it++) { + const ModSpec &spec = *it; fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "textures"); fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "sounds"); fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "media"); diff --git a/src/server/mods.h b/src/server/mods.h index 54774bd86..8954bbf72 100644 --- a/src/server/mods.h +++ b/src/server/mods.h @@ -42,5 +42,13 @@ public: void loadMods(ServerScripting *script); const ModSpec *getModSpec(const std::string &modname) const; void getModNames(std::vector &modlist) const; + /** + * Recursively gets all paths of mod folders that can contain media files. + * + * Result is ordered in descending priority, ie. files from an earlier path + * should not be replaced by files from a latter one. + * + * @param paths result vector + */ void getModsMediaPaths(std::vector &paths) const; }; diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 62515d1c9..0d31f2e0b 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -148,7 +148,7 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version) void PlayerSAO::getStaticData(std::string * result) const { - FATAL_ERROR("Obsolete function"); + FATAL_ERROR("This function shall not be called for PlayerSAO"); } void PlayerSAO::step(float dtime, bool send_recommended) @@ -260,10 +260,13 @@ void PlayerSAO::step(float dtime, bool send_recommended) // otherwise it's calculated normally. // If the object gets detached this comes into effect automatically from // the last known origin. - if (isAttached()) { - v3f pos = m_env->getActiveObject(m_attachment_parent_id)->getBasePosition(); + if (auto *parent = getParent()) { + v3f pos = parent->getBasePosition(); m_last_good_position = pos; setBasePosition(pos); + + if (m_player) + m_player->setSpeed(v3f()); } if (!send_recommended) @@ -456,6 +459,11 @@ u16 PlayerSAO::punch(v3f dir, return hitparams.wear; } +void PlayerSAO::rightClick(ServerActiveObject *clicker) +{ + m_env->getScriptIface()->on_rightclickplayer(this, clicker); +} + void PlayerSAO::setHP(s32 hp, const PlayerHPChangeReason &reason) { if (hp == (s32)m_hp) @@ -531,7 +539,7 @@ bool PlayerSAO::setWieldedItem(const ItemStack &item) void PlayerSAO::disconnected() { m_peer_id = PEER_ID_INEXISTENT; - m_pending_removal = true; + markForRemoval(); } void PlayerSAO::unlinkPlayerSessionAndSave() @@ -565,34 +573,11 @@ void PlayerSAO::setMaxSpeedOverride(const v3f &vel) bool PlayerSAO::checkMovementCheat() { if (m_is_singleplayer || + isAttached() || g_settings->getBool("disable_anticheat")) { m_last_good_position = m_base_position; return false; } - if (UnitSAO *parent = dynamic_cast(getParent())) { - v3f attachment_pos; - { - int parent_id; - std::string bone; - v3f attachment_rot; - bool force_visible; - getAttachment(&parent_id, &bone, &attachment_pos, &attachment_rot, &force_visible); - } - - v3f parent_pos = parent->getBasePosition(); - f32 diff = m_base_position.getDistanceFromSQ(parent_pos) - attachment_pos.getLengthSQ(); - const f32 maxdiff = 4.0f * BS; // fair trade-off value for various latencies - - if (diff > maxdiff * maxdiff) { - setBasePosition(parent_pos); - actionstream << "Server: " << m_player->getName() - << " moved away from parent; diff=" << sqrtf(diff) / BS - << " resetting position." << std::endl; - return true; - } - // Player movement is locked to the entity. Skip further checks - return false; - } bool cheated = false; /* diff --git a/src/server/player_sao.h b/src/server/player_sao.h index 3e178d4fc..8e2d8803f 100644 --- a/src/server/player_sao.h +++ b/src/server/player_sao.h @@ -111,10 +111,9 @@ public: u16 punch(v3f dir, const ToolCapabilities *toolcap, ServerActiveObject *puncher, float time_from_last_punch); - void rightClick(ServerActiveObject *clicker) {} + void rightClick(ServerActiveObject *clicker); void setHP(s32 hp, const PlayerHPChangeReason &reason); void setHPRaw(u16 hp) { m_hp = hp; } - s16 readDamage(); u16 getBreath() const { return m_breath; } void setBreath(const u16 breath, bool send = true); diff --git a/src/server/serveractiveobject.cpp b/src/server/serveractiveobject.cpp index 8cb59b2d6..96b433d1d 100644 --- a/src/server/serveractiveobject.cpp +++ b/src/server/serveractiveobject.cpp @@ -73,3 +73,19 @@ void ServerActiveObject::dumpAOMessagesToQueue(std::queue & m_messages_out.pop(); } } + +void ServerActiveObject::markForRemoval() +{ + if (!m_pending_removal) { + onMarkedForRemoval(); + m_pending_removal = true; + } +} + +void ServerActiveObject::markForDeactivation() +{ + if (!m_pending_deactivation) { + onMarkedForDeactivation(); + m_pending_deactivation = true; + } +} diff --git a/src/server/serveractiveobject.h b/src/server/serveractiveobject.h index 2764d159e..51f445914 100644 --- a/src/server/serveractiveobject.h +++ b/src/server/serveractiveobject.h @@ -70,6 +70,10 @@ public: virtual bool environmentDeletes() const { return true; } + // Safely mark the object for removal or deactivation + void markForRemoval(); + void markForDeactivation(); + // Create a certain type of ServerActiveObject static ServerActiveObject* create(ActiveObjectType type, ServerEnvironment *env, u16 id, v3f pos, @@ -158,8 +162,6 @@ public: {} virtual const ItemGroupList &getArmorGroups() const { static ItemGroupList rv; return rv; } - virtual void setPhysicsOverride(float physics_override_speed, float physics_override_jump, float physics_override_gravity) - {} virtual void setAnimation(v2f frames, float frame_speed, float frame_blend, bool frame_loop) {} virtual void getAnimation(v2f *frames, float *frame_speed, float *frame_blend, bool *frame_loop) @@ -202,7 +204,6 @@ public: } std::string generateUpdateInfantCommand(u16 infant_id, u16 protocol_version); - std::string generateUpdateNametagAttributesCommand(const video::SColor &color) const; void dumpAOMessagesToQueue(std::queue &queue); @@ -213,25 +214,6 @@ public: */ u16 m_known_by_count = 0; - /* - - Whether this object is to be removed when nobody knows about - it anymore. - - Removal is delayed to preserve the id for the time during which - it could be confused to some other object by some client. - - This is usually set to true by the step() method when the object wants - to be deleted but can be set by anything else too. - */ - bool m_pending_removal = false; - - /* - Same purpose as m_pending_removal but for deactivation. - deactvation = save static data in block, remove active object - - If this is set alongside with m_pending_removal, removal takes - priority. - */ - bool m_pending_deactivation = false; - /* A getter that unifies the above to answer the question: "Can the environment still interact with this object?" @@ -239,6 +221,9 @@ public: inline bool isGone() const { return m_pending_removal || m_pending_deactivation; } + inline bool isPendingRemoval() const + { return m_pending_removal; } + /* Whether the object's static data has been stored to a block */ @@ -250,6 +235,9 @@ public: v3s16 m_static_block = v3s16(1337,1337,1337); protected: + virtual void onMarkedForDeactivation() {} + virtual void onMarkedForRemoval() {} + virtual void onAttach(int parent_id) {} virtual void onDetach(int parent_id) {} @@ -257,6 +245,27 @@ protected: v3f m_base_position; std::unordered_set m_attached_particle_spawners; + /* + Same purpose as m_pending_removal but for deactivation. + deactvation = save static data in block, remove active object + + If this is set alongside with m_pending_removal, removal takes + priority. + Note: Do not assign this directly, use markForDeactivation() instead. + */ + bool m_pending_deactivation = false; + + /* + - Whether this object is to be removed when nobody knows about + it anymore. + - Removal is delayed to preserve the id for the time during which + it could be confused to some other object by some client. + - This is usually set to true by the step() method when the object wants + to be deleted but can be set by anything else too. + Note: Do not assign this directly, use markForRemoval() instead. + */ + bool m_pending_removal = false; + /* Queue of messages to be sent to the client */ diff --git a/src/server/serverinventorymgr.cpp b/src/server/serverinventorymgr.cpp index 555e01ec6..2a80c9bbe 100644 --- a/src/server/serverinventorymgr.cpp +++ b/src/server/serverinventorymgr.cpp @@ -168,6 +168,18 @@ bool ServerInventoryManager::removeDetachedInventory(const std::string &name) return true; } +bool ServerInventoryManager::checkDetachedInventoryAccess( + const InventoryLocation &loc, const std::string &player) const +{ + SANITY_CHECK(loc.type == InventoryLocation::DETACHED); + + const auto &inv_it = m_detached_inventories.find(loc.name); + if (inv_it == m_detached_inventories.end()) + return false; + + return inv_it->second.owner.empty() || inv_it->second.owner == player; +} + void ServerInventoryManager::sendDetachedInventories(const std::string &peer_name, bool incremental, std::function apply_cb) diff --git a/src/server/serverinventorymgr.h b/src/server/serverinventorymgr.h index ccf6d3b2e..b6541bd3c 100644 --- a/src/server/serverinventorymgr.h +++ b/src/server/serverinventorymgr.h @@ -43,6 +43,8 @@ public: Inventory *createDetachedInventory(const std::string &name, IItemDefManager *idef, const std::string &player = ""); bool removeDetachedInventory(const std::string &name); + bool checkDetachedInventoryAccess( + const InventoryLocation &loc, const std::string &player) const; void sendDetachedInventories(const std::string &peer_name, bool incremental, std::function apply_cb); diff --git a/src/server/unit_sao.cpp b/src/server/unit_sao.cpp index 2371640ca..fa6c8f0f4 100644 --- a/src/server/unit_sao.cpp +++ b/src/server/unit_sao.cpp @@ -134,16 +134,21 @@ void UnitSAO::setAttachment(int parent_id, const std::string &bone, v3f position int old_parent = m_attachment_parent_id; m_attachment_parent_id = parent_id; + + // The detach callbacks might call to setAttachment() again. + // Ensure the attachment params are applied after this callback is run. + if (parent_id != old_parent) + onDetach(old_parent); + + m_attachment_parent_id = parent_id; m_attachment_bone = bone; m_attachment_position = position; m_attachment_rotation = rotation; m_force_visible = force_visible; m_attachment_sent = false; - if (parent_id != old_parent) { - onDetach(old_parent); + if (parent_id != old_parent) onAttach(parent_id); - } } void UnitSAO::getAttachment(int *parent_id, std::string *bone, v3f *position, diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index d044b003d..cd5ac0753 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -632,7 +632,7 @@ void ServerEnvironment::saveMeta() // Open file and serialize std::ostringstream ss(std::ios_base::binary); - Settings args; + Settings args("EnvArgsEnd"); args.setU64("game_time", m_game_time); args.setU64("time_of_day", getTimeOfDay()); args.setU64("last_clear_objects_time", m_last_clear_objects_time); @@ -641,7 +641,6 @@ void ServerEnvironment::saveMeta() m_lbm_mgr.createIntroductionTimesString()); args.setU64("day_count", m_day_count); args.writeLines(ss); - ss<<"EnvArgsEnd\n"; if(!fs::safeWriteToFile(path, ss.str())) { @@ -676,9 +675,9 @@ void ServerEnvironment::loadMeta() throw SerializationError("Couldn't load env meta"); } - Settings args; + Settings args("EnvArgsEnd"); - if (!args.parseConfigLines(is, "EnvArgsEnd")) { + if (!args.parseConfigLines(is)) { throw SerializationError("ServerEnvironment::loadMeta(): " "EnvArgsEnd not found!"); } @@ -1164,14 +1163,14 @@ void ServerEnvironment::clearObjects(ClearObjectsMode mode) // If known by some client, don't delete immediately if (obj->m_known_by_count > 0) { - obj->m_pending_removal = true; + obj->markForRemoval(); return false; } // Tell the object about removal obj->removingFromEnvironment(); // Deregister in scripting api - m_script->removeObjectReference(obj); + m_script->removeObjectReference(dynamic_cast(obj)); // Delete active object if (obj->environmentDeletes()) @@ -1737,7 +1736,7 @@ u16 ServerEnvironment::addActiveObjectRaw(ServerActiveObject *object, } // Register reference in scripting api (must be done before post-init) - m_script->addObjectReference(object); + m_script->addObjectReference(dynamic_cast(object)); // Post-initialize object object->addedToEnvironment(dtime_s); @@ -1792,7 +1791,7 @@ void ServerEnvironment::removeRemovedObjects() /* Delete static data from block if removed */ - if (obj->m_pending_removal) + if (obj->isPendingRemoval()) deleteStaticFromBlock(obj, id, MOD_REASON_REMOVE_OBJECTS_REMOVE, false); // If still known by clients, don't actually remove. On some future @@ -1803,7 +1802,7 @@ void ServerEnvironment::removeRemovedObjects() /* Move static data from active to stored if deactivated */ - if (!obj->m_pending_removal && obj->m_static_exists) { + if (!obj->isPendingRemoval() && obj->m_static_exists) { MapBlock *block = m_map->emergeBlock(obj->m_static_block, false); if (block) { const auto i = block->m_static_objects.m_active.find(id); @@ -1827,7 +1826,7 @@ void ServerEnvironment::removeRemovedObjects() // Tell the object about removal obj->removingFromEnvironment(); // Deregister in scripting api - m_script->removeObjectReference(obj); + m_script->removeObjectReference(dynamic_cast(obj)); // Delete if (obj->environmentDeletes()) @@ -1991,6 +1990,7 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) if (!force_delete && obj->m_static_exists && !m_active_blocks.contains(obj->m_static_block) && m_active_blocks.contains(blockpos_o)) { + // Delete from block where object was located deleteStaticFromBlock(obj, id, MOD_REASON_STATIC_DATA_REMOVED, false); @@ -2068,6 +2068,10 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) force_delete = true; } + // Regardless of what happens to the object at this point, deactivate it first. + // This ensures that LuaEntity on_deactivate is always called. + obj->markForDeactivation(); + /* If known by some client, set pending deactivation. Otherwise delete it immediately. @@ -2077,7 +2081,6 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) << "object id=" << id << " is known by clients" << "; not deleting yet" << std::endl; - obj->m_pending_deactivation = true; return false; } @@ -2088,7 +2091,7 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) // Tell the object about removal obj->removingFromEnvironment(); // Deregister in scripting api - m_script->removeObjectReference(obj); + m_script->removeObjectReference(dynamic_cast(obj)); // Delete active object if (obj->environmentDeletes()) diff --git a/src/serverenvironment.h b/src/serverenvironment.h index cfd5b8f3e..a11c814ed 100644 --- a/src/serverenvironment.h +++ b/src/serverenvironment.h @@ -190,14 +190,6 @@ enum ClearObjectsMode { CLEAR_OBJECTS_MODE_QUICK, }; -/* - The server-side environment. - - This is not thread-safe. Server uses an environment mutex. -*/ - -typedef std::unordered_map ServerActiveObjectMap; - class ServerEnvironment : public Environment { public: @@ -332,6 +324,13 @@ public: return m_ao_manager.getObjectsInsideRadius(pos, radius, objects, include_obj_cb); } + // Find all active objects inside a box + void getObjectsInArea(std::vector &objects, const aabb3f &box, + std::function include_obj_cb) + { + return m_ao_manager.getObjectsInArea(box, objects, include_obj_cb); + } + // Clear objects, loading and going through every MapBlock void clearObjects(ClearObjectsMode mode); diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 80a8c2f1a..3bcab3d58 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -17,181 +17,19 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include -#include -#include - #include "version.h" #include "settings.h" #include "serverlist.h" #include "filesys.h" -#include "porting.h" #include "log.h" #include "network/networkprotocol.h" #include #include "convert_json.h" #include "httpfetch.h" -#include "util/string.h" namespace ServerList { - -std::string getFilePath() -{ - std::string serverlist_file = g_settings->get("serverlist_file"); - - std::string dir_path = "client" DIR_DELIM "serverlist" DIR_DELIM; - fs::CreateDir(porting::path_user + DIR_DELIM "client"); - fs::CreateDir(porting::path_user + DIR_DELIM + dir_path); - return porting::path_user + DIR_DELIM + dir_path + serverlist_file; -} - - -std::vector getLocal() -{ - std::string path = ServerList::getFilePath(); - std::string liststring; - fs::ReadFile(path, liststring); - - return deSerialize(liststring); -} - - -std::vector getOnline() -{ - std::ostringstream geturl; - - u16 proto_version_min = CLIENT_PROTOCOL_VERSION_MIN; - - geturl << g_settings->get("serverlist_url") << - "/list?proto_version_min=" << proto_version_min << - "&proto_version_max=" << CLIENT_PROTOCOL_VERSION_MAX; - Json::Value root = fetchJsonValue(geturl.str(), NULL); - - std::vector server_list; - - if (!root.isObject()) { - return server_list; - } - - root = root["list"]; - if (!root.isArray()) { - return server_list; - } - - for (const Json::Value &i : root) { - if (i.isObject()) { - server_list.push_back(i); - } - } - - return server_list; -} - - -// Delete a server from the local favorites list -bool deleteEntry(const ServerListSpec &server) -{ - std::vector serverlist = ServerList::getLocal(); - for (std::vector::iterator it = serverlist.begin(); - it != serverlist.end();) { - if ((*it)["address"] == server["address"] && - (*it)["port"] == server["port"]) { - it = serverlist.erase(it); - } else { - ++it; - } - } - - std::string path = ServerList::getFilePath(); - std::ostringstream ss(std::ios_base::binary); - ss << ServerList::serialize(serverlist); - if (!fs::safeWriteToFile(path, ss.str())) - return false; - return true; -} - -// Insert a server to the local favorites list -bool insert(const ServerListSpec &server) -{ - // Remove duplicates - ServerList::deleteEntry(server); - - std::vector serverlist = ServerList::getLocal(); - - // Insert new server at the top of the list - serverlist.insert(serverlist.begin(), server); - - std::string path = ServerList::getFilePath(); - std::ostringstream ss(std::ios_base::binary); - ss << ServerList::serialize(serverlist); - if (!fs::safeWriteToFile(path, ss.str())) - return false; - - return true; -} - -std::vector deSerialize(const std::string &liststring) -{ - std::vector serverlist; - std::istringstream stream(liststring); - std::string line, tmp; - while (std::getline(stream, line)) { - std::transform(line.begin(), line.end(), line.begin(), ::toupper); - if (line == "[SERVER]") { - ServerListSpec server; - std::getline(stream, tmp); - server["name"] = tmp; - std::getline(stream, tmp); - server["address"] = tmp; - std::getline(stream, tmp); - server["port"] = tmp; - bool unique = true; - for (const ServerListSpec &added : serverlist) { - if (server["name"] == added["name"] - && server["port"] == added["port"]) { - unique = false; - break; - } - } - if (!unique) - continue; - std::getline(stream, tmp); - server["description"] = tmp; - serverlist.push_back(server); - } - } - return serverlist; -} - -const std::string serialize(const std::vector &serverlist) -{ - std::string liststring; - for (const ServerListSpec &it : serverlist) { - liststring += "[server]\n"; - liststring += it["name"].asString() + '\n'; - liststring += it["address"].asString() + '\n'; - liststring += it["port"].asString() + '\n'; - liststring += it["description"].asString() + '\n'; - liststring += '\n'; - } - return liststring; -} - -const std::string serializeJson(const std::vector &serverlist) -{ - Json::Value root; - Json::Value list(Json::arrayValue); - for (const ServerListSpec &it : serverlist) { - list.append(it); - } - root["list"] = list; - - return fastWriteJson(root); -} - - #if USE_CURL void sendAnnounce(AnnounceAction action, const u16 port, diff --git a/src/serverlist.h b/src/serverlist.h index 2b82b7431..4a0bd5efa 100644 --- a/src/serverlist.h +++ b/src/serverlist.h @@ -24,21 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -typedef Json::Value ServerListSpec; - namespace ServerList { -std::vector getLocal(); -std::vector getOnline(); - -bool deleteEntry(const ServerListSpec &server); -bool insert(const ServerListSpec &server); - -std::vector deSerialize(const std::string &liststring); -const std::string serialize(const std::vector &serverlist); -std::vector deSerializeJson(const std::string &liststring); -const std::string serializeJson(const std::vector &serverlist); - #if USE_CURL enum AnnounceAction {AA_START, AA_UPDATE, AA_DELETE}; void sendAnnounce(AnnounceAction, u16 port, diff --git a/src/settings.cpp b/src/settings.cpp index f30ef34e9..cff393e5f 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -33,27 +33,50 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include -static Settings main_settings; -Settings *g_settings = &main_settings; +Settings *g_settings = nullptr; // Populated in main() std::string g_settings_path; -Settings::~Settings() +Settings *Settings::s_layers[SL_TOTAL_COUNT] = {0}; // Zeroed by compiler +std::unordered_map Settings::s_flags; + + +Settings *Settings::createLayer(SettingsLayer sl, const std::string &end_tag) { - clear(); + if ((int)sl < 0 || sl >= SL_TOTAL_COUNT) + throw BaseException("Invalid settings layer"); + + Settings *&pos = s_layers[(size_t)sl]; + if (pos) + throw BaseException("Setting layer " + std::to_string(sl) + " already exists"); + + pos = new Settings(end_tag); + pos->m_settingslayer = sl; + + if (sl == SL_GLOBAL) + g_settings = pos; + return pos; } -Settings & Settings::operator += (const Settings &other) +Settings *Settings::getLayer(SettingsLayer sl) { - if (&other == this) - return *this; + sanity_check((int)sl >= 0 && sl < SL_TOTAL_COUNT); + return s_layers[(size_t)sl]; +} + +Settings::~Settings() +{ MutexAutoLock lock(m_mutex); - MutexAutoLock lock2(other.m_mutex); - updateNoLock(other); + if (m_settingslayer < SL_TOTAL_COUNT) + s_layers[(size_t)m_settingslayer] = nullptr; - return *this; + // Compatibility + if (m_settingslayer == SL_GLOBAL) + g_settings = nullptr; + + clearNoLock(); } @@ -62,11 +85,16 @@ Settings & Settings::operator = (const Settings &other) if (&other == this) return *this; + // TODO: Avoid copying Settings objects. Make this private. + FATAL_ERROR_IF(m_settingslayer != SL_TOTAL_COUNT && other.m_settingslayer != SL_TOTAL_COUNT, + ("Tried to copy unique Setting layer " + std::to_string(m_settingslayer)).c_str()); + MutexAutoLock lock(m_mutex); MutexAutoLock lock2(other.m_mutex); clearNoLock(); - updateNoLock(other); + m_settings = other.m_settings; + m_callbacks = other.m_callbacks; return *this; } @@ -130,11 +158,11 @@ bool Settings::readConfigFile(const char *filename) if (!is.good()) return false; - return parseConfigLines(is, ""); + return parseConfigLines(is); } -bool Settings::parseConfigLines(std::istream &is, const std::string &end) +bool Settings::parseConfigLines(std::istream &is) { MutexAutoLock lock(m_mutex); @@ -142,7 +170,7 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end) while (is.good()) { std::getline(is, line); - SettingsParseEvent event = parseConfigObject(line, end, name, value); + SettingsParseEvent event = parseConfigObject(line, name, value); switch (event) { case SPE_NONE: @@ -155,8 +183,8 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end) case SPE_END: return true; case SPE_GROUP: { - Settings *group = new Settings; - if (!group->parseConfigLines(is, "}")) { + Settings *group = new Settings("}"); + if (!group->parseConfigLines(is)) { delete group; return false; } @@ -169,7 +197,8 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end) } } - return end.empty(); + // false (failure) if end tag not found + return m_end_tag.empty(); } @@ -179,6 +208,14 @@ void Settings::writeLines(std::ostream &os, u32 tab_depth) const for (const auto &setting_it : m_settings) printEntry(os, setting_it.first, setting_it.second, tab_depth); + + // For groups this must be "}" ! + if (!m_end_tag.empty()) { + for (u32 i = 0; i < tab_depth; i++) + os << "\t"; + + os << m_end_tag << "\n"; + } } @@ -193,9 +230,7 @@ void Settings::printEntry(std::ostream &os, const std::string &name, entry.group->writeLines(os, tab_depth + 1); - for (u32 i = 0; i != tab_depth; i++) - os << "\t"; - os << "}\n"; + // Closing bracket handled by writeLines } else { os << name << " = "; @@ -207,8 +242,7 @@ void Settings::printEntry(std::ostream &os, const std::string &name, } -bool Settings::updateConfigObject(std::istream &is, std::ostream &os, - const std::string &end, u32 tab_depth) +bool Settings::updateConfigObject(std::istream &is, std::ostream &os, u32 tab_depth) { SettingEntries::const_iterator it; std::set present_entries; @@ -220,11 +254,11 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, // in the object if existing while (is.good() && !end_found) { std::getline(is, line); - SettingsParseEvent event = parseConfigObject(line, end, name, value); + SettingsParseEvent event = parseConfigObject(line, name, value); switch (event) { case SPE_END: - os << line << (is.eof() ? "" : "\n"); + // Skip end tag. Append later. end_found = true; break; case SPE_MULTILINE: @@ -252,14 +286,13 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, if (it != m_settings.end() && it->second.is_group) { os << line << "\n"; sanity_check(it->second.group != NULL); - was_modified |= it->second.group->updateConfigObject(is, os, - "}", tab_depth + 1); + was_modified |= it->second.group->updateConfigObject(is, os, tab_depth + 1); } else if (it == m_settings.end()) { // Remove by skipping was_modified = true; - Settings removed_group; // Move 'is' to group end + Settings removed_group("}"); // Move 'is' to group end std::stringstream ss; - removed_group.updateConfigObject(is, ss, "}", tab_depth + 1); + removed_group.updateConfigObject(is, ss, tab_depth + 1); break; } else { printEntry(os, name, it->second, tab_depth); @@ -273,6 +306,9 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, } } + if (!line.empty() && is.eof()) + os << "\n"; + // Add any settings in the object that don't exist in the config file yet for (it = m_settings.begin(); it != m_settings.end(); ++it) { if (present_entries.find(it->first) != present_entries.end()) @@ -282,6 +318,12 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os, was_modified = true; } + // Append ending tag + if (!m_end_tag.empty()) { + os << m_end_tag << "\n"; + was_modified |= !end_found; + } + return was_modified; } @@ -293,7 +335,7 @@ bool Settings::updateConfigFile(const char *filename) std::ifstream is(filename); std::ostringstream os(std::ios_base::binary); - bool was_modified = updateConfigObject(is, os, ""); + bool was_modified = updateConfigObject(is, os); is.close(); if (!was_modified) @@ -366,29 +408,37 @@ bool Settings::parseCommandLine(int argc, char *argv[], * Getters * ***********/ - -const SettingsEntry &Settings::getEntry(const std::string &name) const +Settings *Settings::getParent() const { - MutexAutoLock lock(m_mutex); + // If the Settings object is within the hierarchy structure, + // iterate towards the origin (0) to find the next fallback layer + if (m_settingslayer >= SL_TOTAL_COUNT) + return nullptr; - SettingEntries::const_iterator n; - if ((n = m_settings.find(name)) == m_settings.end()) { - if ((n = m_defaults.find(name)) == m_defaults.end()) - throw SettingNotFoundException("Setting [" + name + "] not found."); + for (int i = (int)m_settingslayer - 1; i >= 0; --i) { + if (s_layers[i]) + return s_layers[i]; } - return n->second; + + // No parent + return nullptr; } -const SettingsEntry &Settings::getEntryDefault(const std::string &name) const +const SettingsEntry &Settings::getEntry(const std::string &name) const { - MutexAutoLock lock(m_mutex); + { + MutexAutoLock lock(m_mutex); - SettingEntries::const_iterator n; - if ((n = m_defaults.find(name)) == m_defaults.end()) { - throw SettingNotFoundException("Setting [" + name + "] not found."); + SettingEntries::const_iterator n; + if ((n = m_settings.find(name)) != m_settings.end()) + return n->second; } - return n->second; + + if (auto parent = getParent()) + return parent->getEntry(name); + + throw SettingNotFoundException("Setting [" + name + "] not found."); } @@ -410,15 +460,6 @@ const std::string &Settings::get(const std::string &name) const } -const std::string &Settings::getDefault(const std::string &name) const -{ - const SettingsEntry &entry = getEntryDefault(name); - if (entry.is_group) - throw SettingNotFoundException("Setting [" + name + "] is a group."); - return entry.value; -} - - bool Settings::getBool(const std::string &name) const { return is_yes(get(name)); @@ -491,29 +532,25 @@ u32 Settings::getFlagStr(const std::string &name, const FlagDesc *flagdesc, u32 *flagmask) const { u32 flags = 0; - u32 mask_default = 0; - std::string value; // Read default value (if there is any) - if (getDefaultNoEx(name, value)) { - flags = std::isdigit(value[0]) - ? stoi(value) - : readFlagString(value, flagdesc, &mask_default); - } + if (auto parent = getParent()) + flags = parent->getFlagStr(name, flagdesc, flagmask); // Apply custom flags "on top" - value = get(name); - u32 flags_user; - u32 mask_user = U32_MAX; - flags_user = std::isdigit(value[0]) - ? stoi(value) // Override default - : readFlagString(value, flagdesc, &mask_user); + if (m_settings.find(name) != m_settings.end()) { + std::string value = get(name); + u32 flags_user; + u32 mask_user = U32_MAX; + flags_user = std::isdigit(value[0]) + ? stoi(value) // Override default + : readFlagString(value, flagdesc, &mask_user); - flags &= ~mask_user; - flags |= flags_user; - - if (flagmask) - *flagmask = mask_default | mask_user; + flags &= ~mask_user; + flags |= flags_user; + if (flagmask) + *flagmask |= mask_user; + } return flags; } @@ -521,7 +558,12 @@ u32 Settings::getFlagStr(const std::string &name, const FlagDesc *flagdesc, bool Settings::getNoiseParams(const std::string &name, NoiseParams &np) const { - return getNoiseParamsFromGroup(name, np) || getNoiseParamsFromValue(name, np); + if (getNoiseParamsFromGroup(name, np) || getNoiseParamsFromValue(name, np)) + return true; + if (auto parent = getParent()) + return parent->getNoiseParams(name, np); + + return false; } @@ -583,14 +625,20 @@ bool Settings::exists(const std::string &name) const { MutexAutoLock lock(m_mutex); - return (m_settings.find(name) != m_settings.end() || - m_defaults.find(name) != m_defaults.end()); + if (m_settings.find(name) != m_settings.end()) + return true; + if (auto parent = getParent()) + return parent->exists(name); + return false; } std::vector Settings::getNames() const { + MutexAutoLock lock(m_mutex); + std::vector names; + names.reserve(m_settings.size()); for (const auto &settings_it : m_settings) { names.push_back(settings_it.first); } @@ -625,17 +673,6 @@ bool Settings::getNoEx(const std::string &name, std::string &val) const } -bool Settings::getDefaultNoEx(const std::string &name, std::string &val) const -{ - try { - val = getDefault(name); - return true; - } catch (SettingNotFoundException &e) { - return false; - } -} - - bool Settings::getFlag(const std::string &name) const { try { @@ -746,24 +783,25 @@ bool Settings::getFlagStrNoEx(const std::string &name, u32 &val, ***********/ bool Settings::setEntry(const std::string &name, const void *data, - bool set_group, bool set_default) + bool set_group) { - Settings *old_group = NULL; - if (!checkNameValid(name)) return false; if (!set_group && !checkValueValid(*(const std::string *)data)) return false; + Settings *old_group = NULL; { MutexAutoLock lock(m_mutex); - SettingsEntry &entry = set_default ? m_defaults[name] : m_settings[name]; + SettingsEntry &entry = m_settings[name]; old_group = entry.group; entry.value = set_group ? "" : *(const std::string *)data; entry.group = set_group ? *(Settings **)data : NULL; entry.is_group = set_group; + if (set_group) + entry.group->m_end_tag = "}"; } delete old_group; @@ -774,7 +812,7 @@ bool Settings::setEntry(const std::string &name, const void *data, bool Settings::set(const std::string &name, const std::string &value) { - if (!setEntry(name, &value, false, false)) + if (!setEntry(name, &value, false)) return false; doCallbacks(name); @@ -782,9 +820,10 @@ bool Settings::set(const std::string &name, const std::string &value) } +// TODO: Remove this function bool Settings::setDefault(const std::string &name, const std::string &value) { - return setEntry(name, &value, false, true); + return getLayer(SL_DEFAULTS)->set(name, value); } @@ -794,17 +833,7 @@ bool Settings::setGroup(const std::string &name, const Settings &group) // avoid double-free by copying the source Settings *copy = new Settings(); *copy = group; - return setEntry(name, ©, true, false); -} - - -bool Settings::setGroupDefault(const std::string &name, const Settings &group) -{ - // Settings must own the group pointer - // avoid double-free by copying the source - Settings *copy = new Settings(); - *copy = group; - return setEntry(name, ©, true, true); + return setEntry(name, ©, true); } @@ -874,8 +903,7 @@ bool Settings::setFlagStr(const std::string &name, u32 flags, } -bool Settings::setNoiseParams(const std::string &name, - const NoiseParams &np, bool set_default) +bool Settings::setNoiseParams(const std::string &name, const NoiseParams &np) { Settings *group = new Settings; @@ -888,7 +916,7 @@ bool Settings::setNoiseParams(const std::string &name, group->setFloat("lacunarity", np.lacunarity); group->setFlagStr("flags", np.flags, flagdesc_noiseparams, np.flags); - return setEntry(name, &group, true, set_default); + return setEntry(name, &group, true); } @@ -912,20 +940,8 @@ bool Settings::remove(const std::string &name) } -void Settings::clear() -{ - MutexAutoLock lock(m_mutex); - clearNoLock(); -} - -void Settings::clearDefaults() -{ - MutexAutoLock lock(m_mutex); - clearDefaultsNoLock(); -} - SettingsParseEvent Settings::parseConfigObject(const std::string &line, - const std::string &end, std::string &name, std::string &value) + std::string &name, std::string &value) { std::string trimmed_line = trim(line); @@ -933,7 +949,7 @@ SettingsParseEvent Settings::parseConfigObject(const std::string &line, return SPE_NONE; if (trimmed_line[0] == '#') return SPE_COMMENT; - if (trimmed_line == end) + if (trimmed_line == m_end_tag) return SPE_END; size_t pos = trimmed_line.find('='); @@ -952,67 +968,26 @@ SettingsParseEvent Settings::parseConfigObject(const std::string &line, } -void Settings::updateNoLock(const Settings &other) -{ - m_settings.insert(other.m_settings.begin(), other.m_settings.end()); - m_defaults.insert(other.m_defaults.begin(), other.m_defaults.end()); -} - - void Settings::clearNoLock() { - for (SettingEntries::const_iterator it = m_settings.begin(); it != m_settings.end(); ++it) delete it->second.group; m_settings.clear(); - - clearDefaultsNoLock(); } -void Settings::clearDefaultsNoLock() -{ - for (SettingEntries::const_iterator it = m_defaults.begin(); - it != m_defaults.end(); ++it) - delete it->second.group; - m_defaults.clear(); -} void Settings::setDefault(const std::string &name, const FlagDesc *flagdesc, u32 flags) { - m_flags[name] = flagdesc; + s_flags[name] = flagdesc; setDefault(name, writeFlagString(flags, flagdesc, U32_MAX)); } -void Settings::overrideDefaults(Settings *other) -{ - for (const auto &setting : other->m_settings) { - if (setting.second.is_group) { - setGroupDefault(setting.first, *setting.second.group); - continue; - } - const FlagDesc *flagdesc = getFlagDescFallback(setting.first); - if (flagdesc) { - // Flags cannot be copied directly. - // 1) Get the current set flags - u32 flags = getFlagStr(setting.first, flagdesc, nullptr); - // 2) Set the flags as defaults - other->setDefault(setting.first, flagdesc, flags); - // 3) Get the newly set flags and override the default setting value - setDefault(setting.first, flagdesc, - other->getFlagStr(setting.first, flagdesc, nullptr)); - continue; - } - // Also covers FlagDesc settings - setDefault(setting.first, setting.second.value); - } -} - const FlagDesc *Settings::getFlagDescFallback(const std::string &name) const { - auto it = m_flags.find(name); - return it == m_flags.end() ? nullptr : it->second; + auto it = s_flags.find(name); + return it == s_flags.end() ? nullptr : it->second; } void Settings::registerChangedCallback(const std::string &name, diff --git a/src/settings.h b/src/settings.h index 6db2f9481..e22d949d3 100644 --- a/src/settings.h +++ b/src/settings.h @@ -30,7 +30,7 @@ class Settings; struct NoiseParams; // Global objects -extern Settings *g_settings; +extern Settings *g_settings; // Same as Settings::getLayer(SL_GLOBAL); extern std::string g_settings_path; // Type for a settings changed callback function @@ -60,6 +60,14 @@ enum SettingsParseEvent { SPE_MULTILINE, }; +enum SettingsLayer { + SL_DEFAULTS, + SL_GAME, + SL_GLOBAL, + SL_MAP, + SL_TOTAL_COUNT +}; + struct ValueSpec { ValueSpec(ValueType a_type, const char *a_help=NULL) { @@ -92,8 +100,13 @@ typedef std::unordered_map SettingEntries; class Settings { public: - Settings() = default; + static Settings *createLayer(SettingsLayer sl, const std::string &end_tag = ""); + static Settings *getLayer(SettingsLayer sl); + SettingsLayer getLayerType() const { return m_settingslayer; } + Settings(const std::string &end_tag = "") : + m_end_tag(end_tag) + {} ~Settings(); Settings & operator += (const Settings &other); @@ -110,7 +123,7 @@ public: // NOTE: Types of allowed_options are ignored. Returns success. bool parseCommandLine(int argc, char *argv[], std::map &allowed_options); - bool parseConfigLines(std::istream &is, const std::string &end = ""); + bool parseConfigLines(std::istream &is); void writeLines(std::ostream &os, u32 tab_depth=0) const; /*********** @@ -119,7 +132,6 @@ public: Settings *getGroup(const std::string &name) const; const std::string &get(const std::string &name) const; - const std::string &getDefault(const std::string &name) const; bool getBool(const std::string &name) const; u16 getU16(const std::string &name) const; s16 getS16(const std::string &name) const; @@ -146,7 +158,6 @@ public: bool getGroupNoEx(const std::string &name, Settings *&val) const; bool getNoEx(const std::string &name, std::string &val) const; - bool getDefaultNoEx(const std::string &name, std::string &val) const; bool getFlag(const std::string &name) const; bool getU16NoEx(const std::string &name, u16 &val) const; bool getS16NoEx(const std::string &name, s16 &val) const; @@ -170,11 +181,10 @@ public: // N.B. Groups not allocated with new must be set to NULL in the settings // tree before object destruction. bool setEntry(const std::string &name, const void *entry, - bool set_group, bool set_default); + bool set_group); bool set(const std::string &name, const std::string &value); bool setDefault(const std::string &name, const std::string &value); bool setGroup(const std::string &name, const Settings &group); - bool setGroupDefault(const std::string &name, const Settings &group); bool setBool(const std::string &name, bool value); bool setS16(const std::string &name, s16 value); bool setU16(const std::string &name, u16 value); @@ -185,21 +195,16 @@ public: bool setV3F(const std::string &name, v3f value); bool setFlagStr(const std::string &name, u32 flags, const FlagDesc *flagdesc = nullptr, u32 flagmask = U32_MAX); - bool setNoiseParams(const std::string &name, const NoiseParams &np, - bool set_default=false); + bool setNoiseParams(const std::string &name, const NoiseParams &np); // remove a setting bool remove(const std::string &name); - void clear(); - void clearDefaults(); /************** * Miscellany * **************/ void setDefault(const std::string &name, const FlagDesc *flagdesc, u32 flags); - // Takes the provided setting values and uses them as new defaults - void overrideDefaults(Settings *other); const FlagDesc *getFlagDescFallback(const std::string &name) const; void registerChangedCallback(const std::string &name, @@ -215,9 +220,9 @@ private: ***********************/ SettingsParseEvent parseConfigObject(const std::string &line, - const std::string &end, std::string &name, std::string &value); + std::string &name, std::string &value); bool updateConfigObject(std::istream &is, std::ostream &os, - const std::string &end, u32 tab_depth=0); + u32 tab_depth=0); static bool checkNameValid(const std::string &name); static bool checkValueValid(const std::string &value); @@ -228,12 +233,14 @@ private: /*********** * Getters * ***********/ + Settings *getParent() const; const SettingsEntry &getEntry(const std::string &name) const; - const SettingsEntry &getEntryDefault(const std::string &name) const; // Allow TestSettings to run sanity checks using private functions. friend class TestSettings; + // For sane mutex locking when iterating + friend class LuaSettings; void updateNoLock(const Settings &other); void clearNoLock(); @@ -242,14 +249,15 @@ private: void doCallbacks(const std::string &name) const; SettingEntries m_settings; - SettingEntries m_defaults; - std::unordered_map m_flags; - SettingsCallbackMap m_callbacks; + std::string m_end_tag; mutable std::mutex m_callback_mutex; // All methods that access m_settings/m_defaults directly should lock this. mutable std::mutex m_mutex; + static Settings *s_layers[SL_TOTAL_COUNT]; + SettingsLayer m_settingslayer = SL_TOTAL_COUNT; + static std::unordered_map s_flags; }; diff --git a/src/settings_translation_file.cpp b/src/settings_translation_file.cpp index 0cd772337..317186e94 100644 --- a/src/settings_translation_file.cpp +++ b/src/settings_translation_file.cpp @@ -30,8 +30,8 @@ fake_function() { gettext("Double-tapping the jump key toggles fly mode."); gettext("Always fly and fast"); gettext("If disabled, \"special\" key is used to fly fast if both fly and fast mode are\nenabled."); - gettext("Rightclick repetition interval"); - gettext("The time in seconds it takes between repeated right clicks when holding the right\nmouse button."); + gettext("Place repetition interval"); + gettext("The time in seconds it takes between repeated node placements when holding\nthe place button."); gettext("Automatic jumping"); gettext("Automatically jump up single-node obstacles."); gettext("Safe digging and placing"); @@ -54,6 +54,8 @@ fake_function() { gettext("The type of joystick"); gettext("Joystick button repetition interval"); gettext("The time in seconds it takes between repeated events\nwhen holding down a joystick button combination."); + gettext("Joystick deadzone"); + gettext("The deadzone of the joystick"); gettext("Joystick frustum sensitivity"); gettext("The sensitivity of the joystick axes for moving the\ningame view frustum around."); gettext("Forward key"); @@ -68,6 +70,10 @@ fake_function() { gettext("Key for jumping.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); gettext("Sneak key"); gettext("Key for sneaking.\nAlso used for climbing down and descending in water if aux1_descends is disabled.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); + gettext("Dig key"); + gettext("Key for digging.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); + gettext("Place key"); + gettext("Key for placing.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); gettext("Inventory key"); gettext("Key for opening the inventory.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3"); gettext("Special key"); @@ -197,6 +203,8 @@ fake_function() { gettext("Graphics"); gettext("In-Game"); gettext("Basic"); + gettext("Show nametag backgrounds by default"); + gettext("Whether nametag backgrounds should be shown by default.\nMods may still set a background."); gettext("VBO"); gettext("Enable vertex buffer objects.\nThis should greatly improve graphics performance."); gettext("Fog"); @@ -229,7 +237,7 @@ fake_function() { gettext("Minimum texture size"); gettext("When using bilinear/trilinear/anisotropic filters, low-resolution textures\ncan be blurred, so automatically upscale them with nearest-neighbor\ninterpolation to preserve crisp pixels. This sets the minimum texture size\nfor the upscaled textures; higher values look sharper, but require more\nmemory. Powers of 2 are recommended. Setting this higher than 1 may not\nhave a visible effect unless bilinear/trilinear/anisotropic filtering is\nenabled.\nThis is also used as the base node texture size for world-aligned\ntexture autoscaling."); gettext("FSAA"); - gettext("Experimental option, might cause visible spaces between blocks\nwhen set to higher number than 0."); + gettext("Use multi-sample antialiasing (MSAA) to smooth out block edges.\nThis algorithm smooths out the 3D viewport while keeping the image sharp,\nbut it doesn't affect the insides of textures\n(which is especially noticeable with transparent textures).\nVisible spaces appear between nodes when shaders are disabled.\nIf set to 0, MSAA is disabled.\nA restart is required after changing this option."); gettext("Undersampling"); gettext("Undersampling is similar to using a lower screen resolution, but it applies\nto the game world only, keeping the GUI intact.\nIt should give a significant performance boost at the cost of less detailed image.\nHigher values result in a less detailed image."); gettext("Shaders"); @@ -240,20 +248,6 @@ fake_function() { gettext("Tone Mapping"); gettext("Filmic tone mapping"); gettext("Enables Hable's 'Uncharted 2' filmic tone mapping.\nSimulates the tone curve of photographic film and how this approximates the\nappearance of high dynamic range images. Mid-range contrast is slightly\nenhanced, highlights and shadows are gradually compressed."); - gettext("Bumpmapping"); - gettext("Bumpmapping"); - gettext("Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack.\nRequires shaders to be enabled."); - gettext("Parallax Occlusion"); - gettext("Parallax occlusion"); - gettext("Enables parallax occlusion mapping.\nRequires shaders to be enabled."); - gettext("Parallax occlusion mode"); - gettext("0 = parallax occlusion with slope information (faster).\n1 = relief mapping (slower, more accurate)."); - gettext("Parallax occlusion iterations"); - gettext("Number of parallax occlusion iterations."); - gettext("Parallax occlusion scale"); - gettext("Overall scale of parallax occlusion effect."); - gettext("Parallax occlusion bias"); - gettext("Overall bias of parallax occlusion effect, usually scale/2."); gettext("Waving Nodes"); gettext("Waving liquids"); gettext("Set to true to enable waving liquids (like water).\nRequires shaders to be enabled."); @@ -272,8 +266,8 @@ fake_function() { gettext("Arm inertia, gives a more realistic movement of\nthe arm when the camera moves."); gettext("Maximum FPS"); gettext("If FPS would go higher than this, limit it by sleeping\nto not waste CPU power for no benefit."); - gettext("FPS in pause menu"); - gettext("Maximum FPS when game is paused."); + gettext("FPS when unfocused or paused"); + gettext("Maximum FPS when the window is not focused, or when the game is paused."); gettext("Pause on lost window focus"); gettext("Open the pause menu when the window's focus is lost. Does not pause if a formspec is\nopen."); gettext("Viewing range"); @@ -309,7 +303,7 @@ fake_function() { gettext("Texture path"); gettext("Path to texture directory. All textures are first searched from here."); gettext("Video driver"); - gettext("The rendering back-end for Irrlicht.\nA restart is required after changing this.\nNote: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.\nOn other platforms, OpenGL is recommended, and it’s the only driver with\nshader support currently."); + gettext("The rendering back-end for Irrlicht.\nA restart is required after changing this.\nNote: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.\nOn other platforms, OpenGL is recommended.\nShaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"); gettext("Cloud radius"); gettext("Radius of cloud area stated in number of 64 node cloud squares.\nValues larger than 26 will start to produce sharp cutoffs at cloud area corners."); gettext("View bobbing factor"); @@ -339,9 +333,9 @@ fake_function() { gettext("Selection box width"); gettext("Width of the selection box lines around nodes."); gettext("Crosshair color"); - gettext("Crosshair color (R,G,B)."); + gettext("Crosshair color (R,G,B).\nAlso controls the object crosshair color"); gettext("Crosshair alpha"); - gettext("Crosshair alpha (opaqueness, between 0 and 255)."); + gettext("Crosshair alpha (opaqueness, between 0 and 255).\nAlso controls the object crosshair color"); gettext("Recent Chat Messages"); gettext("Maximum number of recent chat messages to show"); gettext("Desynchronize block animation"); @@ -377,7 +371,7 @@ fake_function() { gettext("Autoscaling mode"); gettext("World-aligned textures may be scaled to span several nodes. However,\nthe server may not send the scale you want, especially if you use\na specially-designed texture pack; with this option, the client tries\nto determine the scale automatically basing on the texture size.\nSee also texture_min_size.\nWarning: This option is EXPERIMENTAL!"); gettext("Show entity selection boxes"); - gettext("Show entity selection boxes"); + gettext("Show entity selection boxes\nA restart is required after changing this."); gettext("Menus"); gettext("Clouds in menu"); gettext("Use a cloud animation for the main menu background."); @@ -503,6 +497,8 @@ fake_function() { gettext("To reduce lag, block transfers are slowed down when a player is building something.\nThis determines how long they are slowed down after placing or removing a node."); gettext("Max. packets per iteration"); gettext("Maximum number of packets sent per send step, if you have a slow connection\ntry reducing it, but don't reduce it to a number below double of targeted\nclient number."); + gettext("Map Compression Level for Network Transfer"); + gettext("ZLib compression level to use when sending mapblocks to the client.\n-1 - Zlib's default compression level\n0 - no compresson, fastest\n9 - best compression, slowest\n(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"); gettext("Game"); gettext("Default game"); gettext("Default game when creating a new world.\nThis will be overridden when creating a world from the main menu."); @@ -519,7 +515,7 @@ fake_function() { gettext("Damage"); gettext("Enable players getting damage and dying."); gettext("Creative"); - gettext("Enable creative mode for new created maps."); + gettext("Enable creative mode for all players"); gettext("Fixed map seed"); gettext("A chosen map seed for a new map, leave empty for random.\nWill be overridden when creating a new world in the main menu."); gettext("Default password"); @@ -601,7 +597,7 @@ fake_function() { gettext("Acceleration of gravity, in nodes per second per second."); gettext("Advanced"); gettext("Deprecated Lua API handling"); - gettext("Handling for deprecated Lua API calls:\n- legacy: (try to) mimic old behaviour (default for release).\n- log: mimic and log backtrace of deprecated call (default for debug).\n- error: abort on usage of deprecated call (suggested for mod developers)."); + gettext("Handling for deprecated Lua API calls:\n- none: Do not log deprecated calls\n- log: mimic and log backtrace of deprecated call (default).\n- error: abort on usage of deprecated call (suggested for mod developers)."); gettext("Max. clearobjects extra blocks"); gettext("Number of extra blocks that can be loaded by /clearobjects at once.\nThis is a trade-off between sqlite transaction overhead and\nmemory consumption (4096=100MB, as a rule of thumb)."); gettext("Unload unused server data"); @@ -610,12 +606,16 @@ fake_function() { gettext("Maximum number of statically stored objects in a block."); gettext("Synchronous SQLite"); gettext("See https://www.sqlite.org/pragma.html#pragma_synchronous"); + gettext("Map Compression Level for Disk Storage"); + gettext("ZLib compression level to use when saving mapblocks to disk.\n-1 - Zlib's default compression level\n0 - no compresson, fastest\n9 - best compression, slowest\n(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"); gettext("Dedicated server step"); gettext("Length of a server tick and the interval at which objects are generally updated over\nnetwork."); gettext("Active block management interval"); gettext("Length of time between active block management cycles"); gettext("ABM interval"); gettext("Length of time between Active Block Modifier (ABM) execution cycles"); + gettext("ABM time budget"); + gettext("The time budget allowed for ABMs to execute on each step\n(as a fraction of the ABM Interval)"); gettext("NodeTimer interval"); gettext("Length of time between NodeTimer execution cycles"); gettext("Ignore world errors"); @@ -687,8 +687,6 @@ fake_function() { gettext("Maximum time in ms a file download (e.g. a mod download) may take."); gettext("High-precision FPU"); gettext("Makes DirectX work with LuaJIT. Disable if it causes troubles."); - gettext("Main menu style"); - gettext("Changes the main menu UI:\n- Full: Multiple singleplayer worlds, game choice, texture pack chooser, etc.\n- Simple: One singleplayer world, no game or texture pack choosers. May be\nnecessary for smaller screens."); gettext("Main menu script"); gettext("Replaces the default main menu with a custom one."); gettext("Engine profiling data print interval"); @@ -958,6 +956,12 @@ fake_function() { gettext("Terrain noise threshold for hills.\nControls proportion of world area covered by hills.\nAdjust towards 0.0 for a larger proportion."); gettext("Hill steepness"); gettext("Controls steepness/height of hills."); + gettext("Cavern limit"); + gettext("Y-level of cavern upper limit."); + gettext("Cavern taper"); + gettext("Y-distance over which caverns expand to full size."); + gettext("Cavern threshold"); + gettext("Defines full size of caverns, smaller values create larger caverns."); gettext("Dungeon minimum Y"); gettext("Lower Y limit of dungeons."); gettext("Dungeon maximum Y"); @@ -971,6 +975,8 @@ fake_function() { gettext("First of two 3D noises that together define tunnels."); gettext("Cave2 noise"); gettext("Second of two 3D noises that together define tunnels."); + gettext("Cavern noise"); + gettext("3D noise defining giant caverns."); gettext("Dungeon noise"); gettext("3D noise that determines number of dungeons per mapchunk."); gettext("Mapgen Fractal"); @@ -1097,4 +1103,6 @@ fake_function() { gettext("The URL for the content repository"); gettext("ContentDB Flag Blacklist"); gettext("Comma-separated list of flags to hide in the content repository.\n\"nonfree\" can be used to hide packages which do not qualify as 'free software',\nas defined by the Free Software Foundation.\nYou can also specify content ratings.\nThese flags are independent from Minetest versions,\nso see a full list at https://content.minetest.net/help/content_flags/"); + gettext("ContentDB Max Concurrent Downloads"); + gettext("Maximum number of concurrent downloads. Downloads exceeding this limit will be queued.\nThis should be lower than curl_parallel_limit."); } diff --git a/src/tool.cpp b/src/tool.cpp index 90f4f9c12..3f639a69e 100644 --- a/src/tool.cpp +++ b/src/tool.cpp @@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "inventory.h" #include "exceptions.h" +#include "convert_json.h" #include "util/serialize.h" #include "util/numeric.h" @@ -142,7 +143,7 @@ void ToolCapabilities::serializeJson(std::ostream &os) const } root["damage_groups"] = damage_groups_object; - os << root; + fastWriteJson(root, os); } void ToolCapabilities::deserializeJson(std::istream &is) diff --git a/src/translation.cpp b/src/translation.cpp index 82e813a5d..55c958fa2 100644 --- a/src/translation.cpp +++ b/src/translation.cpp @@ -144,14 +144,13 @@ void Translations::loadTranslation(const std::string &data) } std::wstring oword1 = word1.str(), oword2 = word2.str(); - if (oword2.empty()) { - oword2 = oword1; - errorstream << "Ignoring empty translation for \"" - << wide_to_utf8(oword1) << "\"" << std::endl; + if (!oword2.empty()) { + std::wstring translation_index = textdomain + L"|"; + translation_index.append(oword1); + m_translations[translation_index] = oword2; + } else { + infostream << "Ignoring empty translation for \"" + << wide_to_utf8(oword1) << "\"" << std::endl; } - - std::wstring translation_index = textdomain + L"|"; - translation_index.append(oword1); - m_translations[translation_index] = oword2; } } diff --git a/src/unittest/test.cpp b/src/unittest/test.cpp index 0f6b36649..d4841d559 100644 --- a/src/unittest/test.cpp +++ b/src/unittest/test.cpp @@ -182,7 +182,7 @@ void TestGameDef::defineSomeNodes() "{default_water.png"; f = ContentFeatures(); f.name = itemdef.name; - f.alpha = 128; + f.alpha = ALPHAMODE_BLEND; f.liquid_type = LIQUID_SOURCE; f.liquid_viscosity = 4; f.is_ground_content = true; @@ -203,7 +203,7 @@ void TestGameDef::defineSomeNodes() "{default_lava.png"; f = ContentFeatures(); f.name = itemdef.name; - f.alpha = 128; + f.alpha = ALPHAMODE_OPAQUE; f.liquid_type = LIQUID_SOURCE; f.liquid_viscosity = 7; f.light_source = LIGHT_MAX-1; diff --git a/src/unittest/test_clientactiveobjectmgr.cpp b/src/unittest/test_clientactiveobjectmgr.cpp index 4d2846c8d..2d508cf32 100644 --- a/src/unittest/test_clientactiveobjectmgr.cpp +++ b/src/unittest/test_clientactiveobjectmgr.cpp @@ -29,6 +29,7 @@ public: TestClientActiveObject() : ClientActiveObject(0, nullptr, nullptr) {} ~TestClientActiveObject() = default; ActiveObjectType getType() const { return ACTIVEOBJECT_TYPE_TEST; } + virtual void addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) {} }; class TestClientActiveObjectMgr : public TestBase diff --git a/src/unittest/test_connection.cpp b/src/unittest/test_connection.cpp index c5e4085e1..c3aacc536 100644 --- a/src/unittest/test_connection.cpp +++ b/src/unittest/test_connection.cpp @@ -39,6 +39,7 @@ public: void runTests(IGameDef *gamedef); + void testNetworkPacketSerialize(); void testHelpers(); void testConnectSendReceive(); }; @@ -47,6 +48,7 @@ static TestConnection g_test_instance; void TestConnection::runTests(IGameDef *gamedef) { + TEST(testNetworkPacketSerialize); TEST(testHelpers); TEST(testConnectSendReceive); } @@ -78,6 +80,39 @@ struct Handler : public con::PeerHandler const char *name; }; +void TestConnection::testNetworkPacketSerialize() +{ + const static u8 expected[] = { + 0x00, 0x7b, + 0x00, 0x02, 0xd8, 0x42, 0xdf, 0x9a + }; + + if (sizeof(wchar_t) == 2) + warningstream << __func__ << " may fail on this platform." << std::endl; + + { + NetworkPacket pkt(123, 0); + + // serializing wide strings should do surrogate encoding, we test that here + pkt << std::wstring(L"\U00020b9a"); + + SharedBuffer buf = pkt.oldForgePacket(); + UASSERTEQ(int, buf.getSize(), sizeof(expected)); + UASSERT(!memcmp(expected, &buf[0], buf.getSize())); + } + + { + NetworkPacket pkt; + pkt.putRawPacket(expected, sizeof(expected), 0); + + // same for decoding + std::wstring pkt_s; + pkt >> pkt_s; + + UASSERT(pkt_s == L"\U00020b9a"); + } +} + void TestConnection::testHelpers() { // Some constants for testing diff --git a/src/unittest/test_map_settings_manager.cpp b/src/unittest/test_map_settings_manager.cpp index 3d642a9b4..81ca68705 100644 --- a/src/unittest/test_map_settings_manager.cpp +++ b/src/unittest/test_map_settings_manager.cpp @@ -30,7 +30,7 @@ public: TestMapSettingsManager() { TestManager::registerTestModule(this); } const char *getName() { return "TestMapSettingsManager"; } - void makeUserConfig(Settings *conf); + void makeUserConfig(); std::string makeMetaFile(bool make_corrupt); void runTests(IGameDef *gamedef); @@ -65,8 +65,11 @@ void check_noise_params(const NoiseParams *np1, const NoiseParams *np2) } -void TestMapSettingsManager::makeUserConfig(Settings *conf) +void TestMapSettingsManager::makeUserConfig() { + delete Settings::getLayer(SL_GLOBAL); + Settings *conf = Settings::createLayer(SL_GLOBAL); + conf->set("mg_name", "v7"); conf->set("seed", "5678"); conf->set("water_level", "20"); @@ -103,12 +106,11 @@ std::string TestMapSettingsManager::makeMetaFile(bool make_corrupt) void TestMapSettingsManager::testMapSettingsManager() { - Settings user_settings; - makeUserConfig(&user_settings); + makeUserConfig(); std::string test_mapmeta_path = makeMetaFile(false); - MapSettingsManager mgr(&user_settings, test_mapmeta_path); + MapSettingsManager mgr(test_mapmeta_path); std::string value; UASSERT(mgr.getMapSetting("mg_name", &value)); @@ -140,6 +142,12 @@ void TestMapSettingsManager::testMapSettingsManager() mgr.setMapSettingNoiseParams("mgv5_np_height", &script_np_height); mgr.setMapSettingNoiseParams("mgv5_np_factor", &script_np_factor); + { + NoiseParams dummy; + mgr.getMapSettingNoiseParams("mgv5_np_factor", &dummy); + check_noise_params(&dummy, &script_np_factor); + } + // Now make our Params and see if the values are correctly sourced MapgenParams *params = mgr.makeMapgenParams(); UASSERT(params->mgtype == MAPGEN_V5); @@ -188,50 +196,66 @@ void TestMapSettingsManager::testMapSettingsManager() void TestMapSettingsManager::testMapMetaSaveLoad() { - Settings conf; std::string path = getTestTempDirectory() + DIR_DELIM + "foobar" + DIR_DELIM + "map_meta.txt"; + makeUserConfig(); + Settings &conf = *Settings::getLayer(SL_GLOBAL); + + // There cannot be two MapSettingsManager + // copy the mapgen params to compare them + MapgenParams params1, params2; // Create a set of mapgen params and save them to map meta - conf.set("seed", "12345"); - conf.set("water_level", "5"); - MapSettingsManager mgr1(&conf, path); - MapgenParams *params1 = mgr1.makeMapgenParams(); - UASSERT(params1); - UASSERT(mgr1.saveMapMeta()); + { + conf.set("seed", "12345"); + conf.set("water_level", "5"); + MapSettingsManager mgr(path); + MapgenParams *params = mgr.makeMapgenParams(); + UASSERT(params); + params1 = *params; + params1.bparams = nullptr; // No double-free + UASSERT(mgr.saveMapMeta()); + } // Now try loading the map meta to mapgen params - conf.set("seed", "67890"); - conf.set("water_level", "32"); - MapSettingsManager mgr2(&conf, path); - UASSERT(mgr2.loadMapMeta()); - MapgenParams *params2 = mgr2.makeMapgenParams(); - UASSERT(params2); + { + conf.set("seed", "67890"); + conf.set("water_level", "32"); + MapSettingsManager mgr(path); + UASSERT(mgr.loadMapMeta()); + MapgenParams *params = mgr.makeMapgenParams(); + UASSERT(params); + params2 = *params; + params2.bparams = nullptr; // No double-free + } // Check that both results are correct - UASSERTEQ(u64, params1->seed, 12345); - UASSERTEQ(s16, params1->water_level, 5); - UASSERTEQ(u64, params2->seed, 12345); - UASSERTEQ(s16, params2->water_level, 5); + UASSERTEQ(u64, params1.seed, 12345); + UASSERTEQ(s16, params1.water_level, 5); + UASSERTEQ(u64, params2.seed, 12345); + UASSERTEQ(s16, params2.water_level, 5); } void TestMapSettingsManager::testMapMetaFailures() { std::string test_mapmeta_path; - Settings conf; // Check to see if it'll fail on a non-existent map meta file - test_mapmeta_path = "woobawooba/fgdfg/map_meta.txt"; - UASSERT(!fs::PathExists(test_mapmeta_path)); + { + test_mapmeta_path = "woobawooba/fgdfg/map_meta.txt"; + UASSERT(!fs::PathExists(test_mapmeta_path)); - MapSettingsManager mgr1(&conf, test_mapmeta_path); - UASSERT(!mgr1.loadMapMeta()); + MapSettingsManager mgr1(test_mapmeta_path); + UASSERT(!mgr1.loadMapMeta()); + } // Check to see if it'll fail on a corrupt map meta file - test_mapmeta_path = makeMetaFile(true); - UASSERT(fs::PathExists(test_mapmeta_path)); + { + test_mapmeta_path = makeMetaFile(true); + UASSERT(fs::PathExists(test_mapmeta_path)); - MapSettingsManager mgr2(&conf, test_mapmeta_path); - UASSERT(!mgr2.loadMapMeta()); + MapSettingsManager mgr2(test_mapmeta_path); + UASSERT(!mgr2.loadMapMeta()); + } } diff --git a/src/unittest/test_noderesolver.cpp b/src/unittest/test_noderesolver.cpp index 28da43620..ed66093a9 100644 --- a/src/unittest/test_noderesolver.cpp +++ b/src/unittest/test_noderesolver.cpp @@ -56,6 +56,8 @@ void TestNodeResolver::runTests(IGameDef *gamedef) class Foobar : public NodeResolver { public: + friend class TestNodeResolver; // m_ndef + void resolveNodeNames(); content_t test_nr_node1; diff --git a/src/unittest/test_schematic.cpp b/src/unittest/test_schematic.cpp index da4ce50d2..d2f027eb4 100644 --- a/src/unittest/test_schematic.cpp +++ b/src/unittest/test_schematic.cpp @@ -66,13 +66,14 @@ void TestSchematic::testMtsSerializeDeserialize(const NodeDefManager *ndef) std::stringstream ss(std::ios_base::binary | std::ios_base::in | std::ios_base::out); - std::vector names; - names.emplace_back("foo"); - names.emplace_back("bar"); - names.emplace_back("baz"); - names.emplace_back("qux"); - - Schematic schem, schem2; + Schematic schem; + { + std::vector &names = schem.m_nodenames; + names.emplace_back("foo"); + names.emplace_back("bar"); + names.emplace_back("baz"); + names.emplace_back("qux"); + } schem.flags = 0; schem.size = size; @@ -83,18 +84,21 @@ void TestSchematic::testMtsSerializeDeserialize(const NodeDefManager *ndef) for (s16 y = 0; y != size.Y; y++) schem.slice_probs[y] = MTSCHEM_PROB_ALWAYS; - UASSERT(schem.serializeToMts(&ss, names)); + UASSERT(schem.serializeToMts(&ss)); ss.seekg(0); - names.clear(); - UASSERT(schem2.deserializeFromMts(&ss, &names)); + Schematic schem2; + UASSERT(schem2.deserializeFromMts(&ss)); - UASSERTEQ(size_t, names.size(), 4); - UASSERTEQ(std::string, names[0], "foo"); - UASSERTEQ(std::string, names[1], "bar"); - UASSERTEQ(std::string, names[2], "baz"); - UASSERTEQ(std::string, names[3], "qux"); + { + std::vector &names = schem2.m_nodenames; + UASSERTEQ(size_t, names.size(), 4); + UASSERTEQ(std::string, names[0], "foo"); + UASSERTEQ(std::string, names[1], "bar"); + UASSERTEQ(std::string, names[2], "baz"); + UASSERTEQ(std::string, names[3], "qux"); + } UASSERT(schem2.size == size); for (size_t i = 0; i != volume; i++) @@ -120,14 +124,14 @@ void TestSchematic::testLuaTableSerialize(const NodeDefManager *ndef) for (s16 y = 0; y != size.Y; y++) schem.slice_probs[y] = MTSCHEM_PROB_ALWAYS; - std::vector names; + std::vector &names = schem.m_nodenames; names.emplace_back("air"); names.emplace_back("default:lava_source"); names.emplace_back("default:glass"); std::ostringstream ss(std::ios_base::binary); - UASSERT(schem.serializeToLua(&ss, names, false, 0)); + UASSERT(schem.serializeToLua(&ss, false, 0)); UASSERTEQ(std::string, ss.str(), expected_lua_output); } @@ -159,6 +163,8 @@ void TestSchematic::testFileSerializeDeserialize(const NodeDefManager *ndef) schem1.slice_probs[0] = 80; schem1.slice_probs[1] = 160; schem1.slice_probs[2] = 240; + // Node resolving happened manually. + schem1.m_resolve_done = true; for (size_t i = 0; i != volume; i++) { content_t c = content_map[test_schem2_data[i]]; diff --git a/src/unittest/test_settings.cpp b/src/unittest/test_settings.cpp index f91ba5b67..6b493c9e4 100644 --- a/src/unittest/test_settings.cpp +++ b/src/unittest/test_settings.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include "settings.h" +#include "defaultsettings.h" #include "noise.h" class TestSettings : public TestBase { @@ -31,6 +32,7 @@ public: void runTests(IGameDef *gamedef); void testAllSettings(); + void testDefaults(); void testFlagDesc(); static const char *config_text_before; @@ -42,6 +44,7 @@ static TestSettings g_test_instance; void TestSettings::runTests(IGameDef *gamedef) { TEST(testAllSettings); + TEST(testDefaults); TEST(testFlagDesc); } @@ -70,7 +73,8 @@ const char *TestSettings::config_text_before = " with leading whitespace!\n" "\"\"\"\n" "np_terrain = 5, 40, (250, 250, 250), 12341, 5, 0.7, 2.4\n" - "zoop = true"; + "zoop = true\n" + "[dummy_eof_end_tag]\n"; const std::string TestSettings::config_text_after = "leet = 1337\n" @@ -111,12 +115,34 @@ const std::string TestSettings::config_text_after = " animals = cute\n" " num_apples = 4\n" " num_oranges = 53\n" - "}\n"; + "}\n" + "[dummy_eof_end_tag]"; + +void compare_settings(const std::string &name, Settings *a, Settings *b) +{ + auto keys = a->getNames(); + Settings *group1, *group2; + std::string value1, value2; + for (auto &key : keys) { + if (a->getGroupNoEx(key, group1)) { + UASSERT(b->getGroupNoEx(key, group2)); + + compare_settings(name + "->" + key, group1, group2); + continue; + } + + UASSERT(b->getNoEx(key, value1)); + // For identification + value1 = name + "->" + key + "=" + value1; + value2 = name + "->" + key + "=" + a->get(key); + UASSERTCMP(std::string, ==, value2, value1); + } +} void TestSettings::testAllSettings() { try { - Settings s; + Settings s("[dummy_eof_end_tag]"); // Test reading of settings std::istringstream is(config_text_before); @@ -197,21 +223,44 @@ void TestSettings::testAllSettings() is.clear(); is.seekg(0); - UASSERT(s.updateConfigObject(is, os, "", 0) == true); - //printf(">>>> expected config:\n%s\n", TEST_CONFIG_TEXT_AFTER); - //printf(">>>> actual config:\n%s\n", os.str().c_str()); -#if __cplusplus < 201103L - // This test only works in older C++ versions than C++11 because we use unordered_map - UASSERT(os.str() == config_text_after); -#endif + UASSERT(s.updateConfigObject(is, os, 0) == true); + + { + // Confirm settings + Settings s2("[dummy_eof_end_tag]"); + std::istringstream is(config_text_after, std::ios_base::binary); + UASSERT(s2.parseConfigLines(is) == true); + + compare_settings("(main)", &s, &s2); + } + } catch (SettingNotFoundException &e) { UASSERT(!"Setting not found!"); } } +void TestSettings::testDefaults() +{ + Settings *game = Settings::createLayer(SL_GAME); + Settings *def = Settings::getLayer(SL_DEFAULTS); + + def->set("name", "FooBar"); + UASSERT(def->get("name") == "FooBar"); + UASSERT(game->get("name") == "FooBar"); + + game->set("name", "Baz"); + UASSERT(game->get("name") == "Baz"); + + delete game; + + // Restore default settings + delete Settings::getLayer(SL_DEFAULTS); + set_default_settings(); +} + void TestSettings::testFlagDesc() { - Settings s; + Settings &s = *Settings::createLayer(SL_GAME); FlagDesc flagdesc[] = { { "biomes", 0x01 }, { "trees", 0x02 }, @@ -242,4 +291,6 @@ void TestSettings::testFlagDesc() // Enabled: tables s.set("test_flags", "16"); UASSERT(s.getFlagStr("test_flags", flagdesc, nullptr) == 0x10); + + delete &s; } diff --git a/src/unittest/test_utilities.cpp b/src/unittest/test_utilities.cpp index 447b591e1..93ba3f844 100644 --- a/src/unittest/test_utilities.cpp +++ b/src/unittest/test_utilities.cpp @@ -247,8 +247,8 @@ void TestUtilities::testStartsWith() void TestUtilities::testStrEqual() { - UASSERT(str_equal(narrow_to_wide("abc"), narrow_to_wide("abc"))); - UASSERT(str_equal(narrow_to_wide("ABC"), narrow_to_wide("abc"), true)); + UASSERT(str_equal(utf8_to_wide("abc"), utf8_to_wide("abc"))); + UASSERT(str_equal(utf8_to_wide("ABC"), utf8_to_wide("abc"), true)); } @@ -302,9 +302,18 @@ void TestUtilities::testAsciiPrintableHelper() void TestUtilities::testUTF8() { - UASSERT(wide_to_utf8(utf8_to_wide("")) == ""); - UASSERT(wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!")) - == "the shovel dug a crumbly node!"); + UASSERT(utf8_to_wide("¤") == L"¤"); + + UASSERT(wide_to_utf8(L"¤") == "¤"); + + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("")), ""); + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!")), + "the shovel dug a crumbly node!"); + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("-ä-")), + "-ä-"); + UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("-\xF0\xA0\x80\x8B-")), + "-\xF0\xA0\x80\x8B-"); + } void TestUtilities::testRemoveEscapes() diff --git a/src/util/Optional.h b/src/util/Optional.h new file mode 100644 index 000000000..9c2842b43 --- /dev/null +++ b/src/util/Optional.h @@ -0,0 +1,77 @@ +/* +Minetest +Copyright (C) 2021 rubenwardy + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#pragma once + +#include "debug.h" + +struct nullopt_t +{ +}; +constexpr nullopt_t nullopt{}; + +/** + * An implementation of optional for C++11, which aims to be + * compatible with a subset of std::optional features. + * + * Unfortunately, Minetest doesn't use C++17 yet. + * + * @tparam T The type to be stored + */ +template +class Optional +{ + bool m_has_value = false; + T m_value; + +public: + Optional() noexcept {} + Optional(nullopt_t) noexcept {} + Optional(const T &value) noexcept : m_has_value(true), m_value(value) {} + Optional(const Optional &other) noexcept : + m_has_value(other.m_has_value), m_value(other.m_value) + { + } + + void operator=(nullopt_t) noexcept { m_has_value = false; } + + void operator=(const Optional &other) noexcept + { + m_has_value = other.m_has_value; + m_value = other.m_value; + } + + T &value() + { + FATAL_ERROR_IF(!m_has_value, "optional doesn't have value"); + return m_value; + } + + const T &value() const + { + FATAL_ERROR_IF(!m_has_value, "optional doesn't have value"); + return m_value; + } + + const T &value_or(const T &def) const { return m_has_value ? m_value : def; } + + bool has_value() const noexcept { return m_has_value; } + + explicit operator bool() const { return m_has_value; } +}; diff --git a/src/util/areastore.cpp b/src/util/areastore.cpp index cea526336..67bfef0c0 100644 --- a/src/util/areastore.cpp +++ b/src/util/areastore.cpp @@ -96,16 +96,15 @@ void AreaStore::deserialize(std::istream &is) u16 num_areas = readU16(is); std::vector areas; + areas.reserve(num_areas); for (u32 i = 0; i < num_areas; ++i) { Area a(U32_MAX); a.minedge = readV3S16(is); a.maxedge = readV3S16(is); u16 data_len = readU16(is); - char *data = new char[data_len]; - is.read(data, data_len); - a.data = std::string(data, data_len); - areas.emplace_back(a); - delete [] data; + a.data = std::string(data_len, '\0'); + is.read(&a.data[0], data_len); + areas.emplace_back(std::move(a)); } bool read_ids = is.good(); // EOF for old formats diff --git a/src/util/container.h b/src/util/container.h index 2ad2bbfc7..1c4a219f0 100644 --- a/src/util/container.h +++ b/src/util/container.h @@ -90,8 +90,7 @@ public: bool get(const Key &name, Value *result) const { MutexAutoLock lock(m_mutex); - typename std::map::const_iterator n = - m_values.find(name); + auto n = m_values.find(name); if (n == m_values.end()) return false; if (result) @@ -103,11 +102,9 @@ public: { MutexAutoLock lock(m_mutex); std::vector result; - for (typename std::map::const_iterator - it = m_values.begin(); - it != m_values.end(); ++it){ + result.reserve(m_values.size()); + for (auto it = m_values.begin(); it != m_values.end(); ++it) result.push_back(it->second); - } return result; } @@ -136,7 +133,7 @@ public: return m_queue.empty(); } - void push_back(T t) + void push_back(const T &t) { MutexAutoLock lock(m_mutex); m_queue.push_back(t); @@ -151,7 +148,7 @@ public: if (m_signal.wait(wait_time_max_ms)) { MutexAutoLock lock(m_mutex); - T t = m_queue.front(); + T t = std::move(m_queue.front()); m_queue.pop_front(); return t; } @@ -164,7 +161,7 @@ public: if (m_signal.wait(wait_time_max_ms)) { MutexAutoLock lock(m_mutex); - T t = m_queue.front(); + T t = std::move(m_queue.front()); m_queue.pop_front(); return t; } @@ -178,7 +175,7 @@ public: MutexAutoLock lock(m_mutex); - T t = m_queue.front(); + T t = std::move(m_queue.front()); m_queue.pop_front(); return t; } @@ -188,7 +185,7 @@ public: if (m_signal.wait(wait_time_max_ms)) { MutexAutoLock lock(m_mutex); - T t = m_queue.back(); + T t = std::move(m_queue.back()); m_queue.pop_back(); return t; } @@ -204,7 +201,7 @@ public: if (m_signal.wait(wait_time_max_ms)) { MutexAutoLock lock(m_mutex); - T t = m_queue.back(); + T t = std::move(m_queue.back()); m_queue.pop_back(); return t; } @@ -218,7 +215,7 @@ public: MutexAutoLock lock(m_mutex); - T t = m_queue.back(); + T t = std::move(m_queue.back()); m_queue.pop_back(); return t; } diff --git a/src/util/enriched_string.cpp b/src/util/enriched_string.cpp index 762d094eb..b1f95215e 100644 --- a/src/util/enriched_string.cpp +++ b/src/util/enriched_string.cpp @@ -65,12 +65,14 @@ void EnrichedString::operator=(const wchar_t *str) addAtEnd(translate_string(std::wstring(str)), m_default_color); } -void EnrichedString::addAtEnd(const std::wstring &s, const SColor &initial_color) +void EnrichedString::addAtEnd(const std::wstring &s, SColor initial_color) { SColor color(initial_color); bool use_default = (m_default_length == m_string.size() && color == m_default_color); + m_colors.reserve(m_colors.size() + s.size()); + size_t i = 0; while (i < s.length()) { if (s[i] != L'\x1b') { @@ -200,12 +202,6 @@ const std::wstring &EnrichedString::getString() const return m_string; } -void EnrichedString::setDefaultColor(const irr::video::SColor &color) -{ - m_default_color = color; - updateDefaultColor(); -} - void EnrichedString::updateDefaultColor() { sanity_check(m_default_length <= m_colors.size()); diff --git a/src/util/enriched_string.h b/src/util/enriched_string.h index c8a095887..16a0eef74 100644 --- a/src/util/enriched_string.h +++ b/src/util/enriched_string.h @@ -23,18 +23,22 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include +using namespace irr; + class EnrichedString { public: EnrichedString(); EnrichedString(const std::wstring &s, - const irr::video::SColor &color = irr::video::SColor(255, 255, 255, 255)); + const video::SColor &color = video::SColor(255, 255, 255, 255)); EnrichedString(const wchar_t *str, - const irr::video::SColor &color = irr::video::SColor(255, 255, 255, 255)); + const video::SColor &color = video::SColor(255, 255, 255, 255)); EnrichedString(const std::wstring &string, - const std::vector &colors); - void clear(); + const std::vector &colors); void operator=(const wchar_t *str); - void addAtEnd(const std::wstring &s, const irr::video::SColor &color); + + void clear(); + + void addAtEnd(const std::wstring &s, video::SColor color); // Adds the character source[i] at the end. // An EnrichedString should always be able to be copied @@ -49,12 +53,16 @@ public: EnrichedString operator+(const EnrichedString &other) const; void operator+=(const EnrichedString &other); const wchar_t *c_str() const; - const std::vector &getColors() const; + const std::vector &getColors() const; const std::wstring &getString() const; - void setDefaultColor(const irr::video::SColor &color); + inline void setDefaultColor(video::SColor color) + { + m_default_color = color; + updateDefaultColor(); + } void updateDefaultColor(); - inline const irr::video::SColor &getDefaultColor() const + inline const video::SColor &getDefaultColor() const { return m_default_color; } @@ -80,11 +88,11 @@ public: { return m_has_background; } - inline irr::video::SColor getBackground() const + inline video::SColor getBackground() const { return m_background; } - inline void setBackground(const irr::video::SColor &color) + inline void setBackground(video::SColor color) { m_background = color; m_has_background = true; @@ -92,10 +100,10 @@ public: private: std::wstring m_string; - std::vector m_colors; + std::vector m_colors; bool m_has_background; - irr::video::SColor m_default_color; - irr::video::SColor m_background; + video::SColor m_default_color; + video::SColor m_background; // This variable defines the length of the default-colored text. // Change this to a std::vector if an "end coloring" tag is wanted. size_t m_default_length = 0; diff --git a/src/util/numeric.cpp b/src/util/numeric.cpp index 1af3f66be..99e4cfb5c 100644 --- a/src/util/numeric.cpp +++ b/src/util/numeric.cpp @@ -106,10 +106,6 @@ u64 murmur_hash_64_ua(const void *key, int len, unsigned int seed) bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir, f32 camera_fov, f32 range, f32 *distance_ptr) { - // Maximum radius of a block. The magic number is - // sqrt(3.0) / 2.0 in literal form. - static constexpr const f32 block_max_radius = 0.866025403784f * MAP_BLOCKSIZE * BS; - v3s16 blockpos_nodes = blockpos_b * MAP_BLOCKSIZE; // Block center position @@ -123,7 +119,7 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir, v3f blockpos_relative = blockpos - camera_pos; // Total distance - f32 d = MYMAX(0, blockpos_relative.getLength() - block_max_radius); + f32 d = MYMAX(0, blockpos_relative.getLength() - BLOCK_MAX_RADIUS); if (distance_ptr) *distance_ptr = d; @@ -141,7 +137,7 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir, // such that a block that has any portion visible with the // current camera position will have the center visible at the // adjusted postion - f32 adjdist = block_max_radius / cos((M_PI - camera_fov) / 2); + f32 adjdist = BLOCK_MAX_RADIUS / cos((M_PI - camera_fov) / 2); // Block position relative to adjusted camera v3f blockpos_adj = blockpos - (camera_pos - camera_dir * adjdist); diff --git a/src/util/numeric.h b/src/util/numeric.h index 864ab7543..32a6f4312 100644 --- a/src/util/numeric.h +++ b/src/util/numeric.h @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include "basic_macros.h" +#include "constants.h" #include "irrlichttypes.h" #include "irr_v2d.h" #include "irr_v3d.h" @@ -36,6 +37,9 @@ with this program; if not, write to the Free Software Foundation, Inc., y = temp; \ } while (0) +// Maximum radius of a block. The magic number is +// sqrt(3.0) / 2.0 in literal form. +static constexpr const f32 BLOCK_MAX_RADIUS = 0.866025403784f * MAP_BLOCKSIZE * BS; inline s16 getContainerPos(s16 p, s16 d) { diff --git a/src/util/serialize.h b/src/util/serialize.h index b3ec28eab..15bdd050d 100644 --- a/src/util/serialize.h +++ b/src/util/serialize.h @@ -290,7 +290,7 @@ inline void writeS8(u8 *data, s8 i) inline void writeS16(u8 *data, s16 i) { - writeU16(data, (u16)i); + writeU16(data, (u16)i); } inline void writeS32(u8 *data, s32 i) diff --git a/src/util/srp.cpp b/src/util/srp.cpp index f4d369d68..ceb2fef9e 100644 --- a/src/util/srp.cpp +++ b/src/util/srp.cpp @@ -1015,10 +1015,10 @@ void srp_user_process_challenge(struct SRPUser *usr, goto cleanup_and_exit; *bytes_M = usr->M; - if (len_M) *len_M = hash_length(usr->hash_alg); + *len_M = hash_length(usr->hash_alg); } else { *bytes_M = NULL; - if (len_M) *len_M = 0; + *len_M = 0; } cleanup_and_exit: diff --git a/src/util/string.cpp b/src/util/string.cpp index 8381a29c5..eec5ab4cd 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -30,7 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include -#include +#include #ifndef _WIN32 #include @@ -44,14 +44,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #define BSD_ICONV_USED #endif -static bool parseHexColorString(const std::string &value, video::SColor &color, - unsigned char default_alpha = 0xff); -static bool parseNamedColorString(const std::string &value, video::SColor &color); - #ifndef _WIN32 -bool convert(const char *to, const char *from, char *outbuf, - size_t outbuf_size, char *inbuf, size_t inbuf_size) +static bool convert(const char *to, const char *from, char *outbuf, + size_t *outbuf_size, char *inbuf, size_t inbuf_size) { iconv_t cd = iconv_open(to, from); @@ -60,15 +56,14 @@ bool convert(const char *to, const char *from, char *outbuf, #else char *inbuf_ptr = inbuf; #endif - char *outbuf_ptr = outbuf; size_t *inbuf_left_ptr = &inbuf_size; - size_t *outbuf_left_ptr = &outbuf_size; + const size_t old_outbuf_size = *outbuf_size; size_t old_size = inbuf_size; while (inbuf_size > 0) { - iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_left_ptr); + iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_size); if (inbuf_size == old_size) { iconv_close(cd); return false; @@ -77,11 +72,12 @@ bool convert(const char *to, const char *from, char *outbuf, } iconv_close(cd); + *outbuf_size = old_outbuf_size - *outbuf_size; return true; } #ifdef __ANDROID__ -// Android need manual caring to support the full character set possible with wchar_t +// On Android iconv disagrees how big a wchar_t is for whatever reason const char *DEFAULT_ENCODING = "UTF-32LE"; #else const char *DEFAULT_ENCODING = "WCHAR_T"; @@ -89,58 +85,52 @@ const char *DEFAULT_ENCODING = "WCHAR_T"; std::wstring utf8_to_wide(const std::string &input) { - size_t inbuf_size = input.length() + 1; + const size_t inbuf_size = input.length(); // maximum possible size, every character is sizeof(wchar_t) bytes - size_t outbuf_size = (input.length() + 1) * sizeof(wchar_t); + size_t outbuf_size = input.length() * sizeof(wchar_t); - char *inbuf = new char[inbuf_size]; + char *inbuf = new char[inbuf_size]; // intentionally NOT null-terminated memcpy(inbuf, input.c_str(), inbuf_size); - char *outbuf = new char[outbuf_size]; - memset(outbuf, 0, outbuf_size); + std::wstring out; + out.resize(outbuf_size / sizeof(wchar_t)); #ifdef __ANDROID__ - // Android need manual caring to support the full character set possible with wchar_t SANITY_CHECK(sizeof(wchar_t) == 4); #endif - if (!convert(DEFAULT_ENCODING, "UTF-8", outbuf, outbuf_size, inbuf, inbuf_size)) { + char *outbuf = reinterpret_cast(&out[0]); + if (!convert(DEFAULT_ENCODING, "UTF-8", outbuf, &outbuf_size, inbuf, inbuf_size)) { infostream << "Couldn't convert UTF-8 string 0x" << hex_encode(input) << " into wstring" << std::endl; delete[] inbuf; - delete[] outbuf; return L""; } - std::wstring out((wchar_t *)outbuf); - delete[] inbuf; - delete[] outbuf; + out.resize(outbuf_size / sizeof(wchar_t)); return out; } std::string wide_to_utf8(const std::wstring &input) { - size_t inbuf_size = (input.length() + 1) * sizeof(wchar_t); - // maximum possible size: utf-8 encodes codepoints using 1 up to 6 bytes - size_t outbuf_size = (input.length() + 1) * 6; + const size_t inbuf_size = input.length() * sizeof(wchar_t); + // maximum possible size: utf-8 encodes codepoints using 1 up to 4 bytes + size_t outbuf_size = input.length() * 4; - char *inbuf = new char[inbuf_size]; + char *inbuf = new char[inbuf_size]; // intentionally NOT null-terminated memcpy(inbuf, input.c_str(), inbuf_size); - char *outbuf = new char[outbuf_size]; - memset(outbuf, 0, outbuf_size); + std::string out; + out.resize(outbuf_size); - if (!convert("UTF-8", DEFAULT_ENCODING, outbuf, outbuf_size, inbuf, inbuf_size)) { + if (!convert("UTF-8", DEFAULT_ENCODING, &out[0], &outbuf_size, inbuf, inbuf_size)) { infostream << "Couldn't convert wstring 0x" << hex_encode(inbuf, inbuf_size) << " into UTF-8 string" << std::endl; delete[] inbuf; - delete[] outbuf; - return ""; + return ""; } - std::string out(outbuf); - delete[] inbuf; - delete[] outbuf; + out.resize(outbuf_size); return out; } @@ -172,74 +162,15 @@ std::string wide_to_utf8(const std::wstring &input) #endif // _WIN32 -// You must free the returned string! -// The returned string is allocated using new wchar_t *utf8_to_wide_c(const char *str) { std::wstring ret = utf8_to_wide(std::string(str)); size_t len = ret.length(); wchar_t *ret_c = new wchar_t[len + 1]; - memset(ret_c, 0, (len + 1) * sizeof(wchar_t)); - memcpy(ret_c, ret.c_str(), len * sizeof(wchar_t)); + memcpy(ret_c, ret.c_str(), (len + 1) * sizeof(wchar_t)); return ret_c; } -// You must free the returned string! -// The returned string is allocated using new -wchar_t *narrow_to_wide_c(const char *str) -{ - wchar_t *nstr = nullptr; -#if defined(_WIN32) - int nResult = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR) str, -1, 0, 0); - if (nResult == 0) { - errorstream<<"gettext: MultiByteToWideChar returned null"< wcs(wcl + 1); - size_t len = mbstowcs(*wcs, mbs.c_str(), wcl); - if (len == (size_t)(-1)) - return L""; - wcs[len] = 0; - return *wcs; -#endif -} - - -std::string wide_to_narrow(const std::wstring &wcs) -{ -#ifdef __ANDROID__ - return wide_to_utf8(wcs); -#else - size_t mbl = wcs.size() * 4; - SharedBuffer mbs(mbl+1); - size_t len = wcstombs(*mbs, wcs.c_str(), mbl); - if (len == (size_t)(-1)) - return "Character conversion failed!"; - - mbs[len] = 0; - return *mbs; -#endif -} - std::string urlencode(const std::string &str) { @@ -389,29 +320,10 @@ u64 read_seed(const char *str) return num; } -bool parseColorString(const std::string &value, video::SColor &color, bool quiet, - unsigned char default_alpha) -{ - bool success; - - if (value[0] == '#') - success = parseHexColorString(value, color, default_alpha); - else - success = parseNamedColorString(value, color); - - if (!success && !quiet) - errorstream << "Invalid color: \"" << value << "\"" << std::endl; - - return success; -} - static bool parseHexColorString(const std::string &value, video::SColor &color, unsigned char default_alpha) { - unsigned char components[] = { 0x00, 0x00, 0x00, default_alpha }; // R,G,B,A - - if (value[0] != '#') - return false; + u8 components[] = {0x00, 0x00, 0x00, default_alpha}; // R,G,B,A size_t len = value.size(); bool short_form; @@ -423,198 +335,182 @@ static bool parseHexColorString(const std::string &value, video::SColor &color, else return false; - bool success = true; - for (size_t pos = 1, cc = 0; pos < len; pos++, cc++) { - assert(cc < sizeof components / sizeof components[0]); if (short_form) { - unsigned char d; - if (!hex_digit_decode(value[pos], d)) { - success = false; - break; - } + u8 d; + if (!hex_digit_decode(value[pos], d)) + return false; + components[cc] = (d & 0xf) << 4 | (d & 0xf); } else { - unsigned char d1, d2; + u8 d1, d2; if (!hex_digit_decode(value[pos], d1) || - !hex_digit_decode(value[pos+1], d2)) { - success = false; - break; - } + !hex_digit_decode(value[pos+1], d2)) + return false; + components[cc] = (d1 & 0xf) << 4 | (d2 & 0xf); - pos++; // skip the second digit -- it's already used + pos++; // skip the second digit -- it's already used } } - if (success) { - color.setRed(components[0]); - color.setGreen(components[1]); - color.setBlue(components[2]); - color.setAlpha(components[3]); - } + color.setRed(components[0]); + color.setGreen(components[1]); + color.setBlue(components[2]); + color.setAlpha(components[3]); - return success; + return true; } -struct ColorContainer { - ColorContainer(); - std::map colors; +const static std::unordered_map s_named_colors = { + {"aliceblue", 0xf0f8ff}, + {"antiquewhite", 0xfaebd7}, + {"aqua", 0x00ffff}, + {"aquamarine", 0x7fffd4}, + {"azure", 0xf0ffff}, + {"beige", 0xf5f5dc}, + {"bisque", 0xffe4c4}, + {"black", 00000000}, + {"blanchedalmond", 0xffebcd}, + {"blue", 0x0000ff}, + {"blueviolet", 0x8a2be2}, + {"brown", 0xa52a2a}, + {"burlywood", 0xdeb887}, + {"cadetblue", 0x5f9ea0}, + {"chartreuse", 0x7fff00}, + {"chocolate", 0xd2691e}, + {"coral", 0xff7f50}, + {"cornflowerblue", 0x6495ed}, + {"cornsilk", 0xfff8dc}, + {"crimson", 0xdc143c}, + {"cyan", 0x00ffff}, + {"darkblue", 0x00008b}, + {"darkcyan", 0x008b8b}, + {"darkgoldenrod", 0xb8860b}, + {"darkgray", 0xa9a9a9}, + {"darkgreen", 0x006400}, + {"darkgrey", 0xa9a9a9}, + {"darkkhaki", 0xbdb76b}, + {"darkmagenta", 0x8b008b}, + {"darkolivegreen", 0x556b2f}, + {"darkorange", 0xff8c00}, + {"darkorchid", 0x9932cc}, + {"darkred", 0x8b0000}, + {"darksalmon", 0xe9967a}, + {"darkseagreen", 0x8fbc8f}, + {"darkslateblue", 0x483d8b}, + {"darkslategray", 0x2f4f4f}, + {"darkslategrey", 0x2f4f4f}, + {"darkturquoise", 0x00ced1}, + {"darkviolet", 0x9400d3}, + {"deeppink", 0xff1493}, + {"deepskyblue", 0x00bfff}, + {"dimgray", 0x696969}, + {"dimgrey", 0x696969}, + {"dodgerblue", 0x1e90ff}, + {"firebrick", 0xb22222}, + {"floralwhite", 0xfffaf0}, + {"forestgreen", 0x228b22}, + {"fuchsia", 0xff00ff}, + {"gainsboro", 0xdcdcdc}, + {"ghostwhite", 0xf8f8ff}, + {"gold", 0xffd700}, + {"goldenrod", 0xdaa520}, + {"gray", 0x808080}, + {"green", 0x008000}, + {"greenyellow", 0xadff2f}, + {"grey", 0x808080}, + {"honeydew", 0xf0fff0}, + {"hotpink", 0xff69b4}, + {"indianred", 0xcd5c5c}, + {"indigo", 0x4b0082}, + {"ivory", 0xfffff0}, + {"khaki", 0xf0e68c}, + {"lavender", 0xe6e6fa}, + {"lavenderblush", 0xfff0f5}, + {"lawngreen", 0x7cfc00}, + {"lemonchiffon", 0xfffacd}, + {"lightblue", 0xadd8e6}, + {"lightcoral", 0xf08080}, + {"lightcyan", 0xe0ffff}, + {"lightgoldenrodyellow", 0xfafad2}, + {"lightgray", 0xd3d3d3}, + {"lightgreen", 0x90ee90}, + {"lightgrey", 0xd3d3d3}, + {"lightpink", 0xffb6c1}, + {"lightsalmon", 0xffa07a}, + {"lightseagreen", 0x20b2aa}, + {"lightskyblue", 0x87cefa}, + {"lightslategray", 0x778899}, + {"lightslategrey", 0x778899}, + {"lightsteelblue", 0xb0c4de}, + {"lightyellow", 0xffffe0}, + {"lime", 0x00ff00}, + {"limegreen", 0x32cd32}, + {"linen", 0xfaf0e6}, + {"magenta", 0xff00ff}, + {"maroon", 0x800000}, + {"mediumaquamarine", 0x66cdaa}, + {"mediumblue", 0x0000cd}, + {"mediumorchid", 0xba55d3}, + {"mediumpurple", 0x9370db}, + {"mediumseagreen", 0x3cb371}, + {"mediumslateblue", 0x7b68ee}, + {"mediumspringgreen", 0x00fa9a}, + {"mediumturquoise", 0x48d1cc}, + {"mediumvioletred", 0xc71585}, + {"midnightblue", 0x191970}, + {"mintcream", 0xf5fffa}, + {"mistyrose", 0xffe4e1}, + {"moccasin", 0xffe4b5}, + {"navajowhite", 0xffdead}, + {"navy", 0x000080}, + {"oldlace", 0xfdf5e6}, + {"olive", 0x808000}, + {"olivedrab", 0x6b8e23}, + {"orange", 0xffa500}, + {"orangered", 0xff4500}, + {"orchid", 0xda70d6}, + {"palegoldenrod", 0xeee8aa}, + {"palegreen", 0x98fb98}, + {"paleturquoise", 0xafeeee}, + {"palevioletred", 0xdb7093}, + {"papayawhip", 0xffefd5}, + {"peachpuff", 0xffdab9}, + {"peru", 0xcd853f}, + {"pink", 0xffc0cb}, + {"plum", 0xdda0dd}, + {"powderblue", 0xb0e0e6}, + {"purple", 0x800080}, + {"red", 0xff0000}, + {"rosybrown", 0xbc8f8f}, + {"royalblue", 0x4169e1}, + {"saddlebrown", 0x8b4513}, + {"salmon", 0xfa8072}, + {"sandybrown", 0xf4a460}, + {"seagreen", 0x2e8b57}, + {"seashell", 0xfff5ee}, + {"sienna", 0xa0522d}, + {"silver", 0xc0c0c0}, + {"skyblue", 0x87ceeb}, + {"slateblue", 0x6a5acd}, + {"slategray", 0x708090}, + {"slategrey", 0x708090}, + {"snow", 0xfffafa}, + {"springgreen", 0x00ff7f}, + {"steelblue", 0x4682b4}, + {"tan", 0xd2b48c}, + {"teal", 0x008080}, + {"thistle", 0xd8bfd8}, + {"tomato", 0xff6347}, + {"turquoise", 0x40e0d0}, + {"violet", 0xee82ee}, + {"wheat", 0xf5deb3}, + {"white", 0xffffff}, + {"whitesmoke", 0xf5f5f5}, + {"yellow", 0xffff00}, + {"yellowgreen", 0x9acd32} }; -ColorContainer::ColorContainer() -{ - colors["aliceblue"] = 0xf0f8ff; - colors["antiquewhite"] = 0xfaebd7; - colors["aqua"] = 0x00ffff; - colors["aquamarine"] = 0x7fffd4; - colors["azure"] = 0xf0ffff; - colors["beige"] = 0xf5f5dc; - colors["bisque"] = 0xffe4c4; - colors["black"] = 00000000; - colors["blanchedalmond"] = 0xffebcd; - colors["blue"] = 0x0000ff; - colors["blueviolet"] = 0x8a2be2; - colors["brown"] = 0xa52a2a; - colors["burlywood"] = 0xdeb887; - colors["cadetblue"] = 0x5f9ea0; - colors["chartreuse"] = 0x7fff00; - colors["chocolate"] = 0xd2691e; - colors["coral"] = 0xff7f50; - colors["cornflowerblue"] = 0x6495ed; - colors["cornsilk"] = 0xfff8dc; - colors["crimson"] = 0xdc143c; - colors["cyan"] = 0x00ffff; - colors["darkblue"] = 0x00008b; - colors["darkcyan"] = 0x008b8b; - colors["darkgoldenrod"] = 0xb8860b; - colors["darkgray"] = 0xa9a9a9; - colors["darkgreen"] = 0x006400; - colors["darkgrey"] = 0xa9a9a9; - colors["darkkhaki"] = 0xbdb76b; - colors["darkmagenta"] = 0x8b008b; - colors["darkolivegreen"] = 0x556b2f; - colors["darkorange"] = 0xff8c00; - colors["darkorchid"] = 0x9932cc; - colors["darkred"] = 0x8b0000; - colors["darksalmon"] = 0xe9967a; - colors["darkseagreen"] = 0x8fbc8f; - colors["darkslateblue"] = 0x483d8b; - colors["darkslategray"] = 0x2f4f4f; - colors["darkslategrey"] = 0x2f4f4f; - colors["darkturquoise"] = 0x00ced1; - colors["darkviolet"] = 0x9400d3; - colors["deeppink"] = 0xff1493; - colors["deepskyblue"] = 0x00bfff; - colors["dimgray"] = 0x696969; - colors["dimgrey"] = 0x696969; - colors["dodgerblue"] = 0x1e90ff; - colors["firebrick"] = 0xb22222; - colors["floralwhite"] = 0xfffaf0; - colors["forestgreen"] = 0x228b22; - colors["fuchsia"] = 0xff00ff; - colors["gainsboro"] = 0xdcdcdc; - colors["ghostwhite"] = 0xf8f8ff; - colors["gold"] = 0xffd700; - colors["goldenrod"] = 0xdaa520; - colors["gray"] = 0x808080; - colors["green"] = 0x008000; - colors["greenyellow"] = 0xadff2f; - colors["grey"] = 0x808080; - colors["honeydew"] = 0xf0fff0; - colors["hotpink"] = 0xff69b4; - colors["indianred"] = 0xcd5c5c; - colors["indigo"] = 0x4b0082; - colors["ivory"] = 0xfffff0; - colors["khaki"] = 0xf0e68c; - colors["lavender"] = 0xe6e6fa; - colors["lavenderblush"] = 0xfff0f5; - colors["lawngreen"] = 0x7cfc00; - colors["lemonchiffon"] = 0xfffacd; - colors["lightblue"] = 0xadd8e6; - colors["lightcoral"] = 0xf08080; - colors["lightcyan"] = 0xe0ffff; - colors["lightgoldenrodyellow"] = 0xfafad2; - colors["lightgray"] = 0xd3d3d3; - colors["lightgreen"] = 0x90ee90; - colors["lightgrey"] = 0xd3d3d3; - colors["lightpink"] = 0xffb6c1; - colors["lightsalmon"] = 0xffa07a; - colors["lightseagreen"] = 0x20b2aa; - colors["lightskyblue"] = 0x87cefa; - colors["lightslategray"] = 0x778899; - colors["lightslategrey"] = 0x778899; - colors["lightsteelblue"] = 0xb0c4de; - colors["lightyellow"] = 0xffffe0; - colors["lime"] = 0x00ff00; - colors["limegreen"] = 0x32cd32; - colors["linen"] = 0xfaf0e6; - colors["magenta"] = 0xff00ff; - colors["maroon"] = 0x800000; - colors["mediumaquamarine"] = 0x66cdaa; - colors["mediumblue"] = 0x0000cd; - colors["mediumorchid"] = 0xba55d3; - colors["mediumpurple"] = 0x9370db; - colors["mediumseagreen"] = 0x3cb371; - colors["mediumslateblue"] = 0x7b68ee; - colors["mediumspringgreen"] = 0x00fa9a; - colors["mediumturquoise"] = 0x48d1cc; - colors["mediumvioletred"] = 0xc71585; - colors["midnightblue"] = 0x191970; - colors["mintcream"] = 0xf5fffa; - colors["mistyrose"] = 0xffe4e1; - colors["moccasin"] = 0xffe4b5; - colors["navajowhite"] = 0xffdead; - colors["navy"] = 0x000080; - colors["oldlace"] = 0xfdf5e6; - colors["olive"] = 0x808000; - colors["olivedrab"] = 0x6b8e23; - colors["orange"] = 0xffa500; - colors["orangered"] = 0xff4500; - colors["orchid"] = 0xda70d6; - colors["palegoldenrod"] = 0xeee8aa; - colors["palegreen"] = 0x98fb98; - colors["paleturquoise"] = 0xafeeee; - colors["palevioletred"] = 0xdb7093; - colors["papayawhip"] = 0xffefd5; - colors["peachpuff"] = 0xffdab9; - colors["peru"] = 0xcd853f; - colors["pink"] = 0xffc0cb; - colors["plum"] = 0xdda0dd; - colors["powderblue"] = 0xb0e0e6; - colors["purple"] = 0x800080; - colors["red"] = 0xff0000; - colors["rosybrown"] = 0xbc8f8f; - colors["royalblue"] = 0x4169e1; - colors["saddlebrown"] = 0x8b4513; - colors["salmon"] = 0xfa8072; - colors["sandybrown"] = 0xf4a460; - colors["seagreen"] = 0x2e8b57; - colors["seashell"] = 0xfff5ee; - colors["sienna"] = 0xa0522d; - colors["silver"] = 0xc0c0c0; - colors["skyblue"] = 0x87ceeb; - colors["slateblue"] = 0x6a5acd; - colors["slategray"] = 0x708090; - colors["slategrey"] = 0x708090; - colors["snow"] = 0xfffafa; - colors["springgreen"] = 0x00ff7f; - colors["steelblue"] = 0x4682b4; - colors["tan"] = 0xd2b48c; - colors["teal"] = 0x008080; - colors["thistle"] = 0xd8bfd8; - colors["tomato"] = 0xff6347; - colors["turquoise"] = 0x40e0d0; - colors["violet"] = 0xee82ee; - colors["wheat"] = 0xf5deb3; - colors["white"] = 0xffffff; - colors["whitesmoke"] = 0xf5f5f5; - colors["yellow"] = 0xffff00; - colors["yellowgreen"] = 0x9acd32; - -} - -static const ColorContainer named_colors; - static bool parseNamedColorString(const std::string &value, video::SColor &color) { std::string color_name; @@ -633,11 +529,10 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color color_name = value; } - color_name = lowercase(value); + color_name = lowercase(color_name); - std::map::const_iterator it; - it = named_colors.colors.find(color_name); - if (it == named_colors.colors.end()) + auto it = s_named_colors.find(color_name); + if (it == s_named_colors.end()) return false; u32 color_temp = it->second; @@ -645,21 +540,26 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color /* An empty string for alpha is ok (none of the color table entries * have an alpha value either). Color strings without an alpha specified * are interpreted as fully opaque - * - * For named colors the supplied alpha string (representing a hex value) - * must be exactly two digits. For example: colorname#08 */ if (!alpha_string.empty()) { - if (alpha_string.length() != 2) - return false; + if (alpha_string.size() == 1) { + u8 d; + if (!hex_digit_decode(alpha_string[0], d)) + return false; - unsigned char d1, d2; - if (!hex_digit_decode(alpha_string.at(0), d1) - || !hex_digit_decode(alpha_string.at(1), d2)) + color_temp |= ((d & 0xf) << 4 | (d & 0xf)) << 24; + } else if (alpha_string.size() == 2) { + u8 d1, d2; + if (!hex_digit_decode(alpha_string[0], d1) + || !hex_digit_decode(alpha_string[1], d2)) + return false; + + color_temp |= ((d1 & 0xf) << 4 | (d2 & 0xf)) << 24; + } else { return false; - color_temp |= ((d1 & 0xf) << 4 | (d2 & 0xf)) << 24; + } } else { - color_temp |= 0xff << 24; // Fully opaque + color_temp |= 0xff << 24; // Fully opaque } color = video::SColor(color_temp); @@ -667,6 +567,22 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color return true; } +bool parseColorString(const std::string &value, video::SColor &color, bool quiet, + unsigned char default_alpha) +{ + bool success; + + if (value[0] == '#') + success = parseHexColorString(value, color, default_alpha); + else + success = parseNamedColorString(value, color); + + if (!success && !quiet) + errorstream << "Invalid color: \"" << value << "\"" << std::endl; + + return success; +} + void str_replace(std::string &str, char from, char to) { std::replace(str.begin(), str.end(), from, to); @@ -766,7 +682,8 @@ void translate_string(const std::wstring &s, Translations *translations, } else { // This is an escape sequence *inside* the template string to translate itself. // This should not happen, show an error message. - errorstream << "Ignoring escape sequence '" << wide_to_narrow(escape_sequence) << "' in translation" << std::endl; + errorstream << "Ignoring escape sequence '" + << wide_to_utf8(escape_sequence) << "' in translation" << std::endl; } } diff --git a/src/util/string.h b/src/util/string.h index 6fd11fadc..21f1d6877 100644 --- a/src/util/string.h +++ b/src/util/string.h @@ -64,22 +64,14 @@ struct FlagDesc { u32 flag; }; -// try not to convert between wide/utf8 encodings; this can result in data loss -// try to only convert between them when you need to input/output stuff via Irrlicht +// Try to avoid converting between wide and UTF-8 unless you need to +// input/output stuff via Irrlicht std::wstring utf8_to_wide(const std::string &input); std::string wide_to_utf8(const std::wstring &input); -wchar_t *utf8_to_wide_c(const char *str); - -// NEVER use those two functions unless you have a VERY GOOD reason to -// they just convert between wide and multibyte encoding -// multibyte encoding depends on current locale, this is no good, especially on Windows - // You must free the returned string! -// The returned string is allocated using new -wchar_t *narrow_to_wide_c(const char *str); -std::wstring narrow_to_wide(const std::string &mbs); -std::string wide_to_narrow(const std::wstring &wcs); +// The returned string is allocated using new[] +wchar_t *utf8_to_wide_c(const char *str); std::string urlencode(const std::string &str); std::string urldecode(const std::string &str); @@ -353,11 +345,6 @@ inline s32 mystoi(const std::string &str, s32 min, s32 max) return i; } - -// MSVC2010 includes it's own versions of these -//#if !defined(_MSC_VER) || _MSC_VER < 1600 - - /** * Returns a 32-bit value reprensented by the string \p str (decimal). * @see atoi(3) for further limitations @@ -367,17 +354,6 @@ inline s32 mystoi(const std::string &str) return atoi(str.c_str()); } - -/** - * Returns s 32-bit value represented by the wide string \p str (decimal). - * @see atoi(3) for further limitations - */ -inline s32 mystoi(const std::wstring &str) -{ - return mystoi(wide_to_narrow(str)); -} - - /** * Returns a float reprensented by the string \p str (decimal). * @see atof(3) @@ -387,8 +363,6 @@ inline float mystof(const std::string &str) return atof(str.c_str()); } -//#endif - #define stoi mystoi #define stof mystof @@ -696,15 +670,19 @@ inline const std::string duration_to_string(int sec) std::stringstream ss; if (hour > 0) { - ss << hour << "h "; + ss << hour << "h"; + if (min > 0 || sec > 0) + ss << " "; } if (min > 0) { - ss << min << "m "; + ss << min << "min"; + if (sec > 0) + ss << " "; } if (sec > 0) { - ss << sec << "s "; + ss << sec << "s"; } return ss.str(); diff --git a/src/version.cpp b/src/version.cpp index 241228a6a..c555f30af 100644 --- a/src/version.cpp +++ b/src/version.cpp @@ -33,11 +33,12 @@ const char *g_version_hash = VERSION_GITHASH; const char *g_build_info = "BUILD_TYPE=" BUILD_TYPE "\n" "RUN_IN_PLACE=" STR(RUN_IN_PLACE) "\n" + "USE_CURL=" STR(USE_CURL) "\n" +#ifndef SERVER "USE_GETTEXT=" STR(USE_GETTEXT) "\n" "USE_SOUND=" STR(USE_SOUND) "\n" - "USE_CURL=" STR(USE_CURL) "\n" "USE_FREETYPE=" STR(USE_FREETYPE) "\n" - "USE_LUAJIT=" STR(USE_LUAJIT) "\n" +#endif "STATIC_SHAREDIR=" STR(STATIC_SHAREDIR) #if USE_GETTEXT && defined(STATIC_LOCALEDIR) "\n" "STATIC_LOCALEDIR=" STR(STATIC_LOCALEDIR) diff --git a/src/voxelalgorithms.cpp b/src/voxelalgorithms.cpp index 62fd68890..ffb70aa71 100644 --- a/src/voxelalgorithms.cpp +++ b/src/voxelalgorithms.cpp @@ -65,7 +65,7 @@ struct ChangingLight { ChangingLight() = default; - ChangingLight(const relative_v3 &rel_pos, const mapblock_v3 &block_pos, + ChangingLight(relative_v3 rel_pos, mapblock_v3 block_pos, MapBlock *b, direction source_dir) : rel_position(rel_pos), block_position(block_pos), @@ -125,8 +125,8 @@ struct LightQueue { * The parameters are the same as in ChangingLight's constructor. * \param light light level of the ChangingLight */ - inline void push(u8 light, const relative_v3 &rel_pos, - const mapblock_v3 &block_pos, MapBlock *block, + inline void push(u8 light, relative_v3 rel_pos, + mapblock_v3 block_pos, MapBlock *block, direction source_dir) { assert(light <= LIGHT_SUN); @@ -467,7 +467,7 @@ bool is_sunlight_above(Map *map, v3s16 pos, const NodeDefManager *ndef) static const LightBank banks[] = { LIGHTBANK_DAY, LIGHTBANK_NIGHT }; void update_lighting_nodes(Map *map, - std::vector > &oldnodes, + const std::vector> &oldnodes, std::map &modified_blocks) { const NodeDefManager *ndef = map->getNodeDefManager(); @@ -482,8 +482,7 @@ void update_lighting_nodes(Map *map, // won't change, since they didn't get their light from a // modified node. u8 min_safe_light = 0; - for (std::vector >::iterator it = - oldnodes.begin(); it < oldnodes.end(); ++it) { + for (auto it = oldnodes.cbegin(); it < oldnodes.cend(); ++it) { u8 old_light = it->second.getLight(bank, ndef); if (old_light > min_safe_light) { min_safe_light = old_light; @@ -495,8 +494,7 @@ void update_lighting_nodes(Map *map, min_safe_light++; } // For each changed node process sunlight and initialize - for (std::vector >::iterator it = - oldnodes.begin(); it < oldnodes.end(); ++it) { + for (auto it = oldnodes.cbegin(); it < oldnodes.cend(); ++it) { // Get position and block of the changed node v3s16 p = it->first; relative_v3 rel_pos; diff --git a/src/voxelalgorithms.h b/src/voxelalgorithms.h index 1452f30f4..bcbd3b586 100644 --- a/src/voxelalgorithms.h +++ b/src/voxelalgorithms.h @@ -45,7 +45,7 @@ namespace voxalgo */ void update_lighting_nodes( Map *map, - std::vector > &oldnodes, + const std::vector> &oldnodes, std::map &modified_blocks); /*! diff --git a/textures/base/pack/aux1_btn.png b/textures/base/pack/aux1_btn.png new file mode 100644 index 000000000..8ceb09542 Binary files /dev/null and b/textures/base/pack/aux1_btn.png differ diff --git a/textures/base/pack/aux_btn.png b/textures/base/pack/aux_btn.png deleted file mode 100644 index f589910e8..000000000 Binary files a/textures/base/pack/aux_btn.png and /dev/null differ diff --git a/textures/base/pack/cdb_add.png b/textures/base/pack/cdb_add.png new file mode 100644 index 000000000..3e3d067e3 Binary files /dev/null and b/textures/base/pack/cdb_add.png differ diff --git a/textures/base/pack/cdb_clear.png b/textures/base/pack/cdb_clear.png new file mode 100644 index 000000000..4490d41cb Binary files /dev/null and b/textures/base/pack/cdb_clear.png differ diff --git a/textures/base/pack/cdb_downloading.png b/textures/base/pack/cdb_downloading.png new file mode 100644 index 000000000..8cba383cc Binary files /dev/null and b/textures/base/pack/cdb_downloading.png differ diff --git a/textures/base/pack/cdb_queued.png b/textures/base/pack/cdb_queued.png new file mode 100644 index 000000000..6972f7fb8 Binary files /dev/null and b/textures/base/pack/cdb_queued.png differ diff --git a/textures/base/pack/cdb_update.png b/textures/base/pack/cdb_update.png new file mode 100644 index 000000000..262e42d3b Binary files /dev/null and b/textures/base/pack/cdb_update.png differ diff --git a/textures/base/pack/cdb_viewonline.png b/textures/base/pack/cdb_viewonline.png new file mode 100644 index 000000000..ae2a146b8 Binary files /dev/null and b/textures/base/pack/cdb_viewonline.png differ diff --git a/textures/base/pack/clear.png b/textures/base/pack/clear.png new file mode 100644 index 000000000..9244264ad Binary files /dev/null and b/textures/base/pack/clear.png differ diff --git a/textures/base/pack/logo.png b/textures/base/pack/logo.png index 48793678f..5284900b2 100644 Binary files a/textures/base/pack/logo.png and b/textures/base/pack/logo.png differ diff --git a/textures/base/pack/search.png b/textures/base/pack/search.png new file mode 100644 index 000000000..aace8044a Binary files /dev/null and b/textures/base/pack/search.png differ diff --git a/textures/base/pack/server_flags_favorite.png b/textures/base/pack/server_favorite.png similarity index 100% rename from textures/base/pack/server_flags_favorite.png rename to textures/base/pack/server_favorite.png diff --git a/textures/base/pack/server_incompatible.png b/textures/base/pack/server_incompatible.png new file mode 100644 index 000000000..9076ab58f Binary files /dev/null and b/textures/base/pack/server_incompatible.png differ diff --git a/textures/base/pack/server_public.png b/textures/base/pack/server_public.png new file mode 100644 index 000000000..46a48fac8 Binary files /dev/null and b/textures/base/pack/server_public.png differ diff --git a/util/buildbot/buildwin32.sh b/util/buildbot/buildwin32.sh index a4238fbd8..1b0a997a8 100755 --- a/util/buildbot/buildwin32.sh +++ b/util/buildbot/buildwin32.sh @@ -4,9 +4,9 @@ set -e CORE_GIT=https://github.com/EliasFleckenstein03/dragonfireclient CORE_BRANCH=master CORE_NAME=dragonfireclient -GAME_GIT=https://git.minetest.land/Wuzzy/MineClone2 +GAME_GIT=https://git.minetest.land/MineClone2/MineClone2 GAME_BRANCH=master -GAME_NAME=mineclone2 +GAME_NAME=MineClone2 dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" if [ $# -ne 1 ]; then @@ -16,12 +16,13 @@ fi builddir=$1 mkdir -p $builddir builddir="$( cd "$builddir" && pwd )" -packagedir=$builddir/packages libdir=$builddir/libs # Test which win32 compiler is present -which i586-mingw32msvc-windres &>/dev/null && toolchain_file=$dir/toolchain_i586-mingw32msvc.cmake -which i686-w64-mingw32-windres &>/dev/null && toolchain_file=$dir/toolchain_i646-w64-mingw32.cmake +which i686-w64-mingw32-gcc &>/dev/null && + toolchain_file=$dir/toolchain_i686-w64-mingw32.cmake +which i686-w64-mingw32-gcc-posix &>/dev/null && + toolchain_file=$dir/toolchain_i686-w64-mingw32-posix.cmake if [ -z "$toolchain_file" ]; then echo "Unable to determine which mingw32 compiler to use" @@ -29,86 +30,82 @@ if [ -z "$toolchain_file" ]; then fi echo "Using $toolchain_file" -irrlicht_version=1.8.4 -ogg_version=1.3.2 -vorbis_version=1.3.5 -curl_version=7.65.3 +irrlicht_version=1.9.0mt1 +ogg_version=1.3.4 +vorbis_version=1.3.7 +curl_version=7.76.1 gettext_version=0.20.1 -freetype_version=2.10.1 -sqlite3_version=3.27.2 +freetype_version=2.10.4 +sqlite3_version=3.35.5 luajit_version=2.1.0-beta3 -leveldb_version=1.22 +leveldb_version=1.23 zlib_version=1.2.11 -mkdir -p $packagedir mkdir -p $libdir -cd $builddir +download () { + local url=$1 + local filename=$2 + [ -z "$filename" ] && filename=${url##*/} + local foldername=${filename%%[.-]*} + local extract=$3 + [ -z "$extract" ] && extract=unzip + + [ -d "./$foldername" ] && return 0 + wget "$url" -c -O "./$filename" + if [ "$extract" = "unzip" ]; then + unzip -o "$filename" -d "$foldername" + elif [ "$extract" = "unzip_nofolder" ]; then + unzip -o "$filename" + else + return 1 + fi +} # Get stuff -[ -e $packagedir/irrlicht-$irrlicht_version.zip ] || wget http://minetest.kitsunemimi.pw/irrlicht-$irrlicht_version-win32.zip \ - -c -O $packagedir/irrlicht-$irrlicht_version.zip -[ -e $packagedir/zlib-$zlib_version.zip ] || wget http://minetest.kitsunemimi.pw/zlib-$zlib_version-win32.zip \ - -c -O $packagedir/zlib-$zlib_version.zip -[ -e $packagedir/libogg-$ogg_version.zip ] || wget http://minetest.kitsunemimi.pw/libogg-$ogg_version-win32.zip \ - -c -O $packagedir/libogg-$ogg_version.zip -[ -e $packagedir/libvorbis-$vorbis_version.zip ] || wget http://minetest.kitsunemimi.pw/libvorbis-$vorbis_version-win32.zip \ - -c -O $packagedir/libvorbis-$vorbis_version.zip -[ -e $packagedir/curl-$curl_version.zip ] || wget http://minetest.kitsunemimi.pw/curl-$curl_version-win32.zip \ - -c -O $packagedir/curl-$curl_version.zip -[ -e $packagedir/gettext-$gettext_version.zip ] || wget http://minetest.kitsunemimi.pw/gettext-$gettext_version-win32.zip \ - -c -O $packagedir/gettext-$gettext_version.zip -[ -e $packagedir/freetype2-$freetype_version.zip ] || wget http://minetest.kitsunemimi.pw/freetype2-$freetype_version-win32.zip \ - -c -O $packagedir/freetype2-$freetype_version.zip -[ -e $packagedir/sqlite3-$sqlite3_version.zip ] || wget http://minetest.kitsunemimi.pw/sqlite3-$sqlite3_version-win32.zip \ - -c -O $packagedir/sqlite3-$sqlite3_version.zip -[ -e $packagedir/luajit-$luajit_version.zip ] || wget http://minetest.kitsunemimi.pw/luajit-$luajit_version-win32.zip \ - -c -O $packagedir/luajit-$luajit_version.zip -[ -e $packagedir/libleveldb-$leveldb_version.zip ] || wget http://minetest.kitsunemimi.pw/libleveldb-$leveldb_version-win32.zip \ - -c -O $packagedir/libleveldb-$leveldb_version.zip -[ -e $packagedir/openal_stripped.zip ] || wget http://minetest.kitsunemimi.pw/openal_stripped.zip \ - -c -O $packagedir/openal_stripped.zip - -# Extract stuff cd $libdir -[ -d irrlicht ] || unzip -o $packagedir/irrlicht-$irrlicht_version.zip -d irrlicht -[ -d zlib ] || unzip -o $packagedir/zlib-$zlib_version.zip -d zlib -[ -d libogg ] || unzip -o $packagedir/libogg-$ogg_version.zip -d libogg -[ -d libvorbis ] || unzip -o $packagedir/libvorbis-$vorbis_version.zip -d libvorbis -[ -d libcurl ] || unzip -o $packagedir/curl-$curl_version.zip -d libcurl -[ -d gettext ] || unzip -o $packagedir/gettext-$gettext_version.zip -d gettext -[ -d freetype ] || unzip -o $packagedir/freetype2-$freetype_version.zip -d freetype -[ -d sqlite3 ] || unzip -o $packagedir/sqlite3-$sqlite3_version.zip -d sqlite3 -[ -d openal_stripped ] || unzip -o $packagedir/openal_stripped.zip -[ -d luajit ] || unzip -o $packagedir/luajit-$luajit_version.zip -d luajit -[ -d leveldb ] || unzip -o $packagedir/libleveldb-$leveldb_version.zip -d leveldb +download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win32.zip" irrlicht-$irrlicht_version.zip +download "http://minetest.kitsunemimi.pw/zlib-$zlib_version-win32.zip" +download "http://minetest.kitsunemimi.pw/libogg-$ogg_version-win32.zip" +download "http://minetest.kitsunemimi.pw/libvorbis-$vorbis_version-win32.zip" +download "http://minetest.kitsunemimi.pw/curl-$curl_version-win32.zip" +download "http://minetest.kitsunemimi.pw/gettext-$gettext_version-win32.zip" +download "http://minetest.kitsunemimi.pw/freetype2-$freetype_version-win32.zip" freetype-$freetype_version.zip +download "http://minetest.kitsunemimi.pw/sqlite3-$sqlite3_version-win32.zip" +download "http://minetest.kitsunemimi.pw/luajit-$luajit_version-win32.zip" +download "http://minetest.kitsunemimi.pw/libleveldb-$leveldb_version-win32.zip" leveldb-$leveldb_version.zip +download "http://minetest.kitsunemimi.pw/openal_stripped.zip" '' unzip_nofolder -# Get minetest -cd $builddir -if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then - cd /$EXISTING_MINETEST_DIR # must be absolute path +# Set source dir, downloading Minetest as needed +if [ -n "$EXISTING_MINETEST_DIR" ]; then + sourcedir="$( cd "$EXISTING_MINETEST_DIR" && pwd )" else - [ -d $CORE_NAME ] && (cd $CORE_NAME && git pull) || (git clone -b $CORE_BRANCH $CORE_GIT) - cd $CORE_NAME + sourcedir=$PWD/$CORE_NAME + [ -d $CORE_NAME ] && { pushd $CORE_NAME; git pull; popd; } || \ + git clone -b $CORE_BRANCH $CORE_GIT $CORE_NAME + if [ -z "$NO_MINETEST_GAME" ]; then + [ -d games/$GAME_NAME ] && { pushd games/$GAME_NAME; git pull; popd; } || \ + git clone -b $GAME_BRANCH $GAME_GIT games/$GAME_NAME + fi fi -git_hash=$(git rev-parse --short HEAD) -# Get minetest_game -if [ "x$NO_MINETEST_GAME" = "x" ]; then - cd games - [ -d $GAME_NAME ] && (cd $GAME_NAME && git pull) || (git clone -b $GAME_BRANCH $GAME_GIT) - cd .. -fi +git_hash=$(cd $sourcedir && git rev-parse --short HEAD) # Build the thing -[ -d _build ] && rm -Rf _build/ -mkdir _build -cd _build -cmake .. \ +cd $builddir +[ -d build ] && rm -rf build +mkdir build +cd build + +irr_dlls=$(echo $libdir/irrlicht/bin/*.dll | tr ' ' ';') +vorbis_dlls=$(echo $libdir/libvorbis/bin/libvorbis{,file}-*.dll | tr ' ' ';') +gettext_dlls=$(echo $libdir/gettext/bin/lib{intl,iconv}-*.dll | tr ' ' ';') + +cmake -S $sourcedir -B . \ + -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \ -DCMAKE_INSTALL_PREFIX=/tmp \ -DVERSION_EXTRA=$git_hash \ -DBUILD_CLIENT=1 -DBUILD_SERVER=0 \ - -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \ \ -DENABLE_SOUND=1 \ -DENABLE_CURL=1 \ @@ -116,9 +113,9 @@ cmake .. \ -DENABLE_FREETYPE=1 \ -DENABLE_LEVELDB=1 \ \ - -DIRRLICHT_INCLUDE_DIR=$libdir/irrlicht/include \ - -DIRRLICHT_LIBRARY=$libdir/irrlicht/lib/Win32-gcc/libIrrlicht.dll.a \ - -DIRRLICHT_DLL=$libdir/irrlicht/bin/Win32-gcc/Irrlicht.dll \ + -DIRRLICHT_INCLUDE_DIR=$libdir/irrlicht/include/irrlichtmt \ + -DIRRLICHT_LIBRARY=$libdir/irrlicht/lib/libIrrlichtMt.dll.a \ + -DIRRLICHT_DLL="$irr_dlls" \ \ -DZLIB_INCLUDE_DIR=$libdir/zlib/include \ -DZLIB_LIBRARIES=$libdir/zlib/lib/libz.dll.a \ @@ -133,21 +130,19 @@ cmake .. \ \ -DVORBIS_INCLUDE_DIR=$libdir/libvorbis/include \ -DVORBIS_LIBRARY=$libdir/libvorbis/lib/libvorbis.dll.a \ - -DVORBIS_DLL=$libdir/libvorbis/bin/libvorbis-0.dll \ + -DVORBIS_DLL="$vorbis_dlls" \ -DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \ - -DVORBISFILE_DLL=$libdir/libvorbis/bin/libvorbisfile-3.dll \ \ -DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \ -DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \ -DOPENAL_DLL=$libdir/openal_stripped/bin/OpenAL32.dll \ \ - -DCURL_DLL=$libdir/libcurl/bin/libcurl-4.dll \ - -DCURL_INCLUDE_DIR=$libdir/libcurl/include \ - -DCURL_LIBRARY=$libdir/libcurl/lib/libcurl.dll.a \ + -DCURL_DLL=$libdir/curl/bin/libcurl-4.dll \ + -DCURL_INCLUDE_DIR=$libdir/curl/include \ + -DCURL_LIBRARY=$libdir/curl/lib/libcurl.dll.a \ \ -DGETTEXT_MSGFMT=`which msgfmt` \ - -DGETTEXT_DLL=$libdir/gettext/bin/libintl-8.dll \ - -DGETTEXT_ICONV_DLL=$libdir/gettext/bin/libiconv-2.dll \ + -DGETTEXT_DLL="$gettext_dlls" \ -DGETTEXT_INCLUDE_DIR=$libdir/gettext/include \ -DGETTEXT_LIBRARY=$libdir/gettext/lib/libintl.dll.a \ \ @@ -166,7 +161,7 @@ cmake .. \ make -j$(nproc) -[ "x$NO_PACKAGE" = "x" ] && make package +[ -z "$NO_PACKAGE" ] && make package exit 0 # EOF diff --git a/util/buildbot/buildwin64.sh b/util/buildbot/buildwin64.sh index 1b680cf5b..a352cc8db 100755 --- a/util/buildbot/buildwin64.sh +++ b/util/buildbot/buildwin64.sh @@ -4,9 +4,9 @@ set -e CORE_GIT=https://github.com/EliasFleckenstein03/dragonfireclient CORE_BRANCH=master CORE_NAME=dragonfireclient -GAME_GIT=https://git.minetest.land/Wuzzy/MineClone2 +GAME_GIT=https://git.minetest.land/MineClone2/MineClone2 GAME_BRANCH=master -GAME_NAME=mineclone2 +GAME_NAME=MineClone2 dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" if [ $# -ne 1 ]; then @@ -16,87 +16,81 @@ fi builddir=$1 mkdir -p $builddir builddir="$( cd "$builddir" && pwd )" -packagedir=$builddir/packages libdir=$builddir/libs toolchain_file=$dir/toolchain_x86_64-w64-mingw32.cmake -irrlicht_version=1.8.4 -ogg_version=1.3.2 -vorbis_version=1.3.5 -curl_version=7.65.3 +irrlicht_version=1.9.0mt1 +ogg_version=1.3.4 +vorbis_version=1.3.7 +curl_version=7.76.1 gettext_version=0.20.1 -freetype_version=2.10.1 -sqlite3_version=3.27.2 +freetype_version=2.10.4 +sqlite3_version=3.35.5 luajit_version=2.1.0-beta3 -leveldb_version=1.22 +leveldb_version=1.23 zlib_version=1.2.11 -mkdir -p $packagedir mkdir -p $libdir -cd $builddir +download () { + local url=$1 + local filename=$2 + [ -z "$filename" ] && filename=${url##*/} + local foldername=${filename%%[.-]*} + local extract=$3 + [ -z "$extract" ] && extract=unzip + + [ -d "./$foldername" ] && return 0 + wget "$url" -c -O "./$filename" + if [ "$extract" = "unzip" ]; then + unzip -o "$filename" -d "$foldername" + elif [ "$extract" = "unzip_nofolder" ]; then + unzip -o "$filename" + else + return 1 + fi +} # Get stuff -[ -e $packagedir/irrlicht-$irrlicht_version.zip ] || wget http://minetest.kitsunemimi.pw/irrlicht-$irrlicht_version-win64.zip \ - -c -O $packagedir/irrlicht-$irrlicht_version.zip -[ -e $packagedir/zlib-$zlib_version.zip ] || wget http://minetest.kitsunemimi.pw/zlib-$zlib_version-win64.zip \ - -c -O $packagedir/zlib-$zlib_version.zip -[ -e $packagedir/libogg-$ogg_version.zip ] || wget http://minetest.kitsunemimi.pw/libogg-$ogg_version-win64.zip \ - -c -O $packagedir/libogg-$ogg_version.zip -[ -e $packagedir/libvorbis-$vorbis_version.zip ] || wget http://minetest.kitsunemimi.pw/libvorbis-$vorbis_version-win64.zip \ - -c -O $packagedir/libvorbis-$vorbis_version.zip -[ -e $packagedir/curl-$curl_version.zip ] || wget http://minetest.kitsunemimi.pw/curl-$curl_version-win64.zip \ - -c -O $packagedir/curl-$curl_version.zip -[ -e $packagedir/gettext-$gettext_version.zip ] || wget http://minetest.kitsunemimi.pw/gettext-$gettext_version-win64.zip \ - -c -O $packagedir/gettext-$gettext_version.zip -[ -e $packagedir/freetype2-$freetype_version.zip ] || wget http://minetest.kitsunemimi.pw/freetype2-$freetype_version-win64.zip \ - -c -O $packagedir/freetype2-$freetype_version.zip -[ -e $packagedir/sqlite3-$sqlite3_version.zip ] || wget http://minetest.kitsunemimi.pw/sqlite3-$sqlite3_version-win64.zip \ - -c -O $packagedir/sqlite3-$sqlite3_version.zip -[ -e $packagedir/luajit-$luajit_version.zip ] || wget http://minetest.kitsunemimi.pw/luajit-$luajit_version-win64.zip \ - -c -O $packagedir/luajit-$luajit_version.zip -[ -e $packagedir/libleveldb-$leveldb_version.zip ] || wget http://minetest.kitsunemimi.pw/libleveldb-$leveldb_version-win64.zip \ - -c -O $packagedir/libleveldb-$leveldb_version.zip -[ -e $packagedir/openal_stripped.zip ] || wget http://minetest.kitsunemimi.pw/openal_stripped64.zip \ - -c -O $packagedir/openal_stripped.zip - - -# Extract stuff cd $libdir -[ -d irrlicht ] || unzip -o $packagedir/irrlicht-$irrlicht_version.zip -d irrlicht -[ -d zlib ] || unzip -o $packagedir/zlib-$zlib_version.zip -d zlib -[ -d libogg ] || unzip -o $packagedir/libogg-$ogg_version.zip -d libogg -[ -d libvorbis ] || unzip -o $packagedir/libvorbis-$vorbis_version.zip -d libvorbis -[ -d libcurl ] || unzip -o $packagedir/curl-$curl_version.zip -d libcurl -[ -d gettext ] || unzip -o $packagedir/gettext-$gettext_version.zip -d gettext -[ -d freetype ] || unzip -o $packagedir/freetype2-$freetype_version.zip -d freetype -[ -d sqlite3 ] || unzip -o $packagedir/sqlite3-$sqlite3_version.zip -d sqlite3 -[ -d openal_stripped ] || unzip -o $packagedir/openal_stripped.zip -[ -d luajit ] || unzip -o $packagedir/luajit-$luajit_version.zip -d luajit -[ -d leveldb ] || unzip -o $packagedir/libleveldb-$leveldb_version.zip -d leveldb +download "https://github.com/minetest/irrlicht/releases/download/$irrlicht_version/win64.zip" irrlicht-$irrlicht_version.zip +download "http://minetest.kitsunemimi.pw/zlib-$zlib_version-win64.zip" +download "http://minetest.kitsunemimi.pw/libogg-$ogg_version-win64.zip" +download "http://minetest.kitsunemimi.pw/libvorbis-$vorbis_version-win64.zip" +download "http://minetest.kitsunemimi.pw/curl-$curl_version-win64.zip" +download "http://minetest.kitsunemimi.pw/gettext-$gettext_version-win64.zip" +download "http://minetest.kitsunemimi.pw/freetype2-$freetype_version-win64.zip" freetype-$freetype_version.zip +download "http://minetest.kitsunemimi.pw/sqlite3-$sqlite3_version-win64.zip" +download "http://minetest.kitsunemimi.pw/luajit-$luajit_version-win64.zip" +download "http://minetest.kitsunemimi.pw/libleveldb-$leveldb_version-win64.zip" leveldb-$leveldb_version.zip +download "http://minetest.kitsunemimi.pw/openal_stripped64.zip" 'openal_stripped.zip' unzip_nofolder -# Get minetest -cd $builddir -if [ ! "x$EXISTING_MINETEST_DIR" = "x" ]; then - cd /$EXISTING_MINETEST_DIR # must be absolute path +# Set source dir, downloading Minetest as needed +if [ -n "$EXISTING_MINETEST_DIR" ]; then + sourcedir="$( cd "$EXISTING_MINETEST_DIR" && pwd )" else - [ -d $CORE_NAME ] && (cd $CORE_NAME && git pull) || (git clone -b $CORE_BRANCH $CORE_GIT) - cd $CORE_NAME + sourcedir=$PWD/$CORE_NAME + [ -d $CORE_NAME ] && { pushd $CORE_NAME; git pull; popd; } || \ + git clone -b $CORE_BRANCH $CORE_GIT $CORE_NAME + if [ -z "$NO_MINETEST_GAME" ]; then + [ -d games/$GAME_NAME ] && { pushd games/$GAME_NAME; git pull; popd; } || \ + git clone -b $GAME_BRANCH $GAME_GIT games/$GAME_NAME + fi fi -git_hash=$(git rev-parse --short HEAD) -# Get minetest_game -if [ "x$NO_MINETEST_GAME" = "x" ]; then - cd games - [ -d $GAME_NAME ] && (cd $GAME_NAME && git pull) || (git clone -b $GAME_BRANCH $GAME_GIT) - cd .. -fi +git_hash=$(cd $sourcedir && git rev-parse --short HEAD) # Build the thing -[ -d _build ] && rm -Rf _build/ -mkdir _build -cd _build -cmake .. \ +cd $builddir +[ -d build ] && rm -rf build +mkdir build +cd build + +irr_dlls=$(echo $libdir/irrlicht/bin/*.dll | tr ' ' ';') +vorbis_dlls=$(echo $libdir/libvorbis/bin/libvorbis{,file}-*.dll | tr ' ' ';') +gettext_dlls=$(echo $libdir/gettext/bin/lib{intl,iconv}-*.dll | tr ' ' ';') + +cmake -S $sourcedir -B . \ -DCMAKE_TOOLCHAIN_FILE=$toolchain_file \ -DCMAKE_INSTALL_PREFIX=/tmp \ -DVERSION_EXTRA=$git_hash \ @@ -108,9 +102,9 @@ cmake .. \ -DENABLE_FREETYPE=1 \ -DENABLE_LEVELDB=1 \ \ - -DIRRLICHT_INCLUDE_DIR=$libdir/irrlicht/include \ - -DIRRLICHT_LIBRARY=$libdir/irrlicht/lib/Win64-gcc/libIrrlicht.dll.a \ - -DIRRLICHT_DLL=$libdir/irrlicht/bin/Win64-gcc/Irrlicht.dll \ + -DIRRLICHT_INCLUDE_DIR=$libdir/irrlicht/include/irrlichtmt \ + -DIRRLICHT_LIBRARY=$libdir/irrlicht/lib/libIrrlichtMt.dll.a \ + -DIRRLICHT_DLL="$irr_dlls" \ \ -DZLIB_INCLUDE_DIR=$libdir/zlib/include \ -DZLIB_LIBRARIES=$libdir/zlib/lib/libz.dll.a \ @@ -125,21 +119,19 @@ cmake .. \ \ -DVORBIS_INCLUDE_DIR=$libdir/libvorbis/include \ -DVORBIS_LIBRARY=$libdir/libvorbis/lib/libvorbis.dll.a \ - -DVORBIS_DLL=$libdir/libvorbis/bin/libvorbis-0.dll \ + -DVORBIS_DLL="$vorbis_dlls" \ -DVORBISFILE_LIBRARY=$libdir/libvorbis/lib/libvorbisfile.dll.a \ - -DVORBISFILE_DLL=$libdir/libvorbis/bin/libvorbisfile-3.dll \ \ -DOPENAL_INCLUDE_DIR=$libdir/openal_stripped/include/AL \ -DOPENAL_LIBRARY=$libdir/openal_stripped/lib/libOpenAL32.dll.a \ -DOPENAL_DLL=$libdir/openal_stripped/bin/OpenAL32.dll \ \ - -DCURL_DLL=$libdir/libcurl/bin/libcurl-4.dll \ - -DCURL_INCLUDE_DIR=$libdir/libcurl/include \ - -DCURL_LIBRARY=$libdir/libcurl/lib/libcurl.dll.a \ + -DCURL_DLL=$libdir/curl/bin/libcurl-4.dll \ + -DCURL_INCLUDE_DIR=$libdir/curl/include \ + -DCURL_LIBRARY=$libdir/curl/lib/libcurl.dll.a \ \ -DGETTEXT_MSGFMT=`which msgfmt` \ - -DGETTEXT_DLL=$libdir/gettext/bin/libintl-8.dll \ - -DGETTEXT_ICONV_DLL=$libdir/gettext/bin/libiconv-2.dll \ + -DGETTEXT_DLL="$gettext_dlls" \ -DGETTEXT_INCLUDE_DIR=$libdir/gettext/include \ -DGETTEXT_LIBRARY=$libdir/gettext/lib/libintl.dll.a \ \ @@ -158,7 +150,7 @@ cmake .. \ make -j$(nproc) -[ "x$NO_PACKAGE" = "x" ] && make package +[ -z "$NO_PACKAGE" ] && make package exit 0 # EOF diff --git a/util/buildbot/toolchain_i586-mingw32msvc.cmake b/util/buildbot/toolchain_i686-w64-mingw32-posix.cmake similarity index 58% rename from util/buildbot/toolchain_i586-mingw32msvc.cmake rename to util/buildbot/toolchain_i686-w64-mingw32-posix.cmake index 0eeefb84d..b5d9ba5c4 100644 --- a/util/buildbot/toolchain_i586-mingw32msvc.cmake +++ b/util/buildbot/toolchain_i686-w64-mingw32-posix.cmake @@ -2,12 +2,14 @@ SET(CMAKE_SYSTEM_NAME Windows) # which compilers to use for C and C++ -SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc) -SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++) -SET(CMAKE_RC_COMPILER i586-mingw32msvc-windres) +# *-posix is Ubuntu's naming for the MinGW variant that comes with support +# for pthreads / std::thread (required by MT) +SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc-posix) +SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++-posix) +SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres) # here is the target environment located -SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc) +SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32) # adjust the default behaviour of the FIND_XXX() commands: # search headers and libraries in the target environment, search diff --git a/util/buildbot/toolchain_i646-w64-mingw32.cmake b/util/buildbot/toolchain_i686-w64-mingw32.cmake similarity index 100% rename from util/buildbot/toolchain_i646-w64-mingw32.cmake rename to util/buildbot/toolchain_i686-w64-mingw32.cmake diff --git a/util/bump_version.sh b/util/bump_version.sh index 996962199..4b12935bd 100755 --- a/util/bump_version.sh +++ b/util/bump_version.sh @@ -21,14 +21,14 @@ prompt_for_number() { # * Commit the changes # * Tag with current version perform_release() { + RELEASE_DATE=$(date +%Y-%m-%d) + sed -i -re "s/^set\(DEVELOPMENT_BUILD TRUE\)$/set(DEVELOPMENT_BUILD FALSE)/" CMakeLists.txt + sed -i 's/project.ext.set("versionExtra", "-dev")/project.ext.set("versionExtra", "")/' build/android/build.gradle sed -i -re "s/\"versionCode\", [0-9]+/\"versionCode\", $NEW_ANDROID_VERSION_CODE/" build/android/build.gradle sed -i '/\", revs], + stdout=subprocess.PIPE, universal_newlines=True) + for line in p.stdout: + hash, author = line.strip().split(" ", 1) + n = 0 + + p2 = subprocess.Popen(["git", "show", "--numstat", "--pretty=format:", hash], + stdout=subprocess.PIPE, universal_newlines=True) + for line in p2.stdout: + added, deleted, filename = re.split(r"\s+", line.strip(), 2) + if re.search(codefiles, filename) and added != "-": + n += int(added) + p2.wait() + + if n == 0: + continue + if n > 1200: + n = 8 + elif n > 700: + n = 4 + elif n > 100: + n = 2 + else: + n = 1 + points[author] += n + p.wait() + + # Some authors duplicate? Don't add manual workarounds here, edit the .mailmap! + for author in ("updatepo.sh ", "Weblate <42@minetest.ru>"): + points.pop(author, None) + return points + +points_active = load(REVS_ACTIVE) +points_prev = load(REVS_PREVIOUS) + +with open("results.txt", "w") as f: + for author, points in sorted(points_active.items(), key=(lambda e: e[1]), reverse=True): + if points < CUTOFF_ACTIVE: break + points_prev.pop(author, None) # active authors don't appear in previous + f.write("%d\t%s\n" % (points, author)) + f.write('\n---------\n\n') + once = True + for author, points in sorted(points_prev.items(), key=(lambda e: e[1]), reverse=True): + if points < CUTOFF_PREVIOUS and once: + f.write('\n---------\n\n') + once = False + f.write("%d\t%s\n" % (points, author)) diff --git a/util/test_multiplayer.sh b/util/test_multiplayer.sh index 176cf11d9..9fb894a30 100755 --- a/util/test_multiplayer.sh +++ b/util/test_multiplayer.sh @@ -3,41 +3,58 @@ dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" gameid=devtest minetest=$dir/../bin/minetest testspath=$dir/../tests -worldpath=$testspath/testworld_$gameid -configpath=$testspath/configs -logpath=$testspath/log -conf_server=$configpath/minetest.conf.multi.server -conf_client1=$configpath/minetest.conf.multi.client1 -conf_client2=$configpath/minetest.conf.multi.client2 -log_server=$logpath/server.log -log_client1=$logpath/client1.log -log_client2=$logpath/client2.log +conf_client1=$testspath/client1.conf +conf_server=$testspath/server.conf +worldpath=$testspath/world -mkdir -p $worldpath -mkdir -p $configpath -mkdir -p $logpath +waitfor () { + n=30 + while [ $n -gt 0 ]; do + [ -f "$1" ] && return 0 + sleep 0.5 + ((n-=1)) + done + echo "Waiting for ${1##*/} timed out" + pkill -P $$ + exit 1 +} -echo -ne 'client1::shout,interact,settime,teleport,give -client2::shout,interact,settime,teleport,give -' > $worldpath/auth.txt +gdbrun () { + gdb -q -ex 'set confirm off' -ex 'r' -ex 'bt' -ex 'quit' --args "$@" +} -echo -ne '' > $conf_server +[ -e $minetest ] || { echo "executable $minetest missing"; exit 1; } -echo -ne '# client 1 config -screenW=500 -screenH=380 -name=client1 -viewing_range_nodes_min=10 -' > $conf_client1 +rm -rf $worldpath +mkdir -p $worldpath/worldmods/test -echo -ne '# client 2 config -screenW=500 -screenH=380 -name=client2 -viewing_range_nodes_min=10 -' > $conf_client2 +printf '%s\n' >$testspath/client1.conf \ + video_driver=null name=client1 viewing_range=10 \ + enable_{sound,minimap,shaders}=false -echo $(sleep 1; $minetest --disable-unittests --logfile $log_client1 --config $conf_client1 --go --address localhost) & -echo $(sleep 2; $minetest --disable-unittests --logfile $log_client2 --config $conf_client2 --go --address localhost) & -$minetest --disable-unittests --server --logfile $log_server --config $conf_server --world $worldpath --gameid $gameid +printf '%s\n' >$testspath/server.conf \ + max_block_send_distance=1 +cat >$worldpath/worldmods/test/init.lua <<"LUA" +core.after(0, function() + io.close(io.open(core.get_worldpath() .. "/startup", "w")) +end) +core.register_on_joinplayer(function(player) + io.close(io.open(core.get_worldpath() .. "/player_joined", "w")) + core.request_shutdown("", false, 2) +end) +LUA + +echo "Starting server" +gdbrun $minetest --server --config $conf_server --world $worldpath --gameid $gameid 2>&1 | sed -u 's/^/(server) /' & +waitfor $worldpath/startup + +echo "Starting client" +gdbrun $minetest --config $conf_client1 --go --address 127.0.0.1 2>&1 | sed -u 's/^/(client) /' & +waitfor $worldpath/player_joined + +echo "Waiting for client and server to exit" +wait + +echo "Success" +exit 0 diff --git a/util/updatepo.sh b/util/updatepo.sh index 168483bd4..95acb01ea 100755 --- a/util/updatepo.sh +++ b/util/updatepo.sh @@ -58,6 +58,7 @@ xgettext --package-name=minetest \ --keyword=fgettext_ne \ --keyword=strgettext \ --keyword=wstrgettext \ + --keyword=core.gettext \ --keyword=showTranslatedStatusText \ --output $potfile \ --from-code=utf-8 \ diff --git a/util/wireshark/minetest.lua b/util/wireshark/minetest.lua index 13cd6d482..d954c7597 100644 --- a/util/wireshark/minetest.lua +++ b/util/wireshark/minetest.lua @@ -299,7 +299,7 @@ do t:add(f_length, buffer(2,2)) local textlen = buffer(2,2):uint() if minetest_check_length(buffer, 4 + textlen*2, t) then - t:add(f_message, minetest_convert_utf16(buffer(4, textlen*2), "Converted chat message")) + t:add(f_message, buffer(4, textlen*2), buffer(4, textlen*2):ustring()) end end } @@ -873,7 +873,7 @@ end -- TOCLIENT_HP do - local f_hp = ProtoField.uint16("minetest.server.hp", "Hitpoints", base.DEC) + local f_hp = ProtoField.uint16("minetest.server.hp", "Health points", base.DEC) minetest_server_commands[0x33] = { "HP", 4, @@ -1379,35 +1379,6 @@ function minetest_check_length(tvb, min_len, t) end end --- Takes a Tvb or TvbRange (i.e. part of a packet) that --- contains a UTF-16 string and returns a TvbRange containing --- string converted to ASCII. Any characters outside the range --- 0x20 to 0x7e are replaced by a question mark. --- Parameter: tvb: Tvb or TvbRange that contains the UTF-16 data --- Parameter: name: will be the name of the newly created Tvb. --- Returns: New TvbRange containing the ASCII string. --- TODO: Handle surrogates (should only produce one question mark) --- TODO: Remove this when Wireshark supports UTF-16 strings natively. -function minetest_convert_utf16(tvb, name) - local hex, pos, char - hex = "" - for pos = 0, tvb:len() - 2, 2 do - char = tvb(pos, 2):uint() - if (char >= 0x20 and char <= 0x7e) or char == 0x0a then - hex = hex .. string.format(" %02x", char) - else - hex = hex .. " 3F" - end - end - if hex == "" then - -- This is a hack to avoid a failed assertion in tvbuff.c - -- (function: ensure_contiguous_no_exception) - return ByteArray.new("00"):tvb(name):range(0,0) - else - return ByteArray.new(hex):tvb(name):range() - end -end - -- Decodes a variable-length string as ASCII text -- t_textlen, t_text should be the ProtoFields created by minetest_field_helper -- alternatively t_text can be a ProtoField.string and t_textlen can be nil @@ -1438,7 +1409,7 @@ function minetest_decode_helper_utf16(tvb, t, lentype, offset, f_textlen, f_text end local textlen = tvb(offset, n):uint() * 2 if minetest_check_length(tvb, offset + n + textlen, t) then - t:add(f_text, minetest_convert_utf16(tvb(offset + n, textlen), "UTF-16 text")) + t:add(f_text, tvb(offset + n, textlen), tvb(offset + n, textlen):ustring()) return offset + n + textlen end end