diff options
489 files changed, 53781 insertions, 50231 deletions
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/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b234fb283..b01a89509 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -43,6 +43,12 @@ Contributions are welcome! Here's how you can help: 4. The code's interfaces are well designed, regardless of other aspects that might need more work in the future. 5. It uses protocols and formats which include the required compatibility. +### Important note about automated GitHub checks + +When you submit a pull request, GitHub automatically runs checks on the Minetest Engine combined with your changes. One of these checks is called 'cpp lint / clang format', which checks code formatting. Because formatting for readability requires human judgement this check often fails and often makes unsuitable formatting requests which make code readability worse. + +If this check fails, look at the details to check for any clear mistakes and correct those. However, you should not apply everything ClangFormat requests. Ignore requests that make code readability worse and any other clearly unsuitable requests. Discuss in the pull request with a core developer about how to progress. + ## Issues If you experience an issue, we would like to know the details - especially when a stable release is on the way. diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 000000000..0fcfe2390 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,42 @@ +name: android + +# build on c/cpp changes or workflow changes +on: + push: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - 'build/android/**' + - '.github/workflows/android.yml' + pull_request: + paths: + - 'lib/**.[ch]' + - 'lib/**.cpp' + - 'src/**.[ch]' + - 'src/**.cpp' + - 'build/android/**' + - '.github/workflows/android.yml' + +jobs: + build: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build with Gradle + run: cd build/android; ./gradlew assemblerelease + - name: Save armeabi artifact + uses: actions/upload-artifact@v2 + with: + name: Minetest-armeabi-v7a.apk + path: build/android/app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk + - name: Save arm64 artifact + uses: actions/upload-artifact@v2 + with: + name: Minetest-arm64-v8a.apk + path: build/android/app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae359f5d8..a3cc92a8e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,9 +33,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install g++-6 gcc-6 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps g++-6 - name: Build run: | @@ -55,9 +54,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install g++-8 gcc-8 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps g++-8 - name: Build run: | @@ -77,9 +75,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-3.9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-3.9 - name: Build run: | @@ -99,11 +96,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 valgrind -qyy source ./util/ci/common.sh - install_linux_deps - env: - WITH_LUAJIT: 1 + install_linux_deps clang-9 valgrind libluajit-5.1-dev - name: Build run: | @@ -111,6 +105,7 @@ jobs: env: CC: clang-9 CXX: clang++-9 + CMAKE_FLAGS: "-DREQUIRE_LUAJIT=1" - name: Test run: | @@ -128,9 +123,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-9 - name: Build prometheus-cpp run: | @@ -156,9 +150,8 @@ jobs: - uses: actions/checkout@v2 - name: Install deps run: | - sudo apt-get install clang-9 -qyy source ./util/ci/common.sh - install_linux_deps + install_linux_deps clang-9 - name: Build run: | @@ -188,7 +181,7 @@ jobs: - uses: actions/checkout@v2 - name: Install compiler run: | - sudo apt-get install gettext -qyy + sudo apt-get update -q && sudo apt-get install gettext -qyy wget http://minetest.kitsunemimi.pw/mingw-w64-i686_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr @@ -206,7 +199,7 @@ jobs: - uses: actions/checkout@v2 - name: Install compiler run: | - sudo apt-get install gettext -qyy + sudo apt-get update -q && sudo apt-get install gettext -qyy wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz sudo tar -xaf mingw.tar.xz -C /usr @@ -221,8 +214,8 @@ jobs: name: VS 2019 ${{ matrix.config.arch }}-${{ matrix.type }} runs-on: windows-2019 env: - VCPKG_VERSION: c7ab9d3110813979a873b2dbac630a9ab79850dc -# 2020.04 + VCPKG_VERSION: 0bf3923f9fab4001c00f0f429682a0853b5749e0 +# 2020.11 vcpkg_packages: irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit strategy: fail-fast: false @@ -248,7 +241,7 @@ jobs: uses: actions/checkout@v2 - name: Restore from cache and run vcpkg - uses: lukka/run-vcpkg@v2 + uses: lukka/run-vcpkg@v5 with: vcpkgArguments: ${{env.vcpkg_packages}} vcpkgDirectory: '${{ github.workspace }}\vcpkg' diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d03b7b601..0441aeaa1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,12 +18,12 @@ variables: - mkdir cmakebuild - mkdir -p artifact/minetest/usr/ - cd cmakebuild - - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE .. + - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DENABLE_SYSTEM_JSONCPP=TRUE -DBUILD_SERVER=TRUE .. - make -j2 - make install artifacts: when: on_success - expire_in: 2h + expire_in: 1h paths: - artifact/* @@ -34,15 +34,14 @@ variables: - apt-get install -y git - mkdir -p build/deb/minetest/DEBIAN/ - cp misc/debpkg-control build/deb/minetest/DEBIAN/control - - cp -Rp artifact/minetest/usr build/deb/minetest/ + - cp -a artifact/minetest/usr build/deb/minetest/ script: - - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest - - rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git + - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest_game + - rm -rf build/deb/minetest/usr/share/minetest/games/minetest/.git - sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control - sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control - cd build/deb/ && dpkg-deb -b minetest/ && mv minetest.deb ../../ artifacts: - when: on_success expire_in: 90 day paths: - ./*.deb @@ -51,44 +50,14 @@ variables: stage: deploy before_script: - apt-get update -y - - apt-get install -y libc6 libcurl3-gnutls libfreetype6 libirrlicht1.8 $LEVELDB_PKG liblua5.1-0 libluajit-5.1-2 libopenal1 libstdc++6 libvorbisfile3 libx11-6 zlib1g script: - - dpkg -i ./*.deb + - apt-get install -y ./*.deb + - minetest --version ## ## Debian ## -# Jessie - -build:debian-8: - extends: .build_template - image: debian:8 - before_script: - - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list - - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F - - apt-get update -y - - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev - variables: - CC: gcc-6 - CXX: g++-6 - -package:debian-8: - extends: .debpkg_template - image: debian:8 - dependencies: - - build:debian-8 - variables: - LEVELDB_PKG: libleveldb1 - -deploy:debian-8: - extends: .debpkg_install - image: debian:8 - dependencies: - - package:debian-8 - variables: - LEVELDB_PKG: libleveldb1 - # Stretch build:debian-9: @@ -101,7 +70,7 @@ build:debian-9: package:debian-9: extends: .debpkg_template image: debian:9 - dependencies: + needs: - build:debian-9 variables: LEVELDB_PKG: libleveldb1v5 @@ -109,12 +78,10 @@ package:debian-9: deploy:debian-9: extends: .debpkg_install image: debian:9 - dependencies: + needs: - package:debian-9 - variables: - LEVELDB_PKG: libleveldb1v5 -# Stretch +# Buster build:debian-10: extends: .build_template @@ -126,7 +93,7 @@ build:debian-10: package:debian-10: extends: .debpkg_template image: debian:10 - dependencies: + needs: - build:debian-10 variables: LEVELDB_PKG: libleveldb1d @@ -134,44 +101,13 @@ package:debian-10: deploy:debian-10: extends: .debpkg_install image: debian:10 - dependencies: + needs: - package:debian-10 - variables: - LEVELDB_PKG: libleveldb1d + ## ## Ubuntu ## -# Trusty - -build:ubuntu-14.04: - extends: .build_template - image: ubuntu:trusty - before_script: - - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list - - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F - - apt-get update -y - - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev - variables: - CC: gcc-6 - CXX: g++-6 - -package:ubuntu-14.04: - extends: .debpkg_template - image: ubuntu:trusty - dependencies: - - build:ubuntu-14.04 - variables: - LEVELDB_PKG: libleveldb1 - -deploy:ubuntu-14.04: - extends: .debpkg_install - image: ubuntu:trusty - dependencies: - - package:ubuntu-14.04 - variables: - LEVELDB_PKG: libleveldb1 - # Xenial build:ubuntu-16.04: @@ -184,7 +120,7 @@ build:ubuntu-16.04: package:ubuntu-16.04: extends: .debpkg_template image: ubuntu:xenial - dependencies: + needs: - build:ubuntu-16.04 variables: LEVELDB_PKG: libleveldb1v5 @@ -192,25 +128,45 @@ package:ubuntu-16.04: deploy:ubuntu-16.04: extends: .debpkg_install image: ubuntu:xenial - dependencies: + needs: - package:ubuntu-16.04 + +# 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 + needs: + - build:ubuntu-18.04 variables: LEVELDB_PKG: libleveldb1v5 +deploy:ubuntu-18.04: + extends: .debpkg_install + image: ubuntu:bionic + needs: + - package:ubuntu-18.04 + ## ## Fedora ## -# Do we need to support this old version ? -build:fedora-24: +# Fedora 28 <-> RHEL 8 +build:fedora-28: extends: .build_template - image: fedora:24 + image: fedora:28 before_script: - - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel - + - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel ## -## Mingw for Windows +## MinGW for Windows ## .generic_win_template: @@ -218,68 +174,63 @@ build:fedora-24: before_script: - apt-get update -y - apt-get install -y wget xz-utils unzip git cmake gettext - - wget -q http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz + - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz - tar -xaf mingw.tar.xz -C /usr .build_win_template: extends: .generic_win_template stage: build artifacts: - when: on_success - expire_in: 2h + expire_in: 1h paths: - - build/* + - build/minetest/_build/* .package_win_template: extends: .generic_win_template stage: package script: - - cd build/minetest/_build - - make package - - cd ../../../ - - mkdir minetest-win-${WIN_ARCH} - - unzip build/minetest/_build/minetest-*-win*.zip -d minetest-win-${WIN_ARCH} - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin - - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin + - unzip build/minetest/_build/minetest-*.zip + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-*-win*/bin/ + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-*-win*/bin/ + - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-*-win*/bin/ artifacts: - when: on_success expire_in: 90 day paths: - - minetest-win-*/* + - minetest-*-win*/* build:win32: extends: .build_win_template script: - ./util/buildbot/buildwin32.sh build variables: - NO_PACKAGE: "1" WIN_ARCH: "i686" package:win32: extends: .package_win_template - dependencies: + needs: - build:win32 variables: - NO_PACKAGE: "1" WIN_ARCH: "i686" + build:win64: extends: .build_win_template script: - ./util/buildbot/buildwin64.sh build variables: - NO_PACKAGE: "1" WIN_ARCH: "x86_64" package:win64: extends: .package_win_template - dependencies: + needs: - build:win64 variables: - NO_PACKAGE: "1" WIN_ARCH: "x86_64" +## +## Docker +## + package:docker: stage: package image: docker:stable @@ -293,6 +244,10 @@ package:docker: - docker push ${CONTAINER_IMAGE}/server:$CI_COMMIT_REF_NAME - docker push ${CONTAINER_IMAGE}/server:latest +## +## Gitlab Pages (Lua API documentation) +## + pages: stage: deploy image: python:3.8 @@ -308,3 +263,31 @@ pages: only: - master +## +## AppImage +## + +package:appimage-client: + stage: package + image: appimagecrafters/appimage-builder + needs: + - build:ubuntu-18.04 + before_script: + - apt-get update -y + - apt-get install -y git wget + # Collect files + - mkdir AppDir + - cp -a artifact/minetest/usr/ AppDir/usr/ + - rm AppDir/usr/bin/minetestserver + - cp -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 + - 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: + expire_in: 90 day + paths: + - ./*.AppImage diff --git a/.luacheckrc b/.luacheckrc index 3ab6e10c8..e010ab95c 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -72,3 +72,11 @@ files["builtin/mainmenu"] = { "PLATFORM", }, } + +files["builtin/common/tests"] = { + read_globals = { + "describe", + "it", + "assert", + }, +} @@ -1,33 +1,67 @@ +# Documentation: https://git-scm.com/docs/git-check-mailmap#_mapping_authors + 0gb.us <0gb.us@0gb.us> <us_0gb@laptop-0gb-us.0gb.us> -Calinou <calinou9999@gmail.com> <calinou9999spam@gmail.com> -Perttu Ahola <celeron55@gmail.com> celeron55 <celeron55@gmail.com> +Calinou <calinou@opmbx.org> <calinou9999@gmail.com> +Calinou <calinou@opmbx.org> <calinou9999spam@gmail.com> +Perttu Ahola <celeron55@gmail.com> Perttu Ahola <celeron55@gmail.com> celeron55 <celeron55@armada.(none)> -Craig Robbins <kde.psych@gmail.com> <crobbins@localhost.localdomain> +Zeno- <kde.psych@gmail.com> +Zeno- <kde.psych@gmail.com> <crobbins@localhost.localdomain> +Diego MartÃnez <kaeza@users.sf.net> Diego MartÃnez <kaeza@users.sf.net> <lkaezadl3@gmail.com> +Ilya Zhuravlev <zhuravlevilya@ya.ru> Ilya Zhuravlev <zhuravlevilya@ya.ru> <whatever@xyz.is> kwolekr <kwolekr@minetest.net> <mirrorisim@gmail.com> -PilzAdam <pilzadam@minetest.net> PilzAdam <adam-k@outlook.com> -PilzAdam <pilzadam@minetest.net> Pilz Adam <PilzAdam@gmx.de> -PilzAdam <pilzadam@minetest.net> PilzAdam <PilzAdam@gmx.de> +PilzAdam <pilzadam@minetest.net> <adam-k@outlook.com> +PilzAdam <pilzadam@minetest.net> <PilzAdam@gmx.de> proller <proller@github.com> <proler@github.com> proller <proller@github.com> <proler@gmail.com> RealBadAngel <maciej.kasatkin@o2.pl> <mk@realbadangel.pl> RealBadAngel <maciej.kasatkin@o2.pl> <maciej.kasatkin@yahoo.com> Selat <LongExampleTestName@gmail.com> <LongExampletestName@gmail.com> ShadowNinja <shadowninja@minetest.net> ShadowNinja <noreply@gmail.com> -Shen Zheyu <arsdragonfly@gmail.com> arsdragonfly <arsdragonfly@gmail.com> -Pavel Elagin <elagin.pasha@gmail.com> elagin <elagin.pasha@gmail.com> -Esteban I. Ruiz Moreno <exio4.com@gmail.com> Esteban I. RM <exio4.com@gmail.com> -manuel duarte <ffrogger0@yahoo.com> manuel joaquim <ffrogger0@yahoo.com> -manuel duarte <ffrogger0@yahoo.com> sweetbomber <ffrogger _zero_ at yahoo dot com> -Diego MartÃnez <kaeza@users.sf.net> kaeza <kaeza@users.sf.net> -Diego MartÃnez <kaeza@users.sf.net> Diego Martinez <kaeza@users.sf.net> -Lord James <neftali_dtctv@hotmail.com> Lord89James <neftali_dtctv@hotmail.com> -BlockMen <nmuelll@web.de> Block Men <nmuelll@web.de> -sfan5 <sfan5@live.de> Sfan5 <sfan5@live.de> -DannyDark <the_skeleton_of_a_child@yahoo.co.uk> dannydark <the_skeleton_of_a_child@yahoo.co.uk> -Ilya Pavlov <TTChangeTheWorld@gmail.com> Ilya <TTChangeTheWorld@gmail.com> -Ilya Zhuravlev <zhuravlevilya@ya.ru> xyzz <zhuravlevilya@ya.ru> +Esteban I. Ruiz Moreno <exio4.com@gmail.com> +Esteban I. Ruiz Moreno <exio4.com@gmail.com> <me@exio4.xyz> +Lord James <neftali_dtctv@hotmail.com> +BlockMen <nmuelll@web.de> +sfan5 <sfan5@live.de> +DannyDark <the_skeleton_of_a_child@yahoo.co.uk> +Ilya Pavlov <TTChangeTheWorld@gmail.com> sapier <Sapier at GMX dot net> sapier <sapier AT gmx DOT net> sapier <Sapier at GMX dot net> sapier <sapier at gmx dot net> - +SmallJoker <SmallJoker@users.noreply.github.com> <mk939@ymail.com> +Loïc Blot <nerzhul@users.noreply.github.com> +Loïc Blot <nerzhul@users.noreply.github.com> <loic.blot@unix-experience.fr> +numzero <numzer0@yandex.ru> Vitaliy <numzer0@yandex.ru> +numzero <numzer0@yandex.ru> <silverunicorn2011@yandex.ru> +Jean-Patrick Guerrero <kilbith@users.noreply.github.com> +Jean-Patrick Guerrero <kilbith@users.noreply.github.com> <jeanpatrick.guerrero@gmail.com> +HybridDog <3192173+HybridDog@users.noreply.github.com> <ovvv@web.de> +srfqi <muhammadrifqipriyosusanto@gmail.com> +Dániel Juhász <juhdanad@gmail.com> +rubenwardy <rw@rubenwardy.com> +rubenwardy <rw@rubenwardy.com> <rubenwardy@gmail.com> +Paul Ouellette <oue.paul18@gmail.com> +Vanessa Dannenberg <vanessa.e.dannenberg@gmail.com> <vanessaezekowitz@gmail.com> +ClobberXD <ClobberXD@gmail.com> +ClobberXD <ClobberXD@gmail.com> <ClobberXD@protonmail.com> +ClobberXD <ClobberXD@gmail.com> <36130650+ClobberXD@users.noreply.github.com> +Auke Kok <sofar+github@foo-projects.org> +Auke Kok <sofar+github@foo-projects.org> <sofar@foo-projects.org> +Desour <vorunbekannt75@web.de> +Nathanaël Courant <Ekdohibs@users.noreply.github.com> <nathanael.courant@laposte.net> +Ezhh <owlecho@live.com> +paramat <paramat@users.noreply.github.com> +paramat <paramat@users.noreply.github.com> <mat.gregory@virginmedia.com> +lhofhansl <lhofhansl@yahoo.com> <larsh@apache.org> +red-001 <red-001@outlook.ie> <red-001@openmailbox.org> +Wuzzy <wuzzy2@mail.ru> <Wuzzy2@mail.ru> +Wuzzy <wuzzy2@mail.ru> <almikes@aol.com> +Jordach <jordach.snelling@gmail.com> +MoNTE48 <MoNTE48@mail.ua> +v-rob <robinsonvincent89@gmail.com> +v-rob <robinsonvincent89@gmail.com> <31123645+v-rob@users.noreply.github.com> +EvidenceB <49488517+EvidenceBKidscode@users.noreply.github.com> +gregorycu <gregory.currie@gmail.com> +Rogier <rogier777@gmail.com> +Rogier <rogier777@gmail.com> <Rogier-5@users.noreply.github.com> diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml new file mode 100644 index 000000000..9ecad5d8e --- /dev/null +++ b/AppImageBuilder.yml @@ -0,0 +1,51 @@ +version: 1 + +AppDir: + path: ./AppDir + + app_info: + id: minetest + name: Minetest + icon: minetest + version: !ENV ${VERSION} + exec: usr/bin/minetest + exec_args: $@ + runtime: + env: + APPDIR_LIBRARY_PATH: $APPDIR/usr/lib/x86_64-linux-gnu + + apt: + arch: amd64 + sources: + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic main universe + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-updates main universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-backports main universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-security main universe + + include: + - libirrlicht1.8 + - libxxf86vm1 + - libgl1-mesa-glx + - libsqlite3-0 + - libogg0 + - libvorbis0a + - libopenal1 + - libcurl3-gnutls + - libfreetype6 + - zlib1g + - libgmp10 + - libjsoncpp1 + + files: + exclude: + - usr/share/man + - usr/share/doc/*/README.* + - usr/share/doc/*/changelog.* + - usr/share/doc/*/NEWS.* + - usr/share/doc/*/TODO.* + +AppImage: + update-information: None + sign-key: None + arch: x86_64 diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d33a2a7e..f6a0d22fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,22 +1,18 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.5) -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_policy(SET CMP0025 OLD) # This can be read from ${PROJECT_NAME} after project() is called project(minetest) set(PROJECT_NAME_CAPITALIZED "Minetest") -# Works only for cmake 3.1 and greater set(CMAKE_CXX_STANDARD 11) set(GCC_MINIMUM_VERSION "4.8") set(CLANG_MINIMUM_VERSION "3.4") # Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing set(VERSION_MAJOR 5) -set(VERSION_MINOR 3) +set(VERSION_MINOR 4) set(VERSION_PATCH 0) set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string") @@ -165,7 +161,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 ) @@ -249,15 +245,15 @@ cpack_add_component(Docs cpack_add_component(SUBGAME_MINETEST_GAME DISPLAY_NAME "Minetest Game" - DESCRIPTION "The official subgame for the Minetest engine, that can easily extended by mods." - GROUP "Subgames" + DESCRIPTION "The default game bundled in the Minetest engine. Mainly used as a modding base." + GROUP "Games" ) cpack_add_component(SUBGAME_MINIMAL DISPLAY_NAME "Development Test" - DESCRIPTION "A minimal test game helping to develop the engine." + DESCRIPTION "A basic testing environment used for engine development and sometimes for testing mods." DISABLED #DISABLED does not mean it is disabled, and is just not selected by default. - GROUP "Subgames" + GROUP "Games" ) cpack_add_component_group(Subgames @@ -278,19 +274,20 @@ if(WIN32) set(CPACK_GENERATOR ZIP) else() - set(CPACK_GENERATOR WIX ZIP) + set(CPACK_GENERATOR WIX) set(CPACK_PACKAGE_NAME "${PROJECT_NAME_CAPITALIZED}") - set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME_CAPITALIZED}") + set(CPACK_PACKAGE_INSTALL_DIRECTORY ".") set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME} "${PROJECT_NAME_CAPITALIZED}") set(CPACK_CREATE_DESKTOP_LINKS ${PROJECT_NAME}) + set(CPACK_PACKAGING_INSTALL_PREFIX "/${PROJECT_NAME_CAPITALIZED}") set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/misc/minetest-icon.ico") - # Supported languages can be found at + # Supported languages can be found at # http://wixtoolset.org/documentation/manual/v3/wixui/wixui_localization.html #set(CPACK_WIX_CULTURES "ar-SA,bg-BG,ca-ES,hr-HR,cs-CZ,da-DK,nl-NL,en-US,et-EE,fi-FI,fr-FR,de-DE") set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_BANNER.BMP") set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_DIALOG.BMP") - + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/doc/lgpl-2.1.txt") # The correct way would be to include both x32 and x64 into one installer diff --git a/Dockerfile b/Dockerfile index 72343ab9c..871ca9825 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ 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 \ - gmp-dev jsoncpp-dev postgresql-dev ca-certificates && \ + 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 @@ -51,7 +51,7 @@ RUN mkdir build && \ FROM alpine:3.11 -RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc libpq && \ +RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc libpq luajit && \ 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..9b8ee851a 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -11,6 +11,9 @@ http://creativecommons.org/licenses/by-sa/3.0/ textures/base/pack/refresh.png is under the Apache 2 license https://www.apache.org/licenses/LICENSE-2.0.html +Textures by Zughy are under CC BY-SA 4.0 +https://creativecommons.org/licenses/by-sa/4.0/ + Authors of media files ----------------------- Everything not listed in here: @@ -23,6 +26,8 @@ paramat: textures/base/pack/menu_header.png textures/base/pack/next_icon.png textures/base/pack/prev_icon.png + textures/base/pack/clear.png + textures/base/pack/search.png rubenwardy, paramat: textures/base/pack/start_icon.png @@ -45,6 +50,14 @@ srifqi textures/base/pack/joystick_off.png textures/base/pack/minimap_btn.png +Zughy: + textures/base/pack/cdb_add.png + textures/base/pack/cdb_clear.png + textures/base/pack/cdb_downloading.png + textures/base/pack/cdb_queued.png + textures/base/pack/cdb_update.png + textures/base/pack/cdb_viewonline.png + License of Minetest source code ------------------------------- @@ -31,10 +31,10 @@ Table of Contents Further documentation ---------------------- -- Website: http://minetest.net/ -- Wiki: http://wiki.minetest.net/ -- Developer wiki: http://dev.minetest.net/ -- Forum: http://forum.minetest.net/ +- Website: https://minetest.net/ +- Wiki: https://wiki.minetest.net/ +- Developer wiki: https://dev.minetest.net/ +- Forum: https://forum.minetest.net/ - GitHub: https://github.com/minetest/minetest/ - [doc/](doc/) directory of source distribution @@ -314,13 +314,14 @@ It is highly recommended to use vcpkg as package manager. After you successfully built vcpkg you can easily install the required libraries: ```powershell -vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit --triplet x64-windows +vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows ``` - `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store. - `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound. - `freetype` is optional, it allows true-type font rendering. - `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter. +- `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled There are other optional libraries, but they are not tested if they can build and link correctly. @@ -353,7 +354,7 @@ This is outdated and not recommended. Follow the instructions on https://dev.min Run the following script in PowerShell: ```powershell -cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=0 -DENABLE_CURSES=0 +cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF -DENABLE_SYSTEM_JSONCPP=ON cmake --build . --config Release ``` Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct. diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle index e3619af17..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 '29.0.3' - ndkVersion '21.1.6352462' + buildToolsVersion '30.0.3' + ndkVersion '22.0.7026061' defaultConfig { applicationId 'net.minetest.minetest' minSdkVersion 16 @@ -11,8 +11,11 @@ android { versionCode project.versionCode } + // load properties Properties props = new Properties() - props.load(new FileInputStream(file('../local.properties'))) + def propfile = file('../local.properties') + if (propfile.exists()) + props.load(new FileInputStream(propfile)) if (props.getProperty('keystore') != null) { signingConfigs { @@ -61,10 +64,9 @@ task prepareAssets() { copy { from "${projRoot}/builtin" into "${assetsFolder}/builtin" } - /*copy { - // ToDo: fix Minetest shaders that currently don't work with OpenGL ES + copy { from "${projRoot}/client/shaders" into "${assetsFolder}/client/shaders" - }*/ + } copy { from "../native/deps/Android/Irrlicht/shaders" into "${assetsFolder}/client/shaders/Irrlicht" } @@ -107,5 +109,5 @@ android.applicationVariants.all { variant -> dependencies { implementation project(':native') - implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.appcompat:appcompat:1.2.0' } diff --git a/build/android/app/src/main/AndroidManifest.xml b/build/android/app/src/main/AndroidManifest.xml index 0a7c8d95a..fa93e7069 100644 --- a/build/android/app/src/main/AndroidManifest.xml +++ b/build/android/app/src/main/AndroidManifest.xml @@ -17,8 +17,8 @@ android:allowBackup="false" android:icon="@mipmap/ic_launcher" android:label="@string/label" - android:resizeableActivity="false" android:requestLegacyExternalStorage="true" + android:resizeableActivity="false" tools:ignore="UnusedAttribute"> <meta-data @@ -53,11 +53,6 @@ android:value="Minetest" /> </activity> - <activity - android:name=".InputDialogActivity" - android:maxAspectRatio="3.0" - android:theme="@style/InputTheme" /> - <service android:name=".UnzipService" android:enabled="true" diff --git a/build/android/app/src/main/java/net/minetest/minetest/CustomEditText.java b/build/android/app/src/main/java/net/minetest/minetest/CustomEditText.java new file mode 100644 index 000000000..8d0a503d0 --- /dev/null +++ b/build/android/app/src/main/java/net/minetest/minetest/CustomEditText.java @@ -0,0 +1,45 @@ +/* +Minetest +Copyright (C) 2014-2020 MoNTE48, Maksim Gamarnik <MoNTE48@mail.ua> +Copyright (C) 2014-2020 ubulem, Bektur Mambetov <berkut87@gmail.com> + +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. +*/ + +package net.minetest.minetest; + +import android.content.Context; +import android.view.KeyEvent; +import android.view.inputmethod.InputMethodManager; + +import androidx.appcompat.widget.AppCompatEditText; + +import java.util.Objects; + +public class CustomEditText extends AppCompatEditText { + public CustomEditText(Context context) { + super(context); + } + + @Override + public boolean onKeyPreIme(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + InputMethodManager mgr = (InputMethodManager) + getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + Objects.requireNonNull(mgr).hideSoftInputFromWindow(this.getWindowToken(), 0); + } + return false; + } +} 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 635512569..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 @@ -25,8 +25,16 @@ import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.text.InputType; +import android.view.KeyEvent; import android.view.View; import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; + +import androidx.appcompat.app.AlertDialog; + +import java.util.Objects; public class GameActivity extends NativeActivity { static { @@ -34,8 +42,8 @@ public class GameActivity extends NativeActivity { System.loadLibrary("Minetest"); } - private int messageReturnCode; - private String messageReturnValue; + private int messageReturnCode = -1; + private String messageReturnValue = ""; public static native void putMessageBoxResult(String text); @@ -43,8 +51,6 @@ public class GameActivity extends NativeActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - messageReturnCode = -1; - messageReturnValue = ""; } private void makeFullScreen() { @@ -73,29 +79,46 @@ public class GameActivity extends NativeActivity { // Ignore the back press so Minetest can handle it } - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == 101) { - if (resultCode == RESULT_OK) { - String text = data.getStringExtra("text"); - messageReturnCode = 0; - messageReturnValue = text; - } else - messageReturnCode = 1; - } + public void showDialog(String acceptButton, String hint, String current, int editType) { + runOnUiThread(() -> showDialogUI(hint, current, editType)); } - public void showDialog(String acceptButton, String hint, String current, int editType) { - Intent intent = new Intent(this, InputDialogActivity.class); - Bundle params = new Bundle(); - params.putString("acceptButton", acceptButton); - params.putString("hint", hint); - params.putString("current", current); - params.putInt("editType", editType); - intent.putExtras(params); - startActivityForResult(intent, 101); - messageReturnValue = ""; - messageReturnCode = -1; + private void showDialogUI(String hint, String current, int editType) { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + EditText editText = new CustomEditText(this); + builder.setView(editText); + AlertDialog alertDialog = builder.create(); + editText.requestFocus(); + editText.setHint(hint); + editText.setText(current); + final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); + Objects.requireNonNull(imm).toggleSoftInput(InputMethodManager.SHOW_FORCED, + InputMethodManager.HIDE_IMPLICIT_ONLY); + if (editType == 1) + editText.setInputType(InputType.TYPE_CLASS_TEXT | + InputType.TYPE_TEXT_FLAG_MULTI_LINE); + else if (editType == 3) + editText.setInputType(InputType.TYPE_CLASS_TEXT | + InputType.TYPE_TEXT_VARIATION_PASSWORD); + else + editText.setInputType(InputType.TYPE_CLASS_TEXT); + editText.setSelection(editText.getText().length()); + editText.setOnKeyListener((view, KeyCode, event) -> { + if (KeyCode == KeyEvent.KEYCODE_ENTER) { + imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); + messageReturnCode = 0; + messageReturnValue = editText.getText().toString(); + alertDialog.dismiss(); + return true; + } + return false; + }); + alertDialog.show(); + alertDialog.setOnCancelListener(dialog -> { + getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); + messageReturnValue = current; + messageReturnCode = -1; + }); } public int getDialogState() { @@ -119,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/app/src/main/java/net/minetest/minetest/InputDialogActivity.java b/build/android/app/src/main/java/net/minetest/minetest/InputDialogActivity.java deleted file mode 100644 index 7c6aa111d..000000000 --- a/build/android/app/src/main/java/net/minetest/minetest/InputDialogActivity.java +++ /dev/null @@ -1,98 +0,0 @@ -/* -Minetest -Copyright (C) 2014-2020 MoNTE48, Maksim Gamarnik <MoNTE48@mail.ua> -Copyright (C) 2014-2020 ubulem, Bektur Mambetov <berkut87@gmail.com> - -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. -*/ - -package net.minetest.minetest; - -import android.app.Activity; -import android.content.Intent; -import android.os.Build; -import android.os.Bundle; -import android.text.InputType; -import android.view.KeyEvent; -import android.view.View; -import android.view.inputmethod.InputMethodManager; -import android.widget.EditText; - -import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.app.AppCompatActivity; - -import java.util.Objects; - -public class InputDialogActivity extends AppCompatActivity { - private AlertDialog alertDialog; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle b = getIntent().getExtras(); - int editType = Objects.requireNonNull(b).getInt("editType"); - String hint = b.getString("hint"); - String current = b.getString("current"); - final AlertDialog.Builder builder = new AlertDialog.Builder(this); - EditText editText = new EditText(this); - builder.setView(editText); - editText.requestFocus(); - editText.setHint(hint); - editText.setText(current); - final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); - Objects.requireNonNull(imm).toggleSoftInput(InputMethodManager.SHOW_FORCED, - InputMethodManager.HIDE_IMPLICIT_ONLY); - if (editType == 3) - editText.setInputType(InputType.TYPE_CLASS_TEXT | - InputType.TYPE_TEXT_VARIATION_PASSWORD); - else - editText.setInputType(InputType.TYPE_CLASS_TEXT); - editText.setOnKeyListener((view, KeyCode, event) -> { - if (KeyCode == KeyEvent.KEYCODE_ENTER) { - imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); - pushResult(editText.getText().toString()); - return true; - } - return false; - }); - alertDialog = builder.create(); - if (!this.isFinishing()) - alertDialog.show(); - alertDialog.setOnCancelListener(dialog -> { - pushResult(editText.getText().toString()); - setResult(Activity.RESULT_CANCELED); - alertDialog.dismiss(); - makeFullScreen(); - finish(); - }); - } - - private void pushResult(String text) { - Intent resultData = new Intent(); - resultData.putExtra("text", text); - setResult(AppCompatActivity.RESULT_OK, resultData); - alertDialog.dismiss(); - makeFullScreen(); - finish(); - } - - private void makeFullScreen() { - if (Build.VERSION.SDK_INT >= 19) - this.getWindow().getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); - } -} diff --git a/build/android/app/src/main/res/values/styles.xml b/build/android/app/src/main/res/values/styles.xml index 618507e63..291a4eaf1 100644 --- a/build/android/app/src/main/res/values/styles.xml +++ b/build/android/app/src/main/res/values/styles.xml @@ -8,15 +8,8 @@ <item name="android:windowLayoutInDisplayCutoutMode" tools:targetApi="p">shortEdges</item> </style> - <style name="InputTheme" parent="Theme.AppCompat.DayNight.Dialog"> - <item name="windowNoTitle">true</item> - <item name="android:windowBackground">@android:color/transparent</item> - </style> - - <style name="CustomProgressBar" parent="@style/Widget.AppCompat.ProgressBar.Horizontal"> + <style name="CustomProgressBar" parent="Widget.AppCompat.ProgressBar.Horizontal"> <item name="android:indeterminateOnly">false</item> - <item name="android:minHeight">10dip</item> - <item name="android:maxHeight">20dip</item> </style> </resources> diff --git a/build/android/build.gradle b/build/android/build.gradle index 8707b563c..be9eaada4 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", 4) // Version Minor project.ext.set("versionPatch", 0) // Version Patch -project.ext.set("versionExtra", "-dev") // Version Extra -project.ext.set("versionCode", 30) // Android Version Code +project.ext.set("versionExtra", "") // Version Extra +project.ext.set("versionCode", 32) // Android Version Code // NOTE: +2 after each release! // +1 for ARM and +1 for ARM64 APK's, because // each APK must have a larger `versionCode` than the previous @@ -15,8 +15,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.3' - classpath 'org.ajoberstar.grgit:grgit-gradle:4.0.2' + classpath 'com.android.tools.build:gradle:4.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 } @@ -31,4 +31,5 @@ allprojects { task clean(type: Delete) { delete rootProject.buildDir + delete 'native/deps' } diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties index d612cf333..7fd9307d7 100644 --- a/build/android/gradle/wrapper/gradle-wrapper.properties +++ b/build/android/gradle/wrapper/gradle-wrapper.properties @@ -1,2 +1,6 @@ -#Mon Apr 06 00:06:16 CEST 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +#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.8-all.zip diff --git a/build/android/native/build.gradle b/build/android/native/build.gradle index cbd50db6a..8ea6347b3 100644 --- a/build/android/native/build.gradle +++ b/build/android/native/build.gradle @@ -1,16 +1,16 @@ apply plugin: 'com.android.library' -import org.ajoberstar.grgit.Grgit +apply plugin: 'de.undercouch.download' android { compileSdkVersion 29 - buildToolsVersion '29.0.3' - ndkVersion '21.1.6352462' + buildToolsVersion '30.0.3' + ndkVersion '22.0.7026061' defaultConfig { minSdkVersion 16 targetSdkVersion 29 externalNativeBuild { ndkBuild { - arguments '-j8', + arguments '-j' + Runtime.getRuntime().availableProcessors(), "versionMajor=${versionMajor}", "versionMinor=${versionMinor}", "versionPatch=${versionPatch}", @@ -45,15 +45,54 @@ android { } } -task cloneGitRepo() { - def destination = file('deps') - if(!destination.exists()) { - def grgit = Grgit.clone( - dir: destination, - uri: 'https://github.com/minetest/minetest_android_deps_binaries' - ) - grgit.close() +// get precompiled deps +def folder = 'minetest_android_deps_binaries' + +task downloadDeps(type: Download) { + src 'https://github.com/minetest/' + folder + '/archive/master.zip' + dest new File(buildDir, 'deps.zip') + overwrite false +} + +task getDeps(dependsOn: downloadDeps, type: Copy) { + def deps = file('deps') + def f = file("$buildDir/" + folder + "-master") + + if (!deps.exists() && !f.exists()) { + from zipTree(downloadDeps.dest) + into buildDir + } + + doLast { + if (!deps.exists()) { + file(f).renameTo(file(deps)) + } + } +} + +// get sqlite +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') + overwrite false +} + +task getSqlite(dependsOn: downloadSqlite, type: Copy) { + def sqlite = file('deps/Android/sqlite') + def f = file("$buildDir/sqlite-amalgamation-" + sqlite_ver) + + if (!sqlite.exists() && !f.exists()) { + from zipTree(downloadSqlite.dest) + into buildDir + } + + doLast { + if (!sqlite.exists()) { + file(f).renameTo(file(sqlite)) + } } } -preBuild.dependsOn cloneGitRepo +preBuild.dependsOn getDeps +preBuild.dependsOn getSqlite diff --git a/builtin/client/chatcommands.lua b/builtin/client/chatcommands.lua index 5cb1b40bb..0e8d4dd03 100644 --- a/builtin/client/chatcommands.lua +++ b/builtin/client/chatcommands.lua @@ -23,6 +23,11 @@ core.register_on_sending_chat_message(function(message) return true end + -- Run core.registered_on_chatcommand callbacks. + if core.run_callbacks(core.registered_on_chatcommand, 5, cmd, param) then + return true + end + local cmd_def = core.registered_chatcommands[cmd] if cmd_def then core.set_last_run_mod(cmd_def.mod_origin) diff --git a/builtin/client/register.lua b/builtin/client/register.lua index c1b4965c1..27a6b02d9 100644 --- a/builtin/client/register.lua +++ b/builtin/client/register.lua @@ -4,6 +4,13 @@ core.callback_origins = {} local getinfo = debug.getinfo debug.getinfo = nil +--- Runs given callbacks. +-- +-- Note: this function is also called from C++ +-- @tparam table callbacks a table with registered callbacks, like `core.registered_on_*` +-- @tparam number mode a RunCallbacksMode, as defined in src/script/common/c_internal.h +-- @param ... arguments for the callback +-- @return depends on mode function core.run_callbacks(callbacks, mode, ...) assert(type(callbacks) == "table") local cb_len = #callbacks @@ -63,6 +70,7 @@ core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration core.registered_on_shutdown, core.register_on_shutdown = make_registration() core.registered_on_receiving_chat_message, core.register_on_receiving_chat_message = make_registration() core.registered_on_sending_chat_message, core.register_on_sending_chat_message = make_registration() +core.registered_on_chatcommand, core.register_on_chatcommand = make_registration() core.registered_on_death, core.register_on_death = make_registration() core.registered_on_hp_modification, core.register_on_hp_modification = make_registration() core.registered_on_damage_taken, core.register_on_damage_taken = make_registration() diff --git a/builtin/common/after.lua b/builtin/common/after.lua index b314711c9..e20f292f0 100644 --- a/builtin/common/after.lua +++ b/builtin/common/after.lua @@ -31,11 +31,13 @@ function core.after(after, func, ...) assert(tonumber(after) and type(func) == "function", "Invalid minetest.after invocation") local expire = time + after - jobs[#jobs + 1] = { + local new_job = { func = func, expire = expire, arg = {...}, - mod_origin = core.get_last_run_mod() + mod_origin = core.get_last_run_mod(), } + jobs[#jobs + 1] = new_job time_next = math.min(time_next, expire) + return { cancel = function() new_job.func = function() end end } end diff --git a/builtin/common/information_formspecs.lua b/builtin/common/information_formspecs.lua index 8afa5bc87..3e2f1f079 100644 --- a/builtin/common/information_formspecs.lua +++ b/builtin/common/information_formspecs.lua @@ -115,7 +115,7 @@ core.register_on_player_receive_fields(function(player, formname, fields) return end - local event = minetest.explode_table_event(fields.list) + local event = core.explode_table_event(fields.list) if event.type ~= "INV" then local name = player:get_player_name() core.show_formspec(name, "__builtin:help_cmds", diff --git a/builtin/common/misc_helpers.lua b/builtin/common/misc_helpers.lua index e29a9f422..0f3897f47 100644 --- a/builtin/common/misc_helpers.lua +++ b/builtin/common/misc_helpers.lua @@ -697,3 +697,7 @@ function core.privs_to_string(privs, delim) end return table.concat(list, delim) end + +function core.is_nan(number) + return number ~= number +end diff --git a/builtin/common/tests/vector_spec.lua b/builtin/common/tests/vector_spec.lua index 6f308a4a8..0f287363a 100644 --- a/builtin/common/tests/vector_spec.lua +++ b/builtin/common/tests/vector_spec.lua @@ -44,6 +44,10 @@ describe("vector", function() assert.same({ x = 2, y = 4, z = 6 }, vector.add(vector.new(1, 2, 3), { x = 1, y = 2, z = 3 })) end) + it("offset()", function() + assert.same({ x = 41, y = 52, z = 63 }, vector.offset(vector.new(1, 2, 3), 40, 50, 60)) + 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 1fd784ce2..d6437deda 100644 --- a/builtin/common/vector.lua +++ b/builtin/common/vector.lua @@ -137,6 +137,12 @@ function vector.divide(a, b) end end +function vector.offset(v, x, y, z) + return {x = v.x + x, + y = v.y + y, + z = v.z + z} +end + function vector.sort(a, b) return {x = math.min(a.x, b.x), y = math.min(a.y, b.y), z = math.min(a.z, b.z)}, {x = math.max(a.x, b.x), y = math.max(a.y, b.y), z = math.max(a.z, b.z)} diff --git a/builtin/fstk/ui.lua b/builtin/fstk/ui.lua index 6d26aabf0..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 @@ -64,12 +67,14 @@ function ui.update() formspec = { "size[14,8]", "real_coordinates[true]", + "set_focus[btn_reconnect_yes;true]", "box[0.5,1.2;13,5;#000]", ("textarea[0.5,1.2;13,5;;%s;%s]"):format( fgettext("The server has requested a reconnect:"), error_message), "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) @@ -82,11 +87,13 @@ function ui.update() formspec = { "size[14,8]", "real_coordinates[true]", + "set_focus[btn_error_confirm;true]", "box[0.5,1.2;13,5;#000]", ("textarea[0.5,1.2;13,5;;%s;%s]"):format( 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 @@ -183,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 aae811794..945707623 100644 --- a/builtin/game/chat.lua +++ b/builtin/game/chat.lua @@ -58,6 +58,11 @@ core.register_on_chat_message(function(name, message) param = param or "" + -- Run core.registered_on_chatcommands callbacks. + if core.run_callbacks(core.registered_on_chatcommands, 5, name, cmd, param) then + return true + end + local cmd_def = core.registered_chatcommands[cmd] if not cmd_def then core.chat_send_player(name, "-!- Invalid command: " .. cmd) @@ -66,8 +71,17 @@ core.register_on_chat_message(function(name, message) local has_privs, missing_privs = core.check_player_privs(name, cmd_def.privs) if has_privs then core.set_last_run_mod(cmd_def.mod_origin) - local _, result = cmd_def.func(name, param) - if result then + local success, result = cmd_def.func(name, param) + if success == false and result == nil then + core.chat_send_player(name, "-!- Invalid command usage") + local help_def = core.registered_chatcommands["help"] + if help_def then + local _, helpmsg = help_def.func(name, cmd) + if helpmsg then + core.chat_send_player(name, helpmsg) + end + end + elseif result then core.chat_send_player(name, result) end else @@ -1070,10 +1084,10 @@ 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, "Last login time was " .. + return true, param.."'s last login time was " .. os.date("!%Y-%m-%dT%H:%M:%SZ", pauth.last_login) end - return false, "Last login time is unknown" + return false, param.."'s last login time is unknown" end, }) 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,29 +1,6 @@ -- 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 -- core.env = {} @@ -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 714506a5f..057d0d0ed 100644 --- a/builtin/game/falling.lua +++ b/builtin/game/falling.lua @@ -52,6 +52,7 @@ core.register_entity(":__builtin:falling_node", { floats = false, set_node = function(self, node, meta) + node.param2 = node.param2 or 0 self.node = node meta = meta or {} if type(meta.to_table) == "function" then @@ -83,6 +84,9 @@ core.register_entity(":__builtin:falling_node", { local textures if def.tiles and def.tiles[1] then local tile = def.tiles[1] + if def.drawtype == "torchlike" and def.paramtype2 ~= "wallmounted" then + tile = def.tiles[2] or def.tiles[1] + end if type(tile) == "table" then tile = tile.name end @@ -126,7 +130,7 @@ core.register_entity(":__builtin:falling_node", { -- Set collision box (certain nodeboxes only for now) local nb_types = {fixed=true, leveled=true, connected=true} if def.drawtype == "nodebox" and def.node_box and - nb_types[def.node_box.type] then + nb_types[def.node_box.type] and def.node_box.fixed then local box = table.copy(def.node_box.fixed) if type(box[1]) == "table" then box = #box == 1 and box[1] or nil -- We can only use a single box @@ -143,9 +147,13 @@ core.register_entity(":__builtin:falling_node", { -- Rotate entity if def.drawtype == "torchlike" then - self.object:set_yaw(math.pi*0.25) - elseif (node.param2 ~= 0 and (def.wield_image == "" - or def.wield_image == nil)) + 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 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" @@ -160,16 +168,30 @@ core.register_entity(":__builtin:falling_node", { elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted") then local rot = node.param2 % 8 local pitch, yaw, roll = 0, 0, 0 - if rot == 1 then - pitch, yaw = math.pi, math.pi - elseif rot == 2 then - pitch, yaw = math.pi/2, math.pi/2 - elseif rot == 3 then - pitch, yaw = math.pi/2, -math.pi/2 - elseif rot == 4 then - pitch, yaw = math.pi/2, math.pi - elseif rot == 5 then - pitch, yaw = math.pi/2, 0 + if def.drawtype == "nodebox" or def.drawtype == "mesh" then + if rot == 0 then + pitch, yaw = math.pi/2, 0 + elseif rot == 1 then + pitch, yaw = -math.pi/2, math.pi + elseif rot == 2 then + pitch, yaw = 0, math.pi/2 + elseif rot == 3 then + pitch, yaw = 0, -math.pi/2 + elseif rot == 4 then + pitch, yaw = 0, math.pi + end + else + if rot == 1 then + pitch, yaw = math.pi, math.pi + elseif rot == 2 then + pitch, yaw = math.pi/2, math.pi/2 + elseif rot == 3 then + pitch, yaw = math.pi/2, -math.pi/2 + elseif rot == 4 then + pitch, yaw = math.pi/2, math.pi + elseif rot == 5 then + pitch, yaw = math.pi/2, 0 + end end if def.drawtype == "signlike" then pitch = pitch - math.pi/2 @@ -178,7 +200,7 @@ core.register_entity(":__builtin:falling_node", { elseif rot == 1 then yaw = yaw - math.pi/2 end - elseif def.drawtype == "mesh" or def.drawtype == "normal" then + elseif def.drawtype == "mesh" or def.drawtype == "normal" or def.drawtype == "nodebox" then if rot >= 0 and rot <= 1 then roll = roll + math.pi else diff --git a/builtin/game/features.lua b/builtin/game/features.lua index a15475333..36ff1f0b0 100644 --- a/builtin/game/features.lua +++ b/builtin/game/features.lua @@ -17,6 +17,8 @@ core.features = { area_store_persistent_ids = true, pathfinder_works = true, object_step_has_moveresult = true, + direct_velocity_on_players = true, + use_texture_alpha_string_modes = true, } function core.has_feature(arg) diff --git a/builtin/game/item.lua b/builtin/game/item.lua index f680ce0d4..b68177c22 100644 --- a/builtin/game/item.lua +++ b/builtin/game/item.lua @@ -551,12 +551,13 @@ function core.node_dig(pos, node, digger) local diggername = user_name(digger) local log = make_log(diggername) local def = core.registered_nodes[node.name] + -- Copy pos because the callback could modify it if def and (not def.diggable or - (def.can_dig and not def.can_dig(pos, digger))) then + (def.can_dig and not def.can_dig(vector.new(pos), digger))) then log("info", diggername .. " tried to dig " .. node.name .. " which is not diggable " .. core.pos_to_string(pos)) - return + return false end if core.is_protected(pos, diggername) then @@ -565,7 +566,7 @@ function core.node_dig(pos, node, digger) .. " at protected position " .. core.pos_to_string(pos)) core.record_protection_violation(pos, diggername) - return + return false end log('action', diggername .. " digs " @@ -648,6 +649,8 @@ function core.node_dig(pos, node, digger) local node_copy = {name=node.name, param1=node.param1, param2=node.param2} callback(pos_copy, node_copy, digger) end + + return true end function core.itemstring_with_palette(item, palette_index) @@ -675,7 +678,7 @@ end -- Item definition defaults -- -local default_stack_max = tonumber(minetest.settings:get("default_stack_max")) or 99 +local default_stack_max = tonumber(core.settings:get("default_stack_max")) or 99 core.nodedef_default = { -- Item properties @@ -704,10 +707,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, @@ -718,7 +717,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/item_entity.lua b/builtin/game/item_entity.lua index 20dd18044..9b1b23bfd 100644 --- a/builtin/game/item_entity.lua +++ b/builtin/game/item_entity.lua @@ -54,8 +54,9 @@ core.register_entity(":__builtin:item", { local max_count = stack:get_stack_max() local count = math.min(stack:get_count(), max_count) local size = 0.2 + 0.1 * (count / max_count) ^ (1 / 3) - local def = core.registered_nodes[itemname] - local glow = def and math.floor(def.light_source / 2 + 0.5) + local def = core.registered_items[itemname] + local glow = def and def.light_source and + math.floor(def.light_source / 2 + 0.5) self.object:set_properties({ is_visible = true, 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 341e613c2..b8c5e16a9 100644 --- a/builtin/game/misc.lua +++ b/builtin/game/misc.lua @@ -151,6 +151,12 @@ function core.setting_get_pos(name) end +-- See l_env.cpp for the other functions +function core.get_artificial_light(param1) + return math.floor(param1 / 16) +end + + -- To be overriden by protection mods function core.is_protected(pos, name) @@ -260,3 +266,26 @@ end function core.cancel_shutdown_requests() core.request_shutdown("", false, -1) end + + +-- Callback handling for dynamic_add_media + +local dynamic_add_media_raw = core.dynamic_add_media_raw +core.dynamic_add_media_raw = nil +function core.dynamic_add_media(filepath, callback) + local ret = dynamic_add_media_raw(filepath) + if ret == false then + return ret + end + if callback == nil then + core.log("deprecated", "Calling minetest.dynamic_add_media without ".. + "a callback is deprecated and will stop working in future versions.") + else + -- At the moment async loading is not actually implemented, so we + -- immediately call the callback ourselves + for _, name in ipairs(ret) do + callback(name) + end + end + return true +end diff --git a/builtin/game/register.lua b/builtin/game/register.lua index 1034d4f2b..1cff85813 100644 --- a/builtin/game/register.lua +++ b/builtin/game/register.lua @@ -320,13 +320,6 @@ for name in pairs(forbidden_item_names) do register_alias_raw(name, "") end - --- Obsolete: --- Aliases for core.register_alias (how ironic...) --- core.alias_node = core.register_alias --- core.alias_tool = core.register_alias --- core.alias_craftitem = core.register_alias - -- -- Built-in node definitions. Also defined in C. -- @@ -584,6 +577,7 @@ core.unregister_biome = make_wrap_deregistration(core.register_biome, core.clear_registered_biomes, core.registered_biomes) core.registered_on_chat_messages, core.register_on_chat_message = make_registration() +core.registered_on_chatcommands, core.register_on_chatcommand = make_registration() core.registered_globalsteps, core.register_globalstep = make_registration() core.registered_playerevents, core.register_playerevent = make_registration() core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration() @@ -612,6 +606,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 75bb3db85..89b1fdc64 100644 --- a/builtin/init.lua +++ b/builtin/init.lua @@ -39,9 +39,20 @@ if INIT == "game" then assert(not core.get_http_api) elseif INIT == "mainmenu" then local mm_script = core.settings:get("main_menu_script") + local custom_loaded = false if mm_script and mm_script ~= "" then - dofile(mm_script) - else + local testfile = io.open(mm_script, "r") + if testfile then + testfile:close() + dofile(mm_script) + custom_loaded = true + core.log("info", "Loaded custom main menu script: "..mm_script) + else + core.log("error", "Failed to load custom main menu script: "..mm_script) + core.log("info", "Falling back to default main menu script") + end + end + if not custom_loaded then dofile(core.get_mainmenu_path() .. DIR_DELIM .. "init.lua") end elseif INIT == "async" then diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua index 782d6973f..cd896f9ec 100644 --- a/builtin/mainmenu/common.lua +++ b/builtin/mainmenu/common.lua @@ -62,24 +62,6 @@ function image_column(tooltip, flagname) "5=" .. core.formspec_escape(defaulttexturedir .. "server_ping_1.png") end --------------------------------------------------------------------------------- -function order_favorite_list(list) - local res = {} - --orders the favorite list after support - for i = 1, #list do - local fav = list[i] - if is_server_protocol_compat(fav.proto_min, fav.proto_max) then - res[#res + 1] = fav - end - end - for i = 1, #list do - local fav = list[i] - if not is_server_protocol_compat(fav.proto_min, fav.proto_max) then - res[#res + 1] = fav - end - end - return res -end -------------------------------------------------------------------------------- function render_serverlist_row(spec, is_favorite) @@ -87,7 +69,7 @@ function render_serverlist_row(spec, is_favorite) if spec.name then text = text .. core.formspec_escape(spec.name:trim()) elseif spec.address then - text = text .. spec.address:trim() + text = text .. core.formspec_escape(spec.address:trim()) if spec.port then text = text .. ":" .. spec.port end @@ -164,35 +146,15 @@ end -------------------------------------------------------------------------------- os.tempfolder = function() - if core.settings:get("TMPFolder") then - return core.settings:get("TMPFolder") .. DIR_DELIM .. "MT_" .. math.random(0,10000) - end - - local 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 temp = core.get_temp_path() + return temp .. DIR_DELIM .. "MT_" .. math.random(0, 10000) +end - local randname = "MTTempModFolder_" .. math.random(0,10000) - local backstring = filetocheck:reverse() - return filetocheck:sub(0, filetocheck:len() - backstring:find(DIR_DELIM) + 1) .. - randname +-------------------------------------------------------------------------------- +os.tmpname = function() + local path = os.tempfolder() + io.open(path, "w"):close() + return path end -------------------------------------------------------------------------------- @@ -227,41 +189,6 @@ function menu_handle_key_up_down(fields, textlist, settingname) 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 .. 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 01c42be0b..b0736a4fd 100644 --- a/builtin/mainmenu/dlg_contentstore.lua +++ b/builtin/mainmenu/dlg_contentstore.lua @@ -15,7 +15,7 @@ --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -if not minetest.get_http_api then +if not core.get_http_api then function create_store_dlg() return messagebox("store", fgettext("ContentDB is not available when Minetest was compiled without cURL")) @@ -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" @@ -45,6 +47,9 @@ local filter_types_titles = { fgettext("Texture packs"), } +local number_downloading = 0 +local download_queue = {} + local filter_types_type = { nil, "game", @@ -67,12 +72,14 @@ local function download_package(param) end end -local function start_install(calling_dialog, package) +local function start_install(package) local params = { package = package, filename = os.tempfolder() .. "_MODNAME_" .. package.name .. ".zip", } + number_downloading = number_downloading + 1 + local function callback(result) if result.successful then local path, msg = pkgmgr.install(package.type, @@ -121,9 +128,20 @@ local function start_install(calling_dialog, package) end package.downloading = false + + number_downloading = number_downloading - 1 + + local next = download_queue[1] + if next then + table.remove(download_queue, 1) + + start_install(next) + end + ui.update() end + package.queued = false package.downloading = true if not core.handle_async(download_package, params, callback) then @@ -133,6 +151,341 @@ local function start_install(calling_dialog, package) end end +local function queue_download(package) + local max_concurrent_downloads = tonumber(core.settings:get("contentdb_max_concurrent_downloads")) + if number_downloading < max_concurrent_downloads then + start_install(package) + else + table.insert(download_queue, package) + package.queued = true + 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] @@ -200,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 @@ -221,6 +574,7 @@ function store.load() end end + store.packages_full_unordered = store.packages_full store.packages = store.packages_full store.loaded = true end @@ -229,7 +583,7 @@ function store.update_paths() local mod_hash = {} pkgmgr.refresh_globals() for _, mod in pairs(pkgmgr.global_mods:get_list()) do - if mod.author then + if mod.author and mod.release > 0 then mod_hash[mod.author:lower() .. "/" .. mod.name] = mod end end @@ -237,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 @@ -268,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 @@ -279,7 +660,7 @@ function store.filter_packages(query) table.insert(keywords, word) end - local function matches_keywords(package, keywords) + local function matches_keywords(package) for k = 1, #keywords do local keyword = keywords[k] @@ -296,12 +677,11 @@ function store.filter_packages(query) store.packages = {} for _, package in pairs(store.packages_full) do - if (query == "" or matches_keywords(package, keywords)) and + if (query == "" or matches_keywords(package)) and (filter_type == 1 or package.type == filter_types_type[filter_type]) then store.packages[#store.packages + 1] = package end end - end function store.get_formspec(dlgdata) @@ -314,18 +694,21 @@ function store.get_formspec(dlgdata) local W = 15.75 local H = 9.5 - local formspec if #store.packages_full > 0 then formspec = { "formspec_version[3]", "size[15.75,9.5]", "position[0.5,0.55]", + + "style[status,downloading,queued;border=false]", + "container[0.375,0.375]", - "field[0,0;10.225,0.8;search_string;;", core.formspec_escape(search_string), "]", + "field[0,0;7.225,0.8;search_string;;", core.formspec_escape(search_string), "]", "field_close_on_enter[search_string;false]", - "button[10.225,0;2,0.8;search;", fgettext("Search"), "]", - "dropdown[12.6,0;2.4,0.8;type;", table.concat(filter_types_titles, ","), ";", filter_type, "]", + "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[]", -- Page nav buttons @@ -344,6 +727,35 @@ function store.get_formspec(dlgdata) "container_end[]", } + if number_downloading > 0 then + 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 + formspec[#formspec + 1] = fgettext("$1 downloading...", number_downloading) + end + formspec[#formspec + 1] = "]" + else + local num_avail_updates = 0 + for i=1, #store.packages_full do + local package = store.packages_full[i] + if package.path and package.installed_release < package.release and + not (package.downloading or package.queued) then + num_avail_updates = num_avail_updates + 1 + end + end + + if num_avail_updates == 0 then + formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;status;" + formspec[#formspec + 1] = fgettext("No updates") + formspec[#formspec + 1] = "]" + else + formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;update_all;" + formspec[#formspec + 1] = fgettext("Update All [$1]", num_avail_updates) + formspec[#formspec + 1] = "]" + end + end + if #store.packages == 0 then formspec[#formspec + 1] = "label[4,3;" formspec[#formspec + 1] = fgettext("No results") @@ -360,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 @@ -375,55 +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] = "style[download;border=false]" - - formspec[#formspec + 1] = "button[-3.5,0;2,0.8;download;" - 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] = 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;;;" @@ -444,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 @@ -485,6 +910,17 @@ function store.handle_submit(this, fields) end end + if fields.update_all then + for i=1, #store.packages_full do + local package = store.packages_full[i] + if package.path and package.installed_release < package.release and + not (package.downloading or package.queued) then + queue_download(package) + end + end + return true + end + local start_idx = (cur_page - 1) * num_per_page + 1 assert(start_idx ~= nil) for i=start_idx, math.min(#store.packages, start_idx+num_per_page-1) do @@ -492,21 +928,54 @@ function store.handle_submit(this, fields) assert(package) if fields["install_" .. i] then - start_install(this, 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 if fields["view_" .. i] then - local url = ("%s/packages/%s?protocol_version=%d"):format( - core.settings:get("contentdb_url"), package.id, core.get_max_supp_proto()) + local url = ("%s/packages/%s/%s?protocol_version=%d"):format( + core.settings:get("contentdb_url"), + package.author, package.name, core.get_max_supp_proto()) core.open_url(url) return true end @@ -520,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 36df23cce..1938747fe 100644 --- a/builtin/mainmenu/dlg_create_world.lua +++ b/builtin/mainmenu/dlg_create_world.lua @@ -61,6 +61,7 @@ local flag_checkboxes = { fgettext("Low humidity and high heat causes shallow or dry rivers") }, }, flat = { + cb_caverns, { "hills", fgettext("Hills"), "hills" }, { "lakes", fgettext("Lakes"), "lakes" }, }, @@ -97,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") .. "]" .. @@ -362,10 +363,18 @@ local function create_world_buttonhandler(this, fields) local gameindex = core.get_textlist_index("games") if gameindex ~= nil then + -- For unnamed worlds use the generated name 'world<number>', + -- where the number increments: it is set to 1 larger than the largest + -- generated name number found. if worldname == "" then - local random_number = math.random(10000, 99999) - local random_world_name = "Unnamed" .. random_number - worldname = random_world_name + local worldnum_max = 0 + for _, world in ipairs(menudata.worldlist:get_list()) do + if world.name:match("^world%d+$") then + local worldnum = tonumber(world.name:sub(6)) + worldnum_max = math.max(worldnum_max, worldnum) + end + end + worldname = "world" .. worldnum_max + 1 end core.settings:set("fixed_map_seed", fields["te_seed"]) @@ -434,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/init.lua b/builtin/mainmenu/init.lua index c17e79270..45089c7c9 100644 --- a/builtin/mainmenu/init.lua +++ b/builtin/mainmenu/init.lua @@ -19,10 +19,10 @@ 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() -local menustyle = core.settings:get("main_menu_style") defaulttexturedir = core.get_texturepath_share() .. DIR_DELIM .. "base" .. DIR_DELIM .. "pack" .. DIR_DELIM @@ -34,29 +34,24 @@ 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") dofile(menupath .. DIR_DELIM .. "dlg_settings_advanced.lua") dofile(menupath .. DIR_DELIM .. "dlg_contentstore.lua") -if menustyle ~= "simple" then - dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua") - dofile(menupath .. DIR_DELIM .. "dlg_delete_content.lua") - dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua") - dofile(menupath .. DIR_DELIM .. "dlg_rename_modpack.lua") -end +dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua") +dofile(menupath .. DIR_DELIM .. "dlg_delete_content.lua") +dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua") +dofile(menupath .. DIR_DELIM .. "dlg_rename_modpack.lua") 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") -if menustyle == "simple" then - tabs.simple_main = dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua") -else - tabs.local_game = dofile(menupath .. DIR_DELIM .. "tab_local.lua") - tabs.play_online = dofile(menupath .. DIR_DELIM .. "tab_online.lua") -end +tabs.local_game = dofile(menupath .. DIR_DELIM .. "tab_local.lua") +tabs.play_online = dofile(menupath .. DIR_DELIM .. "tab_online.lua") -------------------------------------------------------------------------------- local function main_event_handler(tabview, event) @@ -71,68 +66,35 @@ local function init_globals() -- Init gamedata gamedata.worldindex = 0 - if menustyle == "simple" then - local world_list = core.get_worlds() - local world_index - - local found_singleplayerworld = false - for i, world in ipairs(world_list) do - if world.name == "singleplayerworld" then - found_singleplayerworld = true - world_index = i - break - end - end - - if not found_singleplayerworld then - core.create_world("singleplayerworld", 1) - - world_list = core.get_worlds() - - for i, world in ipairs(world_list) do - if world.name == "singleplayerworld" then - world_index = i - break - end - end + menudata.worldlist = filterlist.create( + core.get_worlds, + compare_worlds, + -- Unique id comparison function + function(element, uid) + return element.name == uid + end, + -- Filter function + function(element, gameid) + return element.gameid == gameid end + ) - gamedata.worldindex = world_index - else - menudata.worldlist = filterlist.create( - core.get_worlds, - compare_worlds, - -- Unique id comparison function - function(element, uid) - return element.name == uid - end, - -- Filter function - function(element, gameid) - return element.gameid == gameid - end - ) - - menudata.worldlist:add_sort_mechanism("alphabetic", sort_worlds_alphabetic) - menudata.worldlist:set_sortmode("alphabetic") - - if not core.settings:get("menu_last_game") then - local default_game = core.settings:get("default_game") or "minetest" - core.settings:set("menu_last_game", default_game) - end + menudata.worldlist:add_sort_mechanism("alphabetic", sort_worlds_alphabetic) + menudata.worldlist:set_sortmode("alphabetic") - mm_texture.init() + if not core.settings:get("menu_last_game") then + local default_game = core.settings:get("default_game") or "minetest" + core.settings:set("menu_last_game", default_game) end + mm_texture.init() + -- Create main tabview local tv_main = tabview_create("maintab", {x = 12, y = 5.4}, {x = 0, y = 0}) - if menustyle == "simple" then - tv_main:add(tabs.simple_main) - else - tv_main:set_autosave_tab(true) - tv_main:add(tabs.local_game) - tv_main:add(tabs.play_online) - end + tv_main:set_autosave_tab(true) + tv_main:add(tabs.local_game) + tv_main:add(tabs.play_online) tv_main:add(tabs.content) tv_main:add(tabs.settings) @@ -141,12 +103,20 @@ local function init_globals() tv_main:set_global_event_handler(main_event_handler) tv_main:set_fixed_size(false) - if menustyle ~= "simple" then - local last_tab = core.settings:get("maintab_LAST") - if last_tab and tv_main.current_tab ~= last_tab then - tv_main:set_tab(last_tab) + local last_tab = core.settings:get("maintab_LAST") + 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 5b8807310..19127d8d3 100644 --- a/builtin/mainmenu/pkgmgr.lua +++ b/builtin/mainmenu/pkgmgr.lua @@ -72,6 +72,34 @@ local function cleanup_path(temppath) return temppath end +local function load_texture_packs(txtpath, retval) + local list = core.get_dir_list(txtpath, true) + local current_texture_path = core.settings:get("texture_path") + + for _, item in ipairs(list) do + if item ~= "base" then + local name = item + + local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM + if path == current_texture_path then + name = fgettext("$1 (Enabled)", name) + end + + local conf = Settings(path .. "texture_pack.conf") + + retval[#retval + 1] = { + name = item, + author = conf:get("author"), + release = tonumber(conf:get("release") or "0"), + list_name = name, + type = "txp", + path = path, + enabled = path == current_texture_path, + } + end + end +end + function get_mods(path,retval,modpack) local mods = core.get_dir_list(path, true) @@ -112,7 +140,7 @@ function get_mods(path,retval,modpack) toadd.type = "mod" -- Check modpack.txt - -- Note: modpack.conf is already checked above + -- Note: modpack.conf is already checked above local modpackfile = io.open(prefix .. DIR_DELIM .. "modpack.txt") if modpackfile then modpackfile:close() @@ -136,32 +164,13 @@ pkgmgr = {} function pkgmgr.get_texture_packs() local txtpath = core.get_texturepath() - local list = core.get_dir_list(txtpath, true) + local txtpath_system = core.get_texturepath_share() local retval = {} - local current_texture_path = core.settings:get("texture_path") - - for _, item in ipairs(list) do - if item ~= "base" then - local name = item - - local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM - if path == current_texture_path then - name = fgettext("$1 (Enabled)", name) - end - - local conf = Settings(path .. "texture_pack.conf") - - retval[#retval + 1] = { - name = item, - author = conf:get("author"), - release = tonumber(conf:get("release") or "0"), - list_name = name, - type = "txp", - path = path, - enabled = path == current_texture_path, - } - end + load_texture_packs(txtpath, retval) + -- on portable versions these two paths coincide. It avoids loading the path twice + if txtpath ~= txtpath_system then + load_texture_packs(txtpath_system, retval) end table.sort(retval, function(a, b) @@ -450,7 +459,7 @@ function pkgmgr.enable_mod(this, toset) if not toset then -- Mod(s) were disabled, so no dependencies need to be enabled table.sort(toggled_mods) - minetest.log("info", "Following mods were disabled: " .. + core.log("info", "Following mods were disabled: " .. table.concat(toggled_mods, ", ")) return end @@ -487,7 +496,7 @@ function pkgmgr.enable_mod(this, toset) enabled_mods[name] = true local mod_to_enable = list[mod_ids[name]] if not mod_to_enable then - minetest.log("warning", "Mod dependency \"" .. name .. + core.log("warning", "Mod dependency \"" .. name .. "\" not found!") else if mod_to_enable.enabled == false then @@ -508,7 +517,7 @@ function pkgmgr.enable_mod(this, toset) -- Log the list of enabled mods table.sort(toggled_mods) - minetest.log("info", "Following mods were enabled: " .. + core.log("info", "Following mods were enabled: " .. table.concat(toggled_mods, ", ")) end diff --git a/builtin/mainmenu/serverlistmgr.lua b/builtin/mainmenu/serverlistmgr.lua new file mode 100644 index 000000000..9876d8ac5 --- /dev/null +++ b/builtin/mainmenu/serverlistmgr.lua @@ -0,0 +1,250 @@ +--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() + local base = core.get_user_path() .. DIR_DELIM .. "client" .. DIR_DELIM .. "serverlist" .. DIR_DELIM + return base .. core.settings:get("serverlist_file") +end + +-------------------------------------------------------------------------------- +local function save_favorites(favorites) + local filename = core.settings:get("serverlist_file") + -- If setting specifies legacy format change the filename to the new one + if filename:sub(#filename - 3):lower() == ".txt" then + core.settings:set("serverlist_file", filename:sub(1, #filename - 4) .. ".json") + end + + local path = get_favorites_path() + core.create_dir(path) + core.safe_file_write(path, core.write_json(favorites)) +end + +-------------------------------------------------------------------------------- +function serverlistmgr.read_legacy_favorites(path) + local file = io.open(path, "r") + if not file then + return nil + end + + local lines = {} + for line in file:lines() do + lines[#lines + 1] = line + end + file:close() + + local favorites = {} + + local i = 1 + while i < #lines do + local function pop() + local line = lines[i] + i = i + 1 + return line and line:trim() + end + + if pop():lower() == "[server]" then + local name = pop() + local address = pop() + local port = tonumber(pop()) + local description = pop() + + if name == "" then + name = nil + end + + if description == "" then + description = nil + end + + if not address or #address < 3 then + core.log("warning", "Malformed favorites file, missing address at line " .. i) + elseif not port or port < 1 or port > 65535 then + core.log("warning", "Malformed favorites file, missing port at line " .. i) + elseif (name and name:upper() == "[SERVER]") or + (address and address:upper() == "[SERVER]") or + (description and description:upper() == "[SERVER]") then + core.log("warning", "Potentially malformed favorites file, overran at line " .. i) + else + favorites[#favorites + 1] = { + name = name, + address = address, + port = port, + description = description + } + end + end + end + + return favorites +end + +-------------------------------------------------------------------------------- +local function read_favorites() + local path = get_favorites_path() + + -- If new format configured fall back to reading the legacy file + if path:sub(#path - 4):lower() == ".json" then + local file = io.open(path, "r") + if file then + local json = file:read("*all") + file:close() + return core.parse_json(json) + end + + path = path:sub(1, #path - 5) .. ".txt" + end + + local favs = serverlistmgr.read_legacy_favorites(path) + if favs then + save_favorites(favs) + os.remove(path) + end + return favs +end + +-------------------------------------------------------------------------------- +local function delete_favorite(favorites, del_favorite) + for i=1, #favorites do + local fav = favorites[i] + + if fav.address == del_favorite.address and fav.port == del_favorite.port then + table.remove(favorites, i) + return + end + end +end + +-------------------------------------------------------------------------------- +function serverlistmgr.get_favorites() + if serverlistmgr.favorites then + return serverlistmgr.favorites + end + + serverlistmgr.favorites = {} + + -- Add favorites, removing duplicates + local seen = {} + for _, fav in ipairs(read_favorites() or {}) do + local key = ("%s:%d"):format(fav.address:lower(), fav.port) + if not seen[key] then + seen[key] = true + serverlistmgr.favorites[#serverlistmgr.favorites + 1] = fav + end + end + + return serverlistmgr.favorites +end + +-------------------------------------------------------------------------------- +function serverlistmgr.add_favorite(new_favorite) + assert(type(new_favorite.port) == "number") + + -- Whitelist favorite keys + new_favorite = { + name = new_favorite.name, + address = new_favorite.address, + port = new_favorite.port, + description = new_favorite.description, + } + + local favorites = serverlistmgr.get_favorites() + delete_favorite(favorites, new_favorite) + table.insert(favorites, 1, new_favorite) + save_favorites(favorites) +end + +-------------------------------------------------------------------------------- +function serverlistmgr.delete_favorite(del_favorite) + local favorites = serverlistmgr.get_favorites() + delete_favorite(favorites, del_favorite) + save_favorites(favorites) +end diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_credits.lua index c2b7e503a..a34dd58bb 100644 --- a/builtin/mainmenu/tab_credits.lua +++ b/builtin/mainmenu/tab_credits.lua @@ -23,28 +23,37 @@ local core_developers = { "Nathanaël Courant (Nore/Ekdohibs) <nore@mesecons.net>", "Loic Blot (nerzhul/nrz) <loic.blot@unix-experience.fr>", "paramat", - "Auke Kok (sofar) <sofar@foo-projects.org>", "Andrew Ward (rubenwardy) <rw@rubenwardy.com>", "Krock/SmallJoker <mk939@ymail.com>", "Lars Hofhansl <larsh@apache.org>", + "Pierre-Yves Rollo <dev@pyrollo.com>", + "v-rob <robinsonvincent89@gmail.com>", } +-- 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) <jeanpatrick.guerrero@gmail.com> [Audiovisuals]", - "HybridDog [Script API]", + "numzero [Graphics and rendering]", + "appgurueu [Various internal fixes]", + "Desour [Formspec and vector API changes]", + "HybridDog [Rendering fixes and documentation]", + "Hugues Ross [Graphics-related improvements]", + "ANAND (ClobberXD) [Mouse buttons rebinding]", + "luk3yx [Fixes]", + "hecks [Audiovisuals, Lua API]", + "LoneWolfHT [Object crosshair, documentation fixes]", + "Lejo [Server-related improvements]", + "EvidenceB [Compass HUD element]", + "Paul Ouellette (pauloue) [Lua API, documentation]", + "TheTermos [Collision detection, physics]", + "David CARLIER [Unix & Haiku build fixes]", "dcbrwn [Object shading]", - "srifqi [Fixes]", + "Elias Fleckenstein [API features/fixes]", + "Jean-Patrick Guerrero (kilbith) [model element, visual fixes]", + "k.h.lai [Memory leak fixes, documentation]", } local previous_core_developers = { @@ -60,30 +69,23 @@ local previous_core_developers = { "sapier", "Zeno", "ShadowNinja <shadowninja@minetest.net>", + "Auke Kok (sofar) <sofar@foo-projects.org>", } local previous_contributors = { "Nils Dagsson Moskopp (erlehmann) <nils@dieweltistgarnichtso.net> [Minetest Logo]", - "Dániel Juhász (juhdanad) <juhdanad@gmail.com>", "red-001 <red-001@outlook.ie>", - "numberZero [Audiovisuals: meshgen]", "Giuseppe Bilotta", + "Dániel Juhász (juhdanad) <juhdanad@gmail.com>", "MirceaKitsune <mirceakitsune@gmail.com>", "Constantin Wenger (SpeedProg)", "Ciaran Gultnieks (CiaranG)", "stujones11 [Android UX improvements]", - "Jeija <jeija@mesecons.net> [HTTP, particles]", - "Vincent Glize (Dumbeldor) [Cleanups, CSM APIs]", - "Ben Deutsch [Rendering, Fixes, SQLite auth]", - "TeTpaAka [Hand overriding, nametag colors]", - "Rui [Sound Pitch]", - "Duane Robertson <duane@duanerobertson.com> [MGValleys]", - "Raymoo [Tool Capabilities]", "Rogier <rogier777@gmail.com> [Fixes]", "Gregory Currie (gregorycu) [optimisation]", - "TriBlade9 <triblade9@mail.com> [Audiovisuals]", - "T4im [Profiler]", - "Jurgen Doser (doserj) <jurgen.doser@gmail.com>", + "srifqi [Fixes]", + "JacobF", + "Jeija <jeija@mesecons.net> [HTTP, particles]", } local function buildCreditList(source) @@ -100,9 +102,10 @@ return { cbf_formspec = function(tabview, name, tabdata) local logofile = defaulttexturedir .. "logo.png" local version = core.get_version() - return "image[0.5,1;" .. core.formspec_escape(logofile) .. "]" .. - "label[0.5,2.8;" .. version.project .. " " .. version.string .. "]" .. - "button[0.5,3;2,2;homepage;minetest.net]" .. + local fs = "image[0.75,0.5;2.2,2.2;" .. core.formspec_escape(logofile) .. "]" .. + "style[label_button;border=false]" .. + "button[0.5,2;2.5,2;label_button;" .. version.project .. " " .. version.string .. "]" .. + "button[0.75,2.75;2,2;homepage;minetest.net]" .. "tablecolumns[color;text]" .. "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. "table[3.5,-0.25;8.5,6.05;list_credits;" .. @@ -115,10 +118,23 @@ return { "#FFFF00," .. fgettext("Previous Contributors") .. ",," .. buildCreditList(previous_contributors) .. "," .. ";1]" + + if PLATFORM ~= "Android" then + fs = fs .. "tooltip[userdata;" .. + fgettext("Opens the directory that contains user-provided worlds, games, mods,\n" .. + "and texture packs in a file manager / explorer.") .. "]" + fs = fs .. "button[0,4.75;3.5,1;userdata;" .. fgettext("Open User Data Directory") .. "]" + end + + return fs end, cbf_button_handler = function(this, fields, name, tabdata) if fields.homepage then core.open_url("https://www.minetest.net") end + + if fields.userdata then + core.open_dir(core.get_user_path()) + end end, } diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua index a21cf12b1..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") @@ -114,45 +115,44 @@ local function get_formspec(tabview, name, tabdata) ) retval = retval .. - "button[4,3.95;2.6,1;world_delete;".. fgettext("Delete") .. "]" .. - "button[6.5,3.95;2.8,1;world_configure;".. fgettext("Configure") .. "]" .. - "button[9.2,3.95;2.5,1;world_create;".. fgettext("New") .. "]" .. - "label[4,-0.25;".. fgettext("Select World:") .. "]".. - "checkbox[0.25,0.25;cb_creative_mode;".. fgettext("Creative Mode") .. ";" .. + "button[3.9,3.8;2.8,1;world_delete;".. fgettext("Delete") .. "]" .. + "button[6.55,3.8;2.8,1;world_configure;".. fgettext("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") .. ";" .. dump(core.settings:get_bool("creative_mode")) .. "]".. - "checkbox[0.25,0.7;cb_enable_damage;".. fgettext("Enable Damage") .. ";" .. + "checkbox[0,0.25;cb_enable_damage;".. fgettext("Enable Damage") .. ";" .. dump(core.settings:get_bool("enable_damage")) .. "]".. - "checkbox[0.25,1.15;cb_server;".. fgettext("Host Server") ..";" .. + "checkbox[0,0.7;cb_server;".. fgettext("Host Server") ..";" .. dump(core.settings:get_bool("enable_server")) .. "]" .. - "textlist[4,0.25;7.5,3.7;sp_worlds;" .. + "textlist[3.9,0.4;7.9,3.45;sp_worlds;" .. menu_render_worldlist() .. ";" .. index .. "]" if core.settings:get_bool("enable_server") then retval = retval .. - "button[8.5,4.8;3.2,1;play;".. fgettext("Host Game") .. "]" .. - "checkbox[0.25,1.6;cb_server_announce;" .. fgettext("Announce Server") .. ";" .. + "button[7.9,4.75;4.1,1;play;".. fgettext("Host Game") .. "]" .. + "checkbox[0,1.15;cb_server_announce;" .. fgettext("Announce Server") .. ";" .. dump(core.settings:get_bool("server_announce")) .. "]" .. - "label[0.25,2.2;" .. fgettext("Name/Password") .. "]" .. - "field[0.55,3.2;3.5,0.5;te_playername;;" .. + "field[0.3,2.85;3.8,0.5;te_playername;" .. fgettext("Name") .. ";" .. core.formspec_escape(core.settings:get("name")) .. "]" .. - "pwdfield[0.55,4;3.5,0.5;te_passwd;]" + "pwdfield[0.3,4.05;3.8,0.5;te_passwd;" .. fgettext("Password") .. "]" local bind_addr = core.settings:get("bind_address") if bind_addr ~= nil and bind_addr ~= "" then retval = retval .. - "field[0.55,5.2;2.25,0.5;te_serveraddr;" .. fgettext("Bind Address") .. ";" .. + "field[0.3,5.25;2.5,0.5;te_serveraddr;" .. fgettext("Bind Address") .. ";" .. core.formspec_escape(core.settings:get("bind_address")) .. "]" .. - "field[2.8,5.2;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" .. + "field[2.85,5.25;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" .. core.formspec_escape(core.settings:get("port")) .. "]" else retval = retval .. - "field[0.55,5.2;3.5,0.5;te_serverport;" .. fgettext("Server Port") .. ";" .. + "field[0.3,5.25;3.8,0.5;te_serverport;" .. fgettext("Server Port") .. ";" .. core.formspec_escape(core.settings:get("port")) .. "]" end else retval = retval .. - "button[8.5,4.8;3.2,1;play;".. fgettext("Play Game") .. "]" + "button[7.9,4.75;4.1,1;play;" .. fgettext("Play Game") .. "]" end return retval diff --git a/builtin/mainmenu/tab_online.lua b/builtin/mainmenu/tab_online.lua index 7985fd84a..e6748ed88 100644 --- a/builtin/mainmenu/tab_online.lua +++ b/builtin/mainmenu/tab_online.lua @@ -20,11 +20,11 @@ local function get_formspec(tabview, name, tabdata) -- Update the cached supported proto info, -- it may have changed after a change by the settings menu. common_update_cached_supp_proto() - local fav_selected + local selected if menudata.search_result then - fav_selected = menudata.search_result[tabdata.fav_selected] + selected = menudata.search_result[tabdata.selected] else - fav_selected = menudata.favorites[tabdata.fav_selected] + selected = serverlistmgr.servers[tabdata.selected] end if not tabdata.search_for then @@ -34,7 +34,8 @@ local function get_formspec(tabview, name, tabdata) local retval = -- Search "field[0.15,0.075;5.91,1;te_search;;" .. core.formspec_escape(tabdata.search_for) .. "]" .. - "button[5.62,-0.25;1.5,1;btn_mp_search;" .. fgettext("Search") .. "]" .. + "image_button[5.63,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "search.png") .. ";btn_mp_search;]" .. + "image_button[6.3,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "clear.png") .. ";btn_mp_clear;]" .. "image_button[6.97,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "refresh.png") .. ";btn_mp_refresh;]" .. @@ -57,18 +58,18 @@ local function get_formspec(tabview, name, tabdata) -- Connect "button[9.88,4.9;2.3,1;btn_mp_connect;" .. fgettext("Connect") .. "]" - if tabdata.fav_selected and fav_selected then + if tabdata.selected and selected then if gamedata.fav then retval = retval .. "button[7.73,4.9;2.3,1;btn_delete_favorite;" .. fgettext("Del. Favorite") .. "]" end - if fav_selected.description then + if selected.description then retval = retval .. "textarea[8.1,2.3;4.23,2.9;;;" .. core.formspec_escape((gamedata.serverdescription or ""), true) .. "]" end end - --favourites + --favorites retval = retval .. "tablecolumns[" .. image_column(fgettext("Favorite"), "favorite") .. ";" .. image_column(fgettext("Ping")) .. ",padding=0.25;" .. @@ -82,13 +83,12 @@ local function get_formspec(tabview, name, tabdata) image_column(fgettext("PvP enabled"), "pvp") .. ",padding=0.25;" .. "color,span=1;" .. "text,padding=1]" .. - "table[-0.15,0.6;7.75,5.15;favourites;" + "table[-0.15,0.6;7.75,5.15;favorites;" if menudata.search_result then + local favs = serverlistmgr.get_favorites() for i = 1, #menudata.search_result do - local favs = core.get_favorites("local") local server = menudata.search_result[i] - for fav_id = 1, #favs do if server.address == favs[fav_id].address and server.port == favs[fav_id].port then @@ -102,29 +102,30 @@ local function get_formspec(tabview, name, tabdata) retval = retval .. render_serverlist_row(server, server.is_favorite) end - elseif #menudata.favorites > 0 then - local favs = core.get_favorites("local") + elseif #serverlistmgr.servers > 0 then + local favs = serverlistmgr.get_favorites() if #favs > 0 then for i = 1, #favs do - for j = 1, #menudata.favorites do - if menudata.favorites[j].address == favs[i].address and - menudata.favorites[j].port == favs[i].port then - table.insert(menudata.favorites, i, table.remove(menudata.favorites, j)) + for j = 1, #serverlistmgr.servers do + if serverlistmgr.servers[j].address == favs[i].address and + serverlistmgr.servers[j].port == favs[i].port then + table.insert(serverlistmgr.servers, i, table.remove(serverlistmgr.servers, j)) + end end - end - if favs[i].address ~= menudata.favorites[i].address then - table.insert(menudata.favorites, i, favs[i]) + if favs[i].address ~= serverlistmgr.servers[i].address then + table.insert(serverlistmgr.servers, i, favs[i]) end end end - retval = retval .. render_serverlist_row(menudata.favorites[1], (#favs > 0)) - for i = 2, #menudata.favorites do - retval = retval .. "," .. render_serverlist_row(menudata.favorites[i], (i <= #favs)) + + retval = retval .. render_serverlist_row(serverlistmgr.servers[1], (#favs > 0)) + for i = 2, #serverlistmgr.servers do + retval = retval .. "," .. render_serverlist_row(serverlistmgr.servers[i], (i <= #favs)) end end - if tabdata.fav_selected then - retval = retval .. ";" .. tabdata.fav_selected .. "]" + if tabdata.selected then + retval = retval .. ";" .. tabdata.selected .. "]" else retval = retval .. ";0]" end @@ -134,21 +135,20 @@ end -------------------------------------------------------------------------------- local function main_button_handler(tabview, fields, name, tabdata) - local serverlist = menudata.search_result or menudata.favorites + local serverlist = menudata.search_result or serverlistmgr.servers if fields.te_name then gamedata.playername = fields.te_name core.settings:set("name", fields.te_name) end - if fields.favourites then - local event = core.explode_table_event(fields.favourites) + if fields.favorites then + local event = core.explode_table_event(fields.favorites) local fav = serverlist[event.row] if event.type == "DCL" then if event.row <= #serverlist then - if menudata.favorites_is_public and - not is_server_protocol_compat_or_error( + if not is_server_protocol_compat_or_error( fav.proto_min, fav.proto_max) then return true end @@ -177,7 +177,7 @@ local function main_button_handler(tabview, fields, name, tabdata) if event.type == "CHG" then if event.row <= #serverlist then gamedata.fav = false - local favs = core.get_favorites("local") + local favs = serverlistmgr.get_favorites() local address = fav.address local port = fav.port gamedata.serverdescription = fav.description @@ -193,28 +193,28 @@ local function main_button_handler(tabview, fields, name, tabdata) core.settings:set("address", address) core.settings:set("remote_port", port) end - tabdata.fav_selected = event.row + tabdata.selected = event.row end return true end end if fields.key_up or fields.key_down then - local fav_idx = core.get_table_index("favourites") + local fav_idx = core.get_table_index("favorites") local fav = serverlist[fav_idx] if fav_idx then if fields.key_up and fav_idx > 1 then fav_idx = fav_idx - 1 - elseif fields.key_down and fav_idx < #menudata.favorites then + elseif fields.key_down and fav_idx < #serverlistmgr.servers then fav_idx = fav_idx + 1 end else fav_idx = 1 end - if not menudata.favorites or not fav then - tabdata.fav_selected = 0 + if not serverlistmgr.servers or not fav then + tabdata.selected = 0 return true end @@ -226,29 +226,35 @@ local function main_button_handler(tabview, fields, name, tabdata) core.settings:set("remote_port", port) end - tabdata.fav_selected = fav_idx + tabdata.selected = fav_idx return true end if fields.btn_delete_favorite then - local current_favourite = core.get_table_index("favourites") - if not current_favourite then return end + local current_favorite = core.get_table_index("favorites") + if not current_favorite then return end - core.delete_favorite(current_favourite) - asyncOnlineFavourites() - tabdata.fav_selected = nil + serverlistmgr.delete_favorite(serverlistmgr.servers[current_favorite]) + serverlistmgr.sync() + tabdata.selected = nil core.settings:set("address", "") core.settings:set("remote_port", "30000") return true end + if fields.btn_mp_clear then + tabdata.search_for = "" + menudata.search_result = nil + return true + end + if fields.btn_mp_search or fields.key_enter_field == "te_search" then - tabdata.fav_selected = 1 + tabdata.selected = 1 local input = fields.te_search:lower() tabdata.search_for = fields.te_search - if #menudata.favorites < 2 then + if #serverlistmgr.servers < 2 then return true end @@ -268,8 +274,8 @@ local function main_button_handler(tabview, fields, name, tabdata) -- Search the serverlist local search_result = {} - for i = 1, #menudata.favorites do - local server = menudata.favorites[i] + for i = 1, #serverlistmgr.servers do + local server = serverlistmgr.servers[i] local found = 0 for k = 1, #keywords do local keyword = keywords[k] @@ -286,7 +292,7 @@ local function main_button_handler(tabview, fields, name, tabdata) end end if found > 0 then - local points = (#menudata.favorites - i) / 5 + found + local points = (#serverlistmgr.servers - i) / 5 + found server.points = points table.insert(search_result, server) end @@ -305,7 +311,7 @@ local function main_button_handler(tabview, fields, name, tabdata) end if fields.btn_mp_refresh then - asyncOnlineFavourites() + serverlistmgr.sync() return true end @@ -314,30 +320,36 @@ local function main_button_handler(tabview, fields, name, tabdata) gamedata.playername = fields.te_name gamedata.password = fields.te_pwd gamedata.address = fields.te_address - gamedata.port = fields.te_port + gamedata.port = tonumber(fields.te_port) gamedata.selected_world = 0 - local fav_idx = core.get_table_index("favourites") + local fav_idx = core.get_table_index("favorites") local fav = serverlist[fav_idx] if fav_idx and fav_idx <= #serverlist and - fav.address == fields.te_address and - fav.port == fields.te_port then + fav.address == gamedata.address and + fav.port == gamedata.port then + + serverlistmgr.add_favorite(fav) gamedata.servername = fav.name gamedata.serverdescription = fav.description - if menudata.favorites_is_public and - not is_server_protocol_compat_or_error( + if not is_server_protocol_compat_or_error( fav.proto_min, fav.proto_max) then return true end else gamedata.servername = "" gamedata.serverdescription = "" + + serverlistmgr.add_favorite({ + address = gamedata.address, + port = gamedata.port, + }) end - core.settings:set("address", fields.te_address) - core.settings:set("remote_port", fields.te_port) + core.settings:set("address", gamedata.address) + core.settings:set("remote_port", gamedata.port) core.start() return true @@ -347,7 +359,7 @@ end local function on_change(type, old_tab, new_tab) if type == "LEAVE" then return end - asyncOnlineFavourites() + serverlistmgr.sync() end -------------------------------------------------------------------------------- diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua index 1e5264904..29744048a 100644 --- a/builtin/mainmenu/tab_settings.lua +++ b/builtin/mainmenu/tab_settings.lua @@ -122,56 +122,6 @@ local function antialiasing_fname_to_name(fname) return 0 end -local function dlg_confirm_reset_formspec(data) - return "size[8,3]" .. - "label[1,1;" .. fgettext("Are you sure to reset your singleplayer world?") .. "]" .. - "button[1,2;2.6,0.5;dlg_reset_singleplayer_confirm;" .. fgettext("Yes") .. "]" .. - "button[4,2;2.8,0.5;dlg_reset_singleplayer_cancel;" .. fgettext("No") .. "]" -end - -local function dlg_confirm_reset_btnhandler(this, fields, dialogdata) - - if fields["dlg_reset_singleplayer_confirm"] ~= nil then - local worldlist = core.get_worlds() - local found_singleplayerworld = false - - for i = 1, #worldlist do - if worldlist[i].name == "singleplayerworld" then - found_singleplayerworld = true - gamedata.worldindex = i - end - end - - if found_singleplayerworld then - core.delete_world(gamedata.worldindex) - end - - core.create_world("singleplayerworld", 1) - worldlist = core.get_worlds() - - for i = 1, #worldlist do - if worldlist[i].name == "singleplayerworld" then - gamedata.worldindex = i - end - end - end - - this.parent:show() - this:hide() - this:delete() - return true -end - -local function showconfirm_reset(tabview) - local new_dlg = dialog_create("reset_spworld", - dlg_confirm_reset_formspec, - dlg_confirm_reset_btnhandler, - nil) - new_dlg:set_parent(tabview) - tabview:hide() - new_dlg:show() -end - local function formspec(tabview, name, tabdata) local tab_string = "box[0,0;3.75,4.5;#999999]" .. @@ -204,30 +154,26 @@ local function formspec(tabview, name, tabdata) "box[8,0;3.75,4.5;#999999]" local video_driver = core.settings:get("video_driver") - local shaders_supported = video_driver == "opengl" - local shaders_enabled = false - if shaders_supported then - shaders_enabled = core.settings:get_bool("enable_shaders") + local shaders_enabled = core.settings:get_bool("enable_shaders") + if video_driver == "opengl" then tab_string = tab_string .. "checkbox[8.25,0;cb_shaders;" .. fgettext("Shaders") .. ";" .. tostring(shaders_enabled) .. "]" + elseif video_driver == "ogles2" then + tab_string = tab_string .. + "checkbox[8.25,0;cb_shaders;" .. fgettext("Shaders (experimental)") .. ";" + .. tostring(shaders_enabled) .. "]" else core.settings:set_bool("enable_shaders", false) + shaders_enabled = false tab_string = tab_string .. "label[8.38,0.2;" .. core.colorize("#888888", fgettext("Shaders (unavailable)")) .. "]" end - if core.settings:get("main_menu_style") == "simple" then - -- 'Reset singleplayer world' only functions with simple menu - tab_string = tab_string .. - "button[8,4.75;3.95,1;btn_reset_singleplayer;" - .. fgettext("Reset singleplayer world") .. "]" - else - tab_string = tab_string .. - "button[8,4.75;3.95,1;btn_change_keys;" - .. fgettext("Change Keys") .. "]" - end + tab_string = tab_string .. + "button[8,4.75;3.95,1;btn_change_keys;" + .. fgettext("Change Keys") .. "]" tab_string = tab_string .. "button[0,4.75;3.95,1;btn_advanced_settings;" @@ -244,35 +190,23 @@ local function formspec(tabview, name, tabdata) if shaders_enabled then tab_string = tab_string .. - "checkbox[8.25,0.5;cb_bumpmapping;" .. fgettext("Bump Mapping") .. ";" - .. dump(core.settings:get_bool("enable_bumpmapping")) .. "]" .. - "checkbox[8.25,1;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";" + "checkbox[8.25,0.5;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";" .. dump(core.settings:get_bool("tone_mapping")) .. "]" .. - "checkbox[8.25,1.5;cb_generate_normalmaps;" .. fgettext("Generate Normal Maps") .. ";" - .. dump(core.settings:get_bool("generate_normalmaps")) .. "]" .. - "checkbox[8.25,2;cb_parallax;" .. fgettext("Parallax Occlusion") .. ";" - .. dump(core.settings:get_bool("enable_parallax_occlusion")) .. "]" .. - "checkbox[8.25,2.5;cb_waving_water;" .. fgettext("Waving Liquids") .. ";" + "checkbox[8.25,1;cb_waving_water;" .. fgettext("Waving Liquids") .. ";" .. dump(core.settings:get_bool("enable_waving_water")) .. "]" .. - "checkbox[8.25,3;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";" + "checkbox[8.25,1.5;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";" .. dump(core.settings:get_bool("enable_waving_leaves")) .. "]" .. - "checkbox[8.25,3.5;cb_waving_plants;" .. fgettext("Waving Plants") .. ";" + "checkbox[8.25,2;cb_waving_plants;" .. fgettext("Waving Plants") .. ";" .. dump(core.settings:get_bool("enable_waving_plants")) .. "]" else tab_string = tab_string .. "label[8.38,0.7;" .. core.colorize("#888888", - fgettext("Bump Mapping")) .. "]" .. - "label[8.38,1.2;" .. core.colorize("#888888", fgettext("Tone Mapping")) .. "]" .. - "label[8.38,1.7;" .. core.colorize("#888888", - fgettext("Generate Normal Maps")) .. "]" .. - "label[8.38,2.2;" .. core.colorize("#888888", - fgettext("Parallax Occlusion")) .. "]" .. - "label[8.38,2.7;" .. core.colorize("#888888", + "label[8.38,1.2;" .. core.colorize("#888888", fgettext("Waving Liquids")) .. "]" .. - "label[8.38,3.2;" .. core.colorize("#888888", + "label[8.38,1.7;" .. core.colorize("#888888", fgettext("Waving Leaves")) .. "]" .. - "label[8.38,3.7;" .. core.colorize("#888888", + "label[8.38,2.2;" .. core.colorize("#888888", fgettext("Waving Plants")) .. "]" end @@ -324,22 +258,10 @@ local function handle_settings_buttons(this, fields, tabname, tabdata) end return true end - if fields["cb_bumpmapping"] then - core.settings:set("enable_bumpmapping", fields["cb_bumpmapping"]) - return true - end if fields["cb_tonemapping"] then core.settings:set("tone_mapping", fields["cb_tonemapping"]) return true end - if fields["cb_generate_normalmaps"] then - core.settings:set("generate_normalmaps", fields["cb_generate_normalmaps"]) - return true - end - if fields["cb_parallax"] then - core.settings:set("enable_parallax_occlusion", fields["cb_parallax"]) - return true - end if fields["cb_waving_water"] then core.settings:set("enable_waving_water", fields["cb_waving_water"]) return true @@ -359,10 +281,6 @@ local function handle_settings_buttons(this, fields, tabname, tabdata) core.settings:set("touchtarget", fields["cb_touchscreen_target"]) return true end - if fields["btn_reset_singleplayer"] then - showconfirm_reset(this) - return true - end --Note dropdowns have to be handled LAST! local ddhandled = false diff --git a/builtin/mainmenu/tab_simple_main.lua b/builtin/mainmenu/tab_simple_main.lua deleted file mode 100644 index 7ec95158a..000000000 --- a/builtin/mainmenu/tab_simple_main.lua +++ /dev/null @@ -1,220 +0,0 @@ ---Minetest ---Copyright (C) 2013 sapier --- ---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. - --------------------------------------------------------------------------------- -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 = menudata.favorites[tabdata.fav_selected] - - local retval = - "label[9.5,0;".. fgettext("Name / Password") .. "]" .. - "field[0.25,3.35;5.5,0.5;te_address;;" .. - core.formspec_escape(core.settings:get("address")) .."]" .. - "field[5.75,3.35;2.25,0.5;te_port;;" .. - core.formspec_escape(core.settings:get("remote_port")) .."]" .. - "button[10,2.6;2,1.5;btn_mp_connect;".. fgettext("Connect") .. "]" .. - "field[9.8,1;2.6,0.5;te_name;;" .. - core.formspec_escape(core.settings:get("name")) .."]" .. - "pwdfield[9.8,2;2.6,0.5;te_pwd;]" - - - if tabdata.fav_selected and fav_selected then - if gamedata.fav then - retval = retval .. "button[7.7,2.6;2.3,1.5;btn_delete_favorite;" .. - fgettext("Del. Favorite") .. "]" - end - end - - 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;" .. - image_column(fgettext("PvP enabled"), "pvp") .. ",padding=0.25;" .. - "color,span=1;" .. - "text,padding=1]" .. -- name - "table[-0.05,0;9.2,2.75;favourites;" - - if #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 .. "]" - else - retval = retval .. ";0]" - end - - -- separator - retval = retval .. "box[-0.28,3.75;12.4,0.1;#FFFFFF]" - - -- checkboxes - retval = retval .. - "checkbox[8.0,3.9;cb_creative;".. fgettext("Creative Mode") .. ";" .. - dump(core.settings:get_bool("creative_mode")) .. "]".. - "checkbox[8.0,4.4;cb_damage;".. fgettext("Enable Damage") .. ";" .. - dump(core.settings:get_bool("enable_damage")) .. "]" - -- buttons - retval = retval .. - "button[0,3.7;8,1.5;btn_start_singleplayer;" .. fgettext("Start Singleplayer") .. "]" .. - "button[0,4.5;8,1.5;btn_config_sp_world;" .. fgettext("Config mods") .. "]" - - return retval -end - --------------------------------------------------------------------------------- -local function main_button_handler(tabview, fields, name, tabdata) - if fields.btn_start_singleplayer then - gamedata.selected_world = gamedata.worldindex - gamedata.singleplayer = true - core.start() - return true - end - - if fields.favourites then - local event = core.explode_table_event(fields.favourites) - if event.type == "CHG" then - if event.row <= #menudata.favorites then - gamedata.fav = false - local favs = core.get_favorites("local") - local fav = menudata.favorites[event.row] - 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 - end - return true - end - end - - if fields.btn_delete_favorite then - local current_favourite = core.get_table_index("favourites") - if not current_favourite then return end - - core.delete_favorite(current_favourite) - asyncOnlineFavourites() - tabdata.fav_selected = nil - - core.settings:set("address", "") - core.settings:set("remote_port", "30000") - return true - end - - if fields.cb_creative then - core.settings:set("creative_mode", fields.cb_creative) - return true - end - - if fields.cb_damage then - core.settings:set("enable_damage", fields.cb_damage) - return true - end - - if fields.btn_mp_connect or fields.key_enter then - gamedata.playername = fields.te_name - gamedata.password = fields.te_pwd - gamedata.address = fields.te_address - gamedata.port = fields.te_port - local fav_idx = core.get_textlist_index("favourites") - - if fav_idx and fav_idx <= #menudata.favorites and - menudata.favorites[fav_idx].address == fields.te_address and - menudata.favorites[fav_idx].port == fields.te_port then - local fav = menudata.favorites[fav_idx] - gamedata.servername = fav.name - gamedata.serverdescription = fav.description - - if menudata.favorites_is_public and - not is_server_protocol_compat_or_error( - fav.proto_min, fav.proto_max) then - return true - end - else - gamedata.servername = "" - gamedata.serverdescription = "" - end - - gamedata.selected_world = 0 - - core.settings:set("address", fields.te_address) - core.settings:set("remote_port", fields.te_port) - - core.start() - return true - end - - if fields.btn_config_sp_world then - local configdialog = create_configure_world_dlg(1) - if configdialog then - configdialog:set_parent(tabview) - tabview:hide() - configdialog:show() - end - return true - end -end - --------------------------------------------------------------------------------- -local function on_activate(type,old_tab,new_tab) - if type == "LEAVE" then return end - asyncOnlineFavourites() -end - --------------------------------------------------------------------------------- -return { - name = "main", - caption = fgettext("Main"), - cbf_formspec = get_formspec, - cbf_button_handler = main_button_handler, - on_change = on_activate -} 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/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/settingtypes.txt b/builtin/settingtypes.txt index c787aea2c..f800f71ab 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -110,9 +110,9 @@ doubletap_jump (Double tap jump for fly) bool false # enabled. always_fly_fast (Always fly and fast) bool true -# The time in seconds it takes between repeated right clicks when holding the right -# mouse button. -repeat_rightclick_time (Rightclick repetition interval) float 0.25 0.001 +# The time in seconds it takes between repeated node placements when holding +# the place button. +repeat_place_time (Place repetition interval) float 0.25 0.001 # Automatically jump up single-node obstacles. autojump (Automatic jumping) 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 @@ -182,6 +185,14 @@ keymap_jump (Jump key) key KEY_SPACE # See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 keymap_sneak (Sneak key) key KEY_LSHIFT +# Key for digging. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +keymap_dig (Dig key) key KEY_LBUTTON + +# Key for placing. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +keymap_place (Place key) key KEY_RBUTTON + # Key for opening the inventory. # See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 keymap_inventory (Inventory key) key KEY_KEY_I @@ -440,6 +451,10 @@ keymap_decrease_viewing_range_min (View range decrease key) key - [**Basic] +# Whether nametag backgrounds should be shown by default. +# Mods may still set a background. +show_nametag_backgrounds (Show nametag backgrounds by default) bool true + # Enable vertex buffer objects. # This should greatly improve graphics performance. enable_vbo (VBO) bool true @@ -505,8 +520,13 @@ texture_clean_transparent (Clean transparent textures) bool false # texture autoscaling. texture_min_size (Minimum texture size) int 64 -# Experimental option, might cause visible spaces between blocks -# when set to higher number than 0. +# Use multi-sample antialiasing (MSAA) to smooth out block edges. +# This algorithm smooths out the 3D viewport while keeping the image sharp, +# but it doesn't affect the insides of textures +# (which is especially noticeable with transparent textures). +# 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 # Undersampling is similar to using a lower screen resolution, but it applies @@ -533,43 +553,6 @@ shader_path (Shader path) path # enhanced, highlights and shadows are gradually compressed. tone_mapping (Filmic tone mapping) bool false -[***Bumpmapping] - -# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack -# or need to be auto-generated. -# Requires shaders to be enabled. -enable_bumpmapping (Bumpmapping) bool false - -# Enables on the fly normalmap generation (Emboss effect). -# Requires bumpmapping to be enabled. -generate_normalmaps (Generate normalmaps) bool false - -# Strength of generated normalmaps. -normalmaps_strength (Normalmaps strength) float 0.6 - -# Defines sampling step of texture. -# A higher value results in smoother normal maps. -normalmaps_smooth (Normalmaps sampling) int 0 0 2 - -[***Parallax Occlusion] - -# Enables parallax occlusion mapping. -# Requires shaders to be enabled. -enable_parallax_occlusion (Parallax occlusion) bool false - -# 0 = parallax occlusion with slope information (faster). -# 1 = relief mapping (slower, more accurate). -parallax_occlusion_mode (Parallax occlusion mode) int 1 0 1 - -# Number of parallax occlusion iterations. -parallax_occlusion_iterations (Parallax occlusion iterations) int 4 - -# Overall scale of parallax occlusion effect. -parallax_occlusion_scale (Parallax occlusion scale) float 0.08 - -# Overall bias of parallax occlusion effect, usually scale/2. -parallax_occlusion_bias (Parallax occlusion bias) float 0.04 - [***Waving Nodes] # Set to true to enable waving liquids (like water). @@ -610,15 +593,15 @@ arm_inertia (Arm inertia) bool true # to not waste CPU power for no benefit. fps_max (Maximum FPS) int 60 1 -# Maximum FPS when game is paused. -pause_fps_max (FPS in pause menu) int 20 1 +# Maximum FPS when the window is not focused, or when the game is paused. +fps_max_unfocused (FPS when unfocused or paused) int 20 1 # Open the pause menu when the window's focus is lost. Does not pause if a formspec is # open. pause_on_lost_focus (Pause on lost window focus) bool false # View distance in nodes. -viewing_range (Viewing range) int 100 20 4000 +viewing_range (Viewing range) int 190 20 4000 # Camera 'near clipping plane' distance in nodes, between 0 and 0.25 # Only works on GLES platforms. Most users will not need to change this. @@ -682,8 +665,8 @@ texture_path (Texture path) path # The rendering back-end for Irrlicht. # A restart is required after changing this. # Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise. -# On other platforms, OpenGL is recommended, and it’s the only driver with -# shader support currently. +# On other platforms, OpenGL is recommended. +# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental) video_driver (Video driver) enum opengl null,software,burningsvideo,direct3d8,direct3d9,opengl,ogles1,ogles2 # Radius of cloud area stated in number of 64 node cloud squares. @@ -741,9 +724,11 @@ selectionbox_color (Selection box color) string (0,0,0) selectionbox_width (Selection box width) int 2 1 5 # Crosshair color (R,G,B). +# Also controls the object crosshair color crosshair_color (Crosshair color) string (255,255,255) # Crosshair alpha (opaqueness, between 0 and 255). +# Also controls the object crosshair color crosshair_alpha (Crosshair alpha) int 255 0 255 # Maximum number of recent chat messages to show @@ -817,7 +802,8 @@ world_aligned_mode (World-aligned textures mode) enum enable disable,enable,forc autoscale_mode (Autoscaling mode) enum disable disable,enable,force # Show entity selection boxes -show_entity_selectionbox (Show entity selection boxes) bool true +# A restart is required after changing this. +show_entity_selectionbox (Show entity selection boxes) bool false [*Menus] @@ -982,7 +968,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. @@ -999,7 +985,7 @@ client_unload_unused_data_timeout (Mapblock unload timeout) int 600 # Maximum number of mapblocks for client to be kept in memory. # Set to -1 for unlimited amount. -client_mapblock_limit (Mapblock limit) int 5000 +client_mapblock_limit (Mapblock limit) int 7500 # Whether to show the client debug info (has the same effect as hitting F5). show_debug (Show debug info) bool false @@ -1069,6 +1055,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. @@ -1096,7 +1089,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. @@ -1158,17 +1151,17 @@ ask_reconnect_on_crash (Ask to reconnect after crash) bool false # Setting this larger than active_block_range will also cause the server # to maintain active objects up to this distance in the direction the # player is looking. (This can avoid mobs suddenly disappearing from view) -active_object_send_range_blocks (Active object send range) int 4 +active_object_send_range_blocks (Active object send range) int 8 # The radius of the volume of blocks around every player that is subject to the # active block stuff, stated in mapblocks (16 nodes). # In active blocks objects are loaded and ABMs run. # This is also the minimum range in which active objects (mobs) are maintained. # This should be configured together with active_object_send_range_blocks. -active_block_range (Active block range) int 3 +active_block_range (Active block range) int 4 # From how far blocks are sent to clients, stated in mapblocks (16 nodes). -max_block_send_distance (Max block send distance) int 10 +max_block_send_distance (Max block send distance) int 12 # Maximum number of forceloaded mapblocks. max_forceloaded_blocks (Maximum forceloaded blocks) int 16 @@ -1241,10 +1234,10 @@ movement_gravity (Gravity) float 9.81 [**Advanced] # Handling for deprecated Lua API calls: -# - legacy: (try to) mimic old behaviour (default for release). -# - log: mimic and log backtrace of deprecated call (default for debug). +# - none: Do not log deprecated calls +# - log: mimic and log backtrace of deprecated call (default). # - error: abort on usage of deprecated call (suggested for mod developers). -deprecated_lua_api_handling (Deprecated Lua API handling) enum legacy legacy,log,error +deprecated_lua_api_handling (Deprecated Lua API handling) enum log none,log,error # Number of extra blocks that can be loaded by /clearobjects at once. # This is a trade-off between sqlite transaction overhead and @@ -1261,6 +1254,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 @@ -1271,6 +1271,10 @@ active_block_mgmt_interval (Active block management interval) float 2.0 # Length of time between Active Block Modifier (ABM) execution cycles abm_interval (ABM interval) float 1.0 +# The time budget allowed for ABMs to execute on each step +# (as a fraction of the ABM Interval) +abm_time_budget (ABM time budget) float 0.2 0.1 0.9 + # Length of time between NodeTimer execution cycles nodetimer_interval (NodeTimer interval) float 0.2 @@ -1431,12 +1435,6 @@ curl_file_download_timeout (cURL file download timeout) int 300000 # Makes DirectX work with LuaJIT. Disable if it causes troubles. high_precision_fpu (High-precision FPU) bool 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. -main_menu_style (Main menu style) enum full full,simple - # Replaces the default main menu with a custom one. main_menu_script (Main menu script) string @@ -1456,7 +1454,7 @@ mg_name (Mapgen name) enum v7 v7,valleys,carpathian,v5,flat,fractal,singlenode,v water_level (Water level) int 1 # From how far blocks are generated for clients, stated in mapblocks (16 nodes). -max_block_generate_distance (Max block generate distance) int 8 +max_block_generate_distance (Max block generate distance) int 10 # Limit of map generation, in nodes, in all 6 directions from (0, 0, 0). # Only mapchunks completely within the mapgen limit are generated. @@ -1466,7 +1464,7 @@ mapgen_limit (Map generation limit) int 31000 0 31000 # 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. -mg_flags (Mapgen flags) flags caves,dungeons,light,decorations,biomes caves,dungeons,light,decorations,biomes,nocaves,nodungeons,nolight,nodecorations,nobiomes +mg_flags (Mapgen flags) flags caves,dungeons,light,decorations,biomes,ores caves,dungeons,light,decorations,biomes,ores,nocaves,nodungeons,nolight,nodecorations,nobiomes,noores [*Biome API temperature and humidity noise parameters] @@ -1857,7 +1855,7 @@ mgcarpathian_np_dungeons (Dungeon noise) noise_params_3d 0.9, 0.5, (500, 500, 50 # Map generation attributes specific to Mapgen Flat. # Occasional lakes and hills can be added to the flat world. -mgflat_spflags (Mapgen Flat specific flags) flags nolakes,nohills lakes,hills,nolakes,nohills +mgflat_spflags (Mapgen Flat specific flags) flags nolakes,nohills,nocaverns lakes,hills,caverns,nolakes,nohills,nocaverns # Y of flat ground. mgflat_ground_level (Ground level) int 8 @@ -1901,6 +1899,15 @@ mgflat_hill_threshold (Hill threshold) float 0.45 # Controls steepness/height of hills. mgflat_hill_steepness (Hill steepness) float 64.0 +# Y-level of cavern upper limit. +mgflat_cavern_limit (Cavern limit) int -256 + +# Y-distance over which caverns expand to full size. +mgflat_cavern_taper (Cavern taper) int 256 + +# Defines full size of caverns, smaller values create larger caverns. +mgflat_cavern_threshold (Cavern threshold) float 0.7 + # Lower Y limit of dungeons. mgflat_dungeon_ymin (Dungeon minimum Y) int -31000 @@ -1921,6 +1928,9 @@ mgflat_np_cave1 (Cave1 noise) noise_params_3d 0, 12, (61, 61, 61), 52534, 3, 0.5 # Second of two 3D noises that together define tunnels. mgflat_np_cave2 (Cave2 noise) noise_params_3d 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 +# 3D noise defining giant caverns. +mgflat_np_cavern (Cavern noise) noise_params_3d 0, 1, (384, 128, 384), 723, 5, 0.63, 2.0 + # 3D noise that determines number of dungeons per mapchunk. mgflat_np_dungeons (Dungeon noise) noise_params_3d 0.9, 0.5, (500, 500, 500), 0, 2, 0.8, 2.0 @@ -2163,15 +2173,15 @@ chunksize (Chunk size) int 5 enable_mapgen_debug_info (Mapgen debug) bool false # Maximum number of blocks that can be queued for loading. -emergequeue_limit_total (Absolute limit of queued blocks to emerge) int 512 +emergequeue_limit_total (Absolute limit of queued blocks to emerge) int 1024 # Maximum number of blocks to be queued that are to be loaded from file. # This limit is enforced per player. -emergequeue_limit_diskonly (Per-player limit of queued blocks load from disk) int 64 +emergequeue_limit_diskonly (Per-player limit of queued blocks load from disk) int 128 # Maximum number of blocks to be queued that are to be generated. # This limit is enforced per player. -emergequeue_limit_generate (Per-player limit of queued blocks to generate) int 64 +emergequeue_limit_generate (Per-player limit of queued blocks to generate) int 128 # Number of emerge threads to use. # Value 0: @@ -2197,3 +2207,7 @@ contentdb_url (ContentDB URL) string https://content.minetest.net # These flags are independent from Minetest versions, # so see a full list at https://content.minetest.net/help/content_flags/ contentdb_flag_blacklist (ContentDB Flag Blacklist) string nonfree, desktop_default + +# Maximum number of concurrent downloads. Downloads exceeding this limit will be queued. +# This should be lower than curl_parallel_limit. +contentdb_max_concurrent_downloads (ContentDB Max Concurrent Downloads) int 3 diff --git a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl index 25945ad7f..7cba61b39 100644 --- a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl +++ b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl @@ -6,9 +6,11 @@ uniform sampler2D textureFlags; #define rightImage normalTexture #define maskImage textureFlags +varying mediump vec2 varTexCoord; + void main(void) { - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; vec4 left = texture2D(leftImage, uv).rgba; vec4 right = texture2D(rightImage, uv).rgba; vec4 mask = texture2D(maskImage, uv).rgba; diff --git a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl index 4e0b2b125..860049481 100644 --- a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl +++ b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl @@ -1,6 +1,7 @@ +varying mediump vec2 varTexCoord; + void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = gl_Vertex; - gl_FrontColor = gl_BackColor = gl_Color; + varTexCoord = inTexCoord0; + gl_Position = inVertexPosition; } diff --git a/client/shaders/default_shader/opengl_fragment.glsl b/client/shaders/default_shader/opengl_fragment.glsl index 925ab6e1d..5018ac6ea 100644 --- a/client/shaders/default_shader/opengl_fragment.glsl +++ b/client/shaders/default_shader/opengl_fragment.glsl @@ -1,4 +1,6 @@ +varying lowp vec4 varColor; + void main(void) { - gl_FragColor = gl_Color; + gl_FragColor = varColor; } diff --git a/client/shaders/default_shader/opengl_vertex.glsl b/client/shaders/default_shader/opengl_vertex.glsl index d0b16c8b0..d95a3c2d3 100644 --- a/client/shaders/default_shader/opengl_vertex.glsl +++ b/client/shaders/default_shader/opengl_vertex.glsl @@ -1,9 +1,7 @@ -uniform mat4 mWorldViewProj; +varying lowp vec4 varColor; void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; - - gl_FrontColor = gl_BackColor = gl_Color; + gl_Position = mWorldViewProj * inVertexPosition; + varColor = inVertexColor; } diff --git a/client/shaders/minimap_shader/opengl_fragment.glsl b/client/shaders/minimap_shader/opengl_fragment.glsl index fa4f9cb1a..cef359e8a 100644 --- a/client/shaders/minimap_shader/opengl_fragment.glsl +++ b/client/shaders/minimap_shader/opengl_fragment.glsl @@ -2,9 +2,12 @@ uniform sampler2D baseTexture; uniform sampler2D normalTexture; uniform vec3 yawVec; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; + void main (void) { - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; //texture sampling rate const float step = 1.0 / 256.0; @@ -27,6 +30,6 @@ void main (void) vec3 color = (1.1 * diffuse + 0.05 * height + 0.5 * specular) * base.rgb; vec4 col = vec4(color.rgb, base.a); - col *= gl_Color; + col *= varColor; gl_FragColor = vec4(col.rgb, base.a); } diff --git a/client/shaders/minimap_shader/opengl_vertex.glsl b/client/shaders/minimap_shader/opengl_vertex.glsl index 88f9356d5..1a9491805 100644 --- a/client/shaders/minimap_shader/opengl_vertex.glsl +++ b/client/shaders/minimap_shader/opengl_vertex.glsl @@ -1,9 +1,11 @@ -uniform mat4 mWorldViewProj; uniform mat4 mWorld; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; + void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; - gl_FrontColor = gl_BackColor = gl_Color; + varTexCoord = inTexCoord0.st; + gl_Position = mWorldViewProj * inVertexPosition; + varColor = inVertexColor; } diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl index 19e6c2d86..b58095063 100644 --- a/client/shaders/nodes_shader/opengl_fragment.glsl +++ b/client/shaders/nodes_shader/opengl_fragment.glsl @@ -1,6 +1,4 @@ uniform sampler2D baseTexture; -uniform sampler2D normalTexture; -uniform sampler2D textureFlags; uniform vec4 skyBgColor; uniform float fogDistance; @@ -17,21 +15,18 @@ varying vec3 vPosition; // cameraOffset + worldPosition (for large coordinates the limits of float // precision must be considered). varying vec3 worldPosition; -varying float area_enable_parallax; - +varying lowp vec4 varColor; +#ifdef GL_ES +varying mediump vec2 varTexCoord; +#else +centroid varying vec2 varTexCoord; +#endif varying vec3 eyeVec; -varying vec3 tsEyeVec; -varying vec3 lightVec; -varying vec3 tsLightVec; -bool normalTexturePresent = false; - -const float e = 2.718281828459; -const float BS = 10.0; const float fogStart = FOG_START; -const float fogShadingParameter = 1 / ( 1 - fogStart); +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; @@ -55,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; @@ -63,150 +58,26 @@ vec4 applyToneMapping(vec4 color) } #endif -void get_texture_flags() -{ - vec4 flags = texture2D(textureFlags, vec2(0.0, 0.0)); - if (flags.r > 0.5) { - normalTexturePresent = true; - } -} - -float intensity(vec3 color) -{ - return (color.r + color.g + color.b) / 3.0; -} - -float get_rgb_height(vec2 uv) -{ - return intensity(texture2D(baseTexture, uv).rgb); -} - -vec4 get_normal_map(vec2 uv) -{ - vec4 bump = texture2D(normalTexture, uv).rgba; - bump.xyz = normalize(bump.xyz * 2.0 - 1.0); - return bump; -} - -float find_intersection(vec2 dp, vec2 ds) -{ - float depth = 1.0; - float best_depth = 0.0; - float size = 0.0625; - for (int i = 0; i < 15; i++) { - depth -= size; - float h = texture2D(normalTexture, dp + ds * depth).a; - if (depth <= h) { - best_depth = depth; - break; - } - } - depth = best_depth; - for (int i = 0; i < 4; i++) { - size *= 0.5; - float h = texture2D(normalTexture,dp + ds * depth).a; - if (depth <= h) { - best_depth = depth; - depth += size; - } else { - depth -= size; - } - } - return best_depth; -} - -float find_intersectionRGB(vec2 dp, vec2 ds) -{ - const float depth_step = 1.0 / 24.0; - float depth = 1.0; - for (int i = 0 ; i < 24 ; i++) { - float h = get_rgb_height(dp + ds * depth); - if (h >= depth) - break; - depth -= depth_step; - } - return depth; -} - void main(void) { vec3 color; - vec4 bump; - vec2 uv = gl_TexCoord[0].st; - bool use_normalmap = false; - get_texture_flags(); - -#ifdef ENABLE_PARALLAX_OCCLUSION - vec2 eyeRay = vec2 (tsEyeVec.x, -tsEyeVec.y); - const float scale = PARALLAX_OCCLUSION_SCALE / PARALLAX_OCCLUSION_ITERATIONS; - const float bias = PARALLAX_OCCLUSION_BIAS / PARALLAX_OCCLUSION_ITERATIONS; + vec2 uv = varTexCoord.st; -#if PARALLAX_OCCLUSION_MODE == 0 - // Parallax occlusion with slope information - if (normalTexturePresent && area_enable_parallax > 0.0) { - for (int i = 0; i < PARALLAX_OCCLUSION_ITERATIONS; i++) { - vec4 normal = texture2D(normalTexture, uv.xy); - float h = normal.a * scale - bias; - uv += h * normal.z * eyeRay; - } -#endif - -#if PARALLAX_OCCLUSION_MODE == 1 - // Relief mapping - if (normalTexturePresent && area_enable_parallax > 0.0) { - vec2 ds = eyeRay * PARALLAX_OCCLUSION_SCALE; - float dist = find_intersection(uv, ds); - uv += dist * ds; -#endif - } else if (GENERATE_NORMALMAPS == 1 && area_enable_parallax > 0.0) { - vec2 ds = eyeRay * PARALLAX_OCCLUSION_SCALE; - float dist = find_intersectionRGB(uv, ds); - uv += dist * ds; - } -#endif - -#if USE_NORMALMAPS == 1 - if (normalTexturePresent) { - bump = get_normal_map(uv); - use_normalmap = true; - } -#endif - -#if GENERATE_NORMALMAPS == 1 - if (normalTexturePresent == false) { - float tl = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y + SAMPLE_STEP)); - float t = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y - SAMPLE_STEP)); - float tr = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y + SAMPLE_STEP)); - float r = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y)); - float br = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y - SAMPLE_STEP)); - float b = get_rgb_height(vec2(uv.x, uv.y - SAMPLE_STEP)); - float bl = get_rgb_height(vec2(uv.x -SAMPLE_STEP, uv.y - SAMPLE_STEP)); - float l = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y)); - float dX = (tr + 2.0 * r + br) - (tl + 2.0 * l + bl); - float dY = (bl + 2.0 * b + br) - (tl + 2.0 * t + tr); - bump = vec4(normalize(vec3 (dX, dY, NORMALMAPS_STRENGTH)), 1.0); - use_normalmap = true; + vec4 base = texture2D(baseTexture, uv).rgba; +#ifdef USE_DISCARD + // If alpha is zero, we can just discard the pixel. This fixes transparency + // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa, + // and also on GLES 2, where GL_ALPHA_TEST is missing entirely. + if (base.a == 0.0) { + discard; } #endif - vec4 base = texture2D(baseTexture, uv).rgba; -#ifdef ENABLE_BUMPMAPPING - if (use_normalmap) { - vec3 L = normalize(lightVec); - vec3 E = normalize(eyeVec); - float specular = pow(clamp(dot(reflect(L, bump.xyz), E), 0.0, 1.0), 1.0); - float diffuse = dot(-E,bump.xyz); - color = (diffuse + 0.1 * specular) * base.rgb; - } else { - color = base.rgb; - } -#else color = base.rgb; -#endif - vec4 col = vec4(color.rgb * gl_Color.rgb, 1.0); - -#ifdef ENABLE_TONE_MAPPING + vec4 col = vec4(color.rgb * varColor.rgb, 1.0); + +#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 0d8d0a2a5..c68df4a8e 100644 --- a/client/shaders/nodes_shader/opengl_vertex.glsl +++ b/client/shaders/nodes_shader/opengl_vertex.glsl @@ -1,4 +1,3 @@ -uniform mat4 mWorldViewProj; uniform mat4 mWorld; // Color of the light emitted by the sun. @@ -16,12 +15,16 @@ varying vec3 vPosition; // cameraOffset + worldPosition (for large coordinates the limits of float // 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; -varying vec3 lightVec; -varying vec3 tsEyeVec; -varying vec3 tsLightVec; -varying float area_enable_parallax; // Color of the light emitted by the light sources. const vec3 artificialLight = vec3(1.04, 1.04, 1.04); @@ -85,25 +88,13 @@ float snoise(vec3 p) void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - //TODO: make offset depending on view angle and parallax uv displacement - //thats for textures that doesnt align vertically, like dirt with grass - //gl_TexCoord[0].y += 0.008; - - //Allow parallax/relief mapping only for certain kind of nodes - //Variable is also used to control area of the effect -#if (DRAW_TYPE == NDT_NORMAL || DRAW_TYPE == NDT_LIQUID || DRAW_TYPE == NDT_FLOWINGLIQUID) - area_enable_parallax = 1.0; -#else - area_enable_parallax = 0.0; -#endif - + varTexCoord = inTexCoord0.st; -float disp_x; -float disp_z; + float disp_x; + float disp_z; // OpenGL < 4.3 does not support continued preprocessor lines #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES) || (MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS) - vec4 pos2 = mWorld * gl_Vertex; + vec4 pos2 = mWorld * inVertexPosition; float tOffset = (pos2.x + pos2.y) * 0.001 + pos2.z * 0.002; disp_x = (smoothTriangleWave(animationTimer * 23.0 + tOffset) + smoothTriangleWave(animationTimer * 11.0 + tOffset)) * 0.4; @@ -112,68 +103,43 @@ float disp_z; smoothTriangleWave(animationTimer * 13.0 + tOffset)) * 0.5; #endif - worldPosition = (mWorld * gl_Vertex).xyz; + worldPosition = (mWorld * inVertexPosition).xyz; // OpenGL < 4.3 does not support continued preprocessor lines #if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_OPAQUE || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_BASIC) && ENABLE_WAVING_WATER // Generate waves with Perlin-type noise. // The constants are calibrated such that they roughly // correspond to the old sine waves. - vec4 pos = gl_Vertex; + vec4 pos = inVertexPosition; vec3 wavePos = worldPosition + cameraOffset; // The waves are slightly compressed along the z-axis to get // wave-fronts along the x-axis. - wavePos.x /= WATER_WAVE_LENGTH * 3; - wavePos.z /= WATER_WAVE_LENGTH * 2; - wavePos.z += animationTimer * WATER_WAVE_SPEED * 10; - pos.y += (snoise(wavePos) - 1) * WATER_WAVE_HEIGHT * 5; + wavePos.x /= WATER_WAVE_LENGTH * 3.0; + wavePos.z /= WATER_WAVE_LENGTH * 2.0; + wavePos.z += animationTimer * WATER_WAVE_SPEED * 10.0; + pos.y += (snoise(wavePos) - 1.0) * WATER_WAVE_HEIGHT * 5.0; gl_Position = mWorldViewProj * pos; #elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES - vec4 pos = gl_Vertex; + vec4 pos = inVertexPosition; pos.x += disp_x; pos.y += disp_z * 0.1; pos.z += disp_z; gl_Position = mWorldViewProj * pos; #elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS - vec4 pos = gl_Vertex; - if (gl_TexCoord[0].y < 0.05) { + vec4 pos = inVertexPosition; + if (varTexCoord.y < 0.05) { pos.x += disp_x; pos.z += disp_z; } gl_Position = mWorldViewProj * pos; #else - gl_Position = mWorldViewProj * gl_Vertex; + gl_Position = mWorldViewProj * inVertexPosition; #endif vPosition = gl_Position.xyz; - // Don't generate heightmaps when too far from the eye - float dist = distance (vec3(0.0, 0.0, 0.0), vPosition); - if (dist > 150.0) { - area_enable_parallax = 0.0; - } - - vec3 sunPosition = vec3 (0.0, eyePosition.y * BS + 900.0, 0.0); - - vec3 normal, tangent, binormal; - normal = normalize(gl_NormalMatrix * gl_Normal); - tangent = normalize(gl_NormalMatrix * gl_MultiTexCoord1.xyz); - binormal = normalize(gl_NormalMatrix * gl_MultiTexCoord2.xyz); - - vec3 v; - - lightVec = sunPosition - worldPosition; - v.x = dot(lightVec, tangent); - v.y = dot(lightVec, binormal); - v.z = dot(lightVec, normal); - tsLightVec = normalize (v); - - eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz; - v.x = dot(eyeVec, tangent); - v.y = dot(eyeVec, binormal); - v.z = dot(eyeVec, normal); - tsEyeVec = normalize (v); + eyeVec = -(mWorldView * inVertexPosition).xyz; // Calculate color. // Red, green and blue components are pre-multiplied with @@ -182,16 +148,16 @@ float disp_z; // The pre-baked colors are halved to prevent overflow. vec4 color; // The alpha gives the ratio of sunlight in the incoming light. - float nightRatio = 1 - gl_Color.a; - color.rgb = gl_Color.rgb * (gl_Color.a * dayLight.rgb + - nightRatio * artificialLight.rgb) * 2; - color.a = 1; + float nightRatio = 1.0 - inVertexColor.a; + color.rgb = inVertexColor.rgb * (inVertexColor.a * dayLight.rgb + + nightRatio * artificialLight.rgb) * 2.0; + color.a = 1.0; // Emphase blue a bit in darker places // See C++ implementation in mapblock_mesh.cpp final_color_blend() - float brightness = (color.r + color.g + color.b) / 3; + float brightness = (color.r + color.g + color.b) / 3.0; color.b += max(0.0, 0.021 - abs(0.2 * brightness - 0.021) + 0.07 * brightness); - gl_FrontColor = gl_BackColor = clamp(color, 0.0, 1.0); + varColor = clamp(color, 0.0, 1.0); } diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index 0534dc049..9a81d8185 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -1,6 +1,4 @@ uniform sampler2D baseTexture; -uniform sampler2D normalTexture; -uniform sampler2D textureFlags; uniform vec4 emissiveColor; uniform vec4 skyBgColor; @@ -10,22 +8,22 @@ uniform vec3 eyePosition; 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 vec3 lightVec; varying float vIDiff; -bool normalTexturePresent = false; -bool texTileableHorizontal = false; -bool texTileableVertical = false; -bool texSeamless = false; - const float e = 2.718281828459; const float BS = 10.0; const float fogStart = FOG_START; -const float fogShadingParameter = 1 / ( 1 - fogStart); +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; @@ -49,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; @@ -57,99 +55,31 @@ vec4 applyToneMapping(vec4 color) } #endif -void get_texture_flags() -{ - vec4 flags = texture2D(textureFlags, vec2(0.0, 0.0)); - if (flags.r > 0.5) { - normalTexturePresent = true; - } - if (flags.g > 0.5) { - texTileableHorizontal = true; - } - if (flags.b > 0.5) { - texTileableVertical = true; - } - if (texTileableHorizontal && texTileableVertical) { - texSeamless = true; - } -} - -float intensity(vec3 color) -{ - return (color.r + color.g + color.b) / 3.0; -} - -float get_rgb_height(vec2 uv) -{ - if (texSeamless) { - return intensity(texture2D(baseTexture, uv).rgb); - } else { - return intensity(texture2D(baseTexture, clamp(uv, 0.0, 0.999)).rgb); - } -} - -vec4 get_normal_map(vec2 uv) -{ - vec4 bump = texture2D(normalTexture, uv).rgba; - bump.xyz = normalize(bump.xyz * 2.0 - 1.0); - return bump; -} - void main(void) { vec3 color; - vec4 bump; - vec2 uv = gl_TexCoord[0].st; - bool use_normalmap = false; - get_texture_flags(); - -#if USE_NORMALMAPS == 1 - if (normalTexturePresent) { - bump = get_normal_map(uv); - use_normalmap = true; - } -#endif - -#if GENERATE_NORMALMAPS == 1 - if (normalTexturePresent == false) { - float tl = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y + SAMPLE_STEP)); - float t = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y - SAMPLE_STEP)); - float tr = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y + SAMPLE_STEP)); - float r = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y)); - float br = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y - SAMPLE_STEP)); - float b = get_rgb_height(vec2(uv.x, uv.y - SAMPLE_STEP)); - float bl = get_rgb_height(vec2(uv.x -SAMPLE_STEP, uv.y - SAMPLE_STEP)); - float l = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y)); - float dX = (tr + 2.0 * r + br) - (tl + 2.0 * l + bl); - float dY = (bl + 2.0 * b + br) - (tl + 2.0 * t + tr); - bump = vec4(normalize(vec3 (dX, dY, NORMALMAPS_STRENGTH)), 1.0); - use_normalmap = true; - } -#endif + vec2 uv = varTexCoord.st; vec4 base = texture2D(baseTexture, uv).rgba; -#ifdef ENABLE_BUMPMAPPING - if (use_normalmap) { - vec3 L = normalize(lightVec); - vec3 E = normalize(eyeVec); - float specular = pow(clamp(dot(reflect(L, bump.xyz), E), 0.0, 1.0), 1.0); - float diffuse = dot(-E,bump.xyz); - color = (diffuse + 0.1 * specular) * base.rgb; - } else { - color = base.rgb; +#ifdef USE_DISCARD + // If alpha is zero, we can just discard the pixel. This fixes transparency + // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa, + // and also on GLES 2, where GL_ALPHA_TEST is missing entirely. + if (base.a == 0.0) { + discard; } -#else - color = base.rgb; #endif + color = base.rgb; + vec4 col = vec4(color.rgb, base.a); - col.rgb *= gl_Color.rgb; + col.rgb *= varColor.rgb; 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 968a07e22..b4a4d0aaa 100644 --- a/client/shaders/object_shader/opengl_vertex.glsl +++ b/client/shaders/object_shader/opengl_vertex.glsl @@ -1,4 +1,3 @@ -uniform mat4 mWorldViewProj; uniform mat4 mWorld; uniform vec3 eyePosition; @@ -7,9 +6,14 @@ uniform float animationTimer; 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 vec3 lightVec; varying float vIDiff; const float e = 2.718281828459; @@ -19,35 +23,31 @@ float directional_ambient(vec3 normal) { vec3 v = normal * normal; - if (normal.y < 0) - return dot(v, vec3(0.670820f, 0.447213f, 0.836660f)); + if (normal.y < 0.0) + return dot(v, vec3(0.670820, 0.447213, 0.836660)); - return dot(v, vec3(0.670820f, 1.000000f, 0.836660f)); + return dot(v, vec3(0.670820, 1.000000, 0.836660)); } void main(void) { - gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; + varTexCoord = (mTexture * inTexCoord0).st; + gl_Position = mWorldViewProj * inVertexPosition; vPosition = gl_Position.xyz; - vNormal = gl_Normal; - worldPosition = (mWorld * gl_Vertex).xyz; - - vec3 sunPosition = vec3 (0.0, eyePosition.y * BS + 900.0, 0.0); - - lightVec = sunPosition - worldPosition; - eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz; + vNormal = inVertexNormal; + worldPosition = (mWorld * inVertexPosition).xyz; + eyeVec = -(mWorldView * inVertexPosition).xyz; #if (MATERIAL_TYPE == TILE_MATERIAL_PLAIN) || (MATERIAL_TYPE == TILE_MATERIAL_PLAIN_ALPHA) vIDiff = 1.0; #else // This is intentional comparison with zero without any margin. // If normal is not equal to zero exactly, then we assume it's a valid, just not normalized vector - vIDiff = length(gl_Normal) == 0.0 + vIDiff = length(inVertexNormal) == 0.0 ? 1.0 - : directional_ambient(normalize(gl_Normal)); + : directional_ambient(normalize(inVertexNormal)); #endif - gl_FrontColor = gl_BackColor = gl_Color; + varColor = inVertexColor; } diff --git a/client/shaders/selection_shader/opengl_fragment.glsl b/client/shaders/selection_shader/opengl_fragment.glsl index c679d0e12..35b1f8902 100644 --- a/client/shaders/selection_shader/opengl_fragment.glsl +++ b/client/shaders/selection_shader/opengl_fragment.glsl @@ -1,9 +1,12 @@ uniform sampler2D baseTexture; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; + void main(void) { - vec2 uv = gl_TexCoord[0].st; + vec2 uv = varTexCoord.st; vec4 color = texture2D(baseTexture, uv); - color.rgb *= gl_Color.rgb; + color.rgb *= varColor.rgb; gl_FragColor = color; } diff --git a/client/shaders/selection_shader/opengl_vertex.glsl b/client/shaders/selection_shader/opengl_vertex.glsl index d0b16c8b0..9ca87a9cf 100644 --- a/client/shaders/selection_shader/opengl_vertex.glsl +++ b/client/shaders/selection_shader/opengl_vertex.glsl @@ -1,9 +1,10 @@ -uniform mat4 mWorldViewProj; +varying lowp vec4 varColor; +varying mediump vec2 varTexCoord; void main(void) { - gl_TexCoord[0] = gl_MultiTexCoord0; - gl_Position = mWorldViewProj * gl_Vertex; + varTexCoord = inTexCoord0.st; + gl_Position = mWorldViewProj * inVertexPosition; - gl_FrontColor = gl_BackColor = gl_Color; + varColor = inVertexColor; } diff --git a/client/shaders/stars_shader/opengl_fragment.glsl b/client/shaders/stars_shader/opengl_fragment.glsl new file mode 100644 index 000000000..a9ed741bf --- /dev/null +++ b/client/shaders/stars_shader/opengl_fragment.glsl @@ -0,0 +1,6 @@ +uniform vec4 starColor; + +void main(void) +{ + gl_FragColor = starColor; +} diff --git a/client/shaders/stars_shader/opengl_vertex.glsl b/client/shaders/stars_shader/opengl_vertex.glsl new file mode 100644 index 000000000..77c401f34 --- /dev/null +++ b/client/shaders/stars_shader/opengl_vertex.glsl @@ -0,0 +1,4 @@ +void main(void) +{ + gl_Position = mWorldViewProj * inVertexPosition; +} diff --git a/clientmods/preview/init.lua b/clientmods/preview/init.lua index 089955d2f..977ed0ec3 100644 --- a/clientmods/preview/init.lua +++ b/clientmods/preview/init.lua @@ -109,6 +109,10 @@ core.register_on_sending_chat_message(function(message) return false end) +core.register_on_chatcommand(function(command, params) + print("[PREVIEW] caught command '"..command.."'. Parameters: '"..params.."'") +end) + -- This is an example function to ensure it's working properly, should be removed before merge core.register_on_hp_modification(function(hp) print("[PREVIEW] HP modified " .. hp) diff --git a/doc/builtin_entities.txt b/doc/builtin_entities.txt new file mode 100644 index 000000000..be3f73357 --- /dev/null +++ b/doc/builtin_entities.txt @@ -0,0 +1,101 @@ +# Builtin Entities +Minetest registers two entities by default: Falling nodes and dropped items. +This document describes how they behave and what you can do with them. + +## Falling node (`__builtin:falling_node`) + +This entity is created by `minetest.check_for_falling` in place of a node +with the special group `falling_node=1`. Falling nodes can also be created +artificially with `minetest.spawn_falling_node`. + +Needs manual initialization when spawned using `/spawnentity`. + +Default behaviour: + +* Falls down in a straight line (gravity = `movement_gravity` setting) +* Collides with `walkable` node +* Collides with all physical objects except players +* If the node group `float=1` is set, it also collides with liquid nodes +* When it hits a solid (=`walkable`) node, it will try to place itself as a + node, replacing the node above. + * If the falling node cannot replace the destination node, it is dropped. + * If the destination node is a leveled node (`paramtype2="leveled"`) of the + same node name, the levels of both are summed. + +### Entity fields + +* `set_node(self, node[, meta])` + * Function to initialize the falling node + * `node` and `meta` are explained below. + * The `meta` argument is optional. +* `node`: Node table of the node (`name`, `param1`, `param2`) that this + entity represents. Read-only. +* `meta`: Node metadata of the falling node. Will be used when the falling + nodes tries to place itself as a node. Read-only. + +### Rendering / supported nodes + +Falling nodes have visuals to look as close as possible to the original node. +This works for most drawtypes, but there are limitations. + +Supported drawtypes: + +* `normal` +* `signlike` +* `torchlike` +* `nodebox` +* `raillike` +* `glasslike` +* `glasslike_framed` +* `glasslike_framed_optional` +* `allfaces` +* `allfaces_optional` +* `firelike` +* `mesh` +* `fencelike` +* `liquid` +* `airlike` (not pointable) + +Other drawtypes still kinda work, but they might look weird. + +Supported `paramtype2` values: + +* `wallmounted` +* `facedir` +* `colorwallmounted` +* `colorfacedir` +* `color` + +## Dropped item stack (`__builtin:item`) + +This is an item stack in a collectable form. + +Common cases that spawn a dropped item: + +* Item dropped by player +* The root node of a node with the group `attached_node=1` is removed +* `minetest.add_item` is called + +Needs manual initialization when spawned using `/spawnentity`. + +### Behavior + +* Players can collect it by punching +* Lifespan is defined by the setting `item_entity_ttl` +* Slides on `slippery` nodes +* Subject to gravity (uses `movement_gravity` setting) +* Collides with `walkable` nodes +* Does not collide physical objects +* When it's inside a solid (`walkable=true`) node, it tries to escape to a + neighboring non-solid (`walkable=false`) node + +### Entity fields + +* `set_item(self, item)`: + * Function to initialize the dropped item + * `item` (type `ItemStack`) specifies the item to represent +* `age`: Age in seconds. Behaviour according to the setting `item_entity_ttl` +* `itemstring`: Itemstring of the item that this item entity represents. + Read-only. + +Other fields are for internal use only. diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index c9cd8ac93..098596481 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -1,4 +1,4 @@ -Minetest Lua Client Modding API Reference 5.3.0 +Minetest Lua Client Modding API Reference 5.4.0 ================================================ * More information at <http://www.minetest.net/> * Developer Wiki: <http://dev.minetest.net/> @@ -620,7 +620,7 @@ Helper functions * `minetest.is_yes(arg)` * returns whether `arg` can be interpreted as yes * `minetest.is_nan(arg)` - * returns true true when the passed number represents NaN. + * returns true when the passed number represents NaN. * `table.copy(table)`: returns a table * returns a deep copy of `table` @@ -686,6 +686,11 @@ Call these functions only at load time! * Adds definition to minetest.registered_chatcommands * `minetest.unregister_chatcommand(name)` * Unregisters a chatcommands registered with register_chatcommand. +* `minetest.register_on_chatcommand(function(command, params))` + * Called always when a chatcommand is triggered, before `minetest.registered_chatcommands` + is checked to see if that the command exists, but after the input is parsed. + * Return `true` to mark the command as handled, which means that the default + handlers will be prevented. * `minetest.register_on_death(function())` * Called when the local player dies * `minetest.register_on_hp_modification(function(hp))` @@ -768,12 +773,15 @@ Call these functions only at load time! * `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"` * `search_center` is an optional boolean (default: `false`) If true `pos` is also checked for the nodes -* `minetest.find_nodes_in_area(pos1, pos2, nodenames)`: returns a list of - positions. +* `minetest.find_nodes_in_area(pos1, pos2, nodenames, [grouped])` + * `pos1` and `pos2` are the min and max positions of the area to search. * `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"` - * First return value: Table with all node positions - * Second return value: Table with the count of each node with the node name - as index. + * If `grouped` is true the return value is a table indexed by node name + which contains lists of positions. + * If `grouped` is false or absent the return values are as follows: + first value: Table with all node positions + second value: Table with the count of each node with the node name + as index * Area volume is limited to 4,096,000 nodes * `minetest.find_nodes_in_area_under_air(pos1, pos2, nodenames)`: returns a list of positions. @@ -993,6 +1001,7 @@ Please do not try to access the reference until the camera is initialized, other ### LocalPlayer An interface to retrieve information about the player. +This object will only be available after the client is initialized. Earlier accesses will yield a `nil` value. Methods: @@ -1097,8 +1106,8 @@ Methods: aux1 = boolean, sneak = boolean, zoom = boolean, - LMB = boolean, - RMB = boolean, + dig = boolean, + place = boolean, } ``` diff --git a/doc/lua_api.txt b/doc/lua_api.txt index f2a83eca5..d3165b9fd 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -62,12 +62,12 @@ Where `<gameid>` is unique to each game. The game directory can contain the following files: * `game.conf`, with the following keys: - * `name`: Required, human readable name e.g. `name = Minetest` + * `name`: Required, a human readable title to address the game, e.g. `name = Minetest`. * `description`: Short description to be shown in the content tab * `allowed_mapgens = <comma-separated mapgens>` e.g. `allowed_mapgens = v5,v6,flat` - Mapgens not in this list are removed from the list of mapgens for - the game. + Mapgens not in this list are removed from the list of mapgens for the + game. If not specified, all mapgens are allowed. * `disallowed_mapgens = <comma-separated mapgens>` e.g. `disallowed_mapgens = v5,v6,flat` @@ -79,6 +79,10 @@ The game directory can contain the following files: e.g. `disallowed_mapgen_settings = mgv5_spflags` These settings are hidden for this game in the world creation dialog and game start menu. + * `author`: The author of the game. It only appears when downloaded from + ContentDB. + * `release`: Ignore this: Should only ever be set by ContentDB, as it is + an internal ID used to track versions. * `minetest.conf`: Used to set default settings when running this game. * `settingtypes.txt`: @@ -134,9 +138,15 @@ Mods can be put in a subdirectory, if the parent directory, which otherwise should be a mod, contains a file named `modpack.conf`. The file is a key-value store of modpack details. -* `name`: The modpack name. +* `name`: The modpack name. Allows Minetest to determine the modpack name even + if the folder is wrongly named. * `description`: Description of mod to be shown in the Mods tab of the main menu. +* `author`: The author of the modpack. It only appears when downloaded from + ContentDB. +* `release`: Ignore this: Should only ever be set by ContentDB, as it is an + internal ID used to track versions. +* `title`: A human-readable title to address the modpack. Note: to support 0.4.x, please also create an empty modpack.txt file. @@ -152,7 +162,12 @@ Mod directory structure │  ├── models │  ├── textures │  │  ├── modname_stuff.png - │  │  └── modname_something_else.png + │  │  ├── modname_stuff_normal.png + │  │  ├── modname_something_else.png + │  │  ├── subfolder_foo + │  │  │ ├── modname_more_stuff.png + │  │  │ └── another_subfolder + │  │  └── bar_subfolder │  ├── sounds │  ├── media │  ├── locale @@ -176,6 +191,11 @@ A `Settings` file that provides meta information about the mod. loaded before this mod. * `optional_depends`: A comma separated list of optional dependencies. Like a dependency, but no error if the mod doesn't exist. +* `author`: The author of the mod. It only appears when downloaded from + ContentDB. +* `release`: Ignore this: Should only ever be set by ContentDB, as it is an + internal ID used to track versions. +* `title`: A human-readable title to address the mod. Note: to support 0.4.x, please also provide depends.txt. @@ -221,18 +241,23 @@ registered callbacks. `minetest.settings` can be used to read custom or existing settings at load time, if necessary. (See [`Settings`]) -### `models` - -Models for entities or meshnodes. - -### `textures`, `sounds`, `media` +### `textures`, `sounds`, `media`, `models`, `locale` Media files (textures, sounds, whatever) that will be transferred to the -client and will be available for use by the mod. +client and will be available for use by the mod and translation files for +the clients (see [Translations]). + +It is suggested to use the folders for the purpous they are thought for, +eg. put textures into `textures`, translation files into `locale`, +models for entities or meshnodes into `models` et cetera. -### `locale` +These folders and subfolders can contain subfolders. +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. -Translation files for the clients. (See [Translations]) +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 ------------------ @@ -378,11 +403,14 @@ stripping out the file extension: * e.g. `foomod_foothing.png` * e.g. `foomod_foothing` + Texture modifiers ----------------- There are various texture modifiers that can be used -to generate textures on-the-fly. +to let the client generate textures on-the-fly. +The modifiers are applied directly in sRGB colorspace, +i.e. without gamma-correction. ### Texture overlaying @@ -780,7 +808,7 @@ Example (colored grass block): -- Overlay tiles: define them in the same style -- The top and bottom tile does not have overlay overlay_tiles = {"", "", - {name = "default_grass_side.png", tileable_vertical = false}}, + {name = "default_grass_side.png"}}, -- Global color, used in inventory color = "green", -- Palette in the world @@ -989,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" @@ -1150,7 +1180,7 @@ Look for examples in `games/devtest` or `games/minetest_game`. base cube without affecting them. * The base cube texture tiles are defined as normal, the `plantlike` extension uses the defined special tile, for example: - `special_tiles = {{name = "default_papyrus.png", tileable_vertical = true}},` + `special_tiles = {{name = "default_papyrus.png"}},` `*_optional` drawtypes need less rendering time if deactivated (always client-side). @@ -1220,6 +1250,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. @@ -1414,7 +1447,32 @@ Same as `image`, but does not accept a `position`; the position is instead deter * `world_pos`: World position of the waypoint. * `offset`: offset in pixels from position. +### `compass` + +Displays an image oriented or translated according to current heading direction. + +* `size`: The size of this element. Negative values represent percentage + of the screen; e.g. `x=-100` means 100% (width). +* `scale`: Scale of the translated image (used only for dir = 2 or dir = 3). +* `text`: The name of the texture to use. +* `alignment`: The alignment of the image. +* `offset`: Offset in pixels from position. +* `dir`: How the image is rotated/translated: + * 0 - Rotate as heading direction + * 1 - Rotate in reverse direction + * 2 - Translate as landscape direction + * 3 - Translate in reverse direction + +If translation is chosen, texture is repeated horizontally to fill the whole element. +### `minimap` + +Displays a minimap on the HUD. + +* `size`: Size of the minimap to display. Minimap should be a square to avoid + distortion. +* `alignment`: The alignment of the minimap. +* `offset`: offset in pixels from position. Representations of simple things ================================ @@ -1690,8 +1748,9 @@ to games. ### `ObjectRef` groups * `immortal`: Skips all damage and breath handling for an object. This group - will also hide the integrated HUD status bars for players, and is - automatically set to all players when damage is disabled on the server. + will also hide the integrated HUD status bars for players. It is + automatically set to all players when damage is disabled on the server and + cannot be reset (subject to change). * `punch_operable`: For entities; disables the regular damage mechanism for players punching it by hand or a non-tool item, so that it can do something else than take damage. @@ -1973,8 +2032,10 @@ Item metadata only contains a key-value store. Some of the values in the key-value store are handled specially: -* `description`: Set the item stack's description. Defaults to - `idef.description`. +* `description`: Set the item stack's description. + See also: `get_description` in [`ItemStack`] +* `short_description`: Set the item stack's short description. + See also: `get_short_description` in [`ItemStack`] * `color`: A `ColorString`, which sets the stack's color. * `palette_index`: If the item has a palette, this is used to get the current color from the palette. @@ -2057,6 +2118,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 -------- @@ -2068,6 +2145,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[<W>,<H>,<fixed_size>]` @@ -2152,7 +2230,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[<inventory location>;<list name>;<X>,<Y>;<W>,<H>;<starting item index>]` @@ -2220,6 +2299,21 @@ 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[<X>,<Y>;<W>,<H>;<name>;<mesh>;<textures>;<rotation X,Y>;<continuous>;<mouse control>;<frame loop range>]` + +* Show a mesh model. +* `name`: Element name that can be used for styling +* `mesh`: The mesh model to use. +* `textures`: The mesh textures to use according to the mesh materials. + Texture names must be separated by commas. +* `rotation {X,Y}` (Optional): Initial rotation of the camera. + The axes are euler angles in degrees. +* `continuous` (Optional): Whether the rotation is continuous. Default `false`. +* `mouse control` (Optional): Whether the model can be controlled with the mouse. Default `true`. +* `frame loop range` (Optional): Range of the animation frames. + * Defaults to the full range of all available frames. + * Syntax: `<begin>,<end>` + ### `item_image[<X>,<Y>;<W>,<H>;<item name>]` * Show an inventory image of registered item/node @@ -2442,8 +2536,10 @@ Elements * Simple colored box * `color` is color specified as a `ColorString`. If the alpha component is left blank, the box will be semitransparent. + If the color is not specified, the box will use the options specified by + its style. If the color is specified, all styling options will be ignored. -### `dropdown[<X>,<Y>;<W>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>]` +### `dropdown[<X>,<Y>;<W>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>;<index event>]` * Show a dropdown field * **Important note**: There are two different operation modes: @@ -2454,8 +2550,12 @@ Elements * Fieldname data is transferred to Lua * Items to be shown in dropdown * Index of currently selected dropdown item +* `index event` (optional, allowed parameter since formspec version 4): Specifies the + event field value for selected items. + * `true`: Selected item index + * `false` (default): Selected item value -### `dropdown[<X>,<Y>;<W>,<H>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>]` +### `dropdown[<X>,<Y>;<W>,<H>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>;<index event>]` * Show a dropdown field * **Important note**: This syntax for dropdowns can only be used with the @@ -2468,6 +2568,10 @@ Elements * Fieldname data is transferred to Lua * Items to be shown in dropdown * Index of currently selected dropdown item +* `index event` (optional, allowed parameter since formspec version 4): Specifies the + event field value for selected items. + * `true`: Selected item index + * `false` (default): Selected item value ### `checkbox[<X>,<Y>;<name>;<label>;<selected>]` @@ -2484,7 +2588,7 @@ Elements * There are two ways to use it: 1. handle the changed event (only changed scrollbar is available) 2. read the value on pressing a button (all scrollbars are available) -* `orientation`: `vertical`/`horizontal` +* `orientation`: `vertical`/`horizontal`. Default horizontal. * Fieldname data is transferred to Lua * Value of this trackbar is set to (`0`-`1000`) by default * See also `minetest.explode_scrollbar_event` @@ -2598,6 +2702,28 @@ Elements * All provided states must be active for the style to apply. * See [Styling Formspecs]. +### `set_focus[<name>;<force>]` + +* Sets the focus to the element with the same `name` parameter. +* **Note**: This element must be placed before the element it focuses. +* `force` (optional, default `false`): By default, focus is not applied for + re-sent formspecs with the same name so that player-set focus is kept. + `true` sets the focus to the specified element for every sent formspec. +* The following elements have the ability to be focused: + * checkbox + * button + * button_exit + * image_button + * image_button_exit + * item_image_button + * table + * textlist + * dropdown + * field + * pwdfield + * textarea + * scrollbar + Migrating to Real Coordinates ----------------------------- @@ -2678,21 +2804,25 @@ Setting a property to nothing will reset it to the default value. For example: Some types may inherit styles from parent types. * animated_image, inherits from image +* box * button * button_exit, inherits from button * checkbox -* scrollbar -* table -* textlist * dropdown * field -* pwdfield, inherits from field -* textarea -* label -* vertlabel, inherits from field +* image * image_button * item_image_button +* label +* list +* model +* pwdfield, inherits from field +* scrollbar * tabheader +* table +* textarea +* textlist +* vertlabel, inherits from label ### Valid Properties @@ -2701,7 +2831,18 @@ Some types may inherit styles from parent types. * noclip - boolean, set to true to allow the element to exceed formspec bounds. * box * noclip - boolean, set to true to allow the element to exceed formspec bounds. - * Default to false in formspec_version version 3 or higher + * Defaults to false in formspec_version version 3 or higher + * **Note**: `colors`, `bordercolors`, and `borderwidths` accept multiple input types: + * Single value (e.g. `#FF0`): All corners/borders. + * Two values (e.g. `red,#FFAAFF`): top-left and bottom-right,top-right and bottom-left/ + top and bottom,left and right. + * Four values (e.g. `blue,#A0F,green,#FFFA`): top-left/top and rotates clockwise. + * These work similarly to CSS borders. + * colors - `ColorString`. Sets the color(s) of the box corners. Default `black`. + * bordercolors - `ColorString`. Sets the color(s) of the borders. Default `black`. + * borderwidths - Integer. Sets the width(s) of the borders in pixels. If the width is + negative, the border will extend inside the box, whereas positive extends outside + the box. A width of zero results in no border; this is default. * button, button_exit, image_button, item_image_button * alpha - boolean, whether to draw alpha in bgimg. Default true. * bgcolor - color, sets button tint. @@ -2717,31 +2858,54 @@ Some types may inherit styles from parent types. button's content when set. * bgimg_pressed - background image when pressed. Defaults to bgimg when not provided. * This is deprecated, use states instead. + * font - Sets font type. This is a comma separated list of options. Valid options: + * Main font type options. These cannot be combined with each other: + * `normal`: Default font + * `mono`: Monospaced font + * Font modification options. If used without a main font type, `normal` is used: + * `bold`: Makes font bold. + * `italic`: Makes font italic. + Default `normal`. + * font_size - Sets font size. Default is user-set. Can have multiple values: + * `<number>`: Sets absolute font size to `number`. + * `+<number>`/`-<number>`: Offsets default font size by `number` points. + * `*<number>`: Multiplies default font size by `number`, similar to CSS `em`. * border - boolean, draw border. Set to false to hide the bevelled button pane. Default true. * content_offset - 2d vector, shifts the position of the button's content without resizing it. * 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 triggered. * textcolor - color, default white. * checkbox * noclip - boolean, set to true to allow the element to exceed formspec bounds. -* scrollbar - * noclip - boolean, set to true to allow the element to exceed formspec bounds. -* table, textlist - * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * 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 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. + * font_size - Sets font size. See button `font_size` property for more information. * noclip - boolean, set to true to allow the element to exceed formspec bounds. * textcolor - color. Default white. +* model + * bgcolor - color, sets background color. + * noclip - boolean, set to true to allow the element to exceed formspec bounds. + * Default to false in formspec_version version 3 or higher * image * noclip - boolean, set to true to allow the element to exceed formspec bounds. * Default to false in formspec_version version 3 or higher * item_image * noclip - boolean, set to true to allow the element to exceed formspec bounds. Default to false. * label, vertlabel + * 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. @@ -2749,9 +2913,17 @@ 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 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 a different tab is selected. * textcolor - color. Default white. +* table, textlist + * 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. ### Valid States @@ -2964,7 +3136,8 @@ Internally, it is implemented as a table with the 3 fields `x`, `y` and `z`. Example: `{x = 0, y = 1, z = 0}`. For the following functions, `v`, `v1`, `v2` are vectors, -`p1`, `p2` are positions: +`p1`, `p2` are positions, +`s` is a scalar (a number): * `vector.new(a[, b, c])`: * Returns a vector. @@ -2993,10 +3166,12 @@ For the following functions, `v`, `v1`, `v2` are vectors, * Returns in order minp, maxp vectors of the cuboid defined by `v1`, `v2`. * `vector.angle(v1, v2)`: * Returns the angle between `v1` and `v2` in radians. -* `vector.dot(v1, v2)` - * Returns the dot product of `v1` and `v2` -* `vector.cross(v1, v2)` - * Returns the cross product of `v1` and `v2` +* `vector.dot(v1, v2)`: + * Returns the dot product of `v1` and `v2`. +* `vector.cross(v1, v2)`: + * Returns the cross product of `v1` and `v2`. +* `vector.offset(v, x, y, z)`: + * Returns the sum of the vectors `v` and `{x = x, y = y, z = z}`. For the following functions `x` can be either a vector or a number: @@ -3008,10 +3183,12 @@ For the following functions `x` can be either a vector or a number: * Returns a vector. * If `x` is a vector: Returns the difference of `v` subtracted by `x`. * If `x` is a number: Subtracts `x` from each component of `v`. -* `vector.multiply(v, x)`: - * Returns a scaled vector or Schur product. -* `vector.divide(v, x)`: - * Returns a scaled vector or Schur quotient. +* `vector.multiply(v, s)`: + * Returns a scaled vector. + * Deprecated: If `s` is a vector: Returns the Schur product. +* `vector.divide(v, s)`: + * Returns a scaled vector. + * Deprecated: If `s` is a vector: Returns the Schur quotient. For the following functions `a` is an angle in radians and `r` is a rotation vector ({x = <pitch>, y = <yaw>, z = <roll>}) where pitch, yaw and roll are @@ -3091,6 +3268,7 @@ Helper functions * returns true when the passed number represents NaN. * `minetest.get_us_time()` * returns time with microsecond precision. May not return wall time. + * This value might overflow on certain 32-bit systems! * `table.copy(table)`: returns a table * returns a deep copy of `table` * `table.indexof(list, val)`: returns the smallest numerical index containing @@ -3101,7 +3279,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` @@ -4039,6 +4218,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 @@ -4159,11 +4340,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()` @@ -4204,6 +4388,10 @@ Utilities pathfinder_works = true, -- Whether Collision info is available to an objects' on_step (5.3.0) object_step_has_moveresult = true, + -- Whether get_velocity() and add_velocity() can be used on players (5.4.0) + direct_velocity_on_players = true, + -- nodedef's use_texture_alpha accepts new string modes (5.4.0) + use_texture_alpha_string_modes = true, } * `minetest.has_feature(arg)`: returns `boolean, missing_features` @@ -4412,6 +4600,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 @@ -4470,6 +4662,11 @@ Call these functions only at load time! * Called always when a player says something * Return `true` to mark the message as handled, which means that it will not be sent to other players. +* `minetest.register_on_chatcommand(function(name, command, params))` + * Called always when a chatcommand is triggered, before `minetest.registered_chatcommands` + is checked to see if the command exists, but after the input is parsed. + * Return `true` to mark the command as handled, which means that the default + handlers will be prevented. * `minetest.register_on_player_receive_fields(function(player, formname, fields))` * Called when the server received input from `player` in a formspec with the given `formname`. Specifically, this is called on any of the @@ -4477,7 +4674,7 @@ Call these functions only at load time! * a button was pressed, * Enter was pressed while the focus was on a text field * a checkbox was toggled, - * something was selecteed in a drop-down list, + * something was selected in a dropdown list, * a different tab was selected, * selection was changed in a textlist or table, * an entry was double-clicked in a textlist or table, @@ -4491,7 +4688,8 @@ Call these functions only at load time! * `button` and variants: If pressed, contains the user-facing button text as value. If not pressed, is `nil` * `field`, `textarea` and variants: Text in the field - * `dropdown`: Text of selected item + * `dropdown`: Either the index or value, depending on the `index event` + dropdown argument. * `tabheader`: Tab index, starting with `"1"` (only if tab changed) * `checkbox`: `"true"` if checked, `"false"` if unchecked * `textlist`: See `minetest.explode_textlist_event` @@ -4671,6 +4869,22 @@ Environment access * `pos`: The position where to measure the light. * `timeofday`: `nil` for current time, `0` for night, `0.5` for day * Returns a number between `0` and `15` or `nil` + * `nil` is returned e.g. when the map isn't loaded at `pos` +* `minetest.get_natural_light(pos[, timeofday])` + * Figures out the sunlight (or moonlight) value at pos at the given time of + day. + * `pos`: The position of the node + * `timeofday`: `nil` for current time, `0` for night, `0.5` for day + * Returns a number between `0` and `15` or `nil` + * This function tests 203 nodes in the worst case, which happens very + unlikely +* `minetest.get_artificial_light(param1)` + * Calculates the artificial light (light from e.g. torches) value from the + `param1` value. + * `param1`: The param1 value of a `paramtype = "light"` node. + * Returns a number between `0` and `15` + * Currently it's the same as `math.floor(param1 / 16)`, except that it + ensures compatibility. * `minetest.place_node(pos, node)` * Place node with the same effects that a player would cause * `minetest.dig_node(pos)` @@ -4699,6 +4913,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()` @@ -4713,12 +4930,15 @@ Environment access * `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"` * `search_center` is an optional boolean (default: `false`) If true `pos` is also checked for the nodes -* `minetest.find_nodes_in_area(pos1, pos2, nodenames)`: returns a list of - positions. +* `minetest.find_nodes_in_area(pos1, pos2, nodenames, [grouped])` + * `pos1` and `pos2` are the min and max positions of the area to search. * `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"` - * First return value: Table with all node positions - * Second return value: Table with the count of each node with the node name - as index. + * If `grouped` is true the return value is a table indexed by node name + which contains lists of positions. + * If `grouped` is false or absent the return values are as follows: + first value: Table with all node positions + second value: Table with the count of each node with the node name + as index * Area volume is limited to 4,096,000 nodes * `minetest.find_nodes_in_area_under_air(pos1, pos2, nodenames)`: returns a list of positions. @@ -5186,17 +5406,23 @@ Sounds * `minetest.sound_fade(handle, step, gain)` * `handle` is a handle returned by `minetest.sound_play` * `step` determines how fast a sound will fade. - Negative step will lower the sound volume, positive step will increase - the sound volume. + The gain will change by this much per second, + until it reaches the target gain. + Note: Older versions used a signed step. This is deprecated, but old + code will still work. (the client uses abs(step) to correct it) * `gain` the target gain for the fade. + Fading to zero will delete the sound. Timing ------ -* `minetest.after(time, func, ...)` +* `minetest.after(time, func, ...)` : returns job table to use as below. * Call the function `func` after `time` seconds, may be fractional * Optional: Variable number of arguments that are passed to `func` +* `job:cancel()` + * Cancels the job function from being called + Server ------ @@ -5223,20 +5449,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 ---- @@ -5616,6 +5844,9 @@ Global tables * Map of registered tool definitions, indexed by name * `minetest.registered_entities` * Map of registered entity prototypes, indexed by name + * Values in this table may be modified directly. + Note: changes to initial properties will only affect entities spawned afterwards, + as they are only read when spawning. * `minetest.object_refs` * Map of object references, indexed by active object id * `minetest.luaentities` @@ -5646,6 +5877,7 @@ Global tables * Map of registered chat command definitions, indexed by name * `minetest.registered_privileges` * Map of registered privilege definitions, indexed by name + * Registered privileges can be modified directly in this table. ### Registered callback tables @@ -5760,6 +5992,31 @@ An `InvRef` is a reference to an inventory. `minetest.get_inventory(location)`. * returns `{type="undefined"}` in case location is not known +### Callbacks + +Detached & nodemeta inventories provide the following callbacks for move actions: + +#### Before + +The `allow_*` callbacks return how many items can be moved. + +* `allow_move`/`allow_metadata_inventory_move`: Moving items in the inventory +* `allow_take`/`allow_metadata_inventory_take`: Taking items from the inventory +* `allow_put`/`allow_metadata_inventory_put`: Putting items to the inventory + +#### After + +The `on_*` callbacks are called after the items have been placed in the inventories. + +* `on_move`/`on_metadata_inventory_move`: Moving items in the inventory +* `on_take`/`on_metadata_inventory_take`: Taking items from the inventory +* `on_put`/`on_metadata_inventory_put`: Putting items to the inventory + +#### Swapping + +When a player tries to put an item to a place where another item is, the items are *swapped*. +This means that all callbacks will be called twice (once for each action). + `ItemStack` ----------- @@ -5785,6 +6042,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 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 or nil. + * Unlike the description, this does not include new lines. + * 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 (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. @@ -5938,6 +6207,19 @@ object you are working with still exists. * `get_pos()`: returns `{x=num, y=num, z=num}` * `set_pos(pos)`: `pos`=`{x=num, y=num, z=num}` +* `get_velocity()`: returns the velocity, a vector. +* `add_velocity(vel)` + * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}` + * In comparison to using get_velocity, adding the velocity and then using + set_velocity, add_velocity is supposed to avoid synchronization problems. + Additionally, players also do not support set_velocity. + * If a player: + * Does not apply during free_move. + * Note that since the player speed is normalized at each move step, + increasing e.g. Y velocity beyond what would usually be achieved + (see: physics overrides) will cause existing X/Z velocity to be reduced. + * Example: `add_velocity({x=0, y=6.5, z=0})` is equivalent to + pressing the jump key (assuming default settings) * `move_to(pos, continuous=false)` * Does an interpolated move for Lua entities for visually smooth transitions. * If `continuous` is true, the Lua entity will not be moved to the current @@ -5948,8 +6230,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 @@ -5972,17 +6254,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)` - * `bone`: string - * `position`: `{x=num, y=num, z=num}` (relative) - * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees -* `get_attach()`: returns parent, bone, position, rotation or nil if it isn't - attached. +* `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. 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 @@ -5990,15 +6277,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) @@ -6009,11 +6302,6 @@ object you are working with still exists. no effect and returning `nil`. * `set_velocity(vel)` * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}` -* `add_velocity(vel)` - * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}` - * In comparison to using get_velocity, adding the velocity and then using - set_velocity, add_velocity is supposed to avoid synchronization problems. -* `get_velocity()`: returns the velocity, a vector * `set_acceleration(acc)` * `acc` is a vector * `get_acceleration()`: returns the acceleration, a vector @@ -6021,35 +6309,37 @@ object you are working with still exists. * `rot` is a vector (radians). X is pitch (elevation), Y is yaw (heading) and Z is roll (bank). * `get_rotation()`: returns the rotation, a vector (radians) -* `set_yaw(radians)`: sets the yaw (heading). +* `set_yaw(yaw)`: sets the yaw in radians (heading). * `get_yaw()`: returns number in radians * `set_texture_mod(mod)` + * Set a texture modifier to the base texture, for sprites and meshes. + * When calling `set_texture_mod` again, the previous one is discarded. + * `mod` the texture modifier. See [Texture modifiers]. * `get_texture_mod()` returns current texture modifier -* `set_sprite(p, num_frames, framelength, select_horiz_by_yawpitch)` - * Select sprite from spritesheet with optional animation and Dungeon Master - style texture selection based on yaw relative to camera - * `p`: {x=number, y=number}, the coordinate of the first frame - (x: column, y: row), default: `{x=0, y=0}` - * `num_frames`: number, default: `1` - * `framelength`: number, default: `0.2` - * `select_horiz_by_yawpitch`: boolean, this was once used for the Dungeon - Master mob, default: `false` +* `set_sprite(start_frame, num_frames, framelength, select_x_by_camera)` + * Specifies and starts a sprite animation + * Animations iterate along the frame `y` position. + * `start_frame`: {x=column number, y=row number}, the coordinate of the + first frame, default: `{x=0, y=0}` + * `num_frames`: Total frames in the texture, default: `1` + * `framelength`: Time per animated frame in seconds, default: `0.2` + * `select_x_by_camera`: Only for visual = `sprite`. Changes the frame `x` + position according to the view direction. default: `false`. + * First column: subject facing the camera + * Second column: subject looking to the left + * Third column: subject backing the camera + * Fourth column: subject looking to the right + * Fifth column: subject viewed from above + * Sixth column: subject viewed from below * `get_entity_name()` (**Deprecated**: Will be removed in a future version) * `get_luaentity()` #### Player only (no-op for other objects) * `get_player_name()`: returns `""` if is not a player -* `get_player_velocity()`: returns `nil` if is not a player, otherwise a +* `get_player_velocity()`: **DEPRECATED**, use get_velocity() instead. table {x, y, z} representing the player's instantaneous velocity in nodes/s -* `add_player_velocity(vel)` - * Adds to player velocity, this happens client-side and only once. - * Does not apply during free_move. - * Note that since the player speed is normalized at each move step, - increasing e.g. Y velocity beyond what would usually be achieved - (see: physics overrides) will cause existing X/Z velocity to be reduced. - * Example: `add_player_velocity({x=0, y=6.5, z=0})` is equivalent to - pressing the jump key (assuming default settings) +* `add_player_velocity(vel)`: **DEPRECATED**, use add_velocity(vel) instead. * `get_look_dir()`: get camera direction as a unit vector * `get_look_vertical()`: pitch in radians * Angle ranges between -pi/2 and pi/2, which are straight up and down @@ -6111,15 +6401,23 @@ object you are working with still exists. * Only affects formspecs shown after this is called. * `get_formspec_prepend(formspec)`: returns a formspec string. * `get_player_control()`: returns table with player pressed keys - * The table consists of fields with boolean value representing the pressed - keys, the fields are jump, right, left, LMB, RMB, sneak, aux1, down, up, zoom. - * example: `{jump=false, right=true, left=false, LMB=false, RMB=false, - sneak=true, aux1=false, down=false, up=false, zoom=false}` - * The `zoom` field is available since 5.3 + * The table consists of fields with the following boolean values + representing the pressed keys: `up`, `down`, `left`, `right`, `jump`, + `aux1`, `sneak`, `dig`, `place`, `LMB`, `RMB`, and `zoom`. + * The fields `LMB` and `RMB` are equal to `dig` and `place` respectively, + and exist only to preserve backwards compatibility. * `get_player_control_bits()`: returns integer with bit packed player pressed - keys. - * bit nr/meaning: 0/up, 1/down, 2/left, 3/right, 4/jump, 5/aux1, 6/sneak, - 7/LMB, 8/RMB, 9/zoom (zoom available since 5.3) + keys. Bits: + * 0 - up + * 1 - down + * 2 - left + * 3 - right + * 4 - jump + * 5 - aux1 + * 6 - sneak + * 7 - dig + * 8 - place + * 9 - zoom * `set_physics_override(override_table)` * `override_table` is a table with the following fields: * `speed`: multiplier to default walking speed value (default: `1`) @@ -6164,8 +6462,31 @@ object you are working with still exists. * `hud_set_hotbar_selected_image(texturename)` * sets image for selected item of hotbar * `hud_get_hotbar_selected_image`: returns texturename -* `set_sky(parameters)` - * `parameters` is a table with the following optional fields: +* `set_minimap_modes({mode, mode, ...}, selected_mode)` + * Overrides the available minimap modes (and toggle order), and changes the + selected mode. + * `mode` is a table consisting of up to four fields: + * `type`: Available type: + * `off`: Minimap off + * `surface`: Minimap in surface mode + * `radar`: Minimap in radar mode + * `texture`: Texture to be displayed instead of terrain map + (texture is centered around 0,0 and can be scaled). + Texture size is limited to 512 x 512 pixel. + * `label`: Optional label to display on minimap mode toggle + The translation must be handled within the mod. + * `size`: Sidelength or diameter, in number of nodes, of the terrain + displayed in minimap + * `texture`: Only for texture type, name of the texture to display + * `scale`: Only for texture type, scale of the texture map in nodes per + pixel (for example a `scale` of 2 means each pixel represents a 2x2 + nodes square) + * `selected_mode` is the mode index to be selected after modes have been changed + (0 is the first mode). +* `set_sky(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: * `"regular"`: Uses 0 textures, `base_color` ignored @@ -6206,11 +6527,20 @@ 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`. -* `set_sun(parameters)`: - * `parameters` is a table with the following optional fields: +* `set_sun(sun_parameters)`: + * `sun_parameters` is a table with the following optional fields: * `visible`: Boolean for whether the sun is visible. (default: `true`) * `texture`: A regular texture for the sun. Setting to `""` @@ -6224,8 +6554,8 @@ object you are working with still exists. * `scale`: Float controlling the overall size of the sun. (default: `1`) * `get_sun()`: returns a table with the current sun parameters as in `set_sun`. -* `set_moon(parameters)`: - * `parameters` is a table with the following optional fields: +* `set_moon(moon_parameters)`: + * `moon_parameters` is a table with the following optional fields: * `visible`: Boolean for whether the moon is visible. (default: `true`) * `texture`: A regular texture for the moon. Setting to `""` @@ -6235,8 +6565,8 @@ object you are working with still exists. * `scale`: Float controlling the overall size of the moon (default: `1`) * `get_moon()`: returns a table with the current moon parameters as in `set_moon`. -* `set_stars(parameters)`: - * `parameters` is a table with the following optional fields: +* `set_stars(star_parameters)`: + * `star_parameters` is a table with the following optional fields: * `visible`: Boolean for whether the stars are visible. (default: `true`) * `count`: Integer number to set the number of stars in @@ -6248,8 +6578,8 @@ object you are working with still exists. * `scale`: Float controlling the overall size of the stars (default: `1`) * `get_stars()`: returns a table with the current stars parameters as in `set_stars`. -* `set_clouds(parameters)`: set cloud parameters - * `parameters` is a table with the following optional fields: +* `set_clouds(cloud_parameters)`: set cloud parameters + * `cloud_parameters` is a table with the following optional fields: * `density`: from `0` (no clouds) to `1` (full clouds) (default `0.4`) * `color`: basic cloud color with alpha channel, ColorSpec (default `#fff0f0e5`). @@ -6267,21 +6597,17 @@ object you are working with still exists. amount. * `nil`: Disables override, defaulting to sunlight based on day-night cycle * `get_day_night_ratio()`: returns the ratio or nil if it isn't overridden -* `set_local_animation(stand/idle, walk, dig, walk+dig, frame_speed=frame_speed)`: - set animation for player model in third person view - - set_local_animation({x=0, y=79}, -- stand/idle animation key frames - {x=168, y=187}, -- walk animation key frames - {x=189, y=198}, -- dig animation key frames - {x=200, y=219}, -- walk+dig animation key frames - frame_speed=30) -- animation frame speed -* `get_local_animation()`: returns stand, walk, dig, dig+walk tables and +* `set_local_animation(idle, walk, dig, walk_while_dig, frame_speed)`: + set animation for player model in third person view. + * Every animation equals to a `{x=starting frame, y=ending frame}` table. + * `frame_speed` sets the animations frame speed. Default is 30. +* `get_local_animation()`: returns idle, walk, dig, walk_while_dig tables and `frame_speed`. -* `set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})`: defines offset value for - camera per player. +* `set_eye_offset([firstperson, thirdperson])`: defines offset vectors for + camera per player. 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 `offset_first` and `offset_third` +* `get_eye_offset()`: returns first and third person offsets. * `send_mapblock(blockpos)`: * Sends a server-side loaded mapblock to the player. * Returns `false` if failed. @@ -6634,10 +6960,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 = <ColorSpec>, - -- Sets color of nametag + -- Sets text color of nametag + + nametag_bgcolor = <ColorSpec>, + -- 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 @@ -6653,6 +6987,10 @@ Player properties need to be saved manually. shaded = true, -- Setting this to 'false' disables diffuse lighting of entity + + show_on_minimap = false, + -- Defaults to true for players, false for other entities. + -- If set to true the entity will show as a marker on the minimap. } Entity definition @@ -6787,13 +7125,8 @@ Tile definition * `"image.png"` * `{name="image.png", animation={Tile Animation definition}}` -* `{name="image.png", backface_culling=bool, tileable_vertical=bool, - tileable_horizontal=bool, align_style="node"/"world"/"user", scale=int}` +* `{name="image.png", backface_culling=bool, align_style="node"/"world"/"user", scale=int}` * backface culling enabled by default for most nodes - * tileable flags are info for shaders, how they should treat texture - when displacement mapping is used. - Directions are from the point of view of the tile texture, - not the node it's on. * align style determines whether the texture will be rotated with the node or kept aligned with its surroundings. "user" means that client setting will be used, similar to `glasslike_framed_optional`. @@ -6846,6 +7179,14 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and { description = "Steel Axe", + -- Can contain new lines. "\n" has to be used as new line character. + -- See also: `get_description` in [`ItemStack`] + + short_description = "Steel Axe", + -- Must not contain new lines. + -- 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. @@ -6884,6 +7225,13 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and liquids_pointable = false, + light_source = 0, + -- When used for nodes: Defines amount of light emitted by node. + -- Otherwise: Defines texture glow when viewed as a dropped item + -- To set the maximum (14), use the value 'minetest.LIGHT_MAX'. + -- A value outside the range 0 to minetest.LIGHT_MAX causes undefined + -- behavior. + -- See "Tools" section for an example including explanation tool_capabilities = { full_punch_interval = 1.0, @@ -7011,8 +7359,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 + 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. @@ -7075,18 +7433,13 @@ 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) drowning = 0, -- Player will take this amount of damage if no bubbles are left - light_source = 0, - -- Amount of light emitted by node. - -- To set the maximum (14), use the value 'minetest.LIGHT_MAX'. - -- A value outside the range 0 to minetest.LIGHT_MAX causes undefined - -- behavior. - damage_per_second = 0, -- If player is inside node, this damage is caused @@ -7108,6 +7461,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. @@ -7118,13 +7472,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, @@ -7165,10 +7518,13 @@ Used by `minetest.register_node`. -- Node was placed. Also played after falling place_failed = <SimpleSoundSpec>, - -- When node placement failed + -- When node placement failed. + -- Note: This happens if the _built-in_ node placement failed. + -- This sound will still be played if the node is placed in the + -- `on_place` callback manually. fall = <SimpleSoundSpec>, - -- When node starts to fall + -- When node starts to fall or is detached }, drop = "", @@ -7289,6 +7645,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 @@ -7328,6 +7686,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 @@ -7755,6 +8120,8 @@ Used by `minetest.register_chatcommand`. func = function(name, param), -- Called when command is run. Returns boolean success and text output. + -- Special case: The help message is shown to the player if `func` + -- returns false without a text output. } Note that in params, use of symbols is as follows: @@ -7837,7 +8204,8 @@ Used by `Player:hud_add`. Returned by `Player:hud_get`. { hud_elem_type = "image", -- See HUD element types - -- Type of element, can be "image", "text", "statbar", or "inventory" + -- Type of element, can be "image", "text", "statbar", "inventory", + -- "compass" or "minimap" position = {x=0.5, y=0.5}, -- Left corner position of element @@ -8016,11 +8384,13 @@ Used by `HTTPApiTable.fetch` and `HTTPApiTable.fetch_async`. 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. + method = "GET", "POST", "PUT" or "DELETE" + -- The http method to use. Defaults to "GET". + + data = "Raw request data string" OR {field1 = "data1", field2 = "data2"}, + -- Data for the POST, PUT or DELETE request. -- 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 @@ -8034,6 +8404,10 @@ Used by `HTTPApiTable.fetch` and `HTTPApiTable.fetch_async`. multipart = boolean -- Optional, if true performs a multipart HTTP request. -- Default is false. + -- Post only, data must be array + + post_data = "Raw POST request data string" OR {field1 = "data1", field2 = "data2"}, + -- Deprecated, use `data` instead. Forces `method = "POST"`. } `HTTPRequestResult` definition diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt index 724e37855..b3975bc1d 100644 --- a/doc/menu_lua_api.txt +++ b/doc/menu_lua_api.txt @@ -1,4 +1,4 @@ -Minetest Lua Mainmenu API Reference 5.3.0 +Minetest Lua Mainmenu API Reference 5.4.0 ========================================= Introduction @@ -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 @@ -207,6 +214,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 +254,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 = <number of clients/nil>, - clients_max = <maximum number of clients/nil>, - version = <server version/nil>, - password = <true/nil>, - creative = <true/nil>, - damage = <true/nil>, - pvp = <true/nil>, - description = <server description/nil>, - name = <server name/nil>, - address = <address of server/nil>, - port = <port> - clients_list = <array of clients/nil> - mods = <array of mods/nil> - }, - ... -} -core.delete_favorite(id, location) -> success - - Logging ------- diff --git a/doc/texture_packs.txt b/doc/texture_packs.txt index 94151f1a4..8af2cbad6 100644 --- a/doc/texture_packs.txt +++ b/doc/texture_packs.txt @@ -72,7 +72,12 @@ by texture packs. All existing fallback textures can be found in the directory * `crosshair.png` * the crosshair texture in the center of the screen. The settings `crosshair_color` and `crosshair_alpha` are used to create a cross - when no texture was found + when no texture is found. + +* `object_crosshair.png` + * the crosshair seen when pointing at an object. The settings + `crosshair_color` and `crosshair_alpha` are used to create a cross + when no texture is found. * `halo.png`: used for the node highlighting mesh @@ -85,6 +90,7 @@ by texture packs. All existing fallback textures can be found in the directory * `minimap_mask_square.png`: mask used for the square minimap * `minimap_overlay_round.png`: overlay texture for the round minimap * `minimap_overlay_square.png`: overlay texture for the square minimap +* `no_texture_airlike.png`: fallback inventory image for airlike nodes * `object_marker_red.png`: texture for players on the minimap * `player_marker.png`: texture for the own player on the square minimap @@ -189,11 +195,27 @@ Here are targets you can choose from: | bottom | y- face | | sides | x-, x+, z-, z+ faces | | all | All faces. You can also use '*' instead of 'all'. | +| special1 | The first entry in the special_tiles list | +| special2 | The second entry in the special_tiles list | +| special3 | The third entry in the special_tiles list | +| special4 | The fourth entry in the special_tiles list | +| special5 | The fifth entry in the special_tiles list | +| special6 | The sixth entry in the special_tiles list | | inventory | The inventory texture | | wield | The texture used when held by the player | Nodes support all targets, but other items only support 'inventory' -and 'wield' +and 'wield'. + +### Using the special targets + +The special* targets only apply to specific drawtypes: + +* `flowingliquid`: special1 sets the top texture, special2 sets the side texture +* `allfaces_optional`: special1 is used by simple mode, see below +* `glasslike_framed`: When containing a liquid, special1 sets the liquid texture +* `glasslike_framed_optional`: Same as `glasslike_framed` +* `plantlike_rooted`: special1 sets the plant's texture Designing leaves textures for the leaves rendering options ---------------------------------------------------------- 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/fonts/DroidSansFallbackFull-LICENSE.txt b/fonts/DroidSansFallbackFull-LICENSE.txt index d3a2eaa8c..a7bf409b7 100644 --- a/fonts/DroidSansFallbackFull-LICENSE.txt +++ b/fonts/DroidSansFallbackFull-LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (C) 2008 The Android Open Source Project +Copyright (C) 2012 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/fonts/DroidSansFallbackFull.ttf b/fonts/DroidSansFallbackFull.ttf Binary files differindex a9df00585..0cacabedc 100644 --- a/fonts/DroidSansFallbackFull.ttf +++ b/fonts/DroidSansFallbackFull.ttf diff --git a/games/devtest/README.md b/games/devtest/README.md index a7e93cf11..77e722af7 100644 --- a/games/devtest/README.md +++ b/games/devtest/README.md @@ -23,9 +23,8 @@ Basically, just create a world and start. A few important things to note: * Use the `/infplace` command to toggle infinite node placement in-game * Use the Param2 Tool to change the param2 of nodes; it's useful to experiment with the various drawtype test nodes * Check out the game settings and server commands for additional tests and features -* Creative Mode does nothing (apart from default engine behavior) -Confused by a certain node or item? Check out for inline code comments. +Confused by a certain node or item? Check out for inline code comments. The usages of most tools are explained in their tooltips. ### Example tests diff --git a/games/devtest/mods/basenodes/init.lua b/games/devtest/mods/basenodes/init.lua index 8156c4bec..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 @@ -124,14 +124,16 @@ minetest.register_node("basenodes:pine_needles", { }) minetest.register_node("basenodes:water_source", { - description = "Water Source", + description = "Water Source".."\n".. + "Drowning damage: 1", drawtype = "liquid", - tiles = {"default_water.png"}, + waving = 3, + 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, @@ -148,14 +150,18 @@ minetest.register_node("basenodes:water_source", { }) minetest.register_node("basenodes:water_flowing", { - description = "Flowing Water", + description = "Flowing Water".."\n".. + "Drowning damage: 1", drawtype = "flowingliquid", + waving = 3, tiles = {"default_water_flowing.png"}, special_tiles = { - {name = "default_water_flowing.png", backface_culling = false}, - {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, @@ -173,14 +179,16 @@ minetest.register_node("basenodes:water_flowing", { }) minetest.register_node("basenodes:river_water_source", { - description = "River Water Source", + description = "River Water Source".."\n".. + "Drowning damage: 1", drawtype = "liquid", - tiles = { "default_river_water.png" }, + waving = 3, + 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, @@ -199,14 +207,18 @@ minetest.register_node("basenodes:river_water_source", { }) minetest.register_node("basenodes:river_water_flowing", { - description = "Flowing River Water", + description = "Flowing River Water".."\n".. + "Drowning damage: 1", drawtype = "flowingliquid", - tiles = {"default_river_water_flowing.png"}, + waving = 3, + 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, @@ -226,7 +238,9 @@ minetest.register_node("basenodes:river_water_flowing", { }) minetest.register_node("basenodes:lava_flowing", { - description = "Flowing Lava", + description = "Flowing Lava".."\n".. + "4 damage per second".."\n".. + "Drowning damage: 1", drawtype = "flowingliquid", tiles = {"default_lava_flowing.png"}, special_tiles = { @@ -251,7 +265,9 @@ minetest.register_node("basenodes:lava_flowing", { }) minetest.register_node("basenodes:lava_source", { - description = "Lava Source", + description = "Lava Source".."\n".. + "4 damage per second".."\n".. + "Drowning damage: 1", drawtype = "liquid", tiles = { "default_lava.png" }, special_tiles = { @@ -290,7 +306,8 @@ minetest.register_node("basenodes:mossycobble", { }) minetest.register_node("basenodes:apple", { - description = "Apple", + description = "Apple".."\n".. + "Food (+2)", drawtype = "plantlike", tiles ={"default_apple.png"}, inventory_image = "default_apple.png", diff --git a/games/devtest/mods/basenodes/textures/default_dirt.png b/games/devtest/mods/basenodes/textures/default_dirt.png Binary files differindex 58670305d..aa75bffb6 100644 --- a/games/devtest/mods/basenodes/textures/default_dirt.png +++ b/games/devtest/mods/basenodes/textures/default_dirt.png diff --git a/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass.png b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass.png Binary files differnew file mode 100644 index 000000000..29fde6b26 --- /dev/null +++ b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass.png diff --git a/games/devtest/mods/basenodes/textures/default_grass_side.png b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass_side.png Binary files differindex 04770b6f6..04770b6f6 100644 --- a/games/devtest/mods/basenodes/textures/default_grass_side.png +++ b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass_side.png 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/basetools/init.lua b/games/devtest/mods/basetools/init.lua index c5b4cd76c..bd7480030 100644 --- a/games/devtest/mods/basetools/init.lua +++ b/games/devtest/mods/basetools/init.lua @@ -6,7 +6,7 @@ Tool types: -* Hand: basic tool/weapon (just for convenience, not optimized for testing) +* Hand: basic tool/weapon (special capabilities in creative mode) * Pickaxe: dig cracky * Axe: dig choppy * Shovel: dig crumbly @@ -24,25 +24,54 @@ Tool materials: ]] -- The hand -minetest.register_item(":", { - type = "none", - wield_image = "wieldhand.png", - wield_scale = {x=1,y=1,z=2.5}, - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level = 0, - groupcaps = { - crumbly = {times={[3]=1.50}, uses=0, maxlevel=0}, - snappy = {times={[3]=1.50}, uses=0, maxlevel=0}, - oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=2.00}, uses=0, maxlevel=0}, - }, - damage_groups = {fleshy=1}, - } -}) +if minetest.settings:get_bool("creative_mode") then + local digtime = 42 + local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} + + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x = 1, y = 1, z = 2.5}, + range = 10, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = caps, + cracky = caps, + snappy = caps, + choppy = caps, + oddly_breakable_by_hand = caps, + -- dig_immediate group doesn't use value 1. Value 3 is instant dig + dig_immediate = + {times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256}, + }, + damage_groups = {fleshy = 10}, + } + }) +else + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x = 1, y = 1, z = 2.5}, + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times = {[2] = 3.00, [3] = 0.70}, uses = 0, maxlevel = 1}, + snappy = {times = {[3] = 0.40}, uses = 0, maxlevel = 1}, + oddly_breakable_by_hand = + {times = {[1] = 3.50, [2] = 2.00, [3] = 0.70}, uses = 0} + }, + damage_groups = {fleshy = 1}, + } + }) +end -- Mese Pickaxe: special tool that digs "everything" instantly minetest.register_tool("basetools:pick_mese", { - description = "Mese Pickaxe", + description = "Mese Pickaxe".."\n".. + "Digs diggable nodes instantly", inventory_image = "basetools_mesepick.png", tool_capabilities = { full_punch_interval = 1.0, @@ -65,7 +94,9 @@ minetest.register_tool("basetools:pick_mese", { -- This should break after only 1 use minetest.register_tool("basetools:pick_dirt", { - description = "Dirt Pickaxe", + description = "Dirt Pickaxe".."\n".. + "Digs cracky=3".."\n".. + "1 use only", inventory_image = "basetools_dirtpick.png", tool_capabilities = { max_drop_level=0, @@ -76,7 +107,8 @@ minetest.register_tool("basetools:pick_dirt", { }) minetest.register_tool("basetools:pick_wood", { - description = "Wooden Pickaxe", + description = "Wooden Pickaxe".."\n".. + "Digs cracky=3", inventory_image = "basetools_woodpick.png", tool_capabilities = { max_drop_level=0, @@ -86,7 +118,8 @@ minetest.register_tool("basetools:pick_wood", { }, }) minetest.register_tool("basetools:pick_stone", { - description = "Stone Pickaxe", + description = "Stone Pickaxe".."\n".. + "Digs cracky=2..3", inventory_image = "basetools_stonepick.png", tool_capabilities = { max_drop_level=0, @@ -96,7 +129,8 @@ minetest.register_tool("basetools:pick_stone", { }, }) minetest.register_tool("basetools:pick_steel", { - description = "Steel Pickaxe", + description = "Steel Pickaxe".."\n".. + "Digs cracky=1..3", inventory_image = "basetools_steelpick.png", tool_capabilities = { max_drop_level=1, @@ -106,7 +140,9 @@ minetest.register_tool("basetools:pick_steel", { }, }) minetest.register_tool("basetools:pick_steel_l1", { - description = "Steel Pickaxe Level 1", + description = "Steel Pickaxe Level 1".."\n".. + "Digs cracky=1..3".."\n".. + "maxlevel=1", inventory_image = "basetools_steelpick_l1.png", tool_capabilities = { max_drop_level=1, @@ -116,7 +152,9 @@ minetest.register_tool("basetools:pick_steel_l1", { }, }) minetest.register_tool("basetools:pick_steel_l2", { - description = "Steel Pickaxe Level 2", + description = "Steel Pickaxe Level 2".."\n".. + "Digs cracky=1..3".."\n".. + "maxlevel=2", inventory_image = "basetools_steelpick_l2.png", tool_capabilities = { max_drop_level=1, @@ -131,7 +169,8 @@ minetest.register_tool("basetools:pick_steel_l2", { -- minetest.register_tool("basetools:shovel_wood", { - description = "Wooden Shovel", + description = "Wooden Shovel".."\n".. + "Digs crumbly=3", inventory_image = "basetools_woodshovel.png", tool_capabilities = { max_drop_level=0, @@ -141,7 +180,8 @@ minetest.register_tool("basetools:shovel_wood", { }, }) minetest.register_tool("basetools:shovel_stone", { - description = "Stone Shovel", + description = "Stone Shovel".."\n".. + "Digs crumbly=2..3", inventory_image = "basetools_stoneshovel.png", tool_capabilities = { max_drop_level=0, @@ -151,7 +191,8 @@ minetest.register_tool("basetools:shovel_stone", { }, }) minetest.register_tool("basetools:shovel_steel", { - description = "Steel Shovel", + description = "Steel Shovel".."\n".. + "Digs crumbly=1..3", inventory_image = "basetools_steelshovel.png", tool_capabilities = { max_drop_level=1, @@ -166,7 +207,8 @@ minetest.register_tool("basetools:shovel_steel", { -- minetest.register_tool("basetools:axe_wood", { - description = "Wooden Axe", + description = "Wooden Axe".."\n".. + "Digs choppy=3", inventory_image = "basetools_woodaxe.png", tool_capabilities = { max_drop_level=0, @@ -176,7 +218,8 @@ minetest.register_tool("basetools:axe_wood", { }, }) minetest.register_tool("basetools:axe_stone", { - description = "Stone Axe", + description = "Stone Axe".."\n".. + "Digs choppy=2..3", inventory_image = "basetools_stoneaxe.png", tool_capabilities = { max_drop_level=0, @@ -186,7 +229,8 @@ minetest.register_tool("basetools:axe_stone", { }, }) minetest.register_tool("basetools:axe_steel", { - description = "Steel Axe", + description = "Steel Axe".."\n".. + "Digs choppy=1..3", inventory_image = "basetools_steelaxe.png", tool_capabilities = { max_drop_level=1, @@ -201,7 +245,8 @@ minetest.register_tool("basetools:axe_steel", { -- minetest.register_tool("basetools:shears_wood", { - description = "Wooden Shears", + description = "Wooden Shears".."\n".. + "Digs snappy=3", inventory_image = "basetools_woodshears.png", tool_capabilities = { max_drop_level=0, @@ -211,7 +256,8 @@ minetest.register_tool("basetools:shears_wood", { }, }) minetest.register_tool("basetools:shears_stone", { - description = "Stone Shears", + description = "Stone Shears".."\n".. + "Digs snappy=2..3", inventory_image = "basetools_stoneshears.png", tool_capabilities = { max_drop_level=0, @@ -221,7 +267,8 @@ minetest.register_tool("basetools:shears_stone", { }, }) minetest.register_tool("basetools:shears_steel", { - description = "Steel Shears", + description = "Steel Shears".."\n".. + "Digs snappy=1..3", inventory_image = "basetools_steelshears.png", tool_capabilities = { max_drop_level=1, @@ -236,7 +283,8 @@ minetest.register_tool("basetools:shears_steel", { -- minetest.register_tool("basetools:sword_wood", { - description = "Wooden Sword", + description = "Wooden Sword".."\n".. + "Damage: fleshy=2", inventory_image = "basetools_woodsword.png", tool_capabilities = { full_punch_interval = 1.0, @@ -244,7 +292,8 @@ minetest.register_tool("basetools:sword_wood", { } }) minetest.register_tool("basetools:sword_stone", { - description = "Stone Sword", + description = "Stone Sword".."\n".. + "Damage: fleshy=4", inventory_image = "basetools_stonesword.png", tool_capabilities = { full_punch_interval = 1.0, @@ -253,7 +302,8 @@ minetest.register_tool("basetools:sword_stone", { } }) minetest.register_tool("basetools:sword_steel", { - description = "Steel Sword", + description = "Steel Sword".."\n".. + "Damage: fleshy=6", inventory_image = "basetools_steelsword.png", tool_capabilities = { full_punch_interval = 1.0, @@ -264,7 +314,8 @@ minetest.register_tool("basetools:sword_steel", { -- Fire/Ice sword: Deal damage to non-fleshy damage groups minetest.register_tool("basetools:sword_fire", { - description = "Fire Sword", + description = "Fire Sword".."\n".. + "Damage: icy=6", inventory_image = "basetools_firesword.png", tool_capabilities = { full_punch_interval = 1.0, @@ -273,12 +324,13 @@ minetest.register_tool("basetools:sword_fire", { } }) minetest.register_tool("basetools:sword_ice", { - description = "Ice Sword", + description = "Ice Sword".."\n".. + "Damage: fiery=6", inventory_image = "basetools_icesword.png", tool_capabilities = { full_punch_interval = 1.0, max_drop_level=0, - damage_groups = {firy=6}, + damage_groups = {fiery=6}, } }) @@ -286,7 +338,9 @@ minetest.register_tool("basetools:sword_ice", { -- Dagger: Low damage, fast punch interval -- minetest.register_tool("basetools:dagger_steel", { - description = "Steel Dagger", + description = "Steel Dagger".."\n".. + "Damage: fleshy=2".."\n".. + "Full Punch Interval: 0.5s", inventory_image = "basetools_steeldagger.png", tool_capabilities = { full_punch_interval = 0.5, diff --git a/games/devtest/mods/bucket/init.lua b/games/devtest/mods/bucket/init.lua index 3189d4aa6..ff58b0669 100644 --- a/games/devtest/mods/bucket/init.lua +++ b/games/devtest/mods/bucket/init.lua @@ -1,7 +1,8 @@ -- Bucket: Punch liquid source or flowing liquid to collect it minetest.register_tool("bucket:bucket", { - description = "Bucket", + description = "Bucket".."\n".. + "Picks up liquid nodes", inventory_image = "bucket.png", stack_max = 1, liquids_pointable = true, diff --git a/games/devtest/mods/chest/init.lua b/games/devtest/mods/chest/init.lua index c44522cb9..5798c13e7 100644 --- a/games/devtest/mods/chest/init.lua +++ b/games/devtest/mods/chest/init.lua @@ -1,5 +1,6 @@ minetest.register_node("chest:chest", { - description = "Chest", + description = "Chest" .. "\n" .. + "32 inventory slots", tiles ={"chest_chest.png^[sheet:2x2:0,0", "chest_chest.png^[sheet:2x2:0,0", "chest_chest.png^[sheet:2x2:1,0", "chest_chest.png^[sheet:2x2:1,0", "chest_chest.png^[sheet:2x2:1,0", "chest_chest.png^[sheet:2x2:0,1"}, @@ -22,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/chest_of_everything/init.lua b/games/devtest/mods/chest_of_everything/init.lua index 7d61abebf..3e9d2678a 100644 --- a/games/devtest/mods/chest_of_everything/init.lua +++ b/games/devtest/mods/chest_of_everything/init.lua @@ -43,7 +43,8 @@ local function get_chest_formspec(page) end minetest.register_node("chest_of_everything:chest", { - description = "Chest of Everything", + description = "Chest of Everything" .. "\n" .. + "Grants access to all items", tiles ={"chest_of_everything_chest.png^[sheet:2x2:0,0", "chest_of_everything_chest.png^[sheet:2x2:0,0", "chest_of_everything_chest.png^[sheet:2x2:1,0", "chest_of_everything_chest.png^[sheet:2x2:1,0", "chest_of_everything_chest.png^[sheet:2x2:1,0", "chest_of_everything_chest.png^[sheet:2x2:0,1"}, diff --git a/games/devtest/mods/experimental/commands.lua b/games/devtest/mods/experimental/commands.lua index 158e5039d..132b08b0b 100644 --- a/games/devtest/mods/experimental/commands.lua +++ b/games/devtest/mods/experimental/commands.lua @@ -214,3 +214,6 @@ minetest.register_chatcommand("test_place_nodes", { end, }) +core.register_on_chatcommand(function(name, command, params) + minetest.log("caught command '"..command.."', issued by '"..name.."'. Parameters: '"..params.."'") +end) diff --git a/games/devtest/mods/experimental/items.lua b/games/devtest/mods/experimental/items.lua index 51b063ba2..94be71cf7 100644 --- a/games/devtest/mods/experimental/items.lua +++ b/games/devtest/mods/experimental/items.lua @@ -44,7 +44,8 @@ minetest.register_node("experimental:callback_node", { }) minetest.register_tool("experimental:privatizer", { - description = "Node Meta Privatizer", + description = "Node Meta Privatizer".."\n".. + "Punch: Marks 'infotext' and 'formspec' meta fields of chest as private", inventory_image = "experimental_tester_tool_1.png", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) @@ -67,7 +68,8 @@ minetest.register_tool("experimental:privatizer", { }) minetest.register_tool("experimental:particle_spawner", { - description = "Particle Spawner", + description = "Particle Spawner".."\n".. + "Punch: Spawn random test particle", inventory_image = "experimental_tester_tool_1.png^[invert:g", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) diff --git a/games/devtest/mods/soundstuff/init.lua b/games/devtest/mods/soundstuff/init.lua index 22012ba14..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, @@ -107,7 +108,8 @@ minetest.register_node("soundstuff:footstep_climbable", { minetest.register_craftitem("soundstuff:eat", { - description = "Eat Sound Item", + description = "Eat Sound Item".."\n".. + "Makes a sound when 'eaten' (with punch key)", inventory_image = "soundstuff_eat.png", on_use = minetest.item_eat(0), sound = { @@ -116,7 +118,9 @@ minetest.register_craftitem("soundstuff:eat", { }) minetest.register_tool("soundstuff:breaks", { - description = "Break Sound Tool", + description = "Break Sound Tool".."\n".. + "Digs cracky=3 and more".."\n".. + "Makes a sound when it breaks", inventory_image = "soundstuff_node_dug.png", sound = { breaks = { name = "soundstuff_mono", gain = 1.0 }, diff --git a/games/devtest/mods/testentities/armor.lua b/games/devtest/mods/testentities/armor.lua index 4c30cec8d..306953d50 100644 --- a/games/devtest/mods/testentities/armor.lua +++ b/games/devtest/mods/testentities/armor.lua @@ -3,7 +3,7 @@ local phasearmor = { [0]={icy=100}, - [1]={firy=100}, + [1]={fiery=100}, [2]={fleshy=100}, [3]={immortal=1}, [4]={punch_operable=1}, 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 83f361f16..e382ec44c 100644 --- a/games/devtest/mods/testentities/visuals.lua +++ b/games/devtest/mods/testentities/visuals.lua @@ -68,7 +68,7 @@ minetest.register_entity("testentities:mesh_unshaded", { -- Advanced visual tests --- A test entity for testing animated and yaw-modulated sprites +-- An entity for testing animated and yaw-modulated sprites minetest.register_entity("testentities:yawsprite", { initial_properties = { selectionbox = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3}, @@ -79,6 +79,59 @@ minetest.register_entity("testentities:yawsprite", { initial_sprite_basepos = {x=0, y=0}, }, on_activate = function(self, staticdata) - self.object:set_sprite({x=0, y=0}, 1, 0, true) + self.object:set_sprite({x=0, y=0}, 3, 0.5, true) + end, +}) + +-- An entity for testing animated upright sprites +minetest.register_entity("testentities:upright_animated", { + initial_properties = { + visual = "upright_sprite", + textures = {"testnodes_anim.png"}, + spritediv = {x = 1, y = 4}, + }, + on_activate = function(self) + 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 Binary files differnew file mode 100644 index 000000000..1ef6876e5 --- /dev/null +++ b/games/devtest/mods/testfood/textures/testfood_replace.png diff --git a/games/devtest/mods/testformspec/LICENSE.txt b/games/devtest/mods/testformspec/LICENSE.txt new file mode 100644 index 000000000..07696cc30 --- /dev/null +++ b/games/devtest/mods/testformspec/LICENSE.txt @@ -0,0 +1,14 @@ +License of media files +---------------------- +Content imported from minetest_game. + + +BlockMen (CC BY-SA 3.0) + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + +stujones11 (CC BY-SA 3.0) +An0n3m0us (CC BY-SA 3.0) + testformspec_character.b3d diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua index 08c1b6dc0..2a2bdad60 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 = [[ <bigger>Normal test</bigger> This is a normal text. @@ -164,7 +192,7 @@ local style_fs = [[ style[one_btn14:hovered+pressed;textcolor=purple] image_button[0,9.6;1,1;testformspec_button_image.png;one_btn14;Bg] - style[one_btn15;border=false;bgimg=testformspec_bg.png;bgimg_hovered=testformspec_bg_hovered.png;bgimg_pressed=testformspec_bg_pressed.png] + style[one_btn15;border=false;bgcolor=#1cc;bgimg=testformspec_bg.png;bgimg_hovered=testformspec_bg_hovered.png;bgimg_pressed=testformspec_bg_pressed.png] item_image_button[1.25,9.6;1,1;testformspec:item;one_btn15;Bg] style[one_btn16;border=false;bgimg=testformspec_bg_9slice.png;bgimg_hovered=testformspec_bg_9slice_hovered.png;bgimg_pressed=testformspec_bg_9slice_pressed.png;bgimg_middle=4,6] @@ -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] @@ -327,6 +361,10 @@ Number] animated_image[3,4.25;1,1;;testformspec_animation.png;4;0;3] animated_image[5.5,0.5;5,2;;testformspec_animation.png;4;100] animated_image[5.5,2.75;5,2;;testformspec_animation.jpg;4;100] + + style[m1;bgcolor=black] + model[0.5,6;4,4;m1;testformspec_character.b3d;testformspec_character.png] + model[5,6;4,4;m2;testformspec_chest.obj;default_chest_top.png,default_chest_top.png,default_chest_side.png,default_chest_side.png,default_chest_front.png,default_chest_inside.png;30,1;true;true] ]], -- Scroll containers @@ -337,7 +375,7 @@ Number] local function show_test_formspec(pname, page_id) page_id = page_id or 2 - local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Anim,ScrollC;" .. page_id .. ";false;false]" + local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Invs,Anim,ScrollC;" .. page_id .. ";false;false]" minetest.show_formspec(pname, "testformspec:formspec", fs) end diff --git a/games/devtest/mods/testformspec/models/testformspec_character.b3d b/games/devtest/mods/testformspec/models/testformspec_character.b3d Binary files differnew file mode 100644 index 000000000..8edbaf637 --- /dev/null +++ b/games/devtest/mods/testformspec/models/testformspec_character.b3d diff --git a/games/devtest/mods/testformspec/models/testformspec_chest.obj b/games/devtest/mods/testformspec/models/testformspec_chest.obj new file mode 100644 index 000000000..72ba175a0 --- /dev/null +++ b/games/devtest/mods/testformspec/models/testformspec_chest.obj @@ -0,0 +1,79 @@ +# Blender v2.78 (sub 0) OBJ File: 'chest-open.blend' +# www.blender.org +o Top_Cube.002_None_Top_Cube.002_None_bottom +v -0.500000 0.408471 0.720970 +v -0.500000 1.115578 0.013863 +v -0.500000 0.894607 -0.207108 +v -0.500000 0.187501 0.499999 +v 0.500000 1.115578 0.013863 +v 0.500000 0.408471 0.720970 +v 0.500000 0.187501 0.499999 +v 0.500000 0.894607 -0.207108 +v -0.500000 0.187500 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.187500 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 0.0000 1.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 0.0000 0.6875 +vt 1.0000 1.0000 +vt 0.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 0.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 1.0000 +vt 0.0000 0.6875 +vt 0.0000 0.6875 +vt 0.0000 0.0000 +vt 1.0000 0.5000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.5000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 1.0000 -0.0000 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Top +s off +f 6/1/1 5/2/1 2/3/1 1/4/1 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Bottom +f 11/5/2 10/6/2 14/7/2 13/8/2 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Right-Left +f 1/9/3 2/10/3 3/11/3 4/12/3 +f 5/13/4 6/1/4 7/14/4 8/15/4 +f 4/12/3 9/16/3 10/17/3 11/18/3 +f 12/19/4 7/14/4 13/8/4 14/20/4 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Back +f 6/21/5 1/9/5 4/12/5 7/22/5 +f 7/22/6 4/12/6 11/18/6 13/23/6 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Front +f 2/10/7 5/24/7 8/25/7 3/11/7 +f 9/16/8 12/26/8 14/27/8 10/17/8 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Inside +f 4/28/9 3/29/9 8/30/9 7/31/9 +f 7/31/10 12/32/10 9/33/10 4/28/10 diff --git a/games/devtest/mods/testformspec/textures/default_chest_front.png b/games/devtest/mods/testformspec/textures/default_chest_front.png Binary files differnew file mode 100644 index 000000000..85227d8fd --- /dev/null +++ b/games/devtest/mods/testformspec/textures/default_chest_front.png diff --git a/games/devtest/mods/testformspec/textures/default_chest_inside.png b/games/devtest/mods/testformspec/textures/default_chest_inside.png Binary files differnew file mode 100644 index 000000000..5f7b6b132 --- /dev/null +++ b/games/devtest/mods/testformspec/textures/default_chest_inside.png diff --git a/games/devtest/mods/testformspec/textures/default_chest_side.png b/games/devtest/mods/testformspec/textures/default_chest_side.png Binary files differnew file mode 100644 index 000000000..44a65a43d --- /dev/null +++ b/games/devtest/mods/testformspec/textures/default_chest_side.png diff --git a/games/devtest/mods/testformspec/textures/default_chest_top.png b/games/devtest/mods/testformspec/textures/default_chest_top.png Binary files differnew file mode 100644 index 000000000..f4a92ee07 --- /dev/null +++ b/games/devtest/mods/testformspec/textures/default_chest_top.png diff --git a/games/devtest/mods/testformspec/textures/testformspec_character.png b/games/devtest/mods/testformspec/textures/testformspec_character.png Binary files differnew file mode 100644 index 000000000..05021781e --- /dev/null +++ b/games/devtest/mods/testformspec/textures/testformspec_character.png diff --git a/games/devtest/mods/testnodes/drawtypes.lua b/games/devtest/mods/testnodes/drawtypes.lua index 6bf57fa37..ff970144d 100644 --- a/games/devtest/mods/testnodes/drawtypes.lua +++ b/games/devtest/mods/testnodes/drawtypes.lua @@ -145,6 +145,23 @@ minetest.register_node("testnodes:fencelike", { }) minetest.register_node("testnodes:torchlike", { + description = S("Torchlike Drawtype Test Node"), + drawtype = "torchlike", + paramtype = "light", + tiles = { + "testnodes_torchlike_floor.png", + "testnodes_torchlike_ceiling.png", + "testnodes_torchlike_wall.png", + }, + + + walkable = false, + sunlight_propagates = true, + groups = { dig_immediate = 3 }, + inventory_image = fallback_image("testnodes_torchlike_floor.png"), +}) + +minetest.register_node("testnodes:torchlike_wallmounted", { description = S("Wallmounted Torchlike Drawtype Test Node"), drawtype = "torchlike", paramtype = "light", @@ -162,6 +179,8 @@ minetest.register_node("testnodes:torchlike", { inventory_image = fallback_image("testnodes_torchlike_floor.png"), }) + + minetest.register_node("testnodes:signlike", { description = S("Wallmounted Signlike Drawtype Test Node"), drawtype = "signlike", @@ -331,68 +350,72 @@ minetest.register_node("testnodes:plantlike_rooted_degrotate", { }) -- Demonstrative liquid nodes, source and flowing form. -minetest.register_node("testnodes:liquid", { - description = S("Source Liquid Drawtype Test Node"), - drawtype = "liquid", - paramtype = "light", - tiles = { - "testnodes_liquidsource.png", - }, - special_tiles = { - {name="testnodes_liquidsource.png", backface_culling=false}, - {name="testnodes_liquidsource.png", backface_culling=true}, - }, - use_texture_alpha = true, - - - 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, +-- 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, + 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, + liquid_range = r, + liquid_viscosity = 0, + liquid_alternative_flowing = "testnodes:liquid_flowing_"..r, + liquid_alternative_source = "testnodes:liquid_"..r, + groups = { dig_immediate = 3 }, + }) +end - 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 }, -}) +-- 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", @@ -405,18 +428,17 @@ minetest.register_node("testnodes:liquid_flowing_waving", { paramtype = "light", paramtype2 = "flowingliquid", tiles = { - "testnodes_liquidflowing.png^[brighten", + "testnodes_liquidflowing.png^[colorize:#0000FF:127", }, special_tiles = { - {name="testnodes_liquidflowing.png^[brighten", backface_culling=false}, - {name="testnodes_liquidflowing.png^[brighten", backface_culling=false}, + {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, + {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false}, }, - use_texture_alpha = true, + use_texture_alpha = "blend", waving = 3, walkable = false, - liquidtype = "flowing", liquid_range = 1, liquid_viscosity = 0, liquid_alternative_flowing = "testnodes:liquid_flowing_waving", @@ -424,8 +446,6 @@ minetest.register_node("testnodes:liquid_flowing_waving", { groups = { dig_immediate = 3 }, }) - - -- Invisible node minetest.register_node("testnodes:airlike", { description = S("Airlike Drawtype Test Node"), @@ -514,10 +534,19 @@ local scale = function(subname, desc_double, desc_half) minetest.register_node("testnodes:"..subname.."_half", def) end +scale("allfaces", + S("Double-sized Allfaces Drawtype Test Node"), + S("Half-sized Allfaces Drawtype Test Node")) +scale("allfaces_optional", + S("Double-sized Allfaces Optional Drawtype Test Node"), + S("Half-sized Allfaces Optional Drawtype Test Node")) +scale("allfaces_optional_waving", + S("Double-sized Waving Allfaces Optional Drawtype Test Node"), + S("Half-sized Waving Allfaces Optional Drawtype Test Node")) scale("plantlike", S("Double-sized Plantlike Drawtype Test Node"), S("Half-sized Plantlike Drawtype Test Node")) -scale("torchlike", +scale("torchlike_wallmounted", S("Double-sized Wallmounted Torchlike Drawtype Test Node"), S("Half-sized Wallmounted Torchlike Drawtype Test Node")) scale("signlike", diff --git a/games/devtest/mods/testnodes/light.lua b/games/devtest/mods/testnodes/light.lua index 94409e83f..8ab4416d9 100644 --- a/games/devtest/mods/testnodes/light.lua +++ b/games/devtest/mods/testnodes/light.lua @@ -22,7 +22,8 @@ end -- Lets light through, but not sunlight, leading to a -- reduction in light level when light passes through minetest.register_node("testnodes:sunlight_filter", { - description = S("Sunlight Filter"), + description = S("Sunlight Filter") .."\n".. + S("Lets light through, but weakens sunlight"), paramtype = "light", @@ -35,7 +36,8 @@ minetest.register_node("testnodes:sunlight_filter", { -- Lets light and sunlight through without obstruction minetest.register_node("testnodes:sunlight_propagator", { - description = S("Sunlight Propagator"), + description = S("Sunlight Propagator") .."\n".. + S("Lets all light through"), paramtype = "light", sunlight_propagates = true, 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/mod.conf b/games/devtest/mods/testnodes/mod.conf index 4824c6ed0..d894c3452 100644 --- a/games/devtest/mods/testnodes/mod.conf +++ b/games/devtest/mods/testnodes/mod.conf @@ -1,2 +1,3 @@ name = testnodes description = Contains a bunch of basic example nodes for demonstrative purposes, development and testing +depends = stairs diff --git a/games/devtest/mods/testnodes/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/textures.lua b/games/devtest/mods/testnodes/textures.lua index 6ffef8fe9..f6e6a0c2a 100644 --- a/games/devtest/mods/testnodes/textures.lua +++ b/games/devtest/mods/testnodes/textures.lua @@ -46,28 +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 + diff --git a/games/devtest/mods/testpathfinder/init.lua b/games/devtest/mods/testpathfinder/init.lua index f94848236..67748afca 100644 --- a/games/devtest/mods/testpathfinder/init.lua +++ b/games/devtest/mods/testpathfinder/init.lua @@ -121,7 +121,11 @@ end -- Sneak+punch: Select pathfinding algorithm -- Place: Select destination node minetest.register_tool("testpathfinder:testpathfinder", { - description = S("Pathfinder Tester"), + description = S("Pathfinder Tester") .."\n".. + S("Finds path between 2 points") .."\n".. + S("Place on node: Select destination") .."\n".. + S("Punch: Find path from here") .."\n".. + S("Sneak+Punch: Change algorithm"), inventory_image = "testpathfinder_testpathfinder.png", groups = { testtool = 1, disable_repair = 1 }, on_use = find_path_or_set_algorithm, diff --git a/games/devtest/mods/testtools/init.lua b/games/devtest/mods/testtools/init.lua index d68a086b9..d578b264a 100644 --- a/games/devtest/mods/testtools/init.lua +++ b/games/devtest/mods/testtools/init.lua @@ -1,15 +1,17 @@ local S = minetest.get_translator("testtools") local F = minetest.formspec_escape +dofile(minetest.get_modpath("testtools") .. "/light.lua") + -- TODO: Add a Node Metadata tool --- Param 2 Tool: Set param2 value of tools --- Punch: +1 --- Punch+Shift: +8 --- Place: -1 --- Place+Shift: -8 minetest.register_tool("testtools:param2tool", { - description = S("Param2 Tool"), + description = S("Param2 Tool") .."\n".. + S("Modify param2 value of nodes") .."\n".. + S("Punch: +1") .."\n".. + S("Sneak+Punch: +8") .."\n".. + S("Place: -1") .."\n".. + S("Sneak+Place: -8"), inventory_image = "testtools_param2tool.png", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) @@ -47,7 +49,11 @@ minetest.register_tool("testtools:param2tool", { }) minetest.register_tool("testtools:node_setter", { - description = S("Node Setter"), + description = S("Node Setter") .."\n".. + S("Replace pointed node with something else") .."\n".. + S("Punch: Select pointed node") .."\n".. + S("Place on node: Replace node with selected node") .."\n".. + S("Place in air: Manually select a node"), inventory_image = "testtools_node_setter.png", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) @@ -125,7 +131,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end) minetest.register_tool("testtools:remover", { - description = S("Remover"), + description = S("Remover") .."\n".. + S("Punch: Remove pointed node or object"), inventory_image = "testtools_remover.png", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) @@ -136,13 +143,17 @@ minetest.register_tool("testtools:remover", { local obj = pointed_thing.ref if not obj:is_player() then obj:remove() + else + minetest.chat_send_player(user:get_player_name(), S("Can't remove players!")) end end end, }) minetest.register_tool("testtools:falling_node_tool", { - description = S("Falling Node Tool"), + description = S("Falling Node Tool") .."\n".. + S("Punch: Make pointed node fall") .."\n".. + S("Place: Move pointed node 2 units upwards, then make it fall"), inventory_image = "testtools_falling_node_tool.png", groups = { testtool = 1, disable_repair = 1 }, on_place = function(itemstack, user, pointed_thing) @@ -191,7 +202,11 @@ minetest.register_tool("testtools:falling_node_tool", { }) minetest.register_tool("testtools:rotator", { - description = S("Entity Rotator"), + description = S("Entity Rotator") .. "\n" .. + S("Rotate pointed entity") .."\n".. + S("Punch: Yaw") .."\n".. + S("Sneak+Punch: Pitch") .."\n".. + S("Aux1+Punch: Roll"), inventory_image = "testtools_entity_rotator.png", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) @@ -244,7 +259,12 @@ local mover_config = function(itemstack, user, pointed_thing) end minetest.register_tool("testtools:object_mover", { - description = S("Object Mover"), + description = S("Object Mover") .."\n".. + S("Move pointed object towards or away from you") .."\n".. + S("Punch: Move by distance").."\n".. + S("Sneak+Punch: Move by negative distance").."\n".. + S("Place: Increase distance").."\n".. + S("Sneak+Place: Decrease distance"), inventory_image = "testtools_object_mover.png", groups = { testtool = 1, disable_repair = 1 }, on_place = mover_config, @@ -287,7 +307,10 @@ minetest.register_tool("testtools:object_mover", { minetest.register_tool("testtools:entity_scaler", { - description = S("Entity Visual Scaler"), + description = S("Entity Visual Scaler") .."\n".. + S("Scale visual size of entities") .."\n".. + S("Punch: Increase size") .."\n".. + S("Sneak+Punch: Decrease scale"), inventory_image = "testtools_entity_scaler.png", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) @@ -342,14 +365,21 @@ local function get_entity_list() return entity_list end minetest.register_tool("testtools:entity_spawner", { - description = S("Entity Spawner"), + description = S("Entity Spawner") .."\n".. + S("Spawns entities") .."\n".. + S("Punch: Select entity to spawn") .."\n".. + S("Place: Spawn selected entity"), inventory_image = "testtools_entity_spawner.png", groups = { testtool = 1, disable_repair = 1 }, on_place = function(itemstack, user, pointed_thing) local name = user:get_player_name() - if selections[name] and pointed_thing.type == "node" then - local pos = pointed_thing.above - minetest.add_entity(pos, get_entity_list()[selections[name]]) + if pointed_thing.type == "node" then + if selections[name] then + local pos = pointed_thing.above + minetest.add_entity(pos, get_entity_list()[selections[name]]) + else + minetest.chat_send_player(name, S("Select an entity first (with punch key)!")) + end end end, on_use = function(itemstack, user, pointed_thing) @@ -435,7 +465,10 @@ local editor_formspec = function(playername, obj, value, sel) end minetest.register_tool("testtools:object_editor", { - description = S("Object Property Editor"), + description = S("Object Property Editor") .."\n".. + S("Edit properties of objects") .."\n".. + S("Punch object: Edit object") .."\n".. + S("Punch air: Edit yourself"), inventory_image = "testtools_object_editor.png", groups = { testtool = 1, disable_repair = 1 }, on_use = function(itemstack, user, pointed_thing) @@ -515,7 +548,14 @@ local attacher_config = function(itemstack, user, pointed_thing) end minetest.register_tool("testtools:object_attacher", { - description = S("Object Attacher"), + description = S("Object Attacher") .."\n".. + S("Attach object to another") .."\n".. + S("Punch objects to first select parent object, then the child object to attach") .."\n".. + S("Punch air to select yourself") .."\n".. + S("Place: Incease attachment Y offset") .."\n".. + S("Sneak+Place: Decease attachment Y offset") .."\n".. + S("Aux1+Place: Incease attachment rotation") .."\n".. + S("Aux1+Sneak+Place: Decrease attachment rotation"), inventory_image = "testtools_object_attacher.png", groups = { testtool = 1, disable_repair = 1 }, on_place = attacher_config, diff --git a/games/devtest/mods/testtools/light.lua b/games/devtest/mods/testtools/light.lua new file mode 100644 index 000000000..a9458ca6b --- /dev/null +++ b/games/devtest/mods/testtools/light.lua @@ -0,0 +1,22 @@ + +local S = minetest.get_translator("testtools") + +minetest.register_tool("testtools:lighttool", { + description = S("Light tool"), + inventory_image = "testtools_lighttool.png", + groups = { testtool = 1, disable_repair = 1 }, + on_use = function(itemstack, user, pointed_thing) + local pos = pointed_thing.above + if pointed_thing.type ~= "node" or not pos then + return + end + + local node = minetest.get_node(pos) + local time = minetest.get_timeofday() + local sunlight = minetest.get_natural_light(pos) + local artificial = minetest.get_artificial_light(node.param1) + local message = ("param1 0x%02x | time %.5f | sunlight %d | artificial %d") + :format(node.param1, time, sunlight, artificial) + minetest.chat_send_player(user:get_player_name(), message) + end +}) diff --git a/games/devtest/mods/testtools/textures/testtools_lighttool.png b/games/devtest/mods/testtools/textures/testtools_lighttool.png Binary files differnew file mode 100644 index 000000000..6f744b7fa --- /dev/null +++ b/games/devtest/mods/testtools/textures/testtools_lighttool.png diff --git a/games/devtest/mods/unittests/init.lua b/games/devtest/mods/unittests/init.lua index 6c1728420..12c67f78b 100644 --- a/games/devtest/mods/unittests/init.lua +++ b/games/devtest/mods/unittests/init.lua @@ -5,10 +5,12 @@ dofile(modpath .. "/random.lua") dofile(modpath .. "/player.lua") dofile(modpath .. "/crafting_prepare.lua") dofile(modpath .. "/crafting.lua") +dofile(modpath .. "/itemdescription.lua") if minetest.settings:get_bool("devtest_unittests_autostart", false) then unittests.test_random() unittests.test_crafting() + unittests.test_short_desc() minetest.register_on_joinplayer(function(player) unittests.test_player(player) end) diff --git a/games/devtest/mods/unittests/itemdescription.lua b/games/devtest/mods/unittests/itemdescription.lua new file mode 100644 index 000000000..d6ee6551a --- /dev/null +++ b/games/devtest/mods/unittests/itemdescription.lua @@ -0,0 +1,51 @@ +local full_description = "Colorful Pickaxe\nThe best pick." +minetest.register_tool("unittests:colorful_pick", { + description = full_description, + inventory_image = "basetools_mesepick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, + crumbly={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, + snappy={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3} + }, + damage_groups = {fleshy=4}, + }, +}) + +minetest.register_chatcommand("item_description", { + param = "", + description = "Show the short and full description of the wielded item.", + func = function(name) + local player = minetest.get_player_by_name(name) + local item = player:get_wielded_item() + return true, string.format("short_description: %s\ndescription: %s", + item:get_short_description(), item:get_description()) + end +}) + +function unittests.test_short_desc() + local 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(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() == "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") + assert(stack:get_description() == "Hello World") + + return true +end 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 Binary files differnew file mode 100644 index 000000000..58670305d --- /dev/null +++ b/games/devtest/mods/unittests/textures/default_dirt.png diff --git a/games/devtest/mods/util_commands/init.lua b/games/devtest/mods/util_commands/init.lua index 3a0e91a41..ca5dca2d9 100644 --- a/games/devtest/mods/util_commands/init.lua +++ b/games/devtest/mods/util_commands/init.lua @@ -36,8 +36,12 @@ minetest.register_chatcommand("hp", { end, }) -minetest.register_chatcommand("zoom", { - params = "[<zoom_fov>]", +minetest.register_on_joinplayer(function(player) + player:set_properties({zoom_fov = 15}) +end) + +minetest.register_chatcommand("zoomfov", { + params = "[<FOV>]", description = "Set or display your zoom_fov", func = function(name, param) local player = minetest.get_player_by_name(name) @@ -58,8 +62,6 @@ minetest.register_chatcommand("zoom", { end, }) - - local s_infplace = minetest.settings:get("devtest_infplace") if s_infplace == "true" then infplace = true @@ -112,6 +114,62 @@ minetest.register_chatcommand("detach", { end, }) +-- Use this to test waypoint capabilities +minetest.register_chatcommand("test_waypoints", { + params = "[change_immediate]", + description = "tests waypoint capabilities", + func = function(name, params) + local player = minetest.get_player_by_name(name) + local regular = player:hud_add { + hud_elem_type = "waypoint", + name = "regular waypoint", + text = "m", + number = 0xFF0000, + world_pos = vector.add(player:get_pos(), {x = 0, y = 1.5, z = 0}) + } + local reduced_precision = player:hud_add { + hud_elem_type = "waypoint", + name = "better waypoint", + text = "m (0.5 steps, precision = 2)", + precision = 10, + number = 0xFFFF00, + world_pos = vector.add(player:get_pos(), {x = 0, y = 1, z = 0}) + } + local function change() + if regular then + player:hud_change(regular, "world_pos", vector.add(player:get_pos(), {x = 0, y = 3, z = 0})) + end + if reduced_precision then + player:hud_change(reduced_precision, "precision", 2) + end + end + if params ~= "" then + -- change immediate + change() + else + minetest.after(0.5, change) + end + regular = regular or "error" + reduced_precision = reduced_precision or "error" + local hidden_distance = player:hud_add { + hud_elem_type = "waypoint", + name = "waypoint with hidden distance", + text = "this text is hidden as well (precision = 0)", + precision = 0, + number = 0x0000FF, + world_pos = vector.add(player:get_pos(), {x = 0, y = 0.5, z = 0}) + } or "error" + local image_waypoint = player:hud_add { + hud_elem_type = "image_waypoint", + text = "wieldhand.png", + world_pos = player:get_pos(), + scale = {x = 10, y = 10}, + offset = {x = 0, y = -32} + } or "error" + minetest.chat_send_player(name, "Waypoint IDs: regular: " .. regular .. ", reduced precision: " .. reduced_precision .. + ", hidden distance: " .. hidden_distance .. ", image waypoint: " .. image_waypoint) + end +}) -- Unlimited node placement minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) diff --git a/lib/jsoncpp/json/UPDATING b/lib/jsoncpp/json/UPDATING index f0226e8ee..0893244cf 100644 --- a/lib/jsoncpp/json/UPDATING +++ b/lib/jsoncpp/json/UPDATING @@ -1,6 +1,6 @@ #!/bin/sh cd .. -git clone https://github.com/open-source-parsers/jsoncpp -b 1.8.3 --depth 1 +git clone https://github.com/open-source-parsers/jsoncpp -b 1.9.4 --depth 1 cd jsoncpp python amalgamate.py cp -R dist/json ../json diff --git a/lib/jsoncpp/json/json-forwards.h b/lib/jsoncpp/json/json-forwards.h index de2e4bd79..d3260c57c 100644 --- a/lib/jsoncpp/json/json-forwards.h +++ b/lib/jsoncpp/json/json-forwards.h @@ -80,6 +80,151 @@ license you like. #define JSON_IS_AMALGAMATION // ////////////////////////////////////////////////////////////////////// +// Beginning of content of file: include/json/version.h +// ////////////////////////////////////////////////////////////////////// + +#ifndef JSON_VERSION_H_INCLUDED +#define JSON_VERSION_H_INCLUDED + +// Note: version must be updated in three places when doing a release. This +// annoying process ensures that amalgamate, CMake, and meson all report the +// correct version. +// 1. /meson.build +// 2. /include/json/version.h +// 3. /CMakeLists.txt +// IMPORTANT: also update the SOVERSION!! + +#define JSONCPP_VERSION_STRING "1.9.4" +#define JSONCPP_VERSION_MAJOR 1 +#define JSONCPP_VERSION_MINOR 9 +#define JSONCPP_VERSION_PATCH 3 +#define JSONCPP_VERSION_QUALIFIER +#define JSONCPP_VERSION_HEXA \ + ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \ + (JSONCPP_VERSION_PATCH << 8)) + +#ifdef JSONCPP_USING_SECURE_MEMORY +#undef JSONCPP_USING_SECURE_MEMORY +#endif +#define JSONCPP_USING_SECURE_MEMORY 0 +// If non-zero, the library zeroes any memory that it has allocated before +// it frees its memory. + +#endif // JSON_VERSION_H_INCLUDED + +// ////////////////////////////////////////////////////////////////////// +// End of content of file: include/json/version.h +// ////////////////////////////////////////////////////////////////////// + + + + + + +// ////////////////////////////////////////////////////////////////////// +// Beginning of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + +// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors +// Distributed under MIT license, or public domain if desired and +// recognized in your jurisdiction. +// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE + +#ifndef JSON_ALLOCATOR_H_INCLUDED +#define JSON_ALLOCATOR_H_INCLUDED + +#include <cstring> +#include <memory> + +#pragma pack(push, 8) + +namespace Json { +template <typename T> class SecureAllocator { +public: + // Type definitions + using value_type = T; + using pointer = T*; + using const_pointer = const T*; + using reference = T&; + using const_reference = const T&; + using size_type = std::size_t; + using difference_type = std::ptrdiff_t; + + /** + * Allocate memory for N items using the standard allocator. + */ + pointer allocate(size_type n) { + // allocate using "global operator new" + return static_cast<pointer>(::operator new(n * sizeof(T))); + } + + /** + * Release memory which was allocated for N items at pointer P. + * + * The memory block is filled with zeroes before being released. + * The pointer argument is tagged as "volatile" to prevent the + * compiler optimizing out this critical step. + */ + void deallocate(volatile pointer p, size_type n) { + std::memset(p, 0, n * sizeof(T)); + // free using "global operator delete" + ::operator delete(p); + } + + /** + * Construct an item in-place at pointer P. + */ + template <typename... Args> void construct(pointer p, Args&&... args) { + // construct using "placement new" and "perfect forwarding" + ::new (static_cast<void*>(p)) T(std::forward<Args>(args)...); + } + + size_type max_size() const { return size_t(-1) / sizeof(T); } + + pointer address(reference x) const { return std::addressof(x); } + + const_pointer address(const_reference x) const { return std::addressof(x); } + + /** + * Destroy an item in-place at pointer P. + */ + void destroy(pointer p) { + // destroy using "explicit destructor" + p->~T(); + } + + // Boilerplate + SecureAllocator() {} + template <typename U> SecureAllocator(const SecureAllocator<U>&) {} + template <typename U> struct rebind { using other = SecureAllocator<U>; }; +}; + +template <typename T, typename U> +bool operator==(const SecureAllocator<T>&, const SecureAllocator<U>&) { + return true; +} + +template <typename T, typename U> +bool operator!=(const SecureAllocator<T>&, const SecureAllocator<U>&) { + return false; +} + +} // namespace Json + +#pragma pack(pop) + +#endif // JSON_ALLOCATOR_H_INCLUDED + +// ////////////////////////////////////////////////////////////////////// +// End of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + + + + + + +// ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// @@ -90,19 +235,14 @@ license you like. #ifndef JSON_CONFIG_H_INCLUDED #define JSON_CONFIG_H_INCLUDED -#include <stddef.h> -#include <string> //typedef String -#include <stdint.h> //typedef int64_t, uint64_t - -/// If defined, indicates that json library is embedded in CppTL library. -//# define JSON_IN_CPPTL 1 - -/// If defined, indicates that json may leverage CppTL library -//# define JSON_USE_CPPTL 1 -/// If defined, indicates that cpptl vector based map should be used instead of -/// std::map -/// as Value container. -//# define JSON_USE_CPPTL_SMALLMAP 1 +#include <cstddef> +#include <cstdint> +#include <istream> +#include <memory> +#include <ostream> +#include <sstream> +#include <string> +#include <type_traits> // If non-zero, the library uses exceptions to report bad input instead of C // assertion macros. The default is to use exceptions. @@ -110,164 +250,132 @@ license you like. #define JSON_USE_EXCEPTION 1 #endif +// Temporary, tracked for removal with issue #982. +#ifndef JSON_USE_NULLREF +#define JSON_USE_NULLREF 1 +#endif + /// If defined, indicates that the source file is amalgamated /// to prevent private header inclusion. /// Remarks: it is automatically defined in the generated amalgamated header. // #define JSON_IS_AMALGAMATION -#ifdef JSON_IN_CPPTL -#include <cpptl/config.h> -#ifndef JSON_USE_CPPTL -#define JSON_USE_CPPTL 1 -#endif -#endif - -#ifdef JSON_IN_CPPTL -#define JSON_API CPPTL_API -#elif defined(JSON_DLL_BUILD) +// Export macros for DLL visibility +#if defined(JSON_DLL_BUILD) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllexport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING +#elif defined(__GNUC__) || defined(__clang__) +#define JSON_API __attribute__((visibility("default"))) #endif // if defined(_MSC_VER) + #elif defined(JSON_DLL) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllimport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) -#endif // ifdef JSON_IN_CPPTL +#endif // ifdef JSON_DLL_BUILD + #if !defined(JSON_API) #define JSON_API #endif -// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for -// integer -// Storages, and 64 bits integer support is disabled. -// #define JSON_NO_INT64 1 +#if defined(_MSC_VER) && _MSC_VER < 1800 +#error \ + "ERROR: Visual Studio 12 (2013) with _MSC_VER=1800 is the oldest supported compiler with sufficient C++11 capabilities" +#endif -#if defined(_MSC_VER) // MSVC -# if _MSC_VER <= 1200 // MSVC 6 - // Microsoft Visual Studio 6 only support conversion from __int64 to double - // (no conversion from unsigned __int64). -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 - // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' - // characters in the debug information) - // All projects I've ever seen with VS6 were using this globally (not bothering - // with pragma push/pop). -# pragma warning(disable : 4786) -# endif // MSVC 6 - -# if _MSC_VER >= 1500 // MSVC 2008 - /// Indicates that the following function is deprecated. -# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) -# endif - -#endif // defined(_MSC_VER) - -// In c++11 the override keyword allows you to explicitly define that a function -// is intended to override the base-class version. This makes the code more -// managable and fixes a set of common hard-to-find bugs. -#if __cplusplus >= 201103L -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept -#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT throw() -#elif defined(_MSC_VER) && _MSC_VER >= 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept +#if defined(_MSC_VER) && _MSC_VER < 1900 +// As recommended at +// https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010 +extern JSON_API int msvc_pre1900_c99_snprintf(char* outBuf, size_t size, + const char* format, ...); +#define jsoncpp_snprintf msvc_pre1900_c99_snprintf #else -# define JSONCPP_OVERRIDE -# define JSONCPP_NOEXCEPT throw() +#define jsoncpp_snprintf std::snprintf #endif -#ifndef JSON_HAS_RVALUE_REFERENCES +// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for +// integer +// Storages, and 64 bits integer support is disabled. +// #define JSON_NO_INT64 1 -#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010 -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // MSVC >= 2010 +// JSONCPP_OVERRIDE is maintained for backwards compatibility of external tools. +// C++11 should be used directly in JSONCPP. +#define JSONCPP_OVERRIDE override #ifdef __clang__ -#if __has_feature(cxx_rvalue_references) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // has_feature - -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // GXX_EXPERIMENTAL - -#endif // __clang__ || __GNUC__ - -#endif // not defined JSON_HAS_RVALUE_REFERENCES - -#ifndef JSON_HAS_RVALUE_REFERENCES -#define JSON_HAS_RVALUE_REFERENCES 0 +#if __has_extension(attribute_deprecated_with_message) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) #endif - -#ifdef __clang__ -# if __has_extension(attribute_deprecated_with_message) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# endif -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) -# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) -# endif // GNUC version -#endif // __clang__ || __GNUC__ +#elif defined(__GNUC__) // not clang (gcc comes later since clang emulates gcc) +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) +#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) +#endif // GNUC version +#elif defined(_MSC_VER) // MSVC (after clang because clang on Windows emulates + // MSVC) +#define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) +#endif // __clang__ || __GNUC__ || _MSC_VER #if !defined(JSONCPP_DEPRECATED) #define JSONCPP_DEPRECATED(message) #endif // if !defined(JSONCPP_DEPRECATED) -#if __GNUC__ >= 6 -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6)) +#define JSON_USE_INT64_DOUBLE_CONVERSION 1 #endif #if !defined(JSON_IS_AMALGAMATION) -# include "version.h" - -# if JSONCPP_USING_SECURE_MEMORY -# include "allocator.h" //typedef Allocator -# endif +#include "allocator.h" +#include "version.h" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { -typedef int Int; -typedef unsigned int UInt; +using Int = int; +using UInt = unsigned int; #if defined(JSON_NO_INT64) -typedef int LargestInt; -typedef unsigned int LargestUInt; +using LargestInt = int; +using LargestUInt = unsigned int; #undef JSON_HAS_INT64 #else // if defined(JSON_NO_INT64) // For Microsoft Visual use specific types as long long is not supported #if defined(_MSC_VER) // Microsoft Visual Studio -typedef __int64 Int64; -typedef unsigned __int64 UInt64; +using Int64 = __int64; +using UInt64 = unsigned __int64; #else // if defined(_MSC_VER) // Other platforms, use long long -typedef int64_t Int64; -typedef uint64_t UInt64; -#endif // if defined(_MSC_VER) -typedef Int64 LargestInt; -typedef UInt64 LargestUInt; +using Int64 = int64_t; +using UInt64 = uint64_t; +#endif // if defined(_MSC_VER) +using LargestInt = Int64; +using LargestUInt = UInt64; #define JSON_HAS_INT64 #endif // if defined(JSON_NO_INT64) -#if JSONCPP_USING_SECURE_MEMORY -#define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> > -#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > -#define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>> -#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > -#define JSONCPP_ISTREAM std::istream -#else -#define JSONCPP_STRING std::string -#define JSONCPP_OSTRINGSTREAM std::ostringstream -#define JSONCPP_OSTREAM std::ostream -#define JSONCPP_ISTRINGSTREAM std::istringstream -#define JSONCPP_ISTREAM std::istream -#endif // if JSONCPP_USING_SECURE_MEMORY -} // end namespace Json + +template <typename T> +using Allocator = + typename std::conditional<JSONCPP_USING_SECURE_MEMORY, SecureAllocator<T>, + std::allocator<T>>::type; +using String = std::basic_string<char, std::char_traits<char>, Allocator<char>>; +using IStringStream = + std::basic_istringstream<String::value_type, String::traits_type, + String::allocator_type>; +using OStringStream = + std::basic_ostringstream<String::value_type, String::traits_type, + String::allocator_type>; +using IStream = std::istream; +using OStream = std::ostream; +} // namespace Json + +// Legacy names (formerly macros). +using JSONCPP_STRING = Json::String; +using JSONCPP_ISTRINGSTREAM = Json::IStringStream; +using JSONCPP_OSTRINGSTREAM = Json::OStringStream; +using JSONCPP_ISTREAM = Json::IStream; +using JSONCPP_OSTREAM = Json::OStream; #endif // JSON_CONFIG_H_INCLUDED @@ -299,17 +407,23 @@ typedef UInt64 LargestUInt; namespace Json { // writer.h +class StreamWriter; +class StreamWriterBuilder; +class Writer; class FastWriter; class StyledWriter; +class StyledStreamWriter; // reader.h class Reader; +class CharReader; +class CharReaderBuilder; -// features.h +// json_features.h class Features; // value.h -typedef unsigned int ArrayIndex; +using ArrayIndex = unsigned int; class StaticString; class Path; class PathArgument; diff --git a/lib/jsoncpp/json/json.h b/lib/jsoncpp/json/json.h index 625ba02e9..3f4813a95 100644 --- a/lib/jsoncpp/json/json.h +++ b/lib/jsoncpp/json/json.h @@ -82,17 +82,25 @@ license you like. // Beginning of content of file: include/json/version.h // ////////////////////////////////////////////////////////////////////// -// DO NOT EDIT. This file (and "version") is generated by CMake. -// Run CMake configure step to update it. #ifndef JSON_VERSION_H_INCLUDED -# define JSON_VERSION_H_INCLUDED - -# define JSONCPP_VERSION_STRING "1.8.4" -# define JSONCPP_VERSION_MAJOR 1 -# define JSONCPP_VERSION_MINOR 8 -# define JSONCPP_VERSION_PATCH 4 -# define JSONCPP_VERSION_QUALIFIER -# define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8)) +#define JSON_VERSION_H_INCLUDED + +// Note: version must be updated in three places when doing a release. This +// annoying process ensures that amalgamate, CMake, and meson all report the +// correct version. +// 1. /meson.build +// 2. /include/json/version.h +// 3. /CMakeLists.txt +// IMPORTANT: also update the SOVERSION!! + +#define JSONCPP_VERSION_STRING "1.9.4" +#define JSONCPP_VERSION_MAJOR 1 +#define JSONCPP_VERSION_MINOR 9 +#define JSONCPP_VERSION_PATCH 3 +#define JSONCPP_VERSION_QUALIFIER +#define JSONCPP_VERSION_HEXA \ + ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \ + (JSONCPP_VERSION_PATCH << 8)) #ifdef JSONCPP_USING_SECURE_MEMORY #undef JSONCPP_USING_SECURE_MEMORY @@ -113,6 +121,109 @@ license you like. // ////////////////////////////////////////////////////////////////////// +// Beginning of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + +// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors +// Distributed under MIT license, or public domain if desired and +// recognized in your jurisdiction. +// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE + +#ifndef JSON_ALLOCATOR_H_INCLUDED +#define JSON_ALLOCATOR_H_INCLUDED + +#include <cstring> +#include <memory> + +#pragma pack(push, 8) + +namespace Json { +template <typename T> class SecureAllocator { +public: + // Type definitions + using value_type = T; + using pointer = T*; + using const_pointer = const T*; + using reference = T&; + using const_reference = const T&; + using size_type = std::size_t; + using difference_type = std::ptrdiff_t; + + /** + * Allocate memory for N items using the standard allocator. + */ + pointer allocate(size_type n) { + // allocate using "global operator new" + return static_cast<pointer>(::operator new(n * sizeof(T))); + } + + /** + * Release memory which was allocated for N items at pointer P. + * + * The memory block is filled with zeroes before being released. + * The pointer argument is tagged as "volatile" to prevent the + * compiler optimizing out this critical step. + */ + void deallocate(volatile pointer p, size_type n) { + std::memset(p, 0, n * sizeof(T)); + // free using "global operator delete" + ::operator delete(p); + } + + /** + * Construct an item in-place at pointer P. + */ + template <typename... Args> void construct(pointer p, Args&&... args) { + // construct using "placement new" and "perfect forwarding" + ::new (static_cast<void*>(p)) T(std::forward<Args>(args)...); + } + + size_type max_size() const { return size_t(-1) / sizeof(T); } + + pointer address(reference x) const { return std::addressof(x); } + + const_pointer address(const_reference x) const { return std::addressof(x); } + + /** + * Destroy an item in-place at pointer P. + */ + void destroy(pointer p) { + // destroy using "explicit destructor" + p->~T(); + } + + // Boilerplate + SecureAllocator() {} + template <typename U> SecureAllocator(const SecureAllocator<U>&) {} + template <typename U> struct rebind { using other = SecureAllocator<U>; }; +}; + +template <typename T, typename U> +bool operator==(const SecureAllocator<T>&, const SecureAllocator<U>&) { + return true; +} + +template <typename T, typename U> +bool operator!=(const SecureAllocator<T>&, const SecureAllocator<U>&) { + return false; +} + +} // namespace Json + +#pragma pack(pop) + +#endif // JSON_ALLOCATOR_H_INCLUDED + +// ////////////////////////////////////////////////////////////////////// +// End of content of file: include/json/allocator.h +// ////////////////////////////////////////////////////////////////////// + + + + + + +// ////////////////////////////////////////////////////////////////////// // Beginning of content of file: include/json/config.h // ////////////////////////////////////////////////////////////////////// @@ -123,19 +234,14 @@ license you like. #ifndef JSON_CONFIG_H_INCLUDED #define JSON_CONFIG_H_INCLUDED -#include <stddef.h> -#include <string> //typedef String -#include <stdint.h> //typedef int64_t, uint64_t - -/// If defined, indicates that json library is embedded in CppTL library. -//# define JSON_IN_CPPTL 1 - -/// If defined, indicates that json may leverage CppTL library -//# define JSON_USE_CPPTL 1 -/// If defined, indicates that cpptl vector based map should be used instead of -/// std::map -/// as Value container. -//# define JSON_USE_CPPTL_SMALLMAP 1 +#include <cstddef> +#include <cstdint> +#include <istream> +#include <memory> +#include <ostream> +#include <sstream> +#include <string> +#include <type_traits> // If non-zero, the library uses exceptions to report bad input instead of C // assertion macros. The default is to use exceptions. @@ -143,164 +249,132 @@ license you like. #define JSON_USE_EXCEPTION 1 #endif +// Temporary, tracked for removal with issue #982. +#ifndef JSON_USE_NULLREF +#define JSON_USE_NULLREF 1 +#endif + /// If defined, indicates that the source file is amalgamated /// to prevent private header inclusion. /// Remarks: it is automatically defined in the generated amalgamated header. // #define JSON_IS_AMALGAMATION -#ifdef JSON_IN_CPPTL -#include <cpptl/config.h> -#ifndef JSON_USE_CPPTL -#define JSON_USE_CPPTL 1 -#endif -#endif - -#ifdef JSON_IN_CPPTL -#define JSON_API CPPTL_API -#elif defined(JSON_DLL_BUILD) +// Export macros for DLL visibility +#if defined(JSON_DLL_BUILD) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllexport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING +#elif defined(__GNUC__) || defined(__clang__) +#define JSON_API __attribute__((visibility("default"))) #endif // if defined(_MSC_VER) + #elif defined(JSON_DLL) #if defined(_MSC_VER) || defined(__MINGW32__) #define JSON_API __declspec(dllimport) #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING #endif // if defined(_MSC_VER) -#endif // ifdef JSON_IN_CPPTL +#endif // ifdef JSON_DLL_BUILD + #if !defined(JSON_API) #define JSON_API #endif -// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for -// integer -// Storages, and 64 bits integer support is disabled. -// #define JSON_NO_INT64 1 +#if defined(_MSC_VER) && _MSC_VER < 1800 +#error \ + "ERROR: Visual Studio 12 (2013) with _MSC_VER=1800 is the oldest supported compiler with sufficient C++11 capabilities" +#endif -#if defined(_MSC_VER) // MSVC -# if _MSC_VER <= 1200 // MSVC 6 - // Microsoft Visual Studio 6 only support conversion from __int64 to double - // (no conversion from unsigned __int64). -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 - // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' - // characters in the debug information) - // All projects I've ever seen with VS6 were using this globally (not bothering - // with pragma push/pop). -# pragma warning(disable : 4786) -# endif // MSVC 6 - -# if _MSC_VER >= 1500 // MSVC 2008 - /// Indicates that the following function is deprecated. -# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) -# endif - -#endif // defined(_MSC_VER) - -// In c++11 the override keyword allows you to explicitly define that a function -// is intended to override the base-class version. This makes the code more -// managable and fixes a set of common hard-to-find bugs. -#if __cplusplus >= 201103L -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept -#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT throw() -#elif defined(_MSC_VER) && _MSC_VER >= 1900 -# define JSONCPP_OVERRIDE override -# define JSONCPP_NOEXCEPT noexcept +#if defined(_MSC_VER) && _MSC_VER < 1900 +// As recommended at +// https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010 +extern JSON_API int msvc_pre1900_c99_snprintf(char* outBuf, size_t size, + const char* format, ...); +#define jsoncpp_snprintf msvc_pre1900_c99_snprintf #else -# define JSONCPP_OVERRIDE -# define JSONCPP_NOEXCEPT throw() +#define jsoncpp_snprintf std::snprintf #endif -#ifndef JSON_HAS_RVALUE_REFERENCES +// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for +// integer +// Storages, and 64 bits integer support is disabled. +// #define JSON_NO_INT64 1 -#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010 -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // MSVC >= 2010 +// JSONCPP_OVERRIDE is maintained for backwards compatibility of external tools. +// C++11 should be used directly in JSONCPP. +#define JSONCPP_OVERRIDE override #ifdef __clang__ -#if __has_feature(cxx_rvalue_references) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // has_feature - -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) -#define JSON_HAS_RVALUE_REFERENCES 1 -#endif // GXX_EXPERIMENTAL - -#endif // __clang__ || __GNUC__ - -#endif // not defined JSON_HAS_RVALUE_REFERENCES - -#ifndef JSON_HAS_RVALUE_REFERENCES -#define JSON_HAS_RVALUE_REFERENCES 0 +#if __has_extension(attribute_deprecated_with_message) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) #endif - -#ifdef __clang__ -# if __has_extension(attribute_deprecated_with_message) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# endif -#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) -# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) -# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) -# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) -# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) -# endif // GNUC version -#endif // __clang__ || __GNUC__ +#elif defined(__GNUC__) // not clang (gcc comes later since clang emulates gcc) +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message))) +#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) +#endif // GNUC version +#elif defined(_MSC_VER) // MSVC (after clang because clang on Windows emulates + // MSVC) +#define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) +#endif // __clang__ || __GNUC__ || _MSC_VER #if !defined(JSONCPP_DEPRECATED) #define JSONCPP_DEPRECATED(message) #endif // if !defined(JSONCPP_DEPRECATED) -#if __GNUC__ >= 6 -# define JSON_USE_INT64_DOUBLE_CONVERSION 1 +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6)) +#define JSON_USE_INT64_DOUBLE_CONVERSION 1 #endif #if !defined(JSON_IS_AMALGAMATION) -# include "version.h" - -# if JSONCPP_USING_SECURE_MEMORY -# include "allocator.h" //typedef Allocator -# endif +#include "allocator.h" +#include "version.h" #endif // if !defined(JSON_IS_AMALGAMATION) namespace Json { -typedef int Int; -typedef unsigned int UInt; +using Int = int; +using UInt = unsigned int; #if defined(JSON_NO_INT64) -typedef int LargestInt; -typedef unsigned int LargestUInt; +using LargestInt = int; +using LargestUInt = unsigned int; #undef JSON_HAS_INT64 #else // if defined(JSON_NO_INT64) // For Microsoft Visual use specific types as long long is not supported #if defined(_MSC_VER) // Microsoft Visual Studio -typedef __int64 Int64; -typedef unsigned __int64 UInt64; +using Int64 = __int64; +using UInt64 = unsigned __int64; #else // if defined(_MSC_VER) // Other platforms, use long long -typedef int64_t Int64; -typedef uint64_t UInt64; -#endif // if defined(_MSC_VER) -typedef Int64 LargestInt; -typedef UInt64 LargestUInt; +using Int64 = int64_t; +using UInt64 = uint64_t; +#endif // if defined(_MSC_VER) +using LargestInt = Int64; +using LargestUInt = UInt64; #define JSON_HAS_INT64 #endif // if defined(JSON_NO_INT64) -#if JSONCPP_USING_SECURE_MEMORY -#define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> > -#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > -#define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>> -#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > -#define JSONCPP_ISTREAM std::istream -#else -#define JSONCPP_STRING std::string -#define JSONCPP_OSTRINGSTREAM std::ostringstream -#define JSONCPP_OSTREAM std::ostream -#define JSONCPP_ISTRINGSTREAM std::istringstream -#define JSONCPP_ISTREAM std::istream -#endif // if JSONCPP_USING_SECURE_MEMORY -} // end namespace Json + +template <typename T> +using Allocator = + typename std::conditional<JSONCPP_USING_SECURE_MEMORY, SecureAllocator<T>, + std::allocator<T>>::type; +using String = std::basic_string<char, std::char_traits<char>, Allocator<char>>; +using IStringStream = + std::basic_istringstream<String::value_type, String::traits_type, + String::allocator_type>; +using OStringStream = + std::basic_ostringstream<String::value_type, String::traits_type, + String::allocator_type>; +using IStream = std::istream; +using OStream = std::ostream; +} // namespace Json + +// Legacy names (formerly macros). +using JSONCPP_STRING = Json::String; +using JSONCPP_ISTRINGSTREAM = Json::IStringStream; +using JSONCPP_OSTRINGSTREAM = Json::OStringStream; +using JSONCPP_ISTREAM = Json::IStream; +using JSONCPP_OSTREAM = Json::OStream; #endif // JSON_CONFIG_H_INCLUDED @@ -332,17 +406,23 @@ typedef UInt64 LargestUInt; namespace Json { // writer.h +class StreamWriter; +class StreamWriterBuilder; +class Writer; class FastWriter; class StyledWriter; +class StyledStreamWriter; // reader.h class Reader; +class CharReader; +class CharReaderBuilder; -// features.h +// json_features.h class Features; // value.h -typedef unsigned int ArrayIndex; +using ArrayIndex = unsigned int; class StaticString; class Path; class PathArgument; @@ -365,7 +445,7 @@ class ValueConstIterator; // ////////////////////////////////////////////////////////////////////// -// Beginning of content of file: include/json/features.h +// Beginning of content of file: include/json/json_features.h // ////////////////////////////////////////////////////////////////////// // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors @@ -373,8 +453,8 @@ class ValueConstIterator; // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_FEATURES_H_INCLUDED -#define CPPTL_JSON_FEATURES_H_INCLUDED +#ifndef JSON_FEATURES_H_INCLUDED +#define JSON_FEATURES_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "forwards.h" @@ -411,27 +491,27 @@ public: Features(); /// \c true if comments are allowed. Default: \c true. - bool allowComments_; + bool allowComments_{true}; /// \c true if root must be either an array or an object value. Default: \c /// false. - bool strictRoot_; + bool strictRoot_{false}; /// \c true if dropped null placeholders are allowed. Default: \c false. - bool allowDroppedNullPlaceholders_; + bool allowDroppedNullPlaceholders_{false}; /// \c true if numeric object key are allowed. Default: \c false. - bool allowNumericKeys_; + bool allowNumericKeys_{false}; }; } // namespace Json #pragma pack(pop) -#endif // CPPTL_JSON_FEATURES_H_INCLUDED +#endif // JSON_FEATURES_H_INCLUDED // ////////////////////////////////////////////////////////////////////// -// End of content of file: include/json/features.h +// End of content of file: include/json/json_features.h // ////////////////////////////////////////////////////////////////////// @@ -448,38 +528,49 @@ public: // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_H_INCLUDED -#define CPPTL_JSON_H_INCLUDED +#ifndef JSON_H_INCLUDED +#define JSON_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) #include "forwards.h" #endif // if !defined(JSON_IS_AMALGAMATION) -#include <string> -#include <vector> -#include <exception> -#ifndef JSON_USE_CPPTL_SMALLMAP -#include <map> +// Conditional NORETURN attribute on the throw functions would: +// a) suppress false positives from static code analysis +// b) possibly improve optimization opportunities. +#if !defined(JSONCPP_NORETURN) +#if defined(_MSC_VER) && _MSC_VER == 1800 +#define JSONCPP_NORETURN __declspec(noreturn) #else -#include <cpptl/smallmap.h> +#define JSONCPP_NORETURN [[noreturn]] #endif -#ifdef JSON_USE_CPPTL -#include <cpptl/forwards.h> #endif -//Conditional NORETURN attribute on the throw functions would: -// a) suppress false positives from static code analysis -// b) possibly improve optimization opportunities. -#if !defined(JSONCPP_NORETURN) -# if defined(_MSC_VER) -# define JSONCPP_NORETURN __declspec(noreturn) -# elif defined(__GNUC__) -# define JSONCPP_NORETURN __attribute__ ((__noreturn__)) -# else -# define JSONCPP_NORETURN -# endif +// Support for '= delete' with template declarations was a late addition +// to the c++11 standard and is rejected by clang 3.8 and Apple clang 8.2 +// even though these declare themselves to be c++11 compilers. +#if !defined(JSONCPP_TEMPLATE_DELETE) +#if defined(__clang__) && defined(__apple_build_version__) +#if __apple_build_version__ <= 8000042 +#define JSONCPP_TEMPLATE_DELETE +#endif +#elif defined(__clang__) +#if __clang_major__ == 3 && __clang_minor__ <= 8 +#define JSONCPP_TEMPLATE_DELETE +#endif +#endif +#if !defined(JSONCPP_TEMPLATE_DELETE) +#define JSONCPP_TEMPLATE_DELETE = delete +#endif #endif +#include <array> +#include <exception> +#include <map> +#include <memory> +#include <string> +#include <vector> + // Disable warning C4251: <data member>: <type> needs to have dll-interface to // be used by... #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) @@ -493,17 +584,19 @@ public: */ namespace Json { +#if JSON_USE_EXCEPTION /** Base class for all exceptions we throw. * * We use nothing but these internally. Of course, STL can throw others. */ class JSON_API Exception : public std::exception { public: - Exception(JSONCPP_STRING const& msg); - ~Exception() JSONCPP_NOEXCEPT JSONCPP_OVERRIDE; - char const* what() const JSONCPP_NOEXCEPT JSONCPP_OVERRIDE; + Exception(String msg); + ~Exception() noexcept override; + char const* what() const noexcept override; + protected: - JSONCPP_STRING msg_; + String msg_; }; /** Exceptions which the user cannot easily avoid. @@ -514,7 +607,7 @@ protected: */ class JSON_API RuntimeError : public Exception { public: - RuntimeError(JSONCPP_STRING const& msg); + RuntimeError(String const& msg); }; /** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros. @@ -525,13 +618,14 @@ public: */ class JSON_API LogicError : public Exception { public: - LogicError(JSONCPP_STRING const& msg); + LogicError(String const& msg); }; +#endif /// used internally -JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg); +JSONCPP_NORETURN void throwRuntimeError(String const& msg); /// used internally -JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg); +JSONCPP_NORETURN void throwLogicError(String const& msg); /** \brief Type of the value held by a Value object. */ @@ -554,10 +648,12 @@ enum CommentPlacement { numberOfCommentPlacement }; -//# ifdef JSON_USE_CPPTL -// typedef CppTL::AnyEnumerator<const char *> EnumMemberNames; -// typedef CppTL::AnyEnumerator<const Value &> EnumValues; -//# endif +/** \brief Type of precision for formatting of real values. + */ +enum PrecisionType { + significantDigits = 0, ///< we set max number of significant digits in string + decimalPlaces ///< we set max number of digits after "." in string +}; /** \brief Lightweight wrapper to tag static string. * @@ -610,7 +706,7 @@ private: * The get() methods can be used to obtain default value in the case the * required element does not exist. * - * It is possible to iterate over the list of a #objectValue values using + * It is possible to iterate over the list of member keys of an object using * the getMemberNames() method. * * \note #Value string-length fit in size_t, but keys must be < 2^30. @@ -621,76 +717,86 @@ private: */ class JSON_API Value { friend class ValueIteratorBase; + public: - typedef std::vector<JSONCPP_STRING> Members; - typedef ValueIterator iterator; - typedef ValueConstIterator const_iterator; - typedef Json::UInt UInt; - typedef Json::Int Int; + using Members = std::vector<String>; + using iterator = ValueIterator; + using const_iterator = ValueConstIterator; + using UInt = Json::UInt; + using Int = Json::Int; #if defined(JSON_HAS_INT64) - typedef Json::UInt64 UInt64; - typedef Json::Int64 Int64; + using UInt64 = Json::UInt64; + using Int64 = Json::Int64; #endif // defined(JSON_HAS_INT64) - typedef Json::LargestInt LargestInt; - typedef Json::LargestUInt LargestUInt; - typedef Json::ArrayIndex ArrayIndex; + using LargestInt = Json::LargestInt; + using LargestUInt = Json::LargestUInt; + using ArrayIndex = Json::ArrayIndex; // Required for boost integration, e. g. BOOST_TEST - typedef std::string value_type; + using value_type = std::string; + +#if JSON_USE_NULLREF + // Binary compatibility kludges, do not use. + static const Value& null; + static const Value& nullRef; +#endif - static const Value& null; ///< We regret this reference to a global instance; prefer the simpler Value(). - static const Value& nullRef; ///< just a kludge for binary-compatibility; same as null - static Value const& nullSingleton(); ///< Prefer this to null or nullRef. + // null and nullRef are deprecated, use this instead. + static Value const& nullSingleton(); /// Minimum signed integer value that can be stored in a Json::Value. - static const LargestInt minLargestInt; + static constexpr LargestInt minLargestInt = + LargestInt(~(LargestUInt(-1) / 2)); /// Maximum signed integer value that can be stored in a Json::Value. - static const LargestInt maxLargestInt; + static constexpr LargestInt maxLargestInt = LargestInt(LargestUInt(-1) / 2); /// Maximum unsigned integer value that can be stored in a Json::Value. - static const LargestUInt maxLargestUInt; + static constexpr LargestUInt maxLargestUInt = LargestUInt(-1); /// Minimum signed int value that can be stored in a Json::Value. - static const Int minInt; + static constexpr Int minInt = Int(~(UInt(-1) / 2)); /// Maximum signed int value that can be stored in a Json::Value. - static const Int maxInt; + static constexpr Int maxInt = Int(UInt(-1) / 2); /// Maximum unsigned int value that can be stored in a Json::Value. - static const UInt maxUInt; + static constexpr UInt maxUInt = UInt(-1); #if defined(JSON_HAS_INT64) /// Minimum signed 64 bits int value that can be stored in a Json::Value. - static const Int64 minInt64; + static constexpr Int64 minInt64 = Int64(~(UInt64(-1) / 2)); /// Maximum signed 64 bits int value that can be stored in a Json::Value. - static const Int64 maxInt64; + static constexpr Int64 maxInt64 = Int64(UInt64(-1) / 2); /// Maximum unsigned 64 bits int value that can be stored in a Json::Value. - static const UInt64 maxUInt64; + static constexpr UInt64 maxUInt64 = UInt64(-1); #endif // defined(JSON_HAS_INT64) - + /// Default precision for real value for string representation. + static constexpr UInt defaultRealPrecision = 17; + // The constant is hard-coded because some compiler have trouble + // converting Value::maxUInt64 to a double correctly (AIX/xlC). + // Assumes that UInt64 is a 64 bits integer. + static constexpr double maxUInt64AsDouble = 18446744073709551615.0; +// Workaround for bug in the NVIDIAs CUDA 9.1 nvcc compiler +// when using gcc and clang backend compilers. CZString +// cannot be defined as private. See issue #486 +#ifdef __NVCC__ +public: +#else private: +#endif #ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION class CZString { public: - enum DuplicationPolicy { - noDuplication = 0, - duplicate, - duplicateOnCopy - }; + enum DuplicationPolicy { noDuplication = 0, duplicate, duplicateOnCopy }; CZString(ArrayIndex index); CZString(char const* str, unsigned length, DuplicationPolicy allocate); CZString(CZString const& other); -#if JSON_HAS_RVALUE_REFERENCES CZString(CZString&& other); -#endif ~CZString(); CZString& operator=(const CZString& other); - -#if JSON_HAS_RVALUE_REFERENCES CZString& operator=(CZString&& other); -#endif bool operator<(CZString const& other) const; bool operator==(CZString const& other) const; ArrayIndex index() const; - //const char* c_str() const; ///< \deprecated + // const char* c_str() const; ///< \deprecated char const* data() const; unsigned length() const; bool isStaticString() const; @@ -699,11 +805,11 @@ private: void swap(CZString& other); struct StringStorage { - unsigned policy_: 2; - unsigned length_: 30; // 1GB max + unsigned policy_ : 2; + unsigned length_ : 30; // 1GB max }; - char const* cstr_; // actually, a prefixed string, unless policy is noDup + char const* cstr_; // actually, a prefixed string, unless policy is noDup union { ArrayIndex index_; StringStorage storage_; @@ -711,29 +817,26 @@ private: }; public: -#ifndef JSON_USE_CPPTL_SMALLMAP typedef std::map<CZString, Value> ObjectValues; -#else - typedef CppTL::SmallMap<CZString, Value> ObjectValues; -#endif // ifndef JSON_USE_CPPTL_SMALLMAP #endif // ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION public: - /** \brief Create a default Value of the given type. - - This is a very useful constructor. - To create an empty array, pass arrayValue. - To create an empty object, pass objectValue. - Another Value can then be set to this one by assignment. -This is useful since clear() and resize() will not alter types. - - Examples: -\code -Json::Value null_value; // null -Json::Value arr_value(Json::arrayValue); // [] -Json::Value obj_value(Json::objectValue); // {} -\endcode - */ + /** + * \brief Create a default Value of the given type. + * + * This is a very useful constructor. + * To create an empty array, pass arrayValue. + * To create an empty object, pass objectValue. + * Another Value can then be set to this one by assignment. + * This is useful since clear() and resize() will not alter types. + * + * Examples: + * \code + * Json::Value null_value; // null + * Json::Value arr_value(Json::arrayValue); // [] + * Json::Value obj_value(Json::objectValue); // {} + * \endcode + */ Value(ValueType type = nullValue); Value(Int value); Value(UInt value); @@ -744,38 +847,35 @@ Json::Value obj_value(Json::objectValue); // {} Value(double value); Value(const char* value); ///< Copy til first 0. (NULL causes to seg-fault.) Value(const char* begin, const char* end); ///< Copy all, incl zeroes. - /** \brief Constructs a value from a static string. - + /** + * \brief Constructs a value from a static string. + * * Like other value string constructor but do not duplicate the string for - * internal storage. The given string must remain alive after the call to this - * constructor. + * internal storage. The given string must remain alive after the call to + * this constructor. + * * \note This works only for null-terminated strings. (We cannot change the - * size of this class, so we have nowhere to store the length, - * which might be computed later for various operations.) + * size of this class, so we have nowhere to store the length, which might be + * computed later for various operations.) * * Example of usage: - * \code - * static StaticString foo("some text"); - * Json::Value aValue(foo); - * \endcode + * \code + * static StaticString foo("some text"); + * Json::Value aValue(foo); + * \endcode */ Value(const StaticString& value); - Value(const JSONCPP_STRING& value); ///< Copy data() til size(). Embedded zeroes too. -#ifdef JSON_USE_CPPTL - Value(const CppTL::ConstString& value); -#endif + Value(const String& value); Value(bool value); - /// Deep copy. + Value(std::nullptr_t ptr) = delete; Value(const Value& other); -#if JSON_HAS_RVALUE_REFERENCES - /// Move constructor Value(Value&& other); -#endif ~Value(); - /// Deep copy, then swap(other). - /// \note Over-write existing comments. To preserve comments, use #swapPayload(). - Value& operator=(Value other); + /// \note Overwrite existing comments. To preserve comments, use + /// #swapPayload(). + Value& operator=(const Value& other); + Value& operator=(Value&& other); /// Swap everything. void swap(Value& other); @@ -800,17 +900,14 @@ Json::Value obj_value(Json::objectValue); // {} const char* asCString() const; ///< Embedded zeroes could cause you trouble! #if JSONCPP_USING_SECURE_MEMORY - unsigned getCStringLength() const; //Allows you to understand the length of the CString + unsigned getCStringLength() const; // Allows you to understand the length of + // the CString #endif - JSONCPP_STRING asString() const; ///< Embedded zeroes are possible. + String asString() const; ///< Embedded zeroes are possible. /** Get raw char* of string-value. * \return false if !string. (Seg-fault if str or end are NULL.) */ - bool getString( - char const** begin, char const** end) const; -#ifdef JSON_USE_CPPTL - CppTL::ConstString asConstString() const; -#endif + bool getString(char const** begin, char const** end) const; Int asInt() const; UInt asUInt() const; #if defined(JSON_HAS_INT64) @@ -836,6 +933,10 @@ Json::Value obj_value(Json::objectValue); // {} bool isArray() const; bool isObject() const; + /// The `as<T>` and `is<T>` member function templates and specializations. + template <typename T> T as() const JSONCPP_TEMPLATE_DELETE; + template <typename T> bool is() const JSONCPP_TEMPLATE_DELETE; + bool isConvertibleTo(ValueType other) const; /// Number of values in array or object @@ -853,42 +954,33 @@ Json::Value obj_value(Json::objectValue); // {} /// \post type() is unchanged void clear(); - /// Resize the array to size elements. + /// Resize the array to newSize elements. /// New elements are initialized to null. /// May only be called on nullValue or arrayValue. /// \pre type() is arrayValue or nullValue /// \post type() is arrayValue - void resize(ArrayIndex size); + void resize(ArrayIndex newSize); - /// Access an array element (zero based index ). - /// If the array contains less than index element, then null value are - /// inserted - /// in the array so that its size is index+1. + //@{ + /// Access an array element (zero based index). If the array contains less + /// than index element, then null value are inserted in the array so that + /// its size is index+1. /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) + /// this from the operator[] which takes a string.) Value& operator[](ArrayIndex index); - - /// Access an array element (zero based index ). - /// If the array contains less than index element, then null value are - /// inserted - /// in the array so that its size is index+1. - /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) Value& operator[](int index); + //@} - /// Access an array element (zero based index ) + //@{ + /// Access an array element (zero based index). /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) + /// this from the operator[] which takes a string.) const Value& operator[](ArrayIndex index) const; - - /// Access an array element (zero based index ) - /// (You may need to say 'value[0u]' to get your compiler to distinguish - /// this from the operator[] which takes a string.) const Value& operator[](int index) const; + //@} /// If the array contains at least index+1 elements, returns the element - /// value, - /// otherwise returns defaultValue. + /// value, otherwise returns defaultValue. Value get(ArrayIndex index, const Value& defaultValue) const; /// Return true if index < size(). bool isValidIndex(ArrayIndex index) const; @@ -896,61 +988,51 @@ Json::Value obj_value(Json::objectValue); // {} /// /// Equivalent to jsonvalue[jsonvalue.size()] = value; Value& append(const Value& value); - -#if JSON_HAS_RVALUE_REFERENCES Value& append(Value&& value); -#endif + + /// \brief Insert value in array at specific index + bool insert(ArrayIndex index, const Value& newValue); + bool insert(ArrayIndex index, Value&& newValue); /// Access an object value by name, create a null member if it does not exist. /// \note Because of our implementation, keys are limited to 2^30 -1 chars. - /// Exceeding that will cause an exception. + /// Exceeding that will cause an exception. Value& operator[](const char* key); /// Access an object value by name, returns null if there is no member with /// that name. const Value& operator[](const char* key) const; /// Access an object value by name, create a null member if it does not exist. /// \param key may contain embedded nulls. - Value& operator[](const JSONCPP_STRING& key); + Value& operator[](const String& key); /// Access an object value by name, returns null if there is no member with /// that name. /// \param key may contain embedded nulls. - const Value& operator[](const JSONCPP_STRING& key) const; + const Value& operator[](const String& key) const; /** \brief Access an object value by name, create a null member if it does not - exist. - - * If the object has no entry for that name, then the member name used to store - * the new entry is not duplicated. + * exist. + * + * If the object has no entry for that name, then the member name used to + * store the new entry is not duplicated. * Example of use: - * \code - * Json::Value object; - * static const StaticString code("code"); - * object[code] = 1234; - * \endcode + * \code + * Json::Value object; + * static const StaticString code("code"); + * object[code] = 1234; + * \endcode */ Value& operator[](const StaticString& key); -#ifdef JSON_USE_CPPTL - /// Access an object value by name, create a null member if it does not exist. - Value& operator[](const CppTL::ConstString& key); - /// Access an object value by name, returns null if there is no member with - /// that name. - const Value& operator[](const CppTL::ConstString& key) const; -#endif /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy Value get(const char* key, const Value& defaultValue) const; /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy /// \note key may contain embedded nulls. - Value get(const char* begin, const char* end, const Value& defaultValue) const; + Value get(const char* begin, const char* end, + const Value& defaultValue) const; /// Return the member named key if it exist, defaultValue otherwise. /// \note deep copy /// \param key may contain embedded nulls. - Value get(const JSONCPP_STRING& key, const Value& defaultValue) const; -#ifdef JSON_USE_CPPTL - /// Return the member named key if it exist, defaultValue otherwise. - /// \note deep copy - Value get(const CppTL::ConstString& key, const Value& defaultValue) const; -#endif + Value get(const String& key, const Value& defaultValue) const; /// Most general and efficient version of isMember()const, get()const, /// and operator[]const /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30 @@ -958,51 +1040,44 @@ Json::Value obj_value(Json::objectValue); // {} /// Most general and efficient version of object-mutators. /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30 /// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue. - Value const* demand(char const* begin, char const* end); + Value* demand(char const* begin, char const* end); /// \brief Remove and return the named member. /// /// Do nothing if it did not exist. - /// \return the removed Value, or null. /// \pre type() is objectValue or nullValue /// \post type() is unchanged - /// \deprecated void removeMember(const char* key); /// Same as removeMember(const char*) /// \param key may contain embedded nulls. - /// \deprecated - void removeMember(const JSONCPP_STRING& key); + void removeMember(const String& key); /// Same as removeMember(const char* begin, const char* end, Value* removed), /// but 'key' is null-terminated. bool removeMember(const char* key, Value* removed); /** \brief Remove the named map member. - - Update 'removed' iff removed. - \param key may contain embedded nulls. - \return true iff removed (no exceptions) - */ - bool removeMember(JSONCPP_STRING const& key, Value* removed); - /// Same as removeMember(JSONCPP_STRING const& key, Value* removed) + * + * Update 'removed' iff removed. + * \param key may contain embedded nulls. + * \return true iff removed (no exceptions) + */ + bool removeMember(String const& key, Value* removed); + /// Same as removeMember(String const& key, Value* removed) bool removeMember(const char* begin, const char* end, Value* removed); /** \brief Remove the indexed array element. - - O(n) expensive operations. - Update 'removed' iff removed. - \return true iff removed (no exceptions) - */ - bool removeIndex(ArrayIndex i, Value* removed); + * + * O(n) expensive operations. + * Update 'removed' iff removed. + * \return true if removed (no exceptions) + */ + bool removeIndex(ArrayIndex index, Value* removed); /// Return true if the object has a member named key. /// \note 'key' must be null-terminated. bool isMember(const char* key) const; /// Return true if the object has a member named key. /// \param key may contain embedded nulls. - bool isMember(const JSONCPP_STRING& key) const; - /// Same as isMember(JSONCPP_STRING const& key)const + bool isMember(const String& key) const; + /// Same as isMember(String const& key)const bool isMember(const char* begin, const char* end) const; -#ifdef JSON_USE_CPPTL - /// Return true if the object has a member named key. - bool isMember(const CppTL::ConstString& key) const; -#endif /// \brief Return a list of the member names. /// @@ -1011,23 +1086,22 @@ Json::Value obj_value(Json::objectValue); // {} /// \post if type() was nullValue, it remains nullValue Members getMemberNames() const; - //# ifdef JSON_USE_CPPTL - // EnumMemberNames enumMemberNames() const; - // EnumValues enumValues() const; - //# endif - /// \deprecated Always pass len. - JSONCPP_DEPRECATED("Use setComment(JSONCPP_STRING const&) instead.") - void setComment(const char* comment, CommentPlacement placement); + JSONCPP_DEPRECATED("Use setComment(String const&) instead.") + void setComment(const char* comment, CommentPlacement placement) { + setComment(String(comment, strlen(comment)), placement); + } /// Comments must be //... or /* ... */ - void setComment(const char* comment, size_t len, CommentPlacement placement); + void setComment(const char* comment, size_t len, CommentPlacement placement) { + setComment(String(comment, len), placement); + } /// Comments must be //... or /* ... */ - void setComment(const JSONCPP_STRING& comment, CommentPlacement placement); + void setComment(String comment, CommentPlacement placement); bool hasComment(CommentPlacement placement) const; /// Include delimiters and embedded newlines. - JSONCPP_STRING getComment(CommentPlacement placement) const; + String getComment(CommentPlacement placement) const; - JSONCPP_STRING toStyledString() const; + String toStyledString() const; const_iterator begin() const; const_iterator end() const; @@ -1043,20 +1117,20 @@ Json::Value obj_value(Json::objectValue); // {} ptrdiff_t getOffsetLimit() const; private: + void setType(ValueType v) { + bits_.value_type_ = static_cast<unsigned char>(v); + } + bool isAllocated() const { return bits_.allocated_; } + void setIsAllocated(bool v) { bits_.allocated_ = v; } + void initBasic(ValueType type, bool allocated = false); + void dupPayload(const Value& other); + void releasePayload(); + void dupMeta(const Value& other); Value& resolveReference(const char* key); Value& resolveReference(const char* key, const char* end); - struct CommentInfo { - CommentInfo(); - ~CommentInfo(); - - void setComment(const char* text, size_t len); - - char* comment_; - }; - // struct MemberNamesTransform //{ // typedef const char *result_type; @@ -1071,13 +1145,33 @@ private: LargestUInt uint_; double real_; bool bool_; - char* string_; // actually ptr to unsigned, followed by str, unless !allocated_ + char* string_; // if allocated_, ptr to { unsigned, char[] }. ObjectValues* map_; } value_; - ValueType type_ : 8; - unsigned int allocated_ : 1; // Notes: if declared as bool, bitfield is useless. - // If not allocated_, string_ must be null-terminated. - CommentInfo* comments_; + + struct { + // Really a ValueType, but types should agree for bitfield packing. + unsigned int value_type_ : 8; + // Unless allocated_, string_ must be null-terminated. + unsigned int allocated_ : 1; + } bits_; + + class Comments { + public: + Comments() = default; + Comments(const Comments& that); + Comments(Comments&& that); + Comments& operator=(const Comments& that); + Comments& operator=(Comments&& that); + bool has(CommentPlacement slot) const; + String get(CommentPlacement slot) const; + void set(CommentPlacement slot, String comment); + + private: + using Array = std::array<String, numberOfCommentPlacement>; + std::unique_ptr<Array> ptr_; + }; + Comments comments_; // [start, limit) byte offsets in the source JSON text from which this Value // was extracted. @@ -1085,6 +1179,36 @@ private: ptrdiff_t limit_; }; +template <> inline bool Value::as<bool>() const { return asBool(); } +template <> inline bool Value::is<bool>() const { return isBool(); } + +template <> inline Int Value::as<Int>() const { return asInt(); } +template <> inline bool Value::is<Int>() const { return isInt(); } + +template <> inline UInt Value::as<UInt>() const { return asUInt(); } +template <> inline bool Value::is<UInt>() const { return isUInt(); } + +#if defined(JSON_HAS_INT64) +template <> inline Int64 Value::as<Int64>() const { return asInt64(); } +template <> inline bool Value::is<Int64>() const { return isInt64(); } + +template <> inline UInt64 Value::as<UInt64>() const { return asUInt64(); } +template <> inline bool Value::is<UInt64>() const { return isUInt64(); } +#endif + +template <> inline double Value::as<double>() const { return asDouble(); } +template <> inline bool Value::is<double>() const { return isDouble(); } + +template <> inline String Value::as<String>() const { return asString(); } +template <> inline bool Value::is<String>() const { return isString(); } + +/// These `as` specializations are type conversions, and do not have a +/// corresponding `is`. +template <> inline float Value::as<float>() const { return asFloat(); } +template <> inline const char* Value::as<const char*>() const { + return asCString(); +} + /** \brief Experimental and untested: represents an element of the "path" to * access a node. */ @@ -1095,17 +1219,13 @@ public: PathArgument(); PathArgument(ArrayIndex index); PathArgument(const char* key); - PathArgument(const JSONCPP_STRING& key); + PathArgument(String key); private: - enum Kind { - kindNone = 0, - kindIndex, - kindKey - }; - JSONCPP_STRING key_; - ArrayIndex index_; - Kind kind_; + enum Kind { kindNone = 0, kindIndex, kindKey }; + String key_; + ArrayIndex index_{}; + Kind kind_{kindNone}; }; /** \brief Experimental and untested: represents a "path" to access a node. @@ -1117,12 +1237,11 @@ private: * - ".name1.name2.name3" * - ".[0][1][2].name1[3]" * - ".%" => member name is provided as parameter - * - ".[%]" => index is provied as parameter + * - ".[%]" => index is provided as parameter */ class JSON_API Path { public: - Path(const JSONCPP_STRING& path, - const PathArgument& a1 = PathArgument(), + Path(const String& path, const PathArgument& a1 = PathArgument(), const PathArgument& a2 = PathArgument(), const PathArgument& a3 = PathArgument(), const PathArgument& a4 = PathArgument(), @@ -1135,15 +1254,13 @@ public: Value& make(Value& root) const; private: - typedef std::vector<const PathArgument*> InArgs; - typedef std::vector<PathArgument> Args; + using InArgs = std::vector<const PathArgument*>; + using Args = std::vector<PathArgument>; - void makePath(const JSONCPP_STRING& path, const InArgs& in); - void addPathInArg(const JSONCPP_STRING& path, - const InArgs& in, - InArgs::const_iterator& itInArg, - PathArgument::Kind kind); - void invalidPath(const JSONCPP_STRING& path, int location); + void makePath(const String& path, const InArgs& in); + void addPathInArg(const String& path, const InArgs& in, + InArgs::const_iterator& itInArg, PathArgument::Kind kind); + static void invalidPath(const String& path, int location); Args args_; }; @@ -1153,10 +1270,10 @@ private: */ class JSON_API ValueIteratorBase { public: - typedef std::bidirectional_iterator_tag iterator_category; - typedef unsigned int size_t; - typedef int difference_type; - typedef ValueIteratorBase SelfType; + using iterator_category = std::bidirectional_iterator_tag; + using size_t = unsigned int; + using difference_type = int; + using SelfType = ValueIteratorBase; bool operator==(const SelfType& other) const { return isEqual(other); } @@ -1170,17 +1287,19 @@ public: /// Value. Value key() const; - /// Return the index of the referenced Value, or -1 if it is not an arrayValue. + /// Return the index of the referenced Value, or -1 if it is not an + /// arrayValue. UInt index() const; /// Return the member name of the referenced Value, or "" if it is not an /// objectValue. /// \note Avoid `c_str()` on result, as embedded zeroes are possible. - JSONCPP_STRING name() const; + String name() const; /// Return the member name of the referenced Value. "" if it is not an /// objectValue. - /// \deprecated This cannot be used for UTF-8 strings, since there can be embedded nulls. + /// \deprecated This cannot be used for UTF-8 strings, since there can be + /// embedded nulls. JSONCPP_DEPRECATED("Use `key = name();` instead.") char const* memberName() const; /// Return the member name of the referenced Value, or NULL if it is not an @@ -1189,7 +1308,14 @@ public: char const* memberName(char const** end) const; protected: - Value& deref() const; + /*! Internal utility functions to assist with implementing + * other iterator functions. The const and non-const versions + * of the "deref" protected methods expose the protected + * current_ member variable in a way that can often be + * optimized away by the compiler. + */ + const Value& deref() const; + Value& deref(); void increment(); @@ -1204,7 +1330,7 @@ protected: private: Value::ObjectValues::iterator current_; // Indicates that iterator is for a null value. - bool isNull_; + bool isNull_{true}; public: // For some reason, BORLAND needs these at the end, rather @@ -1220,20 +1346,21 @@ class JSON_API ValueConstIterator : public ValueIteratorBase { friend class Value; public: - typedef const Value value_type; - //typedef unsigned int size_t; - //typedef int difference_type; - typedef const Value& reference; - typedef const Value* pointer; - typedef ValueConstIterator SelfType; + using value_type = const Value; + // typedef unsigned int size_t; + // typedef int difference_type; + using reference = const Value&; + using pointer = const Value*; + using SelfType = ValueConstIterator; ValueConstIterator(); ValueConstIterator(ValueIterator const& other); private: -/*! \internal Use by Value to create an iterator. - */ + /*! \internal Use by Value to create an iterator. + */ explicit ValueConstIterator(const Value::ObjectValues::iterator& current); + public: SelfType& operator=(const ValueIteratorBase& other); @@ -1270,21 +1397,22 @@ class JSON_API ValueIterator : public ValueIteratorBase { friend class Value; public: - typedef Value value_type; - typedef unsigned int size_t; - typedef int difference_type; - typedef Value& reference; - typedef Value* pointer; - typedef ValueIterator SelfType; + using value_type = Value; + using size_t = unsigned int; + using difference_type = int; + using reference = Value&; + using pointer = Value*; + using SelfType = ValueIterator; ValueIterator(); explicit ValueIterator(const ValueConstIterator& other); ValueIterator(const ValueIterator& other); private: -/*! \internal Use by Value to create an iterator. - */ + /*! \internal Use by Value to create an iterator. + */ explicit ValueIterator(const Value::ObjectValues::iterator& current); + public: SelfType& operator=(const SelfType& other); @@ -1310,19 +1438,18 @@ public: return *this; } - reference operator*() const { return deref(); } - - pointer operator->() const { return &deref(); } + /*! The return value of non-const iterators can be + * changed, so the these functions are not const + * because the returned references/pointers can be used + * to change state of the base class. + */ + reference operator*() { return deref(); } + pointer operator->() { return &deref(); } }; -} // namespace Json - +inline void swap(Value& a, Value& b) { a.swap(b); } -namespace std { -/// Specialize std::swap() for Json::Value. -template<> -inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } -} +} // namespace Json #pragma pack(pop) @@ -1330,7 +1457,7 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } #pragma warning(pop) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) -#endif // CPPTL_JSON_H_INCLUDED +#endif // JSON_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/value.h @@ -1350,18 +1477,18 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_READER_H_INCLUDED -#define CPPTL_JSON_READER_H_INCLUDED +#ifndef JSON_READER_H_INCLUDED +#define JSON_READER_H_INCLUDED #if !defined(JSON_IS_AMALGAMATION) -#include "features.h" +#include "json_features.h" #include "value.h" #endif // if !defined(JSON_IS_AMALGAMATION) #include <deque> #include <iosfwd> +#include <istream> #include <stack> #include <string> -#include <istream> // Disable warning C4251: <data member>: <type> needs to have dll-interface to // be used by... @@ -1375,132 +1502,130 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); } namespace Json { /** \brief Unserialize a <a HREF="http://www.json.org">JSON</a> document into a - *Value. + * Value. * * \deprecated Use CharReader and CharReaderBuilder. */ -class JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead") JSON_API Reader { + +class JSONCPP_DEPRECATED( + "Use CharReader and CharReaderBuilder instead.") JSON_API Reader { public: - typedef char Char; - typedef const Char* Location; + using Char = char; + using Location = const Char*; /** \brief An error tagged with where in the JSON text it was encountered. * * The offsets give the [start, limit) range of bytes within the text. Note * that this is bytes, not codepoints. - * */ struct StructuredError { ptrdiff_t offset_start; ptrdiff_t offset_limit; - JSONCPP_STRING message; + String message; }; - /** \brief Constructs a Reader allowing all features - * for parsing. + /** \brief Constructs a Reader allowing all features for parsing. */ + JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead") Reader(); - /** \brief Constructs a Reader allowing the specified feature set - * for parsing. + /** \brief Constructs a Reader allowing the specified feature set for parsing. */ + JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead") Reader(const Features& features); /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a> * document. - * \param document UTF-8 encoded string containing the document to read. - * \param root [out] Contains the root value of the document if it was - * successfully parsed. - * \param collectComments \c true to collect comment and allow writing them - * back during - * serialization, \c false to discard comments. - * This parameter is ignored if - * Features::allowComments_ - * is \c false. + * + * \param document UTF-8 encoded string containing the document + * to read. + * \param[out] root Contains the root value of the document if it + * was successfully parsed. + * \param collectComments \c true to collect comment and allow writing + * them back during serialization, \c false to + * discard comments. This parameter is ignored + * if Features::allowComments_ is \c false. * \return \c true if the document was successfully parsed, \c false if an * error occurred. */ - bool - parse(const std::string& document, Value& root, bool collectComments = true); + bool parse(const std::string& document, Value& root, + bool collectComments = true); /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a> - document. - * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the - document to read. - * \param endDoc Pointer on the end of the UTF-8 encoded string of the - document to read. - * Must be >= beginDoc. - * \param root [out] Contains the root value of the document if it was - * successfully parsed. - * \param collectComments \c true to collect comment and allow writing them - back during - * serialization, \c false to discard comments. - * This parameter is ignored if - Features::allowComments_ - * is \c false. + * document. + * + * \param beginDoc Pointer on the beginning of the UTF-8 encoded + * string of the document to read. + * \param endDoc Pointer on the end of the UTF-8 encoded string + * of the document to read. Must be >= beginDoc. + * \param[out] root Contains the root value of the document if it + * was successfully parsed. + * \param collectComments \c true to collect comment and allow writing + * them back during serialization, \c false to + * discard comments. This parameter is ignored + * if Features::allowComments_ is \c false. * \return \c true if the document was successfully parsed, \c false if an - error occurred. + * error occurred. */ - bool parse(const char* beginDoc, - const char* endDoc, - Value& root, + bool parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments = true); /// \brief Parse from input stream. /// \see Json::operator>>(std::istream&, Json::Value&). - bool parse(JSONCPP_ISTREAM& is, Value& root, bool collectComments = true); + bool parse(IStream& is, Value& root, bool collectComments = true); /** \brief Returns a user friendly string that list errors in the parsed * document. - * \return Formatted error message with the list of errors with their location - * in - * the parsed document. An empty string is returned if no error - * occurred - * during parsing. + * + * \return Formatted error message with the list of errors with their + * location in the parsed document. An empty string is returned if no error + * occurred during parsing. * \deprecated Use getFormattedErrorMessages() instead (typo fix). */ JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.") - JSONCPP_STRING getFormatedErrorMessages() const; + String getFormatedErrorMessages() const; /** \brief Returns a user friendly string that list errors in the parsed * document. - * \return Formatted error message with the list of errors with their location - * in - * the parsed document. An empty string is returned if no error - * occurred - * during parsing. + * + * \return Formatted error message with the list of errors with their + * location in the parsed document. An empty string is returned if no error + * occurred during parsing. */ - JSONCPP_STRING getFormattedErrorMessages() const; + String getFormattedErrorMessages() const; - /** \brief Returns a vector of structured erros encounted while parsing. + /** \brief Returns a vector of structured errors encountered while parsing. + * * \return A (possibly empty) vector of StructuredError objects. Currently - * only one error can be returned, but the caller should tolerate - * multiple - * errors. This can occur if the parser recovers from a non-fatal - * parse error and then encounters additional errors. + * only one error can be returned, but the caller should tolerate multiple + * errors. This can occur if the parser recovers from a non-fatal parse + * error and then encounters additional errors. */ std::vector<StructuredError> getStructuredErrors() const; /** \brief Add a semantic error message. - * \param value JSON Value location associated with the error + * + * \param value JSON Value location associated with the error * \param message The error message. - * \return \c true if the error was successfully added, \c false if the - * Value offset exceeds the document size. + * \return \c true if the error was successfully added, \c false if the Value + * offset exceeds the document size. */ - bool pushError(const Value& value, const JSONCPP_STRING& message); + bool pushError(const Value& value, const String& message); /** \brief Add a semantic error message with extra context. - * \param value JSON Value location associated with the error + * + * \param value JSON Value location associated with the error * \param message The error message. - * \param extra Additional JSON Value location to contextualize the error + * \param extra Additional JSON Value location to contextualize the error * \return \c true if the error was successfully added, \c false if either * Value offset exceeds the document size. */ - bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra); + bool pushError(const Value& value, const String& message, const Value& extra); /** \brief Return whether there are any errors. - * \return \c true if there are no errors to report \c false if - * errors have occurred. + * + * \return \c true if there are no errors to report \c false if errors have + * occurred. */ bool good() const; @@ -1532,15 +1657,15 @@ private: class ErrorInfo { public: Token token_; - JSONCPP_STRING message_; + String message_; Location extra_; }; - typedef std::deque<ErrorInfo> Errors; + using Errors = std::deque<ErrorInfo>; bool readToken(Token& token); void skipSpaces(); - bool match(Location pattern, int patternLength); + bool match(const Char* pattern, int patternLength); bool readComment(); bool readCStyleComment(); bool readCppStyleComment(); @@ -1552,142 +1677,138 @@ private: bool decodeNumber(Token& token); bool decodeNumber(Token& token, Value& decoded); bool decodeString(Token& token); - bool decodeString(Token& token, JSONCPP_STRING& decoded); + bool decodeString(Token& token, String& decoded); bool decodeDouble(Token& token); bool decodeDouble(Token& token, Value& decoded); - bool decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, + bool decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode); - bool decodeUnicodeEscapeSequence(Token& token, - Location& current, - Location end, - unsigned int& unicode); - bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0); + bool decodeUnicodeEscapeSequence(Token& token, Location& current, + Location end, unsigned int& unicode); + bool addError(const String& message, Token& token, Location extra = nullptr); bool recoverFromError(TokenType skipUntilToken); - bool addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, + bool addErrorAndRecover(const String& message, Token& token, TokenType skipUntilToken); void skipUntilSpace(); Value& currentValue(); Char getNextChar(); - void - getLocationLineAndColumn(Location location, int& line, int& column) const; - JSONCPP_STRING getLocationLineAndColumn(Location location) const; + void getLocationLineAndColumn(Location location, int& line, + int& column) const; + String getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); void skipCommentTokens(Token& token); static bool containsNewLine(Location begin, Location end); - static JSONCPP_STRING normalizeEOL(Location begin, Location end); + static String normalizeEOL(Location begin, Location end); - typedef std::stack<Value*> Nodes; + using Nodes = std::stack<Value*>; Nodes nodes_; Errors errors_; - JSONCPP_STRING document_; - Location begin_; - Location end_; - Location current_; - Location lastValueEnd_; - Value* lastValue_; - JSONCPP_STRING commentsBefore_; + String document_; + Location begin_{}; + Location end_{}; + Location current_{}; + Location lastValueEnd_{}; + Value* lastValue_{}; + String commentsBefore_; Features features_; - bool collectComments_; -}; // Reader + bool collectComments_{}; +}; // Reader /** Interface for reading JSON from a char array. */ class JSON_API CharReader { public: - virtual ~CharReader() {} + virtual ~CharReader() = default; /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a> - document. - * The document must be a UTF-8 encoded string containing the document to read. + * document. The document must be a UTF-8 encoded string containing the + * document to read. * - * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the - document to read. - * \param endDoc Pointer on the end of the UTF-8 encoded string of the - document to read. - * Must be >= beginDoc. - * \param root [out] Contains the root value of the document if it was - * successfully parsed. - * \param errs [out] Formatted error messages (if not NULL) - * a user friendly string that lists errors in the parsed - * document. + * \param beginDoc Pointer on the beginning of the UTF-8 encoded string + * of the document to read. + * \param endDoc Pointer on the end of the UTF-8 encoded string of the + * document to read. Must be >= beginDoc. + * \param[out] root Contains the root value of the document if it was + * successfully parsed. + * \param[out] errs Formatted error messages (if not NULL) a user + * friendly string that lists errors in the parsed + * document. * \return \c true if the document was successfully parsed, \c false if an - error occurred. + * error occurred. */ - virtual bool parse( - char const* beginDoc, char const* endDoc, - Value* root, JSONCPP_STRING* errs) = 0; + virtual bool parse(char const* beginDoc, char const* endDoc, Value* root, + String* errs) = 0; class JSON_API Factory { public: - virtual ~Factory() {} + virtual ~Factory() = default; /** \brief Allocate a CharReader via operator new(). * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual CharReader* newCharReader() const = 0; - }; // Factory -}; // CharReader + }; // Factory +}; // CharReader /** \brief Build a CharReader implementation. - -Usage: -\code - using namespace Json; - CharReaderBuilder builder; - builder["collectComments"] = false; - Value value; - JSONCPP_STRING errs; - bool ok = parseFromStream(builder, std::cin, &value, &errs); -\endcode -*/ + * + * Usage: + * \code + * using namespace Json; + * CharReaderBuilder builder; + * builder["collectComments"] = false; + * Value value; + * String errs; + * bool ok = parseFromStream(builder, std::cin, &value, &errs); + * \endcode + */ class JSON_API CharReaderBuilder : public CharReader::Factory { public: // Note: We use a Json::Value so that we can add data-members to this class // without a major version bump. /** Configuration of this builder. - These are case-sensitive. - Available settings (case-sensitive): - - `"collectComments": false or true` - - true to collect comment and allow writing them - back during serialization, false to discard comments. - This parameter is ignored if allowComments is false. - - `"allowComments": false or true` - - true if comments are allowed. - - `"strictRoot": false or true` - - true if root must be either an array or an object value - - `"allowDroppedNullPlaceholders": false or true` - - true if dropped null placeholders are allowed. (See StreamWriterBuilder.) - - `"allowNumericKeys": false or true` - - true if numeric object keys are allowed. - - `"allowSingleQuotes": false or true` - - true if '' are allowed for strings (both keys and values) - - `"stackLimit": integer` - - Exceeding stackLimit (recursive depth of `readValue()`) will - cause an exception. - - This is a security issue (seg-faults caused by deeply nested JSON), - so the default is low. - - `"failIfExtra": false or true` - - If true, `parse()` returns false when extra non-whitespace trails - the JSON value in the input string. - - `"rejectDupKeys": false or true` - - If true, `parse()` returns false when a key is duplicated within an object. - - `"allowSpecialFloats": false or true` - - If true, special float values (NaNs and infinities) are allowed - and their values are lossfree restorable. - - You can examine 'settings_` yourself - to see the defaults. You can also write and read them just like any - JSON Value. - \sa setDefaults() - */ + * These are case-sensitive. + * Available settings (case-sensitive): + * - `"collectComments": false or true` + * - true to collect comment and allow writing them back during + * serialization, false to discard comments. This parameter is ignored + * if allowComments is false. + * - `"allowComments": false or true` + * - true if comments are allowed. + * - `"allowTrailingCommas": false or true` + * - true if trailing commas in objects and arrays are allowed. + * - `"strictRoot": false or true` + * - true if root must be either an array or an object value + * - `"allowDroppedNullPlaceholders": false or true` + * - true if dropped null placeholders are allowed. (See + * StreamWriterBuilder.) + * - `"allowNumericKeys": false or true` + * - true if numeric object keys are allowed. + * - `"allowSingleQuotes": false or true` + * - true if '' are allowed for strings (both keys and values) + * - `"stackLimit": integer` + * - Exceeding stackLimit (recursive depth of `readValue()`) will cause an + * exception. + * - This is a security issue (seg-faults caused by deeply nested JSON), so + * the default is low. + * - `"failIfExtra": false or true` + * - If true, `parse()` returns false when extra non-whitespace trails the + * JSON value in the input string. + * - `"rejectDupKeys": false or true` + * - If true, `parse()` returns false when a key is duplicated within an + * object. + * - `"allowSpecialFloats": false or true` + * - If true, special float values (NaNs and infinities) are allowed and + * their values are lossfree restorable. + * + * You can examine 'settings_` yourself to see the defaults. You can also + * write and read them just like any JSON Value. + * \sa setDefaults() + */ Json::Value settings_; CharReaderBuilder(); - ~CharReaderBuilder() JSONCPP_OVERRIDE; + ~CharReaderBuilder() override; - CharReader* newCharReader() const JSONCPP_OVERRIDE; + CharReader* newCharReader() const override; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. @@ -1696,7 +1817,7 @@ public: /** A simple way to update a specific setting. */ - Value& operator[](JSONCPP_STRING key); + Value& operator[](const String& key); /** Called by ctor, but you can use this to reset settings_. * \pre 'settings' != NULL (but Json::null is fine) @@ -1713,39 +1834,37 @@ public: }; /** Consume entire stream and use its begin/end. - * Someday we might have a real StreamReader, but for now this - * is convenient. - */ -bool JSON_API parseFromStream( - CharReader::Factory const&, - JSONCPP_ISTREAM&, - Value* root, std::string* errs); + * Someday we might have a real StreamReader, but for now this + * is convenient. + */ +bool JSON_API parseFromStream(CharReader::Factory const&, IStream&, Value* root, + String* errs); /** \brief Read from 'sin' into 'root'. - - Always keep comments from the input JSON. - - This can be used to read a file into a particular sub-object. - For example: - \code - Json::Value root; - cin >> root["dir"]["file"]; - cout << root; - \endcode - Result: - \verbatim - { - "dir": { - "file": { - // The input stream JSON would be nested here. - } - } - } - \endverbatim - \throw std::exception on parse error. - \see Json::operator<<() -*/ -JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&); + * + * Always keep comments from the input JSON. + * + * This can be used to read a file into a particular sub-object. + * For example: + * \code + * Json::Value root; + * cin >> root["dir"]["file"]; + * cout << root; + * \endcode + * Result: + * \verbatim + * { + * "dir": { + * "file": { + * // The input stream JSON would be nested here. + * } + * } + * } + * \endverbatim + * \throw std::exception on parse error. + * \see Json::operator<<() + */ +JSON_API IStream& operator>>(IStream&, Value&); } // namespace Json @@ -1755,7 +1874,7 @@ JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&); #pragma warning(pop) #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) -#endif // CPPTL_JSON_READER_H_INCLUDED +#endif // JSON_READER_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/reader.h @@ -1781,9 +1900,9 @@ JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&); #if !defined(JSON_IS_AMALGAMATION) #include "value.h" #endif // if !defined(JSON_IS_AMALGAMATION) -#include <vector> -#include <string> #include <ostream> +#include <string> +#include <vector> // Disable warning C4251: <data member>: <type> needs to have dll-interface to // be used by... @@ -1799,31 +1918,31 @@ namespace Json { class Value; /** - -Usage: -\code - using namespace Json; - void writeToStdout(StreamWriter::Factory const& factory, Value const& value) { - std::unique_ptr<StreamWriter> const writer( - factory.newStreamWriter()); - writer->write(value, &std::cout); - std::cout << std::endl; // add lf and flush - } -\endcode -*/ + * + * Usage: + * \code + * using namespace Json; + * void writeToStdout(StreamWriter::Factory const& factory, Value const& value) + * { std::unique_ptr<StreamWriter> const writer( factory.newStreamWriter()); + * writer->write(value, &std::cout); + * std::cout << std::endl; // add lf and flush + * } + * \endcode + */ class JSON_API StreamWriter { protected: - JSONCPP_OSTREAM* sout_; // not owned; will not delete + OStream* sout_; // not owned; will not delete public: StreamWriter(); virtual ~StreamWriter(); /** Write Value into document as configured in sub-class. - Do not take ownership of sout, but maintain a reference during function. - \pre sout != NULL - \return zero on success (For now, we always return zero, so check the stream instead.) - \throw std::exception possibly, depending on configuration + * Do not take ownership of sout, but maintain a reference during function. + * \pre sout != NULL + * \return zero on success (For now, we always return zero, so check the + * stream instead.) \throw std::exception possibly, depending on + * configuration */ - virtual int write(Value const& root, JSONCPP_OSTREAM* sout) = 0; + virtual int write(Value const& root, OStream* sout) = 0; /** \brief A simple abstract factory. */ @@ -1834,64 +1953,69 @@ public: * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual StreamWriter* newStreamWriter() const = 0; - }; // Factory -}; // StreamWriter + }; // Factory +}; // StreamWriter /** \brief Write into stringstream, then return string, for convenience. * A StreamWriter will be created from the factory, used, and then deleted. */ -JSONCPP_STRING JSON_API writeString(StreamWriter::Factory const& factory, Value const& root); - +String JSON_API writeString(StreamWriter::Factory const& factory, + Value const& root); /** \brief Build a StreamWriter implementation. -Usage: -\code - using namespace Json; - Value value = ...; - StreamWriterBuilder builder; - builder["commentStyle"] = "None"; - builder["indentation"] = " "; // or whatever you like - std::unique_ptr<Json::StreamWriter> writer( - builder.newStreamWriter()); - writer->write(value, &std::cout); - std::cout << std::endl; // add lf and flush -\endcode +* Usage: +* \code +* using namespace Json; +* Value value = ...; +* StreamWriterBuilder builder; +* builder["commentStyle"] = "None"; +* builder["indentation"] = " "; // or whatever you like +* std::unique_ptr<Json::StreamWriter> writer( +* builder.newStreamWriter()); +* writer->write(value, &std::cout); +* std::cout << std::endl; // add lf and flush +* \endcode */ class JSON_API StreamWriterBuilder : public StreamWriter::Factory { public: // Note: We use a Json::Value so that we can add data-members to this class // without a major version bump. /** Configuration of this builder. - Available settings (case-sensitive): - - "commentStyle": "None" or "All" - - "indentation": "<anything>" - - "enableYAMLCompatibility": false or true - - slightly change the whitespace around colons - - "dropNullPlaceholders": false or true - - Drop the "null" string from the writer's output for nullValues. - Strictly speaking, this is not valid JSON. But when the output is being - fed to a browser's JavaScript, it makes for smaller output and the - browser can handle the output just fine. - - "useSpecialFloats": false or true - - If true, outputs non-finite floating point values in the following way: - NaN values as "NaN", positive infinity as "Infinity", and negative infinity - as "-Infinity". - - You can examine 'settings_` yourself - to see the defaults. You can also write and read them just like any - JSON Value. - \sa setDefaults() - */ + * Available settings (case-sensitive): + * - "commentStyle": "None" or "All" + * - "indentation": "<anything>". + * - Setting this to an empty string also omits newline characters. + * - "enableYAMLCompatibility": false or true + * - slightly change the whitespace around colons + * - "dropNullPlaceholders": false or true + * - Drop the "null" string from the writer's output for nullValues. + * Strictly speaking, this is not valid JSON. But when the output is being + * fed to a browser's JavaScript, it makes for smaller output and the + * browser can handle the output just fine. + * - "useSpecialFloats": false or true + * - If true, outputs non-finite floating point values in the following way: + * NaN values as "NaN", positive infinity as "Infinity", and negative + * infinity as "-Infinity". + * - "precision": int + * - Number of precision digits for formatting of real values. + * - "precisionType": "significant"(default) or "decimal" + * - Type of precision for formatting of real values. + + * You can examine 'settings_` yourself + * to see the defaults. You can also write and read them just like any + * JSON Value. + * \sa setDefaults() + */ Json::Value settings_; StreamWriterBuilder(); - ~StreamWriterBuilder() JSONCPP_OVERRIDE; + ~StreamWriterBuilder() override; /** * \throw std::exception if something goes wrong (e.g. invalid settings) */ - StreamWriter* newStreamWriter() const JSONCPP_OVERRIDE; + StreamWriter* newStreamWriter() const override; /** \return true if 'settings' are legal and consistent; * otherwise, indicate bad settings via 'invalid'. @@ -1899,7 +2023,7 @@ public: bool validate(Json::Value* invalid) const; /** A simple way to update a specific setting. */ - Value& operator[](JSONCPP_STRING key); + Value& operator[](const String& key); /** Called by ctor, but you can use this to reset settings_. * \pre 'settings' != NULL (but Json::null is fine) @@ -1916,7 +2040,7 @@ class JSONCPP_DEPRECATED("Use StreamWriter instead") JSON_API Writer { public: virtual ~Writer(); - virtual JSONCPP_STRING write(const Value& root) = 0; + virtual String write(const Value& root) = 0; }; /** \brief Outputs a Value in <a HREF="http://www.json.org">JSON</a> format @@ -1924,18 +2048,19 @@ public: * * The JSON document is written in a single line. It is not intended for 'human' *consumption, - * but may be usefull to support feature such as RPC where bandwith is limited. + * but may be useful to support feature such as RPC where bandwidth is limited. * \sa Reader, Value * \deprecated Use StreamWriterBuilder. */ #if defined(_MSC_VER) #pragma warning(push) -#pragma warning(disable:4996) // Deriving from deprecated class +#pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API FastWriter : public Writer { +class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API FastWriter + : public Writer { public: FastWriter(); - ~FastWriter() JSONCPP_OVERRIDE {} + ~FastWriter() override = default; void enableYAMLCompatibility(); @@ -1949,15 +2074,15 @@ public: void omitEndingLineFeed(); public: // overridden from Writer - JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE; + String write(const Value& root) override; private: void writeValue(const Value& value); - JSONCPP_STRING document_; - bool yamlCompatibilityEnabled_; - bool dropNullPlaceholders_; - bool omitEndingLineFeed_; + String document_; + bool yamlCompatibilityEnabled_{false}; + bool dropNullPlaceholders_{false}; + bool omitEndingLineFeed_{false}; }; #if defined(_MSC_VER) #pragma warning(pop) @@ -1989,42 +2114,43 @@ private: */ #if defined(_MSC_VER) #pragma warning(push) -#pragma warning(disable:4996) // Deriving from deprecated class +#pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API StyledWriter : public Writer { +class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API + StyledWriter : public Writer { public: StyledWriter(); - ~StyledWriter() JSONCPP_OVERRIDE {} + ~StyledWriter() override = default; public: // overridden from Writer /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format. * \param root Value to serialize. * \return String containing the JSON document that represents the root value. */ - JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE; + String write(const Value& root) override; private: void writeValue(const Value& value); void writeArrayValue(const Value& value); bool isMultilineArray(const Value& value); - void pushValue(const JSONCPP_STRING& value); + void pushValue(const String& value); void writeIndent(); - void writeWithIndent(const JSONCPP_STRING& value); + void writeWithIndent(const String& value); void indent(); void unindent(); void writeCommentBeforeValue(const Value& root); void writeCommentAfterValueOnSameLine(const Value& root); - bool hasCommentForValue(const Value& value); - static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text); + static bool hasCommentForValue(const Value& value); + static String normalizeEOL(const String& text); - typedef std::vector<JSONCPP_STRING> ChildValues; + using ChildValues = std::vector<String>; ChildValues childValues_; - JSONCPP_STRING document_; - JSONCPP_STRING indentString_; - unsigned int rightMargin_; - unsigned int indentSize_; - bool addChildValues_; + String document_; + String indentString_; + unsigned int rightMargin_{74}; + unsigned int indentSize_{3}; + bool addChildValues_{false}; }; #if defined(_MSC_VER) #pragma warning(pop) @@ -2057,15 +2183,16 @@ private: */ #if defined(_MSC_VER) #pragma warning(push) -#pragma warning(disable:4996) // Deriving from deprecated class +#pragma warning(disable : 4996) // Deriving from deprecated class #endif -class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API StyledStreamWriter { +class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API + StyledStreamWriter { public: -/** - * \param indentation Each level will be indented by this amount extra. - */ - StyledStreamWriter(JSONCPP_STRING indentation = "\t"); - ~StyledStreamWriter() {} + /** + * \param indentation Each level will be indented by this amount extra. + */ + StyledStreamWriter(String indentation = "\t"); + ~StyledStreamWriter() = default; public: /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format. @@ -2074,29 +2201,29 @@ public: * \note There is no point in deriving from Writer, since write() should not * return a value. */ - void write(JSONCPP_OSTREAM& out, const Value& root); + void write(OStream& out, const Value& root); private: void writeValue(const Value& value); void writeArrayValue(const Value& value); bool isMultilineArray(const Value& value); - void pushValue(const JSONCPP_STRING& value); + void pushValue(const String& value); void writeIndent(); - void writeWithIndent(const JSONCPP_STRING& value); + void writeWithIndent(const String& value); void indent(); void unindent(); void writeCommentBeforeValue(const Value& root); void writeCommentAfterValueOnSameLine(const Value& root); - bool hasCommentForValue(const Value& value); - static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text); + static bool hasCommentForValue(const Value& value); + static String normalizeEOL(const String& text); - typedef std::vector<JSONCPP_STRING> ChildValues; + using ChildValues = std::vector<String>; ChildValues childValues_; - JSONCPP_OSTREAM* document_; - JSONCPP_STRING indentString_; - unsigned int rightMargin_; - JSONCPP_STRING indentation_; + OStream* document_; + String indentString_; + unsigned int rightMargin_{74}; + String indentation_; bool addChildValues_ : 1; bool indented_ : 1; }; @@ -2105,18 +2232,20 @@ private: #endif #if defined(JSON_HAS_INT64) -JSONCPP_STRING JSON_API valueToString(Int value); -JSONCPP_STRING JSON_API valueToString(UInt value); +String JSON_API valueToString(Int value); +String JSON_API valueToString(UInt value); #endif // if defined(JSON_HAS_INT64) -JSONCPP_STRING JSON_API valueToString(LargestInt value); -JSONCPP_STRING JSON_API valueToString(LargestUInt value); -JSONCPP_STRING JSON_API valueToString(double value); -JSONCPP_STRING JSON_API valueToString(bool value); -JSONCPP_STRING JSON_API valueToQuotedString(const char* value); +String JSON_API valueToString(LargestInt value); +String JSON_API valueToString(LargestUInt value); +String JSON_API valueToString( + double value, unsigned int precision = Value::defaultRealPrecision, + PrecisionType precisionType = PrecisionType::significantDigits); +String JSON_API valueToString(bool value); +String JSON_API valueToQuotedString(const char* value); /// \brief Output using the StyledStreamWriter. /// \see Json::operator>>() -JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root); +JSON_API OStream& operator<<(OStream&, const Value& root); } // namespace Json @@ -2146,10 +2275,10 @@ JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root); // recognized in your jurisdiction. // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE -#ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED -#define CPPTL_JSON_ASSERTIONS_H_INCLUDED +#ifndef JSON_ASSERTIONS_H_INCLUDED +#define JSON_ASSERTIONS_H_INCLUDED -#include <stdlib.h> +#include <cstdlib> #include <sstream> #if !defined(JSON_IS_AMALGAMATION) @@ -2163,38 +2292,45 @@ JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root); #if JSON_USE_EXCEPTION // @todo <= add detail about condition in exception -# define JSON_ASSERT(condition) \ - {if (!(condition)) {Json::throwLogicError( "assert json failed" );}} - -# define JSON_FAIL_MESSAGE(message) \ - { \ - JSONCPP_OSTRINGSTREAM oss; oss << message; \ +#define JSON_ASSERT(condition) \ + do { \ + if (!(condition)) { \ + Json::throwLogicError("assert json failed"); \ + } \ + } while (0) + +#define JSON_FAIL_MESSAGE(message) \ + do { \ + OStringStream oss; \ + oss << message; \ Json::throwLogicError(oss.str()); \ abort(); \ - } + } while (0) #else // JSON_USE_EXCEPTION -# define JSON_ASSERT(condition) assert(condition) +#define JSON_ASSERT(condition) assert(condition) // The call to assert() will show the failure message in debug builds. In // release builds we abort, for a core-dump or debugger. -# define JSON_FAIL_MESSAGE(message) \ +#define JSON_FAIL_MESSAGE(message) \ { \ - JSONCPP_OSTRINGSTREAM oss; oss << message; \ + OStringStream oss; \ + oss << message; \ assert(false && oss.str().c_str()); \ abort(); \ } - #endif #define JSON_ASSERT_MESSAGE(condition, message) \ - if (!(condition)) { \ - JSON_FAIL_MESSAGE(message); \ - } + do { \ + if (!(condition)) { \ + JSON_FAIL_MESSAGE(message); \ + } \ + } while (0) -#endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED +#endif // JSON_ASSERTIONS_H_INCLUDED // ////////////////////////////////////////////////////////////////////// // End of content of file: include/json/assertions.h diff --git a/lib/jsoncpp/jsoncpp.cpp b/lib/jsoncpp/jsoncpp.cpp index 507a1c6ad..30e0a69f7 100644 --- a/lib/jsoncpp/jsoncpp.cpp +++ b/lib/jsoncpp/jsoncpp.cpp @@ -92,6 +92,9 @@ license you like. #ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED #define LIB_JSONCPP_JSON_TOOL_H_INCLUDED +#if !defined(JSON_IS_AMALGAMATION) +#include <json/config.h> +#endif // Also support old flag NO_LOCALE_SUPPORT #ifdef NO_LOCALE_SUPPORT @@ -109,7 +112,7 @@ license you like. */ namespace Json { -static char getDecimalPoint() { +static inline char getDecimalPoint() { #ifdef JSONCPP_NO_LOCALE_SUPPORT return '\0'; #else @@ -119,8 +122,8 @@ static char getDecimalPoint() { } /// Converts a unicode code-point to UTF-8. -static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) { - JSONCPP_STRING result; +static inline String codePointToUTF8(unsigned int cp) { + String result; // based on description from http://en.wikipedia.org/wiki/UTF-8 @@ -154,7 +157,7 @@ enum { }; // Defines a char buffer for use with uintToString(). -typedef char UIntToStringBuffer[uintToStringBufferSize]; +using UIntToStringBuffer = char[uintToStringBufferSize]; /** Converts an unsigned integer to string. * @param value Unsigned integer to convert to string @@ -174,28 +177,45 @@ static inline void uintToString(LargestUInt value, char*& current) { * We had a sophisticated way, but it did not work in WinCE. * @see https://github.com/open-source-parsers/jsoncpp/pull/9 */ -static inline void fixNumericLocale(char* begin, char* end) { - while (begin < end) { +template <typename Iter> Iter fixNumericLocale(Iter begin, Iter end) { + for (; begin != end; ++begin) { if (*begin == ',') { *begin = '.'; } - ++begin; } + return begin; } -static inline void fixNumericLocaleInput(char* begin, char* end) { +template <typename Iter> void fixNumericLocaleInput(Iter begin, Iter end) { char decimalPoint = getDecimalPoint(); - if (decimalPoint != '\0' && decimalPoint != '.') { - while (begin < end) { - if (*begin == '.') { - *begin = decimalPoint; - } - ++begin; + if (decimalPoint == '\0' || decimalPoint == '.') { + return; + } + for (; begin != end; ++begin) { + if (*begin == '.') { + *begin = decimalPoint; } } } -} // namespace Json { +/** + * Return iterator that would be the new end of the range [begin,end), if we + * were to delete zeros in the end of string, but not the last zero before '.'. + */ +template <typename Iter> Iter fixZerosInTheEnd(Iter begin, Iter end) { + for (; begin != end; --end) { + if (*(end - 1) != '0') { + return end; + } + // Don't delete the last zero before the decimal point. + if (begin != (end - 1) && *(end - 2) == '.') { + return end; + } + } + return end; +} + +} // namespace Json #endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED @@ -219,69 +239,65 @@ static inline void fixNumericLocaleInput(char* begin, char* end) { // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #if !defined(JSON_IS_AMALGAMATION) +#include "json_tool.h" #include <json/assertions.h> #include <json/reader.h> #include <json/value.h> -#include "json_tool.h" #endif // if !defined(JSON_IS_AMALGAMATION) -#include <utility> -#include <cstdio> +#include <algorithm> #include <cassert> #include <cstring> +#include <iostream> #include <istream> -#include <sstream> +#include <limits> #include <memory> #include <set> -#include <limits> +#include <sstream> +#include <utility> -#if defined(_MSC_VER) -#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above -#define snprintf sprintf_s -#elif _MSC_VER >= 1900 // VC++ 14.0 and above -#define snprintf std::snprintf -#else -#define snprintf _snprintf -#endif -#elif defined(__ANDROID__) || defined(__QNXNTO__) -#define snprintf snprintf -#elif __cplusplus >= 201103L -#if !defined(__MINGW32__) && !defined(__CYGWIN__) -#define snprintf std::snprintf -#endif -#endif +#include <cstdio> +#if __cplusplus >= 201103L -#if defined(__QNXNTO__) +#if !defined(sscanf) #define sscanf std::sscanf #endif -#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0 +#endif //__cplusplus + +#if defined(_MSC_VER) +#if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) +#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 +#endif //_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES +#endif //_MSC_VER + +#if defined(_MSC_VER) // Disable warning about strdup being deprecated. #pragma warning(disable : 4996) #endif -// Define JSONCPP_DEPRECATED_STACK_LIMIT as an appropriate integer at compile time to change the stack limit +// Define JSONCPP_DEPRECATED_STACK_LIMIT as an appropriate integer at compile +// time to change the stack limit #if !defined(JSONCPP_DEPRECATED_STACK_LIMIT) #define JSONCPP_DEPRECATED_STACK_LIMIT 1000 #endif -static size_t const stackLimit_g = JSONCPP_DEPRECATED_STACK_LIMIT; // see readValue() +static size_t const stackLimit_g = + JSONCPP_DEPRECATED_STACK_LIMIT; // see readValue() namespace Json { #if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) -typedef std::unique_ptr<CharReader> CharReaderPtr; +using CharReaderPtr = std::unique_ptr<CharReader>; #else -typedef std::auto_ptr<CharReader> CharReaderPtr; +using CharReaderPtr = std::auto_ptr<CharReader>; #endif // Implementation of class Features // //////////////////////////////// -Features::Features() - : allowComments_(true), strictRoot_(false), - allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {} +Features::Features() = default; -Features Features::all() { return Features(); } +Features Features::all() { return {}; } Features Features::strictMode() { Features features; @@ -296,49 +312,38 @@ Features Features::strictMode() { // //////////////////////////////// bool Reader::containsNewLine(Reader::Location begin, Reader::Location end) { - for (; begin < end; ++begin) - if (*begin == '\n' || *begin == '\r') - return true; - return false; + return std::any_of(begin, end, [](char b) { return b == '\n' || b == '\r'; }); } // Class Reader // ////////////////////////////////////////////////////////////////// -Reader::Reader() - : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), - lastValue_(), commentsBefore_(), features_(Features::all()), - collectComments_() {} +Reader::Reader() : features_(Features::all()) {} -Reader::Reader(const Features& features) - : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), - lastValue_(), commentsBefore_(), features_(features), collectComments_() { -} +Reader::Reader(const Features& features) : features_(features) {} -bool -Reader::parse(const std::string& document, Value& root, bool collectComments) { +bool Reader::parse(const std::string& document, Value& root, + bool collectComments) { document_.assign(document.begin(), document.end()); const char* begin = document_.c_str(); const char* end = begin + document_.length(); return parse(begin, end, root, collectComments); } -bool Reader::parse(std::istream& sin, Value& root, bool collectComments) { - // std::istream_iterator<char> begin(sin); +bool Reader::parse(std::istream& is, Value& root, bool collectComments) { + // std::istream_iterator<char> begin(is); // std::istream_iterator<char> end; // Those would allow streamed input from a file, if parse() were a // template function. - // Since JSONCPP_STRING is reference-counted, this at least does not + // Since String is reference-counted, this at least does not // create an extra copy. - JSONCPP_STRING doc; - std::getline(sin, doc, (char)EOF); + String doc; + std::getline(is, doc, static_cast<char> EOF); return parse(doc.data(), doc.data() + doc.size(), root, collectComments); } -bool Reader::parse(const char* beginDoc, - const char* endDoc, - Value& root, +bool Reader::parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments) { if (!features_.allowComments_) { collectComments = false; @@ -348,8 +353,8 @@ bool Reader::parse(const char* beginDoc, end_ = endDoc; collectComments_ = collectComments; current_ = begin_; - lastValueEnd_ = 0; - lastValue_ = 0; + lastValueEnd_ = nullptr; + lastValue_ = nullptr; commentsBefore_.clear(); errors_.clear(); while (!nodes_.empty()) @@ -379,9 +384,11 @@ bool Reader::parse(const char* beginDoc, bool Reader::readValue() { // readValue() may call itself only if it calls readObject() or ReadArray(). - // These methods execute nodes_.push() just before and nodes_.pop)() just after calling readValue(). - // parse() executes one nodes_.push(), so > instead of >=. - if (nodes_.size() > stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue()."); + // These methods execute nodes_.push() just before and nodes_.pop)() just + // after calling readValue(). parse() executes one nodes_.push(), so > instead + // of >=. + if (nodes_.size() > stackLimit_g) + throwRuntimeError("Exceeded stackLimit in readValue()."); Token token; skipCommentTokens(token); @@ -407,30 +414,24 @@ bool Reader::readValue() { case tokenString: successful = decodeString(token); break; - case tokenTrue: - { + case tokenTrue: { Value v(true); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenFalse: - { + } break; + case tokenFalse: { Value v(false); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNull: - { + } break; + case tokenNull: { Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; + } break; case tokenArraySeparator: case tokenObjectEnd: case tokenArrayEnd: @@ -536,7 +537,7 @@ bool Reader::readToken(Token& token) { if (!ok) token.type_ = tokenError; token.end_ = current_; - return true; + return ok; } void Reader::skipSpaces() { @@ -549,7 +550,7 @@ void Reader::skipSpaces() { } } -bool Reader::match(Location pattern, int patternLength) { +bool Reader::match(const Char* pattern, int patternLength) { if (end_ - current_ < patternLength) return false; int index = patternLength; @@ -583,16 +584,16 @@ bool Reader::readComment() { return true; } -JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader::Location end) { - JSONCPP_STRING normalized; +String Reader::normalizeEOL(Reader::Location begin, Reader::Location end) { + String normalized; normalized.reserve(static_cast<size_t>(end - begin)); Reader::Location current = begin; while (current != end) { char c = *current++; if (c == '\r') { if (current != end && *current == '\n') - // convert dos EOL - ++current; + // convert dos EOL + ++current; // convert Mac EOL normalized += '\n'; } else { @@ -602,12 +603,12 @@ JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader::Location end return normalized; } -void -Reader::addComment(Location begin, Location end, CommentPlacement placement) { +void Reader::addComment(Location begin, Location end, + CommentPlacement placement) { assert(collectComments_); - const JSONCPP_STRING& normalized = normalizeEOL(begin, end); + const String& normalized = normalizeEOL(begin, end); if (placement == commentAfterOnSameLine) { - assert(lastValue_ != 0); + assert(lastValue_ != nullptr); lastValue_->setComment(normalized, placement); } else { commentsBefore_ += normalized; @@ -640,7 +641,7 @@ bool Reader::readCppStyleComment() { } void Reader::readNumber() { - const char *p = current_; + Location p = current_; char c = '0'; // stopgap for already consumed character // integral part while (c >= '0' && c <= '9') @@ -673,12 +674,12 @@ bool Reader::readString() { return c == '"'; } -bool Reader::readObject(Token& tokenStart) { +bool Reader::readObject(Token& token) { Token tokenName; - JSONCPP_STRING name; + String name; Value init(objectValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); + currentValue().setOffsetStart(token.start_ - begin_); while (readToken(tokenName)) { bool initialTokenOk = true; while (tokenName.type_ == tokenComment && initialTokenOk) @@ -695,15 +696,15 @@ bool Reader::readObject(Token& tokenStart) { Value numberName; if (!decodeNumber(tokenName, numberName)) return recoverFromError(tokenObjectEnd); - name = JSONCPP_STRING(numberName.asCString()); + name = numberName.asString(); } else { break; } Token colon; if (!readToken(colon) || colon.type_ != tokenMemberSeparator) { - return addErrorAndRecover( - "Missing ':' after object member name", colon, tokenObjectEnd); + return addErrorAndRecover("Missing ':' after object member name", colon, + tokenObjectEnd); } Value& value = currentValue()[name]; nodes_.push(&value); @@ -716,8 +717,8 @@ bool Reader::readObject(Token& tokenStart) { if (!readToken(comma) || (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && comma.type_ != tokenComment)) { - return addErrorAndRecover( - "Missing ',' or '}' in object declaration", comma, tokenObjectEnd); + return addErrorAndRecover("Missing ',' or '}' in object declaration", + comma, tokenObjectEnd); } bool finalizeTokenOk = true; while (comma.type_ == tokenComment && finalizeTokenOk) @@ -725,14 +726,14 @@ bool Reader::readObject(Token& tokenStart) { if (comma.type_ == tokenObjectEnd) return true; } - return addErrorAndRecover( - "Missing '}' or object member name", tokenName, tokenObjectEnd); + return addErrorAndRecover("Missing '}' or object member name", tokenName, + tokenObjectEnd); } -bool Reader::readArray(Token& tokenStart) { +bool Reader::readArray(Token& token) { Value init(arrayValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); + currentValue().setOffsetStart(token.start_ - begin_); skipSpaces(); if (current_ != end_ && *current_ == ']') // empty array { @@ -749,19 +750,19 @@ bool Reader::readArray(Token& tokenStart) { if (!ok) // error already set return recoverFromError(tokenArrayEnd); - Token token; + Token currentToken; // Accept Comment after last item in the array. - ok = readToken(token); - while (token.type_ == tokenComment && ok) { - ok = readToken(token); + ok = readToken(currentToken); + while (currentToken.type_ == tokenComment && ok) { + ok = readToken(currentToken); } - bool badTokenType = - (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd); + bool badTokenType = (currentToken.type_ != tokenArraySeparator && + currentToken.type_ != tokenArrayEnd); if (!ok || badTokenType) { - return addErrorAndRecover( - "Missing ',' or ']' in array declaration", token, tokenArrayEnd); + return addErrorAndRecover("Missing ',' or ']' in array declaration", + currentToken, tokenArrayEnd); } - if (token.type_ == tokenArrayEnd) + if (currentToken.type_ == tokenArrayEnd) break; } return true; @@ -785,7 +786,8 @@ bool Reader::decodeNumber(Token& token, Value& decoded) { bool isNegative = *current == '-'; if (isNegative) ++current; - // TODO: Help the compiler do the div and mod at compile time or get rid of them. + // TODO: Help the compiler do the div and mod at compile time or get rid of + // them. Value::LargestUInt maxIntegerValue = isNegative ? Value::LargestUInt(Value::maxLargestInt) + 1 : Value::maxLargestUInt; @@ -795,7 +797,7 @@ bool Reader::decodeNumber(Token& token, Value& decoded) { Char c = *current++; if (c < '0' || c > '9') return decodeDouble(token, decoded); - Value::UInt digit(static_cast<Value::UInt>(c - '0')); + auto digit(static_cast<Value::UInt>(c - '0')); if (value >= threshold) { // We've hit or exceeded the max value divided by 10 (rounded down). If // a) we've only just touched the limit, b) this is the last digit, and @@ -831,18 +833,17 @@ bool Reader::decodeDouble(Token& token) { bool Reader::decodeDouble(Token& token, Value& decoded) { double value = 0; - JSONCPP_STRING buffer(token.start_, token.end_); - JSONCPP_ISTRINGSTREAM is(buffer); + String buffer(token.start_, token.end_); + IStringStream is(buffer); if (!(is >> value)) - return addError("'" + JSONCPP_STRING(token.start_, token.end_) + - "' is not a number.", - token); + return addError( + "'" + String(token.start_, token.end_) + "' is not a number.", token); decoded = value; return true; } bool Reader::decodeString(Token& token) { - JSONCPP_STRING decoded_string; + String decoded_string; if (!decodeString(token, decoded_string)) return false; Value decoded(decoded_string); @@ -852,7 +853,7 @@ bool Reader::decodeString(Token& token) { return true; } -bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) { +bool Reader::decodeString(Token& token, String& decoded) { decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2)); Location current = token.start_ + 1; // skip '"' Location end = token.end_ - 1; // do not include '"' @@ -860,7 +861,7 @@ bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) { Char c = *current++; if (c == '"') break; - else if (c == '\\') { + if (c == '\\') { if (current == end) return addError("Empty escape sequence in string", token, current); Char escape = *current++; @@ -905,10 +906,8 @@ bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) { return true; } -bool Reader::decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, - unsigned int& unicode) { +bool Reader::decodeUnicodeCodePoint(Token& token, Location& current, + Location end, unsigned int& unicode) { if (!decodeUnicodeEscapeSequence(token, current, end, unicode)) return false; @@ -917,10 +916,9 @@ bool Reader::decodeUnicodeCodePoint(Token& token, if (end - current < 6) return addError( "additional six characters expected to parse unicode surrogate pair.", - token, - current); - unsigned int surrogatePair; + token, current); if (*(current++) == '\\' && *(current++) == 'u') { + unsigned int surrogatePair; if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) { unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF); } else @@ -928,20 +926,17 @@ bool Reader::decodeUnicodeCodePoint(Token& token, } else return addError("expecting another \\u token to begin the second half of " "a unicode surrogate pair", - token, - current); + token, current); } return true; } -bool Reader::decodeUnicodeEscapeSequence(Token& token, - Location& current, +bool Reader::decodeUnicodeEscapeSequence(Token& token, Location& current, Location end, unsigned int& ret_unicode) { if (end - current < 4) return addError( - "Bad unicode escape sequence in string: four digits expected.", - token, + "Bad unicode escape sequence in string: four digits expected.", token, current); int unicode = 0; for (int index = 0; index < 4; ++index) { @@ -956,15 +951,13 @@ bool Reader::decodeUnicodeEscapeSequence(Token& token, else return addError( "Bad unicode escape sequence in string: hexadecimal digit expected.", - token, - current); + token, current); } ret_unicode = static_cast<unsigned int>(unicode); return true; } -bool -Reader::addError(const JSONCPP_STRING& message, Token& token, Location extra) { +bool Reader::addError(const String& message, Token& token, Location extra) { ErrorInfo info; info.token_ = token; info.message_ = message; @@ -986,8 +979,7 @@ bool Reader::recoverFromError(TokenType skipUntilToken) { return false; } -bool Reader::addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, +bool Reader::addErrorAndRecover(const String& message, Token& token, TokenType skipUntilToken) { addError(message, token); return recoverFromError(skipUntilToken); @@ -1001,8 +993,7 @@ Reader::Char Reader::getNextChar() { return *current_++; } -void Reader::getLocationLineAndColumn(Location location, - int& line, +void Reader::getLocationLineAndColumn(Location location, int& line, int& column) const { Location current = begin_; Location lastLineStart = current; @@ -1024,25 +1015,22 @@ void Reader::getLocationLineAndColumn(Location location, ++line; } -JSONCPP_STRING Reader::getLocationLineAndColumn(Location location) const { +String Reader::getLocationLineAndColumn(Location location) const { int line, column; getLocationLineAndColumn(location, line, column); char buffer[18 + 16 + 16 + 1]; - snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); + jsoncpp_snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); return buffer; } // Deprecated. Preserved for backward compatibility -JSONCPP_STRING Reader::getFormatedErrorMessages() const { +String Reader::getFormatedErrorMessages() const { return getFormattedErrorMessages(); } -JSONCPP_STRING Reader::getFormattedErrorMessages() const { - JSONCPP_STRING formattedMessage; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; +String Reader::getFormattedErrorMessages() const { + String formattedMessage; + for (const auto& error : errors_) { formattedMessage += "* " + getLocationLineAndColumn(error.token_.start_) + "\n"; formattedMessage += " " + error.message_ + "\n"; @@ -1055,10 +1043,7 @@ JSONCPP_STRING Reader::getFormattedErrorMessages() const { std::vector<Reader::StructuredError> Reader::getStructuredErrors() const { std::vector<Reader::StructuredError> allErrors; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; + for (const auto& error : errors_) { Reader::StructuredError structured; structured.offset_start = error.token_.start_ - begin_; structured.offset_limit = error.token_.end_ - begin_; @@ -1068,28 +1053,27 @@ std::vector<Reader::StructuredError> Reader::getStructuredErrors() const { return allErrors; } -bool Reader::pushError(const Value& value, const JSONCPP_STRING& message) { +bool Reader::pushError(const Value& value, const String& message) { ptrdiff_t const length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length) + if (value.getOffsetStart() > length || value.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; token.start_ = begin_ + value.getOffsetStart(); - token.end_ = end_ + value.getOffsetLimit(); + token.end_ = begin_ + value.getOffsetLimit(); ErrorInfo info; info.token_ = token; info.message_ = message; - info.extra_ = 0; + info.extra_ = nullptr; errors_.push_back(info); return true; } -bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) { +bool Reader::pushError(const Value& value, const String& message, + const Value& extra) { ptrdiff_t const length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length - || extra.getOffsetLimit() > length) + if (value.getOffsetStart() > length || value.getOffsetLimit() > length || + extra.getOffsetLimit() > length) return false; Token token; token.type_ = tokenError; @@ -1103,15 +1087,15 @@ bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const return true; } -bool Reader::good() const { - return !errors_.size(); -} +bool Reader::good() const { return errors_.empty(); } -// exact copy of Features +// Originally copied from the Features class (now deprecated), used internally +// for features implementation. class OurFeatures { public: static OurFeatures all(); bool allowComments_; + bool allowTrailingCommas_; bool strictRoot_; bool allowDroppedNullPlaceholders_; bool allowNumericKeys_; @@ -1119,42 +1103,36 @@ public: bool failIfExtra_; bool rejectDupKeys_; bool allowSpecialFloats_; - int stackLimit_; -}; // OurFeatures + bool skipBom_; + size_t stackLimit_; +}; // OurFeatures -// exact copy of Implementation of class Features -// //////////////////////////////// - -OurFeatures OurFeatures::all() { return OurFeatures(); } +OurFeatures OurFeatures::all() { return {}; } // Implementation of class Reader // //////////////////////////////// -// exact copy of Reader, renamed to OurReader +// Originally copied from the Reader class (now deprecated), used internally +// for implementing JSON reading. class OurReader { public: - typedef char Char; - typedef const Char* Location; + using Char = char; + using Location = const Char*; struct StructuredError { ptrdiff_t offset_start; ptrdiff_t offset_limit; - JSONCPP_STRING message; + String message; }; - OurReader(OurFeatures const& features); - bool parse(const char* beginDoc, - const char* endDoc, - Value& root, + explicit OurReader(OurFeatures const& features); + bool parse(const char* beginDoc, const char* endDoc, Value& root, bool collectComments = true); - JSONCPP_STRING getFormattedErrorMessages() const; + String getFormattedErrorMessages() const; std::vector<StructuredError> getStructuredErrors() const; - bool pushError(const Value& value, const JSONCPP_STRING& message); - bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra); - bool good() const; private: - OurReader(OurReader const&); // no impl - void operator=(OurReader const&); // no impl + OurReader(OurReader const&); // no impl + void operator=(OurReader const&); // no impl enum TokenType { tokenEndOfStream = 0, @@ -1186,17 +1164,18 @@ private: class ErrorInfo { public: Token token_; - JSONCPP_STRING message_; + String message_; Location extra_; }; - typedef std::deque<ErrorInfo> Errors; + using Errors = std::deque<ErrorInfo>; bool readToken(Token& token); void skipSpaces(); - bool match(Location pattern, int patternLength); + void skipBom(bool skipBom); + bool match(const Char* pattern, int patternLength); bool readComment(); - bool readCStyleComment(); + bool readCStyleComment(bool* containsNewLineResult); bool readCppStyleComment(); bool readString(); bool readStringSingleQuote(); @@ -1207,68 +1186,57 @@ private: bool decodeNumber(Token& token); bool decodeNumber(Token& token, Value& decoded); bool decodeString(Token& token); - bool decodeString(Token& token, JSONCPP_STRING& decoded); + bool decodeString(Token& token, String& decoded); bool decodeDouble(Token& token); bool decodeDouble(Token& token, Value& decoded); - bool decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, + bool decodeUnicodeCodePoint(Token& token, Location& current, Location end, unsigned int& unicode); - bool decodeUnicodeEscapeSequence(Token& token, - Location& current, - Location end, - unsigned int& unicode); - bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0); + bool decodeUnicodeEscapeSequence(Token& token, Location& current, + Location end, unsigned int& unicode); + bool addError(const String& message, Token& token, Location extra = nullptr); bool recoverFromError(TokenType skipUntilToken); - bool addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, + bool addErrorAndRecover(const String& message, Token& token, TokenType skipUntilToken); void skipUntilSpace(); Value& currentValue(); Char getNextChar(); - void - getLocationLineAndColumn(Location location, int& line, int& column) const; - JSONCPP_STRING getLocationLineAndColumn(Location location) const; + void getLocationLineAndColumn(Location location, int& line, + int& column) const; + String getLocationLineAndColumn(Location location) const; void addComment(Location begin, Location end, CommentPlacement placement); void skipCommentTokens(Token& token); - static JSONCPP_STRING normalizeEOL(Location begin, Location end); + static String normalizeEOL(Location begin, Location end); static bool containsNewLine(Location begin, Location end); - typedef std::stack<Value*> Nodes; - Nodes nodes_; - Errors errors_; - JSONCPP_STRING document_; - Location begin_; - Location end_; - Location current_; - Location lastValueEnd_; - Value* lastValue_; - JSONCPP_STRING commentsBefore_; + using Nodes = std::stack<Value*>; + + Nodes nodes_{}; + Errors errors_{}; + String document_{}; + Location begin_ = nullptr; + Location end_ = nullptr; + Location current_ = nullptr; + Location lastValueEnd_ = nullptr; + Value* lastValue_ = nullptr; + bool lastValueHasAComment_ = false; + String commentsBefore_{}; OurFeatures const features_; - bool collectComments_; -}; // OurReader + bool collectComments_ = false; +}; // OurReader // complete copy of Read impl, for OurReader -bool OurReader::containsNewLine(OurReader::Location begin, OurReader::Location end) { - for (; begin < end; ++begin) - if (*begin == '\n' || *begin == '\r') - return true; - return false; +bool OurReader::containsNewLine(OurReader::Location begin, + OurReader::Location end) { + return std::any_of(begin, end, [](char b) { return b == '\n' || b == '\r'; }); } -OurReader::OurReader(OurFeatures const& features) - : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), - lastValue_(), commentsBefore_(), - features_(features), collectComments_() { -} +OurReader::OurReader(OurFeatures const& features) : features_(features) {} -bool OurReader::parse(const char* beginDoc, - const char* endDoc, - Value& root, - bool collectComments) { +bool OurReader::parse(const char* beginDoc, const char* endDoc, Value& root, + bool collectComments) { if (!features_.allowComments_) { collectComments = false; } @@ -1277,22 +1245,23 @@ bool OurReader::parse(const char* beginDoc, end_ = endDoc; collectComments_ = collectComments; current_ = begin_; - lastValueEnd_ = 0; - lastValue_ = 0; + lastValueEnd_ = nullptr; + lastValue_ = nullptr; commentsBefore_.clear(); errors_.clear(); while (!nodes_.empty()) nodes_.pop(); nodes_.push(&root); + // skip byte order mark if it exists at the beginning of the UTF-8 text. + skipBom(features_.skipBom_); bool successful = readValue(); + nodes_.pop(); Token token; skipCommentTokens(token); - if (features_.failIfExtra_) { - if ((features_.strictRoot_ || token.type_ != tokenError) && token.type_ != tokenEndOfStream) { - addError("Extra non-whitespace after JSON value.", token); - return false; - } + if (features_.failIfExtra_ && (token.type_ != tokenEndOfStream)) { + addError("Extra non-whitespace after JSON value.", token); + return false; } if (collectComments_ && !commentsBefore_.empty()) root.setComment(commentsBefore_, commentAfter); @@ -1314,7 +1283,8 @@ bool OurReader::parse(const char* beginDoc, bool OurReader::readValue() { // To preserve the old behaviour we cast size_t to int. - if (static_cast<int>(nodes_.size()) > features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue()."); + if (nodes_.size() > features_.stackLimit_) + throwRuntimeError("Exceeded stackLimit in readValue()."); Token token; skipCommentTokens(token); bool successful = true; @@ -1339,54 +1309,42 @@ bool OurReader::readValue() { case tokenString: successful = decodeString(token); break; - case tokenTrue: - { + case tokenTrue: { Value v(true); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenFalse: - { + } break; + case tokenFalse: { Value v(false); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNull: - { + } break; + case tokenNull: { Value v; currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNaN: - { + } break; + case tokenNaN: { Value v(std::numeric_limits<double>::quiet_NaN()); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenPosInf: - { + } break; + case tokenPosInf: { Value v(std::numeric_limits<double>::infinity()); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; - case tokenNegInf: - { + } break; + case tokenNegInf: { Value v(-std::numeric_limits<double>::infinity()); currentValue().swapPayload(v); currentValue().setOffsetStart(token.start_ - begin_); currentValue().setOffsetLimit(token.end_ - begin_); - } - break; + } break; case tokenArraySeparator: case tokenObjectEnd: case tokenArrayEnd: @@ -1408,6 +1366,7 @@ bool OurReader::readValue() { if (collectComments_) { lastValueEnd_ = current_; + lastValueHasAComment_ = false; lastValue_ = ¤tValue(); } @@ -1448,10 +1407,13 @@ bool OurReader::readToken(Token& token) { break; case '\'': if (features_.allowSingleQuotes_) { - token.type_ = tokenString; - ok = readStringSingleQuote(); + token.type_ = tokenString; + ok = readStringSingleQuote(); + } else { + // If we don't allow single quotes, this is a failure case. + ok = false; + } break; - } // else fall through case '/': token.type_ = tokenComment; ok = readComment(); @@ -1477,6 +1439,14 @@ bool OurReader::readToken(Token& token) { ok = features_.allowSpecialFloats_ && match("nfinity", 7); } break; + case '+': + if (readNumber(true)) { + token.type_ = tokenNumber; + } else { + token.type_ = tokenPosInf; + ok = features_.allowSpecialFloats_ && match("nfinity", 7); + } + break; case 't': token.type_ = tokenTrue; ok = match("rue", 3); @@ -1521,7 +1491,7 @@ bool OurReader::readToken(Token& token) { if (!ok) token.type_ = tokenError; token.end_ = current_; - return true; + return ok; } void OurReader::skipSpaces() { @@ -1534,7 +1504,17 @@ void OurReader::skipSpaces() { } } -bool OurReader::match(Location pattern, int patternLength) { +void OurReader::skipBom(bool skipBom) { + // The default behavior is to skip BOM. + if (skipBom) { + if ((end_ - begin_) >= 3 && strncmp(begin_, "\xEF\xBB\xBF", 3) == 0) { + begin_ += 3; + current_ = begin_; + } + } +} + +bool OurReader::match(const Char* pattern, int patternLength) { if (end_ - current_ < patternLength) return false; int index = patternLength; @@ -1546,21 +1526,32 @@ bool OurReader::match(Location pattern, int patternLength) { } bool OurReader::readComment() { - Location commentBegin = current_ - 1; - Char c = getNextChar(); + const Location commentBegin = current_ - 1; + const Char c = getNextChar(); bool successful = false; - if (c == '*') - successful = readCStyleComment(); - else if (c == '/') + bool cStyleWithEmbeddedNewline = false; + + const bool isCStyleComment = (c == '*'); + const bool isCppStyleComment = (c == '/'); + if (isCStyleComment) { + successful = readCStyleComment(&cStyleWithEmbeddedNewline); + } else if (isCppStyleComment) { successful = readCppStyleComment(); + } + if (!successful) return false; if (collectComments_) { CommentPlacement placement = commentBefore; - if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) { - if (c != '*' || !containsNewLine(commentBegin, current_)) - placement = commentAfterOnSameLine; + + if (!lastValueHasAComment_) { + if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) { + if (isCppStyleComment || !cStyleWithEmbeddedNewline) { + placement = commentAfterOnSameLine; + lastValueHasAComment_ = true; + } + } } addComment(commentBegin, current_, placement); @@ -1568,16 +1559,17 @@ bool OurReader::readComment() { return true; } -JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, OurReader::Location end) { - JSONCPP_STRING normalized; +String OurReader::normalizeEOL(OurReader::Location begin, + OurReader::Location end) { + String normalized; normalized.reserve(static_cast<size_t>(end - begin)); OurReader::Location current = begin; while (current != end) { char c = *current++; if (c == '\r') { if (current != end && *current == '\n') - // convert dos EOL - ++current; + // convert dos EOL + ++current; // convert Mac EOL normalized += '\n'; } else { @@ -1587,24 +1579,29 @@ JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, OurReader::Loc return normalized; } -void -OurReader::addComment(Location begin, Location end, CommentPlacement placement) { +void OurReader::addComment(Location begin, Location end, + CommentPlacement placement) { assert(collectComments_); - const JSONCPP_STRING& normalized = normalizeEOL(begin, end); + const String& normalized = normalizeEOL(begin, end); if (placement == commentAfterOnSameLine) { - assert(lastValue_ != 0); + assert(lastValue_ != nullptr); lastValue_->setComment(normalized, placement); } else { commentsBefore_ += normalized; } } -bool OurReader::readCStyleComment() { +bool OurReader::readCStyleComment(bool* containsNewLineResult) { + *containsNewLineResult = false; + while ((current_ + 1) < end_) { Char c = getNextChar(); if (c == '*' && *current_ == '/') break; + if (c == '\n') + *containsNewLineResult = true; } + return getNextChar() == '/'; } @@ -1625,7 +1622,7 @@ bool OurReader::readCppStyleComment() { } bool OurReader::readNumber(bool checkInf) { - const char *p = current_; + Location p = current_; if (checkInf && p != end_ && *p == 'I') { current_ = ++p; return false; @@ -1662,7 +1659,6 @@ bool OurReader::readString() { return c == '"'; } - bool OurReader::readStringSingleQuote() { Char c = 0; while (current_ != end_) { @@ -1675,19 +1671,21 @@ bool OurReader::readStringSingleQuote() { return c == '\''; } -bool OurReader::readObject(Token& tokenStart) { +bool OurReader::readObject(Token& token) { Token tokenName; - JSONCPP_STRING name; + String name; Value init(objectValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); + currentValue().setOffsetStart(token.start_ - begin_); while (readToken(tokenName)) { bool initialTokenOk = true; while (tokenName.type_ == tokenComment && initialTokenOk) initialTokenOk = readToken(tokenName); if (!initialTokenOk) break; - if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object + if (tokenName.type_ == tokenObjectEnd && + (name.empty() || + features_.allowTrailingCommas_)) // empty object or trailing comma return true; name.clear(); if (tokenName.type_ == tokenString) { @@ -1701,17 +1699,17 @@ bool OurReader::readObject(Token& tokenStart) { } else { break; } + if (name.length() >= (1U << 30)) + throwRuntimeError("keylength >= 2^30"); + if (features_.rejectDupKeys_ && currentValue().isMember(name)) { + String msg = "Duplicate key: '" + name + "'"; + return addErrorAndRecover(msg, tokenName, tokenObjectEnd); + } Token colon; if (!readToken(colon) || colon.type_ != tokenMemberSeparator) { - return addErrorAndRecover( - "Missing ':' after object member name", colon, tokenObjectEnd); - } - if (name.length() >= (1U<<30)) throwRuntimeError("keylength >= 2^30"); - if (features_.rejectDupKeys_ && currentValue().isMember(name)) { - JSONCPP_STRING msg = "Duplicate key: '" + name + "'"; - return addErrorAndRecover( - msg, tokenName, tokenObjectEnd); + return addErrorAndRecover("Missing ':' after object member name", colon, + tokenObjectEnd); } Value& value = currentValue()[name]; nodes_.push(&value); @@ -1724,8 +1722,8 @@ bool OurReader::readObject(Token& tokenStart) { if (!readToken(comma) || (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator && comma.type_ != tokenComment)) { - return addErrorAndRecover( - "Missing ',' or '}' in object declaration", comma, tokenObjectEnd); + return addErrorAndRecover("Missing ',' or '}' in object declaration", + comma, tokenObjectEnd); } bool finalizeTokenOk = true; while (comma.type_ == tokenComment && finalizeTokenOk) @@ -1733,23 +1731,27 @@ bool OurReader::readObject(Token& tokenStart) { if (comma.type_ == tokenObjectEnd) return true; } - return addErrorAndRecover( - "Missing '}' or object member name", tokenName, tokenObjectEnd); + return addErrorAndRecover("Missing '}' or object member name", tokenName, + tokenObjectEnd); } -bool OurReader::readArray(Token& tokenStart) { +bool OurReader::readArray(Token& token) { Value init(arrayValue); currentValue().swapPayload(init); - currentValue().setOffsetStart(tokenStart.start_ - begin_); - skipSpaces(); - if (current_ != end_ && *current_ == ']') // empty array - { - Token endArray; - readToken(endArray); - return true; - } + currentValue().setOffsetStart(token.start_ - begin_); int index = 0; for (;;) { + skipSpaces(); + if (current_ != end_ && *current_ == ']' && + (index == 0 || + (features_.allowTrailingCommas_ && + !features_.allowDroppedNullPlaceholders_))) // empty array or trailing + // comma + { + Token endArray; + readToken(endArray); + return true; + } Value& value = currentValue()[index++]; nodes_.push(&value); bool ok = readValue(); @@ -1757,19 +1759,19 @@ bool OurReader::readArray(Token& tokenStart) { if (!ok) // error already set return recoverFromError(tokenArrayEnd); - Token token; + Token currentToken; // Accept Comment after last item in the array. - ok = readToken(token); - while (token.type_ == tokenComment && ok) { - ok = readToken(token); + ok = readToken(currentToken); + while (currentToken.type_ == tokenComment && ok) { + ok = readToken(currentToken); } - bool badTokenType = - (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd); + bool badTokenType = (currentToken.type_ != tokenArraySeparator && + currentToken.type_ != tokenArrayEnd); if (!ok || badTokenType) { - return addErrorAndRecover( - "Missing ',' or ']' in array declaration", token, tokenArrayEnd); + return addErrorAndRecover("Missing ',' or ']' in array declaration", + currentToken, tokenArrayEnd); } - if (token.type_ == tokenArrayEnd) + if (currentToken.type_ == tokenArrayEnd) break; } return true; @@ -1790,38 +1792,78 @@ bool OurReader::decodeNumber(Token& token, Value& decoded) { // larger than the maximum supported value of an integer then // we decode the number as a double. Location current = token.start_; - bool isNegative = *current == '-'; - if (isNegative) + const bool isNegative = *current == '-'; + if (isNegative) { ++current; - // TODO: Help the compiler do the div and mod at compile time or get rid of them. - Value::LargestUInt maxIntegerValue = - isNegative ? Value::LargestUInt(-Value::minLargestInt) - : Value::maxLargestUInt; - Value::LargestUInt threshold = maxIntegerValue / 10; + } + + // We assume we can represent the largest and smallest integer types as + // unsigned integers with separate sign. This is only true if they can fit + // into an unsigned integer. + static_assert(Value::maxLargestInt <= Value::maxLargestUInt, + "Int must be smaller than UInt"); + + // We need to convert minLargestInt into a positive number. The easiest way + // to do this conversion is to assume our "threshold" value of minLargestInt + // divided by 10 can fit in maxLargestInt when absolute valued. This should + // be a safe assumption. + static_assert(Value::minLargestInt <= -Value::maxLargestInt, + "The absolute value of minLargestInt must be greater than or " + "equal to maxLargestInt"); + static_assert(Value::minLargestInt / 10 >= -Value::maxLargestInt, + "The absolute value of minLargestInt must be only 1 magnitude " + "larger than maxLargest Int"); + + static constexpr Value::LargestUInt positive_threshold = + Value::maxLargestUInt / 10; + static constexpr Value::UInt positive_last_digit = Value::maxLargestUInt % 10; + + // For the negative values, we have to be more careful. Since typically + // -Value::minLargestInt will cause an overflow, we first divide by 10 and + // then take the inverse. This assumes that minLargestInt is only a single + // power of 10 different in magnitude, which we check above. For the last + // digit, we take the modulus before negating for the same reason. + static constexpr auto negative_threshold = + Value::LargestUInt(-(Value::minLargestInt / 10)); + static constexpr auto negative_last_digit = + Value::UInt(-(Value::minLargestInt % 10)); + + const Value::LargestUInt threshold = + isNegative ? negative_threshold : positive_threshold; + const Value::UInt max_last_digit = + isNegative ? negative_last_digit : positive_last_digit; + Value::LargestUInt value = 0; while (current < token.end_) { Char c = *current++; if (c < '0' || c > '9') return decodeDouble(token, decoded); - Value::UInt digit(static_cast<Value::UInt>(c - '0')); + + const auto digit(static_cast<Value::UInt>(c - '0')); if (value >= threshold) { // We've hit or exceeded the max value divided by 10 (rounded down). If - // a) we've only just touched the limit, b) this is the last digit, and + // a) we've only just touched the limit, meaing value == threshold, + // b) this is the last digit, or // c) it's small enough to fit in that rounding delta, we're okay. // Otherwise treat this number as a double to avoid overflow. if (value > threshold || current != token.end_ || - digit > maxIntegerValue % 10) { + digit > max_last_digit) { return decodeDouble(token, decoded); } } value = value * 10 + digit; } - if (isNegative) - decoded = -Value::LargestInt(value); - else if (value <= Value::LargestUInt(Value::maxInt)) + + if (isNegative) { + // We use the same magnitude assumption here, just in case. + const auto last_digit = static_cast<Value::UInt>(value % 10); + decoded = -Value::LargestInt(value / 10) * 10 - last_digit; + } else if (value <= Value::LargestUInt(Value::maxLargestInt)) { decoded = Value::LargestInt(value); - else + } else { decoded = value; + } + return true; } @@ -1837,44 +1879,18 @@ bool OurReader::decodeDouble(Token& token) { bool OurReader::decodeDouble(Token& token, Value& decoded) { double value = 0; - const int bufferSize = 32; - int count; - ptrdiff_t const length = token.end_ - token.start_; - - // Sanity check to avoid buffer overflow exploits. - if (length < 0) { - return addError("Unable to parse token length", token); - } - size_t const ulength = static_cast<size_t>(length); - - // Avoid using a string constant for the format control string given to - // sscanf, as this can cause hard to debug crashes on OS X. See here for more - // info: - // - // http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html - char format[] = "%lf"; - - if (length <= bufferSize) { - Char buffer[bufferSize + 1]; - memcpy(buffer, token.start_, ulength); - buffer[length] = 0; - fixNumericLocaleInput(buffer, buffer + length); - count = sscanf(buffer, format, &value); - } else { - JSONCPP_STRING buffer(token.start_, token.end_); - count = sscanf(buffer.c_str(), format, &value); + const String buffer(token.start_, token.end_); + IStringStream is(buffer); + if (!(is >> value)) { + return addError( + "'" + String(token.start_, token.end_) + "' is not a number.", token); } - - if (count != 1) - return addError("'" + JSONCPP_STRING(token.start_, token.end_) + - "' is not a number.", - token); decoded = value; return true; } bool OurReader::decodeString(Token& token) { - JSONCPP_STRING decoded_string; + String decoded_string; if (!decodeString(token, decoded_string)) return false; Value decoded(decoded_string); @@ -1884,7 +1900,7 @@ bool OurReader::decodeString(Token& token) { return true; } -bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) { +bool OurReader::decodeString(Token& token, String& decoded) { decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2)); Location current = token.start_ + 1; // skip '"' Location end = token.end_ - 1; // do not include '"' @@ -1892,7 +1908,7 @@ bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) { Char c = *current++; if (c == '"') break; - else if (c == '\\') { + if (c == '\\') { if (current == end) return addError("Empty escape sequence in string", token, current); Char escape = *current++; @@ -1937,10 +1953,8 @@ bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) { return true; } -bool OurReader::decodeUnicodeCodePoint(Token& token, - Location& current, - Location end, - unsigned int& unicode) { +bool OurReader::decodeUnicodeCodePoint(Token& token, Location& current, + Location end, unsigned int& unicode) { if (!decodeUnicodeEscapeSequence(token, current, end, unicode)) return false; @@ -1949,10 +1963,9 @@ bool OurReader::decodeUnicodeCodePoint(Token& token, if (end - current < 6) return addError( "additional six characters expected to parse unicode surrogate pair.", - token, - current); - unsigned int surrogatePair; + token, current); if (*(current++) == '\\' && *(current++) == 'u') { + unsigned int surrogatePair; if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) { unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF); } else @@ -1960,20 +1973,17 @@ bool OurReader::decodeUnicodeCodePoint(Token& token, } else return addError("expecting another \\u token to begin the second half of " "a unicode surrogate pair", - token, - current); + token, current); } return true; } -bool OurReader::decodeUnicodeEscapeSequence(Token& token, - Location& current, - Location end, - unsigned int& ret_unicode) { +bool OurReader::decodeUnicodeEscapeSequence(Token& token, Location& current, + Location end, + unsigned int& ret_unicode) { if (end - current < 4) return addError( - "Bad unicode escape sequence in string: four digits expected.", - token, + "Bad unicode escape sequence in string: four digits expected.", token, current); int unicode = 0; for (int index = 0; index < 4; ++index) { @@ -1988,15 +1998,13 @@ bool OurReader::decodeUnicodeEscapeSequence(Token& token, else return addError( "Bad unicode escape sequence in string: hexadecimal digit expected.", - token, - current); + token, current); } ret_unicode = static_cast<unsigned int>(unicode); return true; } -bool -OurReader::addError(const JSONCPP_STRING& message, Token& token, Location extra) { +bool OurReader::addError(const String& message, Token& token, Location extra) { ErrorInfo info; info.token_ = token; info.message_ = message; @@ -2018,9 +2026,8 @@ bool OurReader::recoverFromError(TokenType skipUntilToken) { return false; } -bool OurReader::addErrorAndRecover(const JSONCPP_STRING& message, - Token& token, - TokenType skipUntilToken) { +bool OurReader::addErrorAndRecover(const String& message, Token& token, + TokenType skipUntilToken) { addError(message, token); return recoverFromError(skipUntilToken); } @@ -2033,9 +2040,8 @@ OurReader::Char OurReader::getNextChar() { return *current_++; } -void OurReader::getLocationLineAndColumn(Location location, - int& line, - int& column) const { +void OurReader::getLocationLineAndColumn(Location location, int& line, + int& column) const { Location current = begin_; Location lastLineStart = current; line = 0; @@ -2056,20 +2062,17 @@ void OurReader::getLocationLineAndColumn(Location location, ++line; } -JSONCPP_STRING OurReader::getLocationLineAndColumn(Location location) const { +String OurReader::getLocationLineAndColumn(Location location) const { int line, column; getLocationLineAndColumn(location, line, column); char buffer[18 + 16 + 16 + 1]; - snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); + jsoncpp_snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column); return buffer; } -JSONCPP_STRING OurReader::getFormattedErrorMessages() const { - JSONCPP_STRING formattedMessage; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; +String OurReader::getFormattedErrorMessages() const { + String formattedMessage; + for (const auto& error : errors_) { formattedMessage += "* " + getLocationLineAndColumn(error.token_.start_) + "\n"; formattedMessage += " " + error.message_ + "\n"; @@ -2082,10 +2085,7 @@ JSONCPP_STRING OurReader::getFormattedErrorMessages() const { std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const { std::vector<OurReader::StructuredError> allErrors; - for (Errors::const_iterator itError = errors_.begin(); - itError != errors_.end(); - ++itError) { - const ErrorInfo& error = *itError; + for (const auto& error : errors_) { OurReader::StructuredError structured; structured.offset_start = error.token_.start_ - begin_; structured.offset_limit = error.token_.end_ - begin_; @@ -2095,59 +2095,15 @@ std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const { return allErrors; } -bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message) { - ptrdiff_t length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length) - return false; - Token token; - token.type_ = tokenError; - token.start_ = begin_ + value.getOffsetStart(); - token.end_ = end_ + value.getOffsetLimit(); - ErrorInfo info; - info.token_ = token; - info.message_ = message; - info.extra_ = 0; - errors_.push_back(info); - return true; -} - -bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) { - ptrdiff_t length = end_ - begin_; - if(value.getOffsetStart() > length - || value.getOffsetLimit() > length - || extra.getOffsetLimit() > length) - return false; - Token token; - token.type_ = tokenError; - token.start_ = begin_ + value.getOffsetStart(); - token.end_ = begin_ + value.getOffsetLimit(); - ErrorInfo info; - info.token_ = token; - info.message_ = message; - info.extra_ = begin_ + extra.getOffsetStart(); - errors_.push_back(info); - return true; -} - -bool OurReader::good() const { - return !errors_.size(); -} - - class OurCharReader : public CharReader { bool const collectComments_; OurReader reader_; + public: - OurCharReader( - bool collectComments, - OurFeatures const& features) - : collectComments_(collectComments) - , reader_(features) - {} - bool parse( - char const* beginDoc, char const* endDoc, - Value* root, JSONCPP_STRING* errs) JSONCPP_OVERRIDE { + OurCharReader(bool collectComments, OurFeatures const& features) + : collectComments_(collectComments), reader_(features) {} + bool parse(char const* beginDoc, char const* endDoc, Value* root, + String* errs) override { bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_); if (errs) { *errs = reader_.getFormattedErrorMessages(); @@ -2156,67 +2112,64 @@ public: } }; -CharReaderBuilder::CharReaderBuilder() -{ - setDefaults(&settings_); -} -CharReaderBuilder::~CharReaderBuilder() -{} -CharReader* CharReaderBuilder::newCharReader() const -{ +CharReaderBuilder::CharReaderBuilder() { setDefaults(&settings_); } +CharReaderBuilder::~CharReaderBuilder() = default; +CharReader* CharReaderBuilder::newCharReader() const { bool collectComments = settings_["collectComments"].asBool(); OurFeatures features = OurFeatures::all(); features.allowComments_ = settings_["allowComments"].asBool(); + features.allowTrailingCommas_ = settings_["allowTrailingCommas"].asBool(); features.strictRoot_ = settings_["strictRoot"].asBool(); - features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool(); + features.allowDroppedNullPlaceholders_ = + settings_["allowDroppedNullPlaceholders"].asBool(); features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool(); features.allowSingleQuotes_ = settings_["allowSingleQuotes"].asBool(); - features.stackLimit_ = settings_["stackLimit"].asInt(); + + // Stack limit is always a size_t, so we get this as an unsigned int + // regardless of it we have 64-bit integer support enabled. + features.stackLimit_ = static_cast<size_t>(settings_["stackLimit"].asUInt()); features.failIfExtra_ = settings_["failIfExtra"].asBool(); features.rejectDupKeys_ = settings_["rejectDupKeys"].asBool(); features.allowSpecialFloats_ = settings_["allowSpecialFloats"].asBool(); + features.skipBom_ = settings_["skipBom"].asBool(); return new OurCharReader(collectComments, features); } -static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys) -{ - valid_keys->clear(); - valid_keys->insert("collectComments"); - valid_keys->insert("allowComments"); - valid_keys->insert("strictRoot"); - valid_keys->insert("allowDroppedNullPlaceholders"); - valid_keys->insert("allowNumericKeys"); - valid_keys->insert("allowSingleQuotes"); - valid_keys->insert("stackLimit"); - valid_keys->insert("failIfExtra"); - valid_keys->insert("rejectDupKeys"); - valid_keys->insert("allowSpecialFloats"); -} -bool CharReaderBuilder::validate(Json::Value* invalid) const -{ - Json::Value my_invalid; - if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL - Json::Value& inv = *invalid; - std::set<JSONCPP_STRING> valid_keys; - getValidReaderKeys(&valid_keys); - Value::Members keys = settings_.getMemberNames(); - size_t n = keys.size(); - for (size_t i = 0; i < n; ++i) { - JSONCPP_STRING const& key = keys[i]; - if (valid_keys.find(key) == valid_keys.end()) { - inv[key] = settings_[key]; - } + +bool CharReaderBuilder::validate(Json::Value* invalid) const { + static const auto& valid_keys = *new std::set<String>{ + "collectComments", + "allowComments", + "allowTrailingCommas", + "strictRoot", + "allowDroppedNullPlaceholders", + "allowNumericKeys", + "allowSingleQuotes", + "stackLimit", + "failIfExtra", + "rejectDupKeys", + "allowSpecialFloats", + "skipBom", + }; + for (auto si = settings_.begin(); si != settings_.end(); ++si) { + auto key = si.name(); + if (valid_keys.count(key)) + continue; + if (invalid) + (*invalid)[std::move(key)] = *si; + else + return false; } - return 0u == inv.size(); + return invalid ? invalid->empty() : true; } -Value& CharReaderBuilder::operator[](JSONCPP_STRING key) -{ + +Value& CharReaderBuilder::operator[](const String& key) { return settings_[key]; } // static -void CharReaderBuilder::strictMode(Json::Value* settings) -{ -//! [CharReaderBuilderStrictMode] +void CharReaderBuilder::strictMode(Json::Value* settings) { + //! [CharReaderBuilderStrictMode] (*settings)["allowComments"] = false; + (*settings)["allowTrailingCommas"] = false; (*settings)["strictRoot"] = true; (*settings)["allowDroppedNullPlaceholders"] = false; (*settings)["allowNumericKeys"] = false; @@ -2225,14 +2178,15 @@ void CharReaderBuilder::strictMode(Json::Value* settings) (*settings)["failIfExtra"] = true; (*settings)["rejectDupKeys"] = true; (*settings)["allowSpecialFloats"] = false; -//! [CharReaderBuilderStrictMode] + (*settings)["skipBom"] = true; + //! [CharReaderBuilderStrictMode] } // static -void CharReaderBuilder::setDefaults(Json::Value* settings) -{ -//! [CharReaderBuilderDefaults] +void CharReaderBuilder::setDefaults(Json::Value* settings) { + //! [CharReaderBuilderDefaults] (*settings)["collectComments"] = true; (*settings)["allowComments"] = true; + (*settings)["allowTrailingCommas"] = true; (*settings)["strictRoot"] = false; (*settings)["allowDroppedNullPlaceholders"] = false; (*settings)["allowNumericKeys"] = false; @@ -2241,19 +2195,18 @@ void CharReaderBuilder::setDefaults(Json::Value* settings) (*settings)["failIfExtra"] = false; (*settings)["rejectDupKeys"] = false; (*settings)["allowSpecialFloats"] = false; -//! [CharReaderBuilderDefaults] + (*settings)["skipBom"] = true; + //! [CharReaderBuilderDefaults] } ////////////////////////////////// // global functions -bool parseFromStream( - CharReader::Factory const& fact, JSONCPP_ISTREAM& sin, - Value* root, JSONCPP_STRING* errs) -{ - JSONCPP_OSTRINGSTREAM ssin; +bool parseFromStream(CharReader::Factory const& fact, IStream& sin, Value* root, + String* errs) { + OStringStream ssin; ssin << sin.rdbuf(); - JSONCPP_STRING doc = ssin.str(); + String doc = ssin.str(); char const* begin = doc.data(); char const* end = begin + doc.size(); // Note that we do not actually need a null-terminator. @@ -2261,9 +2214,9 @@ bool parseFromStream( return reader->parse(begin, end, root, errs); } -JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) { +IStream& operator>>(IStream& sin, Value& root) { CharReaderBuilder b; - JSONCPP_STRING errs; + String errs; bool ok = parseFromStream(b, sin, &root, &errs); if (!ok) { throwRuntimeError(errs); @@ -2303,31 +2256,21 @@ namespace Json { // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// -ValueIteratorBase::ValueIteratorBase() - : current_(), isNull_(true) { -} +ValueIteratorBase::ValueIteratorBase() : current_() {} ValueIteratorBase::ValueIteratorBase( const Value::ObjectValues::iterator& current) : current_(current), isNull_(false) {} -Value& ValueIteratorBase::deref() const { - return current_->second; -} +Value& ValueIteratorBase::deref() { return current_->second; } +const Value& ValueIteratorBase::deref() const { return current_->second; } -void ValueIteratorBase::increment() { - ++current_; -} +void ValueIteratorBase::increment() { ++current_; } -void ValueIteratorBase::decrement() { - --current_; -} +void ValueIteratorBase::decrement() { --current_; } ValueIteratorBase::difference_type ValueIteratorBase::computeDistance(const SelfType& other) const { -#ifdef JSON_USE_CPPTL_SMALLMAP - return other.current_ - current_; -#else // Iterator for null value are initialized using the default // constructor, which initialize current_ to the default // std::map::iterator. As begin() and end() are two instance @@ -2348,7 +2291,6 @@ ValueIteratorBase::computeDistance(const SelfType& other) const { ++myDistance; } return myDistance; -#endif } bool ValueIteratorBase::isEqual(const SelfType& other) const { @@ -2380,12 +2322,13 @@ UInt ValueIteratorBase::index() const { return Value::UInt(-1); } -JSONCPP_STRING ValueIteratorBase::name() const { +String ValueIteratorBase::name() const { char const* keey; char const* end; keey = memberName(&end); - if (!keey) return JSONCPP_STRING(); - return JSONCPP_STRING(keey, end); + if (!keey) + return String(); + return String(keey, end); } char const* ValueIteratorBase::memberName() const { @@ -2396,8 +2339,8 @@ char const* ValueIteratorBase::memberName() const { char const* ValueIteratorBase::memberName(char const** end) const { const char* cname = (*current_).first.data(); if (!cname) { - *end = NULL; - return NULL; + *end = nullptr; + return nullptr; } *end = cname + (*current_).first.length(); return cname; @@ -2411,7 +2354,7 @@ char const* ValueIteratorBase::memberName(char const** end) const { // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// -ValueConstIterator::ValueConstIterator() {} +ValueConstIterator::ValueConstIterator() = default; ValueConstIterator::ValueConstIterator( const Value::ObjectValues::iterator& current) @@ -2434,7 +2377,7 @@ operator=(const ValueIteratorBase& other) { // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// -ValueIterator::ValueIterator() {} +ValueIterator::ValueIterator() = default; ValueIterator::ValueIterator(const Value::ObjectValues::iterator& current) : ValueIteratorBase(current) {} @@ -2444,8 +2387,7 @@ ValueIterator::ValueIterator(const ValueConstIterator& other) throwRuntimeError("ConstIterator to Iterator should never be allowed."); } -ValueIterator::ValueIterator(const ValueIterator& other) - : ValueIteratorBase(other) {} +ValueIterator::ValueIterator(const ValueIterator& other) = default; ValueIterator& ValueIterator::operator=(const SelfType& other) { copy(other); @@ -2477,20 +2419,54 @@ ValueIterator& ValueIterator::operator=(const SelfType& other) { #include <json/value.h> #include <json/writer.h> #endif // if !defined(JSON_IS_AMALGAMATION) -#include <math.h> +#include <algorithm> +#include <cassert> +#include <cmath> +#include <cstddef> +#include <cstring> +#include <iostream> #include <sstream> #include <utility> -#include <cstring> -#include <cassert> -#ifdef JSON_USE_CPPTL -#include <cpptl/conststring.h> + +// Provide implementation equivalent of std::snprintf for older _MSC compilers +#if defined(_MSC_VER) && _MSC_VER < 1900 +#include <stdarg.h> +static int msvc_pre1900_c99_vsnprintf(char* outBuf, size_t size, + const char* format, va_list ap) { + int count = -1; + if (size != 0) + count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); + if (count == -1) + count = _vscprintf(format, ap); + return count; +} + +int JSON_API msvc_pre1900_c99_snprintf(char* outBuf, size_t size, + const char* format, ...) { + va_list ap; + va_start(ap, format); + const int count = msvc_pre1900_c99_vsnprintf(outBuf, size, format, ap); + va_end(ap); + return count; +} +#endif + +// Disable warning C4702 : unreachable code +#if defined(_MSC_VER) +#pragma warning(disable : 4702) #endif -#include <cstddef> // size_t -#include <algorithm> // min() #define JSON_ASSERT_UNREACHABLE assert(false) namespace Json { +template <typename T> +static std::unique_ptr<T> cloneUnique(const std::unique_ptr<T>& p) { + std::unique_ptr<T> r; + if (p) { + r = std::unique_ptr<T>(new T(*p)); + } + return r; +} // This is a walkaround to avoid the static initialization of Value::null. // kNull must be word-aligned to avoid crashing on ARM. We use an alignment of @@ -2500,50 +2476,34 @@ namespace Json { #else #define ALIGNAS(byte_alignment) #endif -//static const unsigned char ALIGNAS(8) kNull[sizeof(Value)] = { 0 }; -//const unsigned char& kNullRef = kNull[0]; -//const Value& Value::null = reinterpret_cast<const Value&>(kNullRef); -//const Value& Value::nullRef = null; // static -Value const& Value::nullSingleton() -{ - static Value const nullStatic; - return nullStatic; +Value const& Value::nullSingleton() { + static Value const nullStatic; + return nullStatic; } -// for backwards compatibility, we'll leave these global references around, but DO NOT -// use them in JSONCPP library code any more! +#if JSON_USE_NULLREF +// for backwards compatibility, we'll leave these global references around, but +// DO NOT use them in JSONCPP library code any more! +// static Value const& Value::null = Value::nullSingleton(); -Value const& Value::nullRef = Value::nullSingleton(); -const Int Value::minInt = Int(~(UInt(-1) / 2)); -const Int Value::maxInt = Int(UInt(-1) / 2); -const UInt Value::maxUInt = UInt(-1); -#if defined(JSON_HAS_INT64) -const Int64 Value::minInt64 = Int64(~(UInt64(-1) / 2)); -const Int64 Value::maxInt64 = Int64(UInt64(-1) / 2); -const UInt64 Value::maxUInt64 = UInt64(-1); -// The constant is hard-coded because some compiler have trouble -// converting Value::maxUInt64 to a double correctly (AIX/xlC). -// Assumes that UInt64 is a 64 bits integer. -static const double maxUInt64AsDouble = 18446744073709551615.0; -#endif // defined(JSON_HAS_INT64) -const LargestInt Value::minLargestInt = LargestInt(~(LargestUInt(-1) / 2)); -const LargestInt Value::maxLargestInt = LargestInt(LargestUInt(-1) / 2); -const LargestUInt Value::maxLargestUInt = LargestUInt(-1); +// static +Value const& Value::nullRef = Value::nullSingleton(); +#endif #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) template <typename T, typename U> static inline bool InRange(double d, T min, U max) { // The casts can lose precision, but we are looking only for // an approximate range. Might fail on edge cases though. ~cdunn - //return d >= static_cast<double>(min) && d <= static_cast<double>(max); - return d >= min && d <= max; + return d >= static_cast<double>(min) && d <= static_cast<double>(max); } #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION) static inline double integerToDouble(Json::UInt64 value) { - return static_cast<double>(Int64(value / 2)) * 2.0 + static_cast<double>(Int64(value & 1)); + return static_cast<double>(Int64(value / 2)) * 2.0 + + static_cast<double>(Int64(value & 1)); } template <typename T> static inline double integerToDouble(T value) { @@ -2563,19 +2523,16 @@ static inline bool InRange(double d, T min, U max) { * computed using strlen(value). * @return Pointer on the duplicate instance of string. */ -static inline char* duplicateStringValue(const char* value, - size_t length) -{ +static inline char* duplicateStringValue(const char* value, size_t length) { // Avoid an integer overflow in the call to malloc below by limiting length // to a sane value. if (length >= static_cast<size_t>(Value::maxInt)) length = Value::maxInt - 1; - char* newString = static_cast<char*>(malloc(length + 1)); - if (newString == NULL) { - throwRuntimeError( - "in Json::Value::duplicateStringValue(): " - "Failed to allocate string value buffer"); + auto newString = static_cast<char*>(malloc(length + 1)); + if (newString == nullptr) { + throwRuntimeError("in Json::Value::duplicateStringValue(): " + "Failed to allocate string value buffer"); } memcpy(newString, value, length); newString[length] = 0; @@ -2584,31 +2541,28 @@ static inline char* duplicateStringValue(const char* value, /* Record the length as a prefix. */ -static inline char* duplicateAndPrefixStringValue( - const char* value, - unsigned int length) -{ +static inline char* duplicateAndPrefixStringValue(const char* value, + unsigned int length) { // Avoid an integer overflow in the call to malloc below by limiting length // to a sane value. - JSON_ASSERT_MESSAGE(length <= static_cast<unsigned>(Value::maxInt) - sizeof(unsigned) - 1U, + JSON_ASSERT_MESSAGE(length <= static_cast<unsigned>(Value::maxInt) - + sizeof(unsigned) - 1U, "in Json::Value::duplicateAndPrefixStringValue(): " "length too big for prefixing"); - unsigned actualLength = length + static_cast<unsigned>(sizeof(unsigned)) + 1U; - char* newString = static_cast<char*>(malloc(actualLength)); - if (newString == 0) { - throwRuntimeError( - "in Json::Value::duplicateAndPrefixStringValue(): " - "Failed to allocate string value buffer"); + size_t actualLength = sizeof(length) + length + 1; + auto newString = static_cast<char*>(malloc(actualLength)); + if (newString == nullptr) { + throwRuntimeError("in Json::Value::duplicateAndPrefixStringValue(): " + "Failed to allocate string value buffer"); } *reinterpret_cast<unsigned*>(newString) = length; memcpy(newString + sizeof(unsigned), value, length); - newString[actualLength - 1U] = 0; // to avoid buffer over-run accidents by users later + newString[actualLength - 1U] = + 0; // to avoid buffer over-run accidents by users later return newString; } -inline static void decodePrefixedString( - bool isPrefixed, char const* prefixed, - unsigned* length, char const** value) -{ +inline static void decodePrefixedString(bool isPrefixed, char const* prefixed, + unsigned* length, char const** value) { if (!isPrefixed) { *length = static_cast<unsigned>(strlen(prefixed)); *value = prefixed; @@ -2617,7 +2571,8 @@ inline static void decodePrefixedString( *value = prefixed + sizeof(unsigned); } } -/** Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue(). +/** Free the string duplicated by + * duplicateStringValue()/duplicateAndPrefixStringValue(). */ #if JSONCPP_USING_SECURE_MEMORY static inline void releasePrefixedStringValue(char* value) { @@ -2630,17 +2585,13 @@ static inline void releasePrefixedStringValue(char* value) { } static inline void releaseStringValue(char* value, unsigned length) { // length==0 => we allocated the strings memory - size_t size = (length==0) ? strlen(value) : length; + size_t size = (length == 0) ? strlen(value) : length; memset(value, 0, size); free(value); } -#else // !JSONCPP_USING_SECURE_MEMORY -static inline void releasePrefixedStringValue(char* value) { - free(value); -} -static inline void releaseStringValue(char* value, unsigned) { - free(value); -} +#else // !JSONCPP_USING_SECURE_MEMORY +static inline void releasePrefixedStringValue(char* value) { free(value); } +static inline void releaseStringValue(char* value, unsigned) { free(value); } #endif // JSONCPP_USING_SECURE_MEMORY } // namespace Json @@ -2659,58 +2610,28 @@ static inline void releaseStringValue(char* value, unsigned) { namespace Json { -Exception::Exception(JSONCPP_STRING const& msg) - : msg_(msg) -{} -Exception::~Exception() JSONCPP_NOEXCEPT -{} -char const* Exception::what() const JSONCPP_NOEXCEPT -{ - return msg_.c_str(); -} -RuntimeError::RuntimeError(JSONCPP_STRING const& msg) - : Exception(msg) -{} -LogicError::LogicError(JSONCPP_STRING const& msg) - : Exception(msg) -{} -JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg) -{ +#if JSON_USE_EXCEPTION +Exception::Exception(String msg) : msg_(std::move(msg)) {} +Exception::~Exception() noexcept = default; +char const* Exception::what() const noexcept { return msg_.c_str(); } +RuntimeError::RuntimeError(String const& msg) : Exception(msg) {} +LogicError::LogicError(String const& msg) : Exception(msg) {} +JSONCPP_NORETURN void throwRuntimeError(String const& msg) { throw RuntimeError(msg); } -JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg) -{ +JSONCPP_NORETURN void throwLogicError(String const& msg) { throw LogicError(msg); } - -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// -// class Value::CommentInfo -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// -// ////////////////////////////////////////////////////////////////// - -Value::CommentInfo::CommentInfo() : comment_(0) -{} - -Value::CommentInfo::~CommentInfo() { - if (comment_) - releaseStringValue(comment_, 0u); +#else // !JSON_USE_EXCEPTION +JSONCPP_NORETURN void throwRuntimeError(String const& msg) { + std::cerr << msg << std::endl; + abort(); } - -void Value::CommentInfo::setComment(const char* text, size_t len) { - if (comment_) { - releaseStringValue(comment_, 0u); - comment_ = 0; - } - JSON_ASSERT(text != 0); - JSON_ASSERT_MESSAGE( - text[0] == '\0' || text[0] == '/', - "in Json::Value::setComment(): Comments must start with /"); - // It seems that /**/ style comments are acceptable as well. - comment_ = duplicateStringValue(text, len); +JSONCPP_NORETURN void throwLogicError(String const& msg) { + std::cerr << msg << std::endl; + abort(); } +#endif // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// @@ -2723,36 +2644,44 @@ void Value::CommentInfo::setComment(const char* text, size_t len) { // Notes: policy_ indicates if the string was allocated when // a string is stored. -Value::CZString::CZString(ArrayIndex aindex) : cstr_(0), index_(aindex) {} +Value::CZString::CZString(ArrayIndex index) : cstr_(nullptr), index_(index) {} -Value::CZString::CZString(char const* str, unsigned ulength, DuplicationPolicy allocate) +Value::CZString::CZString(char const* str, unsigned length, + DuplicationPolicy allocate) : cstr_(str) { // allocate != duplicate storage_.policy_ = allocate & 0x3; - storage_.length_ = ulength & 0x3FFFFFFF; + storage_.length_ = length & 0x3FFFFFFF; } Value::CZString::CZString(const CZString& other) { - cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != 0 - ? duplicateStringValue(other.cstr_, other.storage_.length_) - : other.cstr_); - storage_.policy_ = static_cast<unsigned>(other.cstr_ - ? (static_cast<DuplicationPolicy>(other.storage_.policy_) == noDuplication - ? noDuplication : duplicate) - : static_cast<DuplicationPolicy>(other.storage_.policy_)) & 3U; + cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != nullptr + ? duplicateStringValue(other.cstr_, other.storage_.length_) + : other.cstr_); + storage_.policy_ = + static_cast<unsigned>( + other.cstr_ + ? (static_cast<DuplicationPolicy>(other.storage_.policy_) == + noDuplication + ? noDuplication + : duplicate) + : static_cast<DuplicationPolicy>(other.storage_.policy_)) & + 3U; storage_.length_ = other.storage_.length_; } -#if JSON_HAS_RVALUE_REFERENCES Value::CZString::CZString(CZString&& other) - : cstr_(other.cstr_), index_(other.index_) { + : cstr_(other.cstr_), index_(other.index_) { other.cstr_ = nullptr; } -#endif Value::CZString::~CZString() { if (cstr_ && storage_.policy_ == duplicate) { - releaseStringValue(const_cast<char*>(cstr_), storage_.length_ + 1u); //+1 for null terminating character for sake of completeness but not actually necessary + releaseStringValue(const_cast<char*>(cstr_), + storage_.length_ + 1U); // +1 for null terminating + // character for sake of + // completeness but not actually + // necessary } } @@ -2767,36 +2696,39 @@ Value::CZString& Value::CZString::operator=(const CZString& other) { return *this; } -#if JSON_HAS_RVALUE_REFERENCES Value::CZString& Value::CZString::operator=(CZString&& other) { cstr_ = other.cstr_; index_ = other.index_; other.cstr_ = nullptr; return *this; } -#endif bool Value::CZString::operator<(const CZString& other) const { - if (!cstr_) return index_ < other.index_; - //return strcmp(cstr_, other.cstr_) < 0; + if (!cstr_) + return index_ < other.index_; + // return strcmp(cstr_, other.cstr_) < 0; // Assume both are strings. unsigned this_len = this->storage_.length_; unsigned other_len = other.storage_.length_; unsigned min_len = std::min<unsigned>(this_len, other_len); JSON_ASSERT(this->cstr_ && other.cstr_); int comp = memcmp(this->cstr_, other.cstr_, min_len); - if (comp < 0) return true; - if (comp > 0) return false; + if (comp < 0) + return true; + if (comp > 0) + return false; return (this_len < other_len); } bool Value::CZString::operator==(const CZString& other) const { - if (!cstr_) return index_ == other.index_; - //return strcmp(cstr_, other.cstr_) == 0; + if (!cstr_) + return index_ == other.index_; + // return strcmp(cstr_, other.cstr_) == 0; // Assume both are strings. unsigned this_len = this->storage_.length_; unsigned other_len = other.storage_.length_; - if (this_len != other_len) return false; + if (this_len != other_len) + return false; JSON_ASSERT(this->cstr_ && other.cstr_); int comp = memcmp(this->cstr_, other.cstr_, this_len); return comp == 0; @@ -2804,10 +2736,12 @@ bool Value::CZString::operator==(const CZString& other) const { ArrayIndex Value::CZString::index() const { return index_; } -//const char* Value::CZString::c_str() const { return cstr_; } +// const char* Value::CZString::c_str() const { return cstr_; } const char* Value::CZString::data() const { return cstr_; } unsigned Value::CZString::length() const { return storage_.length_; } -bool Value::CZString::isStaticString() const { return storage_.policy_ == noDuplication; } +bool Value::CZString::isStaticString() const { + return storage_.policy_ == noDuplication; +} // ////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////// @@ -2821,10 +2755,10 @@ bool Value::CZString::isStaticString() const { return storage_.policy_ == noDupl * memset( this, 0, sizeof(Value) ) * This optimization is used in ValueInternalMap fast allocator. */ -Value::Value(ValueType vtype) { +Value::Value(ValueType type) { static char const emptyString[] = ""; - initBasic(vtype); - switch (vtype) { + initBasic(type); + switch (type) { case nullValue: break; case intValue: @@ -2877,20 +2811,22 @@ Value::Value(double value) { Value::Value(const char* value) { initBasic(stringValue, true); - JSON_ASSERT_MESSAGE(value != NULL, "Null Value Passed to Value Constructor"); - value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(strlen(value))); + JSON_ASSERT_MESSAGE(value != nullptr, + "Null Value Passed to Value Constructor"); + value_.string_ = duplicateAndPrefixStringValue( + value, static_cast<unsigned>(strlen(value))); } -Value::Value(const char* beginValue, const char* endValue) { +Value::Value(const char* begin, const char* end) { initBasic(stringValue, true); value_.string_ = - duplicateAndPrefixStringValue(beginValue, static_cast<unsigned>(endValue - beginValue)); + duplicateAndPrefixStringValue(begin, static_cast<unsigned>(end - begin)); } -Value::Value(const JSONCPP_STRING& value) { +Value::Value(const String& value) { initBasic(stringValue, true); - value_.string_ = - duplicateAndPrefixStringValue(value.data(), static_cast<unsigned>(value.length())); + value_.string_ = duplicateAndPrefixStringValue( + value.data(), static_cast<unsigned>(value.length())); } Value::Value(const StaticString& value) { @@ -2898,114 +2834,44 @@ Value::Value(const StaticString& value) { value_.string_ = const_cast<char*>(value.c_str()); } -#ifdef JSON_USE_CPPTL -Value::Value(const CppTL::ConstString& value) { - initBasic(stringValue, true); - value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(value.length())); -} -#endif - Value::Value(bool value) { initBasic(booleanValue); value_.bool_ = value; } -Value::Value(Value const& other) - : type_(other.type_), allocated_(false) - , - comments_(0), start_(other.start_), limit_(other.limit_) -{ - switch (type_) { - case nullValue: - case intValue: - case uintValue: - case realValue: - case booleanValue: - value_ = other.value_; - break; - case stringValue: - if (other.value_.string_ && other.allocated_) { - unsigned len; - char const* str; - decodePrefixedString(other.allocated_, other.value_.string_, - &len, &str); - value_.string_ = duplicateAndPrefixStringValue(str, len); - allocated_ = true; - } else { - value_.string_ = other.value_.string_; - allocated_ = false; - } - break; - case arrayValue: - case objectValue: - value_.map_ = new ObjectValues(*other.value_.map_); - break; - default: - JSON_ASSERT_UNREACHABLE; - } - if (other.comments_) { - comments_ = new CommentInfo[numberOfCommentPlacement]; - for (int comment = 0; comment < numberOfCommentPlacement; ++comment) { - const CommentInfo& otherComment = other.comments_[comment]; - if (otherComment.comment_) - comments_[comment].setComment( - otherComment.comment_, strlen(otherComment.comment_)); - } - } +Value::Value(const Value& other) { + dupPayload(other); + dupMeta(other); } -#if JSON_HAS_RVALUE_REFERENCES -// Move constructor Value::Value(Value&& other) { initBasic(nullValue); swap(other); } -#endif Value::~Value() { - switch (type_) { - case nullValue: - case intValue: - case uintValue: - case realValue: - case booleanValue: - break; - case stringValue: - if (allocated_) - releasePrefixedStringValue(value_.string_); - break; - case arrayValue: - case objectValue: - delete value_.map_; - break; - default: - JSON_ASSERT_UNREACHABLE; - } - - delete[] comments_; - + releasePayload(); value_.uint_ = 0; } -Value& Value::operator=(Value other) { - swap(other); +Value& Value::operator=(const Value& other) { + Value(other).swap(*this); + return *this; +} + +Value& Value::operator=(Value&& other) { + other.swap(*this); return *this; } void Value::swapPayload(Value& other) { - ValueType temp = type_; - type_ = other.type_; - other.type_ = temp; + std::swap(bits_, other.bits_); std::swap(value_, other.value_); - int temp2 = allocated_; - allocated_ = other.allocated_; - other.allocated_ = temp2 & 0x1; } void Value::copyPayload(const Value& other) { - type_ = other.type_; - value_ = other.value_; - allocated_ = other.allocated_; + releasePayload(); + dupPayload(other); } void Value::swap(Value& other) { @@ -3017,12 +2883,12 @@ void Value::swap(Value& other) { void Value::copy(const Value& other) { copyPayload(other); - comments_ = other.comments_; - start_ = other.start_; - limit_ = other.limit_; + dupMeta(other); } -ValueType Value::type() const { return type_; } +ValueType Value::type() const { + return static_cast<ValueType>(bits_.value_type_); +} int Value::compare(const Value& other) const { if (*this < other) @@ -3033,10 +2899,10 @@ int Value::compare(const Value& other) const { } bool Value::operator<(const Value& other) const { - int typeDelta = type_ - other.type_; + int typeDelta = type() - other.type(); if (typeDelta) - return typeDelta < 0 ? true : false; - switch (type_) { + return typeDelta < 0; + switch (type()) { case nullValue: return false; case intValue: @@ -3047,30 +2913,33 @@ bool Value::operator<(const Value& other) const { return value_.real_ < other.value_.real_; case booleanValue: return value_.bool_ < other.value_.bool_; - case stringValue: - { - if ((value_.string_ == 0) || (other.value_.string_ == 0)) { - if (other.value_.string_) return true; - else return false; + case stringValue: { + if ((value_.string_ == nullptr) || (other.value_.string_ == nullptr)) { + return other.value_.string_ != nullptr; } unsigned this_len; unsigned other_len; char const* this_str; char const* other_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); - decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); + decodePrefixedString(other.isAllocated(), other.value_.string_, &other_len, + &other_str); unsigned min_len = std::min<unsigned>(this_len, other_len); JSON_ASSERT(this_str && other_str); int comp = memcmp(this_str, other_str, min_len); - if (comp < 0) return true; - if (comp > 0) return false; + if (comp < 0) + return true; + if (comp > 0) + return false; return (this_len < other_len); } case arrayValue: case objectValue: { - int delta = int(value_.map_->size() - other.value_.map_->size()); - if (delta) - return delta < 0; + auto thisSize = value_.map_->size(); + auto otherSize = other.value_.map_->size(); + if (thisSize != otherSize) + return thisSize < otherSize; return (*value_.map_) < (*other.value_.map_); } default: @@ -3086,14 +2955,9 @@ bool Value::operator>=(const Value& other) const { return !(*this < other); } bool Value::operator>(const Value& other) const { return other < *this; } bool Value::operator==(const Value& other) const { - // if ( type_ != other.type_ ) - // GCC 2.95.3 says: - // attempt to take address of bit-field structure member `Json::Value::type_' - // Beats me, but a temp solves the problem. - int temp = other.type_; - if (type_ != temp) + if (type() != other.type()) return false; - switch (type_) { + switch (type()) { case nullValue: return true; case intValue: @@ -3104,18 +2968,20 @@ bool Value::operator==(const Value& other) const { return value_.real_ == other.value_.real_; case booleanValue: return value_.bool_ == other.value_.bool_; - case stringValue: - { - if ((value_.string_ == 0) || (other.value_.string_ == 0)) { + case stringValue: { + if ((value_.string_ == nullptr) || (other.value_.string_ == nullptr)) { return (value_.string_ == other.value_.string_); } unsigned this_len; unsigned other_len; char const* this_str; char const* other_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); - decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str); - if (this_len != other_len) return false; + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); + decodePrefixedString(other.isAllocated(), other.value_.string_, &other_len, + &other_str); + if (this_len != other_len) + return false; JSON_ASSERT(this_str && other_str); int comp = memcmp(this_str, other_str, this_len); return comp == 0; @@ -3133,47 +2999,55 @@ bool Value::operator==(const Value& other) const { bool Value::operator!=(const Value& other) const { return !(*this == other); } const char* Value::asCString() const { - JSON_ASSERT_MESSAGE(type_ == stringValue, + JSON_ASSERT_MESSAGE(type() == stringValue, "in Json::Value::asCString(): requires stringValue"); - if (value_.string_ == 0) return 0; + if (value_.string_ == nullptr) + return nullptr; unsigned this_len; char const* this_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); return this_str; } #if JSONCPP_USING_SECURE_MEMORY unsigned Value::getCStringLength() const { - JSON_ASSERT_MESSAGE(type_ == stringValue, - "in Json::Value::asCString(): requires stringValue"); - if (value_.string_ == 0) return 0; + JSON_ASSERT_MESSAGE(type() == stringValue, + "in Json::Value::asCString(): requires stringValue"); + if (value_.string_ == 0) + return 0; unsigned this_len; char const* this_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); return this_len; } #endif -bool Value::getString(char const** str, char const** cend) const { - if (type_ != stringValue) return false; - if (value_.string_ == 0) return false; +bool Value::getString(char const** begin, char const** end) const { + if (type() != stringValue) + return false; + if (value_.string_ == nullptr) + return false; unsigned length; - decodePrefixedString(this->allocated_, this->value_.string_, &length, str); - *cend = *str + length; + decodePrefixedString(this->isAllocated(), this->value_.string_, &length, + begin); + *end = *begin + length; return true; } -JSONCPP_STRING Value::asString() const { - switch (type_) { +String Value::asString() const { + switch (type()) { case nullValue: return ""; - case stringValue: - { - if (value_.string_ == 0) return ""; + case stringValue: { + if (value_.string_ == nullptr) + return ""; unsigned this_len; char const* this_str; - decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str); - return JSONCPP_STRING(this_str, this_len); + decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len, + &this_str); + return String(this_str, this_len); } case booleanValue: return value_.bool_ ? "true" : "false"; @@ -3188,18 +3062,8 @@ JSONCPP_STRING Value::asString() const { } } -#ifdef JSON_USE_CPPTL -CppTL::ConstString Value::asConstString() const { - unsigned len; - char const* str; - decodePrefixedString(allocated_, value_.string_, - &len, &str); - return CppTL::ConstString(str, len); -} -#endif - Value::Int Value::asInt() const { - switch (type_) { + switch (type()) { case intValue: JSON_ASSERT_MESSAGE(isInt(), "LargestInt out of Int range"); return Int(value_.int_); @@ -3221,7 +3085,7 @@ Value::Int Value::asInt() const { } Value::UInt Value::asUInt() const { - switch (type_) { + switch (type()) { case intValue: JSON_ASSERT_MESSAGE(isUInt(), "LargestInt out of UInt range"); return UInt(value_.int_); @@ -3245,7 +3109,7 @@ Value::UInt Value::asUInt() const { #if defined(JSON_HAS_INT64) Value::Int64 Value::asInt64() const { - switch (type_) { + switch (type()) { case intValue: return Int64(value_.int_); case uintValue: @@ -3266,7 +3130,7 @@ Value::Int64 Value::asInt64() const { } Value::UInt64 Value::asUInt64() const { - switch (type_) { + switch (type()) { case intValue: JSON_ASSERT_MESSAGE(isUInt64(), "LargestInt out of UInt64 range"); return UInt64(value_.int_); @@ -3304,7 +3168,7 @@ LargestUInt Value::asLargestUInt() const { } double Value::asDouble() const { - switch (type_) { + switch (type()) { case intValue: return static_cast<double>(value_.int_); case uintValue: @@ -3326,7 +3190,7 @@ double Value::asDouble() const { } float Value::asFloat() const { - switch (type_) { + switch (type()) { case intValue: return static_cast<float>(value_.int_); case uintValue: @@ -3341,7 +3205,7 @@ float Value::asFloat() const { case nullValue: return 0.0; case booleanValue: - return value_.bool_ ? 1.0f : 0.0f; + return value_.bool_ ? 1.0F : 0.0F; default: break; } @@ -3349,18 +3213,20 @@ float Value::asFloat() const { } bool Value::asBool() const { - switch (type_) { + switch (type()) { case booleanValue: return value_.bool_; case nullValue: return false; case intValue: - return value_.int_ ? true : false; + return value_.int_ != 0; case uintValue: - return value_.uint_ ? true : false; - case realValue: - // This is kind of strange. Not recommended. - return (value_.real_ != 0.0) ? true : false; + return value_.uint_ != 0; + case realValue: { + // According to JavaScript language zero or NaN is regarded as false + const auto value_classification = std::fpclassify(value_.real_); + return value_classification != FP_ZERO && value_classification != FP_NAN; + } default: break; } @@ -3371,30 +3237,30 @@ bool Value::isConvertibleTo(ValueType other) const { switch (other) { case nullValue: return (isNumeric() && asDouble() == 0.0) || - (type_ == booleanValue && value_.bool_ == false) || - (type_ == stringValue && asString().empty()) || - (type_ == arrayValue && value_.map_->size() == 0) || - (type_ == objectValue && value_.map_->size() == 0) || - type_ == nullValue; + (type() == booleanValue && !value_.bool_) || + (type() == stringValue && asString().empty()) || + (type() == arrayValue && value_.map_->empty()) || + (type() == objectValue && value_.map_->empty()) || + type() == nullValue; case intValue: return isInt() || - (type_ == realValue && InRange(value_.real_, minInt, maxInt)) || - type_ == booleanValue || type_ == nullValue; + (type() == realValue && InRange(value_.real_, minInt, maxInt)) || + type() == booleanValue || type() == nullValue; case uintValue: return isUInt() || - (type_ == realValue && InRange(value_.real_, 0, maxUInt)) || - type_ == booleanValue || type_ == nullValue; + (type() == realValue && InRange(value_.real_, 0, maxUInt)) || + type() == booleanValue || type() == nullValue; case realValue: - return isNumeric() || type_ == booleanValue || type_ == nullValue; + return isNumeric() || type() == booleanValue || type() == nullValue; case booleanValue: - return isNumeric() || type_ == booleanValue || type_ == nullValue; + return isNumeric() || type() == booleanValue || type() == nullValue; case stringValue: - return isNumeric() || type_ == booleanValue || type_ == stringValue || - type_ == nullValue; + return isNumeric() || type() == booleanValue || type() == stringValue || + type() == nullValue; case arrayValue: - return type_ == arrayValue || type_ == nullValue; + return type() == arrayValue || type() == nullValue; case objectValue: - return type_ == objectValue || type_ == nullValue; + return type() == objectValue || type() == nullValue; } JSON_ASSERT_UNREACHABLE; return false; @@ -3402,7 +3268,7 @@ bool Value::isConvertibleTo(ValueType other) const { /// Number of values in array or object ArrayIndex Value::size() const { - switch (type_) { + switch (type()) { case nullValue: case intValue: case uintValue: @@ -3426,20 +3292,19 @@ ArrayIndex Value::size() const { bool Value::empty() const { if (isNull() || isArray() || isObject()) - return size() == 0u; - else - return false; + return size() == 0U; + return false; } -Value::operator bool() const { return ! isNull(); } +Value::operator bool() const { return !isNull(); } void Value::clear() { - JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue || - type_ == objectValue, + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue || + type() == objectValue, "in Json::Value::clear(): requires complex value"); start_ = 0; limit_ = 0; - switch (type_) { + switch (type()) { case arrayValue: case objectValue: value_.map_->clear(); @@ -3450,15 +3315,15 @@ void Value::clear() { } void Value::resize(ArrayIndex newSize) { - JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue, + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue, "in Json::Value::resize(): requires arrayValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(arrayValue); ArrayIndex oldSize = size(); if (newSize == 0) clear(); else if (newSize > oldSize) - (*this)[newSize - 1]; + this->operator[](newSize - 1); else { for (ArrayIndex index = newSize; index < oldSize; ++index) { value_.map_->erase(index); @@ -3469,12 +3334,12 @@ void Value::resize(ArrayIndex newSize) { Value& Value::operator[](ArrayIndex index) { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == arrayValue, + type() == nullValue || type() == arrayValue, "in Json::Value::operator[](ArrayIndex): requires arrayValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(arrayValue); CZString key(index); - ObjectValues::iterator it = value_.map_->lower_bound(key); + auto it = value_.map_->lower_bound(key); if (it != value_.map_->end() && (*it).first == key) return (*it).second; @@ -3492,9 +3357,9 @@ Value& Value::operator[](int index) { const Value& Value::operator[](ArrayIndex index) const { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == arrayValue, + type() == nullValue || type() == arrayValue, "in Json::Value::operator[](ArrayIndex)const: requires arrayValue"); - if (type_ == nullValue) + if (type() == nullValue) return nullSingleton(); CZString key(index); ObjectValues::const_iterator it = value_.map_->find(key); @@ -3510,26 +3375,85 @@ const Value& Value::operator[](int index) const { return (*this)[ArrayIndex(index)]; } -void Value::initBasic(ValueType vtype, bool allocated) { - type_ = vtype; - allocated_ = allocated; - comments_ = 0; +void Value::initBasic(ValueType type, bool allocated) { + setType(type); + setIsAllocated(allocated); + comments_ = Comments{}; start_ = 0; limit_ = 0; } +void Value::dupPayload(const Value& other) { + setType(other.type()); + setIsAllocated(false); + switch (type()) { + case nullValue: + case intValue: + case uintValue: + case realValue: + case booleanValue: + value_ = other.value_; + break; + case stringValue: + if (other.value_.string_ && other.isAllocated()) { + unsigned len; + char const* str; + decodePrefixedString(other.isAllocated(), other.value_.string_, &len, + &str); + value_.string_ = duplicateAndPrefixStringValue(str, len); + setIsAllocated(true); + } else { + value_.string_ = other.value_.string_; + } + break; + case arrayValue: + case objectValue: + value_.map_ = new ObjectValues(*other.value_.map_); + break; + default: + JSON_ASSERT_UNREACHABLE; + } +} + +void Value::releasePayload() { + switch (type()) { + case nullValue: + case intValue: + case uintValue: + case realValue: + case booleanValue: + break; + case stringValue: + if (isAllocated()) + releasePrefixedStringValue(value_.string_); + break; + case arrayValue: + case objectValue: + delete value_.map_; + break; + default: + JSON_ASSERT_UNREACHABLE; + } +} + +void Value::dupMeta(const Value& other) { + comments_ = other.comments_; + start_ = other.start_; + limit_ = other.limit_; +} + // Access an object value by name, create a null member if it does not exist. // @pre Type of '*this' is object or null. // @param key is null-terminated. Value& Value::resolveReference(const char* key) { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, + type() == nullValue || type() == objectValue, "in Json::Value::resolveReference(): requires objectValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(objectValue); - CZString actualKey( - key, static_cast<unsigned>(strlen(key)), CZString::noDuplication); // NOTE! - ObjectValues::iterator it = value_.map_->lower_bound(actualKey); + CZString actualKey(key, static_cast<unsigned>(strlen(key)), + CZString::noDuplication); // NOTE! + auto it = value_.map_->lower_bound(actualKey); if (it != value_.map_->end() && (*it).first == actualKey) return (*it).second; @@ -3540,16 +3464,15 @@ Value& Value::resolveReference(const char* key) { } // @param key is not null-terminated. -Value& Value::resolveReference(char const* key, char const* cend) -{ +Value& Value::resolveReference(char const* key, char const* end) { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, + type() == nullValue || type() == objectValue, "in Json::Value::resolveReference(key, end): requires objectValue"); - if (type_ == nullValue) + if (type() == nullValue) *this = Value(objectValue); - CZString actualKey( - key, static_cast<unsigned>(cend-key), CZString::duplicateOnCopy); - ObjectValues::iterator it = value_.map_->lower_bound(actualKey); + CZString actualKey(key, static_cast<unsigned>(end - key), + CZString::duplicateOnCopy); + auto it = value_.map_->lower_bound(actualKey); if (it != value_.map_->end() && (*it).first == actualKey) return (*it).second; @@ -3566,27 +3489,35 @@ Value Value::get(ArrayIndex index, const Value& defaultValue) const { bool Value::isValidIndex(ArrayIndex index) const { return index < size(); } -Value const* Value::find(char const* key, char const* cend) const -{ - JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, - "in Json::Value::find(key, end, found): requires objectValue or nullValue"); - if (type_ == nullValue) return NULL; - CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication); +Value const* Value::find(char const* begin, char const* end) const { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue, + "in Json::Value::find(begin, end): requires " + "objectValue or nullValue"); + if (type() == nullValue) + return nullptr; + CZString actualKey(begin, static_cast<unsigned>(end - begin), + CZString::noDuplication); ObjectValues::const_iterator it = value_.map_->find(actualKey); - if (it == value_.map_->end()) return NULL; + if (it == value_.map_->end()) + return nullptr; return &(*it).second; } -const Value& Value::operator[](const char* key) const -{ +Value* Value::demand(char const* begin, char const* end) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue, + "in Json::Value::demand(begin, end): requires " + "objectValue or nullValue"); + return &resolveReference(begin, end); +} +const Value& Value::operator[](const char* key) const { Value const* found = find(key, key + strlen(key)); - if (!found) return nullSingleton(); + if (!found) + return nullSingleton(); return *found; } -Value const& Value::operator[](JSONCPP_STRING const& key) const -{ +Value const& Value::operator[](const String& key) const { Value const* found = find(key.data(), key.data() + key.length()); - if (!found) return nullSingleton(); + if (!found) + return nullSingleton(); return *found; } @@ -3594,7 +3525,7 @@ Value& Value::operator[](const char* key) { return resolveReference(key, key + strlen(key)); } -Value& Value::operator[](const JSONCPP_STRING& key) { +Value& Value::operator[](const String& key) { return resolveReference(key.data(), key.data() + key.length()); } @@ -3602,178 +3533,140 @@ Value& Value::operator[](const StaticString& key) { return resolveReference(key.c_str()); } -#ifdef JSON_USE_CPPTL -Value& Value::operator[](const CppTL::ConstString& key) { - return resolveReference(key.c_str(), key.end_c_str()); -} -Value const& Value::operator[](CppTL::ConstString const& key) const -{ - Value const* found = find(key.c_str(), key.end_c_str()); - if (!found) return nullSingleton(); - return *found; +Value& Value::append(const Value& value) { return append(Value(value)); } + +Value& Value::append(Value&& value) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue, + "in Json::Value::append: requires arrayValue"); + if (type() == nullValue) { + *this = Value(arrayValue); + } + return this->value_.map_->emplace(size(), std::move(value)).first->second; } -#endif -Value& Value::append(const Value& value) { return (*this)[size()] = value; } +bool Value::insert(ArrayIndex index, const Value& newValue) { + return insert(index, Value(newValue)); +} -#if JSON_HAS_RVALUE_REFERENCES - Value& Value::append(Value&& value) { return (*this)[size()] = std::move(value); } -#endif +bool Value::insert(ArrayIndex index, Value&& newValue) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue, + "in Json::Value::insert: requires arrayValue"); + ArrayIndex length = size(); + if (index > length) { + return false; + } + for (ArrayIndex i = length; i > index; i--) { + (*this)[i] = std::move((*this)[i - 1]); + } + (*this)[index] = std::move(newValue); + return true; +} -Value Value::get(char const* key, char const* cend, Value const& defaultValue) const -{ - Value const* found = find(key, cend); +Value Value::get(char const* begin, char const* end, + Value const& defaultValue) const { + Value const* found = find(begin, end); return !found ? defaultValue : *found; } -Value Value::get(char const* key, Value const& defaultValue) const -{ +Value Value::get(char const* key, Value const& defaultValue) const { return get(key, key + strlen(key), defaultValue); } -Value Value::get(JSONCPP_STRING const& key, Value const& defaultValue) const -{ +Value Value::get(String const& key, Value const& defaultValue) const { return get(key.data(), key.data() + key.length(), defaultValue); } - -bool Value::removeMember(const char* key, const char* cend, Value* removed) -{ - if (type_ != objectValue) { +bool Value::removeMember(const char* begin, const char* end, Value* removed) { + if (type() != objectValue) { return false; } - CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication); - ObjectValues::iterator it = value_.map_->find(actualKey); + CZString actualKey(begin, static_cast<unsigned>(end - begin), + CZString::noDuplication); + auto it = value_.map_->find(actualKey); if (it == value_.map_->end()) return false; - *removed = it->second; + if (removed) + *removed = std::move(it->second); value_.map_->erase(it); return true; } -bool Value::removeMember(const char* key, Value* removed) -{ +bool Value::removeMember(const char* key, Value* removed) { return removeMember(key, key + strlen(key), removed); } -bool Value::removeMember(JSONCPP_STRING const& key, Value* removed) -{ +bool Value::removeMember(String const& key, Value* removed) { return removeMember(key.data(), key.data() + key.length(), removed); } -void Value::removeMember(const char* key) -{ - JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == objectValue, +void Value::removeMember(const char* key) { + JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue, "in Json::Value::removeMember(): requires objectValue"); - if (type_ == nullValue) + if (type() == nullValue) return; CZString actualKey(key, unsigned(strlen(key)), CZString::noDuplication); value_.map_->erase(actualKey); } -void Value::removeMember(const JSONCPP_STRING& key) -{ - removeMember(key.c_str()); -} +void Value::removeMember(const String& key) { removeMember(key.c_str()); } bool Value::removeIndex(ArrayIndex index, Value* removed) { - if (type_ != arrayValue) { + if (type() != arrayValue) { return false; } CZString key(index); - ObjectValues::iterator it = value_.map_->find(key); + auto it = value_.map_->find(key); if (it == value_.map_->end()) { return false; } - *removed = it->second; + if (removed) + *removed = it->second; ArrayIndex oldSize = size(); // shift left all items left, into the place of the "removed" - for (ArrayIndex i = index; i < (oldSize - 1); ++i){ + for (ArrayIndex i = index; i < (oldSize - 1); ++i) { CZString keey(i); (*value_.map_)[keey] = (*this)[i + 1]; } // erase the last one ("leftover") CZString keyLast(oldSize - 1); - ObjectValues::iterator itLast = value_.map_->find(keyLast); + auto itLast = value_.map_->find(keyLast); value_.map_->erase(itLast); return true; } -#ifdef JSON_USE_CPPTL -Value Value::get(const CppTL::ConstString& key, - const Value& defaultValue) const { - return get(key.c_str(), key.end_c_str(), defaultValue); +bool Value::isMember(char const* begin, char const* end) const { + Value const* value = find(begin, end); + return nullptr != value; } -#endif - -bool Value::isMember(char const* key, char const* cend) const -{ - Value const* value = find(key, cend); - return NULL != value; -} -bool Value::isMember(char const* key) const -{ +bool Value::isMember(char const* key) const { return isMember(key, key + strlen(key)); } -bool Value::isMember(JSONCPP_STRING const& key) const -{ +bool Value::isMember(String const& key) const { return isMember(key.data(), key.data() + key.length()); } -#ifdef JSON_USE_CPPTL -bool Value::isMember(const CppTL::ConstString& key) const { - return isMember(key.c_str(), key.end_c_str()); -} -#endif - Value::Members Value::getMemberNames() const { JSON_ASSERT_MESSAGE( - type_ == nullValue || type_ == objectValue, + type() == nullValue || type() == objectValue, "in Json::Value::getMemberNames(), value must be objectValue"); - if (type_ == nullValue) + if (type() == nullValue) return Value::Members(); Members members; members.reserve(value_.map_->size()); ObjectValues::const_iterator it = value_.map_->begin(); ObjectValues::const_iterator itEnd = value_.map_->end(); for (; it != itEnd; ++it) { - members.push_back(JSONCPP_STRING((*it).first.data(), - (*it).first.length())); + members.push_back(String((*it).first.data(), (*it).first.length())); } return members; } -// -//# ifdef JSON_USE_CPPTL -// EnumMemberNames -// Value::enumMemberNames() const -//{ -// if ( type_ == objectValue ) -// { -// return CppTL::Enum::any( CppTL::Enum::transform( -// CppTL::Enum::keys( *(value_.map_), CppTL::Type<const CZString &>() ), -// MemberNamesTransform() ) ); -// } -// return EnumMemberNames(); -//} -// -// -// EnumValues -// Value::enumValues() const -//{ -// if ( type_ == objectValue || type_ == arrayValue ) -// return CppTL::Enum::anyValues( *(value_.map_), -// CppTL::Type<const Value &>() ); -// return EnumValues(); -//} -// -//# endif static bool IsIntegral(double d) { double integral_part; return modf(d, &integral_part) == 0.0; } -bool Value::isNull() const { return type_ == nullValue; } +bool Value::isNull() const { return type() == nullValue; } -bool Value::isBool() const { return type_ == booleanValue; } +bool Value::isBool() const { return type() == booleanValue; } bool Value::isInt() const { - switch (type_) { + switch (type()) { case intValue: #if defined(JSON_HAS_INT64) return value_.int_ >= minInt && value_.int_ <= maxInt; @@ -3792,7 +3685,7 @@ bool Value::isInt() const { } bool Value::isUInt() const { - switch (type_) { + switch (type()) { case intValue: #if defined(JSON_HAS_INT64) return value_.int_ >= 0 && LargestUInt(value_.int_) <= LargestUInt(maxUInt); @@ -3816,7 +3709,7 @@ bool Value::isUInt() const { bool Value::isInt64() const { #if defined(JSON_HAS_INT64) - switch (type_) { + switch (type()) { case intValue: return true; case uintValue: @@ -3836,7 +3729,7 @@ bool Value::isInt64() const { bool Value::isUInt64() const { #if defined(JSON_HAS_INT64) - switch (type_) { + switch (type()) { case intValue: return value_.int_ >= 0; case uintValue: @@ -3855,61 +3748,92 @@ bool Value::isUInt64() const { } bool Value::isIntegral() const { - switch (type_) { - case intValue: - case uintValue: - return true; - case realValue: + switch (type()) { + case intValue: + case uintValue: + return true; + case realValue: #if defined(JSON_HAS_INT64) - // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a - // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we - // require the value to be strictly less than the limit. - return value_.real_ >= double(minInt64) && value_.real_ < maxUInt64AsDouble && IsIntegral(value_.real_); + // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a + // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we + // require the value to be strictly less than the limit. + return value_.real_ >= double(minInt64) && + value_.real_ < maxUInt64AsDouble && IsIntegral(value_.real_); #else - return value_.real_ >= minInt && value_.real_ <= maxUInt && IsIntegral(value_.real_); + return value_.real_ >= minInt && value_.real_ <= maxUInt && + IsIntegral(value_.real_); #endif // JSON_HAS_INT64 - default: - break; + default: + break; } return false; } -bool Value::isDouble() const { return type_ == intValue || type_ == uintValue || type_ == realValue; } +bool Value::isDouble() const { + return type() == intValue || type() == uintValue || type() == realValue; +} bool Value::isNumeric() const { return isDouble(); } -bool Value::isString() const { return type_ == stringValue; } +bool Value::isString() const { return type() == stringValue; } -bool Value::isArray() const { return type_ == arrayValue; } +bool Value::isArray() const { return type() == arrayValue; } -bool Value::isObject() const { return type_ == objectValue; } +bool Value::isObject() const { return type() == objectValue; } -void Value::setComment(const char* comment, size_t len, CommentPlacement placement) { - if (!comments_) - comments_ = new CommentInfo[numberOfCommentPlacement]; - if ((len > 0) && (comment[len-1] == '\n')) { - // Always discard trailing newline, to aid indentation. - len -= 1; - } - comments_[placement].setComment(comment, len); +Value::Comments::Comments(const Comments& that) + : ptr_{cloneUnique(that.ptr_)} {} + +Value::Comments::Comments(Comments&& that) : ptr_{std::move(that.ptr_)} {} + +Value::Comments& Value::Comments::operator=(const Comments& that) { + ptr_ = cloneUnique(that.ptr_); + return *this; +} + +Value::Comments& Value::Comments::operator=(Comments&& that) { + ptr_ = std::move(that.ptr_); + return *this; +} + +bool Value::Comments::has(CommentPlacement slot) const { + return ptr_ && !(*ptr_)[slot].empty(); } -void Value::setComment(const char* comment, CommentPlacement placement) { - setComment(comment, strlen(comment), placement); +String Value::Comments::get(CommentPlacement slot) const { + if (!ptr_) + return {}; + return (*ptr_)[slot]; } -void Value::setComment(const JSONCPP_STRING& comment, CommentPlacement placement) { - setComment(comment.c_str(), comment.length(), placement); +void Value::Comments::set(CommentPlacement slot, String comment) { + if (!ptr_) { + ptr_ = std::unique_ptr<Array>(new Array()); + } + // check comments array boundry. + if (slot < CommentPlacement::numberOfCommentPlacement) { + (*ptr_)[slot] = std::move(comment); + } +} + +void Value::setComment(String comment, CommentPlacement placement) { + if (!comment.empty() && (comment.back() == '\n')) { + // Always discard trailing newline, to aid indentation. + comment.pop_back(); + } + JSON_ASSERT(!comment.empty()); + JSON_ASSERT_MESSAGE( + comment[0] == '\0' || comment[0] == '/', + "in Json::Value::setComment(): Comments must start with /"); + comments_.set(placement, std::move(comment)); } bool Value::hasComment(CommentPlacement placement) const { - return comments_ != 0 && comments_[placement].comment_ != 0; + return comments_.has(placement); } -JSONCPP_STRING Value::getComment(CommentPlacement placement) const { - if (hasComment(placement)) - return comments_[placement].comment_; - return ""; +String Value::getComment(CommentPlacement placement) const { + return comments_.get(placement); } void Value::setOffsetStart(ptrdiff_t start) { start_ = start; } @@ -3920,18 +3844,18 @@ ptrdiff_t Value::getOffsetStart() const { return start_; } ptrdiff_t Value::getOffsetLimit() const { return limit_; } -JSONCPP_STRING Value::toStyledString() const { +String Value::toStyledString() const { StreamWriterBuilder builder; - JSONCPP_STRING out = this->hasComment(commentBefore) ? "\n" : ""; + String out = this->hasComment(commentBefore) ? "\n" : ""; out += Json::writeString(builder, *this); - out += "\n"; + out += '\n'; return out; } Value::const_iterator Value::begin() const { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3940,11 +3864,11 @@ Value::const_iterator Value::begin() const { default: break; } - return const_iterator(); + return {}; } Value::const_iterator Value::end() const { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3953,11 +3877,11 @@ Value::const_iterator Value::end() const { default: break; } - return const_iterator(); + return {}; } Value::iterator Value::begin() { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3970,7 +3894,7 @@ Value::iterator Value::begin() { } Value::iterator Value::end() { - switch (type_) { + switch (type()) { case arrayValue: case objectValue: if (value_.map_) @@ -3985,25 +3909,20 @@ Value::iterator Value::end() { // class PathArgument // ////////////////////////////////////////////////////////////////// -PathArgument::PathArgument() : key_(), index_(), kind_(kindNone) {} +PathArgument::PathArgument() = default; PathArgument::PathArgument(ArrayIndex index) - : key_(), index_(index), kind_(kindIndex) {} + : index_(index), kind_(kindIndex) {} -PathArgument::PathArgument(const char* key) - : key_(key), index_(), kind_(kindKey) {} +PathArgument::PathArgument(const char* key) : key_(key), kind_(kindKey) {} -PathArgument::PathArgument(const JSONCPP_STRING& key) - : key_(key.c_str()), index_(), kind_(kindKey) {} +PathArgument::PathArgument(String key) : key_(std::move(key)), kind_(kindKey) {} // class Path // ////////////////////////////////////////////////////////////////// -Path::Path(const JSONCPP_STRING& path, - const PathArgument& a1, - const PathArgument& a2, - const PathArgument& a3, - const PathArgument& a4, +Path::Path(const String& path, const PathArgument& a1, const PathArgument& a2, + const PathArgument& a3, const PathArgument& a4, const PathArgument& a5) { InArgs in; in.reserve(5); @@ -4015,10 +3934,10 @@ Path::Path(const JSONCPP_STRING& path, makePath(path, in); } -void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) { +void Path::makePath(const String& path, const InArgs& in) { const char* current = path.c_str(); const char* end = current + path.length(); - InArgs::const_iterator itInArg = in.begin(); + auto itInArg = in.begin(); while (current != end) { if (*current == '[') { ++current; @@ -4041,13 +3960,12 @@ void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) { const char* beginName = current; while (current != end && !strchr("[.", *current)) ++current; - args_.push_back(JSONCPP_STRING(beginName, current)); + args_.push_back(String(beginName, current)); } } } -void Path::addPathInArg(const JSONCPP_STRING& /*path*/, - const InArgs& in, +void Path::addPathInArg(const String& /*path*/, const InArgs& in, InArgs::const_iterator& itInArg, PathArgument::Kind kind) { if (itInArg == in.end()) { @@ -4059,30 +3977,29 @@ void Path::addPathInArg(const JSONCPP_STRING& /*path*/, } } -void Path::invalidPath(const JSONCPP_STRING& /*path*/, int /*location*/) { +void Path::invalidPath(const String& /*path*/, int /*location*/) { // Error: invalid path. } const Value& Path::resolve(const Value& root) const { const Value* node = &root; - for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { - const PathArgument& arg = *it; + for (const auto& arg : args_) { if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray() || !node->isValidIndex(arg.index_)) { - // Error: unable to resolve path (array value expected at position... - return Value::null; + // Error: unable to resolve path (array value expected at position... ) + return Value::nullSingleton(); } node = &((*node)[arg.index_]); } else if (arg.kind_ == PathArgument::kindKey) { if (!node->isObject()) { // Error: unable to resolve path (object value expected at position...) - return Value::null; + return Value::nullSingleton(); } node = &((*node)[arg.key_]); if (node == &Value::nullSingleton()) { // Error: unable to resolve path (object has no member named '' at // position...) - return Value::null; + return Value::nullSingleton(); } } } @@ -4091,8 +4008,7 @@ const Value& Path::resolve(const Value& root) const { Value Path::resolve(const Value& root, const Value& defaultValue) const { const Value* node = &root; - for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { - const PathArgument& arg = *it; + for (const auto& arg : args_) { if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray() || !node->isValidIndex(arg.index_)) return defaultValue; @@ -4110,8 +4026,7 @@ Value Path::resolve(const Value& root, const Value& defaultValue) const { Value& Path::make(Value& root) const { Value* node = &root; - for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) { - const PathArgument& arg = *it; + for (const auto& arg : args_) { if (arg.kind_ == PathArgument::kindIndex) { if (!node->isArray()) { // Error: node is not an array at position ... @@ -4148,71 +4063,81 @@ Value& Path::make(Value& root) const { // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE #if !defined(JSON_IS_AMALGAMATION) -#include <json/writer.h> #include "json_tool.h" +#include <json/writer.h> #endif // if !defined(JSON_IS_AMALGAMATION) +#include <algorithm> +#include <cassert> +#include <cctype> +#include <cstring> #include <iomanip> #include <memory> +#include <set> #include <sstream> #include <utility> -#include <set> -#include <cassert> -#include <cstring> + +#if __cplusplus >= 201103L +#include <cmath> #include <cstdio> -#if defined(_MSC_VER) && _MSC_VER >= 1200 && _MSC_VER < 1800 // Between VC++ 6.0 and VC++ 11.0 +#if !defined(isnan) +#define isnan std::isnan +#endif + +#if !defined(isfinite) +#define isfinite std::isfinite +#endif + +#else +#include <cmath> +#include <cstdio> + +#if defined(_MSC_VER) +#if !defined(isnan) +#include <float.h> +#define isnan _isnan +#endif + +#if !defined(isfinite) #include <float.h> #define isfinite _finite -#elif defined(__sun) && defined(__SVR4) //Solaris +#endif + +#if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) +#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 +#endif //_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES + +#endif //_MSC_VER + +#if defined(__sun) && defined(__SVR4) // Solaris #if !defined(isfinite) #include <ieeefp.h> #define isfinite finite #endif -#elif defined(_AIX) -#if !defined(isfinite) -#include <math.h> -#define isfinite finite #endif -#elif defined(__hpux) + +#if defined(__hpux) #if !defined(isfinite) #if defined(__ia64) && !defined(finite) -#define isfinite(x) ((sizeof(x) == sizeof(float) ? \ - _Isfinitef(x) : _IsFinite(x))) -#else -#include <math.h> -#define isfinite finite -#endif +#define isfinite(x) \ + ((sizeof(x) == sizeof(float) ? _Isfinitef(x) : _IsFinite(x))) #endif -#else -#include <cmath> -#if !(defined(__QNXNTO__)) // QNX already defines isfinite -#define isfinite std::isfinite #endif #endif -#if defined(_MSC_VER) -#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above -#define snprintf sprintf_s -#elif _MSC_VER >= 1900 // VC++ 14.0 and above -#define snprintf std::snprintf -#else -#define snprintf _snprintf +#if !defined(isnan) +// IEEE standard states that NaN values will not compare to themselves +#define isnan(x) (x != x) #endif -#elif defined(__ANDROID__) || defined(__QNXNTO__) -#define snprintf snprintf -#elif __cplusplus >= 201103L -#if !defined(__MINGW32__) && !defined(__CYGWIN__) -#define snprintf std::snprintf + +#if !defined(__APPLE__) +#if !defined(isfinite) +#define isfinite finite #endif #endif - -#if defined(__BORLANDC__) -#include <float.h> -#define isfinite _finite -#define snprintf _snprintf #endif -#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0 +#if defined(_MSC_VER) // Disable warning about strdup being deprecated. #pragma warning(disable : 4996) #endif @@ -4220,12 +4145,12 @@ Value& Path::make(Value& root) const { namespace Json { #if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520) -typedef std::unique_ptr<StreamWriter> StreamWriterPtr; +using StreamWriterPtr = std::unique_ptr<StreamWriter>; #else -typedef std::auto_ptr<StreamWriter> StreamWriterPtr; +using StreamWriterPtr = std::auto_ptr<StreamWriter>; #endif -JSONCPP_STRING valueToString(LargestInt value) { +String valueToString(LargestInt value) { UIntToStringBuffer buffer; char* current = buffer + sizeof(buffer); if (value == Value::minLargestInt) { @@ -4241,7 +4166,7 @@ JSONCPP_STRING valueToString(LargestInt value) { return current; } -JSONCPP_STRING valueToString(LargestUInt value) { +String valueToString(LargestUInt value) { UIntToStringBuffer buffer; char* current = buffer + sizeof(buffer); uintToString(value, current); @@ -4251,67 +4176,70 @@ JSONCPP_STRING valueToString(LargestUInt value) { #if defined(JSON_HAS_INT64) -JSONCPP_STRING valueToString(Int value) { - return valueToString(LargestInt(value)); -} +String valueToString(Int value) { return valueToString(LargestInt(value)); } -JSONCPP_STRING valueToString(UInt value) { - return valueToString(LargestUInt(value)); -} +String valueToString(UInt value) { return valueToString(LargestUInt(value)); } #endif // # if defined(JSON_HAS_INT64) namespace { -JSONCPP_STRING valueToString(double value, bool useSpecialFloats, unsigned int precision) { - // Allocate a buffer that is more than large enough to store the 16 digits of - // precision requested below. - char buffer[36]; - int len = -1; - - char formatString[15]; - snprintf(formatString, sizeof(formatString), "%%.%ug", precision); - +String valueToString(double value, bool useSpecialFloats, + unsigned int precision, PrecisionType precisionType) { // Print into the buffer. We need not request the alternative representation // that always has a decimal point because JSON doesn't distinguish the // concepts of reals and integers. - if (isfinite(value)) { - len = snprintf(buffer, sizeof(buffer), formatString, value); - fixNumericLocale(buffer, buffer + len); - - // try to ensure we preserve the fact that this was given to us as a double on input - if (!strchr(buffer, '.') && !strchr(buffer, 'e')) { - strcat(buffer, ".0"); + if (!isfinite(value)) { + static const char* const reps[2][3] = {{"NaN", "-Infinity", "Infinity"}, + {"null", "-1e+9999", "1e+9999"}}; + return reps[useSpecialFloats ? 0 : 1] + [isnan(value) ? 0 : (value < 0) ? 1 : 2]; + } + + String buffer(size_t(36), '\0'); + while (true) { + int len = jsoncpp_snprintf( + &*buffer.begin(), buffer.size(), + (precisionType == PrecisionType::significantDigits) ? "%.*g" : "%.*f", + precision, value); + assert(len >= 0); + auto wouldPrint = static_cast<size_t>(len); + if (wouldPrint >= buffer.size()) { + buffer.resize(wouldPrint + 1); + continue; } + buffer.resize(wouldPrint); + break; + } - } else { - // IEEE standard states that NaN values will not compare to themselves - if (value != value) { - len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "NaN" : "null"); - } else if (value < 0) { - len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "-Infinity" : "-1e+9999"); - } else { - len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "Infinity" : "1e+9999"); - } + buffer.erase(fixNumericLocale(buffer.begin(), buffer.end()), buffer.end()); + + // strip the zero padding from the right + if (precisionType == PrecisionType::decimalPlaces) { + buffer.erase(fixZerosInTheEnd(buffer.begin(), buffer.end()), buffer.end()); + } + + // try to ensure we preserve the fact that this was given to us as a double on + // input + if (buffer.find('.') == buffer.npos && buffer.find('e') == buffer.npos) { + buffer += ".0"; } - assert(len >= 0); return buffer; } -} +} // namespace -JSONCPP_STRING valueToString(double value) { return valueToString(value, false, 17); } +String valueToString(double value, unsigned int precision, + PrecisionType precisionType) { + return valueToString(value, false, precision, precisionType); +} -JSONCPP_STRING valueToString(bool value) { return value ? "true" : "false"; } +String valueToString(bool value) { return value ? "true" : "false"; } -static bool isAnyCharRequiredQuoting(char const* s, size_t n) { +static bool doesAnyCharRequireEscaping(char const* s, size_t n) { assert(s || !n); - char const* const end = s + n; - for (char const* cur = s; cur < end; ++cur) { - if (*cur == '\\' || *cur == '\"' || *cur < ' ' - || static_cast<unsigned char>(*cur) < 0x80) - return true; - } - return false; + return std::any_of(s, s + n, [](unsigned char c) { + return c == '\\' || c == '"' || c < 0x20 || c > 0x7F; + }); } static unsigned int utf8ToCodepoint(const char*& s, const char* e) { @@ -4326,8 +4254,8 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { if (e - s < 2) return REPLACEMENT_CHARACTER; - unsigned int calculated = ((firstByte & 0x1F) << 6) - | (static_cast<unsigned int>(s[1]) & 0x3F); + unsigned int calculated = + ((firstByte & 0x1F) << 6) | (static_cast<unsigned int>(s[1]) & 0x3F); s += 1; // oversized encoded characters are invalid return calculated < 0x80 ? REPLACEMENT_CHARACTER : calculated; @@ -4337,9 +4265,9 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { if (e - s < 3) return REPLACEMENT_CHARACTER; - unsigned int calculated = ((firstByte & 0x0F) << 12) - | ((static_cast<unsigned int>(s[1]) & 0x3F) << 6) - | (static_cast<unsigned int>(s[2]) & 0x3F); + unsigned int calculated = ((firstByte & 0x0F) << 12) | + ((static_cast<unsigned int>(s[1]) & 0x3F) << 6) | + (static_cast<unsigned int>(s[2]) & 0x3F); s += 2; // surrogates aren't valid codepoints itself // shouldn't be UTF-8 encoded @@ -4353,10 +4281,10 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { if (e - s < 4) return REPLACEMENT_CHARACTER; - unsigned int calculated = ((firstByte & 0x07) << 24) - | ((static_cast<unsigned int>(s[1]) & 0x3F) << 12) - | ((static_cast<unsigned int>(s[2]) & 0x3F) << 6) - | (static_cast<unsigned int>(s[3]) & 0x3F); + unsigned int calculated = ((firstByte & 0x07) << 18) | + ((static_cast<unsigned int>(s[1]) & 0x3F) << 12) | + ((static_cast<unsigned int>(s[2]) & 0x3F) << 6) | + (static_cast<unsigned int>(s[3]) & 0x3F); s += 3; // oversized encoded characters are invalid return calculated < 0x10000 ? REPLACEMENT_CHARACTER : calculated; @@ -4365,28 +4293,27 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) { return REPLACEMENT_CHARACTER; } -static const char hex2[] = - "000102030405060708090a0b0c0d0e0f" - "101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f" - "303132333435363738393a3b3c3d3e3f" - "404142434445464748494a4b4c4d4e4f" - "505152535455565758595a5b5c5d5e5f" - "606162636465666768696a6b6c6d6e6f" - "707172737475767778797a7b7c7d7e7f" - "808182838485868788898a8b8c8d8e8f" - "909192939495969798999a9b9c9d9e9f" - "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf" - "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" - "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf" - "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf" - "e0e1e2e3e4e5e6e7e8e9eaebecedeeef" - "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff"; - -static JSONCPP_STRING toHex16Bit(unsigned int x) { +static const char hex2[] = "000102030405060708090a0b0c0d0e0f" + "101112131415161718191a1b1c1d1e1f" + "202122232425262728292a2b2c2d2e2f" + "303132333435363738393a3b3c3d3e3f" + "404142434445464748494a4b4c4d4e4f" + "505152535455565758595a5b5c5d5e5f" + "606162636465666768696a6b6c6d6e6f" + "707172737475767778797a7b7c7d7e7f" + "808182838485868788898a8b8c8d8e8f" + "909192939495969798999a9b9c9d9e9f" + "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf" + "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" + "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf" + "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf" + "e0e1e2e3e4e5e6e7e8e9eaebecedeeef" + "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff"; + +static String toHex16Bit(unsigned int x) { const unsigned int hi = (x >> 8) & 0xff; const unsigned int lo = x & 0xff; - JSONCPP_STRING result(4, ' '); + String result(4, ' '); result[0] = hex2[2 * hi]; result[1] = hex2[2 * hi + 1]; result[2] = hex2[2 * lo]; @@ -4394,18 +4321,26 @@ static JSONCPP_STRING toHex16Bit(unsigned int x) { return result; } -static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) { - if (value == NULL) +static void appendRaw(String& result, unsigned ch) { + result += static_cast<char>(ch); +} + +static void appendHex(String& result, unsigned ch) { + result.append("\\u").append(toHex16Bit(ch)); +} + +static String valueToQuotedStringN(const char* value, unsigned length, + bool emitUTF8 = false) { + if (value == nullptr) return ""; - if (!isAnyCharRequiredQuoting(value, length)) - return JSONCPP_STRING("\"") + value + "\""; + if (!doesAnyCharRequireEscaping(value, length)) + return String("\"") + value + "\""; // We have to walk value and escape any special characters. - // Appending to JSONCPP_STRING is not efficient, but this should be rare. + // Appending to String is not efficient, but this should be rare. // (Note: forward slashes are *not* rare, but I am not escaping them.) - JSONCPP_STRING::size_type maxsize = - length * 2 + 3; // allescaped+quotes+NULL - JSONCPP_STRING result; + String::size_type maxsize = length * 2 + 3; // allescaped+quotes+NULL + String result; result.reserve(maxsize); // to avoid lots of mallocs result += "\""; char const* end = value + length; @@ -4441,45 +4376,50 @@ static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) { // Should add a flag to allow this compatibility mode and prevent this // sequence from occurring. default: { - unsigned int cp = utf8ToCodepoint(c, end); - // don't escape non-control characters - // (short escape sequence are applied above) - if (cp < 0x80 && cp >= 0x20) - result += static_cast<char>(cp); - else if (cp < 0x10000) { // codepoint is in Basic Multilingual Plane - result += "\\u"; - result += toHex16Bit(cp); + if (emitUTF8) { + unsigned codepoint = static_cast<unsigned char>(*c); + if (codepoint < 0x20) { + appendHex(result, codepoint); + } else { + appendRaw(result, codepoint); } - else { // codepoint is not in Basic Multilingual Plane - // convert to surrogate pair first - cp -= 0x10000; - result += "\\u"; - result += toHex16Bit((cp >> 10) + 0xD800); - result += "\\u"; - result += toHex16Bit((cp & 0x3FF) + 0xDC00); + } else { + unsigned codepoint = utf8ToCodepoint(c, end); // modifies `c` + if (codepoint < 0x20) { + appendHex(result, codepoint); + } else if (codepoint < 0x80) { + appendRaw(result, codepoint); + } else if (codepoint < 0x10000) { + // Basic Multilingual Plane + appendHex(result, codepoint); + } else { + // Extended Unicode. Encode 20 bits as a surrogate pair. + codepoint -= 0x10000; + appendHex(result, 0xd800 + ((codepoint >> 10) & 0x3ff)); + appendHex(result, 0xdc00 + (codepoint & 0x3ff)); } } - break; + } break; } } result += "\""; return result; } -JSONCPP_STRING valueToQuotedString(const char* value) { +String valueToQuotedString(const char* value) { return valueToQuotedStringN(value, static_cast<unsigned int>(strlen(value))); } // Class Writer // ////////////////////////////////////////////////////////////////// -Writer::~Writer() {} +Writer::~Writer() = default; // Class FastWriter // ////////////////////////////////////////////////////////////////// FastWriter::FastWriter() - : yamlCompatibilityEnabled_(false), dropNullPlaceholders_(false), - omitEndingLineFeed_(false) {} + + = default; void FastWriter::enableYAMLCompatibility() { yamlCompatibilityEnabled_ = true; } @@ -4487,11 +4427,11 @@ void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; } void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; } -JSONCPP_STRING FastWriter::write(const Value& root) { +String FastWriter::write(const Value& root) { document_.clear(); writeValue(root); if (!omitEndingLineFeed_) - document_ += "\n"; + document_ += '\n'; return document_; } @@ -4510,13 +4450,13 @@ void FastWriter::writeValue(const Value& value) { case realValue: document_ += valueToString(value.asDouble()); break; - case stringValue: - { + case stringValue: { // Is NULL possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) document_ += valueToQuotedStringN(str, static_cast<unsigned>(end-str)); + if (ok) + document_ += valueToQuotedStringN(str, static_cast<unsigned>(end - str)); break; } case booleanValue: @@ -4535,12 +4475,12 @@ void FastWriter::writeValue(const Value& value) { case objectValue: { Value::Members members(value.getMemberNames()); document_ += '{'; - for (Value::Members::iterator it = members.begin(); it != members.end(); - ++it) { - const JSONCPP_STRING& name = *it; + for (auto it = members.begin(); it != members.end(); ++it) { + const String& name = *it; if (it != members.begin()) document_ += ','; - document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length())); + document_ += valueToQuotedStringN(name.data(), + static_cast<unsigned>(name.length())); document_ += yamlCompatibilityEnabled_ ? ": " : ":"; writeValue(value[name]); } @@ -4552,17 +4492,16 @@ void FastWriter::writeValue(const Value& value) { // Class StyledWriter // ////////////////////////////////////////////////////////////////// -StyledWriter::StyledWriter() - : rightMargin_(74), indentSize_(3), addChildValues_() {} +StyledWriter::StyledWriter() = default; -JSONCPP_STRING StyledWriter::write(const Value& root) { +String StyledWriter::write(const Value& root) { document_.clear(); addChildValues_ = false; indentString_.clear(); writeCommentBeforeValue(root); writeValue(root); writeCommentAfterValueOnSameLine(root); - document_ += "\n"; + document_ += '\n'; return document_; } @@ -4580,14 +4519,15 @@ void StyledWriter::writeValue(const Value& value) { case realValue: pushValue(valueToString(value.asDouble())); break; - case stringValue: - { + case stringValue: { // Is NULL possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str))); - else pushValue(""); + if (ok) + pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end - str))); + else + pushValue(""); break; } case booleanValue: @@ -4603,9 +4543,9 @@ void StyledWriter::writeValue(const Value& value) { else { writeWithIndent("{"); indent(); - Value::Members::iterator it = members.begin(); + auto it = members.begin(); for (;;) { - const JSONCPP_STRING& name = *it; + const String& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); writeWithIndent(valueToQuotedString(name.c_str())); @@ -4675,7 +4615,7 @@ bool StyledWriter::isMultilineArray(const Value& value) { for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) { const Value& childValue = value[index]; isMultiLine = ((childValue.isArray() || childValue.isObject()) && - childValue.size() > 0); + !childValue.empty()); } if (!isMultiLine) // check if line length > max line length { @@ -4695,7 +4635,7 @@ bool StyledWriter::isMultilineArray(const Value& value) { return isMultiLine; } -void StyledWriter::pushValue(const JSONCPP_STRING& value) { +void StyledWriter::pushValue(const String& value) { if (addChildValues_) childValues_.push_back(value); else @@ -4713,12 +4653,12 @@ void StyledWriter::writeIndent() { document_ += indentString_; } -void StyledWriter::writeWithIndent(const JSONCPP_STRING& value) { +void StyledWriter::writeWithIndent(const String& value) { writeIndent(); document_ += value; } -void StyledWriter::indent() { indentString_ += JSONCPP_STRING(indentSize_, ' '); } +void StyledWriter::indent() { indentString_ += String(indentSize_, ' '); } void StyledWriter::unindent() { assert(indentString_.size() >= indentSize_); @@ -4729,20 +4669,19 @@ void StyledWriter::writeCommentBeforeValue(const Value& root) { if (!root.hasComment(commentBefore)) return; - document_ += "\n"; + document_ += '\n'; writeIndent(); - const JSONCPP_STRING& comment = root.getComment(commentBefore); - JSONCPP_STRING::const_iterator iter = comment.begin(); + const String& comment = root.getComment(commentBefore); + String::const_iterator iter = comment.begin(); while (iter != comment.end()) { document_ += *iter; - if (*iter == '\n' && - ((iter+1) != comment.end() && *(iter + 1) == '/')) + if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/')) writeIndent(); ++iter; } // Comments are stripped of trailing newlines, so add one here - document_ += "\n"; + document_ += '\n'; } void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) { @@ -4750,9 +4689,9 @@ void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) { document_ += " " + root.getComment(commentAfterOnSameLine); if (root.hasComment(commentAfter)) { - document_ += "\n"; + document_ += '\n'; document_ += root.getComment(commentAfter); - document_ += "\n"; + document_ += '\n'; } } @@ -4765,22 +4704,23 @@ bool StyledWriter::hasCommentForValue(const Value& value) { // Class StyledStreamWriter // ////////////////////////////////////////////////////////////////// -StyledStreamWriter::StyledStreamWriter(JSONCPP_STRING indentation) - : document_(NULL), rightMargin_(74), indentation_(indentation), - addChildValues_() {} +StyledStreamWriter::StyledStreamWriter(String indentation) + : document_(nullptr), indentation_(std::move(indentation)), + addChildValues_(), indented_(false) {} -void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) { +void StyledStreamWriter::write(OStream& out, const Value& root) { document_ = &out; addChildValues_ = false; indentString_.clear(); indented_ = true; writeCommentBeforeValue(root); - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(root); writeCommentAfterValueOnSameLine(root); *document_ << "\n"; - document_ = NULL; // Forget the stream, for safety. + document_ = nullptr; // Forget the stream, for safety. } void StyledStreamWriter::writeValue(const Value& value) { @@ -4797,14 +4737,15 @@ void StyledStreamWriter::writeValue(const Value& value) { case realValue: pushValue(valueToString(value.asDouble())); break; - case stringValue: - { + case stringValue: { // Is NULL possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str))); - else pushValue(""); + if (ok) + pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end - str))); + else + pushValue(""); break; } case booleanValue: @@ -4820,9 +4761,9 @@ void StyledStreamWriter::writeValue(const Value& value) { else { writeWithIndent("{"); indent(); - Value::Members::iterator it = members.begin(); + auto it = members.begin(); for (;;) { - const JSONCPP_STRING& name = *it; + const String& name = *it; const Value& childValue = value[name]; writeCommentBeforeValue(childValue); writeWithIndent(valueToQuotedString(name.c_str())); @@ -4859,7 +4800,8 @@ void StyledStreamWriter::writeArrayValue(const Value& value) { if (hasChildValue) writeWithIndent(childValues_[index]); else { - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(childValue); indented_ = false; @@ -4894,7 +4836,7 @@ bool StyledStreamWriter::isMultilineArray(const Value& value) { for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) { const Value& childValue = value[index]; isMultiLine = ((childValue.isArray() || childValue.isObject()) && - childValue.size() > 0); + !childValue.empty()); } if (!isMultiLine) // check if line length > max line length { @@ -4914,7 +4856,7 @@ bool StyledStreamWriter::isMultilineArray(const Value& value) { return isMultiLine; } -void StyledStreamWriter::pushValue(const JSONCPP_STRING& value) { +void StyledStreamWriter::pushValue(const String& value) { if (addChildValues_) childValues_.push_back(value); else @@ -4929,8 +4871,9 @@ void StyledStreamWriter::writeIndent() { *document_ << '\n' << indentString_; } -void StyledStreamWriter::writeWithIndent(const JSONCPP_STRING& value) { - if (!indented_) writeIndent(); +void StyledStreamWriter::writeWithIndent(const String& value) { + if (!indented_) + writeIndent(); *document_ << value; indented_ = false; } @@ -4946,13 +4889,13 @@ void StyledStreamWriter::writeCommentBeforeValue(const Value& root) { if (!root.hasComment(commentBefore)) return; - if (!indented_) writeIndent(); - const JSONCPP_STRING& comment = root.getComment(commentBefore); - JSONCPP_STRING::const_iterator iter = comment.begin(); + if (!indented_) + writeIndent(); + const String& comment = root.getComment(commentBefore); + String::const_iterator iter = comment.begin(); while (iter != comment.end()) { *document_ << *iter; - if (*iter == '\n' && - ((iter+1) != comment.end() && *(iter + 1) == '/')) + if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/')) // writeIndent(); // would include newline *document_ << indentString_; ++iter; @@ -4984,84 +4927,73 @@ bool StyledStreamWriter::hasCommentForValue(const Value& value) { struct CommentStyle { /// Decide whether to write comments. enum Enum { - None, ///< Drop all comments. - Most, ///< Recover odd behavior of previous versions (not implemented yet). - All ///< Keep all comments. + None, ///< Drop all comments. + Most, ///< Recover odd behavior of previous versions (not implemented yet). + All ///< Keep all comments. }; }; -struct BuiltStyledStreamWriter : public StreamWriter -{ - BuiltStyledStreamWriter( - JSONCPP_STRING const& indentation, - CommentStyle::Enum cs, - JSONCPP_STRING const& colonSymbol, - JSONCPP_STRING const& nullSymbol, - JSONCPP_STRING const& endingLineFeedSymbol, - bool useSpecialFloats, - unsigned int precision); - int write(Value const& root, JSONCPP_OSTREAM* sout) JSONCPP_OVERRIDE; +struct BuiltStyledStreamWriter : public StreamWriter { + BuiltStyledStreamWriter(String indentation, CommentStyle::Enum cs, + String colonSymbol, String nullSymbol, + String endingLineFeedSymbol, bool useSpecialFloats, + bool emitUTF8, unsigned int precision, + PrecisionType precisionType); + int write(Value const& root, OStream* sout) override; + private: void writeValue(Value const& value); void writeArrayValue(Value const& value); bool isMultilineArray(Value const& value); - void pushValue(JSONCPP_STRING const& value); + void pushValue(String const& value); void writeIndent(); - void writeWithIndent(JSONCPP_STRING const& value); + void writeWithIndent(String const& value); void indent(); void unindent(); void writeCommentBeforeValue(Value const& root); void writeCommentAfterValueOnSameLine(Value const& root); static bool hasCommentForValue(const Value& value); - typedef std::vector<JSONCPP_STRING> ChildValues; + using ChildValues = std::vector<String>; ChildValues childValues_; - JSONCPP_STRING indentString_; + String indentString_; unsigned int rightMargin_; - JSONCPP_STRING indentation_; + String indentation_; CommentStyle::Enum cs_; - JSONCPP_STRING colonSymbol_; - JSONCPP_STRING nullSymbol_; - JSONCPP_STRING endingLineFeedSymbol_; + String colonSymbol_; + String nullSymbol_; + String endingLineFeedSymbol_; bool addChildValues_ : 1; bool indented_ : 1; bool useSpecialFloats_ : 1; + bool emitUTF8_ : 1; unsigned int precision_; + PrecisionType precisionType_; }; BuiltStyledStreamWriter::BuiltStyledStreamWriter( - JSONCPP_STRING const& indentation, - CommentStyle::Enum cs, - JSONCPP_STRING const& colonSymbol, - JSONCPP_STRING const& nullSymbol, - JSONCPP_STRING const& endingLineFeedSymbol, - bool useSpecialFloats, - unsigned int precision) - : rightMargin_(74) - , indentation_(indentation) - , cs_(cs) - , colonSymbol_(colonSymbol) - , nullSymbol_(nullSymbol) - , endingLineFeedSymbol_(endingLineFeedSymbol) - , addChildValues_(false) - , indented_(false) - , useSpecialFloats_(useSpecialFloats) - , precision_(precision) -{ -} -int BuiltStyledStreamWriter::write(Value const& root, JSONCPP_OSTREAM* sout) -{ + String indentation, CommentStyle::Enum cs, String colonSymbol, + String nullSymbol, String endingLineFeedSymbol, bool useSpecialFloats, + bool emitUTF8, unsigned int precision, PrecisionType precisionType) + : rightMargin_(74), indentation_(std::move(indentation)), cs_(cs), + colonSymbol_(std::move(colonSymbol)), nullSymbol_(std::move(nullSymbol)), + endingLineFeedSymbol_(std::move(endingLineFeedSymbol)), + addChildValues_(false), indented_(false), + useSpecialFloats_(useSpecialFloats), emitUTF8_(emitUTF8), + precision_(precision), precisionType_(precisionType) {} +int BuiltStyledStreamWriter::write(Value const& root, OStream* sout) { sout_ = sout; addChildValues_ = false; indented_ = true; indentString_.clear(); writeCommentBeforeValue(root); - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(root); writeCommentAfterValueOnSameLine(root); *sout_ << endingLineFeedSymbol_; - sout_ = NULL; + sout_ = nullptr; return 0; } void BuiltStyledStreamWriter::writeValue(Value const& value) { @@ -5076,16 +5008,19 @@ void BuiltStyledStreamWriter::writeValue(Value const& value) { pushValue(valueToString(value.asLargestUInt())); break; case realValue: - pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_)); + pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_, + precisionType_)); break; - case stringValue: - { + case stringValue: { // Is NULL is possible for value.string_? No. char const* str; char const* end; bool ok = value.getString(&str, &end); - if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str))); - else pushValue(""); + if (ok) + pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end - str), + emitUTF8_)); + else + pushValue(""); break; } case booleanValue: @@ -5101,12 +5036,13 @@ void BuiltStyledStreamWriter::writeValue(Value const& value) { else { writeWithIndent("{"); indent(); - Value::Members::iterator it = members.begin(); + auto it = members.begin(); for (;;) { - JSONCPP_STRING const& name = *it; + String const& name = *it; Value const& childValue = value[name]; writeCommentBeforeValue(childValue); - writeWithIndent(valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length()))); + writeWithIndent(valueToQuotedStringN( + name.data(), static_cast<unsigned>(name.length()), emitUTF8_)); *sout_ << colonSymbol_; writeValue(childValue); if (++it == members.end()) { @@ -5140,7 +5076,8 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) { if (hasChildValue) writeWithIndent(childValues_[index]); else { - if (!indented_) writeIndent(); + if (!indented_) + writeIndent(); indented_ = true; writeValue(childValue); indented_ = false; @@ -5158,13 +5095,15 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) { { assert(childValues_.size() == size); *sout_ << "["; - if (!indentation_.empty()) *sout_ << " "; + if (!indentation_.empty()) + *sout_ << " "; for (unsigned index = 0; index < size; ++index) { if (index > 0) *sout_ << ((!indentation_.empty()) ? ", " : ","); *sout_ << childValues_[index]; } - if (!indentation_.empty()) *sout_ << " "; + if (!indentation_.empty()) + *sout_ << " "; *sout_ << "]"; } } @@ -5177,7 +5116,7 @@ bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) { for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) { Value const& childValue = value[index]; isMultiLine = ((childValue.isArray() || childValue.isObject()) && - childValue.size() > 0); + !childValue.empty()); } if (!isMultiLine) // check if line length > max line length { @@ -5197,7 +5136,7 @@ bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) { return isMultiLine; } -void BuiltStyledStreamWriter::pushValue(JSONCPP_STRING const& value) { +void BuiltStyledStreamWriter::pushValue(String const& value) { if (addChildValues_) childValues_.push_back(value); else @@ -5216,8 +5155,9 @@ void BuiltStyledStreamWriter::writeIndent() { } } -void BuiltStyledStreamWriter::writeWithIndent(JSONCPP_STRING const& value) { - if (!indented_) writeIndent(); +void BuiltStyledStreamWriter::writeWithIndent(String const& value) { + if (!indented_) + writeIndent(); *sout_ << value; indented_ = false; } @@ -5230,17 +5170,18 @@ void BuiltStyledStreamWriter::unindent() { } void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) { - if (cs_ == CommentStyle::None) return; + if (cs_ == CommentStyle::None) + return; if (!root.hasComment(commentBefore)) return; - if (!indented_) writeIndent(); - const JSONCPP_STRING& comment = root.getComment(commentBefore); - JSONCPP_STRING::const_iterator iter = comment.begin(); + if (!indented_) + writeIndent(); + const String& comment = root.getComment(commentBefore); + String::const_iterator iter = comment.begin(); while (iter != comment.end()) { *sout_ << *iter; - if (*iter == '\n' && - ((iter+1) != comment.end() && *(iter + 1) == '/')) + if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/')) // writeIndent(); // would write extra newline *sout_ << indentString_; ++iter; @@ -5248,8 +5189,10 @@ void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) { indented_ = false; } -void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(Value const& root) { - if (cs_ == CommentStyle::None) return; +void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine( + Value const& root) { + if (cs_ == CommentStyle::None) + return; if (root.hasComment(commentAfterOnSameLine)) *sout_ << " " + root.getComment(commentAfterOnSameLine); @@ -5269,28 +5212,19 @@ bool BuiltStyledStreamWriter::hasCommentForValue(const Value& value) { /////////////// // StreamWriter -StreamWriter::StreamWriter() - : sout_(NULL) -{ -} -StreamWriter::~StreamWriter() -{ -} -StreamWriter::Factory::~Factory() -{} -StreamWriterBuilder::StreamWriterBuilder() -{ - setDefaults(&settings_); -} -StreamWriterBuilder::~StreamWriterBuilder() -{} -StreamWriter* StreamWriterBuilder::newStreamWriter() const -{ - JSONCPP_STRING indentation = settings_["indentation"].asString(); - JSONCPP_STRING cs_str = settings_["commentStyle"].asString(); - bool eyc = settings_["enableYAMLCompatibility"].asBool(); - bool dnp = settings_["dropNullPlaceholders"].asBool(); - bool usf = settings_["useSpecialFloats"].asBool(); +StreamWriter::StreamWriter() : sout_(nullptr) {} +StreamWriter::~StreamWriter() = default; +StreamWriter::Factory::~Factory() = default; +StreamWriterBuilder::StreamWriterBuilder() { setDefaults(&settings_); } +StreamWriterBuilder::~StreamWriterBuilder() = default; +StreamWriter* StreamWriterBuilder::newStreamWriter() const { + const String indentation = settings_["indentation"].asString(); + const String cs_str = settings_["commentStyle"].asString(); + const String pt_str = settings_["precisionType"].asString(); + const bool eyc = settings_["enableYAMLCompatibility"].asBool(); + const bool dnp = settings_["dropNullPlaceholders"].asBool(); + const bool usf = settings_["useSpecialFloats"].asBool(); + const bool emitUTF8 = settings_["emitUTF8"].asBool(); unsigned int pre = settings_["precision"].asUInt(); CommentStyle::Enum cs = CommentStyle::All; if (cs_str == "All") { @@ -5300,74 +5234,80 @@ StreamWriter* StreamWriterBuilder::newStreamWriter() const } else { throwRuntimeError("commentStyle must be 'All' or 'None'"); } - JSONCPP_STRING colonSymbol = " : "; + PrecisionType precisionType(significantDigits); + if (pt_str == "significant") { + precisionType = PrecisionType::significantDigits; + } else if (pt_str == "decimal") { + precisionType = PrecisionType::decimalPlaces; + } else { + throwRuntimeError("precisionType must be 'significant' or 'decimal'"); + } + String colonSymbol = " : "; if (eyc) { colonSymbol = ": "; } else if (indentation.empty()) { colonSymbol = ":"; } - JSONCPP_STRING nullSymbol = "null"; + String nullSymbol = "null"; if (dnp) { nullSymbol.clear(); } - if (pre > 17) pre = 17; - JSONCPP_STRING endingLineFeedSymbol; - return new BuiltStyledStreamWriter( - indentation, cs, - colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre); -} -static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys) -{ - valid_keys->clear(); - valid_keys->insert("indentation"); - valid_keys->insert("commentStyle"); - valid_keys->insert("enableYAMLCompatibility"); - valid_keys->insert("dropNullPlaceholders"); - valid_keys->insert("useSpecialFloats"); - valid_keys->insert("precision"); -} -bool StreamWriterBuilder::validate(Json::Value* invalid) const -{ - Json::Value my_invalid; - if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL - Json::Value& inv = *invalid; - std::set<JSONCPP_STRING> valid_keys; - getValidWriterKeys(&valid_keys); - Value::Members keys = settings_.getMemberNames(); - size_t n = keys.size(); - for (size_t i = 0; i < n; ++i) { - JSONCPP_STRING const& key = keys[i]; - if (valid_keys.find(key) == valid_keys.end()) { - inv[key] = settings_[key]; - } + if (pre > 17) + pre = 17; + String endingLineFeedSymbol; + return new BuiltStyledStreamWriter(indentation, cs, colonSymbol, nullSymbol, + endingLineFeedSymbol, usf, emitUTF8, pre, + precisionType); +} + +bool StreamWriterBuilder::validate(Json::Value* invalid) const { + static const auto& valid_keys = *new std::set<String>{ + "indentation", + "commentStyle", + "enableYAMLCompatibility", + "dropNullPlaceholders", + "useSpecialFloats", + "emitUTF8", + "precision", + "precisionType", + }; + for (auto si = settings_.begin(); si != settings_.end(); ++si) { + auto key = si.name(); + if (valid_keys.count(key)) + continue; + if (invalid) + (*invalid)[std::move(key)] = *si; + else + return false; } - return 0u == inv.size(); + return invalid ? invalid->empty() : true; } -Value& StreamWriterBuilder::operator[](JSONCPP_STRING key) -{ + +Value& StreamWriterBuilder::operator[](const String& key) { return settings_[key]; } // static -void StreamWriterBuilder::setDefaults(Json::Value* settings) -{ +void StreamWriterBuilder::setDefaults(Json::Value* settings) { //! [StreamWriterBuilderDefaults] (*settings)["commentStyle"] = "All"; (*settings)["indentation"] = "\t"; (*settings)["enableYAMLCompatibility"] = false; (*settings)["dropNullPlaceholders"] = false; (*settings)["useSpecialFloats"] = false; + (*settings)["emitUTF8"] = false; (*settings)["precision"] = 17; + (*settings)["precisionType"] = "significant"; //! [StreamWriterBuilderDefaults] } -JSONCPP_STRING writeString(StreamWriter::Factory const& builder, Value const& root) { - JSONCPP_OSTRINGSTREAM sout; - StreamWriterPtr const writer(builder.newStreamWriter()); +String writeString(StreamWriter::Factory const& factory, Value const& root) { + OStringStream sout; + StreamWriterPtr const writer(factory.newStreamWriter()); writer->write(root, &sout); return sout.str(); } -JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& root) { +OStream& operator<<(OStream& sout, Value const& root) { StreamWriterBuilder builder; StreamWriterPtr const writer(builder.newStreamWriter()); writer->write(root, &sout); 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 a5f98ee5e..47c03ff80 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,52 +626,6 @@ # type: bool # tone_mapping = false -#### Bumpmapping - -# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack -# or need to be auto-generated. -# Requires shaders to be enabled. -# type: bool -# enable_bumpmapping = false - -# Enables on the fly normalmap generation (Emboss effect). -# Requires bumpmapping to be enabled. -# type: bool -# generate_normalmaps = false - -# Strength of generated normalmaps. -# type: float -# normalmaps_strength = 0.6 - -# Defines sampling step of texture. -# A higher value results in smoother normal maps. -# type: int min: 0 max: 2 -# normalmaps_smooth = 0 - -#### 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). @@ -696,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. @@ -707,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. @@ -786,8 +764,8 @@ # The rendering back-end for Irrlicht. # A restart is required after changing this. # Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise. -# On other platforms, OpenGL is recommended, and it’s the only driver with -# shader support currently. +# On other platforms, OpenGL is recommended. +# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental) # type: enum values: null, software, burningsvideo, direct3d8, direct3d9, opengl, ogles1, ogles2 # video_driver = opengl @@ -860,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 @@ -955,8 +935,9 @@ # autoscale_mode = disable # Show entity selection boxes +# A restart is required after changing this. # type: bool -# show_entity_selectionbox = true +# show_entity_selectionbox = false ## Menus @@ -1171,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. @@ -1192,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 @@ -1280,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. @@ -1314,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 @@ -1394,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). @@ -1402,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 @@ -1499,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 @@ -1524,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 @@ -1537,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 @@ -1733,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 = @@ -1766,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. @@ -1777,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 @@ -2764,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 @@ -2821,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 @@ -2883,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 = { @@ -3333,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: @@ -3375,3 +3395,8 @@ # 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/debpkg-control b/misc/debpkg-control index b228f4c79..30dc94088 100644 --- a/misc/debpkg-control +++ b/misc/debpkg-control @@ -3,9 +3,9 @@ Priority: extra Standards-Version: 3.6.2 Package: minetest-staging Version: 0.4.15-DATEPLACEHOLDER -Depends: libc6, libcurl3-gnutls, libfreetype6, libirrlicht1.8, LEVELDB_PLACEHOLDER, liblua5.1-0, libluajit-5.1-2, libopenal1, libstdc++6, libvorbisfile3, libx11-6, zlib1g +Depends: libc6, libcurl3-gnutls, libfreetype6, libirrlicht1.8, libjsoncpp1, LEVELDB_PLACEHOLDER, liblua5.1-0, libluajit-5.1-2, libopenal1, libsqlite3-0, libstdc++6, libvorbisfile3, libx11-6, zlib1g Maintainer: Loic Blot <loic.blot@unix-experience.fr> -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 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 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity type="win32" name="minetest" version="0.0.0.0" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> @@ -10,6 +11,7 @@ <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> + <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage> </windowsSettings> </application> </assembly> diff --git a/misc/net.minetest.minetest.appdata.xml b/misc/net.minetest.minetest.appdata.xml index c177c3713..0e5397b37 100644 --- a/misc/net.minetest.minetest.appdata.xml +++ b/misc/net.minetest.minetest.appdata.xml @@ -62,6 +62,6 @@ <translation type="gettext">minetest</translation> <update_contact>sfan5@live.de</update_contact> <releases> - <release date="2020-07-09" version="5.3.0"/> + <release date="2021-02-23" version="5.4.0"/> </releases> </component> diff --git a/po/ar/minetest.po b/po/ar/minetest.po index 9bda5109d..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-06-13 23:17+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 <abidin24@disroot.org>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/minetest/minetest/" "ar/>\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -52,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 "لا تتطابق نسخ Ø§Ù„Ù…ÙŠÙØ§Ù‚. " @@ -69,10 +65,6 @@ 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Ùقط." @@ -80,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 @@ -90,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 "الإعتماديات:" @@ -164,16 +158,57 @@ 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..." @@ -193,22 +228,48 @@ msgid "Install" msgstr "ثبت" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "ثبت" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "الإعتماديات الإختيارية:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "التعديلات" #: builtin/mainmenu/dlg_contentstore.lua msgid "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" @@ -223,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" @@ -232,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" @@ -276,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 "أراضيٌ عائمة (تجريبية)" @@ -298,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" @@ -306,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" @@ -338,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" @@ -367,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" @@ -393,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" @@ -521,6 +584,10 @@ msgid "Scale" msgstr "تكبير/تصغير" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Ø¥Ø¨ØØ«" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "إختر الدليل" @@ -542,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" @@ -570,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 @@ -585,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)" @@ -609,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\"" @@ -617,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" @@ -625,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" @@ -633,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" @@ -665,7 +745,7 @@ msgstr "Ù„Ø§ÙŠØªÙˆÙØ± ÙˆØµÙ Ù„Ù„ØØ²Ù…Ø©" #: builtin/mainmenu/tab_content.lua msgid "Rename" -msgstr "" +msgstr "أعد التسمية" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" @@ -688,6 +768,17 @@ msgid "Credits" msgstr "إشادات" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "إختر الدليل" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "المساهمون السابقون" @@ -697,22 +788,18 @@ msgstr "المطورون الرئيسيون السابقون" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" -msgstr "" +msgstr "أعلن عن الخادوم" #: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Bind Address" -msgstr "" +msgstr "العنوان المطلوب" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "اضبط" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy msgid "Creative Mode" msgstr "النمط الإبداعي" -#: 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" @@ -741,6 +828,11 @@ 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 +841,11 @@ 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" @@ -868,10 +951,6 @@ 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:" @@ -925,11 +996,15 @@ 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,114 +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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" +"أزرار التØÙƒÙ…:\n" +"- %s: سر للأمام\n" +"- %s: سر للخلÙ\n" +"- %s: سر يسارا\n" +"- %s: سر يمينا\n" +"- %s: Ø§Ù‚ÙØ²/تسلق\n" +"- %s: ازØÙ/انزل\n" +"- %s: ارمي عنصر\n" +"- %s: Ø§ÙØªØ المخزن\n" +"- ØªØØ±ÙŠÙƒ Ø§Ù„ÙØ£Ø±Ø©: دوران\n" +"- زر Ø§Ù„ÙØ£Ø±Ø© الأيمن: اØÙر/الكم\n" +"- زر Ø§Ù„ÙØ£Ø±Ø© الأيسر: ضع/استخدم\n" +"- عجلة Ø§Ù„ÙØ£Ø±Ø©: غيير العنصر\n" +"- -%s: دردشة\n" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +msgstr "ينشىء عميلا…" #: src/client/game.cpp msgid "Creating server..." -msgstr "" +msgstr "ينشىء خادوما…" #: src/client/game.cpp msgid "Debug info and profiler graph hidden" -msgstr "" +msgstr "معلومات Ø§Ù„ØªÙ†Ù‚ÙŠØ ÙˆÙ…Ù†ØÙ†Ù‰ Ù…ØÙ„Ù„ البيانات مخÙيان" #: src/client/game.cpp msgid "Debug info shown" -msgstr "" +msgstr "معلومات Ø§Ù„ØªÙ†Ù‚ÙŠØ Ù…Ø±Ø¦ÙŠØ©" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" @@ -1192,114 +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 "" +msgstr "الضباب Ù…ÙØ¹Ù„" #: src/client/game.cpp msgid "Game info:" -msgstr "" +msgstr "معلومات اللعبة:" #: src/client/game.cpp msgid "Game paused" -msgstr "" +msgstr "اللعبة Ù…ÙˆÙ‚ÙØ© مؤقتا" #: src/client/game.cpp msgid "Hosting server" -msgstr "" +msgstr "Ø§Ø³ØªØ¶Ø§ÙØ© خادوم" #: src/client/game.cpp msgid "Item definitions..." -msgstr "" +msgstr "تعري٠العنصر…" #: src/client/game.cpp msgid "KiB/s" -msgstr "" +msgstr "كب\\ثا" #: src/client/game.cpp msgid "Media..." -msgstr "" +msgstr "وسائط…" #: src/client/game.cpp msgid "MiB/s" -msgstr "" +msgstr "مب\\ثا" #: src/client/game.cpp msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: 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" @@ -1315,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" @@ -1335,63 +1393,63 @@ msgstr "" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "منØÙ†Ù‰ Ù…ØÙ„Ù„ البيانات ظاهر" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "خادوم بعيد" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" +msgstr "يستورد العناوين…" #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "يغلق…" #: src/client/game.cpp msgid "Singleplayer" -msgstr "" +msgstr "لاعب Ù…Ù†ÙØ±Ø¯" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "ØØ¬Ù… الصوت" #: src/client/game.cpp msgid "Sound muted" -msgstr "" +msgstr "الصوت مكتوم" #: src/client/game.cpp msgid "Sound system is disabled" -msgstr "" +msgstr "نظام الصوت معطل" #: src/client/game.cpp msgid "Sound system is not supported on this build" -msgstr "" +msgstr "نظام الصوت غير مدمج أثناء البناء" #: src/client/game.cpp msgid "Sound unmuted" -msgstr "" +msgstr "الصوت غير مكتوم" #: src/client/game.cpp #, c-format msgid "Viewing range changed to %d" -msgstr "" +msgstr "غÙيرَ مدى الرؤية الى %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at maximum: %d" -msgstr "" +msgstr "مدى الرؤية ÙÙŠ أقصى ØØ¯: %d" #: src/client/game.cpp #, c-format msgid "Viewing range is at minimum: %d" -msgstr "" +msgstr "مدى الرؤية ÙÙŠ أدنى ØØ¯: %d" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr "غÙير Ø§Ù„ØØ¬Ù… الى %d%%" #: src/client/game.cpp msgid "Wireframe shown" @@ -1399,60 +1457,61 @@ msgstr "" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "التكبير معطل من قبل لعبة أو تعديل" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "مواÙÙ‚" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "الدردشة مخÙية" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "الدردشة ظاهرة" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "الواجهة مخÙية" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "الواجهة ظاهرة" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "Ù…ØÙ„Ù„ البيانات مخÙÙŠ" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "Ù…ØÙ„Ù„ البيانات ظاهر ( ØµÙØØ© %d من %d)" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "تطبيقات" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "امسØ" #: src/client/keycode.cpp +#, fuzzy msgid "Control" -msgstr "" +msgstr "Control" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "أسÙÙ„" #: src/client/keycode.cpp msgid "End" @@ -1467,239 +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 @@ -1710,38 +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 "" +msgstr "للخلÙ" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "" +msgstr "غير الكاميرا" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "" +msgstr "دردشة" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" -msgstr "" +msgstr "الأوامر" #: src/gui/guiKeyChangeMenu.cpp msgid "Console" @@ -1757,15 +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" @@ -1777,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)" @@ -1797,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" @@ -1821,31 +1951,31 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "خاص" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" +msgstr "بدّل عرض الواجهة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "بدّل عرض سجل Ø§Ù„Ù…ØØ§Ø¯Ø«Ø©" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "بدّل وضع السرعة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "بدّل ØØ§Ù„Ø© الطيران" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "بدّل ظهور الضباب" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "بدّل ظهور الخريطة المصغرة" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" @@ -1857,41 +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 @@ -1905,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 "" @@ -1937,12 +2069,6 @@ msgid "" 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 "" @@ -2042,13 +2168,17 @@ 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 "" @@ -2282,10 +2412,6 @@ 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" @@ -2356,16 +2482,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2517,6 +2633,10 @@ 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 "" @@ -2573,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 @@ -2581,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 @@ -2681,12 +2805,6 @@ 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 "" @@ -2757,6 +2875,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2817,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 @@ -2905,14 +3027,6 @@ 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 "" @@ -2922,18 +3036,6 @@ 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" @@ -2950,12 +3052,6 @@ 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" @@ -2965,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 @@ -3020,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 "" @@ -3267,10 +3363,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3324,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 "" @@ -3792,6 +3884,10 @@ 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 "" @@ -3872,6 +3968,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3971,6 +4074,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4501,7 +4611,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Load the game profiler" -msgstr "" +msgstr "ØÙ…ّل Ù…ØÙ„Ù„ بيانات اللعبة" #: src/settings_translation_file.cpp msgid "" @@ -4527,10 +4637,6 @@ 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 "" @@ -4544,6 +4650,14 @@ 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 "" @@ -4707,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 @@ -4756,6 +4870,13 @@ msgid "" 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 "" @@ -4985,14 +5106,6 @@ 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 "" @@ -5018,10 +5131,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5047,34 +5156,6 @@ msgid "" 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" @@ -5140,6 +5221,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5295,10 +5384,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5550,6 +5635,16 @@ 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 "" @@ -5679,10 +5774,6 @@ 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" @@ -5776,6 +5867,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5834,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 @@ -5861,15 +5956,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6005,6 +6105,17 @@ msgid "" 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 "" @@ -6207,6 +6318,12 @@ msgid "" 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,6 +6446,24 @@ 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 "" @@ -6340,11 +6475,59 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "تنزيل وتثبيت $1, يرجى الإنتظار..." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "هل أنت متأكد من إعادة تعيين عالم اللاعب الوØÙŠØ¯ØŸ" #~ msgid "Back" #~ msgstr "Ø¹ÙØ¯" +#~ msgid "Bump Mapping" +#~ msgstr "خريطة النتوءات" + +#~ msgid "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 ed091587d..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-06-13 23:17+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 <victorenator@gmail.com>\n" "Language-Team: Belarusian <https://hosted.weblate.org/projects/minetest/" @@ -47,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 "ВерÑÑ–Ñ– пратакола адрозніваюцца. " @@ -64,12 +60,6 @@ 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 верÑÑ–ÑŽ пратакола." @@ -77,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 @@ -87,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 "ЗалежнаÑці:" @@ -161,14 +153,55 @@ 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 "" @@ -191,6 +224,16 @@ msgid "Install" msgstr "УÑталÑваць" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "УÑталÑваць" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "ÐеабавÑÐ·ÐºÐ¾Ð²Ñ‹Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð°Ñці:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Мадыфікацыі" @@ -204,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" @@ -221,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 @@ -535,6 +599,10 @@ msgid "Scale" msgstr "Маштаб" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Пошук" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Ðбраць каталог" @@ -652,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 "Пошук у Ñеціве" @@ -705,6 +788,17 @@ msgid "Credits" msgstr "ПадзÑкі" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Ðбраць каталог" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Ð‘Ñ‹Ð»Ñ‹Ñ ÑžÐ´Ð·ÐµÐ»ÑŒÐ½Ñ–ÐºÑ–" @@ -721,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 "Уключыць пашкоджанні" @@ -745,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 +847,11 @@ 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 +860,11 @@ msgid "Port" msgstr "Порт" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Ðбраць Ñвет:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Ðбраць Ñвет:" @@ -780,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 "Упадабанае" @@ -804,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 +942,6 @@ 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 "Запамінаць памеры Ñкрана" @@ -853,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 +962,6 @@ 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 +970,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "MIP-Ñ‚ÑкÑтураванне + анізатропны фільтр" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ðе" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Без фільтра" @@ -913,19 +997,11 @@ 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 +1014,11 @@ msgid "Shaders" msgstr "ШÑйдÑры" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Узровень лÑтучых аÑтравоў" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "ШÑйдÑры (недаÑтупна)" @@ -981,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 "Таймаут злучÑннÑ." @@ -1151,20 +1216,20 @@ msgid "Continue" msgstr "ПрацÑгнуць" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1312,34 +1377,6 @@ 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 "Ð Ñжым руху Ñкрозь Ñцены адключаны" @@ -1731,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 "Паролі не Ñупадаюць!" @@ -2002,14 +2058,6 @@ msgstr "" "воÑтраву, зрабіце ÑžÑе 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-шум, што кіруе формай/памерам горных хрыбтоў." @@ -2132,6 +2180,10 @@ 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" msgstr "ÐбÑалютны ліміт чаргі запытаў" @@ -2387,10 +2439,6 @@ msgid "Builtin" msgstr "Убудаваны" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Ð Ñльефнае Ñ‚ÑкÑтураванне" - -#: src/settings_translation_file.cpp #, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2467,22 +2515,6 @@ 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 "" -"Змена інтÑрфейÑу галоўнага меню:\n" -"- full: выбар Ñвету Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ альбо Ñеткавай гульні, аÑобны ÑÐ¿Ñ–Ñ " -"чужых Ñервераў.\n" -"- simple: адзін Ñвет Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ гульні Ñž меню, дзе ÑÐ¿Ñ–Ñ Ñ‡ÑƒÐ¶Ñ‹Ñ… " -"Ñервераў; можа быць карыÑна Ð´Ð»Ñ Ð½ÐµÐ²ÐµÐ»Ñ–Ñ‡ÐºÑ–Ñ… Ñкранаў.\n" -"Прадвызначана: simple Ð´Ð»Ñ Android, full Ð´Ð»Ñ ÑžÑÑ–Ñ… аÑтатніх." - -#: src/settings_translation_file.cpp #, fuzzy msgid "Chat font size" msgstr "Памер шрыфту" @@ -2648,6 +2680,10 @@ 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" @@ -2708,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 @@ -2716,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" @@ -2823,14 +2864,6 @@ 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 "Вызначае базавы ўзровень зÑмлі." @@ -2910,6 +2943,11 @@ msgid "Desynchronize block animation" msgstr "ДÑÑінхранізаваць анімацыю блока" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Клавіша ўправа" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "ЧаÑціцы пры капанні" @@ -2972,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 @@ -3077,17 +3116,6 @@ 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 "Уключае кÑшаванне павернутых вонкі Ñетак." @@ -3097,22 +3125,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3129,14 +3141,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3146,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" @@ -3479,10 +3484,6 @@ 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 "Ð“Ð»Ð°Ð±Ð°Ð»ÑŒÐ½Ñ‹Ñ Ð·Ð²Ð°Ñ€Ð¾Ñ‚Ð½Ñ‹Ñ Ð²Ñ‹ÐºÐ»Ñ–ÐºÑ–" @@ -3543,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" @@ -4072,6 +4073,11 @@ 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 "ÐдчувальнаÑць джойÑціка" @@ -4172,6 +4178,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавіша Ñкока.\n" +"ГлÑдзіце http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4314,6 +4331,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавіша Ñкока.\n" +"ГлÑдзіце 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." @@ -5072,10 +5100,6 @@ 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 "" @@ -5092,6 +5116,14 @@ 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 "Каталог мапаў" @@ -5275,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 @@ -5336,6 +5369,13 @@ 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 "МакÑÑ–Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð»ÑŒÐºÐ°Ñць прымуÑова загружаемых блокаў мапы." @@ -5593,14 +5633,6 @@ 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 "КолькаÑць узнікаючых патокаў" @@ -5647,10 +5679,6 @@ msgstr "" "Ñ– Ñпажываннем памÑці (4096 = 100 МБ, Ñк правіла)." #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "КолькаÑць Ñ–Ñ‚Ñрацый паралакÑнай аклюзіі." - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Сеціўны Ñ€Ñпазіторый" @@ -5678,34 +5706,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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5774,6 +5774,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5956,10 +5966,6 @@ msgid "Right key" msgstr "Клавіша ўправа" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "ІнтÑрвал паўторнай пÑтрычкі правай кнопкі мышы" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Ð“Ð»Ñ‹Ð±Ñ–Ð½Ñ Ñ€Ñчышча" @@ -6258,6 +6264,19 @@ 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 "Паведамленне аб выключÑнні" @@ -6412,10 +6431,6 @@ 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" @@ -6522,6 +6537,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6588,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" @@ -6635,6 +6656,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6642,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 "" "Ð§Ð°Ñ Ñƒ Ñекундах паміж паўторамі падзей пры ўтрыманні правай кнопкі мышы." @@ -6808,6 +6835,17 @@ 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 "ВыкарыÑтоўваць трылінейную фільтрацыю пры маштабаванні Ñ‚ÑкÑтур." @@ -7047,6 +7085,12 @@ 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 "" "Ці павінна быць паміж блокамі мапы дÑÑÑ–Ð½Ñ…Ñ€Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ‹Ñ– Ñ‚ÑкÑтур блокаў." @@ -7188,6 +7232,24 @@ 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" @@ -7200,180 +7262,336 @@ msgid "cURL timeout" msgstr "Таймаўт cURL" #~ msgid "" -#~ "Map generation attributes specific to Mapgen v5.\n" -#~ "Flags that are not enabled are not modified from the default.\n" -#~ "Flags starting with 'no' are used to explicitly disable them." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 5.\n" -#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n" -#~ "Ðтрыбуты, што пачынаюцца з 'no' выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ." +#~ "0 = паралакÑÐ½Ð°Ñ Ð°ÐºÐ»ÑŽÐ·Ñ–Ñ Ñа звеÑткамі аб нахіле (хутка).\n" +#~ "1 = Ñ€Ñльефнае Ñ‚ÑкÑтураванне (павольней, але ÑкаÑней)." -#~ msgid "Toggle Cinematic" -#~ msgstr "КінематаграфічнаÑць" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Ðаладка гама-ÐºÐ°Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñветлавых табліц. Ð’Ñ‹ÑÐ¾ÐºÑ–Ñ Ð·Ð½Ð°Ñ‡Ñнні — больш " +#~ "ÑрчÑйшыÑ.\n" +#~ "ГÑты параметр прызначаны толькі Ð´Ð»Ñ ÐºÐ»Ñ–ÐµÐ½Ñ‚Ð° Ñ– ігнаруецца Ñерверам." + +#~ 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 "" -#~ "Map generation attributes specific to Mapgen Carpathian.\n" -#~ "Flags that are not enabled are not modified from the default.\n" -#~ "Flags starting with 'no' are used to explicitly disable them." +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." #~ msgstr "" -#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы \"Карпаты\".\n" -#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n" -#~ "Ðтрыбуты, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ." +#~ "Змена інтÑрфейÑу галоўнага меню:\n" +#~ "- full: выбар Ñвету Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ альбо Ñеткавай гульні, аÑобны ÑÐ¿Ñ–Ñ " +#~ "чужых Ñервераў.\n" +#~ "- simple: адзін Ñвет Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ гульні Ñž меню, дзе ÑÐ¿Ñ–Ñ Ñ‡ÑƒÐ¶Ñ‹Ñ… " +#~ "Ñервераў; можа быць карыÑна Ð´Ð»Ñ Ð½ÐµÐ²ÐµÐ»Ñ–Ñ‡ÐºÑ–Ñ… Ñкранаў.\n" +#~ "Прадвызначана: simple Ð´Ð»Ñ Android, full Ð´Ð»Ñ ÑžÑÑ–Ñ… аÑтатніх." + +#~ msgid "Config mods" +#~ msgstr "Ðалады мадыфікацый" + +#~ msgid "Configure" +#~ msgstr "Ðаладзіць" #~ msgid "Content Store" #~ msgstr "Крама дадаткаў" -#~ msgid "Select Package File:" -#~ msgstr "Ðбраць файл пакунка:" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Кіруе шчыльнаÑцю горнага Ñ€Ñльефу лÑтучых аÑтравоў.\n" +#~ "ГÑты зрух дадаецца да значÑÐ½Ð½Ñ 'np_mountain'." -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y верхнÑга ліміту лавы Ñž шырокіх пÑчорах." +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Кіруе шырынёй тунÑлÑÑž. Меншае значÑнне Ñтварае больш ÑˆÑ‹Ñ€Ð¾ÐºÑ–Ñ Ñ‚ÑƒÐ½Ñлі." -#~ msgid "Waving Water" -#~ msgstr "ХвалÑванне вады" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Колер Ð¿ÐµÑ€Ð°ÐºÑ€Ñ‹Ð¶Ð°Ð²Ð°Ð½Ð½Ñ (R,G,B)." -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Ð’Ñ‹Ñтуп падзÑмеллÑÑž па-над Ñ€Ñльефам." +#~ msgid "Darkness sharpness" +#~ 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." +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." #~ msgstr "" -#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 7.\n" -#~ "Параметр \"ridges\" (хрыбты) ўключае Ñ€Ñкі.\n" -#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹ прадвызначана не змÑнÑюцца.\n" -#~ "Параметры, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÑннÑ." +#~ "Вызначае воблаÑці гладкага Ñ€Ñльефу лÑтучых аÑтравоў.\n" +#~ "Ð“Ð»Ð°Ð´ÐºÐ°Ñ Ð¿Ð°Ð²ÐµÑ€Ñ…Ð½Ñ Ð·'ÑўлÑецца, калі шум больш нулÑ." -#~ msgid "Projecting dungeons" -#~ msgstr "Праектаванне падзÑмеллÑÑž" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Вызначае крок дыÑкрÑтызацыі Ñ‚ÑкÑтуры.\n" +#~ "Больш выÑокае значÑнне прыводзіць да больш гладкіх мапаў нармалÑÑž." #~ msgid "" -#~ "If enabled together with fly mode, makes move directions relative to the " -#~ "player's pitch." +#~ "Deprecated, define and locate cave liquids using biome definitions " +#~ "instead.\n" +#~ "Y of upper limit of lava in large caves." #~ msgstr "" -#~ "Калі ўключана адначаÑова з Ñ€Ñжымам палёту, то вызначае напрамак руху " -#~ "адноÑна кроку гульца." +#~ "СаÑтарÑлы. Вызначае Ñ– размÑшчае пÑÑ‡Ð¾Ñ€Ð½Ñ‹Ñ Ð²Ð°Ð´ÐºÐ°Ñці з выкарыÑтаннем " +#~ "азначÑннÑÑž біёму.\n" +#~ "Y верхнÑй мÑжы лавы Ñž вÑлікіх пÑчорах." -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-узровень, да Ñкога раÑпаўÑюджваюцца цені лÑтучых аÑтравоў." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Спампоўванне Ñ– ÑžÑталёўка $1. Калі лаÑка, пачакайце…" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Y-узровень ÑÑÑ€ÑднÑй кропкі Ñ– паверхні азёр лÑтучых аÑтравоў." +#~ msgid "Enable VBO" +#~ msgstr "Уключыць VBO" -#~ msgid "Waving water" -#~ msgstr "ХвалÑванне вады" +#~ 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 "Variation of hill height and lake depth on floatland smooth terrain." +#~ 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 "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Ð¢Ñ‹Ð¿Ð¾Ð²Ð°Ñ Ð¼Ð°ÐºÑÑ–Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹ÑˆÑ‹Ð½Ñ, вышÑй Ñ– ніжÑй ÑÑÑ€ÑднÑй кропкі гор лÑтучых " -#~ "аÑтравоў." +#~ "Уключае паралакÑнае аклюзіўнае Ñ‚ÑкÑтураванне.\n" +#~ "Патрабуюцца ÑžÐºÐ»ÑŽÑ‡Ð°Ð½Ñ‹Ñ ÑˆÑйдÑры." -#~ msgid "This font will be used for certain languages." -#~ msgstr "ГÑты шрыфт будзе выкарыÑтоўваецца Ð´Ð»Ñ Ð½ÐµÐºÐ°Ñ‚Ð¾Ñ€Ñ‹Ñ… моў." +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "ÐкÑперыментальны параметр, Ñкі можа прывеÑці да візуальных прагалаў\n" +#~ "паміж блокамі пры значÑнні большым за 0." -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Моц ÑÑÑ€ÑднÑга ўздыму крывой ÑвÑтла." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS у меню паўзы" -#~ msgid "Shadow limit" -#~ msgstr "Ліміт ценÑÑž" +#~ msgid "Floatland base height noise" +#~ msgstr "Шум базавай вышыні лÑтучых аÑтравоў" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "ШлÑÑ… да TrueTypeFont ці раÑтравага шрыфту." +#~ msgid "Floatland mountain height" +#~ msgstr "Ð’Ñ‹ÑˆÑ‹Ð½Ñ Ð³Ð¾Ñ€ на лÑтучых аÑтравоў" -#~ msgid "Lightness sharpness" -#~ msgstr "Ð ÑзкаÑць паваротліваÑці" +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "ПразрыÑтаÑць цені шрыфту (ад 0 да 255)." -#~ msgid "Lava depth" -#~ msgstr "Ð“Ð»Ñ‹Ð±Ñ–Ð½Ñ Ð»Ð°Ð²Ñ‹" +#~ msgid "Gamma" +#~ msgstr "Гама" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž" + +#~ msgid "Generate normalmaps" +#~ msgstr "Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž" #~ msgid "IPv6 support." #~ msgstr "Падтрымка IPv6." -#~ msgid "Gamma" -#~ msgstr "Гама" +#~ msgid "" +#~ "If enabled together with fly mode, makes move directions relative to the " +#~ "player's pitch." +#~ msgstr "" +#~ "Калі ўключана адначаÑова з Ñ€Ñжымам палёту, то вызначае напрамак руху " +#~ "адноÑна кроку гульца." -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "ПразрыÑтаÑць цені шрыфту (ад 0 да 255)." +#~ msgid "Lava depth" +#~ msgstr "Ð“Ð»Ñ‹Ð±Ñ–Ð½Ñ Ð»Ð°Ð²Ñ‹" -#~ msgid "Floatland mountain height" -#~ msgstr "Ð’Ñ‹ÑˆÑ‹Ð½Ñ Ð³Ð¾Ñ€ на лÑтучых аÑтравоў" +#~ msgid "Lightness sharpness" +#~ msgstr "Ð ÑзкаÑць паваротліваÑці" -#~ msgid "Floatland base height noise" -#~ msgstr "Шум базавай вышыні лÑтучых аÑтравоў" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Ðбмежаванне чÑргаў на дыÑку" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Уключае кінематаграфічнае танальнае адлюÑтраванне" +#~ msgid "Main" +#~ msgstr "Галоўнае меню" -#~ msgid "Enable VBO" -#~ msgstr "Уключыць VBO" +#~ msgid "Main menu style" +#~ msgstr "Стыль галоўнага меню" #~ msgid "" -#~ "Deprecated, define and locate cave liquids using biome definitions " -#~ "instead.\n" -#~ "Y of upper limit of lava in large caves." +#~ "Map generation attributes specific to Mapgen Carpathian.\n" +#~ "Flags that are not enabled are not modified from the default.\n" +#~ "Flags starting with 'no' are used to explicitly disable them." #~ msgstr "" -#~ "СаÑтарÑлы. Вызначае Ñ– размÑшчае пÑÑ‡Ð¾Ñ€Ð½Ñ‹Ñ Ð²Ð°Ð´ÐºÐ°Ñці з выкарыÑтаннем " -#~ "азначÑннÑÑž біёму.\n" -#~ "Y верхнÑй мÑжы лавы Ñž вÑлікіх пÑчорах." +#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы \"Карпаты\".\n" +#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n" +#~ "Ðтрыбуты, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ." #~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Вызначае воблаÑці гладкага Ñ€Ñльефу лÑтучых аÑтравоў.\n" -#~ "Ð“Ð»Ð°Ð´ÐºÐ°Ñ Ð¿Ð°Ð²ÐµÑ€Ñ…Ð½Ñ Ð·'ÑўлÑецца, калі шум больш нулÑ." - -#~ msgid "Darkness sharpness" -#~ msgstr "Ð ÑзкаÑць цемры" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ "Map generation attributes specific to Mapgen v5.\n" +#~ "Flags that are not enabled are not modified from the default.\n" +#~ "Flags starting with 'no' are used to explicitly disable them." #~ msgstr "" -#~ "Кіруе шырынёй тунÑлÑÑž. Меншае значÑнне Ñтварае больш ÑˆÑ‹Ñ€Ð¾ÐºÑ–Ñ Ñ‚ÑƒÐ½Ñлі." +#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 5.\n" +#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n" +#~ "Ðтрыбуты, што пачынаюцца з 'no' выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ." #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "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 "" -#~ "Кіруе шчыльнаÑцю горнага Ñ€Ñльефу лÑтучых аÑтравоў.\n" -#~ "ГÑты зрух дадаецца да значÑÐ½Ð½Ñ 'np_mountain'." +#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 7.\n" +#~ "Параметр \"ridges\" (хрыбты) ўключае Ñ€Ñкі.\n" +#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹ прадвызначана не змÑнÑюцца.\n" +#~ "Параметры, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÑннÑ." -#~ msgid "Center of light curve mid-boost." -#~ msgstr "ЦÑнтр ÑÑÑ€ÑднÑга ўздыму крывой ÑвÑтла." +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…2" -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "Кіруе звужÑннем аÑтравоў горнага тыпу ніжÑй ÑÑÑ€ÑднÑй кропкі." +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…4" -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." -#~ msgstr "" -#~ "Ðаладка гама-ÐºÐ°Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñветлавых табліц. Ð’Ñ‹ÑÐ¾ÐºÑ–Ñ Ð·Ð½Ð°Ñ‡Ñнні — больш " -#~ "ÑрчÑйшыÑ.\n" -#~ "ГÑты параметр прызначаны толькі Ð´Ð»Ñ ÐºÐ»Ñ–ÐµÐ½Ñ‚Ð° Ñ– ігнаруецца Ñерверам." +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…2" -#~ msgid "Path to save screenshots at." -#~ msgstr "Каталог Ð´Ð»Ñ Ð·Ð°Ñ…Ð¾ÑžÐ²Ð°Ð½Ð½Ñ Ð·Ð´Ñ‹Ð¼ÐºÐ°Ñž Ñкрана." +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…4" -#~ msgid "Parallax occlusion strength" -#~ msgstr "ІнтÑнÑіўнаÑць паралакÑнай аклюзіі" +#~ msgid "Name/Password" +#~ msgstr "ІмÑ/Пароль" -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Ðбмежаванне чÑргаў на дыÑку" +#~ msgid "No" +#~ msgstr "Ðе" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Спампоўванне Ñ– ÑžÑталёўка $1. Калі лаÑка, пачакайце…" +#~ msgid "Normalmaps sampling" +#~ msgstr "ДыÑкрÑÑ‚Ñ‹Ð·Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž" -#~ msgid "Back" -#~ 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/fil/minetest.po b/po/bg/minetest.po index c78b043ed..62011a94a 100644 --- a/po/fil/minetest.po +++ b/po/bg/minetest.po @@ -1,81 +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 <EMAIL@ADDRESS>, YEAR. +# msgid "" msgstr "" -"Project-Id-Version: Filipino (Minetest)\n" +"Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n" -"Language-Team: Filipino <https://hosted.weblate.org/projects/minetest/" -"minetest/fil/>\n" -"Language: fil\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-08-04 04:41+0000\n" +"Last-Translator: atomicbeef <teddyg522@gmail.com>\n" +"Language-Team: Bulgarian <https://hosted.weblate.org/projects/minetest/" +"minetest/bg/>\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 " -"|| n % 10 == 6 || n % 10 == 9);\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 "" +msgstr "Прераждането" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "Ти умрÑ" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Добре" #: builtin/fstk/ui.lua 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 @@ -83,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 "Texture packs" +msgid "Please check that the base game is correct." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "Пакети на текÑтури" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "ДеинÑталиране" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "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)" @@ -463,12 +536,13 @@ msgid "< Back to Settings page" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy msgid "Browse" -msgstr "" +msgstr "Преглеждане" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Disabled" -msgstr "" +msgstr "Изключено" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" @@ -476,7 +550,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" -msgstr "" +msgstr "Включено" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Lacunarity" @@ -488,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" @@ -507,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" @@ -535,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" @@ -544,7 +624,7 @@ msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Y spread" -msgstr "" +msgstr "РазпроÑтранение на У-оÑта" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Z" @@ -625,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 "" @@ -678,6 +772,16 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -694,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 "" @@ -718,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 @@ -730,6 +830,10 @@ msgid "No world created or selected!" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -738,6 +842,10 @@ msgid "Port" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -753,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 "" @@ -777,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 "" @@ -815,10 +923,6 @@ 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 +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 "" @@ -843,10 +943,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -855,10 +951,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -886,19 +978,11 @@ 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 "" @@ -911,6 +995,11 @@ msgid "Shaders" msgstr "" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Земни маÑи в небето (екÑпериментално)" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -954,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 "" @@ -1040,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 "" @@ -1129,13 +1202,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1257,34 +1330,6 @@ 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 "" @@ -1676,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 "" @@ -1881,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 "fil" +msgstr "bg" #: src/settings_translation_file.cpp msgid "" @@ -1920,12 +1983,6 @@ msgid "" 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 "" @@ -2032,6 +2089,10 @@ 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 "" @@ -2265,10 +2326,6 @@ 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" @@ -2339,16 +2396,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2500,6 +2547,10 @@ 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 "" @@ -2556,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 @@ -2564,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 @@ -2664,12 +2719,6 @@ 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 "" @@ -2740,6 +2789,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2800,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 @@ -2888,14 +2941,6 @@ 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 "" @@ -2905,18 +2950,6 @@ 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" @@ -2933,12 +2966,6 @@ 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" @@ -2948,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 @@ -3250,10 +3277,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3307,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 "" @@ -3775,6 +3798,10 @@ 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 "" @@ -3855,6 +3882,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3954,6 +3988,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4510,10 +4551,6 @@ 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 "" @@ -4527,6 +4564,14 @@ 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 "" @@ -4690,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 @@ -4739,6 +4784,13 @@ msgid "" 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 "" @@ -4968,14 +5020,6 @@ 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 "" @@ -5001,10 +5045,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5030,34 +5070,6 @@ msgid "" 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" @@ -5123,6 +5135,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5278,10 +5298,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5533,6 +5549,16 @@ 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 "" @@ -5662,10 +5688,6 @@ 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" @@ -5759,6 +5781,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5817,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 @@ -5844,15 +5870,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -5988,6 +6019,17 @@ msgid "" 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 "" @@ -6190,6 +6232,12 @@ msgid "" 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 "" @@ -6312,6 +6360,24 @@ 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 "" @@ -6322,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 5ce219f7f..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-06-13 23:17+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 <EMAIL@ADDRESS>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/minetest/" @@ -49,10 +49,6 @@ msgstr "Torneu a connectar" msgid "The server has requested a reconnect:" msgstr "El servidor ha sol·licitat una reconnexió:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Carregant ..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Desajust de la versió del protocol. " @@ -67,12 +63,6 @@ msgstr "" "El servidor es compatible amb les versions de protocol entre $ 1 i $ 2 . " #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Intenta tornar a habilitar la llista de servidors públics i comprovi la seva " -"connexió a Internet ." - -#: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Nosaltres sols suportem la versió $1 del protocol." @@ -80,7 +70,8 @@ msgstr "Nosaltres sols suportem la versió $1 del protocol." msgid "We support protocol versions between version $1 and $2." msgstr "Nosaltres suportem versions del protocol entre la versió $1 i 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 @@ -90,7 +81,8 @@ msgstr "Nosaltres suportem versions del protocol entre la versió $1 i la $2." msgid "Cancel" msgstr "Cancel·lar" -#: 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ències:" @@ -172,15 +164,56 @@ 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 "Carregant ..." + +#: 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 "La tecla s'està utilitzant" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "Back to Main Menu" msgstr "Menú principal" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Ocultar Joc" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -204,6 +237,16 @@ msgid "Install" msgstr "Instal·lar" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Instal·lar" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Dependències opcionals:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Mods" @@ -217,9 +260,24 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Buscar" +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 @@ -236,7 +294,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 @@ -549,6 +611,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Buscar" + +#: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" msgstr "Selecciona el fitxer del mod:" @@ -683,6 +749,20 @@ msgstr "Error al instal·lar $1 en $2" msgid "Unable to install a modpack as a $1" msgstr "Error al instal·lar $1 en $2" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Carregant ..." + +#: 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 "" +"Intenta tornar a habilitar la llista de servidors públics i comprovi la seva " +"connexió a Internet ." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -743,6 +823,17 @@ msgid "Credits" msgstr "Crèdits" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Selecciona el fitxer del mod:" + +#: 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 "Antics Col·laboradors" @@ -759,14 +850,10 @@ msgid "Bind Address" msgstr "Adreça BIND" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Configurar" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Mode Creatiu" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Permetre Danys" @@ -785,8 +872,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nom/Contrasenya" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -797,6 +884,11 @@ msgid "No world created or selected!" msgstr "No s'ha creat ningun món o no s'ha seleccionat!" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Nova contrasenya" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Jugar Joc" @@ -805,6 +897,11 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Seleccionar un món:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Seleccionar un món:" @@ -821,23 +918,23 @@ msgstr "Ocultar Joc" msgid "Address / Port" msgstr "Adreça / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Connectar" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Mode creatiu" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Dany activat" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Esborra preferit" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Preferit" @@ -846,16 +943,16 @@ msgstr "Preferit" msgid "Join Game" msgstr "Ocultar Joc" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nom / Contrasenya" -#: 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" @@ -885,10 +982,6 @@ msgid "Antialiasing:" msgstr "Suavitzat (Antialiasing):" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Esteu segur que voleu reiniciar el seu món d'un sol jugador?" - -#: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Autosave Screen Size" msgstr "Desar automà ticament mesures de la pantalla" @@ -897,10 +990,6 @@ msgstr "Desar automà ticament mesures de la pantalla" msgid "Bilinear Filter" msgstr "Filtre Bilineal" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Mapat de relleu" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Configurar Controls" @@ -914,11 +1003,6 @@ msgid "Fancy Leaves" msgstr "Fulles Boniques" #: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Generate Normal Maps" -msgstr "Generar Mapes Normals" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -927,10 +1011,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Aniso. Filtre" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "No" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Sense Filtre" @@ -958,20 +1038,11 @@ msgstr "Fulles opaques" msgid "Opaque Water" msgstr "Aigua opaca" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Oclusió de paral·laxi" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "PartÃcules" #: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Reset singleplayer world" -msgstr "Reiniciar el mon individual" - -#: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Pantalla:" @@ -984,6 +1055,10 @@ msgid "Shaders" msgstr "Ombres" #: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -1029,22 +1104,6 @@ msgstr "Moviment de les Fulles" msgid "Waving Plants" msgstr "Moviment de Plantes" -#: 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 "Començar Un Jugador" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Temps d'espera de la connexió esgotat." @@ -1217,13 +1276,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1375,34 +1434,6 @@ 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 "" @@ -1807,6 +1838,24 @@ msgstr "X Botó 2" msgid "Zoom" msgstr "Zoom" +#: 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 "Les contrasenyes no coincideixen!" @@ -2072,14 +2121,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = oclusió de la paral.laxi amb informació d'inclinació (més rà pid).\n" -"1 = mapa de relleu (més lent, més precÃs)." - -#: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2199,6 +2240,10 @@ 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" msgstr "LÃmit absolut de cues emergents" @@ -2447,10 +2492,6 @@ msgid "Builtin" msgstr "" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Mapat de relleu" - -#: 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" @@ -2527,16 +2568,6 @@ 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 "Mida del chunk" @@ -2702,6 +2733,10 @@ 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" msgstr "Continuar" @@ -2764,7 +2799,9 @@ msgid "Crosshair alpha" msgstr "Punt de mira Alpha" #: 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 @@ -2772,8 +2809,10 @@ msgid "Crosshair color" msgstr "Color del punt de mira" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Color del punt de mira (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,12 +2917,6 @@ 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 "" @@ -2956,6 +2989,11 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "Tecla dreta" + +#: src/settings_translation_file.cpp +#, fuzzy msgid "Digging particles" msgstr "PartÃcules" @@ -3017,7 +3055,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 @@ -3105,14 +3143,6 @@ 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 "" @@ -3122,18 +3152,6 @@ 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" @@ -3150,12 +3168,6 @@ 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" @@ -3165,7 +3177,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 @@ -3471,10 +3483,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3530,8 +3538,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 "" @@ -4006,6 +4014,10 @@ msgid "Joystick button repetition interval" msgstr "Interval de repetició del click dret" #: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp #, fuzzy msgid "Joystick frustum sensitivity" msgstr "Sensibilitat del ratolÃ" @@ -4095,6 +4107,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla per botar.\n" +"Veure http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4232,6 +4255,17 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla per botar.\n" +"Veure http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4954,11 +4988,6 @@ msgid "Main menu script" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Menú principal" - -#: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" @@ -4972,6 +5001,14 @@ 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 "" @@ -5144,7 +5181,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 @@ -5193,6 +5230,13 @@ msgid "" 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 "" @@ -5423,14 +5467,6 @@ 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 "" @@ -5456,10 +5492,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5485,35 +5517,6 @@ msgid "" 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 "Oclusió de paral·laxi" - -#: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5580,6 +5583,16 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tecla mode cinematogrà fic" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Interval de repetició del click dret" + +#: 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." @@ -5737,10 +5750,6 @@ msgid "Right key" msgstr "Tecla dreta" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Interval de repetició del click dret" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -6015,6 +6024,16 @@ 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 "" @@ -6150,10 +6169,6 @@ 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" @@ -6248,6 +6263,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6306,8 +6325,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 @@ -6332,6 +6351,12 @@ msgid "" 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 "" "The time in seconds it takes between repeated events\n" @@ -6343,9 +6368,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 "" "El temps en segons que es pren entre la repetició de clicks drets quan " "s'està mantenint el botó dret del ratolÃ." @@ -6485,6 +6509,17 @@ msgid "" 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 "" @@ -6692,6 +6727,12 @@ msgid "" 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 "" @@ -6818,6 +6859,24 @@ 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 "" @@ -6829,19 +6888,12 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ msgstr "Activar Cinematogrà fic" - -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Selecciona el fitxer del mod:" - -#~ msgid "Enable VBO" -#~ msgstr "Activar VBO" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Controla l'amplada dels túnels, un valor més petit crea túnels més amples." +#~ "0 = oclusió de la paral.laxi amb informació d'inclinació (més rà pid).\n" +#~ "1 = mapa de relleu (més lent, més precÃs)." #, fuzzy #~ msgid "" @@ -6853,12 +6905,78 @@ msgstr "" #~ "petits n'augmentarà n la brillantor.\n" #~ "Aquesta configuració només afecta al client, el servidor l'ignora." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Esteu segur que voleu reiniciar el seu món d'un sol jugador?" + +#~ msgid "Back" +#~ msgstr "Enrere" + +#~ msgid "Bump Mapping" +#~ msgstr "Mapat de relleu" + +#~ msgid "Bumpmapping" +#~ msgstr "Mapat de relleu" + +#~ msgid "Config mods" +#~ msgstr "Configurar mods" + +#~ msgid "Configure" +#~ msgstr "Configurar" + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Controla l'amplada dels túnels, un valor més petit crea túnels més amples." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Color del punt de mira (R, G, B)." + #, fuzzy #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Descarregant $1, si us plau esperi ..." -#~ msgid "Back" -#~ msgstr "Enrere" +#~ msgid "Enable VBO" +#~ msgstr "Activar VBO" + +#, fuzzy +#~ msgid "Generate Normal Maps" +#~ msgstr "Generar Mapes Normals" + +#~ msgid "Main" +#~ msgstr "Principal" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Menú principal" + +#~ msgid "Name/Password" +#~ msgstr "Nom/Contrasenya" + +#~ msgid "No" +#~ msgstr "No" #~ msgid "Ok" #~ msgstr "D'acord" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusió de paral·laxi" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Oclusió de paral·laxi" + +#, fuzzy +#~ msgid "Reset singleplayer world" +#~ msgstr "Reiniciar el mon individual" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Selecciona el fitxer del mod:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Començar Un Jugador" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Activar Cinematogrà fic" + +#~ msgid "Yes" +#~ msgstr "SÃ" diff --git a/po/cs/minetest.po b/po/cs/minetest.po index f710ac43f..1bb3a4336 100644 --- a/po/cs/minetest.po +++ b/po/cs/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Czech (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 <sfan5@live.de>\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ý <vit.skalicky@email.cz>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/minetest/minetest/" "cs/>\n" "Language: cs\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "ZemÅ™el jsi" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -116,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:" @@ -160,14 +152,56 @@ 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 "" @@ -190,6 +224,16 @@ 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" msgstr "Mody" @@ -203,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" @@ -220,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 @@ -531,6 +595,10 @@ 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ář" @@ -648,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" @@ -701,6 +784,17 @@ msgid "Credits" msgstr "AutoÅ™i" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "Bývalà pÅ™ispÄ›vatelé" @@ -717,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Ã" @@ -741,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 +843,11 @@ 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 +856,11 @@ 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:" @@ -776,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é" @@ -800,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 +938,6 @@ 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" @@ -849,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 +958,6 @@ 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 +966,6 @@ 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" @@ -909,19 +993,11 @@ 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 +1010,11 @@ 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é)" @@ -977,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Ã." @@ -1148,20 +1213,20 @@ msgid "Continue" msgstr "PokraÄovat" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1309,34 +1374,6 @@ 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" @@ -1728,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Ã!" @@ -1999,14 +2055,6 @@ msgstr "" "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ů." @@ -2129,6 +2177,10 @@ 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" msgstr "Maximálnà poÄet emerge front" @@ -2390,10 +2442,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2465,16 +2513,6 @@ 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 "Velikost pÃsma" @@ -2636,6 +2674,10 @@ 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" msgstr "PokraÄovat" @@ -2697,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 @@ -2705,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" @@ -2815,14 +2862,6 @@ 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." msgstr "UrÄuje lesnà oblasti a hustotu stromového porostu." @@ -2906,6 +2945,11 @@ 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Ã" @@ -2970,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 @@ -3075,17 +3120,6 @@ 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." @@ -3095,22 +3129,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3127,14 +3145,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3144,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" @@ -3480,10 +3490,6 @@ 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" @@ -3547,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" @@ -4096,6 +4102,11 @@ 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" @@ -4197,6 +4208,17 @@ msgstr "" "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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4308,6 +4330,17 @@ 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 "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5009,11 +5042,6 @@ 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." msgstr "" @@ -5027,6 +5055,14 @@ 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 "" @@ -5226,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 @@ -5275,6 +5311,13 @@ msgid "" 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 "" @@ -5506,14 +5549,6 @@ 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 "" @@ -5539,10 +5574,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5568,35 +5599,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5654,15 +5656,24 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5820,10 +5831,6 @@ 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" msgstr "Hloubka Å™eky" @@ -6117,6 +6124,16 @@ 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Ã" @@ -6250,10 +6267,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6348,6 +6361,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6406,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 @@ -6433,15 +6450,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6580,6 +6602,17 @@ msgid "" 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 "" @@ -6791,6 +6824,12 @@ msgid "" 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 "" @@ -6915,6 +6954,24 @@ 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 "" @@ -6926,43 +6983,53 @@ msgstr "cURL limit paralelnÃch stahovánÃ" msgid "cURL timeout" msgstr "cURL timeout" -#~ msgid "Toggle Cinematic" -#~ msgstr "Plynulá kamera" +#~ 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Å¡Ã)." -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Vybrat soubor s modem:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Upravà gamma kódovánà svÄ›telných tabulek. Vyššà ÄÃsla znamenajà svÄ›tlejšà " +#~ "hodnoty.\n" +#~ "Toto nastavenà ovlivňuje pouze klienta a serverem nenà použito." -#~ msgid "Waving Water" -#~ msgstr "VlnÄ›nà vody" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Jste si jisti, že chcete resetovat mÃstnà svÄ›t?" -#~ msgid "Waving water" -#~ msgstr "VlnÄ›nà vody" +#~ msgid "Back" +#~ msgstr "ZpÄ›t" -#, fuzzy -#~ msgid "Lava depth" -#~ msgstr "Hloubka velké jeskynÄ›" +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" -#~ msgid "IPv6 support." -#~ msgstr "" -#~ "Nastavuje reálnou délku dne.\n" -#~ "NapÅ™.: 72 = 20 minut, 360 = 4 minuty, 1 = 24 hodin, 0 = Äas zůstává stále " -#~ "stejný." +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapovánÃ" -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Config mods" +#~ msgstr "Nastavenà modů" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Neprůhlednost stÃnu pÃsma (od 0 do 255)." +#~ msgid "Configure" +#~ msgstr "Nastavit" -#~ msgid "Floatland base height noise" -#~ msgstr "Å um základnà výšky létajÃcÃch ostrovů" +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Stanovuje hustotu horského terénu na létajÃcÃch ostrovech.\n" +#~ "Jedná se o posun pÅ™idaný k hodnotÄ› Å¡umu 'np_mountain'." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Zapne filmový tone mapping" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "Ovládá Å¡ÃÅ™ku tunelů, menšà hodnota vytvářà širšà tunely." -#~ msgid "Enable VBO" -#~ msgstr "Zapnout VBO" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Barva zaměřovaÄe (R,G,B)." #~ msgid "" #~ "Defines areas of floatland smooth terrain.\n" @@ -6971,31 +7038,149 @@ 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 "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "Ovládá Å¡ÃÅ™ku tunelů, menšà hodnota vytvářà širšà tunely." +#~ 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" -#, fuzzy #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Stanovuje hustotu horského terénu na létajÃcÃch ostrovech.\n" -#~ "Jedná se o posun pÅ™idaný k hodnotÄ› Å¡umu 'np_mountain'." +#~ "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 "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Upravà gamma kódovánà svÄ›telných tabulek. Vyššà ÄÃsla znamenajà svÄ›tlejšà " -#~ "hodnoty.\n" -#~ "Toto nastavenà ovlivňuje pouze klienta a serverem nenà použito." +#~ "Zapne generovánà normálových map za bÄ›hu (efekt protlaÄenÃ).\n" +#~ "Nastavenà vyžaduje zapnutý bump mapping." -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Stahuji a instaluji $1, prosÃm Äekejte..." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Zapne parallax occlusion mapping.\n" +#~ "Nastavenà vyžaduje zapnuté shadery." -#~ msgid "Back" -#~ msgstr "ZpÄ›t" +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentálnà nastavenÃ, může zapÅ™ÃÄinit viditelné mezery mezi bloky,\n" +#~ "je-li nastaveno na vyššà ÄÃslo než 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS v menu pauzy" + +#~ msgid "Floatland base height noise" +#~ msgstr "Å um základnà výšky létajÃcÃch ostrovů" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Neprůhlednost stÃnu pÃsma (od 0 do 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Generovat Normálnà Mapy" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generovat normálové mapy" + +#~ msgid "IPv6 support." +#~ msgstr "" +#~ "Nastavuje reálnou délku dne.\n" +#~ "NapÅ™.: 72 = 20 minut, 360 = 4 minuty, 1 = 24 hodin, 0 = Äas zůstává stále " +#~ "stejný." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Hloubka velké jeskynÄ›" + +#~ msgid "Main" +#~ msgstr "Hlavnà nabÃdka" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Skript hlavnà nabÃdky" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa v režimu radar, PÅ™iblÞenà x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa v režimu radar, PÅ™iblÞenà x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa v režimu povrch, PÅ™iblÞenà x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa v režimu povrch, PÅ™iblÞenà x4" + +#~ msgid "Name/Password" +#~ msgstr "Jméno/Heslo" + +#~ msgid "No" +#~ msgstr "Ne" #~ msgid "Ok" #~ msgstr "OK" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Náklon parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "PoÄet iteracà parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Režim parallax occlusion" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Å kála parallax occlusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reset mÃstnÃho svÄ›ta" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Vybrat soubor s modem:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Start mÃstnà hry" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "SÃla vygenerovaných normálových map." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Plynulá kamera" + +#~ msgid "Waving Water" +#~ msgstr "VlnÄ›nà vody" + +#~ msgid "Waving water" +#~ msgstr "VlnÄ›nà vody" + +#~ msgid "Yes" +#~ msgstr "Ano" diff --git a/po/da/minetest.po b/po/da/minetest.po index 931e3dbbf..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-06-13 23:17+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 <sfan5@live.de>\n" "Language-Team: Danish <https://hosted.weblate.org/projects/minetest/minetest/" @@ -47,10 +47,6 @@ msgstr "Forbind igen" msgid "The server has requested a reconnect:" msgstr "Serveren har anmodet om at forbinde igen:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Indlæser..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokol versionerne matchede ikke. " @@ -64,12 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. " msgstr "Serveren understøtter protokol versioner mellem $1 og $2. " #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Prøv at slÃ¥ den offentlige serverliste fra og til, og tjek din internet " -"forbindelse." - -#: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Vi understøtter kun protokol version $1." @@ -77,7 +67,8 @@ msgstr "Vi understøtter kun protokol version $1." msgid "We support protocol versions between version $1 and $2." msgstr "Vi understøtter protokol versioner mellem $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 @@ -87,7 +78,8 @@ msgstr "Vi understøtter protokol versioner mellem $1 og $2." msgid "Cancel" msgstr "Anuller" -#: 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 "Afhængigheder:" @@ -165,14 +157,55 @@ msgid "enabled" msgstr "aktiveret" #: 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 "Indlæser..." + +#: 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 brug" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Tilbage til hovedmenuen" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Vær vært for spil" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -195,6 +228,16 @@ 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 afhængigheder:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Mods" @@ -208,9 +251,25 @@ msgid "No results" msgstr "Der er ingen resultater at vise" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Søg" +#, fuzzy +msgid "No updates" +msgstr "Opdater" + +#: 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" @@ -225,7 +284,11 @@ msgid "Update" msgstr "Opdater" #: 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 @@ -540,6 +603,10 @@ msgid "Scale" msgstr "Skala" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Søg" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Vælg mappe" @@ -657,6 +724,20 @@ msgstr "Kan ikke installere $1 som et mod" msgid "Unable to install a modpack as a $1" msgstr "Kan ikke installere $1 som en samling af mods" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Indlæser..." + +#: 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 "" +"Prøv at slÃ¥ den offentlige serverliste fra og til, og tjek din internet " +"forbindelse." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Gennemse online indhold" @@ -710,6 +791,17 @@ msgid "Credits" msgstr "Skabt af" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Vælg 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 "Tidligere bidragere" @@ -726,14 +818,10 @@ msgid "Bind Address" msgstr "Bind adresse" #: 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 tilstand" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Aktivér skade" @@ -750,8 +838,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Navn/kodeord" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -762,6 +850,11 @@ msgid "No world created or selected!" msgstr "Ingen verden oprettet eller valgt!" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Password" +msgstr "Nyt kodeord" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Start spil" @@ -770,6 +863,11 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Vælg verden:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Vælg verden:" @@ -786,23 +884,23 @@ msgstr "Vær vært for spil" 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 "Forbind" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreativ tilstand" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Skade aktiveret" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Slet favorit" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favorit" @@ -811,16 +909,16 @@ msgstr "Favorit" msgid "Join Game" msgstr "Vær vært for spil" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Navn/adgangskode" -#: 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 "Spiller mod spiller aktiveret" @@ -850,10 +948,6 @@ msgid "Antialiasing:" msgstr "Udjævning:" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Er du sikker pÃ¥, at du vil nulstille din enkelt spiller-verden?" - -#: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Autosave Screen Size" msgstr "Autogem skærmstørrelse" @@ -862,11 +956,6 @@ msgstr "Autogem skærmstørrelse" msgid "Bilinear Filter" msgstr "Bi-lineær filtréring" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Bump Mapping" -msgstr "Bump Mapping" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Skift tastatur-bindinger" @@ -881,11 +970,6 @@ msgstr "Smukke blade" #: builtin/mainmenu/tab_settings.lua #, fuzzy -msgid "Generate Normal Maps" -msgstr "Opret normalkort" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Mipmap" msgstr "Mipmap" @@ -894,10 +978,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Aniso-filter" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nej" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Intet filter" @@ -925,19 +1005,11 @@ msgstr "Uuigennemsigtige blade" msgid "Opaque Water" msgstr "Uigennemsigtigt vand" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax-okklusion" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partikler" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Nulstil spillerverden" - -#: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Skærm:" @@ -950,6 +1022,11 @@ msgid "Shaders" msgstr "Dybdeskabere" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Svævelandsniveau" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -995,22 +1072,6 @@ msgstr "Bølgende blade" 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 "Konfigurér mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hovedmenu" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Enlig spiller" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Forbindelses fejl (tidsfristen udløb)." @@ -1172,20 +1233,20 @@ msgid "Continue" msgstr "Fortsæt" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1341,35 +1402,6 @@ msgid "Minimap currently disabled by game or mod" msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "Minimap hidden" -msgstr "Minikorttast" - -#: 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 "" @@ -1766,6 +1798,25 @@ msgstr "X knap 2" msgid "Zoom" msgstr "Zoom" +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap hidden" +msgstr "Minikorttast" + +#: 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 "Kodeordene er ikke ens!" @@ -2028,14 +2079,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax-okklusion med kurveinformation (hurtigere).\n" -"1 = relief-oversættelse (langsommere, mere præcis)." - -#: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2158,6 +2201,10 @@ msgid "ABM interval" msgstr "Interval for kortlagring" #: 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 "Absolut begrænsning af fremkomstkøer" @@ -2408,11 +2455,6 @@ msgid "Builtin" msgstr "Indbygget" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Bumpmapping" -msgstr "Bumpmapping" - -#: 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" @@ -2490,16 +2532,6 @@ 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 "Skriftstørrelse" @@ -2664,6 +2696,10 @@ 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" msgstr "Fortsæt" @@ -2725,7 +2761,10 @@ msgid "Crosshair alpha" msgstr "Crosshair 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 "Crosshair alpha (uigennemsigtighed, mellem 0 og 255)." #: src/settings_translation_file.cpp @@ -2733,8 +2772,10 @@ msgid "Crosshair color" msgstr "Crosshair-farve" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Crosshair-farve (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2840,14 +2881,6 @@ 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 "" -"Definerer sampling-trin for tekstur.\n" -"En højere værdi resulterer i en mere rullende normale kort." - -#: src/settings_translation_file.cpp #, fuzzy msgid "Defines the base ground level." msgstr "Definerer træomrÃ¥der og trætæthed." @@ -2925,6 +2958,11 @@ msgid "Desynchronize block animation" msgstr "Afsynkroniser blokanimation" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Højretast" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Gravepartikler" @@ -2988,7 +3026,8 @@ msgid "Enable console window" msgstr "Aktivér konsolvindue" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Aktivér kreativ tilstand for nyoprettede kort." #: src/settings_translation_file.cpp @@ -3093,18 +3132,6 @@ msgid "Enables animation of inventory items." msgstr "Aktiverer animation af lagerelementer." #: 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 "" -"Aktiverer bumpmapping for teksturer. Normalmaps skal være angivet af " -"teksturpakken\n" -"eller skal være automatisk oprettet.\n" -"Kræver at dybdeskabere er aktiveret." - -#: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Aktiverer mellemlagring af facedir-roterede mesher." @@ -3114,22 +3141,6 @@ msgstr "Aktiverer minikort." #: src/settings_translation_file.cpp msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Aktiverer løbende normalmap-oprettelse (Emboss-effekt).\n" -"Kræver bumpmapping for at være aktiveret." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Aktiverer parallax-okklusionoversættelse.\n" -"Kræver at dybdeskabere er aktiveret." - -#: 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" @@ -3146,14 +3157,6 @@ msgstr "Entitetmetoder" #: src/settings_translation_file.cpp msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Eksperimentelt tilvalg, kan medføre synlige mellemrum mellem blokke\n" -"nÃ¥r angivet til et højere nummer end 0." - -#: 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" @@ -3163,8 +3166,8 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS i pausemenu" +msgid "FPS when unfocused or paused" +msgstr "" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3504,10 +3507,6 @@ msgid "GUI scaling filter txr2img" msgstr "GUI-skaleringsfilter txr2img" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Opret normalkort" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Globale tilbagekald" @@ -3573,8 +3572,8 @@ msgstr "Tast for 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 "" "HÃ¥ndtering for forældede lua api-kald:\n" @@ -4094,6 +4093,10 @@ msgid "Joystick button repetition interval" msgstr "Joystick-knaps gentagelsesinterval" #: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Joystick frustum-sensitivitet" @@ -4197,6 +4200,17 @@ msgstr "" "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 hop.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4344,6 +4358,17 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for hop.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5132,11 +5157,6 @@ msgid "Main menu script" msgstr "Hovedmenuskript" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Hovedmenuskript" - -#: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" @@ -5153,6 +5173,14 @@ 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 "Kortmappe" @@ -5353,7 +5381,7 @@ msgid "Maximum FPS" msgstr "Maksimal 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 @@ -5402,6 +5430,13 @@ msgid "" 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 "" @@ -5635,14 +5670,6 @@ msgid "Noises" msgstr "Lyde" #: 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 "" @@ -5668,10 +5695,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5697,35 +5720,6 @@ msgid "" 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-okklusion" - -#: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5793,6 +5787,16 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Flyvetast" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Joystick-knaps gentagelsesinterval" + +#: 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." @@ -5951,10 +5955,6 @@ msgid "Right key" msgstr "Højretast" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" msgstr "Floddybde" @@ -6253,6 +6253,16 @@ 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 "Nedlukningsbesked" @@ -6386,10 +6396,6 @@ 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" @@ -6487,6 +6493,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6546,8 +6556,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 @@ -6573,15 +6583,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6720,6 +6735,17 @@ msgid "" 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 "" @@ -6932,6 +6958,12 @@ msgid "" 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 "" @@ -7056,6 +7088,24 @@ 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 "" @@ -7067,59 +7117,164 @@ msgstr "" msgid "cURL timeout" msgstr "cURL-tidsudløb" -#~ msgid "Toggle Cinematic" -#~ msgstr "Aktiver filmisk" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax-okklusion med kurveinformation (hurtigere).\n" +#~ "1 = relief-oversættelse (langsommere, mere præcis)." -#~ msgid "Select Package File:" -#~ msgstr "Vælg pakke fil:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Justér gammakodningen for lystabellerne. Et større tal betyder lysere.\n" +#~ "Denne indstilling gælder kun for klienten og ignoreres af serveren." -#, fuzzy -#~ msgid "Shadow limit" -#~ msgstr "Skygge grænse" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Er du sikker pÃ¥, at du vil nulstille din enkelt spiller-verden?" + +#~ msgid "Back" +#~ msgstr "Tilbage" #, fuzzy -#~ msgid "Lava depth" -#~ msgstr "Dybde for stor hule" +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping" -#~ msgid "IPv6 support." -#~ msgstr "Understøttelse af IPv6." +#, fuzzy +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Config mods" +#~ msgstr "Konfigurér mods" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Alfa for skrifttypeskygge (uigennemsigtighed, mellem 0 og 255)." +#~ msgid "Configure" +#~ msgstr "Konfigurér" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Aktiverer filmisk toneoversættelse" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Styrer bredden af tunneller. En lavere værdi giver bredere tunneller." -#~ msgid "Enable VBO" -#~ msgstr "Aktiver VBO" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Crosshair-farve (R,G,B)." #, fuzzy #~ msgid "Darkness sharpness" #~ msgstr "Søstejlhed" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." #~ msgstr "" -#~ "Styrer bredden af tunneller. En lavere værdi giver bredere tunneller." +#~ "Definerer sampling-trin for tekstur.\n" +#~ "En højere værdi resulterer i en mere rullende normale kort." + +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Henter og installerer $1, vent venligst..." + +#~ msgid "Enable VBO" +#~ msgstr "Aktiver VBO" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "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 "" -#~ "Justér gammakodningen for lystabellerne. Et større tal betyder lysere.\n" -#~ "Denne indstilling gælder kun for klienten og ignoreres af serveren." +#~ "Aktiverer bumpmapping for teksturer. Normalmaps skal være angivet af " +#~ "teksturpakken\n" +#~ "eller skal være automatisk oprettet.\n" +#~ "Kræver at dybdeskabere er aktiveret." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Aktiverer filmisk toneoversættelse" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Aktiverer løbende normalmap-oprettelse (Emboss-effekt).\n" +#~ "Kræver bumpmapping for at være aktiveret." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktiverer parallax-okklusionoversættelse.\n" +#~ "Kræver at dybdeskabere er aktiveret." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Eksperimentelt tilvalg, kan medføre synlige mellemrum mellem blokke\n" +#~ "nÃ¥r angivet til et højere nummer end 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS i pausemenu" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Alfa for skrifttypeskygge (uigennemsigtighed, mellem 0 og 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#, fuzzy +#~ msgid "Generate Normal Maps" +#~ msgstr "Opret normalkort" + +#~ msgid "Generate normalmaps" +#~ msgstr "Opret normalkort" + +#~ msgid "IPv6 support." +#~ msgstr "Understøttelse af IPv6." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Dybde for stor hule" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Begrænsning af fremkomsten af forespørgsler pÃ¥ disk" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Henter og installerer $1, vent venligst..." +#~ msgid "Main" +#~ msgstr "Hovedmenu" -#~ msgid "Back" -#~ msgstr "Tilbage" +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Hovedmenuskript" + +#~ msgid "Name/Password" +#~ msgstr "Navn/kodeord" + +#~ msgid "No" +#~ msgstr "Nej" #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax-okklusion" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax-okklusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Nulstil spillerverden" + +#~ msgid "Select Package File:" +#~ msgstr "Vælg pakke fil:" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "Skygge grænse" + +#~ msgid "Start Singleplayer" +#~ msgstr "Enlig spiller" + +#~ msgid "Toggle Cinematic" +#~ msgstr "Aktiver filmisk" + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/de/minetest.po b/po/de/minetest.po index be63088d2..484c4707f 100644 --- a/po/de/minetest.po +++ b/po/de/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: German (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+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: Wuzzy <almikes@aol.com>\n" "Language-Team: German <https://hosted.weblate.org/projects/minetest/minetest/" "de/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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." @@ -76,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 @@ -86,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:" @@ -111,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" @@ -132,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." @@ -153,23 +145,64 @@ 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 "ContentDB ist nicht verfügbar, wenn Minetest ohne cURL kompiliert wurde" +msgstr "" +"ContentDB ist nicht verfügbar, wenn Minetest ohne cURL kompiliert wurde" #: builtin/mainmenu/dlg_contentstore.lua msgid "Downloading..." @@ -189,22 +222,45 @@ 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" 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" @@ -219,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" @@ -313,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 @@ -334,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" @@ -346,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" @@ -358,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" @@ -374,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" @@ -424,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 @@ -434,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\"" @@ -442,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" @@ -482,7 +542,7 @@ msgstr "Deaktiviert" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Edit" -msgstr "Ändern" +msgstr "Bearbeiten" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Enabled" @@ -521,6 +581,10 @@ 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" @@ -530,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." @@ -601,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 @@ -624,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" @@ -691,6 +770,18 @@ msgid "Credits" msgstr "Mitwirkende" #: builtin/mainmenu/tab_credits.lua +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" msgstr "Frühere Mitwirkende" @@ -700,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" @@ -728,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" @@ -743,6 +830,10 @@ 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" @@ -751,6 +842,10 @@ 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:" @@ -766,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" @@ -790,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" @@ -828,24 +923,16 @@ 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" @@ -856,10 +943,6 @@ 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" @@ -868,20 +951,16 @@ 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" @@ -899,19 +978,11 @@ 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:" @@ -924,6 +995,10 @@ 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)" @@ -941,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)" @@ -967,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." @@ -1017,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" @@ -1029,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!" @@ -1037,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: " @@ -1061,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: " @@ -1144,13 +1203,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1160,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" @@ -1187,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 "" @@ -1227,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" @@ -1279,7 +1338,7 @@ msgstr "Gehosteter Server" #: src/client/game.cpp msgid "Item definitions..." -msgstr "Gegenstands-Definitionen …" +msgstr "Gegenstandsdefinitionen …" #: src/client/game.cpp msgid "KiB/s" @@ -1298,34 +1357,6 @@ 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" @@ -1367,7 +1398,7 @@ msgstr "Entfernter Server" #: src/client/game.cpp msgid "Resolving address..." -msgstr "Löse Adresse auf …" +msgstr "Adressauflösung …" #: src/client/game.cpp msgid "Shutting down..." @@ -1383,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" @@ -1395,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 @@ -1419,7 +1450,7 @@ msgstr "Lautstärke auf %d%% gesetzt" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "Drahtmodell angezeigt" +msgstr "Drahtmodell aktiv" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1717,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!" @@ -1996,14 +2045,6 @@ msgstr "" "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." @@ -2043,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." @@ -2065,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" @@ -2143,6 +2184,10 @@ 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" @@ -2405,10 +2450,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2487,22 +2528,6 @@ msgstr "" "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" @@ -2670,6 +2695,10 @@ 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" @@ -2736,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" @@ -2853,14 +2890,6 @@ 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." @@ -2941,6 +2970,10 @@ 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" @@ -3005,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 @@ -3113,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." @@ -3123,19 +3157,6 @@ 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 "" "Aktiviert das Zwischenspeichern von 3-D-Modellen, die mittels facedir " @@ -3147,22 +3168,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3183,14 +3188,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3207,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" @@ -3289,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 "" @@ -3547,10 +3546,6 @@ 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" @@ -3612,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 "" @@ -4164,6 +4159,10 @@ 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" @@ -4267,6 +4266,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4409,6 +4418,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5161,10 +5180,6 @@ 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." msgstr "" @@ -5182,6 +5197,14 @@ 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" @@ -5366,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" @@ -5426,6 +5451,16 @@ msgstr "" "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." @@ -5691,14 +5726,6 @@ 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" @@ -5739,10 +5766,6 @@ msgstr "" "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" @@ -5774,36 +5797,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5895,6 +5888,14 @@ 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" "This requires the \"fly\" privilege on the server." @@ -6082,10 +6083,6 @@ 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" @@ -6127,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." @@ -6385,6 +6382,19 @@ 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" @@ -6540,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 "" @@ -6670,6 +6676,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6748,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 "" @@ -6795,6 +6805,14 @@ 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 "" +"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" "when holding down a joystick button combination." msgstr "" @@ -6803,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" @@ -6977,6 +6993,26 @@ msgstr "" "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." @@ -7035,8 +7071,8 @@ msgid "" "Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" "Variiert die Rauheit des Geländes.\n" -"Definiert den „persistence“-Wert für „terrain_base“- und " -"„terrain_alt“-Rauschen." +"Definiert den „persistence“-Wert für „terrain_base“- und „terrain_alt“-" +"Rauschen." #: src/settings_translation_file.cpp msgid "Varies steepness of cliffs." @@ -7220,6 +7256,12 @@ msgstr "" "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 "" "Ob Blocktexturanimationen pro Kartenblock desynchronisiert sein sollten." @@ -7378,6 +7420,36 @@ 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" @@ -7389,85 +7461,95 @@ msgstr "cURL-Parallel-Begrenzung" msgid "cURL timeout" msgstr "cURL-Zeitüberschreitung" -#~ msgid "Toggle Cinematic" -#~ msgstr "Filmmodus umschalten" - -#~ msgid "Select Package File:" -#~ msgstr "Paket-Datei auswählen:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y-Wert der Obergrenze von Lava in großen Höhlen." - -#~ msgid "Waving Water" -#~ msgstr "Wasserwellen" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Ob Verliese manchmal aus dem Gelände herausragen." - -#~ msgid "Projecting dungeons" -#~ msgstr "Herausragende Verliese" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-Höhe, bis zu der sich die Schatten der Schwebeländer ausbreiten." - -#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Y-Höhe vom Mittelpunkt der Schwebeländer sowie\n" -#~ "des Wasserspiegels von Seen." - -#~ msgid "Waving water" -#~ msgstr "Wasserwellen" +#~ "0 = Parallax-Mapping mit Stufeninformation (schneller).\n" +#~ "1 = Relief-Mapping (langsamer, genauer)." -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "Variierung der Hügelhöhe und Seetiefe in den ruhig verlaufenden\n" -#~ "Regionen der Schwebeländer." +#~ "Ändert die Gammakodierung der Lichttabellen. Kleinere Werte sind heller.\n" +#~ "Diese Einstellung ist rein clientseitig und wird vom Server ignoriert." -#~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." #~ msgstr "" -#~ "Typische Maximalhöhe, über und unter dem Mittelpunkt von Gebirgen in den\n" -#~ "Schwebeländern." +#~ "Verändert, wie Schwebeländer des Bergtyps sich über und unter dem " +#~ "Mittelpunkt zuspitzen." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Diese Schrift wird von bestimmten Sprachen benutzt." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Sind Sie sicher, dass Sie die Einzelspielerwelt löschen wollen?" -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Stärke der Lichtkurven-Mittenverstärkung." +#~ msgid "Back" +#~ msgstr "Rücktaste" -#~ msgid "Shadow limit" -#~ msgstr "Schattenbegrenzung" +#~ msgid "Bump Mapping" +#~ msgstr "Bumpmapping" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Pfad zu einer TrueType- oder Bitmap-Schrift." +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" -#~ msgid "Lightness sharpness" -#~ msgstr "Helligkeitsschärfe" +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Mitte der Lichtkurven-Mittenverstärkung." -#~ msgid "Lava depth" -#~ msgstr "Lavatiefe" +#~ 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 "IPv6 support." -#~ msgstr "IPv6-Unterstützung." +#~ msgid "Config mods" +#~ msgstr "Mods konfigurieren" -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Configure" +#~ msgstr "Konfigurieren" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." #~ msgstr "" -#~ "Undurchsichtigkeit des Schattens der Schrift (Wert zwischen 0 und 255)." +#~ "Legt die Dichte von Gebirgen in den Schwebeländern fest.\n" +#~ "Dies ist ein Versatz, der zum Rauschwert „mgv7_np_mountain“ addiert wird." -#~ msgid "Floatland mountain height" -#~ msgstr "Schwebelandberghöhe" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Legt die Breite von Tunneln fest; ein kleinerer Wert erzeugt breitere " +#~ "Tunnel." -#~ msgid "Floatland base height noise" -#~ msgstr "Schwebeland-Basishöhenrauschen" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Fadenkreuzfarbe (R,G,B)." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Aktiviert filmisches Tone-Mapping" +#~ msgid "Darkness sharpness" +#~ msgstr "Dunkelheits-Steilheit" -#~ msgid "Enable VBO" -#~ msgstr "VBO aktivieren" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Definiert Gebiete von ruhig verlaufendem\n" +#~ "Gelände in den Schwebeländern. Weiche\n" +#~ "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 " @@ -7478,60 +7560,213 @@ 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 "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "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 "" -#~ "Definiert Gebiete von ruhig verlaufendem\n" -#~ "Gelände in den Schwebeländern. Weiche\n" -#~ "Schwebeländer treten auf, wenn der\n" -#~ "Rauschwert > 0 ist." +#~ "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 "Darkness sharpness" -#~ msgstr "Dunkelheits-Steilheit" +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Aktiviert filmisches Tone-Mapping" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Legt die Breite von Tunneln fest; ein kleinerer Wert erzeugt breitere " -#~ "Tunnel." +#~ "Aktiviert die spontane Normalmap-Erzeugung (Prägungseffekt).\n" +#~ "Für diese Einstellung muss außerdem Bump-Mapping aktiviert sein." #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Legt die Dichte von Gebirgen in den Schwebeländern fest.\n" -#~ "Dies ist ein Versatz, der zum Rauschwert „mgv7_np_mountain“ addiert wird." +#~ "Aktiviert Parralax-Occlusion-Mapping.\n" +#~ "Hierfür müssen Shader aktiviert sein." -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Mitte der Lichtkurven-Mittenverstärkung." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Verändert, wie Schwebeländer des Bergtyps sich über und unter dem " -#~ "Mittelpunkt zuspitzen." +#~ "Experimentelle Einstellung, könnte sichtbare Leerräume zwischen\n" +#~ "Blöcken verursachen, wenn auf einen Wert größer 0 gesetzt." -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ msgid "FPS in pause menu" +#~ msgstr "Bildwiederholrate im Pausenmenü" + +#~ msgid "Floatland base height noise" +#~ msgstr "Schwebeland-Basishöhenrauschen" + +#~ msgid "Floatland mountain height" +#~ msgstr "Schwebelandberghöhe" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." #~ msgstr "" -#~ "Ändert die Gammakodierung der Lichttabellen. Kleinere Werte sind heller.\n" -#~ "Diese Einstellung ist rein clientseitig und wird vom Server ignoriert." +#~ "Undurchsichtigkeit des Schattens der Schrift (Wert zwischen 0 und 255)." -#~ msgid "Path to save screenshots at." -#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden." +#~ msgid "Gamma" +#~ msgstr "Gamma" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Parallax-Occlusion-Stärke" +#~ msgid "Generate Normal Maps" +#~ msgstr "Normalmaps generieren" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normalmaps generieren" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6-Unterstützung." + +#~ msgid "Lava depth" +#~ msgstr "Lavatiefe" + +#~ msgid "Lightness sharpness" +#~ msgstr "Helligkeitsschärfe" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Erzeugungswarteschlangengrenze auf Festspeicher" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 wird heruntergeladen und installiert, bitte warten …" +#~ msgid "Main" +#~ msgstr "Hauptmenü" -#~ msgid "Back" -#~ msgstr "Rücktaste" +#~ msgid "Main menu style" +#~ msgstr "Hauptmenü-Stil" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×4" + +#~ msgid "Name/Password" +#~ msgstr "Name/Passwort" + +#~ msgid "No" +#~ msgstr "Nein" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normalmaps-Sampling" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmap-Stärke" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Anzahl der Parallax-Occlusion-Iterationen." #~ msgid "Ok" #~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Startwert des Parallax-Occlusion-Effektes, üblicherweise Skalierung " +#~ "geteilt durch 2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Gesamtskalierung des Parallax-Occlusion-Effektes." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax-Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax-Occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Parallax-Occlusion-Startwert" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Parallax-Occlusion-Iterationen" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax-Occlusion-Modus" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax-Occlusion-Skalierung" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Parallax-Occlusion-Stärke" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Pfad zu einer TrueType- oder Bitmap-Schrift." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden." + +#~ msgid "Projecting dungeons" +#~ msgstr "Herausragende Verliese" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Einzelspielerwelt zurücksetzen" + +#~ msgid "Select Package File:" +#~ msgstr "Paket-Datei auswählen:" + +#~ msgid "Shadow limit" +#~ msgstr "Schattenbegrenzung" + +#~ msgid "Start Singleplayer" +#~ msgstr "Einzelspieler starten" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Stärke der generierten Normalmaps." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Stärke der Lichtkurven-Mittenverstärkung." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Diese Schrift wird von bestimmten Sprachen benutzt." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Filmmodus umschalten" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Typische Maximalhöhe, über und unter dem Mittelpunkt von Gebirgen in den\n" +#~ "Schwebeländern." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variierung der Hügelhöhe und Seetiefe in den ruhig verlaufenden\n" +#~ "Regionen der Schwebeländer." + +#~ msgid "View" +#~ msgstr "Ansehen" + +#~ msgid "Waving Water" +#~ msgstr "Wasserwellen" + +#~ msgid "Waving water" +#~ msgstr "Wasserwellen" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Ob Verliese manchmal aus dem Gelände herausragen." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y-Wert der Obergrenze von Lava in großen Höhlen." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Y-Höhe vom Mittelpunkt der Schwebeländer sowie\n" +#~ "des Wasserspiegels von Seen." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-Höhe, bis zu der sich die Schatten der Schwebeländer ausbreiten." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/dv/minetest.po b/po/dv/minetest.po index c5d325108..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-06-13 23:17+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 <mk939@ymail.com>\n" "Language-Team: Dhivehi <https://hosted.weblate.org/projects/minetest/" @@ -48,10 +48,6 @@ msgstr "aa gulhumeh" 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 "Þ•Þ°ÞƒÞ®Þ“Þ®Þ†Þ¯ÞÞ° ÞˆÞ§ÞÞ¦Þ‚Þ° ÞŠÞªÞÞªÞ‡Þ¬ÞƒÞªÞ‰Þ¬Þ‡Þ°. " @@ -65,10 +61,6 @@ 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$." @@ -76,7 +68,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 @@ -86,7 +79,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 "Þ„Þ¦ÞƒÞ¯ÞÞ§ÞˆÞ§(Þ‘Þ¨Þ•Þ¬Þ‚Þ°Þ‘Þ¬Þ‚Þ°ÞÞ©Þ’Þ°):" @@ -162,14 +156,54 @@ 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 +#, fuzzy +msgid "Base Game:" +msgstr "ÞŽÞÞ‰Þ° Þ€Þ®ÞÞ°Þ“Þ°Þ†ÞªÞƒÞ" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -192,6 +226,16 @@ msgid "Install" msgstr "Þ‡Þ¦Þ…Þ§" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Þ‡Þ¦Þ…Þ§" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "ÞÞ§Þ’Þ¨Þ‰ÞªÞ‚Þ«Þ‚Þ° Þ‘Þ¨Þ•Þ¬Þ‚Þ°Þ‘Þ¬Þ‚Þ°Þީތައް:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "މޮޑްތައް" @@ -205,9 +249,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" @@ -222,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 @@ -521,6 +584,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Þ€Þ¯Þ‹Þ§" + +#: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" msgstr "Þ‰Þ®Þ‘Þ°ÞŽÞ¬ ÞŠÞ¦Þ‡Þ¨ÞÞ° އިހްތިޔާރުކުރÞ:" @@ -643,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 "" @@ -700,6 +779,17 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Þ‰Þ®Þ‘Þ°ÞŽÞ¬ ÞŠÞ¦Þ‡Þ¨ÞÞ° އިހްތިޔާރުކުރÞ:" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -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" @@ -752,6 +838,11 @@ 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 "ÞŽÞÞ‰Þ° Þ†ÞªÞ…Þ" @@ -760,6 +851,11 @@ 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 "Þ•Þ©.ÞˆÞ©.Þ•Þ© Þ–Þ¦Þ‡Þ°ÞÞ§" @@ -839,10 +935,6 @@ 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 "" @@ -867,10 +955,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -879,10 +963,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Þ‚Þ«Þ‚Þ°" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -910,19 +990,11 @@ 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 "ÞÞ°Þ†Þ°ÞƒÞ©Þ‚Þ°:" @@ -935,6 +1007,10 @@ 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,13 +1216,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1300,34 +1360,6 @@ 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 "" @@ -1720,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 "" @@ -1965,12 +2015,6 @@ msgid "" 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 "" @@ -2077,6 +2121,10 @@ 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 "" @@ -2314,10 +2362,6 @@ 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" @@ -2388,16 +2432,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2549,6 +2583,10 @@ 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" msgstr "ÞÞ®Þ“Þ¯Þƒ Þ†ÞªÞÞ¯Þ’Þ°Þ†Þ®ÞÞ°ÞÞ§" @@ -2606,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 @@ -2614,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 @@ -2716,12 +2758,6 @@ 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 "" @@ -2792,6 +2828,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2852,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 @@ -2940,14 +2980,6 @@ 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 "" @@ -2957,18 +2989,6 @@ 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" @@ -2985,12 +3005,6 @@ 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" @@ -3000,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" @@ -3302,10 +3316,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3359,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 "" @@ -3827,6 +3837,10 @@ 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 "" @@ -3907,6 +3921,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4006,6 +4027,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4562,11 +4590,6 @@ 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." msgstr "" @@ -4580,6 +4603,14 @@ 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 "" @@ -4749,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 @@ -4798,6 +4829,13 @@ msgid "" 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 "" @@ -5030,14 +5068,6 @@ 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 "" @@ -5063,10 +5093,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5092,34 +5118,6 @@ msgid "" 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" @@ -5185,6 +5183,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5340,10 +5346,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5595,6 +5597,16 @@ 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 "" @@ -5724,10 +5736,6 @@ 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" @@ -5821,6 +5829,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5879,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 @@ -5906,15 +5918,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6050,6 +6067,17 @@ msgid "" 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 "" @@ -6252,6 +6280,12 @@ msgid "" 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 "" @@ -6375,6 +6409,24 @@ 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 "" @@ -6386,12 +6438,25 @@ msgstr "" msgid "cURL timeout" msgstr "" -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Þ‰Þ®Þ‘Þ°ÞŽÞ¬ ÞŠÞ¦Þ‡Þ¨ÞÞ° އިހްތިޔާރުކުރÞ:" +#~ 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 1992676a4..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-03-31 20:29+0000\n" -"Last-Translator: THANOS SIOURDAKIS <siourdakisthanos@gmail.com>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/minetest/minetest/" "el/>\n" "Language: el\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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 "Ασυμφωνία Îκδοσης Ï€Ïωτοκόλλου. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -84,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 "ΕξαÏτήσεις:" @@ -158,21 +150,59 @@ 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" @@ -188,6 +218,14 @@ 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" msgstr "" @@ -201,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 @@ -218,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 @@ -513,6 +570,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -627,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 "" @@ -680,6 +755,16 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -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 @@ -732,6 +813,10 @@ msgid "No world created or selected!" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -740,6 +825,10 @@ 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 "" @@ -817,10 +906,6 @@ 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 "" @@ -845,10 +926,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -857,10 +934,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -888,19 +961,11 @@ 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 "" @@ -913,6 +978,10 @@ 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,13 +1184,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1259,34 +1312,6 @@ 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 "" @@ -1678,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 "" @@ -1922,12 +1965,6 @@ msgid "" 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 "" @@ -2034,6 +2071,10 @@ 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 "" @@ -2267,10 +2308,6 @@ 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" @@ -2341,16 +2378,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2502,6 +2529,10 @@ 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 "" @@ -2558,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 @@ -2566,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 @@ -2666,12 +2701,6 @@ 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 "" @@ -2742,6 +2771,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2802,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 @@ -2890,14 +2923,6 @@ 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 "" @@ -2907,18 +2932,6 @@ 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" @@ -2935,12 +2948,6 @@ 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" @@ -2950,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 @@ -3252,10 +3259,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3309,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 "" @@ -3777,6 +3780,10 @@ 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 "" @@ -3857,6 +3864,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3956,6 +3970,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4512,10 +4533,6 @@ 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 "" @@ -4529,6 +4546,14 @@ 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 "" @@ -4692,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 @@ -4741,6 +4766,13 @@ msgid "" 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 "" @@ -4970,14 +5002,6 @@ 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 "" @@ -5003,10 +5027,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5032,34 +5052,6 @@ msgid "" 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" @@ -5125,6 +5117,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5280,10 +5280,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5535,6 +5531,16 @@ 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 "" @@ -5664,10 +5670,6 @@ 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" @@ -5761,6 +5763,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5819,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 @@ -5846,15 +5852,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -5990,6 +6001,17 @@ msgid "" 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 "" @@ -6192,6 +6214,12 @@ msgid "" 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 "" @@ -6314,6 +6342,24 @@ 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 752538f5e..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-06-13 23:17+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 <tirifto@posteo.cz>\n" "Language-Team: Esperanto <https://hosted.weblate.org/projects/minetest/" "minetest/eo/>\n" @@ -46,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. " @@ -63,11 +59,6 @@ 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." @@ -75,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 @@ -85,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:" @@ -159,21 +152,61 @@ 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 +#, fuzzy +msgid "Base Game:" +msgstr "Gastigi ludon" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ne estas disponebla per Minetest kodotradukita sen cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Enlegante…" +msgstr "ElÅutante…" #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -189,6 +222,16 @@ 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" msgstr "Modifaĵoj" @@ -202,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" @@ -219,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" @@ -334,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" @@ -521,6 +585,10 @@ 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" @@ -636,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" @@ -689,6 +771,17 @@ msgid "Credits" msgstr "Kontribuantaro" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "Eksaj kontribuistoj" @@ -705,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" @@ -726,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 +830,11 @@ 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 +843,11 @@ 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:" @@ -764,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" @@ -788,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 +925,6 @@ 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" @@ -837,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 +945,6 @@ 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 +953,6 @@ 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" @@ -897,19 +980,11 @@ 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 +997,11 @@ 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)" @@ -965,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." @@ -1135,20 +1199,20 @@ msgid "Continue" msgstr "DaÅrigi" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1296,34 +1360,6 @@ 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" @@ -1715,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!" @@ -1985,14 +2040,6 @@ msgstr "" "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." @@ -2051,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." @@ -2115,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" @@ -2174,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" @@ -2369,10 +2428,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2450,22 +2505,6 @@ msgstr "" "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" @@ -2474,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" @@ -2632,6 +2670,10 @@ 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" @@ -2696,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 @@ -2704,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" @@ -2768,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 "" @@ -2811,14 +2857,6 @@ 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." @@ -2898,6 +2936,11 @@ 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" @@ -2962,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 @@ -3072,18 +3116,6 @@ 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»." @@ -3093,22 +3125,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3129,14 +3145,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3144,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" @@ -3266,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" @@ -3357,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 "" @@ -3477,10 +3488,6 @@ 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" @@ -3490,6 +3497,10 @@ msgid "" "In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" "and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Ĉieaj atributoj de mondestigo.\n" +"En mondestigo v6, la parametro «decorations» regas ĉiujn ornamojn\n" +"krom arboj kaj Äangala herbo; en ĉiuj ailaj mondestigiloj, ĉi tiu parametro\n" +"regas ĉiujn ornamojn." #: src/settings_translation_file.cpp msgid "" @@ -3536,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" @@ -4035,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" @@ -4063,6 +4075,11 @@ 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" @@ -4165,6 +4182,17 @@ msgstr "" "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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4307,6 +4335,17 @@ msgstr "" "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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -5045,19 +5084,14 @@ 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." msgstr "" @@ -5074,6 +5108,14 @@ 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" @@ -5132,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" @@ -5255,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 @@ -5299,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." @@ -5410,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" @@ -5529,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" @@ -5570,14 +5618,6 @@ 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" @@ -5623,10 +5663,6 @@ msgstr "" "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" @@ -5657,34 +5693,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5704,6 +5712,8 @@ msgid "" "Path to save screenshots at. Can be an absolute or relative path.\n" "The folder will be created if it doesn't already exist." msgstr "" +"Dosierindiko por konservotaj ekrankopioj. Povas esti absoluta\n" +"aÅ relativa. La dosierujo estos kreita, se Äi ne jam ekzistas." #: src/settings_translation_file.cpp msgid "" @@ -5769,6 +5779,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5948,10 +5968,6 @@ 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" @@ -6245,6 +6261,20 @@ 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" @@ -6393,10 +6423,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6505,6 +6531,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6569,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" @@ -6617,6 +6649,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6624,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." @@ -6783,6 +6821,17 @@ msgstr "" "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." @@ -7016,6 +7065,12 @@ msgstr "" "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." @@ -7159,6 +7214,24 @@ 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" @@ -7170,70 +7243,90 @@ msgstr "Samtempa limo de cURL" msgid "cURL timeout" msgstr "cURL tempolimo" -#~ msgid "Toggle Cinematic" -#~ msgstr "Baskuligi glitan vidpunkton" - -#~ msgid "Select Package File:" -#~ msgstr "Elekti pakaĵan dosieron:" +#~ 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)." -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y de supera limo de grandaj kvazaÅ-hazardaj kavernoj." +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "AlÄustigi la gamaan kodadon al la lumtabeloj. Pli altaj nombroj estas pli " +#~ "helaj.\n" +#~ "Ĉi tiu agordo estas klientflanka, kaj serviloj Äin malatentos." -#~ msgid "Waving Water" -#~ msgstr "Ondanta akvo" +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "ÅœanÄas kiel montecaj fluginsuloj maldikiÄas super kaj sub la mezpunkto." -#~ msgid "Projecting dungeons" -#~ msgstr "Planante forgeskelojn" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ĉu vi certas, ke vi volas rekomenci vian mondon por unu ludanto?" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-nivelo kien etendiÄas ombroj de fluginsuloj." +#~ msgid "Back" +#~ msgstr "Reeniri" -#~ msgid "Waving water" -#~ msgstr "Ondanta akvo" +#~ msgid "Bump Mapping" +#~ msgstr "Tubera mapado" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Variaĵo de alteco de montetoj kaj profundeco de lagoj sur glata tereno de " -#~ "fluginsuloj." +#~ msgid "Bumpmapping" +#~ msgstr "Mapado de elstaraĵoj" #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "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 "" -#~ "Ordinara plejalto, super kaj sub la mezpunkto, de fluginsulaj montoj." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Tiu ĉi tiparo uziÄos por iuj lingvoj." - -#~ msgid "Shadow limit" -#~ msgstr "Limo por ombroj" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Dosierindiko al tiparo «TrueType» aÅ bitbildo." +#~ "Åœ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 "Lightness sharpness" -#~ msgstr "Akreco de heleco" +#~ msgid "Config mods" +#~ msgstr "Agordi modifaĵojn" -#~ msgid "Lava depth" -#~ msgstr "Lafo-profundeco" +#~ msgid "Configure" +#~ msgstr "Agordi" -#~ msgid "IPv6 support." -#~ msgstr "Subteno de IPv6." +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Regas densecon de montecaj fluginsuloj.\n" +#~ "Temas pri deÅovo de la brua valoro «np_mountain»." -#~ msgid "Gamma" -#~ msgstr "HelÄustigo" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Regas larÄecon de tuneloj; pli malgranda valoro kreas pri larÄajn " +#~ "tunelojn." -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Maltravidebleco de tipara ombro (inter 0 kaj 255)." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Koloro de celilo (R,V,B)." -#~ msgid "Floatland mountain height" -#~ msgstr "Alteco de fluginsulaj montoj" +#~ msgid "Darkness sharpness" +#~ msgstr "Akreco de mallumo" -#~ msgid "Floatland base height noise" -#~ msgstr "Bruo de baza alteco de fluginsuloj" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Difinas zonojn de glata tereno sur fluginsuloj.\n" +#~ "Glataj fluginsuloj okazas kiam bruo superas nulon." -#~ msgid "Enable VBO" -#~ msgstr "Åœalti VBO(Vertex Buffer Object)" +#~ 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 " @@ -7244,55 +7337,195 @@ msgstr "cURL tempolimo" #~ "difinoj\n" #~ "Y de supra limo de lafo en grandaj kavernoj." -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Difinas zonojn de glata tereno sur fluginsuloj.\n" -#~ "Glataj fluginsuloj okazas kiam bruo superas nulon." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "ElÅutante kaj instalante $1, bonvolu atendi…" -#~ msgid "Darkness sharpness" -#~ msgstr "Akreco de mallumo" +#~ msgid "Enable VBO" +#~ msgstr "Åœalti VBO(Vertex Buffer Object)" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ 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 "" -#~ "Regas larÄecon de tuneloj; pli malgranda valoro kreas pri larÄajn " -#~ "tunelojn." +#~ "Åœaltas mapadon de elstaraĵoj por teksturoj. Normalmapoj devas veni kun la " +#~ "teksturaro,\n" +#~ "aÅ estiÄi memage.\n" +#~ "Bezonas Åaltitajn ombrigilojn." #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Regas densecon de montecaj fluginsuloj.\n" -#~ "Temas pri deÅovo de la brua valoro «np_mountain»." +#~ "Åœaltas dumludan estigadon de normalmapoj (Reliefiga efekto).\n" +#~ "Bezonas Åaltitan mapadon de elstaraĵoj." -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "ÅœanÄas kiel montecaj fluginsuloj maldikiÄas super kaj sub la mezpunkto." +#~ "Åœaltas mapadon de paralaksa ombrigo.\n" +#~ "Bezonas Åaltitajn ombrigilojn." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "AlÄustigi la gamaan kodadon al la lumtabeloj. Pli altaj nombroj estas pli " -#~ "helaj.\n" -#~ "Ĉi tiu agordo estas klientflanka, kaj serviloj Äin malatentos." +#~ "Prova elekteblo; povas estigi videblajn spacojn inter monderoj\n" +#~ "je nombro super 0." -#~ msgid "Path to save screenshots at." -#~ msgstr "Dosierindiko por konservi ekrankopiojn." +#~ msgid "FPS in pause menu" +#~ msgstr "Kadroj sekunde en paÅza menuo" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Potenco de paralaksa ombrigo" +#~ msgid "Floatland base height noise" +#~ msgstr "Bruo de baza alteco de fluginsuloj" + +#~ msgid "Floatland mountain height" +#~ msgstr "Alteco de fluginsulaj montoj" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Maltravidebleco de tipara ombro (inter 0 kaj 255)." + +#~ msgid "Gamma" +#~ msgstr "HelÄustigo" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Estigi Normalmapojn" + +#~ msgid "Generate normalmaps" +#~ msgstr "Estigi normalmapojn" + +#~ msgid "IPv6 support." +#~ msgstr "Subteno de IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Lafo-profundeco" + +#~ msgid "Lightness sharpness" +#~ msgstr "Akreco de heleco" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Limo de viceroj enlegotaj de disko" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "ElÅutante kaj instalante $1, bonvolu atendi…" +#~ msgid "Main" +#~ msgstr "Ĉefmenuo" -#~ msgid "Back" -#~ msgstr "Reeniri" +#~ msgid "Main menu style" +#~ msgstr "Stilo de ĉefmenuo" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mapeto en radara reÄimo, zomo ×2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mapeto en radara reÄimo, zomo ×4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Mapeto en supraĵa reÄimo, zomo ×2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Mapeto en supraĵa reÄimo, zomo ×4" + +#~ msgid "Name/Password" +#~ msgstr "Nomo/Pasvorto" + +#~ msgid "No" +#~ msgstr "Ne" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normalmapa specimenado" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmapa potenco" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Nombro da iteracioj de paralaksa ombrigo." #~ msgid "Ok" #~ msgstr "Bone" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Entuta ekarto de la efiko de paralaksa ombrigo, kutime skalo/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Entuta vasteco de paralaksa ombrigo." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaksa ombrigo" + +#~ msgid "Parallax occlusion" +#~ msgstr "Paralaksa ombrigo" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Ekarto de paralaksa okludo" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iteracioj de paralaksa ombrigo" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "ReÄimo de paralaksa ombrigo" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skalo de paralaksa ombrigo" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Potenco de paralaksa ombrigo" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Dosierindiko al tiparo «TrueType» aÅ bitbildo." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Dosierindiko por konservi ekrankopiojn." + +#~ msgid "Projecting dungeons" +#~ msgstr "Planante forgeskelojn" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Rekomenci mondon por unu ludanto" + +#~ msgid "Select Package File:" +#~ msgstr "Elekti pakaĵan dosieron:" + +#~ msgid "Shadow limit" +#~ msgstr "Limo por ombroj" + +#~ msgid "Start Singleplayer" +#~ msgstr "Komenci ludon por unu" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Forteco de estigitaj normalmapoj." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Tiu ĉi tiparo uziÄos por iuj lingvoj." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Baskuligi glitan vidpunkton" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Ordinara plejalto, super kaj sub la mezpunkto, de fluginsulaj montoj." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variaĵo de alteco de montetoj kaj profundeco de lagoj sur glata tereno de " +#~ "fluginsuloj." + +#~ msgid "View" +#~ msgstr "Vido" + +#~ msgid "Waving Water" +#~ msgstr "Ondanta akvo" + +#~ msgid "Waving water" +#~ msgstr "Ondanta akvo" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y de supera limo de grandaj kvazaÅ-hazardaj kavernoj." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-nivelo kien etendiÄas ombroj de fluginsuloj." + +#~ msgid "Yes" +#~ msgstr "Jes" diff --git a/po/es/minetest.po b/po/es/minetest.po index f0a5e38dd..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" -"Last-Translator: Agustin Calderon <agustin25901@gmail.com>\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 <j45minetest@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/minetest/" "minetest/es/>\n" "Language: es\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -160,14 +152,54 @@ 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 "" "ContentDB no se encuentra disponible cuando Minetest se compiló sin cURL" @@ -190,6 +222,14 @@ 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" msgstr "Mods" @@ -203,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" @@ -220,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" @@ -522,6 +581,10 @@ 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" @@ -638,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" @@ -691,6 +769,18 @@ msgid "Credits" msgstr "Créditos" #: builtin/mainmenu/tab_credits.lua +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" msgstr "Antiguos colaboradores" @@ -707,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 +829,10 @@ 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 +841,10 @@ 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:" @@ -766,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" @@ -790,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 +922,6 @@ 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" @@ -839,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 +942,6 @@ 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 +950,6 @@ 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" @@ -899,19 +977,11 @@ 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 +994,10 @@ 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)" @@ -967,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." @@ -1146,13 +1204,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1162,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" @@ -1300,34 +1358,6 @@ 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" @@ -1337,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..." @@ -1421,7 +1451,7 @@ msgstr "Volumen cambiado a %d%%" #: src/client/game.cpp msgid "Wireframe shown" -msgstr "Wireframe mostrado" +msgstr "LÃneas 3D mostradas" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1429,7 +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" @@ -1437,7 +1467,7 @@ msgstr "Chat oculto" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "Chat mostrado" +msgstr "Chat visible" #: src/client/gameui.cpp msgid "HUD hidden" @@ -1719,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!" @@ -1953,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" @@ -1966,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 "" @@ -1991,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." @@ -2014,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" @@ -2046,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." @@ -2069,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." @@ -2137,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" @@ -2196,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" @@ -2397,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" @@ -2409,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 @@ -2479,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" @@ -2601,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/" @@ -2615,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 "" @@ -2660,6 +2690,10 @@ 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" @@ -2686,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." @@ -2726,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" @@ -2798,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 "" @@ -2841,14 +2883,6 @@ 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." @@ -2909,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" @@ -2929,6 +2963,10 @@ 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" @@ -2994,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 @@ -3088,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" @@ -3107,18 +3145,6 @@ 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." @@ -3128,23 +3154,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3165,14 +3174,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3182,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" @@ -3251,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" @@ -3273,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." @@ -3391,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 "" @@ -3472,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" @@ -3488,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" @@ -3516,15 +3522,10 @@ 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" @@ -3532,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 "" @@ -3585,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" @@ -3600,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" @@ -3612,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" @@ -3893,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" @@ -3902,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 "" @@ -3951,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." @@ -4139,6 +4134,11 @@ 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" @@ -4241,6 +4241,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para saltar.\n" +"Véase http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4291,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" @@ -4299,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" @@ -4385,6 +4397,17 @@ msgstr "" #: 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 "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4866,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 @@ -4884,8 +4911,8 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"Tecla para activar/desactivar la visualización de información de depuración." -"\n" +"Tecla para activar/desactivar la visualización de información de " +"depuración.\n" "Ver http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4916,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 "" @@ -4950,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" @@ -4965,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 @@ -5010,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 "" @@ -5040,6 +5077,14 @@ msgid "" "- info\n" "- verbose" msgstr "" +"Nivel de registro que se escribirá en debug.txt:\n" +"- <nada> (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" @@ -5066,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 "" @@ -5083,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" @@ -5128,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." @@ -5139,62 +5189,51 @@ 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 directory" +msgid "Map Compression Level for Network Transfer" msgstr "" #: src/settings_translation_file.cpp +msgid "Map directory" +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 "" @@ -5248,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" @@ -5284,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" @@ -5364,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" @@ -5419,6 +5452,13 @@ msgid "" 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 "" @@ -5475,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" @@ -5486,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" @@ -5502,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" @@ -5544,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" @@ -5568,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" @@ -5606,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 "" @@ -5628,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" @@ -5651,14 +5697,6 @@ 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 "" @@ -5684,16 +5722,12 @@ msgid "" 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 "" @@ -5713,39 +5747,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5813,6 +5814,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5866,7 +5877,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Profiling" -msgstr "" +msgstr "Perfilando" #: src/settings_translation_file.cpp msgid "Prometheus listener address" @@ -5970,10 +5981,6 @@ 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" msgstr "Profundidad del relleno" @@ -5992,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 @@ -6261,6 +6268,17 @@ 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 "" @@ -6391,10 +6409,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6489,6 +6503,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6547,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 @@ -6574,15 +6592,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6720,6 +6743,17 @@ msgid "" 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 "" @@ -6930,6 +6964,12 @@ msgid "" 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 "" @@ -7052,10 +7092,28 @@ 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 "" @@ -7063,42 +7121,75 @@ msgstr "" msgid "cURL timeout" msgstr "Tiempo de espera de cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Activar cinemático" +#~ 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 "Select Package File:" -#~ msgstr "Seleccionar el archivo del paquete:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Ajustar la codificación gamma para las tablas de iluminación. Números " +#~ "mayores son mas brillantes.\n" +#~ "Este ajuste es solo para cliente y es ignorado por el servidor." -#~ msgid "Waving Water" -#~ msgstr "Oleaje" +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Modifica cómo las tierras flotantes del tipo montaña aparecen arriba y " +#~ "abajo del punto medio." -#~ msgid "Waving water" -#~ msgstr "Oleaje en el agua" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "¿Estás seguro de querer reiniciar el mundo de un jugador?" -#, fuzzy -#~ msgid "Lava depth" -#~ msgstr "CaracterÃsticas de la Lava" +#~ msgid "Back" +#~ msgstr "Atrás" -#~ msgid "IPv6 support." -#~ msgstr "soporte IPv6." +#~ msgid "Bump Mapping" +#~ msgstr "Mapeado de relieve" -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Bumpmapping" +#~ msgstr "Mapeado de relieve" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Alfa de sombra de fuentes (opacidad, entre 0 y 255)." +#~ 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 "Floatland mountain height" -#~ msgstr "Altura de las montañas en tierras flotantes" +#~ msgid "Config mods" +#~ msgstr "Configurar mods" -#~ msgid "Floatland base height noise" -#~ msgstr "Ruido de altura base para tierra flotante" +#~ msgid "Configure" +#~ msgstr "Configurar" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Habilita el mapeado de tonos fÃlmico" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controla la densidad del terreno montañoso flotante.\n" +#~ "Se agrega un desplazamiento al valor de ruido 'mgv7_np_mountain'." -#~ msgid "Enable VBO" -#~ msgstr "Activar VBO" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Controla el ancho de los túneles, un valor menor crea túneles más anchos." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Color de la cruz (R,G,B)." + +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "Agudeza de la obscuridad" #~ msgid "" #~ "Defines areas of floatland smooth terrain.\n" @@ -7107,43 +7198,160 @@ msgstr "Tiempo de espera de cURL" #~ "Define áreas de terreno liso flotante.\n" #~ "Las zonas flotantes lisas se producen cuando el ruido > 0." -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "Agudeza de la obscuridad" +#~ msgid "" +#~ "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 "Controls width of tunnels, a smaller value creates wider tunnels." +#~ 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 "" -#~ "Controla el ancho de los túneles, un valor menor crea túneles más anchos." +#~ "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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Controla la densidad del terreno montañoso flotante.\n" -#~ "Se agrega un desplazamiento al valor de ruido 'mgv7_np_mountain'." +#~ "Habilita la generación de mapas de normales (efecto realzado) en el " +#~ "momento.\n" +#~ "Requiere habilitar mapeado de relieve." -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Modifica cómo las tierras flotantes del tipo montaña aparecen arriba y " -#~ "abajo del punto medio." +#~ "Habilita mapeado de oclusión de paralaje.\n" +#~ "Requiere habilitar sombreadores." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Ajustar la codificación gamma para las tablas de iluminación. Números " -#~ "mayores son mas brillantes.\n" -#~ "Este ajuste es solo para cliente y es ignorado por el servidor." +#~ "Opción experimental, puede causar espacios visibles entre los\n" +#~ "bloques si se le da un valor mayor a 0." -#~ msgid "Path to save screenshots at." -#~ msgstr "Ruta para guardar las capturas de pantalla." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS (cuadros/s) en el menú de pausa" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Descargando e instalando $1, por favor espere..." +#~ msgid "Floatland base height noise" +#~ msgstr "Ruido de altura base para tierra flotante" -#~ msgid "Back" -#~ msgstr "Atrás" +#~ msgid "Floatland mountain height" +#~ msgstr "Altura de las montañas en tierras flotantes" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Alfa de sombra de fuentes (opacidad, entre 0 y 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Generar mapas normales" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generar mapas normales" + +#~ msgid "IPv6 support." +#~ msgstr "soporte IPv6." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "CaracterÃsticas de la Lava" + +#~ msgid "Main" +#~ msgstr "Principal" + +#~ msgid "Main menu style" +#~ msgstr "Estilo del menú principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa en modo radar, Zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa en modo radar, Zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa en modo superficie, Zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa en modo superficie, Zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Nombre / contraseña" + +#~ msgid "No" +#~ msgstr "No" #~ msgid "Ok" #~ msgstr "Aceptar" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion bias" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion mode" +#~ msgstr "Oclusión de paralaje" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Oclusión de paralaje" + +#~ msgid "Path to save screenshots at." +#~ msgstr "Ruta para guardar las capturas de pantalla." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reiniciar mundo de un jugador" + +#~ msgid "Select Package File:" +#~ msgstr "Seleccionar el archivo del paquete:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Comenzar un jugador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Fuerza de los mapas normales generados." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Activar cinemático" + +#~ msgid "View" +#~ msgstr "Ver" + +#~ msgid "Waving Water" +#~ msgstr "Oleaje" + +#~ msgid "Waving water" +#~ msgstr "Oleaje en el agua" + +#~ msgid "Yes" +#~ msgstr "SÃ" diff --git a/po/et/minetest.po b/po/et/minetest.po index 67b8210b3..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-06-13 23:17+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 <janar.leas@gmail.com>\n" "Language-Team: Estonian <https://hosted.weblate.org/projects/minetest/" "minetest/et/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Said surma" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Valmis" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -40,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -111,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:" @@ -160,21 +152,61 @@ 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" @@ -190,6 +222,16 @@ 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" msgstr "MOD-id" @@ -203,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" @@ -220,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 @@ -229,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" @@ -275,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" @@ -297,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" @@ -351,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" @@ -454,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 "" @@ -470,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" @@ -494,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" @@ -525,6 +581,10 @@ 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" @@ -550,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" @@ -558,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" @@ -566,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". @@ -574,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 @@ -640,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" @@ -682,59 +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 +#, 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" @@ -753,57 +840,62 @@ 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" @@ -858,22 +942,14 @@ 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,19 +977,11 @@ 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:" @@ -926,6 +994,11 @@ 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: " @@ -1139,20 +1196,20 @@ msgid "Continue" msgstr "Jätka" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1300,34 +1357,6 @@ 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" @@ -1341,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" @@ -1365,15 +1394,15 @@ msgstr "" #: src/client/game.cpp msgid "Remote server" -msgstr "" +msgstr "Kaug võõrustaja" #: src/client/game.cpp msgid "Resolving address..." -msgstr "" +msgstr "Aadressi lahendamine..." #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "Sulgemine..." #: src/client/game.cpp msgid "Singleplayer" @@ -1389,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" @@ -1402,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 @@ -1461,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" @@ -1502,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" @@ -1725,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!" @@ -1752,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" @@ -1972,12 +2013,6 @@ msgid "" 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 "" @@ -2084,6 +2119,10 @@ 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 "" @@ -2093,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" @@ -2120,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 "" @@ -2226,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." @@ -2317,10 +2356,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2391,16 +2426,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2409,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" @@ -2422,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" @@ -2535,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" @@ -2554,8 +2577,12 @@ 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" @@ -2610,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 @@ -2618,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 @@ -2626,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" @@ -2681,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 "" @@ -2720,12 +2749,6 @@ 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 "" @@ -2783,19 +2806,26 @@ 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" @@ -2836,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 "" @@ -2857,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 @@ -2945,14 +2974,6 @@ 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 "" @@ -2962,18 +2983,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -2990,12 +2999,6 @@ 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" @@ -3005,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 @@ -3094,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." @@ -3127,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" @@ -3245,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." @@ -3310,10 +3310,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3323,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 "" @@ -3345,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" @@ -3369,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 "" @@ -3396,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" @@ -3409,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" @@ -3726,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)." @@ -3743,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." @@ -3798,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" @@ -3843,6 +3835,10 @@ 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 "" @@ -3900,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" @@ -3924,6 +3919,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4023,6 +4025,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4399,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" @@ -4429,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" @@ -4446,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 "" @@ -4579,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 "" @@ -4602,6 +4601,14 @@ 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 "" @@ -4643,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 "" @@ -4677,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" @@ -4781,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 @@ -4830,6 +4826,13 @@ msgid "" 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 "" @@ -4891,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" @@ -4940,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" @@ -4995,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" @@ -5062,14 +5062,6 @@ 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 "" @@ -5095,10 +5087,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5124,34 +5112,6 @@ msgid "" 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" @@ -5209,15 +5169,23 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5305,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" @@ -5337,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 "" @@ -5372,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" @@ -5393,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" @@ -5463,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 "" @@ -5535,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" @@ -5564,14 +5520,12 @@ msgid "Server side occlusion culling" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Serverlist URL" -msgstr "Avatud serverite nimekiri:" +msgstr "Võõrustaja-loendi aadress" #: src/settings_translation_file.cpp -#, fuzzy msgid "Serverlist file" -msgstr "Avatud serverite nimekiri:" +msgstr "Võõrustaja-loendi fail" #: src/settings_translation_file.cpp msgid "" @@ -5602,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 "" @@ -5639,6 +5592,16 @@ 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 "" @@ -5684,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 "" @@ -5703,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." @@ -5721,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" @@ -5772,10 +5731,6 @@ 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" @@ -5851,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 "" @@ -5870,6 +5824,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5928,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 @@ -5955,15 +5913,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6020,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 "" @@ -6101,6 +6062,17 @@ msgid "" 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 "" @@ -6178,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" @@ -6201,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 "" @@ -6238,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 "" @@ -6309,6 +6275,12 @@ msgid "" 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 "" @@ -6320,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 "" @@ -6330,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 "" @@ -6367,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 "" @@ -6432,6 +6403,24 @@ 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" @@ -6441,22 +6430,25 @@ msgstr "" #: src/settings_translation_file.cpp msgid "cURL timeout" -msgstr "" +msgstr "cURL aegus" -#, fuzzy -#~ msgid "Toggle Cinematic" -#~ msgstr "Lülita kiirus sisse" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Kindlasti lähtestad oma üksikmängija maailma algseks?" -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Vali modifikatsiooni fail:" +#~ msgid "Back" +#~ msgstr "Tagasi" -#, fuzzy -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Lubab filmic tone mapping" +#~ msgid "Bump Mapping" +#~ msgstr "Konarlik tapeet" -#~ msgid "Enable VBO" -#~ msgstr "Luba VBO" +#~ msgid "Bumpmapping" +#~ msgstr "Muhkkaardistamine" + +#~ msgid "Config mods" +#~ msgstr "Seadista mod-e" + +#~ msgid "Configure" +#~ msgstr "Kohanda" #~ msgid "Darkness sharpness" #~ msgstr "Pimeduse teravus" @@ -6464,8 +6456,59 @@ msgstr "" #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Palun oota $1 allalaadimist ja paigaldamist…" -#~ msgid "Back" -#~ msgstr "Tagasi" +#~ msgid "Enable VBO" +#~ msgstr "Luba VBO" + +#, fuzzy +#~ 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 17c4325df..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 <sfan5@live.de>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-23 15:50+0000\n" +"Last-Translator: Osoitz <oelkoro@gmail.com>\n" "Language-Team: Basque <https://hosted.weblate.org/projects/minetest/minetest/" "eu/>\n" "Language: eu\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -29,7 +29,7 @@ msgstr "Hil zara" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "Ados" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -51,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. " @@ -68,12 +64,6 @@ 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." @@ -81,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 @@ -91,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:" @@ -121,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:" @@ -165,21 +157,61 @@ 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 "Base Game:" +msgstr "Oinarri jokoa:" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB ez dago erabilgarri Minetest cURL gabe konpilatzean" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Kargatzen..." +msgstr "Deskargatzen..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -195,6 +227,14 @@ 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" msgstr "Mod-ak" @@ -208,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" @@ -225,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" @@ -234,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" @@ -280,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" @@ -300,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" @@ -328,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" @@ -525,6 +585,10 @@ 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" @@ -642,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" @@ -664,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" @@ -695,6 +773,17 @@ msgid "Credits" msgstr "Kredituak" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "Lehenagoko laguntzaileak" @@ -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 @@ -747,6 +832,10 @@ msgid "No world created or selected!" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -755,6 +844,11 @@ 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,17 +919,13 @@ 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 "" @@ -860,10 +946,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -872,10 +954,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -897,37 +975,33 @@ 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,24 +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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" #: src/client/game.cpp msgid "Creating client..." -msgstr "" +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" @@ -1274,34 +1332,6 @@ 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 "" @@ -1693,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!" @@ -1937,12 +1985,6 @@ msgid "" 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 "" @@ -2049,6 +2091,10 @@ 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 "" @@ -2282,10 +2328,6 @@ 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" @@ -2356,16 +2398,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2517,6 +2549,10 @@ 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 "" @@ -2566,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 @@ -2581,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 @@ -2590,7 +2630,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "Kaltea" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2681,12 +2721,6 @@ 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 "" @@ -2759,6 +2793,11 @@ 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 "" @@ -2819,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" @@ -2836,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)." @@ -2911,14 +2951,6 @@ 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 "" @@ -2928,18 +2960,6 @@ 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" @@ -2956,12 +2976,6 @@ 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" @@ -2971,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 @@ -3280,10 +3294,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3337,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 "" @@ -3805,6 +3815,11 @@ 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 "" @@ -3887,6 +3902,17 @@ msgid "" 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -3992,6 +4018,17 @@ msgid "" 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4564,10 +4601,6 @@ 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 "" @@ -4581,6 +4614,14 @@ 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 "" @@ -4744,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 @@ -4793,6 +4834,13 @@ msgid "" 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 "" @@ -5022,14 +5070,6 @@ 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 "" @@ -5055,12 +5095,8 @@ msgid "" 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" @@ -5084,34 +5120,6 @@ msgid "" 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" @@ -5177,6 +5185,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5332,10 +5349,6 @@ 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 "" @@ -5587,6 +5600,16 @@ 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 "" @@ -5716,10 +5739,6 @@ 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" @@ -5810,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 "" @@ -5873,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 @@ -5900,15 +5924,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6047,6 +6076,17 @@ msgid "" 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 "" @@ -6249,6 +6289,12 @@ msgid "" 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 "" @@ -6262,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 "" @@ -6373,6 +6419,24 @@ 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 "" @@ -6384,11 +6448,14 @@ msgstr "" msgid "cURL timeout" msgstr "cURL-en denbora muga" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 deskargatu eta instalatzen, itxaron mesedez..." - #~ 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 index 549653ac5..57682ebba 100644 --- a/po/my/minetest.po +++ b/po/fi/minetest.po @@ -1,30 +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 <EMAIL@ADDRESS>, YEAR. +# msgid "" msgstr "" -"Project-Id-Version: Burmese (Minetest)\n" +"Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n" -"Language-Team: Burmese <https://hosted.weblate.org/projects/minetest/" -"minetest/my/>\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 <virallinen@gmail.com>\n" +"Language-Team: Finnish <https://hosted.weblate.org/projects/minetest/" +"minetest/fi/>\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 "" +msgstr "Synny uudelleen" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +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:" @@ -32,7 +37,7 @@ msgstr "" #: builtin/fstk/ui.lua msgid "An error occurred:" -msgstr "" +msgstr "Tapahtui virhe:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -40,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 "" @@ -63,10 +64,6 @@ 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 "" @@ -74,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 @@ -84,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 "" @@ -145,25 +144,64 @@ 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 "" @@ -185,6 +223,14 @@ 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" msgstr "" @@ -198,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 @@ -215,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 @@ -510,6 +575,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -624,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 "" @@ -677,6 +758,16 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -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 @@ -729,6 +816,10 @@ 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 +828,10 @@ 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 "" @@ -814,10 +909,6 @@ 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 "" @@ -842,10 +929,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -854,10 +937,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -885,19 +964,11 @@ 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 +981,10 @@ 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,13 +1187,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1256,34 +1315,6 @@ 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 "" @@ -1675,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 "" @@ -1880,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 "" @@ -1919,12 +1968,6 @@ msgid "" 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 "" @@ -2031,6 +2074,10 @@ 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 "" @@ -2264,10 +2311,6 @@ 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" @@ -2338,16 +2381,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2499,6 +2532,10 @@ 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 "" @@ -2555,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 @@ -2563,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 @@ -2663,12 +2704,6 @@ 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 "" @@ -2739,6 +2774,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2799,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 @@ -2887,14 +2926,6 @@ 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 "" @@ -2904,18 +2935,6 @@ 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" @@ -2932,12 +2951,6 @@ 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" @@ -2947,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 @@ -3249,10 +3262,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3306,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 "" @@ -3774,6 +3783,10 @@ 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 "" @@ -3854,6 +3867,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3953,6 +3973,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4509,10 +4536,6 @@ 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 "" @@ -4526,6 +4549,14 @@ 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 "" @@ -4689,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 @@ -4738,6 +4769,13 @@ msgid "" 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 "" @@ -4967,14 +5005,6 @@ 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 "" @@ -5000,10 +5030,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5029,34 +5055,6 @@ msgid "" 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" @@ -5122,6 +5120,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5277,10 +5283,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5532,6 +5534,16 @@ 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 "" @@ -5661,10 +5673,6 @@ 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" @@ -5758,6 +5766,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5816,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 @@ -5843,15 +5855,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -5987,6 +6004,17 @@ msgid "" 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 "" @@ -6189,6 +6217,12 @@ msgid "" 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 "" @@ -6311,6 +6345,24 @@ 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 34fcda843..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-06 21:41+0000\n" -"Last-Translator: Estébastien Robespi <estebastien@mailbox.org>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: cafou <weblate@ptitux.org>\n" "Language-Team: French <https://hosted.weblate.org/projects/minetest/minetest/" "fr/>\n" "Language: fr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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 :" @@ -161,14 +153,55 @@ 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" @@ -190,6 +223,16 @@ 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" msgstr "Mods" @@ -203,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" @@ -220,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" @@ -521,6 +585,10 @@ 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" @@ -577,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 @@ -640,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" @@ -693,6 +776,20 @@ msgid "Credits" msgstr "Crédits" #: builtin/mainmenu/tab_credits.lua +#, 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" msgstr "Anciens contributeurs" @@ -709,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" @@ -733,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 +838,11 @@ 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 +851,11 @@ 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 :" @@ -766,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" @@ -792,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 +933,6 @@ 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" @@ -841,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 +953,6 @@ 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 +961,6 @@ 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" @@ -901,19 +988,11 @@ 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 +1005,11 @@ 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)" @@ -970,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." @@ -1140,24 +1208,24 @@ msgid "Continue" msgstr "Continuer" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" -"Contrôles:\n" +"Contrôles :\n" "- %s : avancer\n" "- %s : reculer\n" "- %s : à gauche\n" @@ -1243,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" @@ -1255,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" @@ -1298,34 +1366,6 @@ 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" @@ -1335,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..." @@ -1400,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 @@ -1717,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 !" @@ -1780,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" @@ -1888,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" @@ -1961,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 "" @@ -1993,14 +2053,6 @@ msgstr "" "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." @@ -2026,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" @@ -2060,8 +2112,8 @@ msgid "" "a value range of approximately -2.0 to 2.0." msgstr "" "Bruit 3D pour la structures des îles volantes.\n" -"Si la valeur par défaut est changée, le bruit « d'échelle » (0,7 par défaut)" -"\n" +"Si la valeur par défaut est changée, le bruit « d'échelle » (0,7 par " +"défaut)\n" "doit peut-être être ajustée, parce que l'effilage des îles volantes\n" "fonctionne le mieux quand ce bruit est environ entre -2 et 2." @@ -2130,6 +2182,10 @@ 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" @@ -2375,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" @@ -2394,21 +2450,19 @@ 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" "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 "" -"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" @@ -2476,23 +2530,6 @@ msgstr "" "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" @@ -2659,6 +2696,10 @@ 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" @@ -2710,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" @@ -2726,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 @@ -2734,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" @@ -2841,14 +2887,6 @@ 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." @@ -2928,6 +2966,11 @@ 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" @@ -2992,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 @@ -3061,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 "" @@ -3107,19 +3151,6 @@ 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." @@ -3129,22 +3160,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3166,14 +3181,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3189,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" @@ -3521,10 +3529,6 @@ 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" @@ -3585,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 "" @@ -3606,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" @@ -3651,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" @@ -3888,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 @@ -4130,6 +4135,11 @@ 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" @@ -4147,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 "" @@ -4232,6 +4242,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Touche pour sauter.\n" +"Voir http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4374,6 +4395,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Touche pour sauter.\n" +"Voir 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." @@ -4981,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" @@ -5062,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 @@ -5124,10 +5156,6 @@ 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." msgstr "" @@ -5145,6 +5173,14 @@ 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" @@ -5158,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 "" @@ -5233,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" @@ -5328,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 @@ -5389,6 +5427,13 @@ msgstr "" "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." @@ -5455,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 @@ -5645,14 +5690,6 @@ 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" @@ -5694,10 +5731,6 @@ msgstr "" "(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" @@ -5727,34 +5760,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5843,6 +5848,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -6031,10 +6046,6 @@ 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" @@ -6139,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 @@ -6338,6 +6349,20 @@ 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" @@ -6352,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 "" @@ -6498,10 +6523,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6532,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" @@ -6611,6 +6645,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6668,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" @@ -6679,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" @@ -6738,6 +6776,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6745,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." @@ -6836,7 +6880,6 @@ msgid "Trilinear filtering" msgstr "Filtrage trilinéaire" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6860,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" @@ -6868,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" @@ -6887,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." @@ -6922,6 +6964,17 @@ msgstr "" "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." @@ -7031,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 "" @@ -7083,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" @@ -7114,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 "" @@ -7130,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" @@ -7144,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." @@ -7196,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" @@ -7204,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 @@ -7299,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." @@ -7321,6 +7379,24 @@ 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" @@ -7332,137 +7408,298 @@ msgstr "Limite parallèle de cURL" msgid "cURL timeout" msgstr "Délais d'interruption de cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Mode cinématique" - -#~ msgid "Select Package File:" -#~ msgstr "Sélectionner le fichier du mod :" - -#~ msgid "Y of upper limit of lava in large caves." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Coordonnée Y de la limite supérieure des grandes grottes pseudo-" -#~ "aléatoires." +#~ "0 = occlusion parallaxe avec des informations de pente (plus rapide).\n" +#~ "1 = cartographie en relief (plus lent, plus précis)." -#~ msgid "Waving Water" -#~ msgstr "Eau ondulante" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Ajuster la correction gamma. Les valeurs plus basses sont plus claires.\n" +#~ "Ce paramètre s'applique au client seulement et est ignoré par le serveur." -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Si les donjons font parfois saillie du terrain." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Modifie la façon dont les terres flottantes montagneuses s’effilent au-" +#~ "dessus et au-dessous du point médian." -#~ msgid "Projecting dungeons" -#~ msgstr "Projection des donjons" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Êtes-vous sûr de vouloir réinitialiser votre monde ?" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Hauteur (Y) auquel les ombres portées s’étendent." +#~ msgid "Back" +#~ msgstr "Retour" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Hauteur (Y) du point de flottaison et de la surface des lacs." +#~ msgid "Bump Mapping" +#~ msgstr "Placage de relief" -#~ msgid "Waving water" -#~ msgstr "Vagues" +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Variation de la hauteur des collines et de la profondeur des lacs sur les " -#~ "terrains plats flottants." +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Milieu de la courbe de lumière mi-boost." #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "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 "" -#~ "Hauteur maximum typique, au-dessus et au-dessous du point médian, du " -#~ "terrain de montagne flottantes." +#~ "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 "This font will be used for certain languages." -#~ msgstr "Cette police sera utilisée pour certaines langues." +#~ msgid "Config mods" +#~ msgstr "Configurer les mods" -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Force de la courbe de lumière mi-boost." +#~ msgid "Configure" +#~ msgstr "Configurer" -#~ msgid "Shadow limit" -#~ msgstr "Limite des ombres" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Contrôle la densité des terrains montagneux sur les terres flottantes.\n" +#~ "C'est un décalage ajouté à la valeur du bruit 'mgv7_np_mountain'." -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Chemin vers police TrueType ou Bitmap." +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Contrôle la largeur des tunnels, une valeur plus petite crée des tunnels " +#~ "plus larges." -#~ msgid "Lightness sharpness" -#~ msgstr "Démarcation de la luminosité" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Couleur du réticule (R,G,B)." -#~ msgid "Lava depth" -#~ msgstr "Profondeur de lave" +#~ msgid "Darkness sharpness" +#~ msgstr "Démarcation de l'obscurité" -#~ msgid "IPv6 support." -#~ msgstr "Support IPv6." +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Défini les zones de terrain plat flottant.\n" +#~ "Des terrains plats flottants apparaissent lorsque le bruit > 0." -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ 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 "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Niveau d'opacité de l'ombre de la police (entre 0 et 255)." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Téléchargement et installation de $1, veuillez patienter..." -#~ msgid "Floatland mountain height" -#~ msgstr "Hauteur des montagnes flottantes" +#~ msgid "Enable VBO" +#~ msgstr "Activer Vertex Buffer Object: objet tampon de vertex" -#~ msgid "Floatland base height noise" -#~ msgstr "Le bruit de hauteur de base des terres flottantes" +#~ 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 "Enable VBO" -#~ msgstr "Activer Vertex Buffer Object: objet tampon de vertex" - #~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Défini les zones de terrain plat flottant.\n" -#~ "Des terrains plats flottants apparaissent lorsque le bruit > 0." +#~ "Active la génération à la volée des normalmaps.\n" +#~ "Nécessite le bumpmapping pour être activé." -#~ msgid "Darkness sharpness" -#~ msgstr "Démarcation de l'obscurité" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Contrôle la largeur des tunnels, une valeur plus petite crée des tunnels " -#~ "plus larges." +#~ "Active l'occlusion parallaxe.\n" +#~ "Nécessite les shaders pour être activé." #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Contrôle la densité des terrains montagneux sur les terres flottantes.\n" -#~ "C'est un décalage ajouté à la valeur du bruit 'mgv7_np_mountain'." +#~ "Option expérimentale, peut causer un espace vide visible entre les blocs\n" +#~ "quand paramétré avec un nombre supérieur à 0." -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Milieu de la courbe de lumière mi-boost." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS maximum sur le menu pause" -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Modifie la façon dont les terres flottantes montagneuses s’effilent au-" -#~ "dessus et au-dessous du point médian." +#~ msgid "Floatland base height noise" +#~ msgstr "Le bruit de hauteur de base des terres flottantes" -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." -#~ msgstr "" -#~ "Ajuster la correction gamma. Les valeurs plus basses sont plus claires.\n" -#~ "Ce paramètre s'applique au client seulement et est ignoré par le serveur." +#~ msgid "Floatland mountain height" +#~ msgstr "Hauteur des montagnes flottantes" -#~ msgid "Path to save screenshots at." -#~ msgstr "Chemin où les captures d'écran sont sauvegardées." +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Niveau d'opacité de l'ombre de la police (entre 0 et 255)." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Force de l'occlusion parallaxe" +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Génération de Normal Maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normal mapping" + +#~ msgid "IPv6 support." +#~ msgstr "Support IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profondeur de lave" + +#~ msgid "Lightness sharpness" +#~ msgstr "Démarcation de la luminosité" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Limite des files émergentes sur le disque" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Téléchargement et installation de $1, veuillez patienter..." +#~ msgid "Main" +#~ msgstr "Principal" -#~ msgid "Back" -#~ msgstr "Retour" +#~ msgid "Main menu style" +#~ msgstr "Style du menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mini-carte en mode radar, zoom x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mini-carte en mode radar, zoom x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Mini-carte en mode surface, zoom x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Mini-carte en mode surface, zoom x4" + +#~ msgid "Name/Password" +#~ msgstr "Nom / Mot de passe" + +#~ msgid "No" +#~ msgstr "Non" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Échantillonnage de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Force des normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe." #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Bias général de l'occlusion parallaxe, habituellement échelle/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Echelle générale de l'effet de l'occlusion parallaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Occlusion parallaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Occlusion parallaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Bias de l'occlusion parallaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mode occlusion parallaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Echelle de l'occlusion parallaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Force de l'occlusion parallaxe" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Chemin vers police TrueType ou Bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Chemin où les captures d'écran sont sauvegardées." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projection des donjons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Réinitialiser le monde" + +#~ msgid "Select Package File:" +#~ msgstr "Sélectionner le fichier du mod :" + +#~ msgid "Shadow limit" +#~ msgstr "Limite des ombres" + +#~ msgid "Start Singleplayer" +#~ msgstr "Démarrer une partie solo" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Force des normalmaps autogénérés." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Force de la courbe de lumière mi-boost." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Cette police sera utilisée pour certaines langues." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Mode cinématique" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Hauteur maximum typique, au-dessus et au-dessous du point médian, du " +#~ "terrain de montagne flottantes." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variation de la hauteur des collines et de la profondeur des lacs sur les " +#~ "terrains plats flottants." + +#~ msgid "View" +#~ msgstr "Voir" + +#~ msgid "Waving Water" +#~ msgstr "Eau ondulante" + +#~ msgid "Waving water" +#~ msgstr "Vagues" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Si les donjons font parfois saillie du terrain." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "" +#~ "Coordonnée Y de la limite supérieure des grandes grottes pseudo-" +#~ "aléatoires." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Hauteur (Y) du point de flottaison et de la surface des lacs." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Hauteur (Y) auquel les ombres portées s’étendent." + +#~ msgid "Yes" +#~ msgstr "Oui" diff --git a/po/gd/minetest.po b/po/gd/minetest.po index c3347ecda..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-06-13 23:17+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 <fios@foramnagaidhlig.net>\n" "Language-Team: Gaelic <https://hosted.weblate.org/projects/minetest/minetest/" @@ -21,11 +21,11 @@ msgstr "" "X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" +msgid "Respawn" msgstr "" #: builtin/client/death_formspec.lua src/client/game.cpp -msgid "Respawn" +msgid "You died" msgstr "" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp @@ -33,11 +33,11 @@ msgid "OK" msgstr "" #: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" +msgid "An error occurred in a Lua script:" msgstr "" #: builtin/fstk/ui.lua -msgid "Reconnect" +msgid "An error occurred:" msgstr "" #: builtin/fstk/ui.lua @@ -45,24 +45,16 @@ msgid "Main menu" msgstr "Prìomh chlà r-taice" #: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" +msgid "Reconnect" msgstr "" #: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." +msgid "The server has requested a reconnect:" msgstr "" #: builtin/mainmenu/common.lua #, fuzzy -msgid "Server supports protocol versions between $1 and $2. " +msgid "Protocol version mismatch. " msgstr " " #: builtin/mainmenu/common.lua @@ -71,28 +63,58 @@ msgid "Server enforces protocol version $1. " msgstr " " #: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" +#, fuzzy +msgid "Server supports protocol versions between $1 and $2. " +msgstr " " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "" #: builtin/mainmenu/common.lua -#, fuzzy -msgid "Protocol version mismatch. " -msgstr " " +msgid "We support protocol versions between version $1 and $2." +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "World:" +msgid "Disable all" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." +msgid "Disable modpack" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." +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 @@ -104,68 +126,66 @@ 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 "Gun eisimeileachd chruaidh" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" msgstr "" +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "" + #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" +msgid "enabled" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" +msgid "$1 will be installed, and $2 dependencies will be skipped." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -173,46 +193,85 @@ 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 +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 +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" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" +msgid "No packages could be retrieved" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" +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 "Back to Main Menu" +msgid "Not found" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" +msgid "Overwrite" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" +msgid "Please check that the base game is correct." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" +msgid "Texture packs" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -220,83 +279,79 @@ msgid "Update" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" +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 "Caverns" +msgid "A world named \"$1\" already exists" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" +msgid "Additional terrain" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "Aibhnean air à irde na mara" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Altitude chill" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "Aibhnean" +msgid "Altitude dry" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" +msgid "Biome blending" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" +msgid "Biomes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "Tìr air fhleòd san speur" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" +msgid "Caverns" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" +msgid "Caves" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" +msgid "Create" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" +msgid "Decorations" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "Aibhnean boga" +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "Nì seo an tìr nas buige faisg air aibhnean" +msgid "Download one from minetest.net" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "Caochail doimhne nan aibhnean" +msgid "Dungeons" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "Adhbharaichidh saoghal tioram is teth aibhnean tana no tioram" +msgid "Flat terrain" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "" +msgid "Floating landmasses in the sky" +msgstr "Tìr air fhleòd san speur" #: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" +msgid "Floatlands (experimental)" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -304,122 +359,126 @@ msgid "Generate non-fractal terrain: Oceans and underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" +msgid "Hills" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "" +msgid "Humid rivers" +msgstr "Aibhnean boga" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" -msgstr "" +msgid "Increases humidity around rivers" +msgstr "Nì seo an tìr nas buige faisg air aibhnean" #: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" +msgid "Lakes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" +msgid "Low humidity and high heat causes shallow or dry rivers" +msgstr "Adhbharaichidh saoghal tioram is teth aibhnean tana no tioram" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "Gineadair nam mapa" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "Brataich gineadair nam mapa" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "" +msgid "Mapgen-specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" +msgid "Mountains" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." +msgid "Mud flow" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" +msgid "Network of tunnels and caves" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" +msgid "No game selected" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" +msgid "Reduces heat with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" +msgid "Reduces humidity with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" -msgstr "" +msgid "Rivers" +msgstr "Aibhnean" #: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" +msgid "Sea level rivers" +msgstr "Aibhnean air à irde na mara" #: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" +msgid "Smooth transition between biomes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" +msgid "" +"Structures appearing on the terrain (no effect on trees and jungle grass " +"created by v6)" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" +msgid "Structures appearing on the terrain, typically trees and plants" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "Brataich gineadair nam mapa" - #: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa" +msgid "Temperate, Desert" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." +msgid "Temperate, Desert, Jungle" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" +msgid "Temperate, Desert, Jungle, Tundra, Taiga" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "World name" +msgid "Terrain surface erosion" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" +msgid "Trees and jungle grass" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "Gineadair nam mapa" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" +msgstr "Caochail doimhne nan aibhnean" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Create" +msgid "Warning: The Development Test is meant for developers." msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" +msgid "World name" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" +msgid "You have no games installed." msgstr "" #: builtin/mainmenu/dlg_delete_content.lua @@ -449,140 +508,144 @@ msgid "Accept" msgstr "" #: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" +msgid "2D Noise" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" +msgid "< Back to Settings page" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" +msgid "Disabled" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" +msgid "Edit" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" +msgid "Enabled" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" +msgid "Lacunarity" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" +msgid "Please enter a valid integer." msgstr "" -#. ~ "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" +msgid "Please enter a valid number." 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" +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" 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" +msgid "Search" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" +msgid "Select directory" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" +msgid "Select file" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" +msgid "Show technical names" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" +msgid "The value must be at least $1." msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." +msgid "The value must not be larger than $1." msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." +msgid "X" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." +msgid "X spread" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." +msgid "Y" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" +msgid "Y spread" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" +msgid "Z" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" +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 "Edit" +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 "Restore Default" +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 "Show technical names" +msgid "eased" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -590,7 +653,7 @@ msgid "$1 (Enabled)" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" +msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -598,72 +661,84 @@ msgid "Failed to install $1 to $2" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" +msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" +msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" +"Stà ladh: Faidhle dhen t-seòrsa “$1†ris nach eil taic no tasglann bhriste" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" +msgid "Install: file: \"$1\"" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" +msgid "Unable to find a valid mod or modpack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" +msgid "Unable to install a $1 as a texture pack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" +msgid "Unable to install a game as a $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" +msgid "Unable to install a mod as a $1" msgstr "" -"Stà ladh: Faidhle dhen t-seòrsa “$1†ris nach eil taic no tasglann bhriste" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" +msgid "Unable to install a modpack as a $1" msgstr "" -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "Pacaidean air an stà ladh:" +#: 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 "" #: builtin/mainmenu/tab_content.lua -msgid "No package description available" +msgid "Content" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Rename" +msgid "Disable Texture Pack" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "No dependencies." +msgid "Information:" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" +msgid "Installed Packages:" +msgstr "Pacaidean air an stà ladh:" + +#: builtin/mainmenu/tab_content.lua +msgid "No dependencies." msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" +msgid "No package description available" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Information:" +msgid "Rename" msgstr "" #: builtin/mainmenu/tab_content.lua @@ -671,11 +746,11 @@ msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Content" +msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Credits" +msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -683,59 +758,73 @@ msgid "Core Developers" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" +msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" +msgid "Open User Data Directory" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "Stà laich geamannan o ContentDB" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Configure" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "New" +msgid "Announce Server" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Select World:" +msgid "Bind Address" 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 "" #: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Host Server" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Host Game" +msgid "Install games from ContentDB" +msgstr "Stà laich geamannan o ContentDB" + +#: builtin/mainmenu/tab_local.lua +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Announce Server" +msgid "New" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "No world created or selected!" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Bind Address" +msgid "Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -743,15 +832,15 @@ msgid "Port" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" +msgid "Select Mods" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Play Game" +msgid "Select World:" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" +msgid "Server Port" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -762,141 +851,125 @@ msgstr "" msgid "Address / Port" msgstr "Seòladh / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua -msgid "Join Game" +msgid "Favorite" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" +msgid "2x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "None" +msgid "3D Clouds" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No Filter" +msgid "4x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" +msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" +msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" +msgid "Antialiasing:" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" +msgid "Autosave Screen Size" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" +msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "2x" +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "4x" +msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "8x" +msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" +msgid "Mipmap" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Yes" +msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" +msgid "No Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" +msgid "No Mipmap" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Particles" +msgid "Node Highlighting" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" +msgid "Node Outlining" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" +msgid "None" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" +msgid "Opaque Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" +msgid "Opaque Water" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" +msgid "Particles" msgstr "" #: builtin/mainmenu/tab_settings.lua @@ -904,7 +977,7 @@ msgid "Screen:" msgstr "Sgrìn:" #: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" +msgid "Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp @@ -912,43 +985,41 @@ 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 -msgid "Change Keys" +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" +msgid "Smooth Lighting" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" +msgid "Texturing:" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" +msgid "To enable shaders the OpenGL driver needs to be used." msgstr "" +"Airson sgà ileadairean a chur an comas, feumaidh tu draibhear OpenGL a " +"chleachdadh." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" +msgid "Touchthreshold: (px)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" +msgid "Trilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua @@ -956,33 +1027,27 @@ msgid "Waving Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." +msgid "Waving Liquids" msgstr "" -"Airson sgà ileadairean a chur an comas, feumaidh tu draibhear OpenGL a " -"chleachdadh." #: builtin/mainmenu/tab_settings.lua -msgid "Settings" +msgid "Waving Plants" msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" +#: src/client/client.cpp +msgid "Connection timed out." msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" +#: src/client/client.cpp +msgid "Done!" msgstr "" -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" +#: src/client/client.cpp +msgid "Initializing nodes" msgstr "" #: src/client/client.cpp -msgid "Connection timed out." +msgid "Initializing nodes..." msgstr "" #: src/client/client.cpp @@ -993,16 +1058,16 @@ msgstr "" msgid "Rebuilding shaders..." msgstr "" -#: src/client/client.cpp -msgid "Initializing nodes..." +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" msgstr "" -#: src/client/client.cpp -msgid "Initializing nodes" +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" msgstr "" -#: src/client/client.cpp -msgid "Done!" +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." msgstr "" #: src/client/clientlauncher.cpp @@ -1010,39 +1075,27 @@ msgid "Main Menu" msgstr "" #: src/client/clientlauncher.cpp -msgid "Player name too long." +msgid "No world selected and no address provided. Nothing to do." msgstr "" #: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" +msgid "Player name too long." msgstr "" #: src/client/clientlauncher.cpp -#, fuzzy -msgid "Provided password file failed to open: " -msgstr " " - -#: src/client/clientlauncher.cpp msgid "Please choose a name!" msgstr "" #: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" +#, fuzzy +msgid "Provided password file failed to open: " +msgstr " " #: src/client/clientlauncher.cpp #, fuzzy msgid "Provided world path doesn't exist: " msgstr " " -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" #. into the translation field (literally). @@ -1056,165 +1109,199 @@ msgid "needs_fallback_font" msgstr "no" #: src/client/game.cpp -msgid "Shutting down..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" #: src/client/game.cpp -msgid "Creating server..." -msgstr "" +#, fuzzy +msgid "- Address: " +msgstr " " #: src/client/game.cpp -msgid "Creating client..." -msgstr "" +#, fuzzy +msgid "- Creative Mode: " +msgstr " " #: src/client/game.cpp -msgid "Resolving address..." -msgstr "" +msgid "- Damage: " +msgstr "– Dochann: " #: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" +#, fuzzy +msgid "- Mode: " +msgstr " " #: src/client/game.cpp -msgid "Item definitions..." -msgstr "" +#, fuzzy +msgid "- Port: " +msgstr " " #: src/client/game.cpp -msgid "Node definitions..." -msgstr "" +#, fuzzy +msgid "- Public: " +msgstr " " +#. ~ PvP = Player versus Player #: src/client/game.cpp -msgid "Media..." -msgstr "" +#, fuzzy +msgid "- PvP: " +msgstr " " #: src/client/game.cpp -msgid "KiB/s" -msgstr "" +#, fuzzy +msgid "- Server Name: " +msgstr " " #: src/client/game.cpp -msgid "MiB/s" +msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -msgid "Client side scripting is disabled" +msgid "Automatic forward enabled" msgstr "" #: src/client/game.cpp -msgid "Sound muted" +msgid "Camera update disabled" msgstr "" #: src/client/game.cpp -msgid "Sound unmuted" +msgid "Camera update enabled" msgstr "" #: src/client/game.cpp -msgid "Sound system is disabled" +msgid "Change Password" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" +msgid "Cinematic mode disabled" msgstr "" #: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" +msgid "Cinematic mode enabled" +msgstr "Tha am modh film an comas" #: src/client/game.cpp -msgid "ok" +msgid "Client side scripting is disabled" msgstr "" #: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "Tha am modh sgiathaidh an comas" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Tha am modh sgiathaidh an comas (an aire: gun sochair “flyâ€)" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "Tha am modh sgiathaidh à comas" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" +msgid "Connecting to server..." msgstr "" #: src/client/game.cpp -msgid "Pitch move mode disabled" +msgid "Continue" msgstr "" #: src/client/game.cpp -msgid "Fast mode enabled" +#, fuzzy, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" msgstr "" +"Stiùireadh:\n" +"- %s: gluais an comhair a’ bheòil\n" +"- %s: gluais an comhair a’ chùil\n" +"- %s: gluais dhan taobh clì\n" +"- %s: gluais dhan taobh deas\n" +"- %s: leum/sreap\n" +"- %s: tà islich/dìrich\n" +"- %s: leig à s nì\n" +"- %s: an tasgadh\n" +"- Luchag: tionndaidh/coimhead\n" +"- Putan clì na luchaige: geà rr/buail\n" +"- Putan deas na luchaige: cuir ann/cleachd\n" +"- Cuibhle na luchaige: tagh nì\n" +"- %s: cabadaich\n" #: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Tha am modh luath an comas (an aire: gun sochair “fastâ€)" - -#: src/client/game.cpp -msgid "Fast mode disabled" +msgid "Creating client..." msgstr "" #: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "Tha am modh gun bhearradh an comas" +msgid "Creating server..." +msgstr "" #: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "Tha am modh gun bhearradh an comas (an aire: gun sochair “noclipâ€)" +msgid "Debug info and profiler graph hidden" +msgstr "" #: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "Tha am modh gun bhearradh à comas" +msgid "Debug info shown" +msgstr "" #: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "Tha am modh film an comas" +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "" #: src/client/game.cpp -msgid "Cinematic mode disabled" +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 "Automatic forward enabled" +msgid "Disabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Automatic forward disabled" +msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" +msgid "Exit to Menu" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" +msgid "Exit to OS" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" +msgid "Fast mode disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" +msgid "Fast mode enabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "Tha am modh luath an comas (an aire: gun sochair “fastâ€)" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" +msgid "Fly mode disabled" +msgstr "Tha am modh sgiathaidh à comas" #: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" +msgid "Fly mode enabled" +msgstr "Tha am modh sgiathaidh an comas" #: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "Tha am modh sgiathaidh an comas (an aire: gun sochair “flyâ€)" #: src/client/game.cpp msgid "Fog disabled" @@ -1225,201 +1312,143 @@ msgid "Fog enabled" msgstr "" #: src/client/game.cpp -msgid "Debug info shown" +msgid "Game info:" +msgstr "Fiosrachadh mun gheama:" + +#: src/client/game.cpp +msgid "Game paused" msgstr "" #: src/client/game.cpp -msgid "Profiler graph shown" +msgid "Hosting server" msgstr "" #: src/client/game.cpp -msgid "Wireframe shown" +msgid "Item definitions..." msgstr "" #: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" +msgid "KiB/s" msgstr "" #: src/client/game.cpp -msgid "Debug info and profiler graph hidden" +msgid "Media..." msgstr "" #: src/client/game.cpp -msgid "Camera update disabled" +msgid "MiB/s" msgstr "" #: src/client/game.cpp -msgid "Camera update enabled" +msgid "Minimap currently disabled by game or mod" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "Tha astar na faicsinn cho mòr sa ghabhas: %d" +msgid "Noclip mode disabled" +msgstr "Tha am modh gun bhearradh à comas" #: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" +msgid "Noclip mode enabled" +msgstr "Tha am modh gun bhearradh an comas" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgstr "Tha am modh gun bhearradh an comas (an aire: gun sochair “noclipâ€)" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" +msgid "Node definitions..." msgstr "" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" +msgid "Off" msgstr "" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +msgid "On" 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" +msgid "Pitch move mode disabled" msgstr "" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" +msgid "Pitch move mode enabled" msgstr "" -"Stiùireadh:\n" -"- %s: gluais an comhair a’ bheòil\n" -"- %s: gluais an comhair a’ chùil\n" -"- %s: gluais dhan taobh clì\n" -"- %s: gluais dhan taobh deas\n" -"- %s: leum/sreap\n" -"- %s: tà islich/dìrich\n" -"- %s: leig à s nì\n" -"- %s: an tasgadh\n" -"- Luchag: tionndaidh/coimhead\n" -"- Putan clì na luchaige: geà rr/buail\n" -"- Putan deas na luchaige: cuir ann/cleachd\n" -"- Cuibhle na luchaige: tagh nì\n" -"- %s: cabadaich\n" #: src/client/game.cpp -msgid "Continue" +msgid "Profiler graph shown" msgstr "" #: src/client/game.cpp -msgid "Change Password" +msgid "Remote server" msgstr "" #: src/client/game.cpp -msgid "Game paused" +msgid "Resolving address..." msgstr "" #: src/client/game.cpp -msgid "Sound Volume" +msgid "Shutting down..." msgstr "" #: src/client/game.cpp -msgid "Exit to Menu" +msgid "Singleplayer" msgstr "" #: src/client/game.cpp -msgid "Exit to OS" +msgid "Sound Volume" msgstr "" #: src/client/game.cpp -msgid "Game info:" -msgstr "Fiosrachadh mun gheama:" +msgid "Sound muted" +msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Mode: " -msgstr " " +msgid "Sound system is disabled" +msgstr "" #: src/client/game.cpp -msgid "Remote server" +msgid "Sound system is not supported on this build" msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Address: " -msgstr " " +msgid "Sound unmuted" +msgstr "" #: src/client/game.cpp -msgid "Hosting server" +#, c-format +msgid "Viewing range changed to %d" msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Port: " -msgstr " " +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "Tha astar na faicsinn cho mòr sa ghabhas: %d" #: src/client/game.cpp -msgid "Singleplayer" +#, c-format +msgid "Viewing range is at minimum: %d" msgstr "" #: src/client/game.cpp -msgid "On" +#, c-format +msgid "Volume changed to %d%%" msgstr "" #: src/client/game.cpp -msgid "Off" +msgid "Wireframe shown" msgstr "" #: src/client/game.cpp -msgid "- Damage: " -msgstr "– Dochann: " - -#: src/client/game.cpp -#, fuzzy -msgid "- Creative Mode: " -msgstr " " - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -#, fuzzy -msgid "- PvP: " -msgstr " " - -#: src/client/game.cpp -#, fuzzy -msgid "- Public: " -msgstr " " +msgid "Zoom currently disabled by game or mod" +msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "- Server Name: " -msgstr " " +msgid "ok" +msgstr "" -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." +#: src/client/gameui.cpp +msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp @@ -1427,7 +1456,7 @@ msgid "Chat shown" msgstr "Tha a’ chabadaich ’ga shealltainn" #: src/client/gameui.cpp -msgid "Chat hidden" +msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp @@ -1435,7 +1464,7 @@ msgid "HUD shown" msgstr "" #: src/client/gameui.cpp -msgid "HUD hidden" +msgid "Profiler hidden" msgstr "" #: src/client/gameui.cpp @@ -1443,135 +1472,129 @@ msgstr "" msgid "Profiler shown (page %d of %d)" msgstr "" -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - #: src/client/keycode.cpp -msgid "Left Button" +msgid "Apps" msgstr "" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "" +msgid "Backspace" +msgstr "Backspace" #: src/client/keycode.cpp -msgid "Middle Button" +msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp -msgid "X Button 1" +msgid "Clear" msgstr "" #: src/client/keycode.cpp -msgid "X Button 2" +msgid "Control" msgstr "" #: src/client/keycode.cpp -msgid "Backspace" -msgstr "Backspace" +msgid "Down" +msgstr "" #: src/client/keycode.cpp -msgid "Tab" +msgid "End" msgstr "" #: src/client/keycode.cpp -msgid "Clear" +msgid "Erase EOF" msgstr "" #: src/client/keycode.cpp -msgid "Return" +msgid "Execute" msgstr "" #: src/client/keycode.cpp -msgid "Shift" +msgid "Help" msgstr "" #: src/client/keycode.cpp -msgid "Control" +msgid "Home" msgstr "" -#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Menu" +msgid "IME Accept" msgstr "" #: src/client/keycode.cpp -msgid "Pause" +msgid "IME Convert" msgstr "" #: src/client/keycode.cpp -msgid "Caps Lock" +msgid "IME Escape" msgstr "" #: src/client/keycode.cpp -msgid "Space" +msgid "IME Mode Change" msgstr "" #: src/client/keycode.cpp -msgid "Page up" +msgid "IME Nonconvert" msgstr "" #: src/client/keycode.cpp -msgid "Page down" +msgid "Insert" msgstr "" -#: src/client/keycode.cpp -msgid "End" +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" msgstr "" #: src/client/keycode.cpp -msgid "Home" +msgid "Left Button" msgstr "" -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "Control clì" #: src/client/keycode.cpp -msgid "Up" +msgid "Left Menu" msgstr "" -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" +#: src/client/keycode.cpp +msgid "Left Shift" msgstr "" #: src/client/keycode.cpp -msgid "Down" +msgid "Left Windows" msgstr "" -#. ~ Key name +#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Select" +msgid "Menu" msgstr "" -#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Print" +msgid "Middle Button" msgstr "" #: src/client/keycode.cpp -msgid "Execute" +msgid "Num Lock" msgstr "" #: src/client/keycode.cpp -msgid "Snapshot" +msgid "Numpad *" msgstr "" #: src/client/keycode.cpp -msgid "Insert" +msgid "Numpad +" msgstr "" #: src/client/keycode.cpp -msgid "Help" +msgid "Numpad -" msgstr "" #: src/client/keycode.cpp -msgid "Left Windows" +msgid "Numpad ." msgstr "" #: src/client/keycode.cpp -msgid "Right Windows" +msgid "Numpad /" msgstr "" #: src/client/keycode.cpp @@ -1615,99 +1638,127 @@ msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp -msgid "Numpad *" +msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp -msgid "Numpad +" +msgid "Page down" msgstr "" #: src/client/keycode.cpp -msgid "Numpad ." +msgid "Page up" msgstr "" #: src/client/keycode.cpp -msgid "Numpad -" +msgid "Pause" msgstr "" #: src/client/keycode.cpp -msgid "Numpad /" +msgid "Play" msgstr "" +#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Num Lock" +msgid "Print" msgstr "" #: src/client/keycode.cpp -msgid "Scroll Lock" +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" msgstr "" #: src/client/keycode.cpp -msgid "Left Shift" +msgid "Right Button" msgstr "" #: src/client/keycode.cpp -msgid "Right Shift" +msgid "Right Control" msgstr "" #: src/client/keycode.cpp -msgid "Left Control" -msgstr "Control clì" +msgid "Right Menu" +msgstr "" #: src/client/keycode.cpp -msgid "Right Control" +msgid "Right Shift" msgstr "" #: src/client/keycode.cpp -msgid "Left Menu" +msgid "Right Windows" msgstr "" #: src/client/keycode.cpp -msgid "Right Menu" +msgid "Scroll Lock" msgstr "" +#. ~ Key name #: src/client/keycode.cpp -msgid "IME Escape" +msgid "Select" msgstr "" #: src/client/keycode.cpp -msgid "IME Convert" +msgid "Shift" msgstr "" #: src/client/keycode.cpp -msgid "IME Nonconvert" +msgid "Sleep" msgstr "" #: src/client/keycode.cpp -msgid "IME Accept" +msgid "Snapshot" msgstr "" #: src/client/keycode.cpp -msgid "IME Mode Change" +msgid "Space" msgstr "" #: src/client/keycode.cpp -msgid "Apps" +msgid "Tab" msgstr "" #: src/client/keycode.cpp -msgid "Sleep" +msgid "Up" msgstr "" #: src/client/keycode.cpp -msgid "Erase EOF" +msgid "X Button 1" msgstr "" #: src/client/keycode.cpp -msgid "Play" +msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" -#: src/client/keycode.cpp -msgid "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp @@ -1720,120 +1771,104 @@ msgid "" "creation, or click 'Cancel' to abort." msgstr "" -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "Thoir gnogag dhùbailte air “leum†airson sgiathadh a thoglachadh" +msgid "Autoforward" +msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" +msgid "Backward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "brùth air iuchair" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" +msgid "Change camera" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" +msgid "Chat" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Special" +msgid "Command" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" +msgid "Console" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "Tà islich" +msgid "Dec. range" +msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" +msgid "Dec. volume" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" +msgid "Double tap \"jump\" to toggle fly" +msgstr "Thoir gnogag dhùbailte air “leum†airson sgiathadh a thoglachadh" #: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" +msgid "Drop" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" +msgid "Forward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" +msgid "Inc. range" +msgstr "Meudaich an t-astar" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" +msgid "Inc. volume" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "Toglaich sgiathadh" +msgid "Inventory" +msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" +msgid "Jump" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" +msgid "Key already in use" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "Toglaich am modh gun bhearradh" +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" +msgid "Local command" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" +msgid "Mute" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" +msgid "Next item" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" +msgid "Prev. item" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" +msgid "Range select" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp @@ -1841,47 +1876,51 @@ msgid "Screenshot" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" +msgid "Sneak" +msgstr "Tà islich" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" +msgid "Special" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "Meudaich an t-astar" +msgid "Toggle HUD" +msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Console" +msgid "Toggle chat log" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Command" +msgid "Toggle fast" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" +msgid "Toggle fly" +msgstr "Toglaich sgiathadh" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" +msgid "Toggle fog" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" +msgid "Toggle minimap" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" +msgid "Toggle noclip" +msgstr "Toglaich am modh gun bhearradh" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "brùth air iuchair" + #: src/gui/guiPasswordChange.cpp -msgid "New Password" +msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp @@ -1889,13 +1928,12 @@ msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "Change" +msgid "New Password" msgstr "" -#: src/gui/guiVolumeChange.cpp -#, fuzzy -msgid "Sound Volume: " -msgstr " " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" #: src/gui/guiVolumeChange.cpp msgid "Exit" @@ -1905,6 +1943,11 @@ msgstr "" msgid "Muted" msgstr "" +#: src/gui/guiVolumeChange.cpp +#, fuzzy +msgid "Sound Volume: " +msgstr " " + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1919,3040 +1962,3035 @@ msgid "LANG_CODE" msgstr "gd" #: src/settings_translation_file.cpp -msgid "Controls" +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 "Build inside player" +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 "" -"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." +"(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 "" -"Ma tha seo an comas, ’s urrainn dhut blocaichean a chur ann far a bheil thu ’" -"nad sheasamh (co chois + à irde do shùil).\n" -"Bidh seo feumail nuair a bhios tu ag obair le bogsaichean nòd ann an " -"raointean beaga." - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "Sgiathadh" #: src/settings_translation_file.cpp msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." +"(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 "" -"’S urrainn dhan chluicheadair sgiathadh gun bhuaidh na iom-tharraing air.\n" -"Bidh feum air sochair “fly†air an fhrithealaiche." #: src/settings_translation_file.cpp -msgid "Pitch move mode" +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" -"Ma tha seo an comas, bidh an gluasad a-rèir pids a’ chluicheadair rè " -"sgiathaidh no snà imh." +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "Riasladh 2D a stiùiricheas cruth/meud nan cnoc." #: src/settings_translation_file.cpp -msgid "Fast movement" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" -"Gluasad luath (leis an iuchair “shònraichteâ€).\n" -"Bidh feum air sochair “fast†air an fhrithealaiche." #: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "Gun bhearradh" +msgid "2D noise that controls the size/occurrence of rolling hills." +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." +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" -"Ma tha seo an comas còmhla ris a’ mhodh sgiathaidh, ’s urrainn dhan " -"chluicheadair sgiathadh tro nòdan soladach.\n" -"Bidh feum air sochair “noclip†on fhrithealaiche." #: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" +msgid "2D noise that locates the river valleys and channels." +msgstr "Riasladh 2D a shuidhicheas glinn is sruthan nan aibhnean." #: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." +msgid "3D clouds" msgstr "" #: src/settings_translation_file.cpp -msgid "Camera smoothing" +msgid "3D mode" msgstr "" #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." +msgid "3D mode parallax strength" msgstr "" #: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" +msgid "3D noise defining giant caverns." msgstr "" #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." msgstr "" +"Riasladh 3D a mhìnicheas structar is à irde nam beanntan.\n" +"Mìnichidh e cruth-tìre nam beanntan air tìr air fhleòd cuideachd." #: src/settings_translation_file.cpp -msgid "Invert mouse" +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." msgstr "" +"Riasladh 3D a mhìnicheas structar na tìre air fhleòd.\n" +"Mura cleachd thu an luach tùsail, dh’fhaoidte gum fheà irrde thu gleus a chur " +"air “scale†an riaslaidh (0.7 o thùs)\n" +", on a dh’obraicheas foincseanan cinn-chaoil as fheà rr\n" +"nuair a bhios an riasladh seo eadar mu -2.0 agus 2.0." #: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" +msgid "3D noise defining structure of river canyon walls." +msgstr "Riasladh 3D a mhìnicheas structar ballachan sgoltaidhean-aibhne." #: src/settings_translation_file.cpp -msgid "Mouse sensitivity" +msgid "3D noise defining terrain." msgstr "" #: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." msgstr "" #: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" +msgid "3D noise that determines number of dungeons per mapchunk." msgstr "" +"Riasladh 3D a mhìnicheas an à ireamh dhe thuill-dhubha anns gach cnap mapa." #: src/settings_translation_file.cpp msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." +"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 "" -"Ma tha seo an comas, thèid iuchair “shònraichte†seach “tà isleachaidh†a " -"chleachdadh\n" -"airson dìreadh." #: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "Thoir gnogag dhùbailte airson leum no sgiathadh" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "Toglaichidh gnogag dhùbailte air iuchair an leuma am modh sgiathaidh." +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 "Always fly and fast" -msgstr "Sgiathaich an-còmhnaidh ’s gu luath" +msgid "A message to be displayed to all clients when the server crashes." +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." +msgid "A message to be displayed to all clients when the server shuts down." msgstr "" -"Ma tha seo à comas, thèid iuchair “shònraichte†a chleachdadh airson " -"sgiathadh\n" -"ma tha an dà chuid am modh sgiathaidh ’s am modh luadh an comas." #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" +msgid "ABM 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." +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." +msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp -msgid "Safe digging and placing" +msgid "Acceleration in air" 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." +msgid "Acceleration of gravity, in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Random input" +msgid "Active Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." +msgid "Active block management interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Continuous forward" +msgid "Active block range" 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." +msgid "Active object send range" msgstr "" #: src/settings_translation_file.cpp -msgid "Touch screen threshold" +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 "The length in pixels it takes for touch screen interaction to start." +msgid "Adds particles when digging a node." msgstr "" #: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" +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 "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." +"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 "Virtual joystick triggers aux button" +msgid "Advanced" 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." +"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 "" +"Atharraichidh seo lùb an t-solais a’ cur “gamma correction†air.\n" +"Nì luachan nas à irde an solas meadhanach no fann nas soilleire.\n" +"Fà gaidh luach “1.0†lùb an t-solais mar a tha i.\n" +"Chan eil buaidh mhòr aige ach air solas an latha is na h-oidhche fuadaine,\n" +"agus cha mhòr nach bi buaidh air solas oidhche nà darra idir." #: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" +msgid "Always fly and fast" +msgstr "Sgiathaich an-còmhnaidh ’s gu luath" #: src/settings_translation_file.cpp -msgid "Joystick ID" +msgid "Ambient occlusion gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" +msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" +msgid "Amplifies the valleys." +msgstr "Meudaichidh seo na glinn." #: src/settings_translation_file.cpp -msgid "The type of joystick" +msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" +msgid "Announce server" +msgstr "Ainmich am frithealaiche" + +#: src/settings_translation_file.cpp +msgid "Announce to this serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." +msgid "Append item name" msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" +msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." +msgid "Apple trees noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Forward key" +msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp -msgid "Backward key" +msgid "Ask to reconnect after crash" 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" +"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 "Left key" +msgid "Automatic forward key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Automatically jump up single-node obstacles." msgstr "" -"An iuchair a ghluaiseas an cluicheadair dhan taobh chlì.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Right key" +msgid "Automatically report to the serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Autosave screen size" msgstr "" -"An iuchair a ghluaiseas an cluicheadair dhan taobh deas.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Jump key" +msgid "Autoscaling mode" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Backward key" msgstr "" #: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "Iuchair an tà isleachaidh" +msgid "Base ground level" +msgstr "Àirde bhunasach a’ ghrunnda" #: 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" +msgid "Base terrain height." msgstr "" -"An iuchair airson tà isleachadh.\n" -"Tha i ‘ga cleachdadh airson dìreadh agus dìreadh san uisge ma bhios " -"aux1_descends à comas.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Inventory key" +msgid "Basic" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Basic privileges" +msgstr "Sochairean bunasach" #: src/settings_translation_file.cpp -msgid "Special key" +msgid "Beach noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Beach noise threshold" msgstr "" -"An iuchair a ghluaiseas gu luath sa mhodh luath.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Chat key" +msgid "Bilinear filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bind address" msgstr "" #: src/settings_translation_file.cpp -msgid "Command key" +msgid "Biome API temperature and humidity noise parameters" 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" +msgid "Biome noise" 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" +msgid "Bits per pixel (aka color depth) in fullscreen mode." msgstr "" #: src/settings_translation_file.cpp -msgid "Range select key" +msgid "Block send optimize distance" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bold and italic font path" msgstr "" #: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "Iuchair an sgiathaidh" +msgid "Bold and italic monospace font path" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bold font path" msgstr "" -"An iuchair a thoglaicheas an sgiathadh.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Pitch move key" +msgid "Bold monospace font path" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Build inside player" msgstr "" #: src/settings_translation_file.cpp -msgid "Fast key" +msgid "Builtin" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Noclip key" -msgstr "Iuchair modha gun bhearradh" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Camera smoothing" msgstr "" -"An iuchair a thoglaicheas am modh gun bhearradh.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "Iuchair air adhart a’ ghrad-bhà r" +msgid "Camera smoothing in cinematic mode" +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" +msgid "Camera update toggle key" msgstr "" -"An iuchair a thaghas an ath-nì air a’ ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "Iuchair air ais a’ ghrad-bhà r" +msgid "Cave noise" +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" +msgid "Cave noise #1" msgstr "" -"An iuchair a thaghas an nì roimhe air a’ ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mute key" +msgid "Cave noise #2" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cave width" msgstr "" #: src/settings_translation_file.cpp -msgid "Inc. volume key" +msgid "Cave1 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cave2 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Dec. volume key" +msgid "Cavern limit" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cavern noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Automatic forward key" +msgid "Cavern taper" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cavern threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Cinematic mode key" +msgid "Cavern upper limit" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"Meadhan rainse meudachadh lùb an t-solais.\n" +"Is 0.0 an ìre as fhainne agus 1.0 an ìre as soilleire air an solas." #: src/settings_translation_file.cpp -msgid "Minimap key" +msgid "Chat font size" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Chat log level" +msgstr "ÃŒre loga na cabadaich" #: src/settings_translation_file.cpp -msgid "Drop item key" +msgid "Chat message count limit" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat message format" msgstr "" #: src/settings_translation_file.cpp -msgid "View zoom key" +msgid "Chat message kick threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat message max length" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "Iuchair air slot 1 a’ ghrad-bhà r" +msgid "Chat toggle key" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chatcommands" msgstr "" -"An iuchair a thaghas a’ chiad slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "Iuchair air slot 2 a’ ghrad-bhà r" +msgid "Chunk size" +msgstr "Meud nan cnapan" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cinematic mode" msgstr "" -"An iuchair a thaghas an dà rna slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "Iuchair air slot 3 a’ ghrad-bhà r" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cinematic mode key" msgstr "" -"An iuchair a thaghas an treas slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "Iuchair air slot 4 a’ ghrad-bhà r" +msgid "Clean transparent textures" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Client" msgstr "" -"An iuchair a thaghas an ceathramh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "Iuchair air slot 5 a’ ghrad-bhà r" +msgid "Client and Server" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Client modding" msgstr "" -"An iuchair a thaghas an còigeamh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "Iuchair air slot 6 a’ ghrad-bhà r" +msgid "Client side modding restrictions" +msgstr "Cuingeachadh tuilleadain air a’ chliant" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Client side node lookup range restriction" msgstr "" -"An iuchair a thaghas an siathamh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "Iuchair air slot 7 a’ ghrad-bhà r" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Climbing speed" msgstr "" -"An iuchair a thaghas an seachdamh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "Iuchair air slot 8 a’ ghrad-bhà r" +msgid "Cloud radius" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clouds" msgstr "" -"An iuchair a thaghas an t-ochdamh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "Iuchair air slot 9 a’ ghrad-bhà r" +msgid "Clouds are a client side effect." +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clouds in menu" msgstr "" -"An iuchair a thaghas an naoidheamh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "Iuchair air slot 10 a’ ghrad-bhà r" +msgid "Colored fog" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"An iuchair a thaghas an deicheamh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "Iuchair air slot 11 a’ ghrad-bhà r" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"An iuchair a thaghas an 11mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "Iuchair air slot 12 a’ ghrad-bhà r" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"An iuchair a thaghas an 12mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "Iuchair air slot 13 a’ ghrad-bhà r" +msgid "Command key" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Connect glass" msgstr "" -"An iuchair a thaghas an 13mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "Iuchair air slot 14 a’ ghrad-bhà r" +msgid "Connect to external media server" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Connects glass if supported by node." msgstr "" -"An iuchair a thaghas an 14mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "Iuchair air slot 15 a’ ghrad-bhà r" +msgid "Console alpha" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Console color" msgstr "" -"An iuchair a thaghas an 15mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "Iuchair air slot 16 a’ ghrad-bhà r" +msgid "Console height" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "ContentDB Flag Blacklist" msgstr "" -"An iuchair a thaghas an 16mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "Iuchair air slot 17 a’ ghrad-bhà r" +msgid "ContentDB Max Concurrent Downloads" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "ContentDB URL" msgstr "" -"An iuchair a thaghas an 17mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "Iuchair air slot 18 a’ ghrad-bhà r" +msgid "Continuous forward" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." msgstr "" -"An iuchair a thaghas an 18mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "Iuchair air slot 19 a’ ghrad-bhà r" +msgid "Controls" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" -"An iuchair a thaghas an 19mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "Iuchair air slot 20 a’ ghrad-bhà r" +msgid "Controls sinking speed in liquid." +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Controls steepness/depth of lake depressions." msgstr "" -"An iuchair a thaghas am 20mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "Iuchair air slot 21 a’ ghrad-bhà r" +msgid "Controls steepness/height of hills." +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"An iuchair a thaghas am 21mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "Iuchair air slot 22 a’ ghrad-bhà r" +msgid "Crash message" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Creative" msgstr "" -"An iuchair a thaghas am 22mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "Iuchair air slot 23 a’ ghrad-bhà r" +msgid "Crosshair alpha" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" -"An iuchair a thaghas am 23mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "Iuchair air slot 24 a’ ghrad-bhà r" +msgid "Crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" -"An iuchair a thaghas am 24mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "Iuchair air slot 25 a’ ghrad-bhà r" +msgid "DPI" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Damage" msgstr "" -"An iuchair a thaghas am 25mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "Iuchair air slot 26 a’ ghrad-bhà r" +msgid "Debug info toggle key" +msgstr "Iuchair toglachadh an fhiosrachaidh dì-bhugachaidh" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Debug log file size threshold" msgstr "" -"An iuchair a thaghas am 26mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "Iuchair air slot 27 a’ ghrad-bhà r" +msgid "Debug log level" +msgstr "ÃŒre an loga dì-bhugachaidh" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Dec. volume key" msgstr "" -"An iuchair a thaghas am 27mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "Iuchair air slot 28 a’ ghrad-bhà r" +msgid "Decrease this to increase liquid resistance to movement." +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Dedicated server step" msgstr "" -"An iuchair a thaghas am 28mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "Iuchair air slot 29 a’ ghrad-bhà r" +msgid "Default acceleration" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Default game" msgstr "" -"An iuchair a thaghas am 29mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "Iuchair air slot 30 a’ ghrad-bhà r" +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 "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Default password" msgstr "" -"An iuchair a thaghas am 30mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "Iuchair air slot 31 a’ ghrad-bhà r" +msgid "Default privileges" +msgstr "Sochairean tùsail" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Default report format" msgstr "" -"An iuchair a thaghas am 31mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "Iuchair air slot 32 a’ ghrad-bhà r" +msgid "Default stack size" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." msgstr "" -"An iuchair a thaghas am 32mh slot dhen ghrad-bhà r.\n" -"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "HUD toggle key" +msgid "Defines areas where trees have apples." 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" +msgid "Defines areas with sandy beaches." msgstr "" #: src/settings_translation_file.cpp -msgid "Chat toggle key" +msgid "Defines distribution of higher terrain and steepness of cliffs." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Defines distribution of higher terrain." msgstr "" #: src/settings_translation_file.cpp -msgid "Large chat console key" +msgid "Defines full size of caverns, smaller values create larger caverns." 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 "" +msgid "Defines large-scale river channel structure." +msgstr "Mìnichidh seo structar sruth nan aibhnean mòra." #: src/settings_translation_file.cpp -msgid "Fog toggle key" +msgid "Defines location and terrain of optional hills and lakes." 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 "" +msgid "Defines the base ground level." +msgstr "Mìnichidh seo à irde bhunasach a’ ghrunnda." #: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" +msgid "Defines the depth of the river channel." +msgstr "Mìnichidh seo doimhne sruth nan aibhnean." #: 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" +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" +"Mìnichidh seo an t-astar as motha airson tar-chur chluicheadairean ann am " +"bloca (0 = gun chuingeachadh)." #: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "Iuchair toglachadh an fhiosrachaidh dì-bhugachaidh" +msgid "Defines the width of the river channel." +msgstr "Mìnichidh seo leud sruth nan aibhnean." #: 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 "" +msgid "Defines the width of the river valley." +msgstr "Mìnichidh seo leud gleanntan nan aibhnean." #: src/settings_translation_file.cpp -msgid "Profiler toggle key" +msgid "Defines tree areas and tree density." 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" +"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 "Toggle camera mode key" +msgid "Delay in sending blocks after building" 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" +msgid "Delay showing tooltips, stated in milliseconds." msgstr "" #: src/settings_translation_file.cpp -msgid "View range increase key" +msgid "Deprecated Lua API handling" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Depth below which you'll find giant caverns." msgstr "" #: src/settings_translation_file.cpp -msgid "View range decrease key" +msgid "Depth below which you'll find large caves." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Description of server, to be displayed when players join and in the " +"serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "Graphics" +msgid "Desert noise threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "In-Game" +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 "Basic" +msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp -msgid "VBO" +msgid "Dig key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." +msgid "Digging particles" msgstr "" #: src/settings_translation_file.cpp -msgid "Fog" +msgid "Disable anticheat" msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." +msgid "Disallow empty passwords" msgstr "" #: src/settings_translation_file.cpp -msgid "Leaves style" +msgid "Domain name of server, to be displayed in the serverlist." 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 "" +msgid "Double tap jump for fly" +msgstr "Thoir gnogag dhùbailte airson leum no sgiathadh" #: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" +msgid "Double-tapping the jump key toggles fly mode." +msgstr "Toglaichidh gnogag dhùbailte air iuchair an leuma am modh sgiathaidh." #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." +msgid "Drop item key" msgstr "" #: src/settings_translation_file.cpp -msgid "Smooth lighting" +msgid "Dump the mapgen debug information." +msgstr "Dumpaich fiosrachadh dì-bhugachaidh aig gineadair nam mapa." + +#: src/settings_translation_file.cpp +msgid "Dungeon maximum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." +msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds" +msgid "Dungeon noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." +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 "3D clouds" +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." msgstr "" #: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." +msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "Node highlighting" +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." +msgid "Enable joysticks" msgstr "" #: src/settings_translation_file.cpp -msgid "Digging particles" +msgid "Enable mod channels support." msgstr "" #: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." +msgid "Enable mod security" msgstr "" #: src/settings_translation_file.cpp -msgid "Filtering" +msgid "Enable players getting damage and dying." msgstr "" #: src/settings_translation_file.cpp -msgid "Mipmapping" +msgid "Enable random user input (only used for testing)." 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." +msgid "Enable register confirmation" msgstr "" #: src/settings_translation_file.cpp -msgid "Anisotropic filtering" +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." msgstr "" #: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." msgstr "" #: src/settings_translation_file.cpp -msgid "Bilinear filtering" +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 "Use bilinear filtering when scaling textures." +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 "Trilinear filtering" +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." msgstr "" #: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." +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 "Clean transparent textures" +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 "" -"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." +"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 "Minimum texture size" +msgid "Enables animation of inventory items." 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." +msgid "Enables caching of facedir rotated meshes." msgstr "" #: src/settings_translation_file.cpp -msgid "FSAA" +msgid "Enables minimap." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." +"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 "Undersampling" +msgid "Engine profiling data print interval" 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." +msgid "Entity methods" 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." +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." msgstr "" +"An t-easponant aig cinn-chaoil na tìre air fhleòd. Atharraichidh seo giùlnan " +"nan ceann-caol.\n" +"Cruthaichidh luach = 1.0 cinn-chaoil aon-fhillte loidhneach.\n" +"Cruthaichidh luachan > 1.0 cinn-chaoil rèidhe\n" +"a bhios freagarrach dha na cinn-chaoill sgaraichte thùsail.\n" +"Cruthaichidh luachan < 1.0 (can 0.25) uachdar nas mionaidiche le tìr-ìosal " +"nas rèidhe a bhios freagarrach\n" +"do bhreath tìre air fhleòd sholadach." #: src/settings_translation_file.cpp -msgid "Shader path" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." +msgid "FSAA" msgstr "" #: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "Mapadh tòna film" +msgid "Factor noise" +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 "" +msgid "Fall bobbing factor" +msgstr "Factar bogadaich an tuiteim" #: src/settings_translation_file.cpp -msgid "Bumpmapping" +msgid "Fallback font path" 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." +msgid "Fallback font shadow" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" +msgid "Fallback font shadow alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." +msgid "Fallback font size" msgstr "" #: src/settings_translation_file.cpp -msgid "Normalmaps strength" +msgid "Fast key" msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." +msgid "Fast mode acceleration" msgstr "" #: src/settings_translation_file.cpp -msgid "Normalmaps sampling" +msgid "Fast mode speed" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." +msgid "Fast movement" msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion" +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." msgstr "" +"Gluasad luath (leis an iuchair “shònraichteâ€).\n" +"Bidh feum air sochair “fast†air an fhrithealaiche." #: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." +msgid "Field of view" msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" +msgid "Field of view in degrees." msgstr "" #: src/settings_translation_file.cpp msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" +msgid "Filler depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." +msgid "Filler depth noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" +msgid "Filmic tone mapping" +msgstr "Mapadh tòna film" #: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." +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 "Parallax occlusion bias" +msgid "Filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgid "First of 4 2D noises that together define hill/mountain range height." msgstr "" -"Claonadh na h-èifeachd occlusion na paraileig air fheadh, seo sgèile/2 mar " -"as à bhaist." #: src/settings_translation_file.cpp -msgid "Waving Nodes" +msgid "First of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids" +msgid "Fixed map seed" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." +msgid "Fixed virtual joystick" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" +msgid "Floatland density" +msgstr "Dùmhlachd na tìre air fhleòd" #: 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." +msgid "Floatland maximum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" +msgid "Floatland minimum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" +msgid "Floatland noise" +msgstr "Riasladh na tìre air fhleòd" #: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" +msgid "Floatland taper exponent" +msgstr "Easponant cinn-chaoil air tìr air fhleòd" #: 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 "" +msgid "Floatland tapering distance" +msgstr "Astar cinn-chaoil air tìr air fhleòd" #: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "Crathadh duillich" +msgid "Floatland water level" +msgstr "Àirde an uisge air tìr air fhleòd" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" +msgid "Fly key" +msgstr "Iuchair an sgiathaidh" #: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" +msgid "Flying" +msgstr "Sgiathadh" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." +msgid "Fog" msgstr "" #: src/settings_translation_file.cpp -msgid "Advanced" +msgid "Fog start" msgstr "" #: src/settings_translation_file.cpp -msgid "Arm inertia" +msgid "Fog toggle key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." +msgid "Font bold by default" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS" +msgid "Font italic by default" 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." +msgid "Font shadow" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "Font shadow alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Font size" msgstr "" #: src/settings_translation_file.cpp -msgid "Pause on lost window focus" +msgid "Font size of the default font in point (pt)." 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." +msgid "Font size of the fallback font in point (pt)." msgstr "" -"Fosgail clà r-taice a’ chuir ’na stad nuair a chailleas an uinneag am fòcas.\n" -"Cha dèid a chur ’na stad nuair a bhios formspec fosgailte." #: src/settings_translation_file.cpp -msgid "Viewing range" +msgid "Font size of the monospace font in point (pt)." msgstr "" #: src/settings_translation_file.cpp -msgid "View distance in nodes." +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 "Near plane" +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" 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." +msgid "Format of screenshots." msgstr "" #: src/settings_translation_file.cpp -msgid "Screen width" +msgid "Formspec Default Background Color" msgstr "" #: src/settings_translation_file.cpp -msgid "Width component of the initial window size." +msgid "Formspec Default Background Opacity" msgstr "" #: src/settings_translation_file.cpp -msgid "Screen height" +msgid "Formspec Full-Screen Background Color" msgstr "" #: src/settings_translation_file.cpp -msgid "Height component of the initial window size." +msgid "Formspec Full-Screen Background Opacity" msgstr "" #: src/settings_translation_file.cpp -msgid "Autosave screen size" +msgid "Formspec default background color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." +msgid "Formspec default background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp -msgid "Full screen" +msgid "Formspec full-screen background color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Fullscreen mode." +msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp -msgid "Full screen BPP" +msgid "Forward key" msgstr "" #: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgid "Fourth of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "VSync" +msgid "Fractal type" msgstr "" #: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." +msgid "Fraction of the visible distance at which fog starts to be rendered" msgstr "" #: src/settings_translation_file.cpp -msgid "Field of view" +msgid "FreeType fonts" msgstr "" #: src/settings_translation_file.cpp -msgid "Field of view in degrees." +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." msgstr "" +"An t-astar on a thèid blocaichean a ghintinn dha na cliantan, ann am bloca " +"mapa (16 nòdan)." #: src/settings_translation_file.cpp -msgid "Light curve gamma" +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." 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." +"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 "" -"Atharraichidh seo lùb an t-solais a’ cur “gamma correction†air.\n" -"Nì luachan nas à irde an solas meadhanach no fann nas soilleire.\n" -"Fà gaidh luach “1.0†lùb an t-solais mar a tha i.\n" -"Chan eil buaidh mhòr aige ach air solas an latha is na h-oidhche fuadaine,\n" -"agus cha mhòr nach bi buaidh air solas oidhche nà darra idir." #: src/settings_translation_file.cpp -msgid "Light curve low gradient" +msgid "Full screen" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." +msgid "Full screen BPP" msgstr "" -"Caisead lùb an t-solais aig an ìre as fainne.\n" -"Stiùirichidh seo iomsgaradh an t-solais fhainn." #: src/settings_translation_file.cpp -msgid "Light curve high gradient" +msgid "Fullscreen mode." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." +msgid "GUI scaling" msgstr "" -"Caisead lùb an t-solais aig an ìre as soilleire.\n" -"Stiùirichidh seo iomsgaradh an t-solais shoilleir." #: src/settings_translation_file.cpp -msgid "Light curve boost" +msgid "GUI scaling filter" 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." +msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Light curve boost center" +msgid "Global callbacks" 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." +"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 "" -"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." +"Buadhan gintinn mapa uile-choitcheann.\n" +"Ann an gineadair nam mapa v6, stiùirichidh bratach “decorations†sgeadachadh " +"seach craobhan is feur dlùth-choille\n" +"agus ann an gineadairean nam mapa eile, stiùirichidh a’ bhratach seo a h-" +"uile sgeadachadh." #: src/settings_translation_file.cpp -msgid "Light curve boost spread" +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." msgstr "" +"Caisead lùb an t-solais aig an ìre as soilleire.\n" +"Stiùirichidh seo iomsgaradh an t-solais shoilleir." #: src/settings_translation_file.cpp msgid "" -"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." +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." msgstr "" +"Caisead lùb an t-solais aig an ìre as fainne.\n" +"Stiùirichidh seo iomsgaradh an t-solais fhainn." #: src/settings_translation_file.cpp -msgid "Texture path" +msgid "Graphics" msgstr "" #: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." +msgid "Gravity" msgstr "" #: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "Drà ibhear video" +msgid "Ground level" +msgstr "Àirde a’ ghrunnda" #: 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." +msgid "Ground noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Cloud radius" +msgid "HTTP mods" 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." +msgid "HUD scale factor" msgstr "" #: src/settings_translation_file.cpp -msgid "View bobbing factor" +msgid "HUD toggle key" 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." +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" #: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "Factar bogadaich an tuiteim" - -#: src/settings_translation_file.cpp msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +"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 "3D mode" +msgid "Heat blend noise" 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." +msgid "Heat noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" +msgid "Height component of the initial window size." msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." +msgid "Height noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Console height" +msgid "Height select noise" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgid "High-precision FPU" msgstr "" #: src/settings_translation_file.cpp -msgid "Console color" +msgid "Hill steepness" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." +msgid "Hill threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Console alpha" +msgid "Hilliness1 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Hilliness2 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" +msgid "Hilliness3 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." +msgid "Hilliness4 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +msgid "Homepage of server, to be displayed in the serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" +msgid "Hotbar next key" +msgstr "Iuchair air adhart a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" +msgid "Hotbar previous key" +msgstr "Iuchair air ais a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" +msgid "Hotbar slot 1 key" +msgstr "Iuchair air slot 1 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" +msgid "Hotbar slot 10 key" +msgstr "Iuchair air slot 10 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" +msgid "Hotbar slot 11 key" +msgstr "Iuchair air slot 11 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" +msgid "Hotbar slot 12 key" +msgstr "Iuchair air slot 12 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" +msgid "Hotbar slot 13 key" +msgstr "Iuchair air slot 13 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" +msgid "Hotbar slot 14 key" +msgstr "Iuchair air slot 14 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" +msgid "Hotbar slot 15 key" +msgstr "Iuchair air slot 15 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" +msgid "Hotbar slot 16 key" +msgstr "Iuchair air slot 16 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" +msgid "Hotbar slot 17 key" +msgstr "Iuchair air slot 17 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" +msgid "Hotbar slot 18 key" +msgstr "Iuchair air slot 18 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" +msgid "Hotbar slot 19 key" +msgstr "Iuchair air slot 19 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" +msgid "Hotbar slot 2 key" +msgstr "Iuchair air slot 2 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "Leud as motha a’ ghrad-bhà r" +msgid "Hotbar slot 20 key" +msgstr "Iuchair air slot 20 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" -"A’ chuid as motha dhen uinneag là ithreach a thèid a chleachdadh airson a’ " -"ghrad-bhà r.\n" -"Tha seo feumail ma dh’fheumas tu rudeigin a shealltainn taobh deas no clì " -"air a’ ghrad-bhà r." +msgid "Hotbar slot 21 key" +msgstr "Iuchair air slot 21 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" +msgid "Hotbar slot 22 key" +msgstr "Iuchair air slot 22 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" +msgid "Hotbar slot 23 key" +msgstr "Iuchair air slot 23 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" +msgid "Hotbar slot 24 key" +msgstr "Iuchair air slot 24 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" +msgid "Hotbar slot 25 key" +msgstr "Iuchair air slot 25 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" +msgid "Hotbar slot 26 key" +msgstr "Iuchair air slot 26 a’ ghrad-bhà r" #: 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 "" +msgid "Hotbar slot 27 key" +msgstr "Iuchair air slot 27 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" +msgid "Hotbar slot 28 key" +msgstr "Iuchair air slot 28 a’ ghrad-bhà r" #: 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 "" +msgid "Hotbar slot 29 key" +msgstr "Iuchair air slot 29 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" +msgid "Hotbar slot 3 key" +msgstr "Iuchair air slot 3 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" +msgid "Hotbar slot 30 key" +msgstr "Iuchair air slot 30 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" +msgid "Hotbar slot 31 key" +msgstr "Iuchair air slot 31 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" +msgid "Hotbar slot 32 key" +msgstr "Iuchair air slot 32 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" +msgid "Hotbar slot 4 key" +msgstr "Iuchair air slot 4 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" -"True = 256\n" -"False = 128\n" -"Gabhaidh a chleachdadh airson am meanbh-mhapa a dhèanamh nas rèidhe air " -"uidheaman slaodach." +msgid "Hotbar slot 5 key" +msgstr "Iuchair air slot 5 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" +msgid "Hotbar slot 6 key" +msgstr "Iuchair air slot 6 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" +msgid "Hotbar slot 7 key" +msgstr "Iuchair air slot 7 a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" +msgid "Hotbar slot 8 key" +msgstr "Iuchair air slot 8 a’ ghrad-bhà r" + +#: src/settings_translation_file.cpp +msgid "Hotbar slot 9 key" +msgstr "Iuchair air slot 9 a’ ghrad-bhà r" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "Dè cho domhainn ’s a bhios aibhnean." #: src/settings_translation_file.cpp msgid "" -"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." +"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 "Inventory items animations" +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 "Enables animation of inventory items." -msgstr "" +msgid "How wide to make rivers." +msgstr "Dè cho leathann ’s a bhios aibhnean." #: src/settings_translation_file.cpp -msgid "Fog start" +msgid "Humidity blend noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" +msgid "Humidity noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Opaque liquids" +msgid "Humidity variation for biomes." msgstr "" #: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "Dèan gach lionn trìd-dhoilleir" +msgid "IPv6" +msgstr "" #: src/settings_translation_file.cpp -msgid "World-aligned textures mode" +msgid "IPv6 server" 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." +"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 "Autoscaling mode" +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." msgstr "" +"Ma tha seo à comas, thèid iuchair “shònraichte†a chleachdadh airson " +"sgiathadh\n" +"ma tha an dà chuid am modh sgiathaidh ’s am modh luadh an comas." #: src/settings_translation_file.cpp msgid "" -"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!" +"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 "Show entity selection boxes" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." msgstr "" +"Ma tha seo an comas còmhla ris a’ mhodh sgiathaidh, ’s urrainn dhan " +"chluicheadair sgiathadh tro nòdan soladach.\n" +"Bidh feum air sochair “noclip†on fhrithealaiche." #: src/settings_translation_file.cpp -msgid "Menus" +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." msgstr "" +"Ma tha seo an comas, thèid iuchair “shònraichte†seach “tà isleachaidh†a " +"chleachdadh\n" +"airson dìreadh." #: src/settings_translation_file.cpp -msgid "Clouds in menu" +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." msgstr "" #: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." +msgid "If enabled, disable cheat prevention in multiplayer." msgstr "" #: src/settings_translation_file.cpp -msgid "GUI scaling" +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 "" -"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." +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." msgstr "" +"Ma tha seo an comas, bidh an gluasad a-rèir pids a’ chluicheadair rè " +"sgiathaidh no snà imh." #: src/settings_translation_file.cpp -msgid "GUI scaling filter" +msgid "If enabled, new players cannot join with an empty password." 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)." +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." msgstr "" +"Ma tha seo an comas, ’s urrainn dhut blocaichean a chur ann far a bheil thu " +"’nad sheasamh (co chois + à irde do shùil).\n" +"Bidh seo feumail nuair a bhios tu ag obair le bogsaichean nòd ann an " +"raointean beaga." #: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" +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 "" -"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." +"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 "Tooltip delay" +msgid "If this is set, players will always (re)spawn at the given position." msgstr "" #: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" +msgid "Ignore world errors" +msgstr "Leig seachad mearachdan an t-saoghail" #: src/settings_translation_file.cpp -msgid "Append item name" +msgid "In-Game" msgstr "" #: src/settings_translation_file.cpp -msgid "Append item name to tooltip." +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" +msgid "In-game chat console background color (R,G,B)." 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." +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "" #: src/settings_translation_file.cpp -msgid "Font bold by default" +msgid "Inc. volume key" msgstr "" #: src/settings_translation_file.cpp -msgid "Font italic by default" +msgid "Initial vertical speed when jumping, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Font shadow" +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." +msgid "Instrument chatcommands on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Font shadow alpha" +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +"Instrument the action function of Active Block Modifiers on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Font size" +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." +msgid "Instrument the methods of entities on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Regular font path" +msgid "Instrumentation" 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." +msgid "Interval of saving important changes in the world, stated in seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Bold font path" +msgid "Interval of sending time of day to clients." msgstr "" #: src/settings_translation_file.cpp -msgid "Italic font path" +msgid "Inventory items animations" msgstr "" #: src/settings_translation_file.cpp -msgid "Bold and italic font path" +msgid "Inventory key" msgstr "" #: src/settings_translation_file.cpp -msgid "Monospace font size" +msgid "Invert mouse" msgstr "" #: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." +msgid "Invert vertical mouse movement." msgstr "" #: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "Slighe dhan chlò aon-leud" +msgid "Italic font path" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Path to the monospace font.\n" -"If “freetype†setting is enabled: Must be a TrueType font.\n" -"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n" -"This font is used for e.g. the console and profiler screen." +msgid "Italic monospace font path" msgstr "" #: src/settings_translation_file.cpp -msgid "Bold monospace font path" +msgid "Item entity TTL" msgstr "" #: src/settings_translation_file.cpp -msgid "Italic monospace font path" +msgid "Iterations" msgstr "" #: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"Ath-thriall an fhoincsein ath-chùrsaiche.\n" +"Ma mheudaicheas tu seo, bidh barrachd mion-chruthan air\n" +"ach bi barrachd eallaich air a’ phròiseasadh cuideachd.\n" +"Ma tha ath-thriall = 20, bidh an t-eallach aig gineadair nam mapa seo " +"coltach ri eallach gineadair nam mapa V7." #: src/settings_translation_file.cpp -msgid "Fallback font size" +msgid "Joystick ID" msgstr "" #: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." +msgid "Joystick button repetition interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Fallback font shadow" +msgid "Joystick deadzone" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." +msgid "Joystick frustum sensitivity" msgstr "" #: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" +msgid "Joystick type" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +"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 "Fallback font path" +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 "" -"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." +"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 "Chat font size" +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 "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." +msgid "Julia w" msgstr "" #: src/settings_translation_file.cpp -msgid "Screenshot folder" +msgid "Julia x" 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." +msgid "Julia y" msgstr "" #: src/settings_translation_file.cpp -msgid "Screenshot format" +msgid "Julia z" msgstr "" #: src/settings_translation_file.cpp -msgid "Format of screenshots." +msgid "Jump key" msgstr "" #: src/settings_translation_file.cpp -msgid "Screenshot quality" +msgid "Jumping speed" 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." +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "DPI" +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." +"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 "Enable console window" +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 "" -"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)." +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Sound" +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Volume" +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a ghluaiseas gu luath sa mhodh luath.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." +"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 "Mute sound" +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a ghluaiseas an cluicheadair dhan taobh chlì.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Client" +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a ghluaiseas an cluicheadair dhan taobh deas.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Network" +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Server address" +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 "" -"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." +"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 "Remote port" +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Prometheus listener address" +#, 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 "" -"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" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 11mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Saving map received from server" +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 12mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." +msgid "" +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 13mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Connect to external media server" +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 14mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 15mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Client modding" +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 16mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 17mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Serverlist URL" +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 18mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." +msgid "" +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an 19mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Serverlist file" +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 20mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 21mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 22mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 23mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Enable register confirmation" +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 24mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 25mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 26mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 27mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mapblock limit" +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 28mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 29mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Show debug info" +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 30mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 31mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server / Singleplayer" +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas am 32mh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server name" +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an t-ochdamh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Name of the server, to be displayed when players join and in the serverlist." +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an còigeamh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server description" +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas a’ chiad slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an ceathramh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an ath-nì air a’ ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server URL" +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an naoidheamh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an nì roimhe air a’ ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "Ainmich am frithealaiche" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an dà rna slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Announce to this serverlist." +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an seachdamh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Strip color codes" +msgid "" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an siathamh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an deicheamh slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server port" +msgid "" +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thaghas an treas slot dhen ghrad-bhà r.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair airson tà isleachadh.\n" +"Tha i ‘ga cleachdadh airson dìreadh agus dìreadh san uisge ma bhios " +"aux1_descends à comas.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Bind address" +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 "The network interface that the server listens on." +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Strict protocol checking" +msgid "" +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Remote media" +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "IPv6 server" +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thoglaicheas an sgiathadh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"An iuchair a thoglaicheas am modh gun bhearradh.\n" +"Faic http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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)" +"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 "Delay in sending blocks after building" +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 "" -"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." +"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 "Max. packets per iteration" +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 "" -"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." +"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 "Default game" +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 "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." +"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 "Message of the day" +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." +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 "Maximum users" +msgid "Kick players who sent more than X messages per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." +msgid "Lake steepness" msgstr "" #: src/settings_translation_file.cpp -msgid "Map directory" +msgid "Lake threshold" 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." +msgid "Language" msgstr "" #: src/settings_translation_file.cpp -msgid "Item entity TTL" +msgid "Large cave depth" 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." +msgid "Large cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Default stack size" +msgid "Large cave minimum number" 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." +msgid "Large cave proportion flooded" msgstr "" #: src/settings_translation_file.cpp -msgid "Damage" +msgid "Large chat console key" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." +msgid "Leaves style" msgstr "" #: src/settings_translation_file.cpp -msgid "Creative" +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 "Enable creative mode for new created maps." +msgid "Left key" msgstr "" #: src/settings_translation_file.cpp -msgid "Fixed map seed" +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 "" -"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." +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "Default password" +msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" #: src/settings_translation_file.cpp -msgid "New users need to input this password." +msgid "Length of time between NodeTimer execution cycles" msgstr "" #: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "Sochairean tùsail" +msgid "Length of time between active block management cycles" +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." +"Level of logging to be written to debug.txt:\n" +"- <nothing> (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" msgstr "" -"Na sochairean a gheibh cleachdaichean ùra gu fèin-obrachail.\n" -"Faic /privs sa gheama airson liosta slà n air rèiteachadh an fhrithealaiche ’" -"s nan tuilleadan agad." - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "Sochairean bunasach" +"ÃŒre an loga a thèid a sgrìobhadh gu debug.txt:\n" +"- <bà n> (gun logadh)\n" +"- none (teachdaireachdan gun ìre)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" #: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "Sochairean as urrainn do chluicheadairean le basic_privs a cheadachadh" +msgid "Light curve boost" +msgstr "" #: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "Astar tar-chur nan cluicheadairean gun chuingeachadh" +msgid "Light curve boost center" +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." +msgid "Light curve boost spread" msgstr "" #: src/settings_translation_file.cpp -msgid "Player transfer distance" +msgid "Light curve gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgid "Light curve high gradient" msgstr "" -"Mìnichidh seo an t-astar as motha airson tar-chur chluicheadairean ann am " -"bloca (0 = gun chuingeachadh)." #: src/settings_translation_file.cpp -msgid "Player versus player" +msgid "Light curve low gradient" msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." +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 "" -"Co-dhiù am faod cluicheadairean cà ch a chèile a leòn ’s a mharbhadh gus nach " -"fhaod." +"Cuingeachadh gintinn mapa, ann an nòd, sa h-uile 6 comhair o (0, 0, 0).\n" +"Cha dèid ach cnapan mapa a tha am broinn cuingeachadh gineadair nam mapa a " +"ghintinn.\n" +"Thèid luach fa leth a stòradh air gach saoghal." #: src/settings_translation_file.cpp -msgid "Mod channels" +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 "Enable mod channels support." +msgid "Liquid fluidity" msgstr "" #: src/settings_translation_file.cpp -msgid "Static spawnpoint" +msgid "Liquid fluidity smoothing" msgstr "" #: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." +msgid "Liquid loop max" msgstr "" #: src/settings_translation_file.cpp -msgid "Disallow empty passwords" +msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." +msgid "Liquid sinking" msgstr "" #: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" +msgid "Liquid update interval in seconds." +msgstr "Eadaramh nan ùrachaidhean air an lionn ann an diog." #: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." +msgid "Liquid update tick" msgstr "" #: src/settings_translation_file.cpp -msgid "Rollback recording" +msgid "Load the game profiler" msgstr "" #: src/settings_translation_file.cpp msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." +"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 "Chat message format" +msgid "Loading Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" +msgid "Lower Y limit of dungeons." msgstr "" #: src/settings_translation_file.cpp -msgid "Shutdown message" +msgid "Lower Y limit of floatlands." msgstr "" #: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." +msgid "Main menu script" msgstr "" #: src/settings_translation_file.cpp -msgid "Crash message" +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" #: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" #: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" +msgid "Makes all liquids opaque" +msgstr "Dèan gach lionn trìd-dhoilleir" #: 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." +msgid "Map Compression Level for Disk Storage" msgstr "" #: src/settings_translation_file.cpp -msgid "Active object send range" +msgid "Map Compression Level for Network Transfer" 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)" +msgid "Map directory" msgstr "" #: src/settings_translation_file.cpp -msgid "Active block range" +msgid "Map generation attributes specific to Mapgen Carpathian." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Carpathian." #: src/settings_translation_file.cpp msgid "" -"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." +"Map generation attributes specific to Mapgen Flat.\n" +"Occasional lakes and hills can be added to the flat world." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Flat.\n" +"’S urrainn dhut lochan is cnuic ghanna a chur ris an t-saoghal rèidh." #: src/settings_translation_file.cpp -msgid "Max block send distance" +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Fractal.\n" +"Cuiridh “terrain†gintinn crutha-tìre nach eil fractalach an comas:\n" +"cuan, eileanan is fon talamh." #: src/settings_translation_file.cpp msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." msgstr "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Valleys.\n" +"“altitude_chillâ€: Bidh tìr à rd nas fhuaire.\n" +"“humid_riversâ€: Bidh an tìr nas buige faisg air aibhnean.\n" +"“vary_river_depthâ€: Ma tha seo an comas, bidh aibhnean nas tana agus tioram " +"aig amannan ma tha an saoghal tioram no teth.\n" +"’“altitude_dryâ€: Bidh tìr à rd nas tiorma." #: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" +msgid "Map generation attributes specific to Mapgen v5." +msgstr "Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v5." #: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." +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 "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v6.\n" +"Cuiridh a’ bhratach “snowbiomes†siostam 5 ùr nam bitheom an comas.\n" +"Nuair a bhios a’ bhratach “snowbiomes†an comas, thèid dlùth-choilltean a " +"chur an comas gu fèin-obrachail \n" +"agus a’ bhratach “jungles†a leigeil seachad." #: src/settings_translation_file.cpp -msgid "Time send interval" +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 "" +"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v7.\n" +"“ridgesâ€: Aibhnean.\n" +"“floatlandsâ€: Tìr air fhleòd san à ile.\n" +"“cavernsâ€: Uamhan mòra domhainn fon talamh." #: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" +msgid "Map generation limit" +msgstr "Cuingeachadh gintinn mapa" #: src/settings_translation_file.cpp -msgid "Time speed" +msgid "Map save interval" 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." +msgid "Mapblock limit" msgstr "" #: src/settings_translation_file.cpp -msgid "World start time" +msgid "Mapblock mesh generation delay" msgstr "" #: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." +msgid "Mapblock mesh generator's MapBlock cache size in MB" msgstr "" #: src/settings_translation_file.cpp -msgid "Map save interval" +msgid "Mapblock unload timeout" msgstr "" #: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" +msgid "Mapgen Carpathian" +msgstr "Gineadair nam mapa Carpathian" #: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" +msgid "Mapgen Carpathian specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Carpathian" #: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" +msgid "Mapgen Flat" +msgstr "Gineadair nam mapa Flat" #: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" +msgid "Mapgen Flat specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Flat" #: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgid "Mapgen Fractal" +msgstr "Gineadair nam mapa Fractal" #: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" +msgid "Mapgen Fractal specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Fractal" #: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" +msgid "Mapgen V5" +msgstr "Gineadair nam mapa V5" #: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" +msgid "Mapgen V5 specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa V5" #: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" +msgid "Mapgen V6" +msgstr "Gineadair nam mapa V6" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" +msgid "Mapgen V6 specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa V6" #: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" +msgid "Mapgen V7" +msgstr "Gineadair nam mapa V7" #: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" +msgid "Mapgen V7 specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa V7" #: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" +msgid "Mapgen Valleys" +msgstr "Gineadair nam mapa Valleys" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" +msgid "Mapgen Valleys specific flags" +msgstr "Brataich shònraichte do ghineadair nam mapa Valleys" #: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" +msgid "Mapgen debug" +msgstr "Dì-bhugachadh gineadair nam mapa" #: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "Luaths na coiseachd is sgiathaidh, ann an nòd gach diog." +msgid "Mapgen name" +msgstr "Ainm gineadair nam mapa" #: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "Luaths an tà isleachaidh" +msgid "Max block generate distance" +msgstr "" #: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "Luaths an tà isleachaidh ann an nòd gach diog." +msgid "Max block send distance" +msgstr "" #: src/settings_translation_file.cpp -msgid "Fast mode speed" +msgid "Max liquids processed per step." msgstr "" #: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgid "Max. clearobjects extra blocks" msgstr "" -"Luaths na coiseachd, sgiathaidh is sreap sa mhodh luath, ann an nòd gach " -"diog." #: src/settings_translation_file.cpp -msgid "Climbing speed" +msgid "Max. packets per iteration" msgstr "" #: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." +msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Jumping speed" +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." +msgid "Maximum forceloaded blocks" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" +msgid "Maximum hotbar width" +msgstr "Leud as motha a’ ghrad-bhà r" #: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." +msgid "Maximum limit of random number of large caves per mapchunk." msgstr "" +"An à ireamh as motha de dh’uamhan mòra air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" +msgid "Maximum limit of random number of small caves per mapchunk." msgstr "" +"An à ireamh as motha de dh’uamhan beaga air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp msgid "" @@ -4961,56 +4999,58 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." +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 "Gravity" +msgid "Maximum number of blocks that can be queued for loading." msgstr "" #: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." +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 "Deprecated Lua API handling" +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 "" -"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)." +"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 "Max. clearobjects extra blocks" +msgid "Maximum number of forceloaded mapblocks." 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)." +"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 "Unload unused server data" +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 "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." +msgid "Maximum number of players that can be connected simultaneously." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum objects per block" +msgid "Maximum number of recent chat messages to show" msgstr "" #: src/settings_translation_file.cpp @@ -5018,940 +5058,912 @@ msgid "Maximum number of statically stored objects in a block." msgstr "" #: src/settings_translation_file.cpp -msgid "Synchronous SQLite" +msgid "Maximum objects per block" msgstr "" #: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." msgstr "" +"A’ chuid as motha dhen uinneag là ithreach a thèid a chleachdadh airson a’ " +"ghrad-bhà r.\n" +"Tha seo feumail ma dh’fheumas tu rudeigin a shealltainn taobh deas no clì " +"air a’ ghrad-bhà r." #: src/settings_translation_file.cpp -msgid "Dedicated server step" +msgid "Maximum simultaneous block sends per client" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." +msgid "Maximum size of the out chat queue" msgstr "" #: src/settings_translation_file.cpp -msgid "Active block management interval" +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 "Length of time between active block management cycles" +msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" #: src/settings_translation_file.cpp -msgid "ABM interval" +msgid "Maximum users" msgstr "" #: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgid "Menus" msgstr "" #: src/settings_translation_file.cpp -msgid "NodeTimer interval" +msgid "Mesh cache" msgstr "" #: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" +msgid "Message of the day" msgstr "" #: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "Leig seachad mearachdan an t-saoghail" +msgid "Message of the day displayed to players connecting." +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." +msgid "Method used to highlight selected object." msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" +msgid "Minimal level of logging to be written to chat." +msgstr "An ìre as lugha dhen loga a thèid a sgrìobhadh dhan chabadaich." #: src/settings_translation_file.cpp -msgid "Max liquids processed per step." +msgid "Minimap" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid queue purge time" +msgid "Minimap key" 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." +msgid "Minimap scan height" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid update tick" +msgid "Minimum limit of random number of large caves per mapchunk." msgstr "" +"An à ireamh as lugha de dh’uamhan mòra air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "Eadaramh nan ùrachaidhean air an lionn ann an diog." +msgid "Minimum limit of random number of small caves per mapchunk." +msgstr "" +"An à ireamh as lugha de dh’uamhan beaga air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Block send optimize distance" +msgid "Minimum texture size" 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)." +msgid "Mipmapping" msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" +msgid "Mod channels" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." +msgid "Modifies the size of the hudbar elements." msgstr "" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "Cuingeachadh tuilleadain air a’ chliant" +msgid "Monospace font path" +msgstr "Slighe dhan chlò aon-leud" #: 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)" +msgid "Monospace font size" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" +msgid "Mountain height noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." +msgid "Mountain noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Security" +msgid "Mountain variation noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" +msgid "Mountain zero level" +msgstr "Àirde neoini nam beanntan" #: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." +msgid "Mouse sensitivity" msgstr "" #: src/settings_translation_file.cpp -msgid "Trusted mods" +msgid "Mouse sensitivity multiplier." 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())." +msgid "Mud noise" msgstr "" #: src/settings_translation_file.cpp -msgid "HTTP mods" +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 "" -"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." +msgid "Mute key" msgstr "" #: src/settings_translation_file.cpp -msgid "Profiling" +msgid "Mute sound" msgstr "" #: src/settings_translation_file.cpp -msgid "Load the game profiler" +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." msgstr "" +"Ainm air gineadair nam mapa a thèid a chleachdadh airson saoghal ùr a " +"chruthachadh.\n" +"Tar-aithnidh cruthachadh saoghail ùir sa phrìomh chlà r-taice seo.\n" +"Seo gineadairean nam mapa a tha glè neo-sheasmhach aig an à m seo:\n" +"- floatlands roghainneil aig v7 (à comas o thùs)." #: src/settings_translation_file.cpp msgid "" -"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." +"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 "Default report format" +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." +msgid "Near plane" msgstr "" #: src/settings_translation_file.cpp -msgid "Report path" +msgid "Network" msgstr "" #: src/settings_translation_file.cpp msgid "" -"The file path relative to your worldpath in which profiles will be saved to." +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." msgstr "" #: src/settings_translation_file.cpp -msgid "Instrumentation" +msgid "New users need to input this password." msgstr "" #: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" +msgid "Noclip" +msgstr "Gun bhearradh" #: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." +msgid "Noclip key" +msgstr "Iuchair modha gun bhearradh" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" msgstr "" #: src/settings_translation_file.cpp -msgid "Active Block Modifiers" +msgid "NodeTimer interval" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." +msgid "Noises" msgstr "" #: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" +msgid "Number of emerge threads" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument the action function of Loading Block Modifiers on registration." +"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 "Chatcommands" +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 "Instrument chatcommands on registration." -msgstr "" +msgid "Online Content Repository" +msgstr "Ionad-tasgaidh susbaint air loidhne" #: src/settings_translation_file.cpp -msgid "Global callbacks" +msgid "Opaque liquids" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." msgstr "" #: src/settings_translation_file.cpp -msgid "Builtin" +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." msgstr "" +"Fosgail clà r-taice a’ chuir ’na stad nuair a chailleas an uinneag am fòcas.\n" +"Cha dèid a chur ’na stad nuair a bhios formspec fosgailte." #: src/settings_translation_file.cpp -msgid "Profiler" +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 "" -"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." +"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 "Client and Server" +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." msgstr "" #: src/settings_translation_file.cpp -msgid "Player name" +msgid "Path to texture directory. All textures are first searched from here." 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." +"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 "Language" +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 "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." +msgid "Pause on lost window focus" msgstr "" #: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "ÃŒre an loga dì-bhugachaidh" +msgid "Per-player limit of queued blocks load from disk" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- <nothing> (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" +msgid "Per-player limit of queued blocks to generate" msgstr "" -"ÃŒre an loga a thèid a sgrìobhadh gu debug.txt:\n" -"- <bà n> (gun logadh)\n" -"- none (teachdaireachdan gun ìre)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" #: src/settings_translation_file.cpp -msgid "Debug log file size threshold" +msgid "Physics" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." +msgid "Pitch move key" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "ÃŒre loga na cabadaich" +msgid "Pitch move mode" +msgstr "" #: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "An ìre as lugha dhen loga a thèid a sgrìobhadh dhan chabadaich." +#, fuzzy +msgid "Place key" +msgstr "Iuchair an sgiathaidh" #: src/settings_translation_file.cpp -msgid "IPv6" +msgid "Place repetition interval" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." msgstr "" +"’S urrainn dhan chluicheadair sgiathadh gun bhuaidh na iom-tharraing air.\n" +"Bidh feum air sochair “fly†air an fhrithealaiche." #: src/settings_translation_file.cpp -msgid "cURL timeout" +msgid "Player name" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." +msgid "Player transfer distance" msgstr "" #: src/settings_translation_file.cpp -msgid "cURL parallel limit" +msgid "Player versus player" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" +"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 "Maximum time in ms a file download (e.g. a mod download) may take." +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 "High-precision FPU" +msgid "Prevent mods from doing insecure things like running shell commands." msgstr "" #: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +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 "Main menu style" -msgstr "" +msgid "Privileges that players with basic_privs can grant" +msgstr "Sochairean as urrainn do chluicheadairean le basic_privs a cheadachadh" #: src/settings_translation_file.cpp -msgid "" -"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." +msgid "Profiler" msgstr "" #: src/settings_translation_file.cpp -msgid "Main menu script" +msgid "Profiler toggle key" msgstr "" #: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." +msgid "Profiling" msgstr "" #: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" +msgid "Prometheus listener address" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." +"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 "Mapgen name" -msgstr "Ainm gineadair nam mapa" +msgid "Proportion of large caves that contain liquid." +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)." +"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 "" -"Ainm air gineadair nam mapa a thèid a chleachdadh airson saoghal ùr a " -"chruthachadh.\n" -"Tar-aithnidh cruthachadh saoghail ùir sa phrìomh chlà r-taice seo.\n" -"Seo gineadairean nam mapa a tha glè neo-sheasmhach aig an à m seo:\n" -"- floatlands roghainneil aig v7 (à comas o thùs)." #: src/settings_translation_file.cpp -msgid "Water level" -msgstr "Àirde an uisge" +msgid "Raises terrain to make valleys around the rivers." +msgstr "" +"Àrdaichidh seo an cruth-tìre airson glinn a chruthachadh timcheall air na h-" +"aibhnean." #: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "Àirde uachdar an uisge air an t-saoghal." +msgid "Random input" +msgstr "" #: src/settings_translation_file.cpp -msgid "Max block generate distance" +msgid "Range select key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." +msgid "Recent Chat Messages" msgstr "" -"An t-astar on a thèid blocaichean a ghintinn dha na cliantan, ann am bloca " -"mapa (16 nòdan)." #: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "Cuingeachadh gintinn mapa" +msgid "Regular font path" +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." +msgid "Remote media" msgstr "" -"Cuingeachadh gintinn mapa, ann an nòd, sa h-uile 6 comhair o (0, 0, 0).\n" -"Cha dèid ach cnapan mapa a tha am broinn cuingeachadh gineadair nam mapa a " -"ghintinn.\n" -"Thèid luach fa leth a stòradh air gach saoghal." #: 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." +msgid "Remote port" msgstr "" -"Buadhan gintinn mapa uile-choitcheann.\n" -"Ann an gineadair nam mapa v6, stiùirichidh bratach “decorations†sgeadachadh " -"seach craobhan is feur dlùth-choille\n" -"agus ann an gineadairean nam mapa eile, stiùirichidh a’ bhratach seo a h-" -"uile sgeadachadh." #: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" +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 "Heat noise" +msgid "Replaces the default main menu with a custom one." msgstr "" #: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp -msgid "Heat blend noise" +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 "Small-scale temperature variation for blending biomes on borders." +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity noise" +msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." +msgid "Ridge underwater noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity blend noise" +msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." +msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "Gineadair nam mapa V5" +msgid "River channel depth" +msgstr "Doimhne sruth nan aibhnean" #: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa V5" +msgid "River channel width" +msgstr "Leud sruth nan aibhnean" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v5." +msgid "River depth" +msgstr "Doimhne nan aibhnean" #: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" +msgid "River noise" +msgstr "Riasladh aibhnean" #: 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 "" +msgid "River size" +msgstr "Meud nan aibhnean" #: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" +msgid "River valley width" +msgstr "Leud gleanntan aibhne" #: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." +msgid "Rollback recording" msgstr "" #: src/settings_translation_file.cpp -msgid "Small cave minimum number" +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." +msgid "Rolling hills spread noise" msgstr "" -"An à ireamh as lugha de dh’uamhan beaga air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Small cave maximum number" +msgid "Round minimap" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." +msgid "Safe digging and placing" msgstr "" -"An à ireamh as motha de dh’uamhan beaga air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Large cave minimum number" +msgid "Sandy beaches occur when np_beach exceeds this value." msgstr "" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." +msgid "Save the map received by the client on disk." msgstr "" -"An à ireamh as lugha de dh’uamhan mòra air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Large cave maximum number" +msgid "Save window size automatically when modified." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." +msgid "Saving map received from server" msgstr "" -"An à ireamh as motha de dh’uamhan mòra air thuaiream anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" +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 "Proportion of large caves that contain liquid." +msgid "Screen height" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern limit" +msgid "Screen width" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "Àirde-Y aig crìoch à rd nan uamhan." - -#: src/settings_translation_file.cpp -msgid "Cavern taper" +msgid "Screenshot folder" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." +msgid "Screenshot format" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern threshold" +msgid "Screenshot quality" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." +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 "Dungeon minimum Y" +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "Noises" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Filler depth noise" +msgid "Selection box border color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." +msgid "Selection box color" msgstr "" #: src/settings_translation_file.cpp -msgid "Factor noise" +msgid "Selection box width" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." +"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 "Height noise" +msgid "Server / Singleplayer" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "Àirde-Y aig uachdar cuibheasach a’ chrutha-thìre." - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" +msgid "Server URL" msgstr "" #: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." +msgid "Server address" msgstr "" #: src/settings_translation_file.cpp -msgid "Cave2 noise" +msgid "Server description" msgstr "" #: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." +msgid "Server name" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern noise" +msgid "Server port" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." +msgid "Server side occlusion culling" msgstr "" #: src/settings_translation_file.cpp -msgid "Ground noise" +msgid "Serverlist URL" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining terrain." +msgid "Serverlist file" msgstr "" #: src/settings_translation_file.cpp -msgid "Dungeon noise" +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 "3D noise that determines number of dungeons per mapchunk." +msgid "Set the maximum character length of a chat message sent by clients." msgstr "" -"Riasladh 3D a mhìnicheas an à ireamh dhe thuill-dhubha anns gach cnap mapa." #: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "Gineadair nam mapa V6" +msgid "" +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa V6" +msgid "" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." +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." +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v6.\n" -"Cuiridh a’ bhratach “snowbiomes†siostam 5 ùr nam bitheom an comas.\n" -"Nuair a bhios a’ bhratach “snowbiomes†an comas, thèid dlùth-choilltean a " -"chur an comas gu fèin-obrachail \n" -"agus a’ bhratach “jungles†a leigeil seachad." #: src/settings_translation_file.cpp -msgid "Desert noise threshold" +msgid "Shader path" 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." +"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 "Beach noise threshold" +msgid "" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." +msgid "" +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain base noise" +msgid "Shape of the minimap. Enabled = round, disabled = square." msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "Àirde-Y a’ chrutha-thìre ìosal agus grunnd na mara." +msgid "Show debug info" +msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain higher noise" +msgid "Show entity selection boxes" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." -msgstr "Àirde-Y a’ chrutha-thìre nas à irde a chruthaicheas creagan." +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" #: src/settings_translation_file.cpp -msgid "Steepness noise" +msgid "Show nametag backgrounds by default" msgstr "" #: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." +msgid "Shutdown message" msgstr "" #: src/settings_translation_file.cpp -msgid "Height select noise" +msgid "" +"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n" +"WARNING!: There is no benefit, and there are several dangers, in\n" +"increasing this value above 5.\n" +"Reducing this value increases cave and dungeon density.\n" +"Altering this value is for special usage, leaving it unchanged is\n" +"recommended." msgstr "" +"Meud nan cnapan mapa a thèid a ghintinn le gineadair nam mapa, ann am bloca " +"mapa (16 nòd).\n" +"RABHADH: Chan fhaigh thu buannachd ach cunnartan à luach nas à irde na 5.\n" +"Le luach nas lugha, gheibh thu barrachd uamhan is thuill-dubha.\n" +"Chan fhiach atharrachadh an luach seo ach air adhbhar sònraichte ’s " +"mholamaid\n" +"nach atharraich thu e." #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." +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 "Mud noise" +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Beach noise" +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." +msgid "Small cave minimum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Biome noise" +msgid "Small-scale humidity variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -msgid "Cave noise" +msgid "Small-scale temperature variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of number of caves." +msgid "Smooth lighting" msgstr "" #: src/settings_translation_file.cpp -msgid "Trees noise" +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" #: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." msgstr "" #: src/settings_translation_file.cpp -msgid "Apple trees noise" +msgid "Smooths rotation of camera. 0 to disable." msgstr "" #: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" +msgid "Sneak key" +msgstr "Iuchair an tà isleachaidh" #: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "Gineadair nam mapa V7" +msgid "Sneaking speed" +msgstr "Luaths an tà isleachaidh" #: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa V7" +msgid "Sneaking speed, in nodes per second." +msgstr "Luaths an tà isleachaidh ann an nòd gach diog." #: 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." +msgid "Sound" msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v7.\n" -"“ridgesâ€: Aibhnean.\n" -"“floatlandsâ€: Tìr air fhleòd san à ile.\n" -"“cavernsâ€: Uamhan mòra domhainn fon talamh." #: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "Àirde neoini nam beanntan" +msgid "Special key" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." +msgid "Special key for climbing/descending" msgstr "" -"Y air à irde neoini air caisead dùmhlachd nam beanntan. Thèid seo a " -"chleachdadh airson beanntan a thogail gu h-inghearach." #: src/settings_translation_file.cpp -msgid "Floatland minimum Y" +msgid "" +"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 "Lower Y limit of floatlands." +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 "Floatland maximum Y" +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 "Upper Y limit of floatlands." +msgid "Static spawnpoint" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "Astar cinn-chaoil air tìr air fhleòd" +msgid "Steepness noise" +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." +msgid "Step mountain size noise" msgstr "" -"Seo an t-astar-Y eadar an dùbhlachd là n ’s an òir air cinn-chaoil na tìre " -"air fhleòd.\n" -"Tòsichidh na cinn-chaoil aig an astar seo on chrìoch Y.\n" -"Airson breath tìre air fhleòd sholadach, stiùirichidh seo à irde nan cnoc/nam " -"beanntan.\n" -"Feumaidh e a bhith nas lugha na no co-ionnann ris an dà rna leth dhen astar " -"eadar na crìochan Y." #: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "Easponant cinn-chaoil air tìr air fhleòd" +msgid "Step mountain spread noise" +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." +msgid "Strength of 3D mode parallax." msgstr "" -"An t-easponant aig cinn-chaoil na tìre air fhleòd. Atharraichidh seo giùlnan " -"nan ceann-caol.\n" -"Cruthaichidh luach = 1.0 cinn-chaoil aon-fhillte loidhneach.\n" -"Cruthaichidh luachan > 1.0 cinn-chaoil rèidhe\n" -"a bhios freagarrach dha na cinn-chaoill sgaraichte thùsail.\n" -"Cruthaichidh luachan < 1.0 (can 0.25) uachdar nas mionaidiche le tìr-ìosal " -"nas rèidhe a bhios freagarrach\n" -"do bhreath tìre air fhleòd sholadach." #: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "Dùmhlachd na tìre air fhleòd" +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 -#, 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." +msgid "Strict protocol checking" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "Àirde an uisge air tìr air fhleòd" +msgid "Strip color codes" +msgstr "" #: src/settings_translation_file.cpp msgid "" @@ -5983,139 +5995,187 @@ msgstr "" "foidhpe." #: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp msgid "Terrain alternative noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain persistence noise" +msgid "Terrain base noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgid "Terrain height" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." +msgid "Terrain higher noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain height noise" +msgid "Terrain noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." +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 "Ridge underwater noise" +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 "Defines large-scale river channel structure." -msgstr "Mìnichidh seo structar sruth nan aibhnean mòra." +msgid "Terrain persistence noise" +msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain noise" +msgid "Texture path" msgstr "" #: src/settings_translation_file.cpp msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +"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 "" -"Riasladh 3D a mhìnicheas structar is à irde nam beanntan.\n" -"Mìnichidh e cruth-tìre nam beanntan air tìr air fhleòd cuideachd." #: src/settings_translation_file.cpp -msgid "Ridge noise" +msgid "The URL for the content repository" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "Riasladh 3D a mhìnicheas structar ballachan sgoltaidhean-aibhne." +msgid "The deadzone of the joystick" +msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "Riasladh na tìre air fhleòd" +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 "" -"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." +msgid "The depth of dirt or other biome filler node." msgstr "" -"Riasladh 3D a mhìnicheas structar na tìre air fhleòd.\n" -"Mura cleachd thu an luach tùsail, dh’fhaoidte gum fheà irrde thu gleus a chur " -"air “scale†an riaslaidh (0.7 o thùs)\n" -", on a dh’obraicheas foincseanan cinn-chaoil as fheà rr\n" -"nuair a bhios an riasladh seo eadar mu -2.0 agus 2.0." #: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" -msgstr "Gineadair nam mapa Carpathian" +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Carpathian" +msgid "The identifier of the joystick to use" +msgstr "" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." +msgid "The length in pixels it takes for touch screen interaction to start." msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Carpathian." #: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "Àirde bhunasach a’ ghrunnda" +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 "Defines the base ground level." -msgstr "Mìnichidh seo à irde bhunasach a’ ghrunnda." +msgid "The network interface that the server listens on." +msgstr "" #: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "Leud sruth nan aibhnean" +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" +"Na sochairean a gheibh cleachdaichean ùra gu fèin-obrachail.\n" +"Faic /privs sa gheama airson liosta slà n air rèiteachadh an fhrithealaiche " +"’s nan tuilleadan agad." #: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "Mìnichidh seo leud sruth nan aibhnean." +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 "River channel depth" -msgstr "Doimhne sruth nan aibhnean" +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" +msgstr "" #: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "Mìnichidh seo doimhne sruth nan aibhnean." +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" #: src/settings_translation_file.cpp -msgid "River valley width" -msgstr "Leud gleanntan aibhne" +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 "Defines the width of the river valley." -msgstr "Mìnichidh seo leud gleanntan nan aibhnean." +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 "Hilliness1 noise" +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 "First of 4 2D noises that together define hill/mountain range height." +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 "Hilliness2 noise" +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." +msgid "The type of joystick" msgstr "" #: src/settings_translation_file.cpp -msgid "Hilliness3 noise" +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 @@ -6123,513 +6183,511 @@ msgid "Third of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Hilliness4 noise" +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 "Fourth of 4 2D noises that together define hill/mountain range height." +msgid "Time of day when a new world is started, in millihours (0-23999)." msgstr "" #: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" +msgid "Time send interval" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." +msgid "Time speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" +msgid "Timeout for client to remove unused map data from memory." msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +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 "Step mountain spread noise" +msgid "Toggle camera mode key" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgid "Tooltip delay" msgstr "" #: src/settings_translation_file.cpp -msgid "Rolling hill size noise" +msgid "Touch screen threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "Riasladh 2D a stiùiricheas cruth/meud nan cnoc." +msgid "Trees noise" +msgstr "" #: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" +msgid "Trilinear filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." msgstr "" +"True = 256\n" +"False = 128\n" +"Gabhaidh a chleachdadh airson am meanbh-mhapa a dhèanamh nas rèidhe air " +"uidheaman slaodach." #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "Trusted mods" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "" #: src/settings_translation_file.cpp -msgid "River noise" -msgstr "Riasladh aibhnean" +msgid "Undersampling" +msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "Riasladh 2D a shuidhicheas glinn is sruthan nan aibhnean." +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 "Mountain variation noise" +msgid "Unlimited player transfer distance" +msgstr "Astar tar-chur nan cluicheadairean gun chuingeachadh" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Upper Y limit of dungeons." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "Gineadair nam mapa Flat" +msgid "Upper Y limit of floatlands." +msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Flat" +msgid "Use 3D cloud look instead of flat." +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." +msgid "Use a cloud animation for the main menu background." msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Flat.\n" -"’S urrainn dhut lochan is cnuic ghanna a chur ris an t-saoghal rèidh." #: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "Àirde a’ ghrunnda" +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" #: src/settings_translation_file.cpp -msgid "Y of flat ground." +msgid "Use bilinear filtering when scaling textures." msgstr "" #: src/settings_translation_file.cpp -msgid "Lake threshold" +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 "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." +"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 "Lake steepness" +msgid "Use trilinear filtering when scaling textures." msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." +msgid "VBO" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "VSync" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "Valley depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" +msgid "Valley fill" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." +msgid "Valley profile" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain noise" +msgid "Valley slope" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." +msgid "Variation of biome filler depth." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "Gineadair nam mapa Fractal" +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Fractal" +msgid "Variation of number of caves." +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." +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Fractal.\n" -"Cuiridh “terrain†gintinn crutha-tìre nach eil fractalach an comas:\n" -"cuan, eileanan is fon talamh." #: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Varies depth of biome surface nodes." 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." +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Varies steepness of cliffs." 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." +msgid "Vertical climbing speed, in nodes per second." msgstr "" -"Ath-thriall an fhoincsein ath-chùrsaiche.\n" -"Ma mheudaicheas tu seo, bidh barrachd mion-chruthan air\n" -"ach bi barrachd eallaich air a’ phròiseasadh cuideachd.\n" -"Ma tha ath-thriall = 20, bidh an t-eallach aig gineadair nam mapa seo " -"coltach ri eallach gineadair nam mapa V7." #: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." +msgid "Vertical screen synchronization." 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 "" +msgid "Video driver" +msgstr "Drà ibhear video" #: src/settings_translation_file.cpp -msgid "Slice w" +msgid "View bobbing factor" 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." +msgid "View distance in nodes." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia x" +msgid "View range decrease key" 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." +msgid "View range increase key" msgstr "" #: src/settings_translation_file.cpp -msgid "Julia y" +msgid "View zoom key" 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." +msgid "Viewing range" msgstr "" #: src/settings_translation_file.cpp -msgid "Julia z" +msgid "Virtual joystick triggers aux button" 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." +msgid "Volume" msgstr "" #: src/settings_translation_file.cpp -msgid "Julia w" +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" +"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 "Seabed noise" +msgid "Walking and flying speed, in nodes per second." +msgstr "Luaths na coiseachd is sgiathaidh, ann an nòd gach diog." + +#: src/settings_translation_file.cpp +msgid "Walking speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "Àirde-Y aig grunnd na mara." +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgstr "" +"Luaths na coiseachd, sgiathaidh is sreap sa mhodh luath, ann an nòd gach " +"diog." #: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "Gineadair nam mapa Valleys" +msgid "Water level" +msgstr "Àirde an uisge" #: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" -msgstr "Brataich shònraichte do ghineadair nam mapa Valleys" +msgid "Water surface level of the world." +msgstr "Àirde uachdar an uisge air an t-saoghal." #: 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." +msgid "Waving Nodes" msgstr "" -"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Valleys.\n" -"“altitude_chillâ€: Bidh tìr à rd nas fhuaire.\n" -"“humid_riversâ€: Bidh an tìr nas buige faisg air aibhnean.\n" -"“vary_river_depthâ€: Ma tha seo an comas, bidh aibhnean nas tana agus tioram " -"aig amannan ma tha an saoghal tioram no teth.\n" -"’“altitude_dryâ€: Bidh tìr à rd nas tiorma." #: src/settings_translation_file.cpp -msgid "" -"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" -"enabled. Also the vertical distance over which humidity drops by 10 if\n" -"'altitude_dry' is enabled." +msgid "Waving leaves" +msgstr "Crathadh duillich" + +#: src/settings_translation_file.cpp +msgid "Waving liquids" msgstr "" #: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." +msgid "Waving liquids wave height" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern upper limit" +msgid "Waving liquids wave speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." +msgid "Waving liquids wavelength" msgstr "" #: src/settings_translation_file.cpp -msgid "River depth" -msgstr "Doimhne nan aibhnean" +msgid "Waving plants" +msgstr "" #: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "Dè cho domhainn ’s a bhios aibhnean." +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 "River size" -msgstr "Meud nan aibhnean" +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 "How wide to make rivers." -msgstr "Dè cho leathann ’s a bhios aibhnean." +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 "Cave noise #1" +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 "Cave noise #2" +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." msgstr "" #: src/settings_translation_file.cpp -msgid "Filler depth" +msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" #: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." +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 "Terrain height" +msgid "Whether to allow players to damage and kill each other." msgstr "" +"Co-dhiù am faod cluicheadairean cà ch a chèile a leòn ’s a mharbhadh gus nach " +"fhaod." #: src/settings_translation_file.cpp -msgid "Base terrain height." +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 "Valley depth" +msgid "Whether to fog out the end of the visible area." msgstr "" #: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." +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 "" -"Àrdaichidh seo an cruth-tìre airson glinn a chruthachadh timcheall air na " -"h-aibhnean." #: src/settings_translation_file.cpp -msgid "Valley fill" +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." msgstr "" #: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." +msgid "Width component of the initial window size." msgstr "" #: src/settings_translation_file.cpp -msgid "Valley profile" +msgid "Width of the selection box lines around nodes." msgstr "" #: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "Meudaichidh seo na glinn." +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 "Valley slope" +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 "Chunk size" -msgstr "Meud nan cnapan" +msgid "World start time" +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." +"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 "" -"Meud nan cnapan mapa a thèid a ghintinn le gineadair nam mapa, ann am bloca " -"mapa (16 nòd).\n" -"RABHADH: Chan fhaigh thu buannachd ach cunnartan à luach nas à irde na 5.\n" -"Le luach nas lugha, gheibh thu barrachd uamhan is thuill-dubha.\n" -"Chan fhiach atharrachadh an luach seo ach air adhbhar sònraichte ’s " -"mholamaid\n" -"nach atharraich thu e." #: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "Dì-bhugachadh gineadair nam mapa" +msgid "World-aligned textures mode" +msgstr "" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "Dumpaich fiosrachadh dì-bhugachaidh aig gineadair nam mapa." +msgid "Y of flat ground." +msgstr "" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." msgstr "" +"Y air à irde neoini air caisead dùmhlachd nam beanntan. Thèid seo a " +"chleachdadh airson beanntan a thogail gu h-inghearach." #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Y of upper limit of large caves." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "Y-distance over which caverns expand to full size." 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." +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." msgstr "" +"Seo an t-astar-Y eadar an dùbhlachd là n ’s an òir air cinn-chaoil na tìre " +"air fhleòd.\n" +"Tòsichidh na cinn-chaoil aig an astar seo on chrìoch Y.\n" +"Airson breath tìre air fhleòd sholadach, stiùirichidh seo à irde nan cnoc/nam " +"beanntan.\n" +"Feumaidh e a bhith nas lugha na no co-ionnann ris an dà rna leth dhen astar " +"eadar na crìochan Y." #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "" +msgid "Y-level of average terrain surface." +msgstr "Àirde-Y aig uachdar cuibheasach a’ chrutha-thìre." #: 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 "" +msgid "Y-level of cavern upper limit." +msgstr "Àirde-Y aig crìoch à rd nan uamhan." #: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" +msgid "Y-level of higher terrain that creates cliffs." +msgstr "Àirde-Y a’ chrutha-thìre nas à irde a chruthaicheas creagan." #: src/settings_translation_file.cpp -msgid "" -"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 "" +msgid "Y-level of lower terrain and seabed." +msgstr "Àirde-Y a’ chrutha-thìre ìosal agus grunnd na mara." #: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "Ionad-tasgaidh susbaint air loidhne" +msgid "Y-level of seabed." +msgstr "Àirde-Y aig grunnd na mara." #: src/settings_translation_file.cpp -msgid "ContentDB URL" +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 "The URL for the content repository" +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 "ContentDB Flag Blacklist" +msgid "cURL file download timeout" 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/" +msgid "cURL parallel limit" 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 115597bf8..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-06-13 23:17+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 <sfan5@live.de>\n" "Language-Team: Galician <https://hosted.weblate.org/projects/minetest/" @@ -20,43 +20,43 @@ msgstr "" "X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "Morreches" - -#: 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 "Morreches" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "Vale" #: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "O servidor solicitou que reconectes:" +msgid "An error occurred in a Lua script:" +msgstr "" #: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "Reconectar" +msgid "An error occurred:" +msgstr "" #: builtin/fstk/ui.lua msgid "Main menu" msgstr "Menu principal" #: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "" +msgid "Reconnect" +msgstr "Reconectar" #: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" +msgid "The server has requested a reconnect:" +msgstr "O servidor solicitou que reconectes:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " msgstr "" #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." +msgid "Server enforces protocol version $1. " msgstr "" #: builtin/mainmenu/common.lua @@ -64,104 +64,124 @@ msgid "Server supports protocol versions between $1 and $2. " msgstr "" #: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " +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/common.lua -msgid "We only support protocol version $1." +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" msgstr "" -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua +msgid "Dependencies:" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "World:" +msgid "Disable all" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." +msgid "Disable modpack" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." +msgid "Enable all" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" +msgid "Enable modpack" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "No (optional) dependencies" +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 "No hard dependencies" +msgid "Find More Mods" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No (optional) dependencies" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "No optional dependencies" +msgid "No game description provided." msgstr "" #: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp -msgid "Save" +msgid "No hard dependencies" 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" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" +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 -msgid "Disable modpack" +#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp +msgid "Save" msgstr "" #: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" +msgid "World:" msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." msgstr "" -#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." +"$1 downloading,\n" +"$2 queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" +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 @@ -169,30 +189,53 @@ 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 +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 -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Mods" +msgid "Install" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" +msgid "Install $1" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" +msgid "Install missing dependencies" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Mods" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" +msgid "No packages could be retrieved" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -200,19 +243,27 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" +msgid "No updates" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." +msgid "Not found" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" +msgid "Overwrite" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" +msgid "Please check that the base game is correct." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -220,79 +271,83 @@ msgid "Uninstall" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "Update" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" +msgid "A world named \"$1\" already exists" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" +msgid "Additional terrain" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Altitude chill" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" +msgid "Altitude dry" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" +msgid "Biome blending" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" +msgid "Caverns" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" +msgid "Caves" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" +msgid "Create" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" +msgid "Decorations" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" +msgid "Download a game, such as Minetest Game, from minetest.net" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" +msgid "Download one from minetest.net" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" +msgid "Dungeons" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" +msgid "Flat terrain" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" +msgid "Floating landmasses in the sky" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" +msgid "Floatlands (experimental)" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -300,122 +355,126 @@ msgid "Generate non-fractal terrain: Oceans and underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" +msgid "Hills" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" +msgid "Humid rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" +msgid "Increases humidity around rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" +msgid "Lakes" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgid "Low humidity and high heat causes shallow or dry rivers" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." +msgid "Mapgen-specific flags" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" +msgid "Mountains" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" +msgid "Mud flow" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" +msgid "Network of tunnels and caves" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" +msgid "No game selected" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" +msgid "Reduces heat with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" +msgid "Reduces humidity with altitude" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" +msgid "Rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" +msgid "Sea level rivers" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" +#: 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 src/settings_translation_file.cpp -msgid "Mapgen flags" +#: 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 "Mapgen-specific flags" +msgid "Structures appearing on the terrain, typically trees and plants" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." +msgid "Temperate, Desert" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" +msgid "Temperate, Desert, Jungle" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "World name" +msgid "Temperate, Desert, Jungle, Tundra, Taiga" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" +msgid "Terrain surface erosion" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Trees and jungle grass" msgstr "" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Vary river depth" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Create" +msgid "Very large caverns deep in the underground" msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" +msgid "Warning: The Development Test is meant for developers." msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" +msgid "World name" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no games installed." msgstr "" #: builtin/mainmenu/dlg_delete_content.lua @@ -445,140 +504,144 @@ msgid "Accept" msgstr "" #: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." msgstr "" -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" +msgid "2D Noise" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" +msgid "< Back to Settings page" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" msgstr "" -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" +msgid "Disabled" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" +msgid "Edit" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" +msgid "Enabled" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" +msgid "Lacunarity" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" +msgid "Please enter a valid integer." msgstr "" -#. ~ "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" +msgid "Please enter a valid number." 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" +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" 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" +msgid "Search" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" +msgid "Select directory" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" +msgid "Select file" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" +msgid "Show technical names" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" +msgid "The value must be at least $1." msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." +msgid "The value must not be larger than $1." msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." +msgid "X" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." +msgid "X spread" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." +msgid "Y" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" +msgid "Y spread" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" +msgid "Z" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" +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 "Edit" +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 "Restore Default" +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 "Show technical names" +msgid "eased" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -586,7 +649,7 @@ msgid "$1 (Enabled)" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" +msgid "$1 mods" msgstr "" #: builtin/mainmenu/pkgmgr.lua @@ -594,43 +657,51 @@ msgid "Failed to install $1 to $2" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" +msgid "Install Mod: Unable to find real mod name for: $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" +msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" +msgid "Install: file: \"$1\"" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" +msgid "Unable to find a valid mod or modpack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" +msgid "Unable to install a $1 as a texture pack" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" +msgid "Unable to install a game as a $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" +msgid "Unable to install a mod as a $1" msgstr "" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" +msgid "Unable to install a modpack as a $1" msgstr "" -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" +#: 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 @@ -638,27 +709,31 @@ msgid "Browse online content" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "No package description available" +msgid "Content" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Rename" +msgid "Disable Texture Pack" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "No dependencies." +msgid "Information:" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" +msgid "Installed Packages:" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" +msgid "No dependencies." msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Information:" +msgid "No package description available" +msgstr "" + +#: builtin/mainmenu/tab_content.lua +msgid "Rename" msgstr "" #: builtin/mainmenu/tab_content.lua @@ -666,11 +741,11 @@ msgid "Uninstall Package" msgstr "" #: builtin/mainmenu/tab_content.lua -msgid "Content" +msgid "Use Texture Pack" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Credits" +msgid "Active Contributors" msgstr "" #: builtin/mainmenu/tab_credits.lua @@ -678,67 +753,69 @@ msgid "Core Developers" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" +msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" +msgid "Open User Data Directory" msgstr "" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" msgstr "" -#: builtin/mainmenu/tab_local.lua -msgid "Configure" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "New" +msgid "Announce Server" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Select World:" +msgid "Bind Address" 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 "" #: builtin/mainmenu/tab_local.lua -msgid "Host Server" +msgid "Host Game" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Host Game" +msgid "Host Server" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Announce Server" +msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Bind Address" +msgid "New" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Port" +msgid "No world created or selected!" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" +msgid "Password" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -746,152 +823,148 @@ msgid "Play Game" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" +msgid "Port" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Start Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" +msgid "Select Mods" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" +#: builtin/mainmenu/tab_local.lua +msgid "Start Game" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" msgstr "" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" +#: 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 "" -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" +#: builtin/mainmenu/tab_online.lua +msgid "Del. Favorite" msgstr "" #: builtin/mainmenu/tab_online.lua -msgid "Join Game" +msgid "Favorite" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" +#. ~ PvP = Player versus Player +#: builtin/mainmenu/tab_online.lua +msgid "PvP enabled" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" +msgid "2x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "None" +msgid "3D Clouds" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No Filter" +msgid "4x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" +msgid "8x" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" +msgid "All Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" +msgid "Antialiasing:" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" +msgid "Autosave Screen Size" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" +msgid "Bilinear Filter" msgstr "" -#: builtin/mainmenu/tab_settings.lua -msgid "2x" +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "4x" +msgid "Connected Glass" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "8x" +msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" +msgid "Mipmap" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Yes" +msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" +msgid "No Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" +msgid "No Mipmap" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Particles" +msgid "Node Highlighting" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" +msgid "Node Outlining" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" +msgid "None" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" +msgid "Opaque Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" +msgid "Opaque Water" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" +msgid "Particles" msgstr "" #: builtin/mainmenu/tab_settings.lua @@ -899,7 +972,7 @@ msgid "Screen:" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" +msgid "Settings" msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp @@ -907,27 +980,27 @@ 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 -msgid "Change Keys" +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" +msgid "Smooth Lighting" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" +msgid "Texturing:" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" +msgid "To enable shaders the OpenGL driver needs to be used." msgstr "" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp @@ -935,15 +1008,11 @@ msgid "Tone Mapping" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" +msgid "Touchthreshold: (px)" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" +msgid "Trilinear Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua @@ -951,27 +1020,11 @@ msgid "Waving Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." +msgid "Waving Liquids" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" +msgid "Waving Plants" msgstr "" #: src/client/client.cpp @@ -979,11 +1032,11 @@ msgid "Connection timed out." msgstr "" #: src/client/client.cpp -msgid "Loading textures..." +msgid "Done!" msgstr "" #: src/client/client.cpp -msgid "Rebuilding shaders..." +msgid "Initializing nodes" msgstr "" #: src/client/client.cpp @@ -991,47 +1044,47 @@ msgid "Initializing nodes..." msgstr "" #: src/client/client.cpp -msgid "Initializing nodes" +msgid "Loading textures..." msgstr "" #: src/client/client.cpp -msgid "Done!" +msgid "Rebuilding shaders..." msgstr "" #: src/client/clientlauncher.cpp -msgid "Main Menu" +msgid "Connection error (timed out?)" msgstr "" #: src/client/clientlauncher.cpp -msgid "Player name too long." +msgid "Could not find or load game \"" msgstr "" #: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" +msgid "Invalid gamespec." msgstr "" #: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " +msgid "Main Menu" msgstr "" #: src/client/clientlauncher.cpp -msgid "Please choose a name!" +msgid "No world selected and no address provided. Nothing to do." msgstr "" #: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." +msgid "Player name too long." msgstr "" #: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " +msgid "Please choose a name!" msgstr "" #: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" +msgid "Provided password file failed to open: " msgstr "" #: src/client/clientlauncher.cpp -msgid "Invalid gamespec." +msgid "Provided world path doesn't exist: " msgstr "" #. ~ DO NOT TRANSLATE THIS LITERALLY! @@ -1047,164 +1100,177 @@ msgid "needs_fallback_font" msgstr "no" #: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" #: src/client/game.cpp -msgid "Item definitions..." +msgid "- Address: " msgstr "" #: src/client/game.cpp -msgid "Node definitions..." +msgid "- Creative Mode: " msgstr "" #: src/client/game.cpp -msgid "Media..." +msgid "- Damage: " msgstr "" #: src/client/game.cpp -msgid "KiB/s" +msgid "- Mode: " msgstr "" #: src/client/game.cpp -msgid "MiB/s" +msgid "- Port: " msgstr "" #: src/client/game.cpp -msgid "Client side scripting is disabled" +msgid "- Public: " msgstr "" +#. ~ PvP = Player versus Player #: src/client/game.cpp -msgid "Sound muted" +msgid "- PvP: " msgstr "" #: src/client/game.cpp -msgid "Sound unmuted" +msgid "- Server Name: " msgstr "" #: src/client/game.cpp -msgid "Sound system is disabled" +msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" +msgid "Automatic forward enabled" msgstr "" #: src/client/game.cpp -msgid "Sound system is not supported on this build" +msgid "Camera update disabled" msgstr "" #: src/client/game.cpp -msgid "ok" +msgid "Camera update enabled" msgstr "" #: src/client/game.cpp -msgid "Fly mode enabled" +msgid "Change Password" msgstr "" #: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" +msgid "Cinematic mode disabled" msgstr "" #: src/client/game.cpp -msgid "Fly mode disabled" +msgid "Cinematic mode enabled" msgstr "" #: src/client/game.cpp -msgid "Pitch move mode enabled" +msgid "Client side scripting is disabled" msgstr "" #: src/client/game.cpp -msgid "Pitch move mode disabled" +msgid "Connecting to server..." msgstr "" #: src/client/game.cpp -msgid "Fast mode enabled" +msgid "Continue" msgstr "" #: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" msgstr "" #: src/client/game.cpp -msgid "Fast mode disabled" +msgid "Creating client..." msgstr "" #: src/client/game.cpp -msgid "Noclip mode enabled" +msgid "Creating server..." msgstr "" #: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" +msgid "Debug info and profiler graph hidden" msgstr "" #: src/client/game.cpp -msgid "Noclip mode disabled" +msgid "Debug info shown" msgstr "" #: src/client/game.cpp -msgid "Cinematic mode enabled" +msgid "Debug info, profiler graph, and wireframe hidden" msgstr "" #: src/client/game.cpp -msgid "Cinematic mode disabled" +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 "Automatic forward enabled" +msgid "Disabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Automatic forward disabled" +msgid "Enabled unlimited viewing range" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" +msgid "Exit to Menu" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" +msgid "Exit to OS" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" +msgid "Fast mode disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" +msgid "Fast mode enabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" +msgid "Fast mode enabled (note: no 'fast' privilege)" msgstr "" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" +msgid "Fly mode disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap hidden" +msgid "Fly mode enabled" msgstr "" #: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" +msgid "Fly mode enabled (note: no 'fly' privilege)" msgstr "" #: src/client/game.cpp @@ -1216,180 +1282,143 @@ msgid "Fog enabled" msgstr "" #: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" +msgid "Game info:" msgstr "" #: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" +msgid "Game paused" msgstr "" #: src/client/game.cpp -msgid "Debug info and profiler graph hidden" +msgid "Hosting server" msgstr "" #: src/client/game.cpp -msgid "Camera update disabled" +msgid "Item definitions..." msgstr "" #: src/client/game.cpp -msgid "Camera update enabled" +msgid "KiB/s" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" +msgid "Media..." msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" +msgid "MiB/s" msgstr "" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" +msgid "Minimap currently disabled by game or mod" msgstr "" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" +msgid "Noclip mode disabled" msgstr "" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" +msgid "Noclip mode enabled" msgstr "" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +msgid "Noclip mode enabled (note: no 'noclip' privilege)" 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" +msgid "Node definitions..." msgstr "" #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" +msgid "Off" msgstr "" #: src/client/game.cpp -msgid "Continue" +msgid "On" msgstr "" #: src/client/game.cpp -msgid "Change Password" +msgid "Pitch move mode disabled" msgstr "" #: src/client/game.cpp -msgid "Game paused" +msgid "Pitch move mode enabled" msgstr "" #: src/client/game.cpp -msgid "Sound Volume" +msgid "Profiler graph shown" msgstr "" #: src/client/game.cpp -msgid "Exit to Menu" +msgid "Remote server" msgstr "" #: src/client/game.cpp -msgid "Exit to OS" +msgid "Resolving address..." msgstr "" #: src/client/game.cpp -msgid "Game info:" +msgid "Shutting down..." msgstr "" #: src/client/game.cpp -msgid "- Mode: " +msgid "Singleplayer" msgstr "" #: src/client/game.cpp -msgid "Remote server" +msgid "Sound Volume" msgstr "" #: src/client/game.cpp -msgid "- Address: " +msgid "Sound muted" msgstr "" #: src/client/game.cpp -msgid "Hosting server" +msgid "Sound system is disabled" msgstr "" #: src/client/game.cpp -msgid "- Port: " +msgid "Sound system is not supported on this build" msgstr "" #: src/client/game.cpp -msgid "Singleplayer" +msgid "Sound unmuted" msgstr "" #: src/client/game.cpp -msgid "On" +#, c-format +msgid "Viewing range changed to %d" msgstr "" #: src/client/game.cpp -msgid "Off" +#, c-format +msgid "Viewing range is at maximum: %d" msgstr "" #: src/client/game.cpp -msgid "- Damage: " +#, c-format +msgid "Viewing range is at minimum: %d" msgstr "" #: src/client/game.cpp -msgid "- Creative Mode: " +#, c-format +msgid "Volume changed to %d%%" msgstr "" -#. ~ PvP = Player versus Player #: src/client/game.cpp -msgid "- PvP: " +msgid "Wireframe shown" msgstr "" #: src/client/game.cpp -msgid "- Public: " +msgid "Zoom currently disabled by game or mod" msgstr "" #: src/client/game.cpp -msgid "- Server Name: " +msgid "ok" msgstr "" -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." +#: src/client/gameui.cpp +msgid "Chat hidden" msgstr "" #: src/client/gameui.cpp @@ -1397,7 +1426,7 @@ msgid "Chat shown" msgstr "" #: src/client/gameui.cpp -msgid "Chat hidden" +msgid "HUD hidden" msgstr "" #: src/client/gameui.cpp @@ -1405,7 +1434,7 @@ msgid "HUD shown" msgstr "" #: src/client/gameui.cpp -msgid "HUD hidden" +msgid "Profiler hidden" msgstr "" #: src/client/gameui.cpp @@ -1413,135 +1442,129 @@ msgstr "" msgid "Profiler shown (page %d of %d)" msgstr "" -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - #: src/client/keycode.cpp -msgid "Left Button" +msgid "Apps" msgstr "" #: src/client/keycode.cpp -msgid "Right Button" +msgid "Backspace" msgstr "" #: src/client/keycode.cpp -msgid "Middle Button" +msgid "Caps Lock" msgstr "" #: src/client/keycode.cpp -msgid "X Button 1" +msgid "Clear" msgstr "" #: src/client/keycode.cpp -msgid "X Button 2" +msgid "Control" msgstr "" #: src/client/keycode.cpp -msgid "Backspace" +msgid "Down" msgstr "" #: src/client/keycode.cpp -msgid "Tab" +msgid "End" msgstr "" #: src/client/keycode.cpp -msgid "Clear" +msgid "Erase EOF" msgstr "" #: src/client/keycode.cpp -msgid "Return" +msgid "Execute" msgstr "" #: src/client/keycode.cpp -msgid "Shift" +msgid "Help" msgstr "" #: src/client/keycode.cpp -msgid "Control" +msgid "Home" msgstr "" -#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Menu" +msgid "IME Accept" msgstr "" #: src/client/keycode.cpp -msgid "Pause" +msgid "IME Convert" msgstr "" #: src/client/keycode.cpp -msgid "Caps Lock" +msgid "IME Escape" msgstr "" #: src/client/keycode.cpp -msgid "Space" +msgid "IME Mode Change" msgstr "" #: src/client/keycode.cpp -msgid "Page up" +msgid "IME Nonconvert" msgstr "" #: src/client/keycode.cpp -msgid "Page down" +msgid "Insert" msgstr "" -#: src/client/keycode.cpp -msgid "End" +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" msgstr "" #: src/client/keycode.cpp -msgid "Home" +msgid "Left Button" msgstr "" -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" +#: src/client/keycode.cpp +msgid "Left Control" msgstr "" #: src/client/keycode.cpp -msgid "Up" +msgid "Left Menu" msgstr "" -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" +#: src/client/keycode.cpp +msgid "Left Shift" msgstr "" #: src/client/keycode.cpp -msgid "Down" +msgid "Left Windows" msgstr "" -#. ~ Key name +#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Select" +msgid "Menu" msgstr "" -#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Print" +msgid "Middle Button" msgstr "" #: src/client/keycode.cpp -msgid "Execute" +msgid "Num Lock" msgstr "" #: src/client/keycode.cpp -msgid "Snapshot" +msgid "Numpad *" msgstr "" #: src/client/keycode.cpp -msgid "Insert" +msgid "Numpad +" msgstr "" #: src/client/keycode.cpp -msgid "Help" +msgid "Numpad -" msgstr "" #: src/client/keycode.cpp -msgid "Left Windows" +msgid "Numpad ." msgstr "" #: src/client/keycode.cpp -msgid "Right Windows" +msgid "Numpad /" msgstr "" #: src/client/keycode.cpp @@ -1585,99 +1608,127 @@ msgid "Numpad 9" msgstr "" #: src/client/keycode.cpp -msgid "Numpad *" +msgid "OEM Clear" msgstr "" #: src/client/keycode.cpp -msgid "Numpad +" +msgid "Page down" msgstr "" #: src/client/keycode.cpp -msgid "Numpad ." +msgid "Page up" msgstr "" #: src/client/keycode.cpp -msgid "Numpad -" +msgid "Pause" msgstr "" #: src/client/keycode.cpp -msgid "Numpad /" +msgid "Play" msgstr "" +#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Num Lock" +msgid "Print" msgstr "" #: src/client/keycode.cpp -msgid "Scroll Lock" +msgid "Return" +msgstr "" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" msgstr "" #: src/client/keycode.cpp -msgid "Left Shift" +msgid "Right Button" msgstr "" #: src/client/keycode.cpp -msgid "Right Shift" +msgid "Right Control" msgstr "" #: src/client/keycode.cpp -msgid "Left Control" +msgid "Right Menu" msgstr "" #: src/client/keycode.cpp -msgid "Right Control" +msgid "Right Shift" msgstr "" #: src/client/keycode.cpp -msgid "Left Menu" +msgid "Right Windows" msgstr "" #: src/client/keycode.cpp -msgid "Right Menu" +msgid "Scroll Lock" msgstr "" +#. ~ Key name #: src/client/keycode.cpp -msgid "IME Escape" +msgid "Select" msgstr "" #: src/client/keycode.cpp -msgid "IME Convert" +msgid "Shift" msgstr "" #: src/client/keycode.cpp -msgid "IME Nonconvert" +msgid "Sleep" msgstr "" #: src/client/keycode.cpp -msgid "IME Accept" +msgid "Snapshot" msgstr "" #: src/client/keycode.cpp -msgid "IME Mode Change" +msgid "Space" msgstr "" #: src/client/keycode.cpp -msgid "Apps" +msgid "Tab" msgstr "" #: src/client/keycode.cpp -msgid "Sleep" +msgid "Up" msgstr "" #: src/client/keycode.cpp -msgid "Erase EOF" +msgid "X Button 1" msgstr "" #: src/client/keycode.cpp -msgid "Play" +msgid "X Button 2" msgstr "" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "" -#: src/client/keycode.cpp -msgid "OEM Clear" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" msgstr "" #: src/gui/guiConfirmRegistration.cpp @@ -1690,28 +1741,16 @@ msgid "" "creation, or click 'Cancel' to abort." msgstr "" -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" +msgid "Autoforward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp @@ -1719,71 +1758,71 @@ msgid "Automatic jumping" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" +msgid "Backward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "press key" +msgid "Change camera" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" +msgid "Chat" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" +msgid "Command" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Special" +msgid "Console" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" +msgid "Dec. range" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" +msgid "Dec. volume" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" +msgid "Double tap \"jump\" to toggle fly" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" +msgid "Drop" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" +msgid "Forward" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" +msgid "Inc. range" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" +msgid "Inc. volume" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" +msgid "Inventory" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" +msgid "Jump" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" +msgid "Key already in use" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" +msgid "Local command" msgstr "" #: src/gui/guiKeyChangeMenu.cpp @@ -1791,19 +1830,15 @@ msgid "Mute" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" +msgid "Next item" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" +msgid "Prev. item" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" +msgid "Range select" msgstr "" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp @@ -1811,47 +1846,51 @@ msgid "Screenshot" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" +msgid "Sneak" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" +msgid "Special" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" +msgid "Toggle HUD" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Console" +msgid "Toggle chat log" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Command" +msgid "Toggle fast" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" +msgid "Toggle fly" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" +msgid "Toggle fog" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" +msgid "Toggle minimap" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" +msgid "Toggle noclip" msgstr "" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "New Password" +msgid "Change" msgstr "" #: src/gui/guiPasswordChange.cpp @@ -1859,11 +1898,11 @@ msgid "Confirm Password" msgstr "" #: src/gui/guiPasswordChange.cpp -msgid "Change" +msgid "New Password" msgstr "" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" msgstr "" #: src/gui/guiVolumeChange.cpp @@ -1874,6 +1913,10 @@ msgstr "" msgid "Muted" msgstr "" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1888,2038 +1931,1826 @@ msgid "LANG_CODE" msgstr "gl" #: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" +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 "" -"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." +"(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 "Flying" +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 "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." +"(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 "Pitch move mode" +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." +msgid "2D noise that controls the shape/size of rolling hills." msgstr "" #: src/settings_translation_file.cpp -msgid "Fast movement" +msgid "2D noise that controls the shape/size of step mountains." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Noclip" +msgid "2D noise that controls the size/occurrence of rolling hills." 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." +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" #: src/settings_translation_file.cpp -msgid "Cinematic mode" +msgid "2D noise that locates the river valleys and channels." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." +msgid "3D clouds" msgstr "" #: src/settings_translation_file.cpp -msgid "Camera smoothing" +msgid "3D mode" msgstr "" #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." +msgid "3D mode parallax strength" msgstr "" #: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" +msgid "3D noise defining giant caverns." msgstr "" #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." msgstr "" #: src/settings_translation_file.cpp -msgid "Invert mouse" +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 "Invert vertical mouse movement." +msgid "3D noise defining structure of river canyon walls." msgstr "" #: src/settings_translation_file.cpp -msgid "Mouse sensitivity" +msgid "3D noise defining terrain." msgstr "" #: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." msgstr "" #: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" +msgid "3D noise that determines number of dungeons per mapchunk." msgstr "" #: src/settings_translation_file.cpp msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." +"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 "Double tap jump for fly" +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 "Double-tapping the jump key toggles fly mode." +msgid "A message to be displayed to all clients when the server crashes." msgstr "" #: src/settings_translation_file.cpp -msgid "Always fly and fast" +msgid "A message to be displayed to all clients when the server shuts down." 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." +msgid "ABM interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +msgid "Absolute limit of queued blocks to emerge" msgstr "" #: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." +msgid "Acceleration in air" msgstr "" #: src/settings_translation_file.cpp -msgid "Safe digging and placing" +msgid "Acceleration of gravity, in nodes per second per second." 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." +msgid "Active Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "Random input" +msgid "Active block management interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." +msgid "Active block range" msgstr "" #: src/settings_translation_file.cpp -msgid "Continuous forward" +msgid "Active object send range" 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." +"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 "Touch screen threshold" +msgid "Adds particles when digging a node." msgstr "" #: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" #: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" +#, 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 "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." +msgid "Advanced" msgstr "" #: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" +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 "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." +msgid "Always fly and fast" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable joysticks" +msgid "Ambient occlusion gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick ID" +msgid "Amount of messages a player may send per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" +msgid "Amplifies the valleys." msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick type" +msgid "Anisotropic filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "The type of joystick" +msgid "Announce server" msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" +msgid "Announce to this serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." +msgid "Append item name" msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" +msgid "Append item name to tooltip." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." +msgid "Apple trees noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Forward key" +msgid "Arm inertia" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" #: src/settings_translation_file.cpp -msgid "Backward key" +msgid "Ask to reconnect after crash" 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" +"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 "Left key" +msgid "Automatic forward key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Automatically jump up single-node obstacles." msgstr "" #: src/settings_translation_file.cpp -msgid "Right key" +msgid "Automatically report to the serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Autosave screen size" msgstr "" #: src/settings_translation_file.cpp -msgid "Jump key" +msgid "Autoscaling mode" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Backward key" msgstr "" #: src/settings_translation_file.cpp -msgid "Sneak key" +msgid "Base ground level" 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" +msgid "Base terrain height." msgstr "" #: src/settings_translation_file.cpp -msgid "Inventory key" +msgid "Basic" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Basic privileges" msgstr "" #: src/settings_translation_file.cpp -msgid "Special key" +msgid "Beach noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Beach noise threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat key" +msgid "Bilinear filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bind address" msgstr "" #: src/settings_translation_file.cpp -msgid "Command key" +msgid "Biome API temperature and humidity noise parameters" 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" +msgid "Biome noise" 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" +msgid "Bits per pixel (aka color depth) in fullscreen mode." msgstr "" #: src/settings_translation_file.cpp -msgid "Range select key" +msgid "Block send optimize distance" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bold and italic font path" msgstr "" #: src/settings_translation_file.cpp -msgid "Fly key" +msgid "Bold and italic monospace font path" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bold font path" msgstr "" #: src/settings_translation_file.cpp -msgid "Pitch move key" +msgid "Bold monospace font path" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Build inside player" msgstr "" #: src/settings_translation_file.cpp -msgid "Fast key" +msgid "Builtin" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" +"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 "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Camera smoothing" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar next key" +msgid "Camera smoothing in cinematic mode" 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" +msgid "Camera update toggle key" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar previous key" +msgid "Cave noise" 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" +msgid "Cave noise #1" msgstr "" #: src/settings_translation_file.cpp -msgid "Mute key" +msgid "Cave noise #2" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cave width" msgstr "" #: src/settings_translation_file.cpp -msgid "Inc. volume key" +msgid "Cave1 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cave2 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Dec. volume key" +msgid "Cavern limit" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cavern noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Automatic forward key" +msgid "Cavern taper" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cavern threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Cinematic mode key" +msgid "Cavern upper limit" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Minimap key" +msgid "Chat font size" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat log level" msgstr "" #: src/settings_translation_file.cpp -msgid "Drop item key" +msgid "Chat message count limit" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat message format" msgstr "" #: src/settings_translation_file.cpp -msgid "View zoom key" +msgid "Chat message kick threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat message max length" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" +msgid "Chat toggle key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chatcommands" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" +msgid "Chunk size" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cinematic mode" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" +msgid "Cinematic mode key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clean transparent textures" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" +msgid "Client" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Client and Server" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" +msgid "Client modding" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Client side modding restrictions" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" +msgid "Client side node lookup range restriction" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Climbing speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" +msgid "Cloud radius" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clouds" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" +msgid "Clouds are a client side effect." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clouds in menu" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" +msgid "Colored fog" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 10 key" +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 "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 11 key" +msgid "Command key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Connect glass" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" +msgid "Connect to external media server" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Connects glass if supported by node." msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" +msgid "Console alpha" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Console color" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" +msgid "Console height" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "ContentDB Flag Blacklist" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" +msgid "ContentDB Max Concurrent Downloads" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "ContentDB URL" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" +msgid "Continuous forward" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 17 key" +msgid "Controls" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 18 key" +msgid "Controls sinking speed in liquid." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Controls steepness/depth of lake depressions." msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" +msgid "Controls steepness/height of hills." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 20 key" +msgid "Crash message" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Creative" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" +msgid "Crosshair alpha" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" +msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" +msgid "DPI" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Damage" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" +msgid "Debug info toggle key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Debug log file size threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" +msgid "Debug log level" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Dec. volume key" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" +msgid "Decrease this to increase liquid resistance to movement." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Dedicated server step" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" +msgid "Default acceleration" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Default game" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" +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 "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Default password" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" +msgid "Default privileges" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Default report format" msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" +msgid "Default stack size" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" +msgid "Defines areas where trees have apples." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Defines areas with sandy beaches." msgstr "" #: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" +msgid "Defines distribution of higher terrain and steepness of cliffs." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Defines distribution of higher terrain." msgstr "" #: src/settings_translation_file.cpp -msgid "HUD toggle key" +msgid "Defines full size of caverns, smaller values create larger caverns." 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" +msgid "Defines large-scale river channel structure." msgstr "" #: src/settings_translation_file.cpp -msgid "Chat toggle key" +msgid "Defines location and terrain of optional hills and lakes." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Defines the base ground level." msgstr "" #: src/settings_translation_file.cpp -msgid "Large chat console key" +msgid "Defines the depth of the river channel." 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" +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" #: src/settings_translation_file.cpp -msgid "Fog toggle key" +msgid "Defines the width of the river channel." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Defines the width of the river valley." msgstr "" #: src/settings_translation_file.cpp -msgid "Camera update toggle key" +msgid "Defines tree areas and tree density." 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" +"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 "Debug info toggle key" +msgid "Delay in sending blocks after building" 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" +msgid "Delay showing tooltips, stated in milliseconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Profiler toggle key" +msgid "Deprecated Lua API handling" 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" +msgid "Depth below which you'll find giant caverns." msgstr "" #: src/settings_translation_file.cpp -msgid "Toggle camera mode key" +msgid "Depth below which you'll find large caves." 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" +"Description of server, to be displayed when players join and in the " +"serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "View range increase key" +msgid "Desert noise threshold" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" +"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 "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp -msgid "Graphics" +msgid "Dig key" msgstr "" #: src/settings_translation_file.cpp -msgid "In-Game" +msgid "Digging particles" msgstr "" #: src/settings_translation_file.cpp -msgid "Basic" +msgid "Disable anticheat" msgstr "" #: src/settings_translation_file.cpp -msgid "VBO" +msgid "Disallow empty passwords" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." +msgid "Domain name of server, to be displayed in the serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "Fog" +msgid "Double tap jump for fly" msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." +msgid "Double-tapping the jump key toggles fly mode." msgstr "" #: src/settings_translation_file.cpp -msgid "Leaves style" +msgid "Drop item key" 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" +msgid "Dump the mapgen debug information." msgstr "" #: src/settings_translation_file.cpp -msgid "Connect glass" +msgid "Dungeon maximum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." +msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Smooth lighting" +msgid "Dungeon noise" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." +"Enable IPv6 support (for both client and server).\n" +"Required for IPv6 connections to work at all." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds" +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." +msgid "Enable console window" msgstr "" #: src/settings_translation_file.cpp -msgid "3D clouds" +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." +msgid "Enable joysticks" msgstr "" #: src/settings_translation_file.cpp -msgid "Node highlighting" +msgid "Enable mod channels support." msgstr "" #: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." +msgid "Enable mod security" msgstr "" #: src/settings_translation_file.cpp -msgid "Digging particles" +msgid "Enable players getting damage and dying." msgstr "" #: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." +msgid "Enable random user input (only used for testing)." msgstr "" #: src/settings_translation_file.cpp -msgid "Filtering" +msgid "Enable register confirmation" msgstr "" #: src/settings_translation_file.cpp -msgid "Mipmapping" +msgid "" +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." 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." +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." msgstr "" #: src/settings_translation_file.cpp -msgid "Anisotropic filtering" +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 "Use anisotropic filtering when viewing at textures from an angle." +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 "Bilinear filtering" +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." msgstr "" #: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." +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 "Trilinear filtering" +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 "Use trilinear filtering when scaling textures." +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 "Clean transparent textures" +msgid "Enables animation of inventory items." 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." +msgid "Enables caching of facedir rotated meshes." msgstr "" #: src/settings_translation_file.cpp -msgid "Minimum texture size" +msgid "Enables minimap." 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." +"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 "FSAA" +msgid "Engine profiling data print interval" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." +msgid "Entity methods" msgstr "" #: src/settings_translation_file.cpp -msgid "Undersampling" +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 "" -"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." +msgid "FPS when unfocused or paused" 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." +msgid "FSAA" msgstr "" #: src/settings_translation_file.cpp -msgid "Shader path" +msgid "Factor noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." +msgid "Fall bobbing factor" msgstr "" #: src/settings_translation_file.cpp -msgid "Filmic tone mapping" +msgid "Fallback font path" 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." +msgid "Fallback font shadow" msgstr "" #: src/settings_translation_file.cpp -msgid "Bumpmapping" +msgid "Fallback font shadow alpha" 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." +msgid "Fallback font size" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" +msgid "Fast key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." +msgid "Fast mode acceleration" msgstr "" #: src/settings_translation_file.cpp -msgid "Normalmaps strength" +msgid "Fast mode speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." +msgid "Fast movement" msgstr "" #: src/settings_translation_file.cpp -msgid "Normalmaps sampling" +msgid "" +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." +msgid "Field of view" msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion" +msgid "Field of view in degrees." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" +msgid "Filler depth" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." +msgid "Filler depth noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" +msgid "Filmic tone mapping" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." +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 "Parallax occlusion scale" +msgid "Filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." +msgid "First of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" +msgid "First of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgid "Fixed map seed" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving Nodes" +msgid "Fixed virtual joystick" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids" +msgid "Floatland density" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." +msgid "Floatland maximum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids wave height" +msgid "Floatland minimum Y" 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." +msgid "Floatland noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" +msgid "Floatland taper exponent" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." +msgid "Floatland tapering distance" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" +msgid "Floatland water level" 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." +msgid "Fly key" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving leaves" +msgid "Flying" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." +msgid "Fog" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving plants" +msgid "Fog start" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." +msgid "Fog toggle key" msgstr "" #: src/settings_translation_file.cpp -msgid "Advanced" +msgid "Font bold by default" msgstr "" #: src/settings_translation_file.cpp -msgid "Arm inertia" +msgid "Font italic by default" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." +msgid "Font shadow" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS" +msgid "Font shadow alpha" 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." +msgid "Font size" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "Font size of the default font in point (pt)." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Font size of the fallback font in point (pt)." msgstr "" #: src/settings_translation_file.cpp -msgid "Pause on lost window focus" +msgid "Font size of the monospace font in point (pt)." 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." +"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 "Viewing range" +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" msgstr "" #: src/settings_translation_file.cpp -msgid "View distance in nodes." +msgid "Format of screenshots." msgstr "" #: src/settings_translation_file.cpp -msgid "Near plane" +msgid "Formspec Default Background Color" 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." +msgid "Formspec Default Background Opacity" msgstr "" #: src/settings_translation_file.cpp -msgid "Screen width" +msgid "Formspec Full-Screen Background Color" msgstr "" #: src/settings_translation_file.cpp -msgid "Width component of the initial window size." +msgid "Formspec Full-Screen Background Opacity" msgstr "" #: src/settings_translation_file.cpp -msgid "Screen height" +msgid "Formspec default background color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Height component of the initial window size." +msgid "Formspec default background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp -msgid "Autosave screen size" +msgid "Formspec full-screen background color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." +msgid "Formspec full-screen background opacity (between 0 and 255)." msgstr "" #: src/settings_translation_file.cpp -msgid "Full screen" +msgid "Forward key" msgstr "" #: src/settings_translation_file.cpp -msgid "Fullscreen mode." +msgid "Fourth of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Full screen BPP" +msgid "Fractal type" msgstr "" #: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgid "Fraction of the visible distance at which fog starts to be rendered" msgstr "" #: src/settings_translation_file.cpp -msgid "VSync" +msgid "FreeType fonts" msgstr "" #: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." msgstr "" #: src/settings_translation_file.cpp -msgid "Field of view" +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" #: src/settings_translation_file.cpp -msgid "Field of view in degrees." +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 "Light curve gamma" +msgid "Full screen" 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." +msgid "Full screen BPP" msgstr "" #: src/settings_translation_file.cpp -msgid "Light curve low gradient" +msgid "Fullscreen mode." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." +msgid "GUI scaling" msgstr "" #: src/settings_translation_file.cpp -msgid "Light curve high gradient" +msgid "GUI scaling filter" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." +msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Light curve boost" +msgid "Global callbacks" 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." +"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 "Light curve boost center" +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 "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." msgstr "" #: src/settings_translation_file.cpp -msgid "Light curve boost spread" +msgid "Graphics" 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." +msgid "Gravity" msgstr "" #: src/settings_translation_file.cpp -msgid "Texture path" +msgid "Ground level" msgstr "" #: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." +msgid "Ground noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Video driver" +msgid "HTTP mods" 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." +msgid "HUD scale factor" msgstr "" #: src/settings_translation_file.cpp -msgid "Cloud radius" +msgid "HUD toggle key" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +"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 "Fall bobbing factor" +msgid "Heat blend 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." +msgid "Heat noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode" +msgid "Height component of the initial window size." 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." +msgid "Height noise" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" +msgid "Height select noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." +msgid "High-precision FPU" msgstr "" #: src/settings_translation_file.cpp -msgid "Console height" +msgid "Hill steepness" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgid "Hill threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Console color" +msgid "Hilliness1 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." +msgid "Hilliness2 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Console alpha" +msgid "Hilliness3 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Hilliness4 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" +msgid "Homepage of server, to be displayed in the serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" +msgid "Hotbar next key" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." +msgid "Hotbar previous key" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" +msgid "Hotbar slot 1 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." +msgid "Hotbar slot 10 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box color" +msgid "Hotbar slot 11 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." +msgid "Hotbar slot 12 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box width" +msgid "Hotbar slot 13 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." +msgid "Hotbar slot 14 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color" +msgid "Hotbar slot 15 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "Hotbar slot 16 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha" +msgid "Hotbar slot 17 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgid "Hotbar slot 18 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Recent Chat Messages" +msgid "Hotbar slot 19 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" +msgid "Hotbar slot 2 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Desynchronize block animation" +msgid "Hotbar slot 20 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." +msgid "Hotbar slot 21 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum hotbar width" +msgid "Hotbar slot 22 key" 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." +msgid "Hotbar slot 23 key" msgstr "" #: src/settings_translation_file.cpp -msgid "HUD scale factor" +msgid "Hotbar slot 24 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." +msgid "Hotbar slot 25 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Mesh cache" +msgid "Hotbar slot 26 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." +msgid "Hotbar slot 27 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" +msgid "Hotbar slot 28 key" 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." +msgid "Hotbar slot 29 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgid "Hotbar slot 3 key" 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." +msgid "Hotbar slot 30 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimap" +msgid "Hotbar slot 31 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Enables minimap." +msgid "Hotbar slot 32 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Round minimap" +msgid "Hotbar slot 4 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." +msgid "Hotbar slot 5 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimap scan height" +msgid "Hotbar slot 6 key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." +msgid "Hotbar slot 7 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Colored fog" +msgid "Hotbar slot 8 key" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgid "Hotbar slot 9 key" msgstr "" #: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" +msgid "How deep to make rivers." 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." +"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 "Inventory items animations" +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 "Enables animation of inventory items." +msgid "How wide to make rivers." msgstr "" #: src/settings_translation_file.cpp -msgid "Fog start" +msgid "Humidity blend noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" +msgid "Humidity noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Opaque liquids" +msgid "Humidity variation for biomes." msgstr "" #: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" +msgid "IPv6" msgstr "" #: src/settings_translation_file.cpp -msgid "World-aligned textures mode" +msgid "IPv6 server" 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." +"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 "Autoscaling mode" +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 "" -"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!" +"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 "Show entity selection boxes" +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 "Menus" +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds in menu" +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." msgstr "" #: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." +msgid "If enabled, disable cheat prevention in multiplayer." msgstr "" #: src/settings_translation_file.cpp -msgid "GUI scaling" +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 "" -"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." +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." msgstr "" #: src/settings_translation_file.cpp -msgid "GUI scaling filter" +msgid "If enabled, new players cannot join with an empty password." msgstr "" #: src/settings_translation_file.cpp msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" +"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 "" -"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." +"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 "Tooltip delay" +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 "Delay showing tooltips, stated in milliseconds." +msgid "If this is set, players will always (re)spawn at the given position." msgstr "" #: src/settings_translation_file.cpp -msgid "Append item name" +msgid "Ignore world errors" msgstr "" #: src/settings_translation_file.cpp -msgid "Append item name to tooltip." +msgid "In-Game" msgstr "" #: src/settings_translation_file.cpp -msgid "FreeType fonts" +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." 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." +msgid "In-game chat console background color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Font bold by default" +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "" #: src/settings_translation_file.cpp -msgid "Font italic by default" +msgid "Inc. volume key" msgstr "" #: src/settings_translation_file.cpp -msgid "Font shadow" +msgid "Initial vertical speed when jumping, in nodes per second." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" msgstr "" #: src/settings_translation_file.cpp -msgid "Font shadow alpha" +msgid "Instrument chatcommands on registration." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" msgstr "" #: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." +msgid "" +"Instrument the action function of Active Block Modifiers on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Regular font path" +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." 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." +msgid "Instrument the methods of entities on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Bold font path" +msgid "Instrumentation" msgstr "" #: src/settings_translation_file.cpp -msgid "Italic font path" +msgid "Interval of saving important changes in the world, stated in seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Bold and italic font path" +msgid "Interval of sending time of day to clients." msgstr "" #: src/settings_translation_file.cpp -msgid "Monospace font size" +msgid "Inventory items animations" msgstr "" #: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." +msgid "Inventory key" msgstr "" #: src/settings_translation_file.cpp -msgid "Monospace font path" +msgid "Invert mouse" 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." +msgid "Invert vertical mouse movement." msgstr "" #: src/settings_translation_file.cpp -msgid "Bold monospace font path" +msgid "Italic font path" msgstr "" #: src/settings_translation_file.cpp @@ -3927,827 +3758,984 @@ msgid "Italic monospace font path" msgstr "" #: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" +msgid "Item entity TTL" msgstr "" #: src/settings_translation_file.cpp -msgid "Fallback font size" +msgid "Iterations" msgstr "" #: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." +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 "Fallback font shadow" +msgid "Joystick ID" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." +msgid "Joystick button repetition interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" +msgid "Joystick deadzone" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgid "Joystick frustum sensitivity" msgstr "" #: src/settings_translation_file.cpp -msgid "Fallback font path" +msgid "Joystick type" 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." +"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 "Chat font size" +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 "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." +"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 "Screenshot folder" +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 "" -"Path to save screenshots at. Can be an absolute or relative path.\n" -"The folder will be created if it doesn't already exist." +msgid "Julia w" msgstr "" #: src/settings_translation_file.cpp -msgid "Screenshot format" +msgid "Julia x" msgstr "" #: src/settings_translation_file.cpp -msgid "Format of screenshots." +msgid "Julia y" msgstr "" #: src/settings_translation_file.cpp -msgid "Screenshot quality" +msgid "Julia z" 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." +msgid "Jump key" msgstr "" #: src/settings_translation_file.cpp -msgid "DPI" +msgid "Jumping speed" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable console window" +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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)." +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Sound" +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 "" -"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." +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Volume" +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Mute sound" +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 "" -"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." +"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 "Client" +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Network" +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Server address" +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Remote port" +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 "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." +"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 "Prometheus listener address" +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Saving map received from server" +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." +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 "Connect to external media server" +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 "" -"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." +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Client modding" +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 "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Serverlist URL" +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 "URL to the server list displayed in the Multiplayer Tab." +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 "Serverlist file" +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 "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" +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 "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable register confirmation" +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 "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" +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 "Timeout for client to remove unused map data from memory." +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 "Mapblock limit" +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 "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Show debug info" +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 "" -"Whether to show the client debug info (has the same effect as hitting F5)." +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Server / Singleplayer" +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 "Server name" +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 "" -"Name of the server, to be displayed when players join and in the serverlist." +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Server description" +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 "" -"Description of server, to be displayed when players join and in the " -"serverlist." +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." +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 "Server URL" +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 "Homepage of server, to be displayed in the serverlist." +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 "Announce server" +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 "Automatically report to the serverlist." +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 "Announce to this serverlist." +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 "Strip color codes" +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 "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Server port" +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 "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Bind address" +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 "The network interface that the server listens on." +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 "Strict protocol checking" +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Remote media" +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "IPv6 server" +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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." +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" 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)" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" +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 "" -"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." +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Max. packets per iteration" +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 "" -"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." +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Default game" +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 "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." +"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 "Message of the day" +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 "Message of the day displayed to players connecting." +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum users" +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 "Maximum number of players that can be connected simultaneously." +msgid "Kick players who sent more than X messages per 10 seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "Map directory" +msgid "Lake steepness" 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." +msgid "Lake threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Item entity TTL" +msgid "Language" 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." +msgid "Large cave depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Default stack size" +msgid "Large cave maximum number" 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." +msgid "Large cave minimum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Damage" +msgid "Large cave proportion flooded" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." +msgid "Large chat console key" msgstr "" #: src/settings_translation_file.cpp -msgid "Creative" +msgid "Leaves style" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +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 "Fixed map seed" +msgid "Left key" 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." +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." msgstr "" #: src/settings_translation_file.cpp -msgid "Default password" +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "New users need to input this password." +msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" #: src/settings_translation_file.cpp -msgid "Default privileges" +msgid "Length of time between NodeTimer execution cycles" 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." +msgid "Length of time between active block management cycles" msgstr "" #: src/settings_translation_file.cpp -msgid "Basic privileges" +msgid "" +"Level of logging to be written to debug.txt:\n" +"- <nothing> (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 "Privileges that players with basic_privs can grant" +msgid "Light curve boost" msgstr "" #: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" +msgid "Light curve boost center" 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." +msgid "Light curve boost spread" msgstr "" #: src/settings_translation_file.cpp -msgid "Player transfer distance" +msgid "Light curve gamma" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgid "Light curve high gradient" msgstr "" #: src/settings_translation_file.cpp -msgid "Player versus player" +msgid "Light curve low gradient" msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." +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 "Mod channels" +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 "Enable mod channels support." +msgid "Liquid fluidity" msgstr "" #: src/settings_translation_file.cpp -msgid "Static spawnpoint" +msgid "Liquid fluidity smoothing" msgstr "" #: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." +msgid "Liquid loop max" msgstr "" #: src/settings_translation_file.cpp -msgid "Disallow empty passwords" +msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." +msgid "Liquid sinking" msgstr "" #: src/settings_translation_file.cpp -msgid "Disable anticheat" +msgid "Liquid update interval in seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." +msgid "Liquid update tick" msgstr "" #: src/settings_translation_file.cpp -msgid "Rollback recording" +msgid "Load the game profiler" msgstr "" #: src/settings_translation_file.cpp msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." +"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 "Chat message format" +msgid "Loading Block Modifiers" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" +msgid "Lower Y limit of dungeons." msgstr "" #: src/settings_translation_file.cpp -msgid "Shutdown message" +msgid "Lower Y limit of floatlands." msgstr "" #: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." +msgid "Main menu script" msgstr "" #: src/settings_translation_file.cpp -msgid "Crash message" +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" #: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" #: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" +msgid "Makes all liquids opaque" 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." +msgid "Map Compression Level for Disk Storage" msgstr "" #: src/settings_translation_file.cpp -msgid "Active object send range" +msgid "Map Compression Level for Network Transfer" 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)" +msgid "Map directory" msgstr "" #: src/settings_translation_file.cpp -msgid "Active block range" +msgid "Map generation attributes specific to Mapgen Carpathian." 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." +"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 "Max block send distance" +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 "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +"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 "Maximum forceloaded blocks" +msgid "Map generation attributes specific to Mapgen v5." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." +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 "Time send interval" +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 "Interval of sending time of day to clients." +msgid "Map generation limit" msgstr "" #: src/settings_translation_file.cpp -msgid "Time speed" +msgid "Map save interval" 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." +msgid "Mapblock limit" msgstr "" #: src/settings_translation_file.cpp -msgid "World start time" +msgid "Mapblock mesh generation delay" msgstr "" #: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." +msgid "Mapblock mesh generator's MapBlock cache size in MB" msgstr "" #: src/settings_translation_file.cpp -msgid "Map save interval" +msgid "Mapblock unload timeout" msgstr "" #: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." +msgid "Mapgen Carpathian" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat message max length" +msgid "Mapgen Carpathian specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." +msgid "Mapgen Flat" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat message count limit" +msgid "Mapgen Flat specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." +msgid "Mapgen Fractal" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat message kick threshold" +msgid "Mapgen Fractal specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." +msgid "Mapgen V5" msgstr "" #: src/settings_translation_file.cpp -msgid "Physics" +msgid "Mapgen V5 specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Default acceleration" +msgid "Mapgen V6" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." +msgid "Mapgen V6 specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Acceleration in air" +msgid "Mapgen V7" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." +msgid "Mapgen V7 specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Fast mode acceleration" +msgid "Mapgen Valleys" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." +msgid "Mapgen Valleys specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Walking speed" +msgid "Mapgen debug" msgstr "" #: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." +msgid "Mapgen name" msgstr "" #: src/settings_translation_file.cpp -msgid "Sneaking speed" +msgid "Max block generate distance" msgstr "" #: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." +msgid "Max block send distance" msgstr "" #: src/settings_translation_file.cpp -msgid "Fast mode speed" +msgid "Max liquids processed per step." msgstr "" #: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgid "Max. clearobjects extra blocks" msgstr "" #: src/settings_translation_file.cpp -msgid "Climbing speed" +msgid "Max. packets per iteration" msgstr "" #: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." +msgid "Maximum FPS" msgstr "" #: src/settings_translation_file.cpp -msgid "Jumping speed" +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." +msgid "Maximum forceloaded blocks" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid fluidity" +msgid "Maximum hotbar width" msgstr "" #: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." +msgid "Maximum limit of random number of large caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" +msgid "Maximum limit of random number of small caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp @@ -4757,941 +4745,945 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid sinking" +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 "Controls sinking speed in liquid." +msgid "Maximum number of blocks that can be queued for loading." msgstr "" #: src/settings_translation_file.cpp -msgid "Gravity" +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 "Acceleration of gravity, in nodes per second per second." +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 "Deprecated Lua API handling" +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 "" -"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)." +msgid "Maximum number of forceloaded mapblocks." msgstr "" #: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" +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 "" -"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)." +"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 "Unload unused server data" +msgid "Maximum number of players that can be connected simultaneously." 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." +msgid "Maximum number of recent chat messages to show" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum objects per block" +msgid "Maximum number of statically stored objects in a block." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." +msgid "Maximum objects per block" msgstr "" #: src/settings_translation_file.cpp -msgid "Synchronous SQLite" +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 "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgid "Maximum simultaneous block sends per client" msgstr "" #: src/settings_translation_file.cpp -msgid "Dedicated server step" +msgid "Maximum size of the out chat queue" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." +"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 "Active block management interval" +msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" #: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" +msgid "Maximum users" msgstr "" #: src/settings_translation_file.cpp -msgid "ABM interval" +msgid "Menus" msgstr "" #: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgid "Mesh cache" msgstr "" #: src/settings_translation_file.cpp -msgid "NodeTimer interval" +msgid "Message of the day" msgstr "" #: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" +msgid "Message of the day displayed to players connecting." msgstr "" #: src/settings_translation_file.cpp -msgid "Ignore world errors" +msgid "Method used to highlight selected object." 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." +msgid "Minimal level of logging to be written to chat." msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid loop max" +msgid "Minimap" msgstr "" #: src/settings_translation_file.cpp -msgid "Max liquids processed per step." +msgid "Minimap key" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid queue purge time" +msgid "Minimap scan height" 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." +msgid "Minimum limit of random number of large caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid update tick" +msgid "Minimum limit of random number of small caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." +msgid "Minimum texture size" msgstr "" #: src/settings_translation_file.cpp -msgid "Block send optimize distance" +msgid "Mipmapping" 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)." +msgid "Mod channels" msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" +msgid "Modifies the size of the hudbar elements." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." +msgid "Monospace font path" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" +msgid "Monospace font size" 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)" +msgid "Mountain height noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" +msgid "Mountain noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." +msgid "Mountain variation noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Security" +msgid "Mountain zero level" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable mod security" +msgid "Mouse sensitivity" msgstr "" #: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." +msgid "Mouse sensitivity multiplier." msgstr "" #: src/settings_translation_file.cpp -msgid "Trusted mods" +msgid "Mud noise" 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())." +"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 "HTTP mods" +msgid "Mute key" 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." +msgid "Mute sound" msgstr "" #: src/settings_translation_file.cpp -msgid "Profiling" +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 "Load the game profiler" +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 "" -"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." +"Name of the server, to be displayed when players join and in the serverlist." msgstr "" #: src/settings_translation_file.cpp -msgid "Default report format" +msgid "Near plane" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." +msgid "Network" msgstr "" #: src/settings_translation_file.cpp -msgid "Report path" +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 "" -"The file path relative to your worldpath in which profiles will be saved to." +msgid "New users need to input this password." msgstr "" #: src/settings_translation_file.cpp -msgid "Instrumentation" +msgid "Noclip" msgstr "" #: src/settings_translation_file.cpp -msgid "Entity methods" +msgid "Noclip key" msgstr "" #: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." +msgid "Node highlighting" msgstr "" #: src/settings_translation_file.cpp -msgid "Active Block Modifiers" +msgid "NodeTimer interval" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." +msgid "Noises" msgstr "" #: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" +msgid "Number of emerge threads" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument the action function of Loading Block Modifiers on registration." +"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 "Chatcommands" +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 "Instrument chatcommands on registration." +msgid "Online Content Repository" msgstr "" #: src/settings_translation_file.cpp -msgid "Global callbacks" +msgid "Opaque liquids" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." msgstr "" #: src/settings_translation_file.cpp -msgid "Builtin" +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" +"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 "Profiler" +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 "" -"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." +"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 "Client and Server" +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." msgstr "" #: src/settings_translation_file.cpp -msgid "Player name" +msgid "Path to texture directory. All textures are first searched from here." 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." +"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 "Language" +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 "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." +msgid "Pause on lost window focus" msgstr "" #: src/settings_translation_file.cpp -msgid "Debug log level" +msgid "Per-player limit of queued blocks load from disk" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- <nothing> (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" +msgid "Per-player limit of queued blocks to generate" msgstr "" #: src/settings_translation_file.cpp -msgid "Debug log file size threshold" +msgid "Physics" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." +msgid "Pitch move key" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat log level" +msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." +msgid "Place key" msgstr "" #: src/settings_translation_file.cpp -msgid "IPv6" +msgid "Place repetition interval" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." +"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 "cURL timeout" +msgid "Player name" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." +msgid "Player transfer distance" msgstr "" #: src/settings_translation_file.cpp -msgid "cURL parallel limit" +msgid "Player versus player" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" +"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 "Maximum time in ms a file download (e.g. a mod download) may take." +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 "High-precision FPU" +msgid "Prevent mods from doing insecure things like running shell commands." msgstr "" #: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +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 "Main menu style" +msgid "Privileges that players with basic_privs can grant" 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." +msgid "Profiler" msgstr "" #: src/settings_translation_file.cpp -msgid "Main menu script" +msgid "Profiler toggle key" msgstr "" #: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." +msgid "Profiling" msgstr "" #: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" +msgid "Prometheus listener address" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." +"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 "Mapgen name" +msgid "Proportion of large caves that contain liquid." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" +"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 "Water surface level of the world." +msgid "Raises terrain to make valleys around the rivers." msgstr "" #: src/settings_translation_file.cpp -msgid "Max block generate distance" +msgid "Random input" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." +msgid "Range select key" msgstr "" #: src/settings_translation_file.cpp -msgid "Map generation limit" +msgid "Recent Chat Messages" 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." +msgid "Regular font path" 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." +msgid "Remote media" msgstr "" #: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" +msgid "Remote port" msgstr "" #: src/settings_translation_file.cpp -msgid "Heat noise" +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 "Temperature variation for biomes." +msgid "Replaces the default main menu with a custom one." msgstr "" #: src/settings_translation_file.cpp -msgid "Heat blend noise" +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." +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 "Humidity noise" +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." +msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Humidity blend noise" +msgid "Ridge underwater noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." +msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V5" +msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" +msgid "River channel depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." +msgid "River channel width" msgstr "" #: src/settings_translation_file.cpp -msgid "Cave width" +msgid "River depth" 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." +msgid "River noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave depth" +msgid "River size" msgstr "" #: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." +msgid "River valley width" msgstr "" #: src/settings_translation_file.cpp -msgid "Small cave minimum number" +msgid "Rollback recording" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Small cave maximum number" +msgid "Rolling hills spread noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." +msgid "Round minimap" msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave minimum number" +msgid "Safe digging and placing" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." +msgid "Sandy beaches occur when np_beach exceeds this value." msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave maximum number" +msgid "Save the map received by the client on disk." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." +msgid "Save window size automatically when modified." msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" +msgid "Saving map received from server" msgstr "" #: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." +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 "Cavern limit" +msgid "Screen height" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." +msgid "Screen width" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern taper" +msgid "Screenshot folder" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." +msgid "Screenshot format" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern threshold" +msgid "Screenshot quality" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." +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 "Dungeon minimum Y" +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "Noises" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Filler depth noise" +msgid "Selection box border color (R,G,B)." msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." +msgid "Selection box color" msgstr "" #: src/settings_translation_file.cpp -msgid "Factor noise" +msgid "Selection box width" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." +"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 "Height noise" +msgid "Server / Singleplayer" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." +msgid "Server URL" msgstr "" #: src/settings_translation_file.cpp -msgid "Cave1 noise" +msgid "Server address" msgstr "" #: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." +msgid "Server description" msgstr "" #: src/settings_translation_file.cpp -msgid "Cave2 noise" +msgid "Server name" msgstr "" #: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." +msgid "Server port" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern noise" +msgid "Server side occlusion culling" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." +msgid "Serverlist URL" msgstr "" #: src/settings_translation_file.cpp -msgid "Ground noise" +msgid "Serverlist file" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining terrain." +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 "Dungeon noise" +msgid "Set the maximum character length of a chat message sent by clients." msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." +msgid "" +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V6" +msgid "" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" +msgid "" +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." 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." +msgid "Shader path" msgstr "" #: src/settings_translation_file.cpp -msgid "Desert noise threshold" +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 "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Beach noise threshold" +msgid "" +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" #: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." +msgid "Shape of the minimap. Enabled = round, disabled = square." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain base noise" +msgid "Show debug info" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." +msgid "Show entity selection boxes" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain higher noise" +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." +msgid "Show nametag backgrounds by default" msgstr "" #: src/settings_translation_file.cpp -msgid "Steepness noise" +msgid "Shutdown message" msgstr "" #: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." +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 "Height select noise" +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 "Defines distribution of higher terrain." +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Mud noise" +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Beach noise" +msgid "Small cave minimum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." +msgid "Small-scale humidity variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -msgid "Biome noise" +msgid "Small-scale temperature variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -msgid "Cave noise" +msgid "Smooth lighting" msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of number of caves." +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" #: src/settings_translation_file.cpp -msgid "Trees noise" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." msgstr "" #: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." +msgid "Smooths rotation of camera. 0 to disable." msgstr "" #: src/settings_translation_file.cpp -msgid "Apple trees noise" +msgid "Sneak key" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." +msgid "Sneaking speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V7" +msgid "Sneaking speed, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" +msgid "Sound" 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." +msgid "Special key" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain zero level" +msgid "Special key for climbing/descending" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." +"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 "Floatland minimum Y" +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 "Lower Y limit of floatlands." +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 "Floatland maximum Y" +msgid "Static spawnpoint" msgstr "" #: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." +msgid "Steepness noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland tapering distance" +msgid "Step mountain size noise" 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." +msgid "Step mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland taper exponent" +msgid "Strength of 3D mode parallax." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" +"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 -#, 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." +msgid "Strict protocol checking" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland water level" +msgid "Strip color codes" msgstr "" #: src/settings_translation_file.cpp @@ -5709,131 +5701,184 @@ msgid "" 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 persistence noise" +msgid "Terrain base noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgid "Terrain height" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." +msgid "Terrain higher noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain height noise" +msgid "Terrain noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." +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 "Ridge underwater noise" +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 "Defines large-scale river channel structure." +msgid "Terrain persistence noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain noise" +msgid "Texture path" msgstr "" #: src/settings_translation_file.cpp msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +"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 "Ridge noise" +msgid "The URL for the content repository" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." +msgid "The deadzone of the joystick" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland noise" +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 "" -"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." +msgid "The depth of dirt or other biome filler node." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" +msgid "The identifier of the joystick to use" msgstr "" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." +msgid "The length in pixels it takes for touch screen interaction to start." msgstr "" #: src/settings_translation_file.cpp -msgid "Base ground level" +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 "Defines the base ground level." +msgid "The network interface that the server listens on." msgstr "" #: src/settings_translation_file.cpp -msgid "River channel width" +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 "Defines the width of the river channel." +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 "River channel depth" +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." msgstr "" #: src/settings_translation_file.cpp -msgid "River valley width" +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 "Defines the width of the river valley." +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 "Hilliness1 noise" +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 "First of 4 2D noises that together define hill/mountain range height." +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 "Hilliness2 noise" +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" #: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." +msgid "The type of joystick" msgstr "" #: src/settings_translation_file.cpp -msgid "Hilliness3 noise" +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 @@ -5841,488 +5886,489 @@ msgid "Third of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Hilliness4 noise" +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 "Fourth of 4 2D noises that together define hill/mountain range height." +msgid "Time of day when a new world is started, in millihours (0-23999)." msgstr "" #: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" +msgid "Time send interval" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." +msgid "Time speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" +msgid "Timeout for client to remove unused map data from memory." msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +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 "Step mountain spread noise" +msgid "Toggle camera mode key" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgid "Tooltip delay" msgstr "" #: src/settings_translation_file.cpp -msgid "Rolling hill size noise" +msgid "Touch screen threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." +msgid "Trees noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" +msgid "Trilinear filtering" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." msgstr "" #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "Trusted mods" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +msgid "URL to the server list displayed in the Multiplayer Tab." msgstr "" #: src/settings_translation_file.cpp -msgid "River noise" +msgid "Undersampling" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +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 "Mountain variation noise" +msgid "Unlimited player transfer distance" msgstr "" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Unload unused server data" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" +msgid "Upper Y limit of dungeons." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" +msgid "Upper Y limit of floatlands." 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." +msgid "Use 3D cloud look instead of flat." msgstr "" #: src/settings_translation_file.cpp -msgid "Ground level" +msgid "Use a cloud animation for the main menu background." msgstr "" #: src/settings_translation_file.cpp -msgid "Y of flat ground." +msgid "Use anisotropic filtering when viewing at textures from an angle." msgstr "" #: src/settings_translation_file.cpp -msgid "Lake threshold" +msgid "Use bilinear filtering when scaling textures." 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." +"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 "Lake steepness" +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 "Controls steepness/depth of lake depressions." +msgid "Use trilinear filtering when scaling textures." msgstr "" #: src/settings_translation_file.cpp -msgid "Hill threshold" +msgid "VBO" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "VSync" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" +msgid "Valley depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." +msgid "Valley fill" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain noise" +msgid "Valley profile" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." +msgid "Valley slope" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Fractal" +msgid "Variation of biome filler depth." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" +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 "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." msgstr "" #: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Varies depth of biome surface nodes." 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." +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Varies steepness of cliffs." 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." +msgid "Vertical climbing speed, in nodes per second." 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." +msgid "Vertical screen synchronization." 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." +msgid "Video driver" msgstr "" #: src/settings_translation_file.cpp -msgid "Slice w" +msgid "View bobbing factor" 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." +msgid "View distance in nodes." msgstr "" #: src/settings_translation_file.cpp -msgid "Julia x" +msgid "View range decrease key" 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." +msgid "View range increase key" msgstr "" #: src/settings_translation_file.cpp -msgid "Julia y" +msgid "View zoom key" 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." +msgid "Viewing range" msgstr "" #: src/settings_translation_file.cpp -msgid "Julia z" +msgid "Virtual joystick triggers aux button" 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." +msgid "Volume" msgstr "" #: src/settings_translation_file.cpp -msgid "Julia w" +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" +"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 "Seabed noise" +msgid "Walking and flying speed, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of seabed." +msgid "Walking speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Valleys" +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" +msgid "Water level" 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." +msgid "Water surface level of the world." 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." +msgid "Waving Nodes" msgstr "" #: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." +msgid "Waving leaves" msgstr "" #: src/settings_translation_file.cpp -msgid "Cavern upper limit" +msgid "Waving liquids" msgstr "" #: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." +msgid "Waving liquids wave height" msgstr "" #: src/settings_translation_file.cpp -msgid "River depth" +msgid "Waving liquids wave speed" msgstr "" #: src/settings_translation_file.cpp -msgid "How deep to make rivers." +msgid "Waving liquids wavelength" msgstr "" #: src/settings_translation_file.cpp -msgid "River size" +msgid "Waving plants" msgstr "" #: src/settings_translation_file.cpp -msgid "How wide to make rivers." +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 "Cave noise #1" +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 "Cave noise #2" +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 "Filler depth" +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 "The depth of dirt or other biome filler node." +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain height" +msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" #: src/settings_translation_file.cpp -msgid "Base terrain height." +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 "Valley depth" +msgid "Whether to allow players to damage and kill each other." msgstr "" #: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." +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 "Valley fill" +msgid "Whether to fog out the end of the visible area." msgstr "" #: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." +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 "Valley profile" +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." msgstr "" #: src/settings_translation_file.cpp -msgid "Amplifies the valleys." +msgid "Width component of the initial window size." msgstr "" #: src/settings_translation_file.cpp -msgid "Valley slope" +msgid "Width of the selection box lines around nodes." msgstr "" #: src/settings_translation_file.cpp -msgid "Chunk size" +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 "" -"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." +"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 "Mapgen debug" +msgid "World start time" msgstr "" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +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 "Absolute limit of queued blocks to emerge" +msgid "World-aligned textures mode" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Y of flat ground." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." 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." +msgid "Y of upper limit of large caves." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" +msgid "Y-distance over which caverns expand to full size." 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." +"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 "Number of emerge threads" +msgid "Y-level of average terrain surface." 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'." +msgid "Y-level of cavern upper limit." msgstr "" #: src/settings_translation_file.cpp -msgid "Online Content Repository" +msgid "Y-level of higher terrain that creates cliffs." msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB URL" +msgid "Y-level of lower terrain and seabed." msgstr "" #: src/settings_translation_file.cpp -msgid "The URL for the content repository" +msgid "Y-level of seabed." msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" +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 "" -"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/" +"ZLib compression level to use when sending mapblocks to the client.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" msgstr "" diff --git a/po/he/minetest.po b/po/he/minetest.po index f0a49f82e..2bfb5e711 100644 --- a/po/he/minetest.po +++ b/po/he/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Hebrew (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock <mk939@ymail.com>\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 <cohenyossi81@gmail.com>\n" "Language-Team: Hebrew <https://hosted.weblate.org/projects/minetest/minetest/" "he/>\n" "Language: he\n" @@ -13,29 +13,27 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" -msgstr "" +msgstr "הזדמן" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +msgstr "מתת" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "×ישור" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "×ירעה שגי××” בקוד לו××” (Lua), ×›× ×¨××” ב×חד המודי×:" +msgstr "×ירעה שגי××” בתסריט Lua:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" -msgstr "התרחשה שגי××”:" +msgstr "×ירעה שגי××”:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -43,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. " @@ -59,17 +53,13 @@ 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$ של הפרוטוקול." @@ -77,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 @@ -87,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:" @@ -130,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:" @@ -167,26 +153,64 @@ msgid "enabled" msgstr "מופעל" #: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" +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 @@ -195,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 @@ -204,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" @@ -304,276 +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 "" +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". @@ -581,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 @@ -596,157 +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 "Previous Contributors" +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 "×ª×•×¨×ž×™× ×§×•×“×ž×™×" #: 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" @@ -754,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 "התחבר" +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 -#, 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 "" +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" @@ -941,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" @@ -1080,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 @@ -1167,36 +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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" +"פקדי×:\n" +"- %s: כדי לזוז קדימה\n" +"- %s: כדי לזוז ×חורה\n" +"- %s: כדי לזוז שמ×לה\n" +"- %s: כדי לזוז ×™×ž×™× ×”\n" +"- %s: כדי לקפוץ ×ו לטפס למעלה\n" +"- %s: כדי לחפור ×ו לחבוט\n" +"- %s: כדי ×œ×”× ×™×— ×ו להשתמש\n" +"- %s: כדי להתכופף ×ו לטפס למטה\n" +"- %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 "" @@ -1213,165 +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 "מופעל" +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 "" +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 "" +msgstr "×ž×¤×¢× ×— כתובת..." #: src/client/game.cpp msgid "Shutting down..." -msgstr "" +msgstr "מכבה..." #: src/client/game.cpp msgid "Singleplayer" @@ -1379,262 +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 "" +msgstr "מסגרת שלדית מוצגת" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "×–×•× ×’×¨×’×¢ מבוטל על-ידי המשחק ×ו המוד" #: src/client/game.cpp msgid "ok" -msgstr "" +msgstr "×וקיי" #: src/client/gameui.cpp msgid "Chat hidden" -msgstr "" +msgstr "צ'×ט מוסתר" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "צ'×ט מוצג" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "מידע-על-מסך מוסתר" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "מידע-על-מסך מוצג" #: src/client/gameui.cpp msgid "Profiler hidden" -msgstr "" +msgstr "פרופיילר מוסתר" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "פרופיילר מוצג (עמוד %d מתוך %d)" #: src/client/keycode.cpp msgid "Apps" -msgstr "" +msgstr "×פליקציות" #: src/client/keycode.cpp msgid "Backspace" -msgstr "" +msgstr "Backspace" #: src/client/keycode.cpp msgid "Caps Lock" -msgstr "" +msgstr "Caps Lock" #: src/client/keycode.cpp msgid "Clear" -msgstr "" +msgstr "× ×§×”" #: src/client/keycode.cpp msgid "Control" -msgstr "" +msgstr "×§×•× ×˜×¨×•×œ" #: src/client/keycode.cpp msgid "Down" -msgstr "" +msgstr "למטה" #: src/client/keycode.cpp msgid "End" -msgstr "" +msgstr "End" #: src/client/keycode.cpp msgid "Erase EOF" -msgstr "" +msgstr "מחק EOF" #: src/client/keycode.cpp msgid "Execute" -msgstr "" +msgstr "בצע" #: src/client/keycode.cpp msgid "Help" -msgstr "" +msgstr "עזרה" #: src/client/keycode.cpp msgid "Home" -msgstr "" +msgstr "Home" #: src/client/keycode.cpp -#, fuzzy msgid "IME Accept" -msgstr "קבל" +msgstr "קבל IME" #: src/client/keycode.cpp msgid "IME Convert" -msgstr "" +msgstr "המרת IME" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "יצי×ת IME" #: src/client/keycode.cpp msgid "IME Mode Change" -msgstr "" +msgstr "×©×™× ×•×™ מצב IME" #: src/client/keycode.cpp msgid "IME Nonconvert" -msgstr "" +msgstr "IME ×œ×œ× ×”×ž×¨×”" #: src/client/keycode.cpp msgid "Insert" -msgstr "" +msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -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" @@ -1643,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 @@ -1735,188 +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 "" +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 "" +msgstr "מיוחד" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "" +msgstr "מתג מידע על מסך" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "" +msgstr "מתג צ×'ט לוג" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "" +msgstr "מתג מצב מהיר" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "" +msgstr "מתג תעופה" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "" +msgstr "מתג ערפל" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "" +msgstr "מתג מפה ×§×˜× ×”" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "" +msgstr "מתג מעבר דרך קירות" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "" +msgstr "מתג ×ª× ×•×¢×” לכיוון מבט" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" -msgstr "" +msgstr "לחץ מקש" #: src/gui/guiPasswordChange.cpp msgid "Change" -msgstr "" +msgstr "×©× ×”" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "×שר סיסמה" #: src/gui/guiPasswordChange.cpp msgid "New Password" -msgstr "" +msgstr "סיסמה חדשה" #: src/gui/guiPasswordChange.cpp msgid "Old Password" -msgstr "" +msgstr "סיסמה ×™×©× ×”" #: src/gui/guiVolumeChange.cpp msgid "Exit" -msgstr "" +msgstr "יצי××”" #: src/gui/guiVolumeChange.cpp msgid "Muted" -msgstr "" +msgstr "מושתק" #: src/gui/guiVolumeChange.cpp msgid "Sound Volume: " -msgstr "" +msgstr "עוצמת שמע: " #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp msgid "Enter " -msgstr "" +msgstr "×”×›× ×¡ " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string which needs to contain the translation's @@ -1930,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 "" @@ -1937,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 "" @@ -1949,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 "" @@ -1960,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 "" @@ -2024,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 "" @@ -2054,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 "" @@ -2107,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 @@ -2127,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 "" @@ -2140,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 "" @@ -2209,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 "" @@ -2317,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 @@ -2544,6 +2639,10 @@ 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 "" @@ -2592,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 @@ -2609,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 @@ -2618,7 +2720,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Damage" -msgstr "" +msgstr "חבלה" #: src/settings_translation_file.cpp msgid "Debug info toggle key" @@ -2709,12 +2811,6 @@ 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 "" @@ -2786,6 +2882,11 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "מקש התזוזה ×™×ž×™× ×”" + +#: src/settings_translation_file.cpp +#, fuzzy msgid "Digging particles" msgstr "חלקיקי×" @@ -2803,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." @@ -2846,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 @@ -2863,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)." @@ -2934,14 +3035,6 @@ 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 "" @@ -2951,18 +3044,6 @@ 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" @@ -2979,12 +3060,6 @@ 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" @@ -2994,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 @@ -3233,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." @@ -3296,10 +3371,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3354,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 "" @@ -3822,6 +3893,10 @@ 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 "" @@ -3880,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 "" @@ -3902,6 +3977,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4001,6 +4083,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4422,7 +4511,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Left key" -msgstr "" +msgstr "מקש התזוזה שמ×לה" #: src/settings_translation_file.cpp msgid "" @@ -4557,11 +4646,6 @@ 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." msgstr "" @@ -4575,6 +4659,14 @@ 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 "" @@ -4744,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 @@ -4793,6 +4885,13 @@ msgid "" 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 "" @@ -4903,7 +5002,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Mipmapping" -msgstr "" +msgstr "מיפמ××¤×™× ×’" #: src/settings_translation_file.cpp msgid "Mod channels" @@ -5022,14 +5121,6 @@ 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 "" @@ -5055,10 +5146,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5084,34 +5171,6 @@ msgid "" 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" @@ -5177,6 +5236,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5329,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" @@ -5488,7 +5551,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Server / Singleplayer" -msgstr "שרת" +msgstr "שרת / שחקן יחיד" #: src/settings_translation_file.cpp msgid "Server URL" @@ -5587,6 +5650,16 @@ 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 "" @@ -5716,10 +5789,6 @@ 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" @@ -5813,6 +5882,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5871,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 @@ -5898,15 +5971,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6042,6 +6120,17 @@ msgid "" 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 "" @@ -6119,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 "" @@ -6166,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" @@ -6198,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 "" @@ -6244,6 +6335,12 @@ msgid "" 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 "" @@ -6255,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 "" @@ -6282,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." @@ -6318,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 "" @@ -6367,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 "cURL parallel limit" +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 "(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 "Reset singleplayer world" +#~ msgstr "שרת" + +#~ msgid "View" +#~ msgstr "תצוגה" + +#~ msgid "Yes" +#~ msgstr "כן" diff --git a/po/hi/minetest.po b/po/hi/minetest.po index a45a5ae89..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-29 07:53+0000\n" -"Last-Translator: Agastya <acagastya@outlook.com>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-10-06 14:26+0000\n" +"Last-Translator: Eyekay49 <satvikpatwardhan@gmail.com>\n" "Language-Team: Hindi <https://hosted.weblate.org/projects/minetest/minetest/" "hi/>\n" "Language: hi\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -29,7 +29,7 @@ msgstr "आपकी मौत हो गयी" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "Okay" +msgstr "ठीक है" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -51,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 "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल संखà¥à¤¯à¤¾ à¤à¤• नहीं है। " @@ -68,10 +64,6 @@ 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 ही लेते हैं।" @@ -79,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 @@ -89,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 "निरà¥à¤à¤°à¤¤à¤¾à¤à¤‚ :" @@ -163,19 +157,59 @@ 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 "cURL के बगैर कंपाइल होने के कारण Content DB उपलबà¥à¤§ नहीं है" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." msgstr "लोड हो रहा है ..." @@ -193,6 +227,16 @@ msgid "Install" msgstr "इनà¥à¤¸à¥à¤Ÿà¤¾à¤² करें" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "इनà¥à¤¸à¥à¤Ÿà¤¾à¤² करें" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "अनावशà¥à¤¯à¤• निरà¥à¤à¤°à¤¤à¤¾à¤à¤‚ :" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "माॅड" @@ -206,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" @@ -223,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" @@ -232,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" @@ -277,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" @@ -297,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" @@ -370,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" @@ -404,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) खेल बनाने वालों के लिठहै।" @@ -521,6 +583,10 @@ msgid "Scale" msgstr "सà¥à¤•ेल" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "ढूंढें" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "फाईल पाथ चà¥à¤¨à¥‡à¤‚" @@ -635,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 "नेट पर वसà¥à¤¤à¥à¤à¤‚ ढूंढें" @@ -688,6 +767,17 @@ msgid "Credits" msgstr "आà¤à¤¾à¤° सूची" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "फाईल पाथ चà¥à¤¨à¥‡à¤‚" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "पूरà¥à¤µ सहायक" @@ -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" @@ -740,6 +826,11 @@ 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 +839,11 @@ 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 "खिलाडियों में मारा-पीटी की अनà¥à¤®à¤¤à¥€ है" @@ -825,10 +921,6 @@ 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 "की बदलें" @@ -853,10 +941,6 @@ msgid "Fancy Leaves" msgstr "रोचक पतà¥à¤¤à¥‡" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "मामूली नकà¥à¤¶à¥‡ बनाà¤à¤‚" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "मिपमैप" @@ -865,10 +949,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "मिपमैप व अनीसो. फिलà¥à¤Ÿà¤°" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "नहीं" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "कोई फिलà¥à¤Ÿà¤° नहीं" @@ -896,19 +976,11 @@ 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 "सà¥à¤•à¥à¤°à¥€à¤¨ :" @@ -921,6 +993,11 @@ 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 "कनेकà¥à¤¶à¤¨ समय अंत|" @@ -1134,20 +1195,20 @@ msgid "Continue" msgstr "आगे बढ़ें" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1295,34 +1356,6 @@ 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 "तरल चाल रà¥à¤•ा हà¥à¤†" @@ -1714,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" @@ -1963,12 +2015,6 @@ msgid "" 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 "" @@ -2075,6 +2121,10 @@ 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 "" @@ -2308,10 +2358,6 @@ 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" @@ -2382,16 +2428,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2543,6 +2579,10 @@ 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 "" @@ -2599,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 @@ -2607,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 @@ -2707,12 +2751,6 @@ 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 "" @@ -2783,6 +2821,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2843,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 @@ -2931,14 +2973,6 @@ 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 "" @@ -2948,18 +2982,6 @@ 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" @@ -2976,12 +2998,6 @@ 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" @@ -2991,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 @@ -3295,10 +3311,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3352,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 "" @@ -3828,6 +3840,10 @@ 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 "" @@ -3908,6 +3924,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4007,6 +4030,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4563,10 +4593,6 @@ 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 "" @@ -4580,6 +4606,14 @@ 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 "" @@ -4743,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 @@ -4792,6 +4826,13 @@ msgid "" 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 "" @@ -5021,14 +5062,6 @@ 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 "" @@ -5054,10 +5087,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5083,34 +5112,6 @@ msgid "" 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" @@ -5176,6 +5177,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5333,10 +5343,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "राइट कà¥à¤²à¤¿à¤• के दोहराने का समय" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5588,6 +5594,16 @@ 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 "" @@ -5719,10 +5735,6 @@ 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" @@ -5816,6 +5828,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5874,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 @@ -5901,15 +5917,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6045,6 +6066,17 @@ msgid "" 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 "" @@ -6247,6 +6279,12 @@ msgid "" 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 "" @@ -6369,6 +6407,24 @@ 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 "" @@ -6380,11 +6436,62 @@ msgstr "" msgid "cURL timeout" 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 "छोटा नकà¥à¤¶à¤¾ रेडर मोड, दोगà¥à¤¨à¤¾ जूम" + +#~ 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 725c12629..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-06-13 23:17+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 <acszoltan111@gmail.com>\n" "Language-Team: Hungarian <https://hosted.weblate.org/projects/minetest/" "minetest/hu/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "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:" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -160,16 +152,59 @@ 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..." @@ -189,6 +224,16 @@ 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" msgstr "Modok" @@ -202,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" @@ -219,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" @@ -231,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" @@ -272,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" @@ -293,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" @@ -372,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" @@ -396,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" @@ -521,6 +589,10 @@ 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" @@ -636,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" @@ -689,6 +776,20 @@ msgid "Credits" msgstr "KöszönetnyilvánÃtás" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Útvonal kiválasztása" + +#: 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" msgstr "Korábbi közreműködÅ‘k" @@ -705,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" @@ -729,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 +838,11 @@ 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 +851,11 @@ 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:" @@ -764,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" @@ -788,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 +933,6 @@ 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" @@ -837,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 +953,6 @@ 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 +961,6 @@ 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" @@ -897,19 +988,11 @@ 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 +1005,11 @@ 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Å‘)" @@ -965,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." @@ -1135,20 +1207,20 @@ msgid "Continue" msgstr "Folytatás" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1296,34 +1368,6 @@ 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" @@ -1715,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!" @@ -1950,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" @@ -1961,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 "" @@ -1981,14 +2036,6 @@ msgid "" 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." @@ -2027,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." @@ -2112,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" @@ -2227,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 @@ -2284,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" @@ -2349,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" @@ -2366,10 +2412,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2441,22 +2483,6 @@ 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" msgstr "BetűtÃpus mérete" @@ -2618,6 +2644,10 @@ 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" @@ -2678,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 @@ -2686,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" @@ -2797,14 +2832,6 @@ 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." @@ -2883,6 +2910,11 @@ 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" @@ -2947,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 @@ -3060,14 +3093,6 @@ 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." msgstr "Engedélyezi az elforgatott rácsvonalak gyorsÃtótárazását." @@ -3078,20 +3103,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3109,14 +3120,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3126,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" @@ -3293,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" @@ -3451,10 +3455,6 @@ 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" msgstr "Globális visszahÃvások" @@ -3519,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" @@ -3930,7 +3930,8 @@ msgstr "Játékon belüli csevegÅ‘ konzol hátterének szÃne (R,G,B)." #: src/settings_translation_file.cpp msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "Játékon belüli csevegéskonzol magassága 0,1 (10%) és 1,0 (100%) között." +msgstr "" +"Játékon belüli csevegéskonzol magassága 0,1 (10%) és 1,0 (100%) között." #: src/settings_translation_file.cpp msgid "Inc. volume key" @@ -4039,6 +4040,11 @@ 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" @@ -4142,6 +4148,17 @@ msgstr "" "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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4284,6 +4301,17 @@ msgstr "" "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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -5020,10 +5048,6 @@ 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." msgstr "" @@ -5042,6 +5066,14 @@ 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" @@ -5241,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 @@ -5297,6 +5330,13 @@ msgstr "" "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 "" @@ -5542,14 +5582,6 @@ 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 "" @@ -5575,10 +5607,6 @@ msgid "" 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" @@ -5604,34 +5632,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5697,6 +5697,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5741,8 +5751,8 @@ msgid "" "Print the engine's profiling data in regular intervals (in seconds).\n" "0 = disable. Useful for developers." msgstr "" -"A játékmotor profiladatainak kiÃrása szabályos idÅ‘közökben (másodpercekben)." -"\n" +"A játékmotor profiladatainak kiÃrása szabályos idÅ‘közökben " +"(másodpercekben).\n" "0 a kikapcsoláshoz. Hasznos fejlesztÅ‘knek." #: src/settings_translation_file.cpp @@ -5865,10 +5875,6 @@ 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" @@ -6164,6 +6170,20 @@ 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" @@ -6298,10 +6318,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6396,6 +6412,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6457,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 @@ -6483,6 +6504,12 @@ msgid "" 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 "" "The time in seconds it takes between repeated events\n" @@ -6494,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." @@ -6647,6 +6673,17 @@ msgid "" 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." @@ -6858,6 +6895,12 @@ msgstr "" "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 "" @@ -6912,8 +6955,8 @@ msgid "" "Contains the same information as the file debug.txt (default name)." msgstr "" "Csak Windows rendszeren: Minetest indÃtása parancssorral a háttérben.\n" -"Ugyanazokat az információkat tartalmazza, mint a debug.txt fájl (" -"alapértelmezett név)." +"Ugyanazokat az információkat tartalmazza, mint a debug.txt fájl " +"(alapértelmezett név)." #: src/settings_translation_file.cpp msgid "" @@ -6989,6 +7032,24 @@ 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" @@ -7000,58 +7061,74 @@ msgstr "cURL párhuzamossági korlát" msgid "cURL timeout" msgstr "cURL idÅ‘korlát" -#~ msgid "Toggle Cinematic" -#~ msgstr "Váltás „mozi†módba" - -#~ msgid "Select Package File:" -#~ msgstr "csomag fájl kiválasztása:" - -#~ msgid "Waving Water" -#~ msgstr "Hullámzó vÃz" +#~ 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 "Waving water" -#~ msgstr "Hullámzó vÃz" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Gamma kódolás beállÃtása a fényhez. Alacsonyabb számok - nagyobb " +#~ "fényerÅ‘.\n" +#~ "Ez a beállÃtás csak a kliensre érvényes, a szerver nem veszi figyelembe." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Ezt a betűtÃpust bizonyos nyelvek használják." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Biztosan visszaállÃtod az egyjátékos világod?" -#, fuzzy -#~ msgid "Shadow limit" -#~ msgstr "Térképblokk korlát" +#~ msgid "Back" +#~ msgstr "Vissza" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "A TrueType betűtÃpus (ttf) vagy bitmap útvonala." +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" -#, fuzzy -#~ msgid "Lightness sharpness" -#~ msgstr "Fényélesség" +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmappolás" #, fuzzy -#~ msgid "Lava depth" -#~ msgstr "Nagy barlang mélység" - -#~ msgid "IPv6 support." -#~ msgstr "IPv6 támogatás." +#~ 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 "Gamma" -#~ msgstr "Gamma" +#~ msgid "Config mods" +#~ msgstr "Modok beállÃtása" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "BetűtÃpus árnyék alfa (átlátszatlanság, 0 és 255 között)." +#~ msgid "Configure" +#~ msgstr "BeállÃtás" #, fuzzy -#~ msgid "Floatland mountain height" -#~ msgstr "LebegÅ‘ hegyek magassága" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "A lebegÅ‘ szigetek hegységeinek sűrűségét szabályozza.\n" +#~ "Az \"np_mountain\" zaj értékéhez hozzáadott eltolás." -#, fuzzy -#~ msgid "Floatland base height noise" -#~ msgstr "A lebegÅ‘ hegyek alapmagassága" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "A járatok szélességét határozza meg, alacsonyabb érték szélesebb " +#~ "járatokat hoz létre." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "filmes tónus effektek bekapcsolása" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Célkereszt szÃne (R,G,B)." -#~ msgid "Enable VBO" -#~ msgstr "VBO engedélyez" +#~ msgid "Darkness sharpness" +#~ msgstr "a sötétség élessége" #~ msgid "" #~ "Defines areas of floatland smooth terrain.\n" @@ -7060,39 +7137,145 @@ 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 "Darkness sharpness" -#~ msgstr "a sötétség élessége" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." #~ msgstr "" -#~ "A járatok szélességét határozza meg, alacsonyabb érték szélesebb " -#~ "járatokat hoz létre." +#~ "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" -#, fuzzy #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "A lebegÅ‘ szigetek hegységeinek sűrűségét szabályozza.\n" -#~ "Az \"np_mountain\" zaj értékéhez hozzáadott eltolás." +#~ "Parallax occlusion mapping bekapcsolása.\n" +#~ "A shaderek engedélyezve kell hogy legyenek." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Gamma kódolás beállÃtása a fényhez. Alacsonyabb számok - nagyobb " -#~ "fényerÅ‘.\n" -#~ "Ez a beállÃtás csak a kliensre érvényes, a szerver nem veszi figyelembe." +#~ "KÃsérleti opció, látható rések jelenhetnek meg a blokkok között\n" +#~ "ha nagyobbra van állÃtva, mint 0." -#~ msgid "Path to save screenshots at." -#~ msgstr "KépernyÅ‘mentések mappája." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS a szünet menüben" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 letöltése és telepÃtése, kérlek várj…" +#, fuzzy +#~ msgid "Floatland base height noise" +#~ msgstr "A lebegÅ‘ hegyek alapmagassága" -#~ msgid "Back" -#~ msgstr "Vissza" +#, fuzzy +#~ msgid "Floatland mountain height" +#~ msgstr "LebegÅ‘ hegyek magassága" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "BetűtÃpus árnyék alfa (átlátszatlanság, 0 és 255 között)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normál felületek generálása" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normálfelületek generálása" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 támogatás." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Nagy barlang mélység" + +#, fuzzy +#~ msgid "Lightness sharpness" +#~ msgstr "Fényélesség" + +#~ msgid "Main" +#~ msgstr "FÅ‘" + +#~ msgid "Main menu style" +#~ msgstr "FÅ‘menü stÃlusa" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Kistérkép radar módban x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Kistérkép radar módban x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Kistérkép terület módban x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Kistérkép terület módban x4" + +#~ msgid "Name/Password" +#~ msgstr "Név/jelszó" + +#~ msgid "No" +#~ msgstr "Nem" #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion ( domború textúra )" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax Occlusion effekt" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax Occlusion módja" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax Occlusion mértéke" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "A TrueType betűtÃpus (ttf) vagy bitmap útvonala." + +#~ msgid "Path to save screenshots at." +#~ msgstr "KépernyÅ‘mentések mappája." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Egyjátékos világ visszaállÃtása" + +#~ msgid "Select Package File:" +#~ msgstr "csomag fájl kiválasztása:" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "Térképblokk korlát" + +#~ msgid "Start Singleplayer" +#~ msgstr "Egyjátékos mód indÃtása" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Generált normálfelületek erÅ‘ssége." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Ezt a betűtÃpust bizonyos nyelvek használják." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Váltás „mozi†módba" + +#~ msgid "View" +#~ msgstr "Megtekintés" + +#~ msgid "Waving Water" +#~ msgstr "Hullámzó vÃz" + +#~ msgid "Waving water" +#~ msgstr "Hullámzó vÃz" + +#~ msgid "Yes" +#~ msgstr "Igen" diff --git a/po/id/minetest.po b/po/id/minetest.po index 21fd705bb..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-25 16:39+0000\n" -"Last-Translator: Muhammad Rifqi Priyo Susanto " -"<muhammadrifqipriyosusanto@gmail.com>\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 <rezaalmanda27@gmail.com>\n" "Language-Team: Indonesian <https://hosted.weblate.org/projects/minetest/" "minetest/id/>\n" "Language: id\n" @@ -13,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -47,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. " @@ -64,11 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -160,14 +152,54 @@ 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" @@ -189,6 +221,14 @@ 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" msgstr "Mod" @@ -202,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" @@ -219,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" @@ -284,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" @@ -518,6 +577,10 @@ 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" @@ -634,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" @@ -687,6 +764,18 @@ msgid "Credits" msgstr "Penghargaan" #: builtin/mainmenu/tab_credits.lua +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" msgstr "Penyumbang Sebelumnya" @@ -703,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" @@ -727,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 +824,10 @@ 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 +836,10 @@ 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:" @@ -762,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" @@ -786,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 +917,6 @@ 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" @@ -835,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 +937,6 @@ 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 +945,6 @@ 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" @@ -895,19 +972,11 @@ 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 +989,10 @@ 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)" @@ -941,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)" @@ -963,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." @@ -1140,13 +1197,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1156,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" @@ -1294,34 +1351,6 @@ 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" @@ -1713,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!" @@ -1984,14 +2031,6 @@ msgstr "" "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." @@ -2118,6 +2157,10 @@ 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" @@ -2178,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)." @@ -2376,10 +2419,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2456,20 +2495,6 @@ msgstr "" "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" @@ -2590,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 "" @@ -2599,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 @@ -2635,6 +2660,10 @@ 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" @@ -2700,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" @@ -2813,14 +2850,6 @@ 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." @@ -2899,6 +2928,10 @@ 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" @@ -2963,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 @@ -3073,17 +3107,6 @@ 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." @@ -3093,22 +3116,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3129,14 +3136,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3152,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" @@ -3474,10 +3473,6 @@ 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" @@ -3488,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 "" @@ -3539,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 " @@ -3827,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 "" @@ -3915,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 "" @@ -3991,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 @@ -4067,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" @@ -4079,6 +4071,10 @@ 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" @@ -4182,6 +4178,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4324,6 +4330,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5071,10 +5087,6 @@ 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." msgstr "" @@ -5090,6 +5102,14 @@ 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" @@ -5272,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" @@ -5330,6 +5352,16 @@ msgstr "" "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." @@ -5582,14 +5614,6 @@ 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" @@ -5615,8 +5639,8 @@ msgstr "" "PERINGATAN: Penambahan jumlah utas kemunculan mempercepat mesin pembuat\n" "peta, tetapi dapat merusak kinerja permainan dengan mengganggu proses lain,\n" "terutama dalam pemain tunggal dan/atau saat menjalankan kode Lua dalam\n" -"\"on_generated\". Untuk kebanyakan pengguna, pengaturan yang cocok adalah \"1" -"\"." +"\"on_generated\". Untuk kebanyakan pengguna, pengaturan yang cocok adalah " +"\"1\"." #: src/settings_translation_file.cpp msgid "" @@ -5630,10 +5654,6 @@ msgstr "" "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" @@ -5657,38 +5677,11 @@ 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5769,6 +5762,14 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5836,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 "" @@ -5845,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." @@ -5885,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 "" @@ -5949,10 +5954,6 @@ 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" @@ -6021,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" @@ -6249,6 +6249,19 @@ 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" @@ -6266,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 "" @@ -6401,10 +6415,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6435,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" @@ -6513,6 +6533,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6568,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" @@ -6578,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." @@ -6590,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 "" @@ -6632,6 +6655,14 @@ 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 "" +"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" "when holding down a joystick button combination." msgstr "" @@ -6640,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" @@ -6796,12 +6827,29 @@ 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." @@ -6987,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 "" @@ -6999,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 "" @@ -7038,6 +7084,12 @@ msgstr "" "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." @@ -7141,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." @@ -7159,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." @@ -7181,6 +7237,34 @@ 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" @@ -7192,82 +7276,78 @@ msgstr "Batas cURL paralel" msgid "cURL timeout" msgstr "Waktu habis untuk cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Mode sinema" - -#~ msgid "Select Package File:" -#~ msgstr "Pilih berkas paket:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Batas atas Y untuk lava dalam gua besar." - -#~ msgid "Waving Water" -#~ msgstr "Air Berombak" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Apakah dungeon terkadang muncul dari medan." - -#~ msgid "Projecting dungeons" -#~ msgstr "Dungeon yang menonjol" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Ketinggian Y tempat bayangan floatland diperpanjang." - -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Ketinggian Y dari titik tengah floatland dan permukaan danau." - -#~ msgid "Waving water" -#~ msgstr "Air berombak" - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Variasi dari ketinggian bukit dan kedalaman danau pada medan halus " -#~ "floatland." +#~ "0 = parallax occlusion dengan informasi kemiringan (cepat).\n" +#~ "1 = relief mapping (pelan, lebih akurat)." #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "Ketinggian maksimum secara umum, di atas dan di bawah titik tengah, dari " -#~ "gunung floatland." +#~ "Sesuaikan pengodean gamma untuk tabel cahaya.\n" +#~ "Angka yang lebih tinggi lebih terang.\n" +#~ "Pengaturan ini untuk klien saja dan diabaikan oleh peladen." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Fon ini akan digunakan pada bahasa tertentu." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Ubah cara gunung floatland meramping di atas dan di bawah titik tengah." -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Kekuatan penguatan tengah kurva cahaya." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Apakah Anda yakin ingin mengatur ulang dunia Anda?" -#~ msgid "Shadow limit" -#~ msgstr "Batas bayangan" +#~ msgid "Back" +#~ msgstr "Kembali" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Jalur ke TrueTypeFont atau bitmap." +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping" -#~ msgid "Lightness sharpness" -#~ msgstr "Kecuraman keterangan" +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" -#~ msgid "Lava depth" -#~ msgstr "Kedalaman lava" +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Titik tengah penguatan tengah kurva cahaya." -#~ msgid "IPv6 support." -#~ msgstr "Dukungan IPv6." +#~ 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 "Gamma" -#~ msgstr "Gamma" +#~ msgid "Config mods" +#~ msgstr "Konfigurasi mod" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Keburaman bayangan fon (keopakan, dari 0 sampai 255)." +#~ msgid "Configure" +#~ msgstr "Konfigurasi" -#~ msgid "Floatland mountain height" -#~ msgstr "Ketinggian gunung floatland" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Atur kepadatan floatland berbentuk gunung.\n" +#~ "Merupakan pergeseran yang ditambahkan ke nilai noise \"mgv7_np_mountain\"." -#~ msgid "Floatland base height noise" -#~ msgstr "Noise ketinggian dasar floatland" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Mengatur lebar terowongan, nilai lebih kecil terowongan semakin lebar." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Gunakan pemetaan suasana (tone mapping) filmis" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Warna crosshair: (merah,hijau,biru) atau (R,G,B)." -#~ msgid "Enable VBO" -#~ msgstr "Gunakan VBO" +#~ msgid "Darkness sharpness" +#~ msgstr "Kecuraman kegelapan" #~ msgid "" #~ "Defines areas of floatland smooth terrain.\n" @@ -7276,50 +7356,213 @@ msgstr "Waktu habis untuk cURL" #~ "Mengatur daerah dari medan halus floatland.\n" #~ "Floatland halus muncul saat noise > 0." -#~ msgid "Darkness sharpness" -#~ msgstr "Kecuraman kegelapan" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." #~ msgstr "" -#~ "Mengatur lebar terowongan, nilai lebih kecil terowongan semakin lebar." +#~ "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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Atur kepadatan floatland berbentuk gunung.\n" -#~ "Merupakan pergeseran yang ditambahkan ke nilai noise \"mgv7_np_mountain\"." +#~ "Gunakan bumpmapping untuk tekstur. Normalmap harus disediakan oleh paket\n" +#~ "tekstur atau harus dihasilkan otomatis.\n" +#~ "Membutuhkan penggunaan shader." -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Titik tengah penguatan tengah kurva cahaya." +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Gunakan pemetaan suasana (tone mapping) filmis" -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Ubah cara gunung floatland meramping di atas dan di bawah titik tengah." +#~ "Buat normalmap secara langsung (efek Emboss).\n" +#~ "Membutuhkan penggunaan bumpmapping." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Sesuaikan pengodean gamma untuk tabel cahaya.\n" -#~ "Angka yang lebih tinggi lebih terang.\n" -#~ "Pengaturan ini untuk klien saja dan diabaikan oleh peladen." +#~ "Gunakan pemetaan parallax occlusion.\n" +#~ "Membutuhkan penggunaan shader." -#~ msgid "Path to save screenshots at." -#~ msgstr "Jalur untuk menyimpan tangkapan layar." +#~ 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 "Parallax occlusion strength" -#~ msgstr "Kekuatan parallax occlusion" +#~ msgid "FPS in pause menu" +#~ msgstr "FPS (bingkai per detik) pada menu jeda" + +#~ msgid "Floatland base height noise" +#~ msgstr "Noise ketinggian dasar floatland" + +#~ msgid "Floatland mountain height" +#~ msgstr "Ketinggian gunung floatland" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Keburaman bayangan fon (keopakan, dari 0 sampai 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Buat Normal Maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Buat normalmap" + +#~ msgid "IPv6 support." +#~ msgstr "Dukungan IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Kedalaman lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Kecuraman keterangan" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Batas antrean kemunculan (emerge queue) pada diska" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Mengunduh dan memasang $1, mohon tunggu..." +#~ msgid "Main" +#~ msgstr "Beranda" -#~ msgid "Back" -#~ msgstr "Kembali" +#~ msgid "Main menu style" +#~ msgstr "Gaya menu utama" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Peta mini mode radar, perbesaran 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Peta mini mode radar, perbesaran 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Peta mini mode permukaan, perbesaran 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Peta mini mode permukaan, perbesaran 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nama/Kata Sandi" + +#~ msgid "No" +#~ msgstr "Tidak" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Sampling normalmap" + +#~ msgid "Normalmaps strength" +#~ msgstr "Kekuatan normalmap" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Jumlah pengulangan parallax occlusion." #~ msgid "Ok" #~ msgstr "Oke" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Bias keseluruhan dari efek parallax occlusion, biasanya skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Skala keseluruhan dari efek parallax occlusion." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Pergeseran parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Pengulangan parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mode parallax occlusion" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala parallax occlusion" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Kekuatan parallax occlusion" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Jalur ke TrueTypeFont atau bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Jalur untuk menyimpan tangkapan layar." + +#~ msgid "Projecting dungeons" +#~ msgstr "Dungeon yang menonjol" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Atur ulang dunia pemain tunggal" + +#~ msgid "Select Package File:" +#~ msgstr "Pilih berkas paket:" + +#~ msgid "Shadow limit" +#~ msgstr "Batas bayangan" + +#~ msgid "Start Singleplayer" +#~ msgstr "Mulai Pemain Tunggal" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Kekuatan normalmap yang dibuat." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Kekuatan penguatan tengah kurva cahaya." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Fon ini akan digunakan pada bahasa tertentu." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Mode sinema" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Ketinggian maksimum secara umum, di atas dan di bawah titik tengah, dari " +#~ "gunung floatland." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variasi dari ketinggian bukit dan kedalaman danau pada medan halus " +#~ "floatland." + +#~ msgid "View" +#~ msgstr "Tinjau" + +#~ msgid "Waving Water" +#~ msgstr "Air Berombak" + +#~ msgid "Waving water" +#~ msgstr "Air berombak" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Apakah dungeon terkadang muncul dari medan." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Batas atas Y untuk lava dalam gua besar." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Ketinggian Y dari titik tengah floatland dan permukaan danau." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Ketinggian Y tempat bayangan floatland diperpanjang." + +#~ msgid "Yes" +#~ msgstr "Ya" diff --git a/po/it/minetest.po b/po/it/minetest.po index c7ce03705..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-26 10:41+0000\n" -"Last-Translator: Hamlet <hamlatmesehub@riseup.net>\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 <Jacques.Reads@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/minetest/" "minetest/it/>\n" "Language: it\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -96,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" @@ -104,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 "" @@ -136,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" @@ -160,14 +152,54 @@ 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" @@ -189,6 +221,14 @@ 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" msgstr "Mod" @@ -202,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" @@ -219,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" @@ -448,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)" @@ -519,6 +578,10 @@ 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" @@ -604,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" @@ -617,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" @@ -633,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" @@ -645,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:" @@ -673,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" @@ -688,6 +766,18 @@ msgid "Credits" msgstr "Riconoscimenti" #: builtin/mainmenu/tab_credits.lua +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" msgstr "Contributori precedenti" @@ -704,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" @@ -725,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 +826,10 @@ 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 +838,10 @@ 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:" @@ -757,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 +919,6 @@ 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" @@ -836,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 +939,6 @@ 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 +947,6 @@ 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" @@ -896,19 +974,11 @@ 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 +991,10 @@ 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)" @@ -964,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." @@ -998,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..." @@ -1141,13 +1199,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1156,13 +1214,13 @@ msgstr "" "- %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" @@ -1295,34 +1353,6 @@ 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" @@ -1348,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" @@ -1436,11 +1466,11 @@ msgstr "Chat visualizzata" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "Visore nascosto" +msgstr "HUD nascosto" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "Visore visualizzato" +msgstr "HUD visibile" #: src/client/gameui.cpp msgid "Profiler hidden" @@ -1714,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!" @@ -1783,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" @@ -1824,7 +1872,7 @@ msgstr "Comando locale" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "Silenzio" +msgstr "Muta audio" #: src/gui/guiKeyChangeMenu.cpp msgid "Next item" @@ -1844,7 +1892,7 @@ msgstr "Schermata" #: src/gui/guiKeyChangeMenu.cpp msgid "Sneak" -msgstr "Striscia" +msgstr "Furtivo" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" @@ -1852,35 +1900,35 @@ msgstr "Speciale" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Scegli visore" +msgstr "HUD sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "Scegli registro chat" +msgstr "Log chat sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "Scegli rapido" +msgstr "Corsa sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" -msgstr "Scegli volo" +msgstr "Volo sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fog" -msgstr "Scegli nebbia" +msgstr "Nebbia sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle minimap" -msgstr "Scegli minimappa" +msgstr "Minimappa sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle noclip" -msgstr "Scegli incorporea" +msgstr "Incorporeità sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle pitchmove" -msgstr "Modalità beccheggio" +msgstr "Beccheggio sì/no" #: src/gui/guiKeyChangeMenu.cpp msgid "press key" @@ -1989,14 +2037,6 @@ msgstr "" "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." @@ -2129,6 +2169,10 @@ 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" @@ -2392,10 +2436,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2418,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" @@ -2473,22 +2513,6 @@ msgstr "" "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" @@ -2518,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" @@ -2538,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" @@ -2594,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 " @@ -2653,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" @@ -2668,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" @@ -2723,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" @@ -2744,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" @@ -2838,14 +2874,6 @@ 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." @@ -2925,6 +2953,10 @@ 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" @@ -2946,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" @@ -2989,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 @@ -3059,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 "" @@ -3106,17 +3140,6 @@ 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." @@ -3126,22 +3149,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3163,14 +3170,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3188,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" @@ -3280,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" @@ -3355,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" @@ -3523,10 +3522,6 @@ 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" @@ -3580,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 "" @@ -3922,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." @@ -4133,6 +4127,10 @@ 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" @@ -4236,6 +4234,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4378,6 +4386,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4724,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." @@ -4816,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" @@ -4857,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" @@ -4867,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" @@ -5132,10 +5150,6 @@ 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." msgstr "" @@ -5151,6 +5165,14 @@ 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" @@ -5165,8 +5187,8 @@ msgid "" "Map generation attributes specific to Mapgen Flat.\n" "Occasional lakes and hills can be added to the flat world." msgstr "" -"Attributi di generazione della mappa specifici del generatore di mappe Flat." -"\n" +"Attributi di generazione della mappa specifici del generatore di mappe " +"Flat.\n" "Al mondo piatto possono essere aggiunti laghi e colline occasionali." #: src/settings_translation_file.cpp @@ -5339,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" @@ -5399,6 +5423,16 @@ msgstr "" "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." @@ -5522,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" @@ -5534,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" @@ -5582,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" @@ -5659,14 +5693,6 @@ 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" @@ -5688,8 +5714,8 @@ msgstr "" "- Selezione automatica. Il numero di thread di comparsa sarà \n" "- 'numero di processori - 2', con un limite inferiore di 1.\n" "Qualsiasi altro valore:\n" -"- Specifica il numero di thread di comparsa, con un limite inferiore di 1." -"\n" +"- Specifica il numero di thread di comparsa, con un limite inferiore di " +"1.\n" "AVVISO: Aumentare il numero dei thread di comparsa aumenta la velocità del " "motore\n" "del generatore di mappe, ma questo potrebbe danneggiare le prestazioni del " @@ -5710,10 +5736,6 @@ msgstr "" "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" @@ -5724,7 +5746,8 @@ msgstr "Liquidi opachi" #: src/settings_translation_file.cpp msgid "" "Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "Opacità (alfa) dell'ombra dietro il carattere predefinito, tra 0 e 255." +msgstr "" +"Opacità (alfa) dell'ombra dietro il carattere predefinito, tra 0 e 255." #: src/settings_translation_file.cpp msgid "" @@ -5741,36 +5764,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5806,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 "" @@ -5857,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 "" @@ -5926,7 +5927,7 @@ msgstr "Generatore di profili" #: src/settings_translation_file.cpp msgid "Profiler toggle key" -msgstr "Tasto di scelta del generatore di profili" +msgstr "Tasto di (dis)attivazione del generatore di profili" #: src/settings_translation_file.cpp msgid "Profiling" @@ -5950,7 +5951,8 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Proportion of large caves that contain liquid." -msgstr "Proporzione delle grotte di grandi dimensioni che contiene del liquido." +msgstr "" +"Proporzione delle grotte di grandi dimensioni che contiene del liquido." #: src/settings_translation_file.cpp msgid "" @@ -6053,10 +6055,6 @@ 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" @@ -6302,8 +6300,8 @@ msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Impostata su vero abilita i liquidi ondeggianti (come, ad esempio, l'acqua)." -"\n" +"Impostata su vero abilita i liquidi ondeggianti (come, ad esempio, " +"l'acqua).\n" "Necessita l'attivazione degli shader." #: src/settings_translation_file.cpp @@ -6359,6 +6357,19 @@ 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" @@ -6440,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." @@ -6516,10 +6527,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6554,8 +6561,8 @@ msgstr "" "di terra fluttuante.\n" "L'acqua è disabilitata in modo predefinito e sarà posizionata se questo " "valore è impostato\n" -"al di sopra di 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (l'inizio dell'" -"affusolamento\n" +"al di sopra di 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (l'inizio " +"dell'affusolamento\n" "superiore).\n" "***AVVISO, PERICOLO POTENZIALE PER MONDI E PRESTAZIONI SERVER***:\n" "Quando si abilita il posizionamento dell'acqua, le terre fluttuanti devono " @@ -6621,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 "" @@ -6632,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" @@ -6646,6 +6653,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6723,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 "" @@ -6770,6 +6781,14 @@ 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 "" +"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" "when holding down a joystick button combination." msgstr "" @@ -6778,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" @@ -6847,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" @@ -6930,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 "" @@ -6943,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" @@ -7150,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 "" @@ -7164,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" @@ -7191,9 +7230,15 @@ msgstr "" "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 @@ -7231,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 @@ -7281,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." @@ -7350,6 +7394,38 @@ 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" @@ -7361,84 +7437,96 @@ msgstr "Limite parallelo cURL" msgid "cURL timeout" msgstr "Scadenza cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Scegli cinematica" - -#~ msgid "Select Package File:" -#~ msgstr "Seleziona pacchetto file:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y del limite superiore della lava nelle caverne grandi." - -#~ msgid "Waving Water" -#~ msgstr "Acqua ondeggiante" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Se i sotterranei saltuariamente si protendono dal terreno." - -#~ msgid "Projecting dungeons" -#~ msgstr "Sotterranei protundenti" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Livello Y a cui si estendono le ombre delle terre fluttuanti." - -#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Livello Y del punto medio delle terre fluttuanti e della superficie dei " -#~ "laghi." - -#~ msgid "Waving water" -#~ msgstr "Acqua ondeggiante" +#~ "0 = occlusione di parallasse con informazione di inclinazione (più " +#~ "veloce).\n" +#~ "1 = relief mapping (più lenta, più accurata)." -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "Variazione dell'altezza delle colline, e della profondità dei laghi sul\n" -#~ "terreno uniforme delle terre fluttuanti." +#~ "Regola la codifica della gamma per le tabelle della luce. Numeri maggiori " +#~ "sono più chiari.\n" +#~ "Questa impostazione è solo per il client ed è ignorata dal server." -#~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." #~ msgstr "" -#~ "Altezza massima tipica, sopra e sotto il punto medio, delle montagne dei " -#~ "terreni fluttuanti." +#~ "Modifica il restringimento superiore e inferiore rispetto al punto " +#~ "mediano delle terre fluttuanti di tipo montagnoso." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Questo carattere sarà usato per certe Lingue." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Sei sicuro di azzerare il tuo mondo locale?" -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Intensità dell'aumento mediano della curva di luce." +#~ msgid "Back" +#~ msgstr "Indietro" -#~ msgid "Shadow limit" -#~ msgstr "Limite dell'ombra" +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Percorso del carattere TrueType o bitmap." +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" -#~ msgid "Lightness sharpness" -#~ msgstr "Nitidezza della luminosità " +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Centro dell'aumento mediano della curva della luce." -#~ msgid "Lava depth" -#~ msgstr "Profondità della lava" +#~ 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 "IPv6 support." -#~ msgstr "Supporto IPv6." +#~ msgid "Config mods" +#~ msgstr "Config mod" -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Configure" +#~ msgstr "Configura" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Trasparenza ombreggiatura carattere (opacità , tra 0 e 255)." +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controlla la densità delle terre fluttuanti di tipo montuoso.\n" +#~ "È uno spostamento di rumore aggiunto al valore del rumore " +#~ "'mgv7_np_mountain'." -#~ msgid "Floatland mountain height" -#~ msgstr "Altezza delle montagne delle terre fluttuanti" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Controlla la larghezza delle gallerie, un valore più piccolo crea " +#~ "gallerie più larghe." -#~ msgid "Floatland base height noise" -#~ msgstr "Rumore base dell'altezza delle terre fluttuanti" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Colore del mirino (R,G,B)." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Attiva il filmic tone mapping" +#~ msgid "Darkness sharpness" +#~ msgstr "Nitidezza dell'oscurità " -#~ msgid "Enable VBO" -#~ msgstr "Abilitare i VBO" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Definisce aree di terreno uniforme nelle terre fluttuanti.\n" +#~ "Le terre fluttuanti uniformi avvengono quando il rumore è > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Stabilisce il passo di campionamento della texture.\n" +#~ "Un valore maggiore dà normalmap più uniformi." #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " @@ -7449,60 +7537,210 @@ msgstr "Scadenza cURL" #~ "posizionare le caverne di liquido.\n" #~ "Limite verticale della lava nelle caverne grandi." -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Definisce aree di terreno uniforme nelle terre fluttuanti.\n" -#~ "Le terre fluttuanti uniformi avvengono quando il rumore è > 0." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Scaricamento e installazione di $1, attendere prego..." -#~ msgid "Darkness sharpness" -#~ msgstr "Nitidezza dell'oscurità " +#~ msgid "Enable VBO" +#~ msgstr "Abilitare i VBO" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ 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 "" -#~ "Controlla la larghezza delle gallerie, un valore più piccolo crea " -#~ "gallerie più larghe." +#~ "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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Controlla la densità delle terre fluttuanti di tipo montuoso.\n" -#~ "È uno spostamento di rumore aggiunto al valore del rumore " -#~ "'mgv7_np_mountain'." +#~ "Attiva la generazione istantanea delle normalmap (effetto rilievo).\n" +#~ "Necessita l'attivazione del bumpmapping." -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Centro dell'aumento mediano della curva della luce." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Modifica il restringimento superiore e inferiore rispetto al punto " -#~ "mediano delle terre fluttuanti di tipo montagnoso." +#~ "Attiva la parallax occlusion mapping.\n" +#~ "Necessita l'attivazione degli shader." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Regola la codifica della gamma per le tabelle della luce. Numeri maggiori " -#~ "sono più chiari.\n" -#~ "Questa impostazione è solo per il client ed è ignorata dal server." +#~ "Opzione sperimentale, potrebbe causare spazi visibili tra i blocchi\n" +#~ "quando impostata su numeri maggiori di 0." -#~ msgid "Path to save screenshots at." -#~ msgstr "Percorso dove salvare le schermate." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS nel menu di pausa" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Intensità dell'occlusione di parallasse" +#~ msgid "Floatland base height noise" +#~ msgstr "Rumore base dell'altezza delle terre fluttuanti" + +#~ msgid "Floatland mountain height" +#~ msgstr "Altezza delle montagne delle terre fluttuanti" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Trasparenza ombreggiatura carattere (opacità , tra 0 e 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Genera Normal Map" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generare le normalmap" + +#~ msgid "IPv6 support." +#~ msgstr "Supporto IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profondità della lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Nitidezza della luminosità " #~ msgid "Limit of emerge queues on disk" #~ msgstr "Limite di code emerge su disco" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Scaricamento e installazione di $1, attendere prego..." +#~ msgid "Main" +#~ msgstr "Principale" -#~ msgid "Back" -#~ msgstr "Indietro" +#~ msgid "Main menu style" +#~ msgstr "Stile del menu principale" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimappa in modalità radar, ingrandimento x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimappa in modalità radar, ingrandimento x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimappa in modalità superficie, ingrandimento x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimappa in modalità superficie, ingrandimento x4" + +#~ msgid "Name/Password" +#~ msgstr "Nome/Password" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Campionamento normalmap" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensità normalmap" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Numero di iterazioni dell'occlusione di parallasse." #~ msgid "Ok" #~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Deviazione complessiva dell'effetto di occlusione di parallasse, " +#~ "solitamente scala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Scala globale dell'effetto di occlusione di parallasse." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Deviazione dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterazioni dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modalità dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Scala dell'occlusione di parallasse" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Intensità dell'occlusione di parallasse" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Percorso del carattere TrueType o bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Percorso dove salvare le schermate." + +#~ msgid "Projecting dungeons" +#~ msgstr "Sotterranei protundenti" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Azzera mondo locale" + +#~ msgid "Select Package File:" +#~ msgstr "Seleziona pacchetto file:" + +#~ msgid "Shadow limit" +#~ msgstr "Limite dell'ombra" + +#~ msgid "Start Singleplayer" +#~ msgstr "Avvia in locale" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensità delle normalmap generate." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Intensità dell'aumento mediano della curva di luce." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Questo carattere sarà usato per certe Lingue." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Scegli cinematica" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Altezza massima tipica, sopra e sotto il punto medio, delle montagne dei " +#~ "terreni fluttuanti." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variazione dell'altezza delle colline, e della profondità dei laghi sul\n" +#~ "terreno uniforme delle terre fluttuanti." + +#~ msgid "View" +#~ msgstr "Vedi" + +#~ msgid "Waving Water" +#~ msgstr "Acqua ondeggiante" + +#~ msgid "Waving water" +#~ msgstr "Acqua ondeggiante" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se i sotterranei saltuariamente si protendono dal terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y del limite superiore della lava nelle caverne grandi." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Livello Y del punto medio delle terre fluttuanti e della superficie dei " +#~ "laghi." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Livello Y a cui si estendono le ombre delle terre fluttuanti." + +#~ msgid "Yes" +#~ msgstr "Sì" diff --git a/po/ja/minetest.po b/po/ja/minetest.po index f274682c4..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-06-13 23:17+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 <toshiharu.uno@gmail.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/minetest/" "minetest/ja/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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 "プãƒãƒˆã‚³ãƒ«ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“。 " @@ -63,10 +59,6 @@ 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ã®ã¿ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚" @@ -74,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 @@ -84,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" @@ -122,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." @@ -130,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." @@ -138,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 @@ -158,12 +152,52 @@ 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" @@ -187,6 +221,14 @@ 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" msgstr "Mod" @@ -200,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" @@ -217,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" @@ -369,7 +430,8 @@ msgstr "ãƒã‚¤ã‚ªãƒ¼ãƒ é–“ã®å††æ»‘ãªç§»è¡Œ" msgid "" "Structures appearing on the terrain (no effect on trees and jungle grass " "created by v6)" -msgstr "地形上ã«ç¾ã‚Œã‚‹æ§‹é€ 物(v6ã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸæœ¨ã‚„ジャングルã®è‰ã«å½±éŸ¿ãªã—)" +msgstr "" +"地形上ã«ç¾ã‚Œã‚‹æ§‹é€ 物(v6ã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸæœ¨ã‚„ジャングルã®è‰ã«å½±éŸ¿ãªã—)" #: builtin/mainmenu/dlg_create_world.lua msgid "Structures appearing on the terrain, typically trees and plants" @@ -514,6 +576,10 @@ msgid "Scale" msgstr "スケール" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "検索" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "ディレクトリã®é¸æŠž" @@ -628,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 "オンラインコンテンツå‚ç…§" @@ -650,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" @@ -681,6 +760,18 @@ msgid "Credits" msgstr "クレジット" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "ディレクトリを開ã" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" +"ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼/エクスプãƒãƒ¼ãƒ©ãƒ¼ã§ã€ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã€Modã€\n" +"ãŠã‚ˆã³ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ‘ックをå«ã‚€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é–‹ãã¾ã™ã€‚" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "以å‰ã®è²¢çŒ®è€…" @@ -697,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 "ダメージ有効" @@ -721,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" @@ -733,6 +820,10 @@ msgid "No world created or selected!" msgstr "ワールドãŒä½œæˆã¾ãŸã¯é¸æŠžã•れã¦ã„ã¾ã›ã‚“ï¼" #: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "パスワード" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "ゲームプレイ" @@ -741,6 +832,10 @@ msgid "Port" msgstr "ãƒãƒ¼ãƒˆ" #: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Modã‚’é¸æŠž" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’é¸æŠž:" @@ -756,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 "ãŠæ°—ã«å…¥ã‚Š" @@ -780,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有効" @@ -818,21 +913,13 @@ 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 "ã‚ー変更" @@ -846,10 +933,6 @@ msgid "Fancy Leaves" msgstr "綺麗ãªè‘‰" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "法線マップã®ç”Ÿæˆ" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "ミップマップ" @@ -858,10 +941,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "ミップマップã¨ç•°æ–¹æ€§ãƒ•ィルタ" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "ã„ã„ãˆ" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "フィルタ無ã—" @@ -889,19 +968,11 @@ 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 "ç”»é¢:" @@ -914,6 +985,10 @@ msgid "Shaders" msgstr "シェーダー" #: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "シェーダー(実験的)" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "シェーダー (無効)" @@ -957,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 "接続ãŒã‚¿ã‚¤ãƒ アウトã—ã¾ã—ãŸã€‚" @@ -1134,29 +1193,29 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" -"æ“作:\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 @@ -1288,34 +1347,6 @@ 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 "ã™ã‚ŠæŠœã‘モード 無効" @@ -1707,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 "パスワードãŒä¸€è‡´ã—ã¾ã›ã‚“ï¼" @@ -1777,7 +1826,7 @@ msgstr "音é‡ã‚’下ã’ã‚‹" #: src/gui/guiKeyChangeMenu.cpp msgid "Double tap \"jump\" to toggle fly" -msgstr "\"ジャンプ\"二度押ã—ã§é£›è¡Œãƒ¢ãƒ¼ãƒ‰åˆ‡æ›¿" +msgstr "\"ジャンプ\"2回ã§é£›è¡Œãƒ¢ãƒ¼ãƒ‰åˆ‡æ›¿" #: src/gui/guiKeyChangeMenu.cpp msgid "Drop" @@ -1810,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 @@ -1978,14 +2027,6 @@ msgstr "" "åŠ å·¥ã—ã¦ã„ãªã„ã®å½¢çжã®ãŸã‚ã«ã¯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ノイズ。" @@ -2110,6 +2151,10 @@ 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 "ã‚ューã«å…¥ã‚Œã‚‰ã‚ŒãŸãƒ–ãƒãƒƒã‚¯ãŒå‡ºç¾ã™ã‚‹çµ¶å¯¾åˆ¶é™" @@ -2367,10 +2412,6 @@ 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" @@ -2448,21 +2489,6 @@ 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" -"- Full: 複数ã®ã‚·ãƒ³ã‚°ãƒ«ãƒ—レイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã®é¸æŠžã€\n" -"テクスãƒãƒ£ãƒ‘ックã®é¸æŠžã€ãã®ä»–。\n" -"- Simple: 1ã¤ã®ã‚·ãƒ³ã‚°ãƒ«ãƒ—レイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã‚„\n" -"テクスãƒãƒ£ãƒ‘ックã®é¸æŠžã¯ã‚りã¾ã›ã‚“。å°ã•ãªç”»é¢ã§å¿…è¦ã‹ã‚‚ã—れã¾ã›ã‚“。" - -#: src/settings_translation_file.cpp msgid "Chat font size" msgstr "ãƒãƒ£ãƒƒãƒˆã®ãƒ•ォントサイズ" @@ -2626,6 +2652,10 @@ 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" @@ -2687,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" @@ -2802,14 +2840,6 @@ 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 "基準地上レベルを定義ã—ã¾ã™ã€‚" @@ -2851,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." @@ -2884,6 +2914,10 @@ msgid "Desynchronize block animation" msgstr "ブãƒãƒƒã‚¯ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã®éžåŒæœŸåŒ–" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "掘削ã‚ー" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "掘削時パーティクル" @@ -2948,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 @@ -3059,17 +3094,6 @@ 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回転メッシュã®ã‚ャッシングを有効ã«ã—ã¾ã™ã€‚" @@ -3079,22 +3103,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3115,14 +3123,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3138,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" @@ -3464,10 +3464,6 @@ 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 "ã‚°ãƒãƒ¼ãƒãƒ«ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯" @@ -3529,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 "" @@ -4059,6 +4054,10 @@ 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 "ジョイスティック視éŒå°æ„Ÿåº¦" @@ -4162,6 +4161,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4304,6 +4313,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5046,10 +5065,6 @@ 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 "霧ã¨ç©ºã®è‰²ã‚’æ—¥ä¸(夜明ã‘/日没)ã¨è¦–ç·šæ–¹å‘ã«ä¾å˜ã•ã›ã¾ã™ã€‚" @@ -5063,6 +5078,14 @@ 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 "マップディレクトリ" @@ -5245,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" @@ -5301,6 +5326,16 @@ 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 "" +"åŒæ™‚ダウンãƒãƒ¼ãƒ‰ã®æœ€å¤§æ•°ã§ã™ã€‚ã“ã®åˆ¶é™ã‚’è¶…ãˆã‚‹ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã¯ã‚ューã«å…¥ã‚Œã‚‰ã‚Œ" +"ã¾ã™ã€‚\n" +"ã“れ㯠curl_parallel_limit よりも低ã„値ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。" + +#: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "強制èªã¿è¾¼ã¿ãƒžãƒƒãƒ—ブãƒãƒƒã‚¯ã®æœ€å¤§æ•°ã€‚" @@ -5551,14 +5586,6 @@ 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 "出ç¾ã™ã‚‹ã‚¹ãƒ¬ãƒƒãƒ‰æ•°" @@ -5598,10 +5625,6 @@ msgstr "" "トレードオフã§ã™ (経験則ã¨ã—ã¦ã€4096 = 100MB)。" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "視差é®è”½å復ã®å›žæ•°ã§ã™ã€‚" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "オンラインコンテンツリãƒã‚¸ãƒˆãƒª" @@ -5629,34 +5652,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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5747,6 +5742,14 @@ msgid "Pitch move mode" msgstr "ピッãƒç§»å‹•モード" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "è¨ç½®ã‚ー" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "è¨ç½®ã®ç¹°ã‚Šè¿”ã—é–“éš”" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5822,7 +5825,8 @@ msgid "" "Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" "プãƒãƒ¡ãƒ†ã‚¦ã‚¹ãƒªã‚¹ãƒŠãƒ¼ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã€‚\n" -"minetest ㌠ENABLE_PROMETHEUS オプションを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã•れã¦ã„ã‚‹å ´åˆã€\n" +"minetest ㌠ENABLE_PROMETHEUS オプションを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã•れã¦ã„ã‚‹å ´" +"åˆã€\n" "ãã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãƒ—ãƒãƒ¡ãƒ†ã‚¦ã‚¹ã®ãƒ¡ãƒˆãƒªãƒƒã‚¯ã‚¹ãƒªã‚¹ãƒŠãƒ¼ã‚’有効ã«ã—ã¾ã™ã€‚\n" "メトリック㯠http://127.0.0.1:30000/metrics ã§å–å¾—å¯èƒ½" @@ -5929,10 +5933,6 @@ msgid "Right key" msgstr "å³ã‚ー" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "å³ã‚¯ãƒªãƒƒã‚¯ç¹°ã‚Šè¿”ã—ã®é–“éš”" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "æ²³é“ã®æ·±ã•" @@ -6223,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" @@ -6377,10 +6390,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6412,11 +6421,13 @@ msgid "" "world surface below." msgstr "" "å¯†ãªæµ®éŠå¤§é™¸å±¤ã«é…ç½®ã•ã‚Œã‚‹ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®æ°´ã®è¡¨é¢ãƒ¬ãƒ™ãƒ«ã€‚\n" -"æ°´ã¯è¦å®šã§ç„¡åйã«ãªã£ã¦ãŠã‚Šã€ã“ã®å€¤ãŒ 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n" +"æ°´ã¯è¦å®šã§ç„¡åйã«ãªã£ã¦ãŠã‚Šã€ã“ã®å€¤ãŒ 'mgv7_floatland_ymax' - " +"'mgv7_floatland_taper'\n" "(上部ã®å…ˆç´°ã‚Šé–‹å§‹ç‚¹ï¼‰ã‚ˆã‚Šä¸Šã«è¨å®šã•れã¦ã„ã‚‹å ´åˆã«ã®ã¿é…ç½®ã•れã¾ã™ã€‚\n" "***è¦å‘Šã€ã‚µãƒ¼ãƒãƒ¼ã®ãƒ‘フォーマンスã¸ã®æ½œåœ¨çš„ãªå±é™ºæ€§***:\n" "æ°´ã®é…置を有効ã«ã™ã‚‹å ´åˆã€æµ®éŠå¤§é™¸ã‚’密ãªå±¤ã«ã™ã‚‹ãŸã‚ã«\n" -"'mgv7_floatland_density' ã‚’2.0(ã¾ãŸã¯ 'mgv7_np_floatland' ã«å¿œã˜ã¦ä»–ã®å¿…è¦ãªå€¤ï¼‰ã«\n" +"'mgv7_floatland_density' ã‚’2.0(ã¾ãŸã¯ 'mgv7_np_floatland' ã«å¿œã˜ã¦ä»–ã®å¿…è¦ãª" +"値)ã«\n" "è¨å®šã—ã¦ã€ã‚µãƒ¼ãƒãƒ¼ã«é›†ä¸ã™ã‚‹æ¥µç«¯ãªæ°´ã®æµã‚Œã‚’é¿ã‘ã€ä¸‹ã®ä¸–界表é¢ã¸ã®å¤§è¦æ¨¡ãª\n" "洪水をé¿ã‘るよã†ã«ãƒ†ã‚¹ãƒˆã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" @@ -6498,6 +6509,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6571,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 "" @@ -6609,6 +6624,14 @@ 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 "" +"ABM ãŒå„ステップã§å®Ÿè¡Œã§ãる時間予算\n" +"(ABMé–“éš”ã®ä¸€éƒ¨ã¨ã—ã¦ï¼‰" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6617,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" @@ -6775,6 +6797,25 @@ 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 "" +"マルãƒã‚µãƒ³ãƒ—ルアンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹ï¼ˆMSAA)を使用ã—ã¦ã€ãƒ–ãƒãƒƒã‚¯ã‚¨ãƒƒã‚¸ã‚’滑らã‹ã«ã—" +"ã¾ã™ã€‚\n" +"ã“ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¯ã€ç”»åƒã‚’鮮明ã«ä¿ã¡ãªãŒã‚‰3Dビューãƒãƒ¼ãƒˆã‚’滑らã‹ã«ã—ã¾ã™ã€‚\n" +"ã—ã‹ã—ã€ãれã¯ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®å†…部ã«ã¯å½±éŸ¿ã—ã¾ã›ã‚“\n" +"(ã“れã¯ã€é€æ˜Žãªãƒ†ã‚¯ã‚¹ãƒãƒ£ã§ç‰¹ã«ç›®ç«‹ã¡ã¾ã™ï¼‰ã€‚\n" +"シェーダーを無効ã«ã™ã‚‹ã¨ã€ãƒŽãƒ¼ãƒ‰é–“ã«å¯è¦–スペースãŒè¡¨ç¤ºã•れã¾ã™ã€‚\n" +"0 ã«è¨å®šã™ã‚‹ã¨ã€MSAAã¯ç„¡åйã«ãªã‚Šã¾ã™ã€‚\n" +"ã“ã®ã‚ªãƒ—ションを変更ã—ãŸå ´åˆã€å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚" + +#: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "テクスãƒãƒ£ã‚’拡大縮å°ã™ã‚‹å ´åˆã¯ãƒˆãƒ©ã‚¤ãƒªãƒ‹ã‚¢ãƒ•ィルタリングを使用ã—ã¾ã™ã€‚" @@ -7010,6 +7051,12 @@ 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 "" "ノードã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’マップブãƒãƒƒã‚¯ã”ã¨ã«éžåŒæœŸã«\n" @@ -7021,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." @@ -7164,6 +7211,34 @@ 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ファイルダウンãƒãƒ¼ãƒ‰ã‚¿ã‚¤ãƒ アウト" @@ -7175,78 +7250,88 @@ msgstr "cURL並行処ç†åˆ¶é™" msgid "cURL timeout" msgstr "cURLタイムアウト" -#~ msgid "Toggle Cinematic" -#~ msgstr "æ˜ ç”»é¢¨ãƒ¢ãƒ¼ãƒ‰åˆ‡æ›¿" - -#~ msgid "Select Package File:" -#~ msgstr "ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "大ããªæ´žçªŸå†…ã®æº¶å²©ã®Y高ã•上é™ã€‚" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = æ–œé¢æƒ…å ±ä»˜ãã®è¦–å·®é®è”½ãƒžãƒƒãƒ”ング(高速)。\n" +#~ "1 = リリーフマッピング(æ£ç¢ºã ãŒä½Žé€Ÿ)。" -#~ msgid "Waving Water" -#~ msgstr "æºã‚Œã‚‹æ°´" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "ライトテーブルã®ã‚¬ãƒ³ãƒžè£œæ£ã‚’調整ã—ã¾ã™ã€‚数値ãŒå¤§ãã„ã»ã©æ˜Žã‚‹ããªã‚Šã¾ã™ã€‚\n" +#~ "ã“ã®è¨å®šã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå°‚用ã§ã‚りã€ã‚µãƒ¼ãƒã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚" -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ãŒæ™‚折地形ã‹ã‚‰çªå‡ºã™ã‚‹ã‹ã©ã†ã‹ã€‚" +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "山型浮éŠå¤§é™¸ãŒä¸é–“点ã®ä¸Šä¸‹ã§ã©ã®ã‚ˆã†ã«å…ˆç´°ããªã‚‹ã‹ã‚’変更ã—ã¾ã™ã€‚" -#~ msgid "Projecting dungeons" -#~ msgstr "çªå‡ºã™ã‚‹ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "シングルプレイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’リセットã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "æµ®éŠå¤§é™¸ã®å½±ãŒåºƒãŒã‚‹Yレベル。" +#~ msgid "Back" +#~ msgstr "戻る" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "æµ®éŠå¤§é™¸ã®ä¸é–“ç‚¹ã¨æ¹–é¢ã®Yレベル。" +#~ msgid "Bump Mapping" +#~ msgstr "ãƒãƒ³ãƒ—マッピング" -#~ msgid "Waving water" -#~ msgstr "æºã‚Œã‚‹æ°´" +#~ msgid "Bumpmapping" +#~ msgstr "ãƒãƒ³ãƒ—マッピング" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "æµ®éŠå¤§é™¸ã®æ»‘らã‹ãªåœ°å½¢ã«ãŠã‘る丘ã®é«˜ã•ã¨æ¹–ã®æ·±ã•ã®å¤‰å‹•。" +#~ msgid "Center of light curve mid-boost." +#~ msgstr "光度曲線ミッドブーストã®ä¸å¿ƒã€‚" #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." -#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®ä¸é–“点ã®ä¸Šã¨ä¸‹ã®å…¸åž‹çš„ãªæœ€å¤§é«˜ã•。" - -#~ msgid "This font will be used for certain languages." -#~ msgstr "ã“ã®ãƒ•ォントã¯ç‰¹å®šã®è¨€èªžã§ä½¿ç”¨ã•れã¾ã™ã€‚" - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "光度曲線ミッドブーストã®å¼·ã•。" - -#~ msgid "Shadow limit" -#~ msgstr "å½±ã®åˆ¶é™" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "TrueTypeフォントã¾ãŸã¯ãƒ“ットマップã¸ã®ãƒ‘ス。" - -#~ msgid "Lightness sharpness" -#~ msgstr "明るã•ã®é‹ã•" +#~ "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 "Lava depth" -#~ msgstr "æº¶å²©ã®æ·±ã•" +#~ msgid "Config mods" +#~ msgstr "Modè¨å®š" -#~ msgid "IPv6 support." -#~ msgstr "IPv6 サãƒãƒ¼ãƒˆã€‚" +#~ msgid "Configure" +#~ msgstr "è¨å®š" -#~ msgid "Gamma" -#~ msgstr "ガンマ" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "山型浮éŠå¤§é™¸ã®å¯†åº¦ã‚’制御ã—ã¾ã™ã€‚\n" +#~ "ノイズã®ã‚ªãƒ•セットã¯ã€'mgv7_np_mountain' ノイズ値ã«è¿½åŠ ã•れã¾ã™ã€‚" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "フォントã®å½±ã®é€éŽ (ä¸é€æ˜Žã€0~255ã®é–“)。" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "トンãƒãƒ«ã®å¹…を制御ã€å°ã•ã„æ–¹ã®å€¤ã»ã©åºƒã„トンãƒãƒ«ã‚’生æˆã—ã¾ã™ã€‚" -#~ msgid "Floatland mountain height" -#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®é«˜ã•" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "照準線ã®è‰² (R,G,B)。" -#~ msgid "Floatland base height noise" -#~ msgstr "æµ®éŠå¤§é™¸ã®åŸºæº–高ã•ノイズ" +#~ msgid "Darkness sharpness" +#~ msgstr "æš—ã•ã®é‹ã•" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "フィルム調トーンマッピング有効ã«ã™ã‚‹" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "æµ®éŠå¤§é™¸ã®æ»‘らã‹ãªåœ°å½¢ã®åœ°åŸŸã‚’定義ã—ã¾ã™ã€‚\n" +#~ "ノイズ㌠0 より大ãã„ã¨ãã€æ»‘らã‹ãªæµ®éŠå¤§é™¸ã«ãªã‚Šã¾ã™ã€‚" -#~ msgid "Enable VBO" -#~ msgstr "VBOを有効化" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "テクスãƒãƒ£ã®ã‚µãƒ³ãƒ—ãƒªãƒ³ã‚°æ‰‹é †ã‚’å®šç¾©ã—ã¾ã™ã€‚\n" +#~ "値ãŒå¤§ãã„ã»ã©ã€æ³•ç·šãƒžãƒƒãƒ—ãŒæ»‘らã‹ã«ãªã‚Šã¾ã™ã€‚" #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " @@ -7257,54 +7342,202 @@ msgstr "cURLタイムアウト" #~ "ã™ã€‚\n" #~ "大ããªæ´žçªŸå†…ã®æº¶å²©ã®Y高ã•上é™ã€‚" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1をインストールã—ã¦ã„ã¾ã™ã€ãŠå¾…ã¡ãã ã•ã„..." + +#~ msgid "Enable VBO" +#~ msgstr "VBOを有効化" + #~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "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" -#~ "ノイズ㌠0 より大ãã„ã¨ãã€æ»‘らã‹ãªæµ®éŠå¤§é™¸ã«ãªã‚Šã¾ã™ã€‚" - -#~ msgid "Darkness sharpness" -#~ msgstr "æš—ã•ã®é‹ã•" +#~ "テクスãƒãƒ£ã®ãƒãƒ³ãƒ—マッピングを有効ã«ã—ã¾ã™ã€‚法線マップã¯\n" +#~ "テクスãƒãƒ£ãƒ‘ックã«ã‚ˆã£ã¦æä¾›ã•れるã‹ã¾ãŸã¯è‡ªå‹•生æˆã•れる必è¦ãŒã‚りã¾ã™ã€‚\n" +#~ "ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "トンãƒãƒ«ã®å¹…を制御ã€å°ã•ã„æ–¹ã®å€¤ã»ã©åºƒã„トンãƒãƒ«ã‚’生æˆã—ã¾ã™ã€‚" +#~ msgid "Enables filmic tone mapping" +#~ msgstr "フィルム調トーンマッピング有効ã«ã™ã‚‹" #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "山型浮éŠå¤§é™¸ã®å¯†åº¦ã‚’制御ã—ã¾ã™ã€‚\n" -#~ "ノイズã®ã‚ªãƒ•セットã¯ã€'mgv7_np_mountain' ノイズ値ã«è¿½åŠ ã•れã¾ã™ã€‚" - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "光度曲線ミッドブーストã®ä¸å¿ƒã€‚" +#~ "法線マップ生æˆã‚’è‡¨æ©Ÿå¿œå¤‰ã«æœ‰åйã«ã—ã¾ã™(エンボス効果)。\n" +#~ "ãƒãƒ³ãƒ—ãƒžãƒƒãƒ”ãƒ³ã‚°ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "山型浮éŠå¤§é™¸ãŒä¸é–“点ã®ä¸Šä¸‹ã§ã©ã®ã‚ˆã†ã«å…ˆç´°ããªã‚‹ã‹ã‚’変更ã—ã¾ã™ã€‚" +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "視差é®è”½ãƒžãƒƒãƒ”ングを有効ã«ã—ã¾ã™ã€‚\n" +#~ "ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "ライトテーブルã®ã‚¬ãƒ³ãƒžè£œæ£ã‚’調整ã—ã¾ã™ã€‚数値ãŒå¤§ãã„ã»ã©æ˜Žã‚‹ããªã‚Šã¾ã™ã€‚\n" -#~ "ã“ã®è¨å®šã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå°‚用ã§ã‚りã€ã‚µãƒ¼ãƒã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚" +#~ "実験的ãªã‚ªãƒ—ションã§ã€0 より大ãã„æ•°å€¤ã«è¨å®šã™ã‚‹ã¨ã€ãƒ–ãƒãƒƒã‚¯é–“ã«\n" +#~ "ç›®ã«è¦‹ãˆã‚‹ã‚¹ãƒšãƒ¼ã‚¹ãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" -#~ msgid "Path to save screenshots at." -#~ msgstr "スクリーンショットをä¿å˜ã™ã‚‹ãƒ‘ス。" +#~ msgid "FPS in pause menu" +#~ msgstr "ãƒãƒ¼ã‚ºãƒ¡ãƒ‹ãƒ¥ãƒ¼ã§ã®FPS" -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差é®è”½å¼·åº¦" +#~ msgid "Floatland base height noise" +#~ msgstr "æµ®éŠå¤§é™¸ã®åŸºæº–高ã•ノイズ" + +#~ msgid "Floatland mountain height" +#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®é«˜ã•" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "フォントã®å½±ã®é€éŽ (ä¸é€æ˜Žã€0~255ã®é–“)。" + +#~ msgid "Gamma" +#~ msgstr "ガンマ" + +#~ msgid "Generate Normal Maps" +#~ msgstr "法線マップã®ç”Ÿæˆ" + +#~ msgid "Generate normalmaps" +#~ msgstr "法線マップã®ç”Ÿæˆ" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 サãƒãƒ¼ãƒˆã€‚" + +#~ msgid "Lava depth" +#~ msgstr "æº¶å²©ã®æ·±ã•" + +#~ msgid "Lightness sharpness" +#~ msgstr "明るã•ã®é‹ã•" #~ msgid "Limit of emerge queues on disk" #~ msgstr "ディスク上ã«å‡ºç¾ã™ã‚‹ã‚ューã®åˆ¶é™" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1をインストールã—ã¦ã„ã¾ã™ã€ãŠå¾…ã¡ãã ã•ã„..." +#~ msgid "Main" +#~ msgstr "メイン" -#~ msgid "Back" -#~ msgstr "戻る" +#~ msgid "Main menu style" +#~ msgstr "メインメニューã®ã‚¹ã‚¿ã‚¤ãƒ«" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ x4" + +#~ msgid "Name/Password" +#~ msgstr "åå‰ / パスワード" + +#~ msgid "No" +#~ msgstr "ã„ã„ãˆ" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法線マップã®ã‚µãƒ³ãƒ—リング" + +#~ msgid "Normalmaps strength" +#~ msgstr "法線マップã®å¼·ã•" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "視差é®è”½å復ã®å›žæ•°ã§ã™ã€‚" #~ msgid "Ok" #~ msgstr "決定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "視差é®è”½åŠ¹æžœã®å…¨ä½“çš„ãƒã‚¤ã‚¢ã‚¹ã€é€šå¸¸ スケール/2 ã§ã™ã€‚" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "視差é®è”½åŠ¹æžœã®å…¨ä½“çš„ãªã‚¹ã‚±ãƒ¼ãƒ«ã§ã™ã€‚" + +#~ msgid "Parallax Occlusion" +#~ msgstr "視差é®è”½" + +#~ msgid "Parallax occlusion" +#~ msgstr "視差é®è”½" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "視差é®è”½ãƒã‚¤ã‚¢ã‚¹" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "視差é®è”½å復" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "視差é®è”½ãƒ¢ãƒ¼ãƒ‰" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "視差é®è”½ã‚¹ã‚±ãƒ¼ãƒ«" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差é®è”½å¼·åº¦" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueTypeフォントã¾ãŸã¯ãƒ“ットマップã¸ã®ãƒ‘ス。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "スクリーンショットをä¿å˜ã™ã‚‹ãƒ‘ス。" + +#~ msgid "Projecting dungeons" +#~ msgstr "çªå‡ºã™ã‚‹ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³" + +#~ msgid "Reset singleplayer world" +#~ msgstr "ワールドをリセット" + +#~ msgid "Select Package File:" +#~ msgstr "ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž:" + +#~ msgid "Shadow limit" +#~ msgstr "å½±ã®åˆ¶é™" + +#~ msgid "Start Singleplayer" +#~ msgstr "シングルプレイスタート" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生æˆã•ã‚ŒãŸæ³•線マップã®å¼·ã•ã§ã™ã€‚" + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "光度曲線ミッドブーストã®å¼·ã•。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "ã“ã®ãƒ•ォントã¯ç‰¹å®šã®è¨€èªžã§ä½¿ç”¨ã•れã¾ã™ã€‚" + +#~ msgid "Toggle Cinematic" +#~ msgstr "æ˜ ç”»é¢¨ãƒ¢ãƒ¼ãƒ‰åˆ‡æ›¿" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®ä¸é–“点ã®ä¸Šã¨ä¸‹ã®å…¸åž‹çš„ãªæœ€å¤§é«˜ã•。" + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "æµ®éŠå¤§é™¸ã®æ»‘らã‹ãªåœ°å½¢ã«ãŠã‘る丘ã®é«˜ã•ã¨æ¹–ã®æ·±ã•ã®å¤‰å‹•。" + +#~ msgid "View" +#~ msgstr "見る" + +#~ msgid "Waving Water" +#~ msgstr "æºã‚Œã‚‹æ°´" + +#~ msgid "Waving water" +#~ msgstr "æºã‚Œã‚‹æ°´" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ãŒæ™‚折地形ã‹ã‚‰çªå‡ºã™ã‚‹ã‹ã©ã†ã‹ã€‚" + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大ããªæ´žçªŸå†…ã®æº¶å²©ã®Y高ã•上é™ã€‚" + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "æµ®éŠå¤§é™¸ã®ä¸é–“ç‚¹ã¨æ¹–é¢ã®Yレベル。" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "æµ®éŠå¤§é™¸ã®å½±ãŒåºƒãŒã‚‹Yレベル。" + +#~ msgid "Yes" +#~ msgstr "ã¯ã„" diff --git a/po/ja_KS/minetest.po b/po/ja_KS/minetest.po deleted file mode 100644 index 2bb9891ae..000000000 --- a/po/ja_KS/minetest.po +++ /dev/null @@ -1,6323 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: Japanese (Kansai) (Minetest)\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n" -"Language-Team: Japanese (Kansai) <https://hosted.weblate.org/projects/" -"minetest/minetest/ja_KS/>\n" -"Language: ja_KS\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.10.1\n" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "Respawn" -msgstr "" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "" - -#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp -msgid "OK" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No (optional) dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No hard dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "No optional dependencies" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "All packages" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Back to Main Menu" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Mods" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "Update" -msgstr "" - -#: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Mud flow" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "" -"Structures appearing on the terrain (no effect on trees and jungle grass " -"created by v6)" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Structures appearing on the terrain, typically trees and plants" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua -#: src/client/keycode.cpp -msgid "Delete" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: failed to delete \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_content.lua -msgid "pkgmgr: invalid path \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "" -"This modpack has an explicit name given in its modpack.conf which will " -"override any renaming here." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Octaves" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Persistance" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "" - -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "" - -#. ~ "defaults" is a noise parameter flag. -#. It describes the default processing options -#. for noise settings in main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "defaults" -msgstr "" - -#. ~ "eased" is a noise parameter flag. -#. It is used to make the map smoother and -#. can be enabled in noise settings in -#. main menu -> "All Settings". -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "eased" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 (Enabled)" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Failed to install $1 to $2" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find suitable folder name for modpack $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Browse online content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "No package description available" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Uninstall Package" -msgstr "" - -#: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Start Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: src/client/client.cpp -msgid "Connection timed out." -msgstr "" - -#: src/client/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client/client.cpp -msgid "Loading textures..." -msgstr "" - -#: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string. Put either "no" or "yes" -#. into the translation field (literally). -#. Choose "yes" if the language requires use of the fallback -#. font, "no" otherwise. -#. The fallback font is (normally) required for languages with -#. non-Latin script, like Chinese. -#. When in doubt, test your translation. -#: src/client/fontengine.cpp -msgid "needs_fallback_font" -msgstr "yes" - -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" - -#: src/client/game.cpp -msgid "- Address: " -msgstr "" - -#: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Damage: " -msgstr "" - -#: src/client/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/client/game.cpp -msgid "- Port: " -msgstr "" - -#: src/client/game.cpp -msgid "- Public: " -msgstr "" - -#. ~ PvP = Player versus Player -#: src/client/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/client/game.cpp -msgid "- Server Name: " -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Camera update enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Change Password" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "" - -#: src/client/game.cpp -msgid "Continue" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" - -#: src/client/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to Menu" -msgstr "" - -#: src/client/game.cpp -msgid "Exit to OS" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Fog disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Game info:" -msgstr "" - -#: src/client/game.cpp -msgid "Game paused" -msgstr "" - -#: src/client/game.cpp -msgid "Hosting server" -msgstr "" - -#: src/client/game.cpp -msgid "Item definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Media..." -msgstr "" - -#: src/client/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" - -#: src/client/game.cpp -msgid "Node definitions..." -msgstr "" - -#: src/client/game.cpp -msgid "Off" -msgstr "" - -#: src/client/game.cpp -msgid "On" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" - -#: src/client/game.cpp -msgid "Remote server" -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Singleplayer" -msgstr "" - -#: src/client/game.cpp -msgid "Sound Volume" -msgstr "" - -#: src/client/game.cpp -msgid "Sound muted" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" - -#: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" - -#: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" - -#: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" - -#: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "" - -#: src/client/game.cpp -msgid "ok" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "Chat shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "" - -#: src/client/gameui.cpp -msgid "HUD shown" -msgstr "" - -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" - -#: src/client/gameui.cpp -#, c-format -msgid "Profiler shown (page %d of %d)" -msgstr "" - -#: src/client/keycode.cpp -msgid "Apps" -msgstr "" - -#: src/client/keycode.cpp -msgid "Backspace" -msgstr "" - -#: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Down" -msgstr "" - -#: src/client/keycode.cpp -msgid "End" -msgstr "" - -#: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "" - -#: src/client/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/client/keycode.cpp -msgid "Help" -msgstr "" - -#: src/client/keycode.cpp -msgid "Home" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Convert" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Escape" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "" - -#: src/client/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" - -#. ~ Key name, common on Windows keyboards -#: src/client/keycode.cpp -msgid "Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Num Lock" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad *" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad +" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad -" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad ." -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad /" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 0" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 2" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 3" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 4" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 5" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 6" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 7" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 8" -msgstr "" - -#: src/client/keycode.cpp -msgid "Numpad 9" -msgstr "" - -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page down" -msgstr "" - -#: src/client/keycode.cpp -msgid "Page up" -msgstr "" - -#: src/client/keycode.cpp -msgid "Pause" -msgstr "" - -#: src/client/keycode.cpp -msgid "Play" -msgstr "" - -#. ~ "Print screen" key -#: src/client/keycode.cpp -msgid "Print" -msgstr "" - -#: src/client/keycode.cpp -msgid "Return" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Control" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Menu" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Right Windows" -msgstr "" - -#: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#. ~ Key name -#: src/client/keycode.cpp -msgid "Select" -msgstr "" - -#: src/client/keycode.cpp -msgid "Shift" -msgstr "" - -#: src/client/keycode.cpp -msgid "Sleep" -msgstr "" - -#: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/client/keycode.cpp -msgid "Space" -msgstr "" - -#: src/client/keycode.cpp -msgid "Tab" -msgstr "" - -#: src/client/keycode.cpp -msgid "Up" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "" - -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Zoom" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -#, c-format -msgid "" -"You are about to join this server with the name \"%s\" for the first time.\n" -"If you proceed, a new account using your credentials will be created on this " -"server.\n" -"Please retype your password and click 'Register and Join' to confirm account " -"creation, or click 'Cancel' to abort." -msgstr "" - -#: src/gui/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "\"Special\" = climb down" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Automatic jumping" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "" - -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Exit" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Muted" -msgstr "" - -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" - -#. ~ Imperative, as in "Enter/type in text". -#. Don't forget the space. -#: src/gui/modalMenu.cpp -msgid "Enter " -msgstr "" - -#. ~ DO NOT TRANSLATE THIS LITERALLY! -#. This is a special string which needs to contain the translation's -#. language code (e.g. "de" for German). -#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp -msgid "LANG_CODE" -msgstr "ja_KS" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" -"Can be used to move a desired point to (0, 0) to create a\n" -"suitable spawn point, or to allow 'zooming in' on a desired\n" -"point by increasing 'scale'.\n" -"The default is tuned for a suitable spawn point for Mandelbrot\n" -"sets with default parameters, it may need altering in other\n" -"situations.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) scale of fractal in nodes.\n" -"Actual fractal size will be 2 to 3 times larger.\n" -"These numbers can be made very large, the fractal does\n" -"not have to fit inside the world.\n" -"Increase these to 'zoom' into the detail of the fractal.\n" -"Default is for a vertically-squashed shape suitable for\n" -"an island, set all 3 numbers equal for the raw shape." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining structure of floatlands.\n" -"If altered from the default, the noise 'scale' (0.7 by default) may need\n" -"to be adjusted, as floatland tapering functions best when this noise has\n" -"a value range of approximately -2.0 to 2.0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- crossview: Cross-eyed 3d\n" -"- pageflip: quadbuffer based 3d.\n" -"Note that the interlaced mode requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -#, c-format -msgid "" -"Adjusts the density of the floatland layer.\n" -"Increase value to increase density. Can be positive or negative.\n" -"Value = 0.0: 50% of volume is floatland.\n" -"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" -"to be sure) creates a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Alters the light curve by applying 'gamma correction' to it.\n" -"Higher values make middle and lower light levels brighter.\n" -"Value '1.0' leaves the light curve unaltered.\n" -"This only has significant effect on daylight and artificial\n" -"light, it has very little effect on natural night light." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce to this serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to\n" -"clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible\n" -"rendering glitches (some blocks will not be rendered under water and in " -"caves,\n" -"as well as sometimes on land).\n" -"Setting this to a value greater than max_block_send_distance disables this\n" -"optimization.\n" -"Stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autoscaling mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" -"Only works on GLES platforms. Most users will not need to change this.\n" -"Increasing can reduce artifacting on weaker GPUs.\n" -"0.1 = Default, 0.25 = Good value for weaker tablets." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of flags to hide in the content repository.\n" -"\"nonfree\" can be used to hide packages which do not qualify as 'free " -"software',\n" -"as defined by the Free Software Foundation.\n" -"You can also specify content ratings.\n" -"These flags are independent from Minetest versions,\n" -"so see a full list at https://content.minetest.net/help/content_flags/" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples:\n" -"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls width of tunnels, a smaller value creates wider tunnels.\n" -"Value >= 10.0 completely disables generation of tunnels and avoids the\n" -"intensive noise calculations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable register confirmation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" -"Simulates the tone curve of photographic film and how this approximates the\n" -"appearance of high dynamic range images. Mid-range contrast is slightly\n" -"enhanced, highlights and shadows are gradually compressed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland minimum Y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes).\n" -"\n" -"Setting this larger than active_block_range will also cause the server\n" -"to maintain active objects up to this distance in the direction the\n" -"player is looking. (This can avoid mobs suddenly disappearing from view)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated Lua API calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness3 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hilliness4 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How fast liquid waves will move. Higher = faster.\n" -"If negative, liquid waves will move backwards.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the CSM restriction for node range is enabled, get_node calls are " -"limited\n" -"to this distance from the player to the node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If the file size of debug.txt exceeds the number of megabytes specified in\n" -"this setting when it is opened, the file is moved to debug.txt.1,\n" -"deleting an older debug.txt.1 if it exists.\n" -"debug.txt is only moved if this setting is positive." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Italic monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Increasing this increases the amount of fine detail, but also\n" -"increases processing load.\n" -"At iterations = 20 this mapgen has a similar load to mapgen V7." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"X component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Y component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only.\n" -"Z component of hypercomplex constant.\n" -"Alters the shape of the fractal.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"Will also disable autoforward, when active.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- <nothing> (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/jbo/minetest.po b/po/jbo/minetest.po index 016dd43ed..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-03-15 18:36+0000\n" -"Last-Translator: Robin Townsend <iantownsend@disroot.org>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Wuzzy <almikes@aol.com>\n" "Language-Team: Lojban <https://hosted.weblate.org/projects/minetest/minetest/" "jbo/>\n" "Language: jbo\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr ".i do morsi" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "fitytu'i" #: builtin/fstk/ui.lua #, fuzzy @@ -49,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. " @@ -68,12 +64,6 @@ 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 "" @@ -81,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 @@ -89,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" @@ -166,14 +158,54 @@ 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 "" @@ -196,6 +228,16 @@ 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" msgstr "se samtcise'a" @@ -209,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 @@ -227,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 @@ -260,7 +321,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Caves" -msgstr "" +msgstr "kevzda" #: builtin/mainmenu/dlg_create_world.lua msgid "Create" @@ -283,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" @@ -291,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" @@ -340,7 +402,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Mountains" -msgstr "" +msgstr "cmana" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" @@ -364,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" @@ -372,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" @@ -528,6 +589,10 @@ 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" @@ -644,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 "" @@ -700,6 +779,17 @@ msgid "Credits" msgstr "liste lu'i ro gunka" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "liste lu'i ro pu je nai ca gunka" @@ -716,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 @@ -741,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 +839,10 @@ 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 +851,11 @@ 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" @@ -774,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" @@ -800,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 "" @@ -818,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 +933,6 @@ 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 "" @@ -850,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 "" @@ -870,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 @@ -916,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:" @@ -947,6 +1011,11 @@ 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)" msgstr "ti'orkemsamtci to na kakne toi" @@ -996,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 "" @@ -1185,13 +1238,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1317,34 +1370,6 @@ 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 "" @@ -1399,7 +1424,7 @@ msgstr "nonselkansa" #: src/client/game.cpp msgid "Sound Volume" -msgstr "" +msgstr "ni sance" #: src/client/game.cpp #, fuzzy @@ -1437,7 +1462,7 @@ msgstr "" #: src/client/game.cpp #, c-format msgid "Volume changed to %d%%" -msgstr "" +msgstr ".i fe lo ni sance cu cenba fi li %d ce'i" #: src/client/game.cpp msgid "Wireframe shown" @@ -1548,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" @@ -1676,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" @@ -1747,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" @@ -1783,9 +1824,8 @@ msgid "Automatic jumping" msgstr "" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Backward" -msgstr "za'i ti'a muvdu" +msgstr "ti'a muvdu" #: src/gui/guiKeyChangeMenu.cpp #, fuzzy @@ -1810,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" @@ -1832,7 +1870,7 @@ msgstr "" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" -msgstr "" +msgstr "zengau lo ni sance" #: src/gui/guiKeyChangeMenu.cpp msgid "Inventory" @@ -2010,12 +2048,6 @@ msgid "" 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 "" @@ -2044,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" @@ -2124,6 +2155,10 @@ 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 "" @@ -2360,10 +2395,6 @@ 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" @@ -2434,16 +2465,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2605,6 +2626,10 @@ 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" msgstr "ranji" @@ -2662,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 @@ -2670,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 @@ -2770,12 +2799,6 @@ 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 "" @@ -2847,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 @@ -2908,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 @@ -2996,14 +3023,6 @@ 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 "" @@ -3013,18 +3032,6 @@ 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" @@ -3041,12 +3048,6 @@ 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" @@ -3056,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 @@ -3360,10 +3361,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3417,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 "" @@ -3886,6 +3883,10 @@ 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 "" @@ -3967,6 +3968,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4066,6 +4074,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4624,11 +4639,6 @@ 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." msgstr "" @@ -4642,6 +4652,14 @@ 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 "" @@ -4805,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 @@ -4854,6 +4872,13 @@ msgid "" 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 "" @@ -4963,7 +4988,6 @@ msgid "Minimum texture size" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Mipmapping" msgstr "lo puvrmipmepi" @@ -5085,14 +5109,6 @@ 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 "" @@ -5118,10 +5134,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5147,34 +5159,6 @@ msgid "" 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" @@ -5241,6 +5225,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5398,10 +5391,6 @@ 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 "" @@ -5655,6 +5644,16 @@ 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 "" @@ -5788,10 +5787,6 @@ 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" @@ -5885,6 +5880,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5943,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 @@ -5970,15 +5969,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 "" 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 "" @@ -6215,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 "" @@ -6324,6 +6338,12 @@ msgid "" 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 "" @@ -6447,6 +6467,24 @@ 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 "" @@ -6458,15 +6496,47 @@ msgstr "" msgid "cURL timeout" msgstr "" +#~ 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 "Enable VBO" -#~ msgstr "selpli" +#~ 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" -#~ msgid "Back" -#~ msgstr "xruti" +#, 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 3f68fbc97..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-06-13 23:17+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 <pomanfedurin@gmail.com>\n" "Language-Team: Kazakh <https://hosted.weblate.org/projects/minetest/minetest/" "kk/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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 "" @@ -63,10 +59,6 @@ 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 "" @@ -74,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 @@ -84,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 "" @@ -156,14 +150,53 @@ 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 "" @@ -185,6 +218,15 @@ 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" msgstr "Модтар" @@ -198,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" @@ -215,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 @@ -510,6 +572,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Іздеу" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -624,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 "" @@ -677,6 +755,16 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -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 @@ -729,6 +813,11 @@ 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 "" @@ -737,6 +826,10 @@ 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 "" @@ -814,20 +907,12 @@ 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" @@ -842,10 +927,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -854,10 +935,6 @@ 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:" @@ -910,6 +979,10 @@ 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,13 +1185,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1256,34 +1313,6 @@ 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 "" @@ -1675,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 "" @@ -1919,12 +1966,6 @@ msgid "" 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 "" @@ -2031,6 +2072,10 @@ 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 "" @@ -2264,10 +2309,6 @@ 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" @@ -2338,16 +2379,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2499,6 +2530,10 @@ 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 "" @@ -2555,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 @@ -2563,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 @@ -2663,12 +2702,6 @@ 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 "" @@ -2739,6 +2772,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2799,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 @@ -2887,14 +2924,6 @@ 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 "" @@ -2904,18 +2933,6 @@ 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" @@ -2932,12 +2949,6 @@ 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" @@ -2947,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 @@ -3249,10 +3260,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3306,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 "" @@ -3774,6 +3781,10 @@ 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 "" @@ -3854,6 +3865,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3953,6 +3971,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4509,10 +4534,6 @@ 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 "" @@ -4526,6 +4547,14 @@ 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 "" @@ -4689,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 @@ -4738,6 +4767,13 @@ msgid "" 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 "" @@ -4967,14 +5003,6 @@ 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 "" @@ -5000,10 +5028,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5029,34 +5053,6 @@ msgid "" 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" @@ -5122,6 +5118,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5277,10 +5281,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5532,6 +5532,16 @@ 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 "" @@ -5661,10 +5671,6 @@ 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" @@ -5758,6 +5764,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5816,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 @@ -5843,15 +5853,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -5987,6 +6002,17 @@ msgid "" 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 "" @@ -6056,7 +6082,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Video driver" -msgstr "" +msgstr "Видеодрайвер" #: src/settings_translation_file.cpp msgid "View bobbing factor" @@ -6111,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." @@ -6189,6 +6215,12 @@ msgid "" 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 "" @@ -6276,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." @@ -6311,6 +6343,24 @@ 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 "" @@ -6321,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 91fc52c2a..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-11-10 15:04+0000\n" -"Last-Translator: Krock <mk939@ymail.com>\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 <tejaswihegde1@gmail.com>\n" "Language-Team: Kannada <https://hosted.weblate.org/projects/minetest/" "minetest/kn/>\n" "Language: kn\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,17 +24,15 @@ msgstr "ನೀನೠಸತà³à²¤à³à²¹à³‹à²¦à³†" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "ಸರಿ" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "ಒಂದೠಲà³à²µà²¾ ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ ನಲà³à²²à²¿ ತಪà³à²ªà²¾à²—ಿದೆ, ಉದಾಹರಣೆ ಮಾಡà³â€à²¨à²²à³à²²à²¿" +msgstr "ಒಂದೠಲà³à²µà²¾ ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ ನಲà³à²²à²¿ ತಪà³à²ªà²¾à²—ಿದೆ:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" -msgstr "ಒಂದೠತಪà³à²ªà²¾à²—ಿದೆ:" +msgstr "ದೋಷ ವೊಂದೠಸಂà²à²µà²¿à²¸à²¿à²¦à³†:" #: builtin/fstk/ui.lua msgid "Main menu" @@ -48,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 "ಪà³à²°à³‹à²Ÿà³‹à²•ಾಲೠಆವೃತà³à²¤à²¿ ಹೊಂದಿಕೆಯಾಗಿಲà³à²². " @@ -61,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." @@ -81,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 @@ -91,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 "ಅವಲಂಬನೆಗಳà³:" @@ -101,7 +88,7 @@ msgstr "ಎಲà³à²²à²µà²¨à³à²¨à³‚ ನಿಷà³à²•à³à²°à²¿à²¯à³†à²—ೊಳಠ#: builtin/mainmenu/dlg_config_world.lua msgid "Disable modpack" -msgstr "" +msgstr "ಮಾಡೠಪà³à²¯à²¾à²•ೠನಿಷà³à²•à³à²°à²¿à²¯à²—ೊಳಿಸಿ" #: builtin/mainmenu/dlg_config_world.lua msgid "Enable all" @@ -109,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:" @@ -169,21 +152,59 @@ 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" @@ -199,22 +220,48 @@ msgid "Install" msgstr "ಇನà³à²¸à³à²Ÿà²¾à²²à³" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "ಇನà³à²¸à³à²Ÿà²¾à²²à³" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "à²à²šà³à²›à²¿à²• ಅವಲಂಬನೆಗಳà³:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "ಮಾಡà³â€à²—ಳà³" #: builtin/mainmenu/dlg_contentstore.lua msgid "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" @@ -229,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" @@ -249,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 "" @@ -524,6 +591,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "ಹà³à²¡à³à²•à³" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -638,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 "" @@ -691,6 +774,16 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -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 @@ -743,6 +832,10 @@ msgid "No world created or selected!" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -751,6 +844,10 @@ 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 "" @@ -828,10 +925,6 @@ 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 "" @@ -856,10 +945,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -868,10 +953,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -899,19 +980,11 @@ 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 "" @@ -924,6 +997,11 @@ 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,13 +1204,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1270,34 +1332,6 @@ 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 "" @@ -1689,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 "" @@ -1933,12 +1985,6 @@ msgid "" 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 "" @@ -2045,6 +2091,10 @@ 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 "" @@ -2278,10 +2328,6 @@ 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" @@ -2352,16 +2398,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2513,6 +2549,10 @@ 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 "" @@ -2569,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 @@ -2577,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 @@ -2677,12 +2721,6 @@ 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 "" @@ -2753,6 +2791,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2813,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 @@ -2901,14 +2943,6 @@ 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 "" @@ -2918,18 +2952,6 @@ 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" @@ -2946,12 +2968,6 @@ 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" @@ -2961,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 @@ -3263,10 +3279,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3320,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 "" @@ -3788,6 +3800,10 @@ 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 "" @@ -3868,6 +3884,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3967,6 +3990,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4523,10 +4553,6 @@ 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 "" @@ -4540,6 +4566,14 @@ 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 "" @@ -4703,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 @@ -4752,6 +4786,13 @@ msgid "" 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 "" @@ -4981,14 +5022,6 @@ 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 "" @@ -5014,10 +5047,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5043,34 +5072,6 @@ msgid "" 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" @@ -5136,6 +5137,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5291,10 +5300,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5546,6 +5551,16 @@ 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 "" @@ -5675,10 +5690,6 @@ 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" @@ -5772,6 +5783,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5830,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 @@ -5857,15 +5872,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6001,6 +6021,17 @@ msgid "" 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 "" @@ -6203,6 +6234,12 @@ msgid "" 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 "" @@ -6325,6 +6362,24 @@ 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 "" @@ -6336,11 +6391,15 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 ಡೌನà³à²²à³‹à²¡à³ ಮತà³à²¤à³ ಇನà³à²¸à³à²Ÿà²¾à²²à³ ಮಾಡಲಾಗà³à²¤à³à²¤à²¿à²¦à³†, ದಯವಿಟà³à²Ÿà³ ನಿರೀಕà³à²·à²¿à²¸à²¿..." - #~ 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 c28e410a4..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-06-13 23:17+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-12-05 15:29+0000\n" +"Last-Translator: HunSeongPark <gnstjd980831@naver.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/minetest/minetest/" "ko/>\n" "Language: ko\n" @@ -12,28 +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 -#, fuzzy msgid "You died" -msgstr "사ë§í–ˆìŠµë‹ˆë‹¤." +msgstr "사ë§í–ˆìŠµë‹ˆë‹¤" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "확ì¸" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Lua 스í¬ë¦½íЏì—서 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 해당 모드:" +msgstr "Lua 스í¬ë¦½íЏì—서 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤:" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred:" msgstr "오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤:" @@ -49,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 "í”„ë¡œí† ì½œ ë²„ì „ì´ ì•Œë§žì§€ 않습니다. " @@ -66,10 +59,6 @@ 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ë§Œ ì œê³µí•©ë‹ˆë‹¤." @@ -77,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 @@ -87,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 @@ -169,27 +152,65 @@ 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 @@ -201,6 +222,16 @@ msgid "Install" msgstr "설치" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "설치" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "종ì†ì„± ì„ íƒ:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "모드" @@ -214,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" @@ -315,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" @@ -344,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 @@ -392,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\"?" @@ -459,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\"?" @@ -485,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" @@ -516,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 "í”Œë ˆì´ì–´ ì „ì†¡ 거리" @@ -547,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" @@ -573,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". @@ -601,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 @@ -617,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" @@ -740,6 +766,17 @@ msgid "Credits" msgstr "ë§Œë“ ì´" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "경로를 ì„ íƒí•˜ì„¸ìš”" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "ì´ì „ 공헌ìžë“¤" @@ -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" @@ -795,6 +825,11 @@ 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 "게임하기" @@ -803,6 +838,11 @@ 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 "키 변경" @@ -912,11 +940,6 @@ msgid "Fancy Leaves" msgstr "아름다운 나ë‡ìžŽ 효과" #: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Generate Normal Maps" -msgstr "Normalmaps ìƒì„±" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "ë°‰ ë§µ" @@ -925,10 +948,6 @@ 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" @@ -982,6 +992,11 @@ 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,26 +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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" -"기본 컨트롤:-WASD: ì´ë™\n" -"-스페ì´ìФ: ì 프/오르기\n" -"-쉬프트:살금살금/ë‚´ë ¤ê°€ê¸°\n" -"-Q: ì•„ì´í…œ 드ë¡\n" -"-I: ì¸ë²¤í† 리\n" -"-마우스: ëŒì•„보기/보기\n" -"-마우스 왼쪽: 파내기/공격\n" -"-마우스 오른쪽: 배치/사용\n" -"-마우스 íœ : ì•„ì´í…œ ì„ íƒ\n" -"-T: 채팅\n" +"ì¡°ìž‘:\n" +"-%s: 앞으로 ì´ë™\n" +"-%s:뒤로 ì´ë™\n" +"-%s:왼쪽으로 ì´ë™\n" +"-%s:오른쪽으로 ì´ë™\n" +"-%s: ì 프/오르기\n" +"-%s:조용히 걷기/ë‚´ë ¤ê°€ê¸°\n" +"-%s:ì•„ì´í…œ 버리기\n" +"-%s:ì¸ë²¤í† 리\n" +"-마우스: ëŒê¸°/보기\n" +"-마우스 왼쪽 í´ë¦: 땅파기/펀치\n" +"-마우스 오른쪽 í´ë¦: ë‘기/사용하기\n" +"-마우스 íœ :ì•„ì´í…œ ì„ íƒ\n" +"-%s: 채팅\n" #: src/client/game.cpp msgid "Creating client..." @@ -1243,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 "" @@ -1284,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" @@ -1299,42 +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 "활성화ë¨" +msgstr "안개 활성화" #: src/client/game.cpp msgid "Game info:" @@ -1345,9 +1331,8 @@ msgid "Game paused" msgstr "게임 ì¼ì‹œì •ì§€" #: src/client/game.cpp -#, fuzzy msgid "Hosting server" -msgstr "서버 만드는 중..." +msgstr "호스팅 서버" #: src/client/game.cpp msgid "Item definitions..." @@ -1367,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..." @@ -1425,20 +1380,19 @@ msgstr "켜기" #: src/client/game.cpp msgid "Pitch move mode disabled" -msgstr "" +msgstr "피치 ì´ë™ 모드 비활성화" #: src/client/game.cpp msgid "Pitch move mode enabled" -msgstr "" +msgstr "피치 ì´ë™ 모드 활성화" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "" +msgstr "프로파ì¼ëŸ¬ 그래프 ë³´ì´ê¸°" #: src/client/game.cpp -#, fuzzy msgid "Remote server" -msgstr "ì›ê²© í¬íЏ" +msgstr "ì›ê²© 서버" #: src/client/game.cpp msgid "Resolving address..." @@ -1457,88 +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 "" +msgstr "ì„ í‘œë©´ ë³´ì´ê¸°" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "" +msgstr "게임 ë˜ëŠ” ëª¨ë“œì— ì˜í•´ 현재 확대 비활성화" #: src/client/game.cpp msgid "ok" msgstr "확ì¸" #: src/client/gameui.cpp -#, fuzzy msgid "Chat hidden" -msgstr "채팅" +msgstr "채팅 숨기기" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "채팅 ë³´ì´ê¸°" #: src/client/gameui.cpp msgid "HUD hidden" -msgstr "" +msgstr "HUD 숨기기" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "HUD ë³´ì´ê¸°" #: src/client/gameui.cpp -#, fuzzy msgid "Profiler hidden" -msgstr "프로파ì¼ëŸ¬" +msgstr "프로파ì¼ëŸ¬ 숨기기" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" +msgstr "프로파ì¼ëŸ¬ ë³´ì´ê¸° (%d중 %d 페ì´ì§€)" #: src/client/keycode.cpp msgid "Apps" msgstr "ì• í”Œë¦¬ì¼€ì´ì…˜" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" msgstr "뒤로" @@ -1563,9 +1512,8 @@ msgid "End" msgstr "ë" #: src/client/keycode.cpp -#, fuzzy msgid "Erase EOF" -msgstr "OEF를 지우기" +msgstr "EOF 지우기" #: src/client/keycode.cpp msgid "Execute" @@ -1589,7 +1537,7 @@ msgstr "IME 변환" #: src/client/keycode.cpp msgid "IME Escape" -msgstr "" +msgstr "IME 종료" #: src/client/keycode.cpp msgid "IME Mode Change" @@ -1609,7 +1557,7 @@ msgstr "왼쪽" #: src/client/keycode.cpp msgid "Left Button" -msgstr "ì™¼ìª½ëœ ë²„íŠ¼" +msgstr "왼쪽 버튼" #: src/client/keycode.cpp msgid "Left Control" @@ -1637,7 +1585,6 @@ msgid "Middle Button" msgstr "ê°€ìš´ë° ë²„íŠ¼" #: src/client/keycode.cpp -#, fuzzy msgid "Num Lock" msgstr "Num Lock" @@ -1703,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" @@ -1724,9 +1670,8 @@ msgstr "시작" #. ~ "Print screen" key #: src/client/keycode.cpp -#, fuzzy msgid "Print" -msgstr "ì¸ì‡„" +msgstr "ì¶œë ¥" #: src/client/keycode.cpp msgid "Return" @@ -1757,7 +1702,6 @@ msgid "Right Windows" msgstr "오른쪽 ì°½" #: src/client/keycode.cpp -#, fuzzy msgid "Scroll Lock" msgstr "스í¬ë¡¤ ë½" @@ -1779,9 +1723,8 @@ msgid "Snapshot" msgstr "스냅샷" #: src/client/keycode.cpp -#, fuzzy msgid "Space" -msgstr "스페ì´ìФ" +msgstr "스페ì´ìŠ¤ë°”" #: src/client/keycode.cpp msgid "Tab" @@ -1803,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 @@ -1820,33 +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 -#, fuzzy msgid "Change camera" -msgstr "키 변경" +msgstr "ì¹´ë©”ë¼ ë³€ê²½" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" @@ -1861,9 +1824,8 @@ msgid "Console" msgstr "콘솔" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Dec. range" -msgstr "시야 범위" +msgstr "범위 ê°ì†Œ" #: src/gui/guiKeyChangeMenu.cpp msgid "Dec. volume" @@ -1882,9 +1844,8 @@ msgid "Forward" msgstr "앞으로" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Inc. range" -msgstr "시야 범위" +msgstr "범위 ì¦ê°€" #: src/gui/guiKeyChangeMenu.cpp msgid "Inc. volume" @@ -1908,9 +1869,8 @@ msgstr "" "Keybindings. (ì´ ë©”ë‰´ë¥¼ ê³ ì •í•˜ë ¤ë©´ minetest.cofì—서 stuff를 ì œê±°í•´ì•¼í•©ë‹ˆë‹¤.)" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Local command" -msgstr "채팅 명ë ì–´" +msgstr "ì§€ì— ëª…ë ¹ì–´" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" @@ -1938,17 +1898,15 @@ msgstr "살금살금" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "" +msgstr "특별함" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle HUD" -msgstr "비행 스위치" +msgstr "HUD í† ê¸€" #: src/gui/guiKeyChangeMenu.cpp -#, fuzzy msgid "Toggle chat log" -msgstr "ê³ ì† ìŠ¤ìœ„ì¹˜" +msgstr "채팅 ê¸°ë¡ í† ê¸€" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -1959,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" @@ -2002,7 +1957,6 @@ msgid "Exit" msgstr "나가기" #: src/gui/guiVolumeChange.cpp -#, fuzzy msgid "Muted" msgstr "ìŒì†Œê±°" @@ -2028,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 "" @@ -2035,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 "" @@ -2047,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 "" @@ -2058,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" @@ -2102,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 "" @@ -2123,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" @@ -2180,30 +2155,32 @@ msgid "A message to be displayed to all clients when the server shuts down." msgstr "서버가 ë‹«íž ë•Œ ëª¨ë“ ì‚¬ìš©ìžë“¤ì—게 표시 ë 메시지입니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "ABM interval" -msgstr "ë§µ ì €ìž¥ 간격" +msgstr "ABM 간격" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "ABM time budget" msgstr "" #: src/settings_translation_file.cpp +msgid "Absolute limit of queued blocks to emerge" +msgstr "ëŒ€ê¸°ì¤‘ì¸ ë¸”ë¡ì˜ ì ˆëŒ€ 한계" + +#: src/settings_translation_file.cpp msgid "Acceleration in air" msgstr "공중ì—서 ê°€ì†" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +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" @@ -2211,7 +2188,7 @@ msgstr "ë¸”ë¡ ë²”ìœ„ 활성" #: src/settings_translation_file.cpp msgid "Active object send range" -msgstr "" +msgstr "ê°ì²´ ì „ë‹¬ 범위 활성화" #: src/settings_translation_file.cpp msgid "" @@ -2219,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 @@ -2240,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" @@ -2253,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" @@ -2325,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" @@ -2345,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" @@ -2388,61 +2381,56 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" "Increasing can reduce artifacting on weaker GPUs.\n" "0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"0ì—서 0.25 사ì´ì˜ 노드ì—서 ì¹´ë©”ë¼ 'ê¹Žì¸ í‰ë©´ 근처'거리는 GLES 플랫í¼ì—서만 ìž‘" +"ë™í•©ë‹ˆë‹¤. \n" +"ëŒ€ë¶€ë¶„ì˜ ì‚¬ìš©ìžëŠ” ì´ê²ƒì„ ë³€ê²½í• í•„ìš”ê°€ 없습니다.\n" +"ê°’ì´ ì¦ê°€í•˜ë©´ 약한 GPUì—서 아티팩트를 ì¤„ì¼ ìˆ˜ 있습니다. \n" +"0.1 = 기본값, 0.25 = 약한 íƒœë¸”ë¦¿ì— ì 합한 ê°’." #: src/settings_translation_file.cpp msgid "Camera smoothing" @@ -2457,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" @@ -2474,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" @@ -2575,7 +2545,6 @@ msgid "Cinematic mode key" msgstr "시네마틱 모드 스위치" #: src/settings_translation_file.cpp -#, fuzzy msgid "Clean transparent textures" msgstr "깨ë—í•˜ê³ íˆ¬ëª…í•œ í…스처" @@ -2592,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" @@ -2634,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 @@ -2649,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" @@ -2664,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" @@ -2680,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." @@ -2729,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" @@ -2743,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 @@ -2751,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" @@ -2767,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" @@ -2781,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" @@ -2796,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." @@ -2817,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." @@ -2856,15 +2845,6 @@ msgid "Defines location and terrain of optional hills and lakes." msgstr "" #: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"í…ìŠ¤ì²˜ì˜ ìƒ˜í”Œë§ ë‹¨ê³„ë¥¼ ì •ì˜í•©ë‹ˆë‹¤.\n" -"ì¼ë°˜ ë§µì— ë¶€ë“œëŸ½ê²Œ ë†’ì€ ê°’ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤." - -#: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2873,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 = ë¬´ì œí•œ)." @@ -2900,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ì´ˆ." @@ -2909,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 "í° ë™êµ´ì„ ë°œê²¬í• ìˆ˜ 있는 깊ì´." @@ -2940,6 +2916,10 @@ msgstr "ë¸”ë¡ ì• ë‹ˆë©”ì´ì…˜ 비ë™ê¸°í™”" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "오른쪽 키" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "ìž…ìž íš¨ê³¼" @@ -2968,7 +2948,6 @@ msgid "Drop item key" msgstr "ì•„ì´í…œ ë“œëž í‚¤" #: src/settings_translation_file.cpp -#, fuzzy msgid "Dump the mapgen debug information." msgstr "Mapgen 디버그 ì •ë³´ë¥¼ ë¤í”„ 합니다." @@ -2981,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 "" @@ -3002,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" @@ -3052,7 +3029,8 @@ msgid "" "expecting." msgstr "" "ì˜¤ëž˜ëœ í´ë¼ì´ì–¸íЏ ì—°ê²°ì„ í—ˆë½í•˜ì§€ ì•ŠëŠ”ê²ƒì„ ì‚¬ìš©.\n" -"ì´ì „ í´ë¼ì´ì–¸íŠ¸ëŠ” 서버ì—서 ë‹¹ì‹ ì´ ê¸°ëŒ€í•˜ëŠ” 새로운 íŠ¹ì§•ë“¤ì„ ì§€ì›í•˜ì§€ 않는다면 " +"ì´ì „ í´ë¼ì´ì–¸íŠ¸ëŠ” 서버ì—서 ë‹¹ì‹ ì´ ê¸°ëŒ€í•˜ëŠ” 새로운 íŠ¹ì§•ë“¤ì„ ì§€ì›í•˜ì§€ 않는다" +"ë©´ \n" "새로운 서버로 ì—°ê²°í• ë•Œ ì¶©ëŒí•˜ì§€ ì•Šì„ ê²ƒìž…ë‹ˆë‹¤." #: src/settings_translation_file.cpp @@ -3062,9 +3040,9 @@ msgid "" "textures)\n" "when connecting to the server." msgstr "" -"(만약 서버ì—서 ì œê³µí•œë‹¤ë©´)ì›ê²© 미디어 서버 사용 가능.\n" -"ì›ê²© ì„œë²„ë“¤ì€ ì„œë²„ì— ì—°ê²°í• ë•Œ 매우 ë¹ ë¥´ê²Œ 미디어를 다운로드 í• ìˆ˜ 있ë„ë¡ ì œ" -"공합니다.(예: í…스처)" +"ì›ê²© 미디어 서버 사용 가능(만약 서버ì—서 ì œê³µí•œë‹¤ë©´).\n" +"ì›ê²© ì„œë²„ë“¤ì€ ì„œë²„ì— ì—°ê²°í• ë•Œ 매우 ë¹ ë¥´ê²Œ 미디어를\n" +"다운로드 í• ìˆ˜ 있ë„ë¡ ì œê³µí•©ë‹ˆë‹¤.(예: í…스처)" #: src/settings_translation_file.cpp msgid "" @@ -3081,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 @@ -3104,17 +3081,6 @@ 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 "" @@ -3123,23 +3089,6 @@ msgid "Enables minimap." msgstr "미니맵 ì ìš©." #: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -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" "If disabled, this completely disables all sounds everywhere and the in-game\n" @@ -3157,12 +3106,6 @@ 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" @@ -3172,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" @@ -3184,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" @@ -3222,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" @@ -3239,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 "ê°• 깊ì´" @@ -3288,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" @@ -3408,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 사ì´)." @@ -3444,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 글꼴" @@ -3493,10 +3422,6 @@ 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 "글로벌 콜백" @@ -3528,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 모드" @@ -3553,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 "" @@ -3572,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" @@ -3602,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." @@ -3665,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" @@ -3780,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 "" @@ -3798,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" @@ -3852,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 "" @@ -3886,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 "" @@ -3921,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 사ì´)." @@ -3930,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." @@ -4002,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" @@ -4037,6 +3947,10 @@ 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 "" @@ -4122,6 +4036,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3 참조" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"ì 프키입니다.\n" +"Http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3 참조" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4142,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." @@ -4173,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 참조" @@ -4215,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." @@ -4268,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" @@ -4277,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." @@ -4288,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 참조" @@ -4674,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 @@ -4735,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 참조" @@ -4756,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 참조" @@ -4777,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 참조" @@ -4798,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 참조" @@ -4826,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 참조" @@ -4869,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" @@ -4902,7 +4794,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Length of liquid waves.\n" "Requires waving liquids to be enabled." @@ -4959,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 "" @@ -4992,7 +4885,6 @@ msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Liquid sinking" msgstr "하강 ì†ë„" @@ -5032,11 +4924,6 @@ 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." msgstr "" @@ -5050,6 +4937,14 @@ 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 "" @@ -5113,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" @@ -5135,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" @@ -5221,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" @@ -5270,6 +5158,13 @@ msgid "" 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 "" @@ -5287,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" @@ -5304,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." @@ -5313,7 +5206,6 @@ msgstr "" "hotbarì˜ ì˜¤ë¥¸ìª½ì´ë‚˜ ì™¼ìª½ì— ë¬´ì–¸ê°€ë¥¼ 나타낼 때 ìœ ìš©í•©ë‹ˆë‹¤." #: src/settings_translation_file.cpp -#, fuzzy msgid "Maximum simultaneous block sends per client" msgstr "í´ë¼ì´ì–¸íЏ 당 최대 ë™ì‹œ ë¸”ë¡ ì „ì†¡" @@ -5382,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" @@ -5419,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" @@ -5444,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" @@ -5514,14 +5403,6 @@ 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 "" @@ -5547,10 +5428,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "시차 êµí•© ë°˜ë³µì˜ ìˆ˜" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5576,37 +5453,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5665,15 +5511,24 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5690,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." @@ -5710,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." @@ -5736,7 +5587,6 @@ msgid "Profiler toggle key" msgstr "프로파ì¼ëŸ¬ í† ê¸€ 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Profiling" msgstr "프로 파ì¼ë§" @@ -5766,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 "ìž„ì˜ ìž…ë ¥" @@ -5784,7 +5632,6 @@ msgid "Recent Chat Messages" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Regular font path" msgstr "ë³´ê³ ì„œ 경로" @@ -5803,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 "ë³´ê³ ì„œ 경로" @@ -5831,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" @@ -5848,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 "롤백 ë ˆì½”ë”©" @@ -5907,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 "디스í¬ì— í´ë¼ì´ì–¸íЏì—서 ë°›ì€ ë§µì„ ì €ìž¥ 합니다." @@ -5959,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." @@ -5976,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 참조" @@ -5993,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" @@ -6084,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." @@ -6093,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." @@ -6115,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" @@ -6124,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." @@ -6149,11 +5973,23 @@ 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 "서버닫힘 메시지" @@ -6179,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" @@ -6204,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." @@ -6228,7 +6062,6 @@ msgid "Sneak key" msgstr "살금살금걷기 키" #: src/settings_translation_file.cpp -#, fuzzy msgid "Sneaking speed" msgstr "걷는 ì†ë„" @@ -6241,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 "" @@ -6281,24 +6112,18 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6336,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 "" @@ -6397,15 +6217,18 @@ 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" "when calling `/profiler save [format]` without format." 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 "" @@ -6439,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 "" @@ -6459,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 @@ -6486,15 +6309,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6513,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 "시간 ì „ì†¡ 간격" @@ -6533,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 "" "메모리ì—서 사용 하지 않는 ë§µ ë°ì´í„°ë¥¼ ì œê±°í•˜ê¸° 위해 í´ë¼ì´ì–¸íŠ¸ì— ëŒ€í•œ 시간 ì œ" @@ -6550,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 "터치임계값 (픽셀)" @@ -6573,7 +6397,6 @@ msgid "Trilinear filtering" msgstr "삼중 ì„ í˜• í•„í„°ë§" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6592,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)" @@ -6606,7 +6428,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Unlimited player transfer distance" msgstr "ë¬´ì œí•œ í”Œë ˆì´ì–´ ì „ì†¡ 거리" @@ -6631,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 "ê°ë„ì— ë”°ë¼ í…스처를 ë³¼ 때 ì´ë°©ì„± í•„í„°ë§ì„ 사용 합니다." @@ -6647,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 "삼중 ì„ í˜• í•„í„°ë§ì€ ì§ˆê° ìŠ¤ì¼€ì¼ë§ì„ í• ë•Œ 사용 합니다." @@ -6656,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 "계곡 경사" @@ -6690,7 +6515,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Variation of number of caves." -msgstr "" +msgstr "ìˆ«ìž ì˜ ë§ˆìš°ìŠ¤ ì„¤ì •." #: src/settings_translation_file.cpp msgid "" @@ -6709,7 +6534,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy msgid "Varies steepness of cliffs." msgstr "ì‚°ì˜ ë†’ì´/경사를 ì¡°ì ˆ." @@ -6726,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" @@ -6762,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." @@ -6800,7 +6619,6 @@ msgid "Water surface level of the world." msgstr "ì›”ë“œì˜ ë¬¼ 표면 높ì´." #: src/settings_translation_file.cpp -#, fuzzy msgid "Waving Nodes" msgstr "움ì§ì´ëŠ” Node" @@ -6809,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 "물결 길ì´" @@ -6833,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 "" @@ -6852,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" @@ -6864,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 "" @@ -6879,6 +6696,12 @@ msgid "" 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 "" @@ -6916,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’†ë¼ì¸ì˜ 너비" @@ -6943,9 +6764,8 @@ msgstr "" "주 메뉴ì—서 시작 하는 경우 í•„ìš” 하지 않습니다." #: src/settings_translation_file.cpp -#, fuzzy msgid "World start time" -msgstr "세계 ì´ë¦„" +msgstr "세계 시작 시간" #: src/settings_translation_file.cpp msgid "" @@ -6962,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 "" @@ -7009,6 +6828,24 @@ 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 "" @@ -7020,57 +6857,207 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ 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 "Select Package File:" -#~ msgstr "ì„ íƒí•œ 모드 파ì¼:" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 를(ì„) 다운로드중입니다. ê¸°ë‹¤ë ¤ì£¼ì„¸ìš”..." -#~ msgid "Waving Water" -#~ msgstr "물결 효과" +#~ msgid "Enable VBO" +#~ msgstr "VBO ì ìš©" -#~ msgid "Waving water" -#~ msgstr "물결 효과" +#~ 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 "This font will be used for certain languages." -#~ msgstr "ì´ ê¸€ê¼´ì€ íŠ¹ì • ì–¸ì–´ì— ì‚¬ìš© ë©ë‹ˆë‹¤." +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "글꼴 ê·¸ë¦¼ìž íˆ¬ëª…ë„ (불투명 함, 0ê³¼ 255 사ì´)." -#~ msgid "Shadow limit" -#~ msgstr "ê·¸ë¦¼ìž ì œí•œ" +#~ msgid "Gamma" +#~ msgstr "ê°ë§ˆ" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "TrueTypeFont ë˜ëŠ” ë¹„íŠ¸ë§µì˜ ê²½ë¡œìž…ë‹ˆë‹¤." +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal maps ìƒì„±" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normalmaps ìƒì„±" #, fuzzy #~ msgid "Lava depth" #~ msgstr "í° ë™êµ´ 깊ì´" -#~ msgid "Gamma" -#~ msgstr "ê°ë§ˆ" +#~ msgid "Main" +#~ msgstr "ë©”ì¸" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "글꼴 ê·¸ë¦¼ìž íˆ¬ëª…ë„ (불투명 함, 0ê³¼ 255 사ì´)." +#~ msgid "Main menu style" +#~ msgstr "주 메뉴 스í¬ë¦½íЏ" -#~ msgid "Enable VBO" -#~ msgstr "VBO ì ìš©" +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "ë ˆì´ë” ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 2ë°° 확대" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "í„°ë„ ë„ˆë¹„ë¥¼ ì¡°ì ˆ, ìž‘ì€ ìˆ˜ì¹˜ëŠ” ë„“ì€ í„°ë„ì„ ë§Œë“니다." +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "ë ˆì´ë” ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 4ë°° 확대" -#~ msgid "Path to save screenshots at." -#~ msgstr "스í¬ë¦°ìƒ· ì €ìž¥ 경로입니다." +#~ 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 "Path to save screenshots at." +#~ msgstr "스í¬ë¦°ìƒ· ì €ìž¥ 경로입니다." + +#~ msgid "Reset singleplayer world" +#~ msgstr "싱글 í”Œë ˆì´ì–´ 월드 초기화" + #, fuzzy -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 를(ì„) 다운로드중입니다. ê¸°ë‹¤ë ¤ì£¼ì„¸ìš”..." +#~ msgid "Select Package File:" +#~ msgstr "ì„ íƒí•œ 모드 파ì¼:" -#~ msgid "Back" -#~ msgstr "뒤로" +#~ msgid "Shadow limit" +#~ msgstr "ê·¸ë¦¼ìž ì œí•œ" -#~ msgid "Ok" -#~ 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 1d4de9d90..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-06-13 23:17+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 <mk939@ymail.com>\n" "Language-Team: Kyrgyz <https://hosted.weblate.org/projects/minetest/minetest/" @@ -49,10 +49,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 "" @@ -66,10 +62,6 @@ 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 "" @@ -77,7 +69,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 @@ -87,7 +80,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 "көз карандылыктары:" @@ -166,15 +160,55 @@ 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 #, 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 "" @@ -199,6 +233,14 @@ 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" msgstr "" @@ -212,8 +254,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 @@ -229,7 +286,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 @@ -528,6 +589,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" msgstr "Дүйнөнү тандаңыз:" @@ -651,6 +716,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 "" @@ -706,6 +783,17 @@ msgid "Credits" msgstr "Ðлкыштар" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Дүйнөнү тандаңыз:" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -722,14 +810,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 "Убалды күйгүзүү" @@ -747,8 +831,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" @@ -760,6 +844,11 @@ msgstr "" #: builtin/mainmenu/tab_local.lua #, fuzzy +msgid "Password" +msgstr "Жаңы ÑырÑөз" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Play Game" msgstr "Оюнду баштоо/туташуу" @@ -768,6 +857,11 @@ msgid "Port" msgstr "" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Дүйнөнү тандаңыз:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Дүйнөнү тандаңыз:" @@ -785,26 +879,26 @@ 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 #, fuzzy msgid "Creative mode" msgstr "Жаратуу режими" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Damage enabled" msgstr "күйгүзүлгөн" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Del. Favorite" msgstr "Тандалмалар:" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua #, fuzzy msgid "Favorite" msgstr "Тандалмалар:" @@ -814,17 +908,17 @@ msgstr "Тандалмалар:" msgid "Join Game" msgstr "Оюн" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua #, fuzzy 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 #, fuzzy msgid "PvP enabled" msgstr "күйгүзүлгөн" @@ -856,11 +950,6 @@ msgid "Antialiasing:" msgstr "" #: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Are you sure to reset your singleplayer world?" -msgstr "Бир кишилик" - -#: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -869,11 +958,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "ÐкиÑызык чыпкалооÑу" -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Bump Mapping" -msgstr "Mip-текÑтуралоо" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp #, fuzzy msgid "Change Keys" @@ -890,10 +974,6 @@ msgid "Fancy Leaves" msgstr "Күңүрт Ñуу" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Mipmap" msgstr "Mip-текÑтуралоо" @@ -903,10 +983,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Жок" - -#: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "No Filter" msgstr "ÐÐ½Ð¸Ð·Ð°Ñ‚Ñ€Ð¾Ð¿Ð¸Ñ Ñ‡Ñ‹Ð¿ÐºÐ°Ð»Ð¾Ð¾Ñу" @@ -940,10 +1016,6 @@ msgstr "Күңүрт Ñуу" msgid "Opaque Water" msgstr "Күңүрт Ñуу" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - #: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Particles" @@ -951,11 +1023,6 @@ msgstr "Баарын күйгүзүү" #: builtin/mainmenu/tab_settings.lua #, fuzzy -msgid "Reset singleplayer world" -msgstr "Бир кишилик" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy msgid "Screen:" msgstr "Тез Ñүрөт" @@ -968,6 +1035,10 @@ msgid "Shaders" msgstr "Көлөкөлөгүчтөр" #: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -1018,25 +1089,6 @@ msgstr "Кооз бактар" msgid "Waving Plants" msgstr "Кооз бактар" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ооба" - -#: builtin/mainmenu/tab_simple_main.lua -#, fuzzy -msgid "Config mods" -msgstr "ЫраÑтоо" - -#: builtin/mainmenu/tab_simple_main.lua -#, fuzzy -msgid "Main" -msgstr "Башкы меню" - -#: builtin/mainmenu/tab_simple_main.lua -#, fuzzy -msgid "Start Singleplayer" -msgstr "Бир кишилик" - #: src/client/client.cpp #, fuzzy msgid "Connection timed out." @@ -1210,13 +1262,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1359,34 +1411,6 @@ 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 "" @@ -1788,6 +1812,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 "СырÑөздөр дал келген жок!" @@ -2044,12 +2086,6 @@ msgid "" 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 "" @@ -2157,6 +2193,10 @@ 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 "" @@ -2396,11 +2436,6 @@ msgid "Builtin" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Bumpmapping" -msgstr "Mip-текÑтуралоо" - -#: 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" @@ -2471,16 +2506,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2646,6 +2671,10 @@ 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" msgstr "Улантуу" @@ -2705,7 +2734,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 @@ -2713,7 +2744,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 @@ -2815,12 +2848,6 @@ 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 "" @@ -2892,6 +2919,11 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "Оң меню" + +#: src/settings_translation_file.cpp +#, fuzzy msgid "Digging particles" msgstr "Баарын күйгүзүү" @@ -2953,7 +2985,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 @@ -3041,14 +3073,6 @@ 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 "" @@ -3059,18 +3083,6 @@ 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" @@ -3087,12 +3099,6 @@ 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" @@ -3102,7 +3108,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 @@ -3406,10 +3412,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3463,8 +3465,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 "" @@ -3935,6 +3937,10 @@ 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 "" @@ -4016,6 +4022,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4115,6 +4128,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4674,11 +4694,6 @@ 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." msgstr "" @@ -4692,6 +4707,14 @@ 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 "" @@ -4855,7 +4878,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 @@ -4904,6 +4927,13 @@ msgid "" 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 "" @@ -5136,14 +5166,6 @@ 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 "" @@ -5169,10 +5191,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5198,34 +5216,6 @@ msgid "" 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" @@ -5292,6 +5282,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5450,10 +5449,6 @@ msgid "Right key" msgstr "Оң меню" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5712,6 +5707,16 @@ 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 "" @@ -5845,10 +5850,6 @@ 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" @@ -5942,6 +5943,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6000,8 +6005,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 @@ -6027,15 +6032,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6172,6 +6182,17 @@ msgid "" 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 "" @@ -6380,6 +6401,12 @@ msgid "" 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 "" @@ -6503,6 +6530,24 @@ 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 "" @@ -6515,20 +6560,64 @@ msgid "cURL timeout" msgstr "" #, fuzzy -#~ msgid "Toggle Cinematic" -#~ msgstr "Тез баÑууга которуу" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Бир кишилик" + +#~ msgid "Back" +#~ msgstr "Ðртка" #, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Дүйнөнү тандаңыз:" +#~ msgid "Bump Mapping" +#~ msgstr "Mip-текÑтуралоо" #, fuzzy -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Убалды күйгүзүү" +#~ msgid "Bumpmapping" +#~ msgstr "Mip-текÑтуралоо" + +#, fuzzy +#~ msgid "Config mods" +#~ msgstr "ЫраÑтоо" + +#~ msgid "Configure" +#~ msgstr "ЫраÑтоо" #, fuzzy #~ msgid "Enable VBO" #~ msgstr "Баарын күйгүзүү" -#~ msgid "Back" -#~ msgstr "Ðртка" +#, fuzzy +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Убалды күйгүзүү" + +#, fuzzy +#~ msgid "Main" +#~ msgstr "Башкы меню" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Башкы меню" + +#~ msgid "Name/Password" +#~ msgstr "Ðты/ÑырÑөзү" + +#~ msgid "No" +#~ msgstr "Жок" + +#, fuzzy +#~ msgid "Reset singleplayer world" +#~ msgstr "Бир кишилик" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Дүйнөнү тандаңыз:" + +#, fuzzy +#~ msgid "Start Singleplayer" +#~ msgstr "Бир кишилик" + +#, fuzzy +#~ msgid "Toggle Cinematic" +#~ msgstr "Тез баÑууга которуу" + +#~ msgid "Yes" +#~ msgstr "Ооба" diff --git a/po/lt/minetest.po b/po/lt/minetest.po index c4c658629..98bcff78d 100644 --- a/po/lt/minetest.po +++ b/po/lt/minetest.po @@ -2,40 +2,36 @@ msgid "" msgstr "" "Project-Id-Version: Lithuanian (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-05-10 12:32+0000\n" -"Last-Translator: restcoser <restcoser.mail@gmail.com>\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 <kornelitvari@protonmail.com>\n" "Language-Team: Lithuanian <https://hosted.weblate.org/projects/minetest/" "minetest/lt/>\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 -#, fuzzy msgid "You died" -msgstr "JÅ«s numirÄ—te." +msgstr "JÅ«s numirÄ—te" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" 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:" @@ -51,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. " @@ -68,20 +60,15 @@ 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 @@ -89,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į" @@ -111,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 @@ -137,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" @@ -173,15 +154,55 @@ 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 "" @@ -205,6 +226,16 @@ 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" msgstr "Papildiniai" @@ -218,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 @@ -237,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 @@ -277,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 @@ -543,14 +593,16 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy +msgid "Search" +msgstr "IeÅ¡koti" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" -msgstr "Pasirinkite papildinio failÄ…:" +msgstr "Pasirinkite aplankÄ…" #: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy msgid "Select file" -msgstr "Pasirinkite papildinio failÄ…:" +msgstr "Pasirinkite failÄ…" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Show technical names" @@ -639,11 +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 @@ -677,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 "" @@ -687,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 @@ -737,6 +800,17 @@ msgid "Credits" msgstr "PadÄ—kos" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "Ankstesni bendradarbiai" @@ -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" @@ -792,6 +862,11 @@ 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" msgstr "PradÄ—ti žaidimÄ…" @@ -800,6 +875,11 @@ 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" @@ -884,11 +961,6 @@ 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" @@ -915,10 +983,6 @@ msgid "Fancy Leaves" msgstr "Nepermatomi lapai" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -927,10 +991,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ne" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -960,21 +1020,12 @@ 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 "" @@ -987,6 +1038,10 @@ 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,27 +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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" "Numatytas valdymas:\n" -"- WASD: judÄ—ti\n" -"- Tarpas: Å¡okti/lipti\n" -"- Lyg2: leistis/eiti žemyn\n" -"- Q: iÅ¡mesti elementÄ…\n" -"- I: inventorius\n" +"- %s: judÄ—ti į priekį\n" +"- %s: judÄ—ti atgal\n" +"- %s: judÄ—ti į kairÄ™\n" +"- %s: judÄ—ti į deÅ¡inÄ™\n" +"- %s: Å¡okti/lipti\n" +"- %s: leistis/eiti žemyn\n" +"- %s: iÅ¡mesti daiktÄ…\n" +"- %s: inventorius\n" "- PelÄ—: sukti/žiÅ«rÄ—ti\n" "- PelÄ—s kairys: kasti/smugiuoti\n" "- PelÄ—s deÅ¡inys: padÄ—ti/naudoti\n" "- PelÄ—s ratukas: pasirinkti elementÄ…\n" -"- T: kalbÄ—tis\n" +"- %s: kalbÄ—tis\n" #: src/client/game.cpp msgid "Creating client..." @@ -1357,9 +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,34 +1417,6 @@ 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 "" @@ -1812,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!" @@ -2022,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 @@ -2068,12 +2093,6 @@ msgid "" 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 "" @@ -2181,6 +2200,10 @@ 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 "" @@ -2273,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" @@ -2418,10 +2440,6 @@ 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" @@ -2492,16 +2510,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2641,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." @@ -2667,6 +2674,10 @@ 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" msgstr "TÄ™sti" @@ -2726,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 @@ -2734,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 @@ -2838,12 +2853,6 @@ 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 "" @@ -2915,6 +2924,11 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "DeÅ¡inÄ—n" + +#: src/settings_translation_file.cpp +#, fuzzy msgid "Digging particles" msgstr "Ä®jungti visus" @@ -2975,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 @@ -2983,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 @@ -3065,33 +3078,12 @@ 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 "" @@ -3111,12 +3103,6 @@ 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" @@ -3126,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 @@ -3429,10 +3415,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3487,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 "" @@ -3959,6 +3941,10 @@ 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 "" @@ -4040,6 +4026,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4139,6 +4132,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4698,11 +4698,6 @@ 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." msgstr "" @@ -4716,6 +4711,14 @@ 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 "" @@ -4888,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 @@ -4937,6 +4940,13 @@ msgid "" 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 "" @@ -5168,14 +5178,6 @@ 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 "" @@ -5201,10 +5203,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5230,35 +5228,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5325,6 +5294,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5481,10 +5459,6 @@ 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 "" @@ -5746,6 +5720,16 @@ 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 "" @@ -5879,10 +5863,6 @@ 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" @@ -5976,6 +5956,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6034,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 @@ -6061,15 +6045,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6205,6 +6194,17 @@ msgid "" 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 "" @@ -6411,6 +6411,12 @@ msgid "" 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 "" @@ -6534,6 +6540,24 @@ 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 "" @@ -6545,27 +6569,66 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ msgstr "Ä®jungti kinematografinį" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ar tikrai norite perkurti savo lokalų pasaulį?" -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Pasirinkite papildinio failÄ…:" +#~ msgid "Back" +#~ msgstr "Atgal" + +#~ msgid "Config mods" +#~ msgstr "KonfigÅ«ruoti papildinius" + +#~ msgid "Configure" +#~ msgstr "KonfigÅ«ruoti" #, fuzzy -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Leisti sužeidimus" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "AtsiunÄiama $1, praÅ¡ome palaukti..." #, fuzzy #~ msgid "Enable VBO" #~ msgstr "Ä®jungti papildinį" #, fuzzy -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "AtsiunÄiama $1, praÅ¡ome palaukti..." +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Leisti sužeidimus" -#~ msgid "Back" -#~ msgstr "Atgal" +#~ 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 5e63284a3..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-06-13 23:17+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 <TheZeus121@gmail.com>\n" "Language-Team: Latvian <https://hosted.weblate.org/projects/minetest/" "minetest/lv/>\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " "19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -52,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. " @@ -69,12 +65,6 @@ 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." @@ -82,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 @@ -92,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:" @@ -166,14 +158,55 @@ 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 "" @@ -196,6 +229,16 @@ 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" msgstr "Modi" @@ -209,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" @@ -226,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 @@ -267,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" @@ -527,6 +589,10 @@ 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" @@ -643,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" @@ -696,6 +777,17 @@ msgid "Credits" msgstr "PateicÄ«bas" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "BijuÅ¡ie dalÄ«bnieki" @@ -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" @@ -748,6 +836,11 @@ 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" @@ -756,6 +849,11 @@ 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" @@ -833,11 +931,6 @@ 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" @@ -862,10 +951,6 @@ 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â€" @@ -874,10 +959,6 @@ 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,19 +986,11 @@ 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:" @@ -930,6 +1003,11 @@ 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." @@ -1143,20 +1205,20 @@ msgid "Continue" msgstr "TurpinÄt" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1305,34 +1367,6 @@ 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" @@ -1724,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!" @@ -1976,12 +2029,6 @@ msgid "" 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 "" @@ -2088,6 +2135,10 @@ 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 "" @@ -2321,10 +2372,6 @@ 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" @@ -2395,16 +2442,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2556,6 +2593,10 @@ 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 "" @@ -2612,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 @@ -2620,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 @@ -2720,12 +2765,6 @@ 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 "" @@ -2796,6 +2835,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2856,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 @@ -2944,14 +2987,6 @@ 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 "" @@ -2961,18 +2996,6 @@ 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" @@ -2989,12 +3012,6 @@ 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" @@ -3004,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 @@ -3306,10 +3323,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3363,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 "" @@ -3835,6 +3848,10 @@ 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 "" @@ -3915,6 +3932,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4014,6 +4038,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4570,10 +4601,6 @@ 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 "" @@ -4587,6 +4614,14 @@ 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 "" @@ -4750,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 @@ -4799,6 +4834,13 @@ msgid "" 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 "" @@ -5028,14 +5070,6 @@ 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 "" @@ -5061,10 +5095,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5090,34 +5120,6 @@ msgid "" 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" @@ -5183,6 +5185,14 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5340,10 +5350,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5595,6 +5601,16 @@ 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 "" @@ -5724,10 +5740,6 @@ 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" @@ -5821,6 +5833,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5879,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 @@ -5906,15 +5922,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6050,6 +6071,17 @@ msgid "" 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 "" @@ -6252,6 +6284,12 @@ msgid "" 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 "" @@ -6374,6 +6412,24 @@ 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 "" @@ -6385,11 +6441,61 @@ msgstr "" msgid "cURL timeout" msgstr "" +#~ 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 "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 3f343389a..9881f5032 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-06-13 23:17+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 <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -49,14 +49,6 @@ msgstr "" msgid "An error occurred:" msgstr "" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " msgstr "" @@ -105,7 +97,8 @@ msgstr "" msgid "Optional dependencies:" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "" @@ -118,7 +111,8 @@ msgstr "" msgid "Save" msgstr "" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -185,8 +179,55 @@ 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 @@ -194,6 +235,24 @@ msgid "Back to Main Menu" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua +msgid "" +"$1 downloading,\n" +"$2 queued" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "No updates" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Update All [$1]" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "No results" msgstr "" @@ -206,7 +265,7 @@ msgid "Downloading..." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua @@ -218,7 +277,7 @@ msgid "Uninstall" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" +msgid "View more information in a web browser" msgstr "" #: builtin/mainmenu/dlg_create_world.lua @@ -564,6 +623,10 @@ msgid "Select file" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" msgstr "" @@ -627,6 +690,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 "" @@ -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 "" @@ -853,18 +942,6 @@ 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,23 +1001,11 @@ 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 "" @@ -1001,10 +1054,6 @@ msgid "Main Menu" msgstr "" #: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "" @@ -1017,6 +1066,10 @@ msgid "Please choose a name!" msgstr "" #: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." msgstr "" @@ -1174,34 +1227,6 @@ msgid "Automatic forward disabled" msgstr "" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" - -#: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" - -#: src/client/game.cpp msgid "Minimap currently disabled by game or mod" msgstr "" @@ -1292,13 +1317,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1678,6 +1703,24 @@ msgstr "" msgid "OEM Clear" msgstr "" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "" + #: src/gui/guiConfirmRegistration.cpp #, c-format msgid "" @@ -2014,14 +2057,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 @@ -2116,6 +2158,14 @@ msgid "" 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 "" @@ -2195,6 +2245,28 @@ msgid "" 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 "" @@ -2892,6 +2964,16 @@ 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 "" @@ -3045,8 +3127,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 @@ -3093,90 +3180,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Waving Nodes" msgstr "" @@ -3269,11 +3272,11 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "FPS when unfocused or paused" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Maximum FPS when the window is not focused, or when the game is paused." msgstr "" #: src/settings_translation_file.cpp @@ -3446,8 +3449,8 @@ msgid "" "A restart is required after changing this.\n" "Note: On Android, stick with OGLES1 if unsure! App may fail to start " "otherwise.\n" -"On other platforms, OpenGL is recommended, and it’s the only driver with\n" -"shader support currently." +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" #: src/settings_translation_file.cpp @@ -3584,7 +3587,9 @@ msgid "Crosshair color" msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" #: src/settings_translation_file.cpp @@ -3592,7 +3597,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 @@ -3763,6 +3770,12 @@ 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 "" @@ -4345,6 +4358,19 @@ msgid "" 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 "" @@ -4414,7 +4440,7 @@ msgid "Creative" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Enable creative mode for all players" msgstr "" #: src/settings_translation_file.cpp @@ -4777,8 +4803,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 "" @@ -4820,6 +4846,19 @@ 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 "" @@ -4847,6 +4886,16 @@ 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 "" @@ -5200,20 +5249,6 @@ msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" #: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Main menu script" msgstr "" @@ -6324,3 +6359,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 fb3989a3f..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-06-13 23:17+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 <translation@mnh48.moe>\n" "Language-Team: Malay <https://hosted.weblate.org/projects/minetest/minetest/" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -45,11 +45,7 @@ msgstr "Sambung semula" #: builtin/fstk/ui.lua msgid "The server has requested a reconnect:" -msgstr "Pelayan permainan meminta anda untuk menyambung semula:" - -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Sedang memuatkan..." +msgstr "Pelayan meminta anda untuk menyambung semula:" #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " @@ -57,17 +53,11 @@ msgstr "Versi protokol tidak serasi. " #: builtin/mainmenu/common.lua msgid "Server enforces protocol version $1. " -msgstr "Pelayan permainan menguatkuasakan protokol versi $1. " +msgstr "Pelayan menguatkuasakan protokol versi $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "Pelayan permainan menyokong protokol versi $1 hingga $2. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Cuba aktifkan semula senarai pelayan awam dan periksa sambungan internet " -"anda." +msgstr "Pelayan menyokong protokol versi $1 hingga $2. " #: builtin/mainmenu/common.lua msgid "We only support protocol version $1." @@ -77,7 +67,8 @@ msgstr "Kami hanya menyokong protokol versi $1." msgid "We support protocol versions between version $1 and $2." msgstr "Kami menyokong protokol versi $1 hingga $2." -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua #: builtin/mainmenu/dlg_delete_content.lua #: builtin/mainmenu/dlg_delete_world.lua #: builtin/mainmenu/dlg_rename_modpack.lua @@ -87,7 +78,8 @@ msgstr "Kami menyokong protokol versi $1 hingga $2." msgid "Cancel" msgstr "Batal" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua msgid "Dependencies:" msgstr "Kebergantungan:" @@ -161,14 +153,54 @@ msgid "enabled" msgstr "Dibolehkan" #: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "\"$1\" sudah wujud. Adakah anda ingin tulis gantinya?" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "Kebergantungan $1 dan $2 akan dipasangkan." + +#: 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 muat turun,\n" +"$2 menunggu giliran" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 downloading..." +msgstr "$1 memuat turun..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "$1 memerlukan kebergantungan yang tidak dijumpai." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "$1 akan dipasangkan, dan kebergantungan $2 akan dilangkau." + +#: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "Semua pakej" #: builtin/mainmenu/dlg_contentstore.lua +msgid "Already installed" +msgstr "Sudah dipasang" + +#: 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 Asas:" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "ContentDB tidak tersedia apabila Minetest dikompil tanpa cURL" @@ -190,6 +222,14 @@ 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 kebergantungan yang hilang" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Mods" @@ -203,9 +243,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 kemas kini" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Not found" +msgstr "Tidak dijumpai" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Overwrite" +msgstr "Tulis ganti" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Please check that the base game is correct." +msgstr "Sila semak dan pastikan permainan asas itu betul." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Queued" +msgstr "Menunggu giliran" #: builtin/mainmenu/dlg_contentstore.lua msgid "Texture packs" @@ -220,8 +275,12 @@ msgid "Update" msgstr "Kemas kini" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "Lihat" +msgid "Update All [$1]" +msgstr "Kemas Kini Semua [$1]" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "View more information in a web browser" +msgstr "Lihat maklumat lanjut dalam pelayar sesawang" #: builtin/mainmenu/dlg_create_world.lua msgid "A world named \"$1\" already exists" @@ -519,6 +578,10 @@ msgid "Scale" msgstr "Skala" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Cari" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "Pilih direktori" @@ -633,6 +696,21 @@ msgstr "Gagal memasang mods sebagai $1" msgid "Unable to install a modpack as a $1" msgstr "Gagal memasang pek mods sebagai $1" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Sedang memuatkan..." + +#: builtin/mainmenu/serverlistmgr.lua +#, fuzzy +msgid "Public server list is disabled" +msgstr "Skrip pihak klien dilumpuhkan" + +#: builtin/mainmenu/serverlistmgr.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Cuba aktifkan semula senarai pelayan awam dan periksa sambungan internet " +"anda." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "Layari kandungan dalam talian" @@ -686,6 +764,18 @@ msgid "Credits" msgstr "Penghargaan" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "Buka Direktori Data Pengguna" + +#: 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 mengandungi dunia, permainan, mods, dan pek\n" +"tekstur yang disediakan oleh pengguna, dalam pengurus / pelayar fail." + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Penyumbang Terdahulu" @@ -702,14 +792,10 @@ msgid "Bind Address" msgstr "Alamat Ikatan" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurasi" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Mod Kreatif" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Boleh Cedera" @@ -726,8 +812,8 @@ msgid "Install games from ContentDB" msgstr "Pasangkan permainan daripada ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Nama/Kata laluan" +msgid "Name" +msgstr "Nama" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -738,6 +824,10 @@ msgid "No world created or selected!" msgstr "Tiada dunia dicipta atau dipilih!" #: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "Kata Laluan" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "Mula Main" @@ -746,6 +836,10 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Pilih Mods" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Pilih Dunia:" @@ -761,23 +855,23 @@ msgstr "Mulakan Permainan" msgid "Address / Port" msgstr "Alamat / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Sambung" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Mod Kreatif" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Boleh Cedera" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Padam Kegemaran" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Kegemaran" @@ -785,16 +879,16 @@ msgstr "Kegemaran" msgid "Join Game" msgstr "Sertai Permainan" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Nama / Kata laluan" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Ping" msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "PvP enabled" msgstr "Boleh Berlawan PvP" @@ -823,10 +917,6 @@ msgid "Antialiasing:" msgstr "Antialias:" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Adakah anda mahu set semula dunia pemain perseorangan?" - -#: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "Autosimpan Saiz Skrin" @@ -834,10 +924,6 @@ msgstr "Autosimpan Saiz Skrin" msgid "Bilinear Filter" msgstr "Penapisan Bilinear" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Pemetaan Benggol" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Tukar Kekunci" @@ -851,10 +937,6 @@ msgid "Fancy Leaves" msgstr "Daun Beragam" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Jana Peta Normal" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Peta Mip" @@ -863,10 +945,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Peta Mip + Penapisan Aniso" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Tidak" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Tiada Tapisan" @@ -894,19 +972,11 @@ msgstr "Daun Legap" msgid "Opaque Water" msgstr "Air Legap" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Oklusi Paralaks" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partikel" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Set semula dunia pemain perseorangan" - -#: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Skrin:" @@ -919,6 +989,10 @@ msgid "Shaders" msgstr "Pembayang" #: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Pembayang (dalam ujikaji)" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Pembayang (tidak tersedia)" @@ -962,22 +1036,6 @@ msgstr "Cecair Bergelora" msgid "Waving Plants" msgstr "Tumbuhan Bergoyang" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ya" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Konfigurasi mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Utama" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Mula Main Seorang" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Sambungan tamat tempoh." @@ -1140,28 +1198,28 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" -"Kawalan:\n" +"Controls:\n" "- %s: bergerak ke depan\n" "- %s: bergerak ke belakang\n" "- %s: bergerak ke kiri\n" "- %s: bergerak ke kanan\n" "- %s: lompat/naik atas\n" +"- %s: gali/ketuk\n" +"- %s: letak/guna\n" "- %s: selinap/turun bawah\n" "- %s: jatuhkan item\n" "- %s: inventori\n" "- Tetikus: pusing/lihat sekeliling\n" -"- Tetikus kiri: gali/ketuk\n" -"- Tetikus kanan: letak/guna\n" "- Roda tetikus: pilih item\n" "- %s: sembang\n" @@ -1296,34 +1354,6 @@ msgid "Minimap currently disabled by game or mod" msgstr "Peta mini dilumpuhkan oleh permainan atau mods" #: src/client/game.cpp -msgid "Minimap hidden" -msgstr "Peta mini disembunyikan" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "Peta mini dalam mod radar, Zum 1x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "Peta mini dalam mod radar, Zum 2x" - -#: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "Peta mini dalam mod radar, Zum 4x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "Peta mini dalam mod permukaan, Zum 1x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "Peta mini dalam mod permukaan, Zum 2x" - -#: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "Peta mini dalam mod permukaan, Zum 4x" - -#: src/client/game.cpp msgid "Noclip mode disabled" msgstr "Mod tembus blok dilumpuhkan" @@ -1715,6 +1745,24 @@ msgstr "Butang 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 dalam mod radar, Zum x%d" + +#: src/client/minimap.cpp +#, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "Peta mini dalam mod permukaan, Zum x%d" + +#: src/client/minimap.cpp +msgid "Minimap in texture mode" +msgstr "Peta mini dalam mod tekstur" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "Kata laluan tidak padan!" @@ -1987,14 +2035,6 @@ msgstr "" "tetapkan kesemua 3 nombor yang sama untuk bentuk mentah." #: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = oklusi paralaks dengan maklumat cerun (lebih cepat).\n" -"1 = pemetaan bentuk muka bumi (lebih lambat, lebih tepat)." - -#: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "Hingar 2D yang mengawal bentuk/saiz gunung rabung." @@ -2120,12 +2160,16 @@ msgid "ABM interval" msgstr "Selang masa ABM" #: src/settings_translation_file.cpp +msgid "ABM time budget" +msgstr "Peruntukan masa ABM" + +#: src/settings_translation_file.cpp msgid "Absolute limit of queued blocks to emerge" -msgstr "Had mutlak untuk blok dibarisgilirkan untuk timbul" +msgstr "Had mutlak untuk blok menunggu giliran untuk timbul" #: src/settings_translation_file.cpp msgid "Acceleration in air" -msgstr "Pecutan dalam udara" +msgstr "Pecutan di udara" #: src/settings_translation_file.cpp msgid "Acceleration of gravity, in nodes per second per second." @@ -2154,7 +2198,7 @@ msgid "" "Note that the address field in the main menu overrides this setting." msgstr "" "Alamat untuk menyambung.\n" -"Biar kosong untuk memulakan pelayan permainan tempatan.\n" +"Biar kosong untuk memulakan pelayan tempatan.\n" "Ambil perhatian bahawa medan alamat dalam menu utama mengatasi tetapan ini." #: src/settings_translation_file.cpp @@ -2225,11 +2269,11 @@ msgstr "Penapisan anisotropik" #: src/settings_translation_file.cpp msgid "Announce server" -msgstr "Mengumumkan pelayan permainan" +msgstr "Umumkan pelayan" #: src/settings_translation_file.cpp msgid "Announce to this serverlist." -msgstr "Mengumumkan ke senarai pelayan ini." +msgstr "Umumkan ke senarai pelayan ini." #: src/settings_translation_file.cpp msgid "Append item name" @@ -2277,8 +2321,8 @@ msgstr "" "akan dihantar kepada klien.\n" "Nilai lebih kecil berkemungkinan boleh meningkatkan prestasi dengan banyak,\n" "dengan mengorbankan glic penerjemahan tampak (sesetengah blok tidak akan\n" -"diterjemah di bawah air dan dalam gua, kekadang turut berlaku atas daratan)." -"\n" +"diterjemah di bawah air dan dalam gua, kekadang turut berlaku atas " +"daratan).\n" "Menetapkan nilai ini lebih bear daripada nilai max_block_send_distance akan\n" "melumpuhkan pengoptimunan ini.\n" "Nyatakan dalam unit blokpeta (16 nod)." @@ -2380,10 +2424,6 @@ msgid "Builtin" msgstr "Terbina dalam" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Pemetaan timbul" - -#: 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" @@ -2461,22 +2501,6 @@ msgstr "" "Di mana 0.0 ialah aras cahaya minimum, 1.0 ialah maksimum." #: src/settings_translation_file.cpp -msgid "" -"Changes the main menu UI:\n" -"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, " -"etc.\n" -"- Simple: One singleplayer world, no game or texture pack choosers. May " -"be\n" -"necessary for smaller screens." -msgstr "" -"Mengubah antara muka menu utama:\n" -"- Penuh: Banyak dunia pemain perseorangan, pilihan permainan, pek " -"tekstur, dll.\n" -"- Mudah: Satu dunia pemain perseorangan, tiada pilihan permainan atau pek " -"tekstur.\n" -"Mungkin diperlukan untuk skrin yang lebih kecil." - -#: src/settings_translation_file.cpp msgid "Chat font size" msgstr "Saiz fon sembang" @@ -2643,6 +2667,10 @@ msgid "ContentDB Flag Blacklist" msgstr "Senarai Hitam Bendera ContentDB" #: src/settings_translation_file.cpp +msgid "ContentDB Max Concurrent Downloads" +msgstr "Muat Turun Serempak Maksimum ContentDB" + +#: src/settings_translation_file.cpp msgid "ContentDB URL" msgstr "URL ContentDB" @@ -2709,16 +2737,24 @@ msgid "Crosshair alpha" msgstr "Nilai alfa rerambut silang" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Nilai alfa rerambut silang (kelegapan, antara 0 dan 255)." +msgid "" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "" +"Nilai alfa rerambut silang (kelegapan, antara 0 dan 255).\n" +"Juga mengawal warna rerambut silang objek" #: src/settings_translation_file.cpp msgid "Crosshair color" msgstr "Warna rerambut silang" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Warna bagi kursor rerambut silang (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" +"Warna rerambut silang (R,G,B).\n" +"Juga mengawal warna rerambut silang objek" #: src/settings_translation_file.cpp msgid "DPI" @@ -2823,14 +2859,6 @@ msgid "Defines location and terrain of optional hills and lakes." msgstr "Mentakrifkan kedudukan dan rupa bumi bukit dan tasik pilihan." #: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Mentakrifkan tahap persampelan tekstur.\n" -"Nilai lebih tinggi menghasilakn peta normal lebih lembut." - -#: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "Mentakrifkan aras tanah asas." @@ -2891,8 +2919,8 @@ msgid "" "Description of server, to be displayed when players join and in the " "serverlist." msgstr "" -"Perihal pelayan permainan, untuk dipaparkan apabila pemain masuk dan juga " -"dalam senarai pelayan." +"Perihal pelayan, untuk dipaparkan apabila pemain masuk dan juga dalam " +"senarai pelayan." #: src/settings_translation_file.cpp msgid "Desert noise threshold" @@ -2911,6 +2939,10 @@ msgid "Desynchronize block animation" msgstr "Menyahsegerakkan animasi blok" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Kekunci gali" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Partikel ketika menggali" @@ -2924,9 +2956,7 @@ msgstr "Menolak kata laluan kosong" #: src/settings_translation_file.cpp msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" -"Nama domain pelayan permainan, untuk dipaparkan dalam senarai pelayan " -"permainan." +msgstr "Nama domain pelayan, untuk dipaparkan dalam senarai pelayan." #: src/settings_translation_file.cpp msgid "Double tap jump for fly" @@ -2978,7 +3008,8 @@ msgid "Enable console window" msgstr "Membolehkan tetingkap konsol" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +#, fuzzy +msgid "Enable creative mode for all players" msgstr "Membolehkan mod kreatif untuk peta baru dicipta." #: src/settings_translation_file.cpp @@ -3091,18 +3122,6 @@ msgid "Enables animation of inventory items." msgstr "Membolehkan animasi item dalam inventori." #: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Membolehkan pemetaan timbul pada tekstur. Peta normal perlu disediakan oleh " -"pek\n" -"tekstur atau perlu dijana secara automatik.\n" -"Perlukan pembayang dibolehkan." - -#: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Membolehkan pengagregatan jejaring yang diputar di paksi Y (facedir)." @@ -3112,22 +3131,6 @@ msgstr "Membolehkan peta mini." #: src/settings_translation_file.cpp msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Membolehkan penjanaan peta normal secara layang (Kesan cetak timbul).\n" -"Perlukan pemetaan timbul untuk dibolehkan." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Membolehkan pemetaan oklusi paralaks.\n" -"Memerlukan pembayang untuk dibolehkan." - -#: src/settings_translation_file.cpp -msgid "" "Enables the sound system.\n" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3148,14 +3151,6 @@ msgstr "Kaedah entiti" #: src/settings_translation_file.cpp msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Pilihan percubaan, mungkin menampakkan ruang yang nyata di\n" -"antara blok apabila ditetapkan dengan nombor lebih besar daripada 0." - -#: src/settings_translation_file.cpp -msgid "" "Exponent of the floatland tapering. Alters the tapering behaviour.\n" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3171,8 +3166,8 @@ msgstr "" "bahagian tanah yang lebih rata, sesuai untuk lapisan tanah terapung pejal." #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS di menu jeda" +msgid "FPS when unfocused or paused" +msgstr "Bingkai per saat (FPS) apabila permainan hilang fokus atau dijedakan" #: src/settings_translation_file.cpp msgid "FSAA" @@ -3224,8 +3219,7 @@ msgid "" "This requires the \"fast\" privilege on the server." msgstr "" "Bergerak pantas (dengan kekunci \"istimewa\").\n" -"Ini memerlukan keistimewaan \"pergerakan pantas\" dalam pelayan permainan " -"tersebut." +"Ini memerlukan keistimewaan \"pergerakan pantas\" dalam pelayan tersebut." #: src/settings_translation_file.cpp msgid "Field of view" @@ -3241,9 +3235,8 @@ msgid "" "the\n" "Multiplayer Tab." msgstr "" -"Fail dalam laluan client/serverlist/ yang mengandungi senarai pelayan " -"kegemaran\n" -"yang dipaparkan dalam Tab Pemain Ramai." +"Fail dalam laluan client/serverlist/ yang mengandungi senarai\n" +"pelayan kegemaran yang dipaparkan dalam Tab Pemain Ramai." #: src/settings_translation_file.cpp msgid "Filler depth" @@ -3363,15 +3356,15 @@ msgstr "Saiz fon" #: src/settings_translation_file.cpp msgid "Font size of the default font in point (pt)." -msgstr "Saiz fon bagi fon lalai dalan unit poin (pt)." +msgstr "Saiz fon bagi fon lalai dalan unit titik (pt)." #: src/settings_translation_file.cpp msgid "Font size of the fallback font in point (pt)." -msgstr "Saiz fon bagi fon berbalik dalam unit poin (pt)." +msgstr "Saiz fon bagi fon berbalik dalam unit titik (pt)." #: src/settings_translation_file.cpp msgid "Font size of the monospace font in point (pt)." -msgstr "Saiz fon bagi fon monospace dalam unit poin (pt)." +msgstr "Saiz fon bagi fon monospace dalam unit titik (pt)." #: src/settings_translation_file.cpp msgid "" @@ -3508,10 +3501,6 @@ msgid "GUI scaling filter txr2img" msgstr "Penapis skala GUI txr2img" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Jana peta normal" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Panggil balik sejagat" @@ -3573,16 +3562,15 @@ msgstr "Kekunci menogol papar pandu (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 "" "Cara pengendalian panggilan API Lua yang terkecam:\n" -"- legacy: (cuba untuk) meniru tingkah laku yang lama (lalai untuk " -"terbitan).\n" -"- log: meniru dan menulis log runut balik kesemua panggilan terkecam " -"(lalai untuk nyahpepijat).\n" -"- error: gugurkan penggunaan panggilan terkecam (dicadangkan untuk " +"- none: Jangan log panggilan terkecam\n" +"- log: meniru dan menulis log runut balik bagi panggilan terkecam " +"(lalai).\n" +"- error: gugurkan penggunaan panggilan terkecam (digalakkan untuk " "pembangun mods)." #: src/settings_translation_file.cpp @@ -3649,9 +3637,7 @@ msgstr "Hingar kebukitan4" #: src/settings_translation_file.cpp msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" -"Laman utama pelayan permainan, untuk dipaparkan dalam senarai pelayan " -"permainan." +msgstr "Laman utama pelayan, untuk dipaparkan dalam senarai pelayan." #: src/settings_translation_file.cpp msgid "" @@ -3899,7 +3885,7 @@ msgid "" msgstr "" "Jika dibolehkan bersama mod terbang, pemain boleh terbang menerusi nod " "pepejal.\n" -"Ini memerlukan keistimewaan \"tembus blok\" dalam pelayan permainan tersebut." +"Ini memerlukan keistimewaan \"tembus blok\" dalam pelayan tersebut." #: src/settings_translation_file.cpp msgid "" @@ -3995,7 +3981,7 @@ msgstr "Dalam Permainan" #: src/settings_translation_file.cpp msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." msgstr "" -"Nilai alfa latar belakang konsol sembang dalam permainan (kelehapan, antara " +"Nilai alfa latar belakang konsol sembang dalam permainan (kelegapan, antara " "0 dan 255)." #: src/settings_translation_file.cpp @@ -4117,6 +4103,10 @@ msgid "Joystick button repetition interval" msgstr "Selang masa pengulangan butang kayu bedik" #: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "Zon mati kayu bedik" + +#: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Kepekaan frustum kayu bedik" @@ -4220,6 +4210,16 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Kekunci untuk menggali.\n" +"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4362,6 +4362,16 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Kekunci untuk meletak.\n" +"Lihat 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" @@ -4943,7 +4953,7 @@ msgid "" "- Opaque: disable transparency" msgstr "" "Gaya daun:\n" -"- Beragam: semua susu kelihatan\n" +"- Beragam: semua sisi kelihatan\n" "- Ringkas: hanya sisi luar kelihatan, jika special_tiles yang ditentukan " "digunakan\n" "- Legap: melumpuhkan lut sinar" @@ -5110,10 +5120,6 @@ 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." msgstr "" @@ -5130,6 +5136,14 @@ msgid "Makes all liquids opaque" msgstr "Buatkan semua cecair menjadi legap" #: src/settings_translation_file.cpp +msgid "Map Compression Level for Disk Storage" +msgstr "Tahap Pemampatan Peta untuk Simpanan Cakera" + +#: src/settings_translation_file.cpp +msgid "Map Compression Level for Network Transfer" +msgstr "Tahap Pemampatan Peta untuk Pemindahan Rangkaian" + +#: src/settings_translation_file.cpp msgid "Map directory" msgstr "Direktori peta" @@ -5312,8 +5326,10 @@ msgid "Maximum FPS" msgstr "FPS maksima" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Bingkai per saat (FPS) maksima apabila permainan dijedakan." +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "" +"Bingkai per saat (FPS) maksimum apabila tetingkap tidak difokuskan, atau " +"apabila permainan dijedakan." #: src/settings_translation_file.cpp msgid "Maximum forceloaded blocks" @@ -5351,14 +5367,14 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Maximum number of blocks that can be queued for loading." -msgstr "Jumlah maksimum blok yang boleh dibaris gilirkan untuk dimuatkan." +msgstr "Jumlah maksimum blok yang boleh menunggu giliran untuk dimuatkan." #: 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 "" -"Jumlah maksimum blok untuk dibarisgilirkan untuk dijana.\n" +"Jumlah maksimum blok untuk menunggu giliran untuk dijana.\n" "Had ini dikuatkuasakan per pemain." #: src/settings_translation_file.cpp @@ -5366,10 +5382,20 @@ msgid "" "Maximum number of blocks to be queued that are to be loaded from file.\n" "This limit is enforced per player." msgstr "" -"Jumlah maksimum blok untuk dibarisgilirkan untuk dimuatkan daripada fail.\n" +"Jumlah maksimum blok untuk menunggu giliran untuk dimuatkan daripada fail.\n" "Had ini dikuatkuasakan per pemain." #: src/settings_translation_file.cpp +msgid "" +"Maximum number of concurrent downloads. Downloads exceeding this limit will " +"be queued.\n" +"This should be lower than curl_parallel_limit." +msgstr "" +"Jumlah maksimum muat turun serempak. Muat turun melebihi had ini akan " +"ditunggu giliran.\n" +"Ini mestilah lebih rendah dari curl_parallel_limit." + +#: src/settings_translation_file.cpp msgid "Maximum number of forceloaded mapblocks." msgstr "Jumlah maksimum blokpeta yang dipaksa muat." @@ -5378,7 +5404,7 @@ msgid "" "Maximum number of mapblocks for client to be kept in memory.\n" "Set to -1 for unlimited amount." msgstr "" -"Jumlah peta blok maksima yang klien boleh simpan dalam memori.\n" +"Jumlah blok peta maksimum yang klien boleh simpan dalam memori.\n" "Tetapkan kepada -1 untuk jumlah tanpa had." #: src/settings_translation_file.cpp @@ -5582,8 +5608,8 @@ msgstr "" msgid "" "Name of the server, to be displayed when players join and in the serverlist." msgstr "" -"Nama pelayan permainan, untuk dipaparkan apabila pemain masuk dan juga dalam " -"senarai pelayan." +"Nama pelayan, untuk dipaparkan apabila pemain masuk dan juga dalam senarai " +"pelayan." #: src/settings_translation_file.cpp msgid "Near plane" @@ -5626,14 +5652,6 @@ msgid "Noises" msgstr "Hingar" #: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Persampelan peta normal" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Kekuatan peta normal" - -#: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Jumlah jalur keluar" @@ -5677,10 +5695,6 @@ msgstr "" "dan penggunaan memori (Kebiasaannya, 4096=100MB)." #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Jumlah lelaran oklusi paralaks." - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "Repositori Kandungan Dalam Talian" @@ -5708,35 +5722,6 @@ msgstr "" "Tidak jeda jika formspec dibuka." #: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" -"Pengaruh kesan oklusi paralaks pada keseluruhannya, kebiasaannya skala/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Skala keseluruhan kesan oklusi paralaks." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Pengaruh oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Lelaran oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Mod oklusi paralaks" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "Skala oklusi paralaks" - -#: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5822,12 +5807,20 @@ msgid "Pitch move mode" msgstr "Mod pergerakan pic" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "Kekunci letak" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "Selang pengulangan perbuatan letak" + +#: 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 "" "Pemain boleh terbang tanpa terkesan dengan graviti.\n" -"Ini memerlukan keistimewaan \"terbang\" dalam pelayan permainan tersebut." +"Ini memerlukan keistimewaan \"terbang\" dalam pelayan tersebut." #: src/settings_translation_file.cpp msgid "Player name" @@ -6012,10 +6005,6 @@ msgid "Right key" msgstr "Kekunci ke kanan" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Selang pengulangan klik kanan" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Kedalaman saluran sungai" @@ -6073,7 +6062,7 @@ msgstr "Simpan saiz tetingkap secara automatik ketika diubah." #: src/settings_translation_file.cpp msgid "Saving map received from server" -msgstr "Simpan peta diterima dari pelayan permainan" +msgstr "Simpan peta diterima dari pelayan" #: src/settings_translation_file.cpp msgid "" @@ -6197,27 +6186,27 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Server / Singleplayer" -msgstr "Pelayan permainan / Pemain perseorangan" +msgstr "Pelayan / Pemain perseorangan" #: src/settings_translation_file.cpp msgid "Server URL" -msgstr "URL pelayan permainan" +msgstr "URL pelayan" #: src/settings_translation_file.cpp msgid "Server address" -msgstr "Alamat pelayan permainan" +msgstr "Alamat pelayan" #: src/settings_translation_file.cpp msgid "Server description" -msgstr "Perihal pelayan permainan" +msgstr "Perihal pelayan" #: src/settings_translation_file.cpp msgid "Server name" -msgstr "Nama pelayan permainan" +msgstr "Nama pelayan" #: src/settings_translation_file.cpp msgid "Server port" -msgstr "Port pelayan permainan" +msgstr "Port pelayan" #: src/settings_translation_file.cpp msgid "Server side occlusion culling" @@ -6256,15 +6245,15 @@ msgid "" "Set to true to enable waving liquids (like water).\n" "Requires shaders to be enabled." msgstr "" -"Tetapkan ke \"true\" untuk membolehkan cecair bergelora (macam air).\n" -"Memerlukan pembayang dibolehkan." +"Tetapkan kepada \"true\" untuk membolehkan cecair bergelora (macam air).\n" +"Memerlukan pembayang untuk dibolehkan." #: src/settings_translation_file.cpp msgid "" "Set to true to enable waving plants.\n" "Requires shaders to be enabled." msgstr "" -"Tetapkan ke \"true\" untuk membolehkan tumbuhan bergoyang.\n" +"Tetapkan kepada \"true\" untuk membolehkan tumbuhan bergoyang.\n" "Memerlukan pembayang untuk dibolehkan." #: src/settings_translation_file.cpp @@ -6311,6 +6300,19 @@ msgid "Show entity selection boxes" msgstr "Tunjukkan kotak pemilihan entiti" #: src/settings_translation_file.cpp +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Tunjuk kotak pemilihan entiti\n" +"Anda perlu mulakan semula selepas mengubah tetapan ini." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Fon tebal secara lalainya" + +#: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Mesej penutupan" @@ -6465,10 +6467,6 @@ msgid "Strength of 3D mode parallax." msgstr "Kekuatan paralaks mod 3D." #: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Kekuatan peta normal yang dijana." - -#: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" "The 3 'boost' parameters define a range of the light\n" @@ -6480,7 +6478,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Strict protocol checking" -msgstr "Pemeriksaan protokal ketat" +msgstr "Pemeriksaan protokol ketat" #: src/settings_translation_file.cpp msgid "Strip color codes" @@ -6597,6 +6595,10 @@ msgid "The URL for the content repository" msgstr "URL untuk repositori kandungan" #: src/settings_translation_file.cpp +msgid "The deadzone of the joystick" +msgstr "Zon mati bagi kayu bedik yang digunakan" + +#: src/settings_translation_file.cpp msgid "" "The default format in which profiles are being saved,\n" "when calling `/profiler save [format]` without format." @@ -6638,7 +6640,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "The network interface that the server listens on." -msgstr "Antaramuka rangkaian yang pelayan permainan dengar." +msgstr "Antaramuka rangkaian yang pelayan dengar." #: src/settings_translation_file.cpp msgid "" @@ -6672,17 +6674,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 "" "Terjemahan bahagian belakang untuk Irrlicht.\n" "Anda perlu memulakan semula selepas mengubah tetapan ini.\n" -"Nota: Di Android, kekalkan dengan OGLES1 jika tidak pasti! Aplikasi mungkin " -"tidak\n" -"boleh dimulakan jika menggunakan tetapan lain. Di platform lain, OpenGL " -"disyorkan,\n" -"dan ia ialah satu-satunya pemacu yang mempunyai sokongan pembayang ketika " -"ini." +"Nota: Di Android, kekalkan dengan OGLES1 jika tidak pasti! Apl mungkin gagal " +"dimulakan jika ditukar.\n" +"Di platform lain, OpenGL digalakkan.\n" +"Pembayang disokong oleh OpenGL (komputer sahaja) dan OGLES2 (dalam ujikaji)" #: src/settings_translation_file.cpp msgid "" @@ -6718,6 +6718,14 @@ 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 "" +"Peruntukan masa yang dibenarkan untuk ABM dilakukan di setiap langkah\n" +"(sebagai pecahan dari selang masa ABM)" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6726,13 +6734,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 "" -"Jumlah masa dalam saat diambil untuk melakukan klik kanan yang berulang " -"apabila\n" -"pemain menekan butang tetikus kanan tanpa melepaskannya." +"Jumlah masa dalam saat diambil untuk meletakan nod yang berulang apabila\n" +"pemain menekan butang letak tanpa melepaskannya." #: src/settings_translation_file.cpp msgid "The type of joystick" @@ -6890,6 +6896,25 @@ msgstr "" "tinggi. Penyesuai-turun gama secara tepat tidak disokong." #: src/settings_translation_file.cpp +msgid "" +"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n" +"This algorithm smooths out the 3D viewport while keeping the image sharp,\n" +"but it doesn't affect the insides of textures\n" +"(which is especially noticeable with transparent textures).\n" +"Visible spaces appear between nodes when shaders are disabled.\n" +"If set to 0, MSAA is disabled.\n" +"A restart is required after changing this option." +msgstr "" +"Gunakan antialias pelbagai sampel (MSAA) untuk melembutkan sisi bongkah.\n" +"Algoritma ini melembutkan port pandangan 3D sambil mengekalkan ketajaman " +"imej,\n" +"tetapi ia tidak memberi kesan bahagian dalam sesuatu tekstur\n" +"(yang mana ia tampak lebih nyata dengan tekstur lutsinar).\n" +"Ruangan kosong akan kelihatan di antara nod apabila pembayang dilumpuhkan.\n" +"Jika ditetapkan ke 0, MSAA akan dilumpuhkan.\n" +"Anda perlu mulakan semula selepas mengubah pilihan ini." + +#: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "Gunakan penapisan trilinear apabila menyesuaikan tekstur." @@ -7080,7 +7105,7 @@ msgstr "" "semua\n" "imej GUI perlu ditapis dalam perisian, tetapi sesetengah imej dijana secara " "terus\n" -"ke perkakasan (contohnya, render-to-texture untuk nod dalam inventori)." +"ke perkakasan (contohnya, penerjemahan-ke-tekstur untuk nod dalam inventori)." #: src/settings_translation_file.cpp msgid "" @@ -7118,7 +7143,8 @@ msgstr "" "saiz tekstur minima untuk tekstur penyesuai-naikkan; nilai lebih tinggi " "tampak\n" "lebih tajam, tetapi memerlukan memori yang lebih banyak. Nilai kuasa 2\n" -"disyorkan. Menetapkan nilai ini lebih tinggi dari 1 tidak akan menampakkan\n" +"digalakkan. Menetapkan nilai ini lebih tinggi dari 1 tidak akan " +"menampakkan\n" "kesan yang nyata melainkan tapisan bilinear/trilinear/anisotropik " "dibolehkan.\n" "Ini juga digunakan sebagai saiz tekstur nod asas untuk autopenyesuaian\n" @@ -7135,6 +7161,12 @@ msgstr "" "digunakan." #: src/settings_translation_file.cpp +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." +msgstr "" + +#: src/settings_translation_file.cpp msgid "Whether node texture animations should be desynchronized per mapblock." msgstr "" "Sama ada animasi tekstur nod perlu dinyahsegerakkan pada setiap blok peta." @@ -7160,8 +7192,8 @@ msgid "" msgstr "" "Tetapan sama ada untuk meminta klien menyambung semula selepas berlakunya " "keruntuhan (Lua).\n" -"Tetapkan kepada benar jika pelayan anda ditetapkan untuk mula semula secara " -"automatik." +"Tetapkan kepada \"true\" jika pelayan anda ditetapkan untuk mula semula " +"secara automatik." #: src/settings_translation_file.cpp msgid "Whether to fog out the end of the visible area." @@ -7291,6 +7323,35 @@ msgid "Y-level of seabed." msgstr "Aras Y untuk dasar laut." #: src/settings_translation_file.cpp +msgid "" +"ZLib compression level to use when saving mapblocks to disk.\n" +"-1 - Zlib's default compression level\n" +"0 - no compresson, fastest\n" +"9 - best compression, slowest\n" +"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)" +msgstr "" +"Tahap pemampatan ZLib untuk digunakan apabila menyimpan blokpeta ke cakera.\n" +"-1 - tahap pemampatan lalai Zlib\n" +"0 - tiada pemampatan, paling laju\n" +"9 - pemampatan terbaik, paling lambat\n" +"(tahap 1-3 menggunakan kaedah \"fast\" Zlib, 4-9 menggunakan kaedah biasa)" + +#: 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 "" +"Tahap pemampatan ZLib untuk digunakan apabila menghantar blokpeta kepada " +"klien.\n" +"-1 - tahap pemampatan lalai Zlib\n" +"0 - tiada pemampatan, paling laju\n" +"9 - pemampatan terbaik, paling lambat\n" +"(tahap 1-3 menggunakan kaedah \"fast\" Zlib, 4-9 menggunakan kaedah biasa)" + +#: src/settings_translation_file.cpp msgid "cURL file download timeout" msgstr "Had masa muat turun fail cURL" @@ -7302,83 +7363,93 @@ msgstr "Had cURL selari" msgid "cURL timeout" msgstr "Had masa cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Togol Sinematik" - -#~ msgid "Select Package File:" -#~ msgstr "Pilih Fail Pakej:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Had Y pengatas lava dalam gua besar." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = oklusi paralaks dengan maklumat cerun (lebih cepat).\n" +#~ "1 = pemetaan bentuk muka bumi (lebih lambat, lebih tepat)." -#~ msgid "Waving Water" -#~ msgstr "Air Bergelora" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Laraskan pengekodan gama untuk jadual cahaya. Nombor lebih tinggi lebih " +#~ "cerah.\n" +#~ "Tetapan ini hanya untuk klien dan diabaikan oleh pelayan permainan." -#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." #~ msgstr "" -#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi." +#~ "Ubah cara tanah terapung jenis gunung menirus di atas dan bawah titik " +#~ "tengah." -#~ msgid "Projecting dungeons" -#~ msgstr "Kurungan bawah tanah melunjur" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Adakah anda mahu set semula dunia pemain perseorangan?" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Aras Y di mana bayang tanah terapung diperluaskan." +#~ msgid "Back" +#~ msgstr "Backspace" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Aras Y untuk titik tengah tanah terapung dan permukaan tasik." +#~ msgid "Bump Mapping" +#~ msgstr "Pemetaan Bertompok" -#~ msgid "Waving water" -#~ msgstr "Air bergelora" +#~ msgid "Bumpmapping" +#~ msgstr "Pemetaan bertompok" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Variasi ketinggian bukit dan kedalaman tasik rupa bumi lembut tanah " -#~ "terapung." +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Titik tengah tolakan-tengah lengkung cahaya." #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "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 "" -#~ "Ketinggian maksimum biasa, di atas dan bawah titik tengah, untuk gunung " -#~ "tanah terapung." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Fon ini akan digunakan untuk sesetengah bahasa." - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Kekuatan tolakan tengah lengkung cahaya." +#~ "Mengubah antara muka menu utama:\n" +#~ "- Penuh: Banyak dunia pemain perseorangan, pilihan permainan, pek " +#~ "tekstur, dll.\n" +#~ "- Mudah: Satu dunia pemain perseorangan, tiada pilihan permainan atau " +#~ "pek tekstur.\n" +#~ "Mungkin diperlukan untuk skrin yang lebih kecil." -#~ msgid "Shadow limit" -#~ msgstr "Had bayang" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Laluan ke fon TrueType atau peta bit." - -#~ msgid "Lightness sharpness" -#~ msgstr "Ketajaman pencahayaan" +#~ msgid "Config mods" +#~ msgstr "Konfigurasi mods" -#~ msgid "Lava depth" -#~ msgstr "Kedalaman lava" - -#~ msgid "IPv6 support." -#~ msgstr "Sokongan IPv6." +#~ msgid "Configure" +#~ msgstr "Konfigurasi" -#~ msgid "Gamma" -#~ msgstr "Gama" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Mengawal ketumpatan rupa bumi tanah terapung bergunung.\n" +#~ "Nilainya ialah ofset yang menambah kepada nilai hingar 'mgv7_np_mountain'." -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Nilai alfa bayang fon (kelegapan, antara 0 dan 255)." +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Mengawal lebar terowong, nilai lebih kecil mencipta terowong lebih lebar." -#~ msgid "Floatland mountain height" -#~ msgstr "Ketinggian gunung tanah terapung" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Warna bagi kursor rerambut silang (R,G,B)." -#~ msgid "Floatland base height noise" -#~ msgstr "Hingar ketinggian asas tanah terapung" +#~ msgid "Darkness sharpness" +#~ msgstr "Ketajaman kegelapan" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Membolehkan pemetaan tona sinematik" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Mentakrifkan kawasan rupa bumi lembut tanah terapung.\n" +#~ "Tanag terapung lembut berlaku apabila hingar > 0." -#~ msgid "Enable VBO" -#~ msgstr "Membolehkan VBO" +#~ 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 " @@ -7389,58 +7460,209 @@ msgstr "Had masa cURL" #~ "pentakrifan biom menggantikan cara asal.\n" #~ "Had Y atasan lava di gua-gua besar." -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Mentakrifkan kawasan rupa bumi lembut tanah terapung.\n" -#~ "Tanag terapung lembut berlaku apabila hingar > 0." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Sedang muat turun dan memasang $1, sila tunggu..." -#~ msgid "Darkness sharpness" -#~ msgstr "Ketajaman kegelapan" +#~ msgid "Enable VBO" +#~ msgstr "Membolehkan VBO" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ 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 "" -#~ "Mengawal lebar terowong, nilai lebih kecil mencipta terowong lebih lebar." +#~ "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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Mengawal ketumpatan rupa bumi tanah terapung bergunung.\n" -#~ "Nilainya ialah ofset yang menambah kepada nilai hingar 'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Titik tengah tolakan-tengah lengkung cahaya." +#~ "Membolehkan penjanaan peta normal secara layang (Kesan cetak timbul).\n" +#~ "Perlukan pemetaan bertompok untuk dibolehkan." -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Ubah cara tanah terapung jenis gunung menirus di atas dan bawah titik " -#~ "tengah." +#~ "Membolehkan pemetaan oklusi paralaks.\n" +#~ "Memerlukan pembayang untuk dibolehkan." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Laraskan pengekodan gama untuk jadual cahaya. Nombor lebih tinggi lebih " -#~ "cerah.\n" -#~ "Tetapan ini hanya untuk klien dan diabaikan oleh pelayan permainan." +#~ "Pilihan percubaan, mungkin menampakkan ruang yang nyata di\n" +#~ "antara blok apabila ditetapkan dengan nombor lebih besar daripada 0." -#~ msgid "Path to save screenshots at." -#~ msgstr "Laluan untuk simpan tangkap layar." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS di menu jeda" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Kekuatan oklusi paralaks" +#~ msgid "Floatland base height noise" +#~ msgstr "Hingar ketinggian asas tanah terapung" + +#~ msgid "Floatland mountain height" +#~ msgstr "Ketinggian gunung tanah terapung" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Nilai alfa bayang fon (kelegapan, antara 0 dan 255)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Jana Peta Normal" + +#~ msgid "Generate normalmaps" +#~ msgstr "Jana peta normal" + +#~ msgid "IPv6 support." +#~ msgstr "Sokongan IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Kedalaman lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Ketajaman pencahayaan" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Had baris hilir keluar pada cakera" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Sedang muat turun dan memasang $1, sila tunggu..." +#~ msgid "Main" +#~ msgstr "Utama" -#~ msgid "Back" -#~ msgstr "Backspace" +#~ msgid "Main menu style" +#~ msgstr "Gaya menu utama" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Peta mini dalam mod radar, Zum 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Peta mini dalam mod radar, Zum 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Peta mini dalam mod permukaan, Zum 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Peta mini dalam mod permukaan, Zum 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nama/Kata laluan" + +#~ msgid "No" +#~ msgstr "Tidak" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Persampelan peta normal" + +#~ msgid "Normalmaps strength" +#~ msgstr "Kekuatan peta normal" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Jumlah lelaran oklusi paralaks." #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Pengaruh kesan oklusi paralaks pada keseluruhannya, kebiasaannya skala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Skala keseluruhan kesan oklusi paralaks." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oklusi Paralaks" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oklusi paralaks" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Pengaruh oklusi paralaks" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Lelaran oklusi paralaks" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Mod oklusi paralaks" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Skala oklusi paralaks" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Kekuatan oklusi paralaks" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Laluan ke fon TrueType atau peta bit." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Laluan untuk simpan tangkap layar." + +#~ msgid "Projecting dungeons" +#~ msgstr "Kurungan bawah tanah melunjur" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Set semula dunia pemain perseorangan" + +#~ msgid "Select Package File:" +#~ msgstr "Pilih Fail Pakej:" + +#~ msgid "Shadow limit" +#~ msgstr "Had bayang" + +#~ msgid "Start Singleplayer" +#~ msgstr "Mula Main Seorang" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Kekuatan peta normal yang dijana." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Kekuatan tolakan tengah lengkung cahaya." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Fon ini akan digunakan untuk sesetengah bahasa." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Togol Sinematik" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Ketinggian maksimum biasa, di atas dan bawah titik tengah, untuk gunung " +#~ "tanah terapung." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variasi ketinggian bukit dan kedalaman tasik rupa bumi lembut tanah " +#~ "terapung." + +#~ msgid "View" +#~ msgstr "Lihat" + +#~ msgid "Waving Water" +#~ msgstr "Air Bergelora" + +#~ msgid "Waving water" +#~ msgstr "Air bergelora" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "" +#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Had Y pengatas lava dalam gua besar." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Aras Y untuk titik tengah tanah terapung dan permukaan tasik." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Aras Y di mana bayang tanah terapung diperluaskan." + +#~ msgid "Yes" +#~ msgstr "Ya" diff --git a/po/ms_Arab/minetest.po b/po/ms_Arab/minetest.po index e7e4c7167..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-06-13 23:17+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 <translation@mnh48.moe>\n" "Language-Team: Malay (Jawi) <https://hosted.weblate.org/projects/minetest/" @@ -18,79 +18,103 @@ 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" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "اندا تله Ù…Ù†ÙŠÚ Ý¢Ù„" +"X-Generator: Weblate 4.3.1\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" msgstr "لاهير سمولا" +#: builtin/client/death_formspec.lua src/client/game.cpp +msgid "You died" +msgstr "اندا تله Ù…Ù†ÙŠÚ Ý¢Ù„" + #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" msgstr "OK" #: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "ڤلاين ڤرماءينن ممينت اندا اونتوق Ù…Ú½Ù…Ø¨ÙˆÚ Ø³Ù…ÙˆÙ„Ø§:" +msgid "An error occurred in a Lua script:" +msgstr "برلاکوڽ رالت دالم سکريڤ Lua:" #: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "Ø³Ù…Ø¨ÙˆÚ Ø³Ù…ÙˆÙ„Ø§" +msgid "An error occurred:" +msgstr "تله برلاکوڽ رالت:" #: builtin/fstk/ui.lua msgid "Main menu" msgstr "مينو اوتام" #: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "برلاکوڽ رالت دالم سکريڤ Lua:" +msgid "Reconnect" +msgstr "Ø³Ù…Ø¨ÙˆÚ Ø³Ù…ÙˆÙ„Ø§" #: builtin/fstk/ui.lua -msgid "An error occurred:" -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 "ÛØ±Ø³ÙŠ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ تيدق سراسي. " #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "چوب اکتيÙÚ©Ù† سمولا سناراي ڤلاين عوام ÙØ§Ù† ڤريقسا Ø³Ù…Ø¨ÙˆÚ Ù† اينترنيت اندا." +msgid "Server enforces protocol version $1. " +msgstr "ڤلاين ڤرماٴينن Ù…Ú ÙˆØ§ØªÚ©ÙˆØ§Ø³Ø§Ú©Ù† ڤروتوکول ÛØ±Ø³ÙŠ $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " -msgstr "ڤلاين ڤرماءينن Ù…Ú½ÙˆÚ©ÙˆÚ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ ÛØ±Ø³ÙŠ $1 Ù‡ÙŠÚ Ý¢ $2. " +msgstr "ڤلاين ڤرماٴينن Ù…Ú½ÙˆÚ©ÙˆÚ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ ÛØ±Ø³ÙŠ $1 Ù‡ÙŠÚ Ý¢ $2. " #: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "ڤلاين ڤرماءينن Ù…Ú ÙˆØ§ØªÚ©ÙˆØ§Ø³Ø§Ú©Ù† ڤروتوکول ÛØ±Ø³ÙŠ $1. " +msgid "We only support protocol version $1." +msgstr "کامي هاڽ Ù…Ú½ÙˆÚ©ÙˆÚ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ ÛØ±Ø³ÙŠ $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." msgstr "کامي Ù…Ú½ÙˆÚ©ÙˆÚ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ ÛØ±Ø³ÙŠ $1 Ù‡ÙŠÚ Ý¢ $2." -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "کامي هاڽ Ù…Ú½ÙˆÚ©ÙˆÚ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ ÛØ±Ø³ÙŠ $1." +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "باتل" -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "ÛØ±Ø³ÙŠ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ تيدق سراسي. " +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù†:" #: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "دنيا:" +msgid "Disable all" +msgstr "لومڤوهکن سموا" #: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "تيادا ڤريهل Ú¤ÙŠÚ© مودس ترسديا." +msgid "Disable modpack" +msgstr "لومڤوهکن Ú¤ÙŠÚ© مودس" #: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "تيادا ڤريهل ڤرماءينن ترسديا." +msgid "Enable all" +msgstr "ممبوليهکن سموا" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "بوليهکن Ú¤ÙŠÚ© مودس" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" +"ݢاݢل اونتوق ممبوليهکن مودس \"$1\" کران اي Ù…Ú Ù†Ø¯ÙˆÚ ÙŠ اکسارا ÙŠÚ ØªÙŠØ¯Ù‚ دبنرکن. هاڽ " +"اکسارا [a-z0-9_] سهاج ÙŠÚ Ø¯Ø¨Ù†Ø±Ú©Ù†." + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "چاري مودس لاٴين" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -101,80 +125,117 @@ msgid "No (optional) dependencies" msgstr "تيادا Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù† (ڤيليهن)" #: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "تيادا ڤريهل ڤرماٴينن ترسديا." + +#: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" msgstr "تيادا Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù† واجب" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù† ڤيليهن:" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù†:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "تيادا ڤريهل Ú¤ÙŠÚ© مودس ترسديا." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" msgstr "تيادا Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù† ڤيليهن" +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù† ڤيليهن:" + #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" msgstr "سيمڤن" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "باتل" - #: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "چاري مودس لاءين" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "لومڤوهکن Ú¤ÙŠÚ© مودس" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "بوليهکن Ú¤ÙŠÚ© مودس" +msgid "World:" +msgstr "دنيا:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" msgstr "دبوليهکن" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "لومڤوهکن سموا" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "\"$1\" already exists. Would you like to overwrite it?" +msgstr "" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "ممبوليهکن سموا" +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 and $2 dependencies will be installed." +msgstr "" -#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." +"$1 downloading,\n" +"$2 queued" msgstr "" -"ݢاݢل اونتوق ممبوليهکن مودس \"$1\" کران اي Ù…Ú Ù†Ø¯ÙˆÚ ÙŠ اکسارا ÙŠÚ ØªÙŠØ¯Ù‚ دبنرکن. هاڽ " -"اکسارا [a-z0-9_] سهاج ÙŠÚ Ø¯Ø¨Ù†Ø±Ú©Ù†." #: builtin/mainmenu/dlg_contentstore.lua -msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "سيستم ContentDB تيدق ترسديا اڤابيلا Minetest دکومڤيل تنڤ cURL" +#, fuzzy +msgid "$1 downloading..." +msgstr "مموات تورون..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 required dependencies could not be found." +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 will be installed, and $2 dependencies will be skipped." +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua msgid "All packages" msgstr "سموا ڤاکيج" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "ککونچي تله دݢوناکن اونتوق ÙÙˆÚ Ø³ÙŠ لاٴين" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Back to Main Menu" +msgstr "کمبالي کمينو اوتام" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "هوس ڤرماٴينن" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "ContentDB is not available when Minetest was compiled without cURL" +msgstr "سيستم ContentDB تيدق ترسديا اڤابيلا Minetest دکومڤيل تنڤ cURL" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Downloading..." +msgstr "مموات تورون..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "ݢاݢل مموات تورون $1" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" -msgstr "ڤرماءينن" +msgstr "ڤرماٴينن" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "Ú¤Ø§Ø³Ú " + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Ú¤Ø§Ø³Ú " + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù† ڤيليهن:" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -182,173 +243,199 @@ msgid "Mods" msgstr "مودس" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "Ú¤ÙŠÚ© تيکستور" +msgid "No packages could be retrieved" +msgstr "تيادا ڤاکيج ÙŠÚ Ø¨ÙˆÙ„ÙŠÙ‡ دامبيل" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "ݢاݢل مموات تورون $1" +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 "Back to Main Menu" -msgstr "کمبالي کمينو اوتام" +#, fuzzy +msgid "Not found" +msgstr "بيسوکن بوڽي" #: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "تيادا ØØ§ØµÙŠÙ„" +msgid "Overwrite" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "تيادا ڤاکيج ÙŠÚ Ø¨ÙˆÙ„ÙŠÙ‡ دامبيل" +msgid "Please check that the base game is correct." +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Downloading..." -msgstr "مموات تورون..." +msgid "Queued" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "Ú¤Ø§Ø³Ú " +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 "Uninstall" -msgstr "Ú½Ù‡Ú¤Ø§Ø³Ú " +msgid "Update All [$1]" +msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "ليهت" +msgid "View more information in a web browser" +msgstr "" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caverns" -msgstr "ݢوا بسر" +msgid "A world named \"$1\" already exists" +msgstr "دنيا برنام \"$1\" تله وجود" #: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "ݢوا ݢرݢاسي ÙŠÚ Ø³Ø§Ú Øª مندالم باواه تانه" +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 "Sea level rivers" -msgstr "Ø³ÙˆÚ Ø§ÙŠ ارس لاءوت" +msgid "Altitude dry" +msgstr "Ú©Ú©Ø±ÙŠÚ Ù† التيتود" #: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "Ø³ÙˆÚ Ø§ÙŠ" +msgid "Biome blending" +msgstr "ڤڽباتين بيوم" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "Ý¢ÙˆÙ†ÙˆÚ " +msgid "Biomes" +msgstr "بيوم" #: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "تانه ØªØ±Ø§Ú¤ÙˆÚ (دالم اوجيکاجي)" +msgid "Caverns" +msgstr "ݢوا بسر" #: builtin/mainmenu/dlg_create_world.lua -msgid "Floating landmasses in the sky" -msgstr "جيسيم بومي ØªØ±Ø§Ú¤ÙˆÚ Ø§ØªØ³ Ù„Ø§Ú ÙŠØª" +msgid "Caves" +msgstr "ݢوا" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "Ú©Ø¯ÙŠÚ ÙŠÙ†Ù† التيتود" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "چيڤت" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "Ú©ÙˆØ±Ú Ú©Ù† هاب Ù…Ú ÙŠÚ©ÙˆØª التيتود" +msgid "Decorations" +msgstr "هياسن" #: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "Ú©Ú©Ø±ÙŠÚ Ù† التيتود" +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "موات تورون ڤرماٴينن⹠چونتوهڽ Minetest Game⹠دري minetest.net" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "Ú©ÙˆØ±Ú Ú©Ù† کلمبڤن Ù…Ú ÙŠÚ©ÙˆØª التيتود" +msgid "Download one from minetest.net" +msgstr "موات تورون ساتو دري minetest.net" #: builtin/mainmenu/dlg_create_world.lua -msgid "Humid rivers" -msgstr "Ø³ÙˆÚ Ø§ÙŠ لمبڤ" +msgid "Dungeons" +msgstr "Ú©ÙˆØ±ÙˆÚ Ù† باواه تانه" #: builtin/mainmenu/dlg_create_world.lua -msgid "Increases humidity around rivers" -msgstr "ØªÙŠÚ Ú©ØªÚ©Ù† کلمبڤن سکيتر Ø³ÙˆÚ Ø§ÙŠ" +msgid "Flat terrain" +msgstr "روڤ بومي رات" #: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "کدالمن Ø³ÙˆÚ Ø§ÙŠ برباݢاي" +msgid "Floating landmasses in the sky" +msgstr "جيسيم بومي ØªØ±Ø§Ú¤ÙˆÚ Ø§ØªØ³ Ù„Ø§Ú ÙŠØª" #: builtin/mainmenu/dlg_create_world.lua -msgid "Low humidity and high heat causes shallow or dry rivers" -msgstr "کلمبڤن رنده دان هاب ØªÙŠÚ Ý¢ÙŠ مڽببکن Ø³ÙˆÚ Ø§ÙŠ چيتيق اتاو Ú©Ø±ÙŠÚ " +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 "Additional terrain" -msgstr "روڤ بومي تمبهن" +msgid "Low humidity and high heat causes shallow or dry rivers" +msgstr "کلمبڤن رنده دان هاب ØªÙŠÚ Ý¢ÙŠ مڽببکن Ø³ÙˆÚ Ø§ÙŠ چيتيق اتاو Ú©Ø±ÙŠÚ " -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -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 "Trees and jungle grass" -msgstr "ڤوکوق دان رومڤوت هوتن" +msgid "Mapgen-specific flags" +msgstr "بنديرا خصوص جان ڤتا" #: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "روڤ بومي رات" +msgid "Mountains" +msgstr "Ý¢ÙˆÙ†ÙˆÚ " #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" msgstr "اليرن لومڤور" #: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "هاکيسن ڤرموکاءن روڤ بومي" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "اقليم سدرهان⹠ݢورون⹠هوتن⹠توندرا⹠تايݢ" +msgid "Network of tunnels and caves" +msgstr "Ø¬Ø§Ø±ÙŠÚ Ù† ØªØ±ÙˆÙˆÙˆÚ Ø¯Ø§Ù† ݢوا" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "اقليم سدرهان⹠ݢورون⹠هوتن" +msgid "No game selected" +msgstr "تيادا ڤرماٴينن دڤيليه" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "اقليم سدرهان⹠ݢورون" +msgid "Reduces heat with altitude" +msgstr "Ú©ÙˆØ±Ú Ú©Ù† هاب Ù…Ú ÙŠÚ©ÙˆØª التيتود" #: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "اندا تيدق Ù…Ù…Ø§Ø³Ú Ø³Ø¨Ø§Ø±Ú Ú¤Ø±Ù…Ø§Ø¡ÙŠÙ†Ù†." +msgid "Reduces humidity with altitude" +msgstr "Ú©ÙˆØ±Ú Ú©Ù† کلمبڤن Ù…Ú ÙŠÚ©ÙˆØª التيتود" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "موات تورون ساتو دري minetest.net" +msgid "Rivers" +msgstr "Ø³ÙˆÚ Ø§ÙŠ" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "ݢوا" +msgid "Sea level rivers" +msgstr "Ø³ÙˆÚ Ø§ÙŠ ارس لاٴوت" #: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "Ú©ÙˆØ±ÙˆÚ Ù† باواه تانه" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "بنيه" #: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "هياسن" +msgid "Smooth transition between biomes" +msgstr "ڤراليهن لمبوت دانتارا بيوم" #: builtin/mainmenu/dlg_create_world.lua msgid "" @@ -363,65 +450,44 @@ msgid "Structures appearing on the terrain, typically trees and plants" msgstr "ستروکتور ÙŠÚ Ù…ÙˆÙ†Ú†ÙˆÙ„ اتس روڤ بومي⹠بياساڽ ڤوکوق دان تومبوهن" #: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "Ø¬Ø§Ø±ÙŠÚ Ù† ØªØ±ÙˆÙˆÙˆÚ Ø¯Ø§Ù† ݢوا" +msgid "Temperate, Desert" +msgstr "اقليم سدرهان⹠ݢورون" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "بيوم" +msgid "Temperate, Desert, Jungle" +msgstr "اقليم سدرهان⹠ݢورون⹠هوتن" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "ڤڽباتين بيوم" +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "اقليم سدرهان⹠ݢورون⹠هوتن⹠توندرا⹠تايݢ" #: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "ڤراليهن لمبوت دانتارا بيوم" +msgid "Terrain surface erosion" +msgstr "هاکيسن ڤرموکاٴن روڤ بومي" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "بنديرا جان ڤتا" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Trees and jungle grass" +msgstr "ڤوکوق دان رومڤوت هوتن" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "بنديرا خصوص جان ڤتا" +msgid "Vary river depth" +msgstr "کدالمن Ø³ÙˆÚ Ø§ÙŠ برباݢاي" #: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "امرن: The Development Test هاڽله اونتوق کݢوناءن Ú¤Ù…Ø¨Ø§Ú ÙˆÙ†." +msgid "Very large caverns deep in the underground" +msgstr "ݢوا ݢرݢاسي ÙŠÚ Ø³Ø§Ú Øª مندالم باواه تانه" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "موات تورون ڤرماءينن⹠چونتوهڽ Minetest Game⹠دري minetest.net" +msgid "Warning: The Development Test is meant for developers." +msgstr "امرن: The Development Test هاڽله اونتوق کݢوناٴن Ú¤Ù…Ø¨Ø§Ú ÙˆÙ†." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "نام دنيا" #: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "بنيه" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "جاناءن ڤتا" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "ڤرماءينن" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "چيڤت" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "دنيا برنام \"$1\" تله وجود" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "تيادا ڤرماءينن دڤيليه" +msgid "You have no games installed." +msgstr "اندا تيدق Ù…Ù…Ø§Ø³Ú Ø³Ø¨Ø§Ø±Ú Ú¤Ø±Ù…Ø§Ù´ÙŠÙ†Ù†." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -450,107 +516,92 @@ 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 "" -"Ú¤ÙŠÚ© مودس اين ممڤوڽاءي نام خصوص دبريکن دالم ÙØ§ÙŠÙ„ modpack.conf ميليقڽ ÙŠÚ Ø§Ú©Ù† " -"Ù…Ú Ø§ØªØ³ÙŠ Ø³Ø¨Ø§Ø±Ú Ú¤Ù†Ø§Ù…Ø§Ø¡Ù† سمولا دسين." +"Ú¤ÙŠÚ© مودس اين ممڤوڽاٴي نام خصوص دبريکن دالم ÙØ§ÙŠÙ„ modpack.conf ميليقڽ ÙŠÚ Ø§Ú©Ù† " +"Ù…Ú Ø§ØªØ³ÙŠ Ø³Ø¨Ø§Ø±Ú Ú¤Ù†Ø§Ù…Ø§Ù´Ù† سمولا دسين." -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "نامکن سمولا Ú¤ÙŠÚ© مودس:" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "(تيادا ڤريهل اونتوق تتڤن ÙŠÚ Ø¯Ø¨Ø±ÙŠ)" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "دلومڤوهکن" +msgid "2D Noise" +msgstr "Ù‡ÙŠÚ Ø± 2D" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "دبوليهکن" +msgid "< Back to Settings page" +msgstr "< کمبالي کهلامن تتڤن" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" msgstr "لاير" -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "Ø§ÙˆÙØ³ÙŠØª" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "سکال" - #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "سيبرن X" +msgid "Disabled" +msgstr "دلومڤوهکن" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "سيبرن Y" +msgid "Edit" +msgstr "ايديت" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "Ù‡ÙŠÚ Ø± 2D" +msgid "Enabled" +msgstr "دبوليهکن" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "سيبرن Z" +msgid "Lacunarity" +msgstr "لاکوناريتي" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "اوکتÙ" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "Ø§ÙˆÙØ³ÙŠØª" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "ڤنروسن" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "لاکوناريتي" +msgid "Please enter a valid integer." +msgstr "سيلا ماسوقکن اينتيݢر ÙŠÚ ØµØ." -#. ~ "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 "تومڤول" +msgid "Please enter a valid number." +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 "نيلاي مطلق" +msgid "Restore Default" +msgstr "ڤوليهکن تتڤن اصل" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "X" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "سکال" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "Y" +msgid "Search" +msgstr "چاري" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "Z" +msgid "Select directory" +msgstr "ڤيليه ديريکتوري" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "(تيادا ڤريهل اونتوق تتڤن ÙŠÚ Ø¯Ø¨Ø±ÙŠ)" +msgid "Select file" +msgstr "ڤيليه ÙØ§ÙŠÙ„" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "سيلا ماسوقکن اينتيݢر ÙŠÚ ØµØ." +msgid "Show technical names" +msgstr "تونجوقکن نام تيکنيکل" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -561,285 +612,338 @@ msgid "The value must not be larger than $1." msgstr "نيلاي مستيله تيدق لبيه درڤد $1." #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "سيلا ماسوقکن نومبور ÙŠÚ ØµØ." +msgid "X" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "ڤيليه ديريکتوري" +msgid "X spread" +msgstr "سيبرن X" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "ڤيليه ÙØ§ÙŠÙ„" +msgid "Y" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "< کمبالي کهلامن تتڤن" +msgid "Y spread" +msgstr "سيبرن Y" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "ايديت" +msgid "Z" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "ڤوليهکن تتڤن اصل" +msgid "Z spread" +msgstr "سيبرن Z" +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "تونجوقکن نام تيکنيکل" +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 "$1 (دبوليهکن)" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú $1 سباݢاي Ú¤ÙŠÚ© تيکستور" +msgid "$1 mods" +msgstr "$1 مودس" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú $1 ڤد $2" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "تيدق جومڤ مودس اتاو Ú¤ÙŠÚ© مودس ÙŠÚ ØµØ" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú Ú¤ÙŠÚ© مودس سباݢاي $1" +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "Ú¤Ø§Ø³Ú Ù…ÙˆØ¯Ø³: ݢاݢل منچاري نام مودس سبنر اونتوق: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" msgstr "Ú¤Ø§Ø³Ú Ù…ÙˆØ¯Ø³: تيدق جومڤ نام Ùولدر ÙŠÚ Ø³Ø³ÙˆØ§ÙŠ اونتوق Ú¤ÙŠÚ© مودس $1" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú Ù…ÙˆØ¯Ø³ سباݢاي $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "Ú¤Ø§Ø³Ú : جنيس ÙØ§ÙŠÙ„ \"$1\" تيدق Ø¯Ø³ÙˆÚ©ÙˆÚ Ø§ØªØ§Ùˆ ارکيب روسق" #: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "Ú¤Ø§Ø³Ú Ù…ÙˆØ¯Ø³: ݢاݢل منچاري نام مودس سبنر اونتوق: $1" +msgid "Install: file: \"$1\"" +msgstr "Ú¤Ø§Ø³Ú : ÙØ§ÙŠÙ„: \"$1\"" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a game as a $1" -msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú Ú¤Ø±Ù…Ø§Ø¡ÙŠÙ†Ù† سباݢاي $1" +msgid "Unable to find a valid mod or modpack" +msgstr "تيدق جومڤ مودس اتاو Ú¤ÙŠÚ© مودس ÙŠÚ ØµØ" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "Ú¤Ø§Ø³Ú : ÙØ§ÙŠÙ„: \"$1\"" +msgid "Unable to install a $1 as a texture pack" +msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú $1 سباݢاي Ú¤ÙŠÚ© تيکستور" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "Ú¤Ø§Ø³Ú : جنيس ÙØ§ÙŠÙ„ \"$1\" تيدق Ø¯Ø³ÙˆÚ©ÙˆÚ Ø§ØªØ§Ùˆ ارکيب روسق" +msgid "Unable to install a game as a $1" +msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú Ú¤Ø±Ù…Ø§Ù´ÙŠÙ†Ù† سباݢاي $1" #: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "$1 مودس" +msgid "Unable to install a mod as a $1" +msgstr "ݢاݢل Ù…Ù…Ø§Ø³Ú Ù…ÙˆØ¯Ø³ سباݢاي $1" -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "ڤاکيج Ø¯Ú¤Ø§Ø³Ú :" +#: 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 "لايري Ú©Ù†Ø¯ÙˆÚ Ù† دالم تالين" #: builtin/mainmenu/tab_content.lua -msgid "No package description available" -msgstr "تيادا ڤريهل ڤاکيج ترسديا" +msgid "Content" +msgstr "Ú©Ù†Ø¯ÙˆÚ Ù†" #: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "نامکن سمولا" +msgid "Disable Texture Pack" +msgstr "لومڤوهکن Ú¤ÙŠÚ© تيکستور" #: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "تيادا Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù†." +msgid "Information:" +msgstr "معلومت:" #: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "لومڤوهکن Ú¤ÙŠÚ© تيکستور" +msgid "Installed Packages:" +msgstr "ڤاکيج Ø¯Ú¤Ø§Ø³Ú :" #: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "ݢونا Ú¤ÙŠÚ© تيکستور" +msgid "No dependencies." +msgstr "تيادا Ú©Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ù†." #: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "معلومت:" +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 "Content" -msgstr "Ú©Ù†Ø¯ÙˆÚ Ù†" +msgid "Use Texture Pack" +msgstr "ݢونا Ú¤ÙŠÚ© تيکستور" #: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "Ú¤Ú Ù‡Ø±Ý¢Ø§Ø¡Ù†" +msgid "Active Contributors" +msgstr "Ú¤Ú½ÙˆÙ…Ø¨Ú Ø§Ú©ØªÙŠÙ" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" msgstr "Ú¤Ù…Ø¨Ø§Ú ÙˆÙ† تراس" #: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "Ú¤Ú½ÙˆÙ…Ø¨Ú Ø§Ú©ØªÙŠÙ" +msgid "Credits" +msgstr "Ú¤Ú Ù‡Ø±Ý¢Ø§Ù´Ù†" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "Ú¤Ù…Ø¨Ø§Ú ÙˆÙ† تراس تردهولو" +#, fuzzy +msgid "Open User Data Directory" +msgstr "ڤيليه ديريکتوري" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" #: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Ú¤Ú½ÙˆÙ…Ø¨Ú ØªØ±Ø¯Ù‡ÙˆÙ„Ùˆ" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "Ú¤Ø§Ø³Ú Ú©Ù† ڤرماءينن درڤد ContentDB" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "Ú¤Ù…Ø¨Ø§Ú ÙˆÙ† تراس تردهولو" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "کونÙيݢوراسي" +msgid "Announce Server" +msgstr "اومومکن ڤلاين" #: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "بوات بارو" +msgid "Bind Address" +msgstr "علامت ايکتن" #: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "ڤيليه دنيا:" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "مود کرياتيÙ" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.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 "Host Game" -msgstr "هوس ڤرماءينن" +msgid "Install games from ContentDB" +msgstr "Ú¤Ø§Ø³Ú Ú©Ù† ڤرماٴينن درڤد ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "اومومکن ڤلاين" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "نام\\کات لالوان" +msgid "New" +msgstr "بوات بارو" #: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -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 "مولا ماٴين" #: builtin/mainmenu/tab_local.lua msgid "Port" msgstr "ڤورت" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "ڤورت ڤلاين" +#, fuzzy +msgid "Select Mods" +msgstr "ڤيليه دنيا:" #: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "مولا ماءين" +msgid "Select World:" +msgstr "ڤيليه دنيا:" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "تيادا دنيا دچيڤت اتاو دڤيليه!" +msgid "Server Port" +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 -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 "Creative mode" +msgstr "مود کرياتيÙ" + +#: builtin/mainmenu/tab_online.lua +msgid "Damage enabled" +msgstr "بوليه چدرا" + +#: 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 -msgid "Ping" -msgstr "Ú¤ÙŠÚ " +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "سرتاٴي ڤرماٴينن" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "مود کرياتيÙ" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" +msgstr "نام \\ کات لالوان" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "بوليه چدرا" +#: 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" -#: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "سرتاءي ڤرماءينن" - #: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "داون Ù„Ý¢Ú¤" +msgid "2x" +msgstr "2x" #: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "داون Ø±ÙŠÚ Ú©Ø³" +msgid "3D Clouds" +msgstr "اوان 3D" #: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "داون براݢم" +msgid "4x" +msgstr "4x" #: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "Ú©Ø±Ú Ú© نود" +msgid "8x" +msgstr "8x" #: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "تونجولن نود" +msgid "All Settings" +msgstr "سموا تتڤن" #: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "تيادا" +msgid "Antialiasing:" +msgstr "انتيالياس:" #: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "تيادا تاڤيسن" +msgid "Autosave Screen Size" +msgstr "اٴوتوسيمڤن ساٴيز سکرين" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" msgstr "ڤناڤيسن بيلينيار" +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" +msgstr "توکر ککونچي" + #: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "ڤناڤيسن تريلينيار" +msgid "Connected Glass" +msgstr "کاچ Ø¨Ø±Ø³Ù…Ø¨ÙˆÚ Ù†" #: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "تيادا ڤتا ميڤ" +msgid "Fancy Leaves" +msgstr "داون براݢم" #: builtin/mainmenu/tab_settings.lua msgid "Mipmap" @@ -850,196 +954,157 @@ msgid "Mipmap + Aniso. Filter" msgstr "ڤتا ميڤ + ڤناڤيسن انيسو" #: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "2x" +msgid "No Filter" +msgstr "تيادا تاڤيسن" #: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "4x" +msgid "No Mipmap" +msgstr "تيادا ڤتا ميڤ" #: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "8x" +msgid "Node Highlighting" +msgstr "تونجولن نود" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "اداکه اندا ماهو سيت سمولا دنيا ڤماءين Ú¤Ø±Ø³Ø§ÙˆØ±Ú Ù†ØŸ" +msgid "Node Outlining" +msgstr "Ú©Ø±Ú Ú© نود" #: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "ياء" +msgid "None" +msgstr "تيادا" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "تيدق" +msgid "Opaque Leaves" +msgstr "داون Ù„Ý¢Ú¤" #: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "ڤنچهاياءن لمبوت" +msgid "Opaque Water" +msgstr "اٴير Ù„Ý¢Ú¤" #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "ڤرتيکل" #: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "اوان 3D" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "اءير Ù„Ý¢Ú¤" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "کاچ Ø¨Ø±Ø³Ù…Ø¨ÙˆÚ Ù†" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "جالينن:" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "انتيالياس:" - -#: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "سکرين:" #: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "اءوتوسيمڤن سايز سکرين" +msgid "Settings" +msgstr "تتڤن" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" msgstr "Ú¤Ù…Ø¨Ø§ÙŠÚ " #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "تانه ØªØ±Ø§Ú¤ÙˆÚ (دالم اوجيکاجي)" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Ú¤Ù…Ø¨Ø§ÙŠÚ (تيدق ترسديا)" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "سيت سمولا دنيا ڤماءين Ú¤Ø±Ø³Ø§ÙˆØ±Ú Ù†" - -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "توکر ککونچي" +msgid "Simple Leaves" +msgstr "داون Ø±ÙŠÚ Ú©Ø³" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "سموا تتڤن" +msgid "Smooth Lighting" +msgstr "ڤنچهاياٴن لمبوت" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "نيلاي Ø§Ù…Ø¨Ú Ø³Ù†ØªÙˆÙ‡Ù†: (px)" +msgid "Texturing:" +msgstr "جالينن:" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "ڤمتاءن Ø¨ÙŠÚ Ý¢ÙˆÙ„" +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "اونتوق ممبوليهکن Ú¤Ù…Ø¨Ø§ÙŠÚ â¹ Ú¤Ù…Ø§Ú†Ùˆ OpenGL مستي دݢوناکن." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "ڤمتاءن تونا" +msgstr "ڤمتاٴن تونا" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "جان ڤتا نورمل" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "اوکلوسي ڤارالکس" +msgid "Touchthreshold: (px)" +msgstr "نيلاي Ø§Ù…Ø¨Ú Ø³Ù†ØªÙˆÙ‡Ù†: (px)" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "چچاءير برݢلورا" +msgid "Trilinear Filter" +msgstr "ڤناڤيسن تريلينيار" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" -msgstr "داءون Ø¨Ø±Ý¢ÙˆÙŠÚ " - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "تومبوهن Ø¨Ø±Ý¢ÙˆÙŠÚ " +msgstr "داٴون Ø¨Ø±Ý¢ÙˆÙŠÚ " #: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "اونتوق ممبوليهکن Ú¤Ù…Ø¨Ø§ÙŠÚ â¹ Ú¤Ù…Ø§Ú†Ùˆ OpenGL مستي دݢوناکن." +msgid "Waving Liquids" +msgstr "چچاٴير برݢلورا" #: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "تتڤن" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "مولا ماءين Ø³Ø§ÙˆØ±Ú " - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "کونÙيݢوراسي مودس" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "اوتام" +msgid "Waving Plants" +msgstr "تومبوهن Ø¨Ø±Ý¢ÙˆÙŠÚ " #: src/client/client.cpp msgid "Connection timed out." msgstr "Ø³Ù…Ø¨ÙˆÚ Ù† تامت تيمڤوه." #: src/client/client.cpp -msgid "Loading textures..." -msgstr "Ø³Ø¯Ú Ù…Ù…ÙˆØ§ØªÚ©Ù† تيکستور..." +msgid "Done!" +msgstr "سلساي!" #: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "Ø³Ø¯Ú Ù…Ù…Ø¨ÙŠÙ†Ø§ سمولا Ú¤Ù…Ø¨Ø§ÙŠÚ ..." +msgid "Initializing nodes" +msgstr "Ù…Ú Ø§ÙˆÙ„Ú©Ù† نود" #: src/client/client.cpp msgid "Initializing nodes..." msgstr "Ø³Ø¯Ú Ù…Ú Ø§ÙˆÙ„Ú©Ù† نود..." #: src/client/client.cpp -msgid "Initializing nodes" -msgstr "Ù…Ú Ø§ÙˆÙ„Ú©Ù† نود" +msgid "Loading textures..." +msgstr "Ø³Ø¯Ú Ù…Ù…ÙˆØ§ØªÚ©Ù† تيکستور..." #: src/client/client.cpp -msgid "Done!" -msgstr "سلساي!" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "مينو اوتام" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "نام ڤماءين ترلالو Ú¤Ù†Ø¬Ú ." +msgid "Rebuilding shaders..." +msgstr "Ø³Ø¯Ú Ù…Ù…Ø¨ÙŠÙ†Ø§ سمولا Ú¤Ù…Ø¨Ø§ÙŠÚ ..." #: src/client/clientlauncher.cpp msgid "Connection error (timed out?)" msgstr "رالت دالم Ú¤Ú½Ù…Ø¨ÙˆÚ Ù† (تامت تيمڤوه؟)" #: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "ÙØ§ÙŠÙ„ کات لالوان ÙŠÚ Ø¯Ø³Ø¯ÙŠØ§Ú©Ù† ݢاݢل دبوک: " +msgid "Could not find or load game \"" +msgstr "تيدق جومڤ اتاو تيدق بوليه مواتکن ڤرماٴينن \"" #: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "سيلا ڤيليه سواتو نام!" +msgid "Invalid gamespec." +msgstr "سڤيسيÙيکاسي ڤرماٴينن تيدق صØ." + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "مينو اوتام" #: src/client/clientlauncher.cpp msgid "No world selected and no address provided. Nothing to do." msgstr "تيادا دنيا دڤيليه اتاو تيادا علامت دبري. تيادا اڤ بوليه دلاکوکن." #: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "لالوان دنيا دبري تيدق وجود: " +msgid "Player name too long." +msgstr "نام ڤماٴين ترلالو Ú¤Ù†Ø¬Ú ." #: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "تيدق جومڤ اتاو تيدق بوليه مواتکن ڤرماءينن \"" +msgid "Please choose a name!" +msgstr "سيلا ڤيليه سواتو نام!" #: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "سڤيسيÙيکاسي ڤرماءينن تيدق صØ." +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" @@ -1054,165 +1119,206 @@ msgid "needs_fallback_font" msgstr "yes" #: src/client/game.cpp -msgid "Shutting down..." -msgstr "Ø³Ø¯Ú Ù…Ù†ÙˆØªÙˆÚ¤..." - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "Ø³Ø¯Ú Ù…Ù†Ú†ÙŠÚ¤Øª ڤلاين..." - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "Ø³Ø¯Ú Ù…Ù†Ú†ÙŠÚ¤Øª کليئن..." - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "Ø³Ø¯Ú Ù…Ú½Ù„Ø³Ø§ÙŠÚ©Ù† علامت..." - -#: src/client/game.cpp -msgid "Connecting to server..." -msgstr "Ø³Ø¯Ú Ù…Ú½Ù…Ø¨ÙˆÚ Ú©Ú¤Ø¯ ڤلاين..." +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" +"\n" +"ڤريقسا ÙØ§ÙŠÙ„ debug.txt اونتوق معلومت لنجوت." #: src/client/game.cpp -msgid "Item definitions..." -msgstr "Ø³Ø¯Ú Ù…Ù†ØªØ¹Ø±ÙŠÙÚ©Ù† ايتم..." +msgid "- Address: " +msgstr "- علامت: " #: src/client/game.cpp -msgid "Node definitions..." -msgstr "Ø³Ø¯Ú Ù…Ù†ØªØ¹Ø±ÙŠÙÚ©Ù† نود..." +msgid "- Creative Mode: " +msgstr "- مود کرياتيÙ: " #: src/client/game.cpp -msgid "Media..." -msgstr "Ø³Ø¯Ú Ù…Ù…ÙˆØ§ØªÚ©Ù† ميديا..." +msgid "- Damage: " +msgstr "- بوليه چدرا " #: src/client/game.cpp -msgid "KiB/s" -msgstr "KiB/s" +msgid "- Mode: " +msgstr "- مود: " #: src/client/game.cpp -msgid "MiB/s" -msgstr "MiB/s" +msgid "- Port: " +msgstr "- ڤورت: " #: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن" +msgid "- Public: " +msgstr "- عوام: " +#. ~ PvP = Player versus Player #: src/client/game.cpp -msgid "Sound muted" -msgstr "بوڽي دبيسوکن" +msgid "- PvP: " +msgstr "- PvP: " #: src/client/game.cpp -msgid "Sound unmuted" -msgstr "بوڽي دڽهبيسوکن" +msgid "- Server Name: " +msgstr "- نام ڤلاين: " #: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "سيستم بوڽي دلومڤوهکن" +msgid "Automatic forward disabled" +msgstr "ڤرݢرقن اٴوتوماتيک دلومڤوهکن" #: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "ککواتن بوڽي داوبه کڤد %d%%" +msgid "Automatic forward enabled" +msgstr "ڤرݢرقن اٴوتوماتيک دبوليهکن" #: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "سيستم بوڽي تيدق Ø¯Ø³ÙˆÚ©ÙˆÚ Ø¯Ø¨ÙŠÙ†Ø§Ø¡Ù† اين" +msgid "Camera update disabled" +msgstr "کمس کيني کاميرا دلومڤوهکن" #: src/client/game.cpp -msgid "ok" -msgstr "اوکي" +msgid "Camera update enabled" +msgstr "کمس کيني کاميرا دبوليهکن" #: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "مود ØªØ±Ø¨Ú Ø¯Ø¨ÙˆÙ„ÙŠÙ‡Ú©Ù†" +msgid "Change Password" +msgstr "توکر کات لالوان" #: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "مود ØªØ±Ø¨Ú Ø¯Ø¨ÙˆÙ„ÙŠÙ‡Ú©Ù† (نوت: تيادا کأيستيميواءن 'ØªØ±Ø¨Ú ')" +msgid "Cinematic mode disabled" +msgstr "مود سينماتيک دلومڤوهکن" #: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "مود ØªØ±Ø¨Ú Ø¯Ù„ÙˆÙ…Ú¤ÙˆÙ‡Ú©Ù†" +msgid "Cinematic mode enabled" +msgstr "مود سينماتيک دبوليهکن" #: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "مود ڤرݢرقن Ú¤ÙŠÚ† دبوليهکن" +msgid "Client side scripting is disabled" +msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن" #: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "مود ڤرݢرقن Ú¤ÙŠÚ† دلومڤوهکن" +msgid "Connecting to server..." +msgstr "Ø³Ø¯Ú Ù…Ú½Ù…Ø¨ÙˆÚ Ú©Ú¤Ø¯ ڤلاين..." #: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "مود ڤرݢرقن ڤنتس دبوليهکن" +msgid "Continue" +msgstr "تروسکن" #: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "مود ڤرݢرقن ڤنتس دبوليهکن (نوت: تيادا کأيستيميواءن 'ڤرݢرقن ڤنتس')" +#, fuzzy, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" +"کاولن:\n" +"- %s: برݢرق کدڤن\n" +"- %s: برݢرق Ú©Ø¨Ù„Ø§Ú©Ú \n" +"- %s: برݢرق ککيري\n" +"- %s: برݢرق ککانن\n" +"- %s: لومڤت\\ناٴيق اتس\n" +"- %s: سلينڤ\\تورون باواه\n" +"- %s: جاتوهکن ايتم\n" +"- %s: اينÛينتوري\n" +"- تتيکوس: Ú¤ÙˆØ³ÙŠÚ \\ليهت Ø³Ú©Ù„ÙŠÙ„ÙŠÚ \n" +"- تتيکوس کيري: ݢالي\\کتوق\n" +"- تتيکوس کانن: لتق\\ݢونا\n" +"- رودا تتيکوس: ڤيليه ايتم\n" +"- %s: Ø³ÙŠÙ…Ø¨Ú \n" #: src/client/game.cpp -msgid "Fast mode disabled" -msgstr "مود ڤرݢرقن ڤنتس دلومڤوهکن" +msgid "Creating client..." +msgstr "Ø³Ø¯Ú Ù…Ù†Ú†ÙŠÚ¤Øª کليئن..." #: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "مود تمبوس بلوک دبوليهکن" +msgid "Creating server..." +msgstr "Ø³Ø¯Ú Ù…Ù†Ú†ÙŠÚ¤Øª ڤلاين..." #: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "مود تمبوس بلوک دبوليهکن (نوت: تيادا کأيستيميواءن 'تمبوس بلوک')" +msgid "Debug info and profiler graph hidden" +msgstr "معلومت ڽهڤڤيجت دان ݢرا٠ڤمبوکه دسمبوڽيکن" #: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "مود تمبوس بلوک دلومڤوهکن" +msgid "Debug info shown" +msgstr "معلومت ڽهڤڤيجت دتونجوقکن" #: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "مود سينماتيک دبوليهکن" +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "معلومت ڽهڤڤيجت⹠ݢرا٠ڤمبوکه⹠دان Ø±Ú Ú© داواي دسمبوڽيکن" #: src/client/game.cpp -msgid "Cinematic mode disabled" -msgstr "مود سينماتيک دلومڤوهکن" +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 "" +"کاولن اصل:\n" +"تيادا مينو کليهتن:\n" +"- تکن سکالي: اکتيÙÚ©Ù† Ø¨ÙˆØªÚ \n" +"- تکن دوا کالي: لتق Ø¨Ø§Ø±Ú \\ݢونا سسواتو\n" +"- تاريق Ø¯Ú Ù† جاري: ليهت Ø³Ú©Ù„ÙŠÙ„ÙŠÚ \n" +"مينو\\اينÛينتوري کليهتن:\n" +"- تکن برݢندا (لوار کاوسن اينÛينتوري):\n" +" -->توتوڤ\n" +"- تکن تيندنن⹠تکن سلوت:\n" +" --> ڤينده تيندنن\n" +"- سنتوه دان تاريق⹠تکن سکرين ڤاکاي جاري کدوا\n" +" --> لتق ساتو ايتم دري تيندنن کدالم سلوت\n" #: src/client/game.cpp -msgid "Automatic forward enabled" -msgstr "ڤرݢرقن اءوتوماتيک دبوليهکن" +msgid "Disabled unlimited viewing range" +msgstr "جارق Ú¤Ù†Ø¯Ú ØªÙ†Ú¤ ØØ¯ دلومڤوهکن" #: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "ڤرݢرقن اءوتوماتيک دلومڤوهکن" +msgid "Enabled unlimited viewing range" +msgstr "جارق Ú¤Ù†Ø¯Ú ØªÙ†Ú¤ ØØ¯ دبوليهکن" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "ڤتا ميني دالم مود ڤرموکاءن⹠زوم 1x" +msgid "Exit to Menu" +msgstr "کلوار کمينو" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "ڤتا ميني دالم مود ڤرموکاءن⹠زوم 2x" +msgid "Exit to OS" +msgstr "کلوار تروس ڤرماٴينن" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "ڤتا ميني دالم مود ڤرموکاءن⹠زوم 4x" +msgid "Fast mode disabled" +msgstr "مود ڤرݢرقن ڤنتس دلومڤوهکن" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "ڤتا ميني دالم مود رادر⹠زوم 1x" +msgid "Fast mode enabled" +msgstr "مود ڤرݢرقن ڤنتس دبوليهکن" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "ڤتا ميني دالم مود رادر⹠زوم 2x" +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "مود ڤرݢرقن ڤنتس دبوليهکن (نوت: تيادا کأيستيميواٴن 'ڤرݢرقن ڤنتس')" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "ڤتا ميني دالم مود رادر⹠زوم 4x" +msgid "Fly mode disabled" +msgstr "مود ØªØ±Ø¨Ú Ø¯Ù„ÙˆÙ…Ú¤ÙˆÙ‡Ú©Ù†" #: src/client/game.cpp -msgid "Minimap hidden" -msgstr "ڤتا ميني دسمبوڽيکن" +msgid "Fly mode enabled" +msgstr "مود ØªØ±Ø¨Ú Ø¯Ø¨ÙˆÙ„ÙŠÙ‡Ú©Ù†" #: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "ڤتا ميني دلومڤوهکن اوليه ڤرماءينن اتاو مودس" +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "مود ØªØ±Ø¨Ú Ø¯Ø¨ÙˆÙ„ÙŠÙ‡Ú©Ù† (نوت: تيادا کأيستيميواٴن 'ØªØ±Ø¨Ú ')" #: src/client/game.cpp msgid "Fog disabled" @@ -1223,361 +1329,290 @@ msgid "Fog enabled" msgstr "کابوت دبوليهکن" #: src/client/game.cpp -msgid "Debug info shown" -msgstr "معلومت ڽهڤڤيجت دتونجوقکن" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "ݢرا٠ڤمبوکه دتونجوقکن" - -#: src/client/game.cpp -msgid "Wireframe shown" -msgstr "Ø±Ú Ú© داواي دتونجوقکن" +msgid "Game info:" +msgstr "معلومت ڤرماٴينن:" #: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "معلومت ڽهڤڤيجت⹠ݢرا٠ڤمبوکه⹠دان Ø±Ú Ú© داواي دسمبوڽيکن" +msgid "Game paused" +msgstr "ڤرماٴينن دجيداکن" #: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "معلومت ڽهڤڤيجت دان ݢرا٠ڤمبوکه دسمبوڽيکن" +msgid "Hosting server" +msgstr "Ù…Ú Ù‡ÙˆØ³ ڤلاين" #: src/client/game.cpp -msgid "Camera update disabled" -msgstr "کمس کيني کاميرا دلومڤوهکن" +msgid "Item definitions..." +msgstr "Ø³Ø¯Ú Ù…Ù†ØªØ¹Ø±ÙŠÙÚ©Ù† ايتم..." #: src/client/game.cpp -msgid "Camera update enabled" -msgstr "کمس کيني کاميرا دبوليهکن" +msgid "KiB/s" +msgstr "KiB/s" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "جارق Ú¤Ù†Ø¯Ú Ø¨Ø±Ø§Ø¯ دتاهڤ مکسيموم: %d" +msgid "Media..." +msgstr "Ø³Ø¯Ú Ù…Ù…ÙˆØ§ØªÚ©Ù† ميديا..." #: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "جارق Ú¤Ù†Ø¯Ú Ø¯ØªÙˆÚ©Ø± Ú©%d" +msgid "MiB/s" +msgstr "MiB/s" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "جارق Ú¤Ù†Ø¯Ú Ø¨Ø±Ø§Ø¯ دتاهڤ مينيموم: %d" +msgid "Minimap currently disabled by game or mod" +msgstr "ڤتا ميني دلومڤوهکن اوليه ڤرماٴينن اتاو مودس" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "جارق Ú¤Ù†Ø¯Ú ØªÙ†Ú¤ ØØ¯ دبوليهکن" +msgid "Noclip mode disabled" +msgstr "مود تمبوس بلوک دلومڤوهکن" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "جارق Ú¤Ù†Ø¯Ú ØªÙ†Ú¤ ØØ¯ دلومڤوهکن" +msgid "Noclip mode enabled" +msgstr "مود تمبوس بلوک دبوليهکن" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" -msgstr "زوم Ø³Ø¯Ú Ø¯Ù„ÙˆÙ…Ú¤ÙˆÙ‡Ú©Ù† اوليه ڤرماءينن اتاو مودس" +msgid "Noclip mode enabled (note: no 'noclip' privilege)" +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 "" -"کاولن اصل:\n" -"تيادا مينو کليهتن:\n" -"- تکن سکالي: اکتيÙÚ©Ù† Ø¨ÙˆØªÚ \n" -"- تکن دوا کالي: لتق Ø¨Ø§Ø±Ú \\ݢونا سسواتو\n" -"- تاريق Ø¯Ú Ù† جاري: ليهت Ø³Ú©Ù„ÙŠÙ„ÙŠÚ \n" -"مينو\\اينÛينتوري کليهتن:\n" -"- تکن برݢندا (لوار کاوسن اينÛينتوري):\n" -" -->توتوڤ\n" -"- تکن تيندنن⹠تکن سلوت:\n" -" --> ڤينده تيندنن\n" -"- سنتوه دان تاريق⹠تکن سکرين ڤاکاي جاري کدوا\n" -" --> لتق ساتو ايتم دري تيندنن کدالم سلوت\n" +msgid "Node definitions..." +msgstr "Ø³Ø¯Ú Ù…Ù†ØªØ¹Ø±ÙŠÙÚ©Ù† نود..." #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" -"کاولن:\n" -"- %s: برݢرق کدڤن\n" -"- %s: برݢرق Ú©Ø¨Ù„Ø§Ú©Ú \n" -"- %s: برݢرق ککيري\n" -"- %s: برݢرق ککانن\n" -"- %s: لومڤت\\ناءيق اتس\n" -"- %s: سلينڤ\\تورون باواه\n" -"- %s: جاتوهکن ايتم\n" -"- %s: اينÛينتوري\n" -"- تتيکوس: Ú¤ÙˆØ³ÙŠÚ \\ليهت Ø³Ú©Ù„ÙŠÙ„ÙŠÚ \n" -"- تتيکوس کيري: ݢالي\\کتوق\n" -"- تتيکوس کانن: لتق\\ݢونا\n" -"- رودا تتيکوس: ڤيليه ايتم\n" -"- %s: Ø³ÙŠÙ…Ø¨Ú \n" +msgid "Off" +msgstr "توتوڤ" #: src/client/game.cpp -msgid "Continue" -msgstr "تروسکن" +msgid "On" +msgstr "بوک" #: src/client/game.cpp -msgid "Change Password" -msgstr "توکر کات لالوان" +msgid "Pitch move mode disabled" +msgstr "مود ڤرݢرقن Ú¤ÙŠÚ† دلومڤوهکن" #: src/client/game.cpp -msgid "Game paused" -msgstr "ڤرماءينن دجيداکن" +msgid "Pitch move mode enabled" +msgstr "مود ڤرݢرقن Ú¤ÙŠÚ† دبوليهکن" #: src/client/game.cpp -msgid "Sound Volume" -msgstr "ککواتن بوڽي" +msgid "Profiler graph shown" +msgstr "ݢرا٠ڤمبوکه دتونجوقکن" #: src/client/game.cpp -msgid "Exit to Menu" -msgstr "کلوار کمينو" +msgid "Remote server" +msgstr "ڤلاين جارق جاٴوه" #: src/client/game.cpp -msgid "Exit to OS" -msgstr "کلوار تروس ڤرماءينن" +msgid "Resolving address..." +msgstr "Ø³Ø¯Ú Ù…Ú½Ù„Ø³Ø§ÙŠÚ©Ù† علامت..." #: src/client/game.cpp -msgid "Game info:" -msgstr "معلومت ڤرماءينن:" +msgid "Shutting down..." +msgstr "Ø³Ø¯Ú Ù…Ù†ÙˆØªÙˆÚ¤..." #: src/client/game.cpp -msgid "- Mode: " -msgstr "- مود: " +msgid "Singleplayer" +msgstr "ڤماٴين Ú¤Ø±Ø³Ø£ÙˆØ±Ú Ù†" #: src/client/game.cpp -msgid "Remote server" -msgstr "ڤلاين جارق جاءوه" +msgid "Sound Volume" +msgstr "ککواتن بوڽي" #: src/client/game.cpp -msgid "- Address: " -msgstr "- علامت: " +msgid "Sound muted" +msgstr "بوڽي دبيسوکن" #: src/client/game.cpp -msgid "Hosting server" -msgstr "Ù…Ú Ù‡ÙˆØ³ ڤلاين" +msgid "Sound system is disabled" +msgstr "سيستم بوڽي دلومڤوهکن" #: src/client/game.cpp -msgid "- Port: " -msgstr "- ڤورت: " +msgid "Sound system is not supported on this build" +msgstr "سيستم بوڽي تيدق Ø¯Ø³ÙˆÚ©ÙˆÚ Ø¯Ø¨ÙŠÙ†Ø§Ù´Ù† اين" #: src/client/game.cpp -msgid "Singleplayer" -msgstr "ڤماءين Ú¤Ø±Ø³Ø£ÙˆØ±Ú Ù†" +msgid "Sound unmuted" +msgstr "بوڽي دڽهبيسوکن" #: src/client/game.cpp -msgid "On" -msgstr "بوک" +#, c-format +msgid "Viewing range changed to %d" +msgstr "جارق Ú¤Ù†Ø¯Ú Ø¯ØªÙˆÚ©Ø± Ú©%d" #: src/client/game.cpp -msgid "Off" -msgstr "توتوڤ" +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "جارق Ú¤Ù†Ø¯Ú Ø¨Ø±Ø§Ø¯ دتاهڤ مکسيموم: %d" #: src/client/game.cpp -msgid "- Damage: " -msgstr "- بوليه چدرا " +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "جارق Ú¤Ù†Ø¯Ú Ø¨Ø±Ø§Ø¯ دتاهڤ مينيموم: %d" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "- مود کرياتيÙ: " +#, c-format +msgid "Volume changed to %d%%" +msgstr "ککواتن بوڽي داوبه کڤد %d%%" -#. ~ PvP = Player versus Player #: src/client/game.cpp -msgid "- PvP: " -msgstr "- PvP: " +msgid "Wireframe shown" +msgstr "Ø±Ú Ú© داواي دتونجوقکن" #: src/client/game.cpp -msgid "- Public: " -msgstr "- عوام: " +msgid "Zoom currently disabled by game or mod" +msgstr "زوم Ø³Ø¯Ú Ø¯Ù„ÙˆÙ…Ú¤ÙˆÙ‡Ú©Ù† اوليه ڤرماٴينن اتاو مودس" #: src/client/game.cpp -msgid "- Server Name: " -msgstr "- نام ڤلاين: " +msgid "ok" +msgstr "اوکي" -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" -"\n" -"ڤريقسا ÙØ§ÙŠÙ„ debug.txt اونتوق معلومت لنجوت." +#: src/client/gameui.cpp +msgid "Chat hidden" +msgstr "Ø³ÙŠÙ…Ø¨Ú Ø¯Ø³Ù…Ø¨ÙˆÚ½ÙŠÚ©Ù†" #: src/client/gameui.cpp msgid "Chat shown" msgstr "Ø³ÙŠÙ…Ø¨Ú Ø¯ØªÙˆÙ†Ø¬ÙˆÙ‚Ú©Ù†" #: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "Ø³ÙŠÙ…Ø¨Ú Ø¯Ø³Ù…Ø¨ÙˆÚ½ÙŠÚ©Ù†" +msgid "HUD hidden" +msgstr "ڤاڤر ڤندو (HUD) دسمبوڽيکن" #: src/client/gameui.cpp msgid "HUD shown" msgstr "ڤاڤر ڤندو (HUD) دتونجوقکن" #: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "ڤاڤر ڤندو (HUD) دسمبوڽيکن" +msgid "Profiler hidden" +msgstr "ڤمبوکه دسمبوڽيکن" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" msgstr "ڤمبوکه دتونجوقکن (هلامن %d دري %d)" -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "ڤمبوکه دسمبوڽيکن" - -#: src/client/keycode.cpp -msgid "Left Button" -msgstr "Ø¨ÙˆØªÚ Ú©ÙŠØ±ÙŠ" - -#: src/client/keycode.cpp -msgid "Right Button" -msgstr "Ø¨ÙˆØªÚ Ú©Ø§Ù†Ù†" - -#: src/client/keycode.cpp -msgid "Middle Button" -msgstr "Ø¨ÙˆØªÚ ØªÚ Ù‡" - #: src/client/keycode.cpp -msgid "X Button 1" -msgstr "Ø¨ÙˆØªÚ X نومبور 1" - -#: src/client/keycode.cpp -msgid "X Button 2" -msgstr "Ø¨ÙˆØªÚ X نومبور 2" +msgid "Apps" +msgstr "اڤليکاسي" #: src/client/keycode.cpp msgid "Backspace" msgstr "Backspace" #: src/client/keycode.cpp -msgid "Tab" -msgstr "Tab" +msgid "Caps Lock" +msgstr "کونچي ØØ±ÙˆÙ بسر" #: src/client/keycode.cpp msgid "Clear" msgstr "ڤادم" #: src/client/keycode.cpp -msgid "Return" -msgstr "Enter" +msgid "Control" +msgstr "Ctrl" #: src/client/keycode.cpp -msgid "Shift" -msgstr "Shift" +msgid "Down" +msgstr "باواه" #: src/client/keycode.cpp -msgid "Control" -msgstr "Ctrl" +msgid "End" +msgstr "End" -#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Menu" -msgstr "Menu" +msgid "Erase EOF" +msgstr "ڤادم EOF" #: src/client/keycode.cpp -msgid "Pause" -msgstr "Pause" +msgid "Execute" +msgstr "لاکوکن" #: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "کونچي ØØ±ÙˆÙ بسر" +msgid "Help" +msgstr "بنتوان" #: src/client/keycode.cpp -msgid "Space" -msgstr "Ø³Ù„Ø§Ú " +msgid "Home" +msgstr "Home" #: src/client/keycode.cpp -msgid "Page up" -msgstr "Page up" +msgid "IME Accept" +msgstr "IME - تريما" #: src/client/keycode.cpp -msgid "Page down" -msgstr "Page down" +msgid "IME Convert" +msgstr "IME - توکر" #: src/client/keycode.cpp -msgid "End" -msgstr "End" +msgid "IME Escape" +msgstr "IME - کلوار" #: src/client/keycode.cpp -msgid "Home" -msgstr "Home" +msgid "IME Mode Change" +msgstr "IME - توکر مود" + +#: src/client/keycode.cpp +msgid "IME Nonconvert" +msgstr "IME - تيدقتوکر" + +#: src/client/keycode.cpp +msgid "Insert" +msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" msgstr "ککيري" #: src/client/keycode.cpp -msgid "Up" -msgstr "اتس" +msgid "Left Button" +msgstr "Ø¨ÙˆØªÚ Ú©ÙŠØ±ÙŠ" -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "ککانن" +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "Ctrl کيري" #: src/client/keycode.cpp -msgid "Down" -msgstr "باواه" +msgid "Left Menu" +msgstr "مينو کيري" -#. ~ Key name #: src/client/keycode.cpp -msgid "Select" -msgstr "Select" +msgid "Left Shift" +msgstr "Shift کيري" -#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Print" -msgstr "Print Screen" +msgid "Left Windows" +msgstr "Windows کيري" +#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Execute" -msgstr "لاکوکن" +msgid "Menu" +msgstr "Menu" #: src/client/keycode.cpp -msgid "Snapshot" -msgstr "ØªÚ Ú©Ú¤ ݢمبر سکرين" +msgid "Middle Button" +msgstr "Ø¨ÙˆØªÚ ØªÚ Ù‡" #: src/client/keycode.cpp -msgid "Insert" -msgstr "Insert" +msgid "Num Lock" +msgstr "کونچي Ø§Ú Ú©" #: src/client/keycode.cpp -msgid "Help" -msgstr "بنتوان" +msgid "Numpad *" +msgstr "ڤد Ø§Ú Ú© *" #: src/client/keycode.cpp -msgid "Left Windows" -msgstr "Windows کيري" +msgid "Numpad +" +msgstr "ڤد Ø§Ú Ú© +" #: src/client/keycode.cpp -msgid "Right Windows" -msgstr "Windows کانن" +msgid "Numpad -" +msgstr "ڤد Ø§Ú Ú© -" + +#: src/client/keycode.cpp +msgid "Numpad ." +msgstr "ڤد Ø§Ú Ú© ." + +#: src/client/keycode.cpp +msgid "Numpad /" +msgstr "ڤد Ø§Ú Ú© /" #: src/client/keycode.cpp msgid "Numpad 0" @@ -1620,100 +1655,129 @@ msgid "Numpad 9" msgstr "ڤد Ø§Ú Ú© 9" #: src/client/keycode.cpp -msgid "Numpad *" -msgstr "ڤد Ø§Ú Ú© *" +msgid "OEM Clear" +msgstr "ڤادم OEM" #: src/client/keycode.cpp -msgid "Numpad +" -msgstr "ڤد Ø§Ú Ú© +" +msgid "Page down" +msgstr "Page down" #: src/client/keycode.cpp -msgid "Numpad ." -msgstr "ڤد Ø§Ú Ú© ." +msgid "Page up" +msgstr "Page up" #: src/client/keycode.cpp -msgid "Numpad -" -msgstr "ڤد Ø§Ú Ú© -" +msgid "Pause" +msgstr "Pause" #: src/client/keycode.cpp -msgid "Numpad /" -msgstr "ڤد Ø§Ú Ú© /" +msgid "Play" +msgstr "مولا ماٴين" +#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Num Lock" -msgstr "کونچي Ø§Ú Ú©" +msgid "Print" +msgstr "Print Screen" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "کونچي تاتل" +msgid "Return" +msgstr "Enter" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "ککانن" #: src/client/keycode.cpp -msgid "Left Shift" -msgstr "Shift کيري" +msgid "Right Button" +msgstr "Ø¨ÙˆØªÚ Ú©Ø§Ù†Ù†" #: src/client/keycode.cpp -msgid "Right Shift" -msgstr "Shift کانن" +msgid "Right Control" +msgstr "Ctrl کانن" #: src/client/keycode.cpp -msgid "Left Control" -msgstr "Ctrl کيري" +msgid "Right Menu" +msgstr "مينو کانن" #: src/client/keycode.cpp -msgid "Right Control" -msgstr "Ctrl کانن" +msgid "Right Shift" +msgstr "Shift کانن" #: src/client/keycode.cpp -msgid "Left Menu" -msgstr "مينو کيري" +msgid "Right Windows" +msgstr "Windows کانن" #: src/client/keycode.cpp -msgid "Right Menu" -msgstr "مينو کانن" +msgid "Scroll Lock" +msgstr "کونچي تاتل" +#. ~ Key name #: src/client/keycode.cpp -msgid "IME Escape" -msgstr "IME - کلوار" +msgid "Select" +msgstr "Select" #: src/client/keycode.cpp -msgid "IME Convert" -msgstr "IME - توکر" +msgid "Shift" +msgstr "Shift" #: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "IME - تيدقتوکر" +msgid "Sleep" +msgstr "تيدور" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "IME - تريما" +msgid "Snapshot" +msgstr "ØªÚ Ú©Ú¤ ݢمبر سکرين" #: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "IME - توکر مود" +msgid "Space" +msgstr "Ø³Ù„Ø§Ú " #: src/client/keycode.cpp -msgid "Apps" -msgstr "اڤليکاسي" +msgid "Tab" +msgstr "Tab" #: src/client/keycode.cpp -msgid "Sleep" -msgstr "تيدور" +msgid "Up" +msgstr "اتس" #: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "ڤادم EOF" +msgid "X Button 1" +msgstr "Ø¨ÙˆØªÚ X نومبور 1" #: src/client/keycode.cpp -msgid "Play" -msgstr "مولا ماءين" +msgid "X Button 2" +msgstr "Ø¨ÙˆØªÚ X نومبور 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" msgstr "زوم" -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "ڤادم OEM" +#: src/client/minimap.cpp +msgid "Minimap hidden" +msgstr "ڤتا ميني دسمبوڽيکن" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in radar mode, Zoom x%d" +msgstr "ڤتا ميني دالم مود رادر⹠زوم 1x" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹠زوم 1x" + +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap in texture mode" +msgstr "سايز تيکستور مينيموم" + +#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "کات لالوان تيدق ڤادن!" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "Ø¯ÙØªØ± دان سرتاٴي" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1724,187 +1788,175 @@ 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/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "Ø¯ÙØªØ± دان سرتاءي" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "کات لالوان تيدق ڤادن!" +"اندا اکن سرتاٴي ڤلاين Ø¯Ú Ù† نام \"%s\" اونتوق کالي ڤرتام.\n" +"جيک اندا تروسکن⹠اکاٴون بهارو Ø¯Ú Ù† معلومت اندا اکن دچيڤت دڤلاين اين.\n" +"سيلا تايڤ سمولا کات لالوان اندا دان کليک 'Ø¯ÙØªØ± دان سرتاٴي' اونتوق صØÚ©Ù† " +"ڤنچيڤتاٴن اکاٴون⹠اتاو کليک 'باتل' اونتوق ممباتلکن." #: src/gui/guiFormSpecMenu.cpp msgid "Proceed" msgstr "تروسکن" #: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" -"ايکتن ککونچي. (جيک مينو اين برسليرق⹠ڤادم Ø³Ø³ØªÚ Ù‡ بندا دري ÙØ§ÙŠÙ„ minetest.conf)" - -#: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" msgstr "\"ايستيميوا\" = ڤنجت تورون" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "تکن دوا کالي \"لومڤت\" اونتوق منوݢول ØªØ±Ø¨Ú " +msgid "Autoforward" +msgstr "أوتوڤرݢرقن" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Automatic jumping" msgstr "لومڤت أوتوماتيک" #: src/gui/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "ککونچي تله دݢوناکن اونتوق ÙÙˆÚ Ø³ÙŠ لاءين" +msgid "Backward" +msgstr "Ú©Ø¨Ù„Ø§Ú©Ú " #: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "تکن ککونچي" +msgid "Change camera" +msgstr "توکر کاميرا" #: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "کدڤن" +msgid "Chat" +msgstr "Ø³ÙŠÙ…Ø¨Ú " #: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "Ú©Ø¨Ù„Ø§Ú©Ú " +msgid "Command" +msgstr "ارهن" #: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "ايستيميوا" +msgid "Console" +msgstr "کونسول" #: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "لومڤت" +msgid "Dec. range" +msgstr "Ú©ÙˆØ±Ú Ú©Ù† جارق" #: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "سلينڤ" +msgid "Dec. volume" +msgstr "ڤرلاهنکن بوڽي" #: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "جاتوهکن" +msgid "Double tap \"jump\" to toggle fly" +msgstr "تکن دوا کالي \"لومڤت\" اونتوق منوݢول ØªØ±Ø¨Ú " #: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "اينÛينتوري" +msgid "Drop" +msgstr "جاتوهکن" #: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "ايتم سبلومڽ" +msgid "Forward" +msgstr "کدڤن" #: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "ايتم ستروسڽ" +msgid "Inc. range" +msgstr "ناٴيقکن جارق" #: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "توکر کاميرا" +msgid "Inc. volume" +msgstr "کواتکن بوڽي" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "توݢول ڤتا ميني" +msgid "Inventory" +msgstr "اينÛينتوري" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "توݢول ØªØ±Ø¨Ú " +msgid "Jump" +msgstr "لومڤت" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "توݢول ڤرݢرقن منچورم" +msgid "Key already in use" +msgstr "ککونچي تله دݢوناکن اونتوق ÙÙˆÚ Ø³ÙŠ لاٴين" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "توݢول ڤرݢرقن ڤنتس" +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" +"ايکتن ککونچي. (جيک مينو اين برسليرق⹠ڤادم Ø³Ø³ØªÚ Ù‡ بندا دري ÙØ§ÙŠÙ„ minetest.conf)" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "توݢول تمبوس بلوک" +msgid "Local command" +msgstr "ارهن تمڤتن" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" msgstr "بيسو" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "ڤرلاهنکن بوڽي" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "کواتکن بوڽي" +msgid "Next item" +msgstr "ايتم ستروسڽ" #: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "أوتوڤرݢرقن" +msgid "Prev. item" +msgstr "ايتم سبلومڽ" #: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "Ø³ÙŠÙ…Ø¨Ú " +msgid "Range select" +msgstr "جارق ڤميليهن" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" msgstr "ØªÚ Ú©Ú¤ لاير" #: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "جارق ڤميليهن" +msgid "Sneak" +msgstr "سلينڤ" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "Ú©ÙˆØ±Ú Ú©Ù† جارق" +msgid "Special" +msgstr "ايستيميوا" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "ناءيقکن جارق" +msgid "Toggle HUD" +msgstr "توݢول ڤاڤر ڤندو (HUD)" #: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "کونسول" +msgid "Toggle chat log" +msgstr "توݢول لوݢ Ø³ÙŠÙ…Ø¨Ú " #: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "ارهن" +msgid "Toggle fast" +msgstr "توݢول ڤرݢرقن ڤنتس" #: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "ارهن تمڤتن" +msgid "Toggle fly" +msgstr "توݢول ØªØ±Ø¨Ú " #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "توݢول ڤاڤر ڤندو (HUD)" +msgid "Toggle fog" +msgstr "توݢول کابوت" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "توݢول لوݢ Ø³ÙŠÙ…Ø¨Ú " +msgid "Toggle minimap" +msgstr "توݢول ڤتا ميني" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "توݢول کابوت" +msgid "Toggle noclip" +msgstr "توݢول تمبوس بلوک" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "کات لالوان لام" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "توݢول ڤرݢرقن منچورم" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "تکن ککونچي" #: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "کات لالوان بارو" +msgid "Change" +msgstr "توکر" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" msgstr "صØÚ©Ù† کات لالوان" #: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "توکر" +msgid "New Password" +msgstr "کات لالوان بارو" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "ککواتن بوڽي: " +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +msgstr "کات لالوان لام" #: src/gui/guiVolumeChange.cpp msgid "Exit" @@ -1914,6 +1966,10 @@ msgstr "کلوار" msgid "Muted" msgstr "دبيسوکن" +#: src/gui/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "ککواتن بوڽي: " + #. ~ Imperative, as in "Enter/type in text". #. Don't forget the space. #: src/gui/modalMenu.cpp @@ -1928,1420 +1984,1069 @@ msgid "LANG_CODE" msgstr "ms_Arab" #: src/settings_translation_file.cpp -msgid "Controls" -msgstr "کاولن" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "بينا دالم ڤماءين" - -#: src/settings_translation_file.cpp msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." +"(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 "Flying" -msgstr "ØªØ±Ø¨Ú " +"(Android) منتڤکن کدودوقن کايو بديق ماي.\n" +"جيک دلومڤوهکن⹠کدودوقن ØªÚ Ù‡ اونتوق کايو بديق ماي اکن دتنتوکن برداسرکن کدودوقن " +"سنتوهن ڤرتام." #: 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." +"(Android) Use virtual joystick to trigger \"aux\" button.\n" +"If enabled, virtual joystick will also tap \"aux\" button when out of main " +"circle." msgstr "" -"ڤماءين بوليه ØªØ±Ø¨Ú ØªÙ†Ú¤ ترکسن Ø¯Ú Ù† ݢراÛيتي.\n" -"اين ممرلوکن کأيستيميواءن \"ØªØ±Ø¨Ú \" دالم ڤلاين ڤرماءينن ترسبوت." - -#: src/settings_translation_file.cpp -msgid "Pitch move mode" -msgstr "مود ڤرݢرقن Ú¤ÙŠÚ†" +"(Android) ݢوناکن کايو بديق ماي اونتوق Ú¤ÙŠÚ†Ùˆ Ø¨ÙˆØªÚ \"aux\".\n" +"جيک دبوليهکن⹠کايو بديق ماي جوݢ اکن منکن Ø¨ÙˆØªÚ \"aux\" اڤابيلا براد دلوار " +"بولتن اوتام." #: src/settings_translation_file.cpp msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." +"(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 "Fast movement" -msgstr "ڤرݢرقن ڤنتس" +"(X,Y,Z) Ø§ÙˆÙØ³ÙŠØª ÙØ±Ø§Ú©ØªÙ„ دري ڤوست دنيا دالم اونيت 'سکال'.\n" +"بوليه ݢونا اونتوق ڤيندهکن تيتيق ÙŠÚ Ø¯Ø§ÙŠÚ ÙŠÙ†ÙŠ Ú©(0, 0)\n" +"اونتوق چيڤت تيتيق کلاهيرن ÙŠÚ Ø³Ø³ÙˆØ§ÙŠâ¹ Ø§ØªØ§Ùˆ اونتوق\n" +"ممبوليهکن 'زوم ماسوق' ڤد تيتيق ÙŠÚ Ø¯Ø§ÙŠÚ ÙŠÙ†Ú©Ù†\n" +"Ø¯Ú Ù† مناٴيقکن 'سکال'.\n" +"نيلاي لالاي دسسوايکن اونتوق تيتيق کلاهيرن سسواي اونتوق سيت Mandelbrot\n" +"Ø¯Ú Ù† ڤاراميتر لالاي⹠اي Ù…ÙˆÚ Ú©ÙŠÙ† ڤرلو داوبه اونتوق سيتواسي ÙŠÚ Ù„Ø§Ù´ÙŠÙ†.\n" +"جولت کاسرڽ -2 Ø³Ù‡ÙŠÚ Ý¢ 2. داربکن Ø¯Ú Ù† 'سکال' اونتوق Ø§ÙˆÙØ³ÙŠØª دالم نود." #: src/settings_translation_file.cpp msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." +"(X,Y,Z) scale of fractal in nodes.\n" +"Actual fractal size will be 2 to 3 times larger.\n" +"These numbers can be made very large, the fractal does\n" +"not have to fit inside the world.\n" +"Increase these to 'zoom' into the detail of the fractal.\n" +"Default is for a vertically-squashed shape suitable for\n" +"an island, set all 3 numbers equal for the raw shape." msgstr "" -"برݢرق ڤنتس (Ø¯Ú Ù† ککونچي \"ايستيميوا\").\n" -"اين ممرلوکن کأيستيميواءن \"ڤرݢرقن ڤنتس\" دالم ڤلاين ڤرماءينن ترسبوت." - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "تمبوس بلوک" #: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." +msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" -"جيک دبوليهکن برسام مود ØªØ±Ø¨Ú â¹ Ú¤Ù…Ø§Ø¡ÙŠÙ† بوليه ØªØ±Ø¨Ú Ù…Ù†Ø±ÙˆØ³ÙŠ نود ڤڤجل.\n" -"اين ممرلوکن کأيستيميواءن \"تمبوس بلوک\" دالم ڤلاين ڤرماءينن ترسبوت." - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "مود سينماتيک" #: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." +msgid "2D noise that controls the shape/size of rolling hills." msgstr "" -"ملمبوتکن کاميرا اڤابيلا مليهت Ø³Ú©Ù„ÙŠÙ„ÙŠÚ . جوݢ دکنلي سباݢاي ڤلمبوتن Ú¤Ú Ù„ÙŠÙ‡ØªÙ† اتاو " -"ڤلمبوتن تتيکوس.\n" -"برݢونا اونتوق مراکم Ûيديو." #: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "ڤلمبوتن کاميرا" +msgid "2D noise that controls the shape/size of step mountains." +msgstr "" #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "ملمبوتکن ڤموترن کاميرا. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "" #: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "ڤلمبوتن کاميرا دالم مود سينماتيک" +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "" #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgid "2D noise that controls the size/occurrence of step mountain ranges." msgstr "" -"ملمبوتکن ڤموترن کاميرا دالم مود سينماتيک. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." #: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "تتيکوس Ø³ÙˆÚ Ø³Ú " +msgid "2D noise that locates the river valleys and channels." +msgstr "" #: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "Ù…Ú½ÙˆÚ Ø³Ú Ú©Ù† ڤرݢرقن تتيکوس منݢق." +msgid "3D clouds" +msgstr "اون 3D" #: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "کڤيکاءن تتيکوس" +msgid "3D mode" +msgstr "مود 3D" #: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "ڤندارب کڤيکاءن تتيکوس." +msgid "3D mode parallax strength" +msgstr "ککواتن ڤارالکس مود 3D" #: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "ککونچي اونتوق ممنجت\\منورون" +msgid "3D noise defining giant caverns." +msgstr "" #: src/settings_translation_file.cpp msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." msgstr "" -"جيک دبوليهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ڤنجت کباوه دان\n" -"تورون دالم مود ØªØ±Ø¨Ú â¹ Ù…Ú Ý¢Ù†ØªÙŠÚ©Ù† ککونچي \"سلينڤ\"." - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "تکن \"لومڤت\" دوا کالي اونتوق ØªØ±Ø¨Ú " - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "تکن Ø¨ÙˆØªÚ \"لومڤت\" سچارا چڤت دوا کالي اونتوق منوݢول مود ØªØ±Ø¨Ú ." - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "سنتياس ØªØ±Ø¨Ú Ø¯Ø§Ù† برݢرق ڤنتس" #: src/settings_translation_file.cpp msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." +"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 "" -"جيک دلومڤوهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ØªØ±Ø¨Ú Ù„Ø§Ø¬Ùˆ\n" -"سکيراڽ کدوا-دوا مود ØªØ±Ø¨Ú Ø¯Ø§Ù† مود ڤرݢرقن ڤنتس دبوليهکن." #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Ø³Ù„Ú Ú¤Ú Ø§ÙˆÙ„Ú Ù† کليک کانن" +msgid "3D noise defining structure of river canyon walls." +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." +msgid "3D noise defining terrain." msgstr "" -"جومله ماس دالم ساءت دامبيل اونتوق ملاکوکن کليک کانن ÙŠÚ Ø¨Ø±Ø§ÙˆÙ„Ú Ø§Ú¤Ø§Ø¨ÙŠÙ„Ø§\n" -"ڤماءين منکن Ø¨ÙˆØªÚ ØªØªÙŠÚ©ÙˆØ³ کانن تنڤ ملڤسکنڽ." #: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "لومڤت Ù‡Ø§Ù„Ú Ù† ساتو-نود سچارا أوروماتيک." +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "" #: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "Ú¤Ú Ý¢Ø§Ù„ÙŠÙ† دان ڤلتقن سلامت" +msgid "3D noise that determines number of dungeons per mapchunk." +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." +"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 "" -"منچݢه ݢالي دان ڤلتقن درڤد Ø¨Ø±Ø§ÙˆÙ„Ú Ú©ØªÙŠÚ© تروس منکن Ø¨ÙˆØªÚ ØªØªÙŠÚ©ÙˆØ³.\n" -"بوليهکن تتڤن اين اڤابيلا اندا ݢالي اتاو لتق سچارا تيدق Ø³Ú Ø§Ø¬ ترلالو کرڤ." - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "اينڤوت راوق" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "ممبوليهکن اينڤوت Ú¤Ú Ý¢ÙˆÙ†Ø§ سچارا راوق (هاڽ اونتوق ڤرچوباءن)." - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "کدڤن برتروسن" +"Ø³ÙˆÚ©ÙˆÚ Ù† 3D.\n" +"ÙŠÚ Ø¯Ø³ÙˆÚ©ÙˆÚ Ú¤Ø¯ ماس اين:\n" +"- تيادا: تيادا اٴوتڤوت 3D.\n" +"- اناݢليÙ: 3D ورنا بيرو\\موره.\n" +"- Ø³Ù„Ú -سلي: ݢاريس Ý¢Ù†Ú¤\\ݢنجيل برداسرکن Ø³ÙˆÚ©ÙˆÚ Ù† سکرين ڤولاريساسي.\n" +"- اتس-باوه: ڤيسه سکرين اتس\\باوه.\n" +"- کيري-کانن: ڤيسه سکرين کيري\\کانن.\n" +"- Ø³ÙŠÙ„Ú Ù„ÙŠÙ‡Øª: 3D مات Ø¨Ø±Ø³ÙŠÙ„Ú \n" +"- سيلق هلامن: 3D براساسکن ڤنيمبل کواد.\n" +"امبيل ڤرهاتين بهاوا مود Ø³Ù„Ú -سلي ممرلوکن Ú¤Ù…Ø¨Ø§ÙŠÚ ." #: 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." +"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 "Touch screen threshold" -msgstr "نيلاي Ø§Ù…Ø¨Ú Ø³Ú©Ø±ÙŠÙ† سنتوه" +"بنيه ڤتا ÙŠÚ Ø¯Ú¤ÙŠÙ„ÙŠÙ‡ اونتوق ڤتا بارو⹠بيارکن Ú©ÙˆØ³ÙˆÚ Ø§ÙˆÙ†ØªÙˆÙ‚ بنيه راوق.\n" +"تيدق دݢوناڤاکاي سکيراڽ منچيڤتا دنيا بارو ملالوٴي مينو اوتام." #: src/settings_translation_file.cpp -msgid "The length in pixels it takes for touch screen interaction to start." -msgstr "Ú¤Ù†Ø¬Ú Ø¯Ø§Ù„Ù… ڤيکسيل اونتوق ممولاکن اينتراکسي سکرين سنتوه." +msgid "A message to be displayed to all clients when the server crashes." +msgstr "ميسيج ÙŠÚ Ø§Ú©Ù† دڤاڤرکن کڤد سموا کليئن اڤابيلا ڤلاين رونتوه." #: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" -msgstr "کايو بديق ماي تتڤ" +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "ميسيج ÙŠÚ Ø§Ú©Ù† دڤاڤرکن دکت سموا کليئن اڤابيلا ڤلاين دتوتوڤ." #: src/settings_translation_file.cpp -msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." +msgid "ABM interval" msgstr "" -"(Android) منتڤکن کدودوقن کايو بديق ماي.\n" -"جيک دلومڤوهکن⹠کدودوقن ØªÚ Ù‡ اونتوق کايو بديق ماي اکن دتنتوکن برداسرکن کدودوقن " -"سنتوهن ڤرتام." #: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "کايو بديق ماي مميچو Ø¨ÙˆØªÚ aux" +msgid "ABM time budget" +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." +msgid "Absolute limit of queued blocks to emerge" msgstr "" -"(Android) ݢوناکن کايو بديق ماي اونتوق Ú¤ÙŠÚ†Ùˆ Ø¨ÙˆØªÚ \"aux\".\n" -"جيک دبوليهکن⹠کايو بديق ماي جوݢ اکن منکن Ø¨ÙˆØªÚ \"aux\" اڤابيلا براد دلوار " -"بولتن اوتام." #: src/settings_translation_file.cpp -msgid "Enable joysticks" -msgstr "ممبوليهکن کايو بديق" +msgid "Acceleration in air" +msgstr "ڤچوتن دأودارا" #: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "ID کايو بديق" +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "" #: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "Ú¤Ú Ù†Ù„ ڤستي کايو بديق ÙŠÚ Ø¯Ý¢ÙˆÙ†Ø§Ú©Ù†" +msgid "Active Block Modifiers" +msgstr "" #: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "جنيس کايو بديق" +msgid "Active block management interval" +msgstr "" #: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "جنيس کايو بديق" +msgid "Active block range" +msgstr "جارق بلوک اکتيÙ" #: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "Ø³Ù„Ú Ù…Ø§Ø³ Ú¤Ú Ø§ÙˆÙ„Ú Ù† Ø¨ÙˆØªÚ Ú©Ø§ÙŠÙˆ بديق" +msgid "Active object send range" +msgstr "جارق Ú¤Ú Ù‡Ù†ØªØ±Ù† اوبجيک اکتيÙ" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." msgstr "" -"Ø³Ù„Ú Ù…Ø§Ø³ دالم ساءت⹠دامبيل انتارا ڤريستيوا ÙŠÚ Ø¨Ø±Ø§ÙˆÙ„Ú Ù†\n" -"اڤابيلا منکن کومبيناسي Ø¨ÙˆØªÚ Ú©Ø§ÙŠÙˆ بديق." +"علامت اونتوق Ù…Ú½Ù…Ø¨ÙˆÚ .\n" +"بيار Ú©ÙˆØ³ÙˆÚ Ø§ÙˆÙ†ØªÙˆÙ‚ ممولاکن ڤلاين ڤرماٴينن تمڤتن.\n" +"امبيل ڤرهاتيان بهاوا ميدن علامت دالم مينو اوتام Ù…Ú Ø§ØªØ³ÙŠ تتڤن اين." #: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "کڤيکاءن ÙØ±ÙˆØ³ØªÙˆÙ… کايو بديق" +msgid "Adds particles when digging a node." +msgstr "منمبه ڤرتيکل اڤابيلا Ù…Ú Ý¢Ø§Ù„ÙŠ نود." #: src/settings_translation_file.cpp msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." msgstr "" -"کڤيکاءن ڤکسي کايو بديق اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù†\n" -"ÙØ±ÙˆØ³ØªÙˆÙ… Ú¤Ú Ù„ÙŠÙ‡ØªÙ† دالم ڤرماءينن." - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "ککونچي کدڤن" +"لارسکن کونÙيݢوراسي DPI کسکرين اندا (بوکن X11/Android سهاج) چونتوه اونتوق " +"سکرين 4K." #: src/settings_translation_file.cpp +#, c-format msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماءين کدڤن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "ککونچي Ú©Ø¨Ù„Ø§Ú©Ú " +msgid "Advanced" +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" +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." msgstr "" -"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماءين Ú©Ø¨Ù„Ø§Ú©Ú .\n" -"جوݢ اکن ملومڤوهکن أوتوڤرݢرقن⹠اڤابيلا اکتيÙ.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"اوبه Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ Ø¯Ú Ù† Ù…Ú Ù†Ø§Ú©Ù† 'ڤمبتولن ݢام'.\n" +"نيلاي ØªÙŠÚ Ý¢ÙŠ بواتکن اساس چهاي ØªÚ Ù‡ دان رنده لبيه ØªØ±Ø§Ú .\n" +"نيلاي '1.0' اکن بيارکن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ اصل تيدق براوبه.\n" +"تتڤن اين هاڽ ممبري کسن مندالم ڤد چهاي ماتاهاري\n" +"دان چهاي بواتن⹠کسنڽ ڤد چهاي مالم امت رنده." #: src/settings_translation_file.cpp -msgid "Left key" -msgstr "ککونچي ککيري" +msgid "Always fly and fast" +msgstr "سنتياس ØªØ±Ø¨Ú Ø¯Ø§Ù† برݢرق ڤنتس" #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماءين ککيري.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Ambient occlusion gamma" +msgstr "ݢام اوکلوسي سکيتر" #: src/settings_translation_file.cpp -msgid "Right key" -msgstr "ککومچي ککانن" +msgid "Amount of messages a player may send per 10 seconds." +msgstr "جومله ميسيج ڤماٴين بوليه هنتر ستياڤ 10 ساٴت." #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Amplifies the valleys." msgstr "" -"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماءين ککانن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "ککونچي لومڤت" +msgid "Anisotropic filtering" +msgstr "ڤناڤيسن انيسوتروڤيک" #: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ملومڤت.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Announce server" +msgstr "عمومکن ڤلاين" #: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "ککونچي سلينڤ" +msgid "Announce to this serverlist." +msgstr "عمومکن کسناراي ڤلاين اين." #: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مڽلينڤ.\n" -"جوݢ دݢوناکن اونتوق تورون باواه کتيک ممنجت دان دالم اءير جيک تتڤن " -"aux1_descends دلومڤوهکن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Append item name" +msgstr "تمبه نام ايتم" #: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "ککونچي اينÛينتوري" +msgid "Append item name to tooltip." +msgstr "تمبه نام ايتم کتيڤ التن." #: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Apple trees noise" msgstr "" -"ککونچي اونتوق ممبوک اينÛينتوري.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Special key" -msgstr "ککونچي ايستيميوا" +msgid "Arm inertia" +msgstr "اينرسيا Ù„Ú Ù†" #: src/settings_translation_file.cpp msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Arm inertia, gives a more realistic movement of\n" +"the arm when the camera moves." msgstr "" -"ککونچي اونتوق برݢرق ڤنتس دالم مود ڤرݢرقن ڤنتس.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"اينرسيا Ù„Ú Ù†â¹ Ù…Ù…Ø¨Ø±ÙŠÚ©Ù† ڤرݢرقن Ù„Ú Ù† ÙŠÚ \n" +"لبيه رياليستيک اڤابيلا کاميرا دݢرقکن." #: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "ککونچي Ø³ÙŠÙ…Ø¨Ú " +msgid "Ask to reconnect after crash" +msgstr "مينتا Ø³Ù…Ø¨ÙˆÚ Ø³Ù…ÙˆÙ„Ø§ سلڤس کرونتوهن" #: src/settings_translation_file.cpp msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"ککونچي اونتوق ممبوک ØªØªÙŠÚ Ú©Ú¤ Ø³ÙŠÙ…Ø¨Ú .\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Command key" -msgstr "ککونچي ارهن" +msgid "Automatic forward key" +msgstr "ککونچي أوتوڤرݢرقن" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممبوک ØªØªÙŠÚ Ú©Ú¤ Ø³ÙŠÙ…Ø¨Ú Ø§ÙˆÙ†ØªÙˆÙ‚ مناءيڤ ارهن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Automatically jump up single-node obstacles." +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 "" -"ککونچي اونتوق ممبوک ØªØªÙŠÚ Ú©Ú¤ Ø³ÙŠÙ…Ø¨Ú Ø§ÙˆÙ†ØªÙˆÙ‚ مناءيڤ ارهن تمڤتن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Automatically report to the serverlist." +msgstr "ملاڤورکن کڤد سناراي ڤلاين سچارا اٴوتوماتيک." #: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "ککونچي جارق ڤميليهن" +msgid "Autosave screen size" +msgstr "أوتوسيمڤن سايز سکرين" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول جارق Ú¤Ù†Ø¯Ú Ù† تيادا ØØ¯.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Autoscaling mode" +msgstr "مود سکال أوتوماتيک" #: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "ککونچي ØªØ±Ø¨Ú " +msgid "Backward key" +msgstr "ککونچي Ú©Ø¨Ù„Ø§Ú©Ú " #: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Base ground level" msgstr "" -"ککونچي اونتوق منوݢول مود ØªØ±Ø¨Ú .\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "ککونچي ڤرݢرقن Ú¤ÙŠÚ†" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Base terrain height." msgstr "" -"ککونچي اونتوق منوݢول مود ڤرݢرقن Ú¤ÙŠÚ†.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "ککونچي ڤرݢرقن ڤنتس" +msgid "Basic" +msgstr "اساس" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤنتس.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Basic privileges" +msgstr "کأيستيميواٴن اساس" #: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "ککونچي تمبوس بلوک" +msgid "Beach noise" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Beach noise threshold" msgstr "" -"ککونچي اونتوق منوݢول مود تمبوس بلوک.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "ککونچي ايتم ستروسڽ دالم هوتبر" +msgid "Bilinear filtering" +msgstr "ڤناڤيسن بيلينيار" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه ايتم ستروسڽ ددالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bind address" +msgstr "علامت ايکتن" #: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "ککونچي ايتم سبلومڽ دالم هوتبر" +msgid "Biome API temperature and humidity noise parameters" +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" +msgid "Biome noise" msgstr "" -"ککونچي اونتوق مميليه Ø¨Ø§Ø±Ú Ø³Ø¨Ù„ÙˆÙ…Ú½ دهوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "ککونچي بيسو" +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "بيت ڤر ڤيکسيل (اتاو کدالمن ورنا) دالم مود سکرين ڤنوه." #: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Block send optimize distance" msgstr "" -"ککونچي اونتوق ممبيسوکن ڤرماءينن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "ککونچي کواتکن بوڽي" +msgid "Bold and italic font path" +msgstr "لالوان Ùون تبل دان ايتاليک" #: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق Ù…Ú ÙˆØ§ØªÚ©Ù† بوڽي.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bold and italic monospace font path" +msgstr "لالوان Ùون monospace تبل دان ايتاليک" #: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "ککونچي ڤرلاهنکن بوڽي" +msgid "Bold font path" +msgstr "لالوان Ùون تبل" #: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق ممڤرلاهنکن بوڽي.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Bold monospace font path" +msgstr "لالوان Ùون monospace تبل" #: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "ککونچي أوتوڤرݢرقن" +msgid "Build inside player" +msgstr "بينا دالم ڤماٴين" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Builtin" msgstr "" -"ککونچي اونتوق منوݢول أوتوڤرݢرقن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "ککونچي مود سينماتيک" #: src/settings_translation_file.cpp msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"ککونچي اونتوق منوݢول مود سينماتيک.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"جارق کاميرا 'برهمڤيرن ساته کتيڤن' دالم نيلاي نود⹠انتارا 0 دان 0.5.\n" +"هاڽ برکسن دڤلاتÙورم GLES. کباڽقن Ú¤Ú Ý¢ÙˆÙ†Ø§ تيدق ڤرلو Ù…Ú Ø§ÙˆØ¨Ù‡ نيلاي اين.\n" +"مناٴيقکن نيلاي بوليه Ú©ÙˆØ±Ú Ú©Ù† ارتيÙÚ© ڤد GPU ÙŠÚ Ù„Ø¨ÙŠÙ‡ لمه.\n" +"0.1 = اصل⹠0.25 = نيلاي باݢوس اونتوق تابليت ÙŠÚ Ù„Ø¨ÙŠÙ‡ لمه." #: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "ککونچي ڤتا ميني" +msgid "Camera smoothing" +msgstr "ڤلمبوتن کاميرا" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق منوݢول ڤاڤرن ڤتا ميني.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Camera smoothing in cinematic mode" +msgstr "ڤلمبوتن کاميرا دالم مود سينماتيک" #: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق Ù…Ù†Ú Ú©Ú¤ ݢمبر لاير.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Camera update toggle key" +msgstr "ککونچي توݢول کمس کيني کاميرا" #: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "ککونچي جاتوهکن ايتم" +msgid "Cave noise" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cave noise #1" msgstr "" -"ککونچي اونتوق منجاتوهکن ايتم ÙŠÚ Ø³Ø¯Ú Ø¯Ú¤ÙŠÙ„ÙŠÙ‡.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "ککونچي زوم Ú¤Ù†Ø¯Ú Ù†" +msgid "Cave noise #2" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cave width" msgstr "" -"ککونچي اونتوق Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† Ú¤Ù†Ø¯Ú Ù† زوم اڤابيلا دبنرکن.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "ککونچي سلوت هوتبر 1" +msgid "Cave1 noise" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cave2 noise" msgstr "" -"ککونچي اونتوق مميليه سلوت ڤرتام دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "ککونچي سلوت هوتبر 2" +msgid "Cavern limit" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cavern noise" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-2 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "ککونچي سلوت هوتبر 3" +msgid "Cavern taper" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cavern threshold" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-3 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "ککونچي سلوت هوتبر 4" +msgid "Cavern upper limit" +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-4 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Ú¤Ø±ØªÚ Ù‡Ù† جولت تولقن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ.\n" +"دمان 0.0 اياله ارس چهاي مينيموم⹠1.0 اياله مکسيموم." #: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "ککونچي سلوت هوتبر 5" +msgid "Chat font size" +msgstr "سايز Ùون Ø³ÙŠÙ…Ø¨Ú " #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat key" +msgstr "ککونچي Ø³ÙŠÙ…Ø¨Ú " + +#: src/settings_translation_file.cpp +msgid "Chat log level" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-5 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "ککونچي سلوت هوتبر 6" +msgid "Chat message count limit" +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-6 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat message format" +msgstr "Ùورمت ميسيج Ø³ÙŠÙ…Ø¨Ú " #: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "ککونچي سلوت هوتبر 7" +msgid "Chat message kick threshold" +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-7 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chat message max length" +msgstr "Ú¤Ù†Ø¬Ú Ù…Ú©Ø³ÙŠÙ…ÙˆÙ… ميسيج Ø³ÙŠÙ…Ø¨Ú " #: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "ککونچي سلوت هوتبر 8" +msgid "Chat toggle key" +msgstr "ککونچي توݢول Ø³ÙŠÙ…Ø¨Ú " #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Chatcommands" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-8 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "ککونچي سلوت هوتبر 9" +msgid "Chunk size" +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-9 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Cinematic mode" +msgstr "مود سينماتيک" #: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "ککونچي سلوت هوتبر 10" +msgid "Cinematic mode key" +msgstr "ککونچي مود سينماتيک" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-10 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clean transparent textures" +msgstr "برسيهکن تيکستور لوت سينر" #: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" -msgstr "ککونچي سلوت هوتبر 11" +msgid "Client" +msgstr "کليئن" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Client and Server" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-11 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 12 key" -msgstr "ککونچي سلوت هوتبر 12" +msgid "Client modding" +msgstr "مودس کليئن" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Client side modding restrictions" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-12 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "ککونچي سلوت هوتبر 13" +msgid "Client side node lookup range restriction" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Climbing speed" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-13 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "ککونچي سلوت هوتبر 14" +msgid "Cloud radius" +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-14 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clouds" +msgstr "اون" #: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "ککونچي سلوت هوتبر 15" +msgid "Clouds are a client side effect." +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-15 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Clouds in menu" +msgstr "اون دالم مينو" #: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "ککونچي سلوت هوتبر 16" +msgid "Colored fog" +msgstr "کابوت برورنا" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"ککونچي اونتوق مميليه سلوت Ú©-16 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "ککونچي سلوت هوتبر 17" +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 "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"ککونچي اونتوق مميليه سلوت Ú©-17 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 18 key" -msgstr "ککونچي سلوت هوتبر 18" +msgid "Command key" +msgstr "ککونچي ارهن" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-18 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Connect glass" +msgstr "Ø³Ù…Ø¨ÙˆÚ Ú©Ø§Ú†" #: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "ککونچي سلوت هوتبر 19" +msgid "Connect to external media server" +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-19 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Connects glass if supported by node." +msgstr "Ø³Ù…Ø¨ÙˆÚ Ú©Ù† کاچ جيک Ø¯Ø³ÙˆÚ©ÙˆÚ Ø§ÙˆÙ„ÙŠÙ‡ نود." #: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "ککونچي سلوت هوتبر 20" +msgid "Console alpha" +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-20 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Console color" +msgstr "ورنا کونسول" #: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "ککونچي سلوت هوتبر 21" +msgid "Console height" +msgstr "Ú©ØªÙŠÚ Ý¢ÙŠÙ† کونسول" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "ContentDB Flag Blacklist" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-21 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "ککونچي سلوت هوتبر 22" +msgid "ContentDB Max Concurrent Downloads" +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "ContentDB URL" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-22 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 23 key" -msgstr "ککونچي سلوت هوتبر 23" +msgid "Continuous forward" +msgstr "کدڤن برتروسن" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Continuous forward movement, toggled by autoforward key.\n" +"Press the autoforward key again or the backwards movement to disable." msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-23 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"ڤرݢرقن کدڤن برتروسن⹠دتوݢول اوليه ککونچي أوتوڤرݢرقن.\n" +"تکن ککونچي أوتوڤرݢرقن لاݢي اتاو ڤرݢرقن Ú©Ø¨Ù„Ø§Ú©Ú Ø§ÙˆÙ†ØªÙˆÙ‚ ملومڤوهکنڽ." #: src/settings_translation_file.cpp -msgid "Hotbar slot 24 key" -msgstr "ککونچي سلوت هوتبر 24" +msgid "Controls" +msgstr "کاولن" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-24 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Ù…Ú Ø§ÙˆÙ„ Ú¤Ù†Ø¬Ú Ú©ÙŠØªØ±Ù† Ø³ÙŠØ§Ú \\مالم.\n" +"چونتوهڽ:\n" +"72 اونتوق 20 مينيت⹠360 اونتوق 4 مينيت⹠1 اونتوق 24 جم⹠0 اونتوق Ø³ÙŠØ§Ú \\مالم" +"\\لاٴين٢ Ú©Ú©Ù„ تيدق بروبه." #: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "ککونچي سلوت هوتبر 25" +msgid "Controls sinking speed in liquid." +msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Controls steepness/depth of lake depressions." msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-25 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "ککونچي سلوت هوتبر 26" +msgid "Controls steepness/height of hills." +msgstr "" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" -"ککونچي اونتوق مميليه سلوت Ú©-26 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "ککونچي سلوت هوتبر 27" +msgid "Crash message" +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 "" -"ککونچي اونتوق مميليه سلوت Ú©-27 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Creative" +msgstr "کرياتيÙ" #: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "ککونچي سلوت هوتبر 28" +msgid "Crosshair alpha" +msgstr "نيلاي Ø§Ù„ÙØ§ ررمبوت Ø³ÙŠÙ„Ú " #: 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 "" -"ککونچي اونتوق مميليه سلوت Ú©-28 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Crosshair alpha (opaqueness, between 0 and 255).\n" +"Also controls the object crosshair color" +msgstr "نيلاي Ø§Ù„ÙØ§ ررمبوت Ø³ÙŠÙ„Ú (کلݢڤن⹠انتارا 0 دان 255)." #: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" -msgstr "ککونچي سلوت هوتبر 29" +msgid "Crosshair color" +msgstr "ورنا ررمبوت Ø³ÙŠÙ„Ú " #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-29 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "ککونچي سلوت هوتبر 30" +msgid "DPI" +msgstr "DPI" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-30 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Damage" +msgstr "بوليه چدرا" #: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "ککونچي سلوت هوتبر 31" +msgid "Debug info toggle key" +msgstr "ککونچي توݢول معلومت ڽهڤڤيجت" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Debug log file size threshold" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-31 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Hotbar slot 32 key" -msgstr "ککونچي سلوت هوتبر 32" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Debug log level" msgstr "" -"ککونچي اونتوق مميليه سلوت Ú©-32 دالم هوتبر.\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "ککونچي منوݢول ڤاڤر ڤندو (HUD)" +msgid "Dec. volume key" +msgstr "ککونچي ڤرلاهنکن بوڽي" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Decrease this to increase liquid resistance to movement." msgstr "" -"ککونچي اونتوق منوݢول ڤاڤر ڤندو (HUD).\n" -"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Chat toggle key" +msgid "Dedicated server step" 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 "" +msgid "Default acceleration" +msgstr "ڤچوتن لالاي" #: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" +msgid "Default game" +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" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." msgstr "" +"ڤرماٴينن لالاي ÙŠÚ Ø§Ú©Ù† دݢوناکن کتيک منچيڤتا دنيا بارو.\n" +"تتڤن اين اکن دأتسي اڤابيلا ممبوات دنيا دري مينو اوتام." #: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" +msgid "Default password" +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 "" +msgid "Default privileges" +msgstr "کأيستيميواٴن لالاي" #: src/settings_translation_file.cpp -msgid "Camera update toggle key" +msgid "Default report format" 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 "" +msgid "Default stack size" +msgstr "ساٴيز تيندنن لالاي" #: src/settings_translation_file.cpp -msgid "Debug info toggle key" +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." 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" +msgid "Defines areas where trees have apples." msgstr "" #: src/settings_translation_file.cpp -msgid "Profiler toggle key" +msgid "Defines areas with sandy beaches." 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" +msgid "Defines distribution of higher terrain and steepness of cliffs." msgstr "" #: src/settings_translation_file.cpp -msgid "Toggle camera mode key" +msgid "Defines distribution of higher terrain." 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" +msgid "Defines full size of caverns, smaller values create larger caverns." msgstr "" #: src/settings_translation_file.cpp -msgid "View range increase key" +msgid "Defines large-scale river channel structure." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Defines location and terrain of optional hills and lakes." msgstr "" #: src/settings_translation_file.cpp -msgid "View range decrease key" +msgid "Defines the base ground level." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +msgid "Defines the depth of the river channel." msgstr "" #: src/settings_translation_file.cpp -msgid "Graphics" +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." msgstr "" +"منتعريÙÚ©Ù† جارق مکسيموم اونتوق ڤميندهن ڤماٴين دالم اونيت بلوک (0 = تيادا ØØ¯)." #: src/settings_translation_file.cpp -msgid "In-Game" +msgid "Defines the width of the river channel." msgstr "" #: src/settings_translation_file.cpp -msgid "Basic" +msgid "Defines the width of the river valley." msgstr "" #: src/settings_translation_file.cpp -msgid "VBO" +msgid "Defines tree areas and tree density." msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." +"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 "" +"Ù„Ú Ù‡ ماس دانتارا کمسکيني Ø¬Ø¬Ø§Ø±ÙŠÚ Ø¯Ú©Øª کليئن دالم اونيت ميليساٴت (ms). مناٴيقکن " +"نيلاي\n" +"اين اکن Ù…Ú ÙˆØ±Ú Ú©Ù† کادر کمسکيني Ø¬Ø¬Ø§Ø±ÙŠÚ â¹ Ù„Ø§Ù„Ùˆ Ù…Ú ÙˆØ±Ú Ú©Ù† کترن دکت کليئن ÙŠÚ Ù„Ø¨ÙŠÙ‡ " +"ڤرلاهن." #: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" +msgid "Delay in sending blocks after building" +msgstr "Ù„Ú Ù‡ Ú¤Ú Ù‡Ù†ØªØ±Ù† بلوک سلڤس ڤمبيناٴن" #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "جومله Ù„Ú Ù‡ اونتوق منونجوقکن تيڤ التن⹠دڽاتاکن دالم ميليساٴت." #: src/settings_translation_file.cpp -msgid "Leaves style" +msgid "Deprecated Lua API handling" 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" +msgid "Depth below which you'll find giant caverns." msgstr "" #: src/settings_translation_file.cpp -msgid "Connect glass" +msgid "Depth below which you'll find large caves." msgstr "" #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." msgstr "" +"ڤريهل ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم " +"سناراٴي ڤلاين." #: src/settings_translation_file.cpp -msgid "Smooth lighting" +msgid "Desert noise threshold" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." +"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 "Clouds" -msgstr "" +msgid "Desynchronize block animation" +msgstr "مڽهسݢرقکن انيماسي بلوک" #: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" +#, fuzzy +msgid "Dig key" +msgstr "ککومچي ککانن" #: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" +msgid "Digging particles" +msgstr "ڤرتيکل کتيک Ù…Ú Ý¢Ø§Ù„ÙŠ" #: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" +msgid "Disable anticheat" +msgstr "ملومڤوهکن انتيتيڤو" #: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" +msgid "Disallow empty passwords" +msgstr "منولق کات لالوان Ú©ÙˆØ³ÙˆÚ " #: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "نام دوماٴين ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن." #: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" +msgid "Double tap jump for fly" +msgstr "تکن \"لومڤت\" دوا کالي اونتوق ØªØ±Ø¨Ú " #: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" +msgid "Double-tapping the jump key toggles fly mode." +msgstr "تکن Ø¨ÙˆØªÚ \"لومڤت\" سچارا چڤت دوا کالي اونتوق منوݢول مود ØªØ±Ø¨Ú ." #: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" +msgid "Drop item key" +msgstr "ککونچي جاتوهکن ايتم" #: src/settings_translation_file.cpp -msgid "Mipmapping" +msgid "Dump the mapgen debug information." 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." +msgid "Dungeon maximum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Anisotropic filtering" +msgid "Dungeon minimum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." +msgid "Dungeon noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Bilinear filtering" +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 "Use bilinear filtering when scaling textures." +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." msgstr "" +"ممبوليهکن Ø³ÙˆÚ©ÙˆÚ Ù† ڤمبواتن مودس Lua دکت کليئن.\n" +"Ø³ÙˆÚ©ÙˆÚ Ù† اين دالم اوجيکاجي دان API بوليه براوبه." #: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" +msgid "Enable console window" +msgstr "ممبوليهکن ØªØªÙŠÚ Ú©Ú¤ کونسول" #: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" +#, fuzzy +msgid "Enable creative mode for all players" +msgstr "ممبوليهکن مود کرياتي٠اونتوق ڤتا بارو دچيڤتا." #: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" +msgid "Enable joysticks" +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 "" +msgid "Enable mod channels support." +msgstr "ممبوليهکن Ø³ÙˆÚ©ÙˆÚ Ù† سالوران مودس." #: src/settings_translation_file.cpp -msgid "Minimum texture size" +msgid "Enable mod security" 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 "" +msgid "Enable players getting damage and dying." +msgstr "ممبوليهکن ڤماٴين منريما کچدراٴن دان ماتي." #: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" +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 "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." +"Enable register confirmation when connecting to server.\n" +"If disabled, new account will be registered automatically." msgstr "" +"ممبوليهکن Ú¤Ú ØµØÙ† Ú¤Ù†Ø¯ÙØªØ±Ù† اڤابيلا Ù…Ú½Ù…Ø¨ÙˆÚ Ú©Ú¤Ø¯ ڤلاين.\n" +"جک دلومڤوهکن⹠اکاٴون بارو اکن Ø¯Ø¯ÙØªØ±Ú©Ù† سچارا اٴوتوماتيک." #: src/settings_translation_file.cpp -msgid "Undersampling" +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." msgstr "" +"ممبوليهکن ڤنچهاياٴن لمبوت Ø¯Ú Ù† اوکلوسي سکيتر ÙŠÚ Ø±ÙŠÚ Ú©Ø³.\n" +"لومڤوهکنڽ اونتوق کلاجوان اتاو اونتوق کليهتن بربيذا." #: 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." +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." msgstr "" +"بوليهکن تتڤن اونتوق Ù…Ù„Ø§Ø±Ú Ú©Ù„ÙŠØ¦Ù† لام درڤد Ù…Ú½Ù…Ø¨ÙˆÚ .\n" +"کليئن لام ماسيه سسواي دݢوناکن جک مريک تيدق رونتوه (کريش) اڤابيلا چوبا اونتوق " +"Ù…Ú½Ù…Ø¨ÙˆÚ Ú©Ú¤Ù„Ø§ÙŠÙ† بهاروâ¹\n" +"تتاڤي مريک Ù…ÙˆÚ Ú©ÙŠÙ† تيدق ممڤو Ù…Ú½ÙˆÚ©ÙˆÚ Ø³Ù…ÙˆØ§ ØµÙŠÙØª بهارو ÙŠÚ Ø§Ù†Ø¯Ø§ Ø³Ú Ú©Ø§Ú©Ù†." #: src/settings_translation_file.cpp msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video\n" -"cards.\n" -"This only works with the OpenGL video backend." +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." msgstr "" +"ممبوليهکن Ú¤Ú Ý¢ÙˆÙ†Ø§Ù´Ù† ڤلاين ميديا جارق جاٴوه (جک دبريکن اوليه ڤلاين).\n" +"ڤلاين جارق جاٴوه مناورکن چارا لبيه چڤت اونتوق موات تورون ميديا (چونتوه " +"تيکستور)\n" +"اڤابيلا Ù…Ú½Ù…Ø¨ÙˆÚ Ú©Ú¤Ù„Ø§ÙŠÙ† ڤرماٴينن." #: src/settings_translation_file.cpp -msgid "Shader path" +msgid "" +"Enable vertex buffer objects.\n" +"This should greatly improve graphics performance." msgstr "" +"ممبوليهکن اوبجيک ڤنيمبل بوچو.\n" +"اي ڤاتوت Ù…Ù†ÙŠÚ Ú©ØªÚ©Ù† ڤريستاسي ݢراÙÙŠÚ© Ø¯Ú Ù† باڽق." #: src/settings_translation_file.cpp msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" +"ڤندارب اونتوق Ú¤Ú Ø§Ú¤ÙˆÚ Ù† Ú¤Ù†Ø¯Ú Ù†.\n" +"چونتوهڽ: 0 اونتوق تيادا Ø§Ú¤ÙˆÚ Ù†â 1.0 اونتوق بياساâ 2.0 اونتوق دوا کالي ݢندا." #: src/settings_translation_file.cpp -msgid "Filmic tone mapping" +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." msgstr "" +"ممبوليهکن\\ملومڤوهکن ڤنجالنن ڤلاين IPv6.\n" +"دأبايکن جک تتڤن bind_address دتتڤکن.\n" +"ممرلوکن تتڤن enable_ipv6 دبوليهکن." #: src/settings_translation_file.cpp msgid "" @@ -3350,2138 +3055,2577 @@ msgid "" "appearance of high dynamic range images. Mid-range contrast is slightly\n" "enhanced, highlights and shadows are gradually compressed." msgstr "" +"ممبوليهکن ڤمتاٴن تونا سينماتيک 'Uncharted 2' (انچرتد ثو) اوليه Hable " +"(هيبل).\n" +"مڽلاکوکن Ù„Ú Ú©ÙˆÚ ØªÙˆÙ†Ø§ Ùيلم ÙوتوݢراÙÙŠ دان چارا اي Ù…Ú Ø§Ú Ý¢Ø±Ú©Ù† ڤنمڤيلن ايميج جارق\n" +"ديناميک ØªÙŠÚ Ý¢ÙŠ. بيذا جلس Ú¤Ø±ØªÚ Ù‡Ù† جولت Ø¯ØªÙŠÚ Ú©ØªÚ©Ù† سديکيت⹠تونجولن دان Ø¨Ø§ÙŠÚ Ù†\n" +"دممڤتکن سچارا برانسور." #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" +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 "" +msgid "Enables caching of facedir rotated meshes." +msgstr "ممبوليهکن Ú¤Ú Ø§Ý¢Ø±ÙŠÝ¢ØªÙ† Ø¬Ø¬Ø§Ø±ÙŠÚ ÙŠÚ Ø¯Ú¤ÙˆØªØ± دڤکسي Y ايايت (facedir)." #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -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 "Normalmaps strength" +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." msgstr "" +"ممبوليهکن سيستم بوڽي.\n" +"جک دلومڤوهکن⹠اي اکن ملومڤوهکن کسموا بوڽي دسموا تمڤت\n" +"دان کاولن بوڽي دالم ڤرماٴينن تيدق اکن برÙÙˆÚ Ø³ÙŠ.\n" +"Ú¤Ú ÙˆØ¨Ù‡Ù† تتڤن اين ممرلوکن ڤرمولاٴن سمولا." #: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." +msgid "Engine profiling data print interval" msgstr "" #: src/settings_translation_file.cpp -msgid "Normalmaps sampling" +msgid "Entity methods" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." +"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 "Parallax occlusion" -msgstr "" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Ø¨ÙŠÚ Ú©Ø§ÙŠ ڤر ساٴت (FPS) مکسيما اڤابيلا ڤرماٴينن دجيداکن." #: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" +msgid "FSAA" +msgstr "FSAA" #: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" +msgid "Factor noise" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" +msgid "Fall bobbing factor" +msgstr "Ùکتور Ø§Ú¤ÙˆÚ Ù† کجاتوهن" #: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" +msgid "Fallback font path" +msgstr "لالوان Ùون برباليق" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" +msgid "Fallback font shadow" +msgstr "Ø¨Ø§ÙŠÚ Ùون برباليق" #: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" +msgid "Fallback font shadow alpha" +msgstr "نيلاي Ø§Ù„ÙØ§ Ø¨Ø§ÙŠÚ Ùون برباليق" #: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" +msgid "Fallback font size" +msgstr "سايز Ùون برباليق" #: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" +msgid "Fast key" +msgstr "ککونچي ڤرݢرقن ڤنتس" #: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgid "Fast mode acceleration" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving Nodes" +msgid "Fast mode speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" +msgid "Fast movement" +msgstr "ڤرݢرقن ڤنتس" #: src/settings_translation_file.cpp msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." +"Fast movement (via the \"special\" key).\n" +"This requires the \"fast\" privilege on the server." msgstr "" +"برݢرق ڤنتس (Ø¯Ú Ù† ککونچي \"ايستيميوا\").\n" +"اين ممرلوکن کأيستيميواٴن \"ڤرݢرقن ڤنتس\" دالم ڤلاين ترسبوت." #: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" +msgid "Field of view" +msgstr "ميدن Ú¤Ù†Ø¯Ú " + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +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." +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." msgstr "" +"ÙØ§Ù´ÙŠÙ„ دالم لالوان client/serverlist/ ÙŠÚ Ù…Ú Ù†Ø¯ÙˆÚ ÙŠ سناراي\n" +"ڤلاين کݢمرن ÙŠÚ Ø¯Ú¤Ø§Ú¤Ø±Ú©Ù† دالم تب ڤماٴين راماي." #: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" +msgid "Filler depth" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." +msgid "Filler depth noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" +msgid "Filmic tone mapping" +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." +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." msgstr "" +"تيکستور ÙŠÚ Ø¯ØªØ§Ú¤ÙŠØ³ بوليه سباتيکن نيلاي RGB Ø¯Ú Ù† جيرن ÙŠÚ Ù„ÙˆØª سينر سڤنوهڽâ¹\n" +"ÙŠÚ Ù…Ø§Ù† Ú¤Ú Ø§ÙˆÚ¤ØªÙŠÙ…ÙˆÙ… PNG Ø³Ø±ÙŠÚ Ø§Ø¨Ø§ÙŠÚ©Ù†â¹ Ú©Ø§Ø¯Ú Ú©Ø§Ù„ مڽببکن سيسي Ý¢Ù„Ú¤ اتاو ØªØ±Ø§Ú Ú¤Ø¯\n" +"تيکستور لوت سينر. ݢونا ڤناڤيسن اين اونتوق ممبرسيهکن تيکستور ترسبوت کتيک\n" +"اي Ø³Ø¯Ú Ø¯Ù…ÙˆØ§ØªÚ©Ù†." #: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" +msgid "Filtering" +msgstr "ڤناڤيسن" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." +msgid "First of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Waving plants" +msgid "First of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" +msgid "Fixed map seed" +msgstr "بنيه ڤتا تتڤ" #: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" +msgid "Fixed virtual joystick" +msgstr "کايو بديق ماي تتڤ" #: src/settings_translation_file.cpp -msgid "Arm inertia" +msgid "Floatland density" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." +msgid "Floatland maximum Y" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS" +msgid "Floatland minimum Y" 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." +msgid "Floatland noise" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" +msgid "Floatland taper exponent" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." +msgid "Floatland tapering distance" msgstr "" #: src/settings_translation_file.cpp -msgid "Pause on lost window focus" +msgid "Floatland water level" 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 "" +msgid "Fly key" +msgstr "ککونچي ØªØ±Ø¨Ú " #: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" +msgid "Flying" +msgstr "ØªØ±Ø¨Ú " #: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" +msgid "Fog" +msgstr "کابوت" #: src/settings_translation_file.cpp -msgid "Near plane" -msgstr "" +msgid "Fog start" +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 "" +msgid "Fog toggle key" +msgstr "ککونچي توݢول کابوت" #: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" +msgid "Font bold by default" +msgstr "Ùون تبل سچارا لالايڽ" #: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" +msgid "Font italic by default" +msgstr "Ùون ايتاليک سچارا لالايڽ" #: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" +msgid "Font shadow" +msgstr "Ø¨Ø§ÙŠÚ Ùون" #: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" +msgid "Font shadow alpha" +msgstr "نيلاي Ø§Ù„ÙØ§ Ø¨Ø§ÙŠÚ Ùون" #: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" +msgid "Font size" +msgstr "سايز Ùون" #: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." -msgstr "" +msgid "Font size of the default font in point (pt)." +msgstr "سايز Ùون باݢي Ùون لالاي دالم اونيت تيتيق (pt)." #: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" +msgid "Font size of the fallback font in point (pt)." +msgstr "سايز Ùون باݢي Ùون برباليق دالم اونيت تيتيق (pt)." #: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" +msgid "Font size of the monospace font in point (pt)." +msgstr "سايز Ùون باݢي Ùون monospace دالم اونيت تيتيق (pt)." #: src/settings_translation_file.cpp -msgid "Full screen BPP" +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 "Bits per pixel (aka color depth) in fullscreen mode." +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" msgstr "" +"Ùورمت ميسيج Ø³ÙŠÙ…Ø¨Ú Ú¤Ù…Ø§Ù´ÙŠÙ†. رينتيتن بريکوت اياله Ú¤Ù…Ý¢Ú ØªÙ…Ú¤Øª ÙŠÚ ØµØ:\n" +"@name (اونتوق نام)â¹ @message (اونتوق ميسيج)â¹ @timestamp (ڤيليهن⹠اونتوق Ú†ÙˆÚ¤ " +"ماس)" #: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" +msgid "Format of screenshots." +msgstr "Ùورمت ÙŠÚ Ø¯Ý¢ÙˆÙ†Ø§Ú©Ù† اونتوق ØªÚ Ú©Ú¤ لاير." #: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" +msgid "Formspec Default Background Color" +msgstr "ورنا لاتر Ø¨Ù„Ø§Ú©Ú Ù„Ø§Ù„Ø§ÙŠ Ùورمسڤيک" #: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" +msgid "Formspec Default Background Opacity" +msgstr "Ú©Ù„Ý¢Ú¤Ù† لاتر Ø¨Ù„Ø§Ú©Ú Ù„Ø§Ù„Ø§ÙŠ Ùورمسڤيک" #: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" +msgid "Formspec Full-Screen Background Color" +msgstr "ورنا لاتر Ø¨Ù„Ø§Ú©Ú Ø³Ú©Ø±ÙŠÙ†-ڤنوه Ùورمسڤيک" #: src/settings_translation_file.cpp -msgid "Light curve gamma" -msgstr "" +msgid "Formspec Full-Screen Background Opacity" +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 "" +msgid "Formspec default background color (R,G,B)." +msgstr "ورنا لاتر Ø¨Ù„Ø§Ú©Ú Ø§ØµÙ„ Ùورمسڤيک (R,G,B)." #: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" +msgid "Formspec default background opacity (between 0 and 255)." +msgstr "Ú©Ù„Ý¢Ú¤Ù† اصل لاتر Ø¨Ù„Ø§Ú©Ú Ùورمسڤيک (انتارا 0 دان 255)." #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" +msgid "Formspec full-screen background color (R,G,B)." +msgstr "ورنا لاتر Ø¨Ù„Ø§Ú©Ú Ø³Ú©Ø±ÙŠÙ†-ڤنوه Ùورمسڤيک (R,G,B)." #: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" +msgid "Formspec full-screen background opacity (between 0 and 255)." +msgstr "Ú©Ù„Ý¢Ú¤Ù† لاتر Ø¨Ù„Ø§Ú©Ú Ø³Ú©Ø±ÙŠÙ†-ڤنوه Ùورمسڤيک (انتارا 0 دان 255)." #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" +msgid "Forward key" +msgstr "ککونچي کدڤن" #: src/settings_translation_file.cpp -msgid "Light curve boost" +msgid "Fourth of 4 2D noises that together define hill/mountain range height." 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." +msgid "Fractal type" msgstr "" #: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "بهاݢين درڤد جارق بوليه ليهت دمان کابوت مولا دجان" + +#: src/settings_translation_file.cpp +msgid "FreeType fonts" +msgstr "Ùون FreeType" #: src/settings_translation_file.cpp msgid "" -"Center of light curve boost range.\n" -"Where 0.0 is minimum light level, 1.0 is maximum light level." +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." msgstr "" #: src/settings_translation_file.cpp -msgid "Light curve boost spread" +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." msgstr "" +"سجاٴوه ماناکه بلوک٢ دهنتر کڤد کليئن⹠دڽاتاکن دالم اونيت بلوکڤتا (16 نود)." #: 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." +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" +"درڤد جارق کليئن داڤت تاهو ØªÙ†ØªÚ Ø§ÙˆØ¨Ø¬ÙŠÚ©â¹ Ø¯Ú½Ø§ØªØ§Ú©Ù† دالم بلوکڤتا (16 نود).\n" +"\n" +"منتڤکن نيلاي اين لبيه ØªÙŠÚ Ý¢ÙŠ درڤد جارق بلوک اکتي٠(active_block_range) جوݢ\n" +"اکن مڽببکن ڤلاين اونتوق Ù…Ú Ú©Ù„Ú©Ù† اوبجيک Ø§Ú©ØªÙŠÙ Ø³Ù‡ÙŠÚ Ý¢ کجارق اين\n" +"دالم اره Ú¤Ù†Ø¯Ú Ù† ڤماٴين. (اين بوليه ايلقکن موب تيبا٢ Ù‡ÙŠÙ„Ú Ø¯Ø±ÙŠ Ú¤Ù†Ø¯Ú Ù†)" #: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" +msgid "Full screen" +msgstr "سکرين ڤنوه" #: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" +msgid "Full screen BPP" +msgstr "BPP سکرين ڤنوه" #: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" +msgid "Fullscreen mode." +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 "" +msgid "GUI scaling" +msgstr "سکال GUI" #: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" +msgid "GUI scaling filter" +msgstr "ڤناڤيس سکال GUI" #: 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 "" +msgid "GUI scaling filter txr2img" +msgstr "ڤناڤيس سکال GUI جنيس txr2img" #: src/settings_translation_file.cpp -msgid "View bobbing factor" +msgid "Global callbacks" 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." +"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 "Fall bobbing factor" +msgid "" +"Gradient of light curve at maximum light level.\n" +"Controls the contrast of the highest light levels." msgstr "" +"کچرونن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ ڤد تاهڤ چهاي مکسيموم.\n" +"Ù…Ú Ø§ÙˆÙ„ بيذا جلس تاهڤ چهاي ØªØ±ØªÙŠÚ Ý¢ÙŠ." #: src/settings_translation_file.cpp msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +"Gradient of light curve at minimum light level.\n" +"Controls the contrast of the lowest light levels." msgstr "" +"کچرونن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ ڤد تاهڤ چهاي مينيموم.\n" +"Ù…Ú Ø§ÙˆÙ„ بيذا جلس تاهڤ چهاي ترنده." #: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" +msgid "Graphics" +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." +msgid "Gravity" msgstr "" #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" +msgid "Ground level" msgstr "" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." +msgid "Ground noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Console height" +msgid "HTTP mods" msgstr "" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" +msgid "HUD scale factor" +msgstr "Ùکتور سکالا ڤاڤر ڤندو (HUD)" #: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" +msgid "HUD toggle key" +msgstr "ککونچي منوݢول ڤاڤر ڤندو (HUD)" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." +msgid "" +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" #: src/settings_translation_file.cpp -msgid "Console alpha" +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 "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgid "Heat blend noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" +msgid "Heat noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" +msgid "Height component of the initial window size." +msgstr "کومڤونن ØªÙŠÚ Ý¢ÙŠ سايز ØªØªÙŠÚ Ú©Ú¤ اول." #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +msgid "Height noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background color (R,G,B)." +msgid "Height select noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Default Background Opacity" +msgid "High-precision FPU" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec default background opacity (between 0 and 255)." +msgid "Hill steepness" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" +msgid "Hill threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." +msgid "Hilliness1 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box color" +msgid "Hilliness2 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." +msgid "Hilliness3 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Selection box width" +msgid "Hilliness4 noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "لامن اوتام ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن." #: src/settings_translation_file.cpp -msgid "Crosshair color" +msgid "" +"Horizontal acceleration in air when jumping or falling,\n" +"in nodes per second per second." msgstr "" +"ڤچوتن منداتر دأودارا اڤابيلا ملومڤت اتاو جاتوهâ¹\n" +"دالم اونيت نود ڤر ساٴت ڤر ساٴت." #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." +msgid "" +"Horizontal and vertical acceleration in fast mode,\n" +"in nodes per second per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Crosshair alpha" +msgid "" +"Horizontal and vertical acceleration on ground or when climbing,\n" +"in nodes per second per second." msgstr "" +"ڤچوتن منداتر دان منݢق اتس تانه اتاو کتيک ممنجتâ¹\n" +"دالم اونيت نود ڤر ساٴت ڤر ساٴت." #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" +msgid "Hotbar next key" +msgstr "ککونچي ايتم ستروسڽ دالم هوتبر" #: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" +msgid "Hotbar previous key" +msgstr "ککونچي ايتم سبلومڽ دالم هوتبر" #: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" +msgid "Hotbar slot 1 key" +msgstr "ککونچي سلوت هوتبر 1" #: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" +msgid "Hotbar slot 10 key" +msgstr "ککونچي سلوت هوتبر 10" #: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" +msgid "Hotbar slot 11 key" +msgstr "ککونچي سلوت هوتبر 11" #: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" +msgid "Hotbar slot 12 key" +msgstr "ککونچي سلوت هوتبر 12" #: 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 "" +msgid "Hotbar slot 13 key" +msgstr "ککونچي سلوت هوتبر 13" #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "Ùکتور سکالا ڤاڤر ڤندو (HUD)" +msgid "Hotbar slot 14 key" +msgstr "ککونچي سلوت هوتبر 14" #: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "Ù…Ú Ø§ÙˆØ¨Ù‡ سايز ايليمن Ú¤Ø§Ù„Ú Ú¤Ø§Ú¤Ø± ڤندو (hudbar)." +msgid "Hotbar slot 15 key" +msgstr "ککونچي سلوت هوتبر 15" #: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" +msgid "Hotbar slot 16 key" +msgstr "ککونچي سلوت هوتبر 16" #: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" +msgid "Hotbar slot 17 key" +msgstr "ککونچي سلوت هوتبر 17" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" +msgid "Hotbar slot 18 key" +msgstr "ککونچي سلوت هوتبر 18" #: 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 "" +msgid "Hotbar slot 19 key" +msgstr "ککونچي سلوت هوتبر 19" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" +msgid "Hotbar slot 2 key" +msgstr "ککونچي سلوت هوتبر 2" #: 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 "" +msgid "Hotbar slot 20 key" +msgstr "ککونچي سلوت هوتبر 20" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" +msgid "Hotbar slot 21 key" +msgstr "ککونچي سلوت هوتبر 21" #: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" +msgid "Hotbar slot 22 key" +msgstr "ککونچي سلوت هوتبر 22" #: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" +msgid "Hotbar slot 23 key" +msgstr "ککونچي سلوت هوتبر 23" #: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" +msgid "Hotbar slot 24 key" +msgstr "ککونچي سلوت هوتبر 24" #: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" +msgid "Hotbar slot 25 key" +msgstr "ککونچي سلوت هوتبر 25" #: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" +msgid "Hotbar slot 26 key" +msgstr "ککونچي سلوت هوتبر 26" #: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" +msgid "Hotbar slot 27 key" +msgstr "ککونچي سلوت هوتبر 27" #: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" +msgid "Hotbar slot 28 key" +msgstr "ککونچي سلوت هوتبر 28" #: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" +msgid "Hotbar slot 29 key" +msgstr "ککونچي سلوت هوتبر 29" #: 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 "" +msgid "Hotbar slot 3 key" +msgstr "ککونچي سلوت هوتبر 3" #: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" +msgid "Hotbar slot 30 key" +msgstr "ککونچي سلوت هوتبر 30" #: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" +msgid "Hotbar slot 31 key" +msgstr "ککونچي سلوت هوتبر 31" #: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" +msgid "Hotbar slot 32 key" +msgstr "ککونچي سلوت هوتبر 32" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" +msgid "Hotbar slot 4 key" +msgstr "ککونچي سلوت هوتبر 4" #: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" +msgid "Hotbar slot 5 key" +msgstr "ککونچي سلوت هوتبر 5" #: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" +msgid "Hotbar slot 6 key" +msgstr "ککونچي سلوت هوتبر 6" #: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" +msgid "Hotbar slot 7 key" +msgstr "ککونچي سلوت هوتبر 7" #: 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 "" +msgid "Hotbar slot 8 key" +msgstr "ککونچي سلوت هوتبر 8" #: src/settings_translation_file.cpp -msgid "Autoscaling mode" +msgid "Hotbar slot 9 key" +msgstr "ککونچي سلوت هوتبر 9" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." msgstr "" #: src/settings_translation_file.cpp msgid "" -"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!" +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." msgstr "" +"سچڤت مان ݢلورا چچاٴير اکن برݢرق. نيلاي ØªÙŠÚ Ý¢ÙŠ = لبيه لاجو.\n" +"جيک نيلاي نيݢاتيÙ⹠ݢلورا چچاٴير اکن برݢرق Ú©Ø¨Ù„Ø§Ú©Ú .\n" +"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." #: src/settings_translation_file.cpp -msgid "Show entity selection boxes" +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 "Menus" +msgid "How wide to make rivers." msgstr "" #: src/settings_translation_file.cpp -msgid "Clouds in menu" +msgid "Humidity blend noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." +msgid "Humidity noise" msgstr "" #: src/settings_translation_file.cpp -msgid "GUI scaling" +msgid "Humidity variation for biomes." 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." +msgid "IPv6" msgstr "" #: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" +msgid "IPv6 server" +msgstr "ڤلاين IPv6" #: 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)." +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." msgstr "" +"جيک Ø¨ÙŠÚ Ú©Ø§ÙŠ ڤر ساٴت (FPS) اکن ناٴيق لبيه ØªÙŠÚ Ý¢ÙŠ درڤد نيلاي اينâ¹\n" +"ØØ¯Ú©Ù† اي Ø¯Ú Ù† تيدورکنڽ سوڤايا تيدق بازيرکن کواسا CPU Ø¯Ú Ù† سيا٢." #: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." msgstr "" +"جيک دلومڤوهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ØªØ±Ø¨Ú Ù„Ø§Ø¬Ùˆ\n" +"سکيراڽ کدوا-دوا مود ØªØ±Ø¨Ú Ø¯Ø§Ù† مود ڤرݢرقن ڤنتس دبوليهکن." #: src/settings_translation_file.cpp msgid "" -"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." +"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 "Tooltip delay" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." msgstr "" +"جيک دبوليهکن برسام مود ØªØ±Ø¨Ú â¹ Ú¤Ù…Ø§Ù´ÙŠÙ† بوليه ØªØ±Ø¨Ú Ù…Ù†Ø±ÙˆØ³ÙŠ نود ڤڤجل.\n" +"اين ممرلوکن کأيستيميواٴن \"تمبوس بلوک\" دالم ڤلاين ترسبوت." #: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." msgstr "" +"جيک دبوليهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ڤنجت کباوه دان\n" +"تورون دالم مود ØªØ±Ø¨Ú â¹ Ù…Ú Ý¢Ù†ØªÙŠÚ©Ù† ککونچي \"سلينڤ\"." #: src/settings_translation_file.cpp -msgid "Append item name" +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." msgstr "" +"جک دبوليهکن⹠سموا تيندقن اکن دراکم اونتوق Ý¢ÙˆÙ„ÙˆÚ Ø¨Ø§Ù„ÙŠÙ‚.\n" +"ڤيليهن اين هاڽ دباچ کتيک ڤلاين برمولا." #: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "جک دبوليهکن⹠اي اکن ملومڤوهکن ڤنچݢهن ڤنيڤوان دالم ڤماٴين راماي." #: src/settings_translation_file.cpp -msgid "FreeType fonts" +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 "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." +"If enabled, makes move directions relative to the player's pitch when flying " +"or swimming." msgstr "" +"جيک دبوليهکن⹠اي ممبواتکن اره ڤرݢرقن Ø±ÙŠÙ„Ø§ØªÙŠÙ Ø¯Ú Ù† Ú¤ÙŠÚ† ڤماٴين اڤابيلا ØªØ±Ø¨Ú " +"اتاو Ø¨Ø±Ù†Ú ." #: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" +msgid "If enabled, new players cannot join with an empty password." +msgstr "جک دبوليهکن⹠ڤماٴين٢ بارو تيدق بوليه ماسوق Ø¯Ú Ù† کات لالوان ÙŠÚ Ú©ÙˆØ³ÙˆÚ ." #: src/settings_translation_file.cpp -msgid "Font italic by default" +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." msgstr "" +"جيک دبوليهکن⹠اندا بوليه ملتق بلوک دکدودوقن برديري (کاکي + ارس مات).\n" +"اين Ø³Ø§Ú Øª برݢونا اڤابيلا بکرجا Ø¯Ú Ù† کوتق نود دکاوسن ÙŠÚ Ú©Ú†ÙŠÙ„." #: src/settings_translation_file.cpp -msgid "Font shadow" +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 "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." +"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 "Font shadow alpha" +msgid "If this is set, players will always (re)spawn at the given position." msgstr "" +"جک تتڤن اين دتتڤکن⹠ڤماٴين اکن سنتياسا دلاهيرکن (سمولا) دکت کدودوقن ÙŠÚ " +"دبريکن." #: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgid "Ignore world errors" msgstr "" #: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" +msgid "In-Game" +msgstr "دالم ڤرماٴينن" #: src/settings_translation_file.cpp -msgid "Font size of the default font in point (pt)." +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." msgstr "" +"نيلاي Ø§Ù„ÙØ§ لاتر Ø¨Ù„Ø§Ú©Ú Ú©ÙˆÙ†Ø³ÙˆÙ„ Ø³ÙŠÙ…Ø¨Ú Ø¯Ø§Ù„Ù… ڤرماٴينن (کلݢڤن⹠انتارا 0 دان 255)." #: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" +msgid "In-game chat console background color (R,G,B)." +msgstr "ورنا لاتر Ø¨Ù„Ø§Ú©Ú Ú©ÙˆÙ†Ø³ÙˆÙ„ Ø³ÙŠÙ…Ø¨Ú Ø¯Ø§Ù„Ù… ڤرماٴينن (R,G,B)." #: 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." +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." msgstr "" +"نيلاي Ú©ØªÙŠÚ Ý¢ÙŠÙ† کونسول Ø³ÙŠÙ…Ø¨Ú Ø¯Ø§Ù„Ù… ڤرماٴينن⹠انتارا 0.1 (10%) دان 1.0 (100%)." #: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" +msgid "Inc. volume key" +msgstr "ککونچي کواتکن بوڽي" #: src/settings_translation_file.cpp -msgid "Italic font path" +msgid "Initial vertical speed when jumping, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Bold and italic font path" +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" msgstr "" #: src/settings_translation_file.cpp -msgid "Monospace font size" +msgid "Instrument chatcommands on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" msgstr "" #: src/settings_translation_file.cpp -msgid "Monospace font path" +msgid "" +"Instrument the action function of Active Block Modifiers on registration." 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." +"Instrument the action function of Loading Block Modifiers on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Bold monospace font path" +msgid "Instrument the methods of entities on registration." msgstr "" #: src/settings_translation_file.cpp -msgid "Italic monospace font path" +msgid "Instrumentation" msgstr "" #: src/settings_translation_file.cpp -msgid "Bold and italic monospace font path" +msgid "Interval of saving important changes in the world, stated in seconds." msgstr "" +"Ø³Ù„Ú Ù…Ø§Ø³ دأنتارا ڤڽيمڤنن ڤروبهن Ú¤Ù†ØªÙŠÚ Ø¯Ø§Ù„Ù… دنيا⹠دڽاتاکن دالم اونيت ساٴت." #: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" +msgid "Interval of sending time of day to clients." +msgstr "Ø³Ù„Ú Ø¯Ø£Ù†ØªØ§Ø±Ø§ Ú¤Ú Ù‡Ù†ØªØ±Ù† معلومت ماس ڤلاين کڤد کليئن." #: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." -msgstr "" +msgid "Inventory items animations" +msgstr "انيماسي ايتم اينÛينتوري" #: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" +msgid "Inventory key" +msgstr "ککونچي اينÛينتوري" #: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" +msgid "Invert mouse" +msgstr "تتيکوس Ø³ÙˆÚ Ø³Ú " #: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" +msgid "Invert vertical mouse movement." +msgstr "Ù…Ú½ÙˆÚ Ø³Ú Ú©Ù† ڤرݢرقن تتيکوس منݢق." #: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgid "Italic font path" +msgstr "لالوان Ùون ايتاليک" #: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" +msgid "Italic monospace font path" +msgstr "لالوان Ùون monospace ايتاليک" #: 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 "" +msgid "Item entity TTL" +msgstr "TTL اينتيتي ايتم" #: src/settings_translation_file.cpp -msgid "Chat font size" +msgid "Iterations" 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." +"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 "Screenshot folder" -msgstr "" +msgid "Joystick ID" +msgstr "ID کايو بديق" #: 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 "" +msgid "Joystick button repetition interval" +msgstr "Ø³Ù„Ú Ù…Ø§Ø³ Ú¤Ú Ø§ÙˆÙ„Ú Ù† Ø¨ÙˆØªÚ Ú©Ø§ÙŠÙˆ بديق" #: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" +#, fuzzy +msgid "Joystick deadzone" +msgstr "جنيس کايو بديق" #: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" +msgid "Joystick frustum sensitivity" +msgstr "کڤيکاٴن ÙØ±ÙˆØ³ØªÙˆÙ… کايو بديق" #: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" +msgid "Joystick type" +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." +"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 "DPI" +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 "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." +"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 "Enable console window" +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 "" -"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)." +msgid "Julia w" msgstr "" #: src/settings_translation_file.cpp -msgid "Sound" +msgid "Julia x" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enables the sound system.\n" -"If disabled, this completely disables all sounds everywhere and the in-game\n" -"sound controls will be non-functional.\n" -"Changing this setting requires a restart." +msgid "Julia y" msgstr "" #: src/settings_translation_file.cpp -msgid "Volume" +msgid "Julia z" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." -msgstr "" +msgid "Jump key" +msgstr "ککونچي لومڤت" #: src/settings_translation_file.cpp -msgid "Mute sound" +msgid "Jumping speed" 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." +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ú ÙˆØ±Ú Ú©Ù† جارق Ú¤Ù†Ø¯Ú .\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Client" +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق ممڤرلاهنکن بوڽي.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Network" +#, 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 "Server address" +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منجاتوهکن ايتم ÙŠÚ Ø³Ø¯Ú Ø¯Ú¤ÙŠÙ„ÙŠÙ‡.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منمبه جارق Ú¤Ù†Ø¯Ú .\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Remote port" +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ú ÙˆØ§ØªÚ©Ù† بوڽي.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق ملومڤت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Prometheus listener address" +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق برݢرق ڤنتس دالم مود ڤرݢرقن ڤنتس.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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" +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماٴين Ú©Ø¨Ù„Ø§Ú©Ú .\n" +"جوݢ اکن ملومڤوهکن أوتوڤرݢرقن⹠اڤابيلا اکتيÙ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Saving map received from server" +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماٴين کدڤن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماٴين ککيري.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Connect to external media server" +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù† ڤماٴين ککانن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق ممبيسوکن ڤرماٴينن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Client modding" +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق ممبوک ØªØªÙŠÚ Ú©Ú¤ Ø³ÙŠÙ…Ø¨Ú Ø§ÙˆÙ†ØªÙˆÙ‚ مناٴيڤ ارهن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق ممبوک ØªØªÙŠÚ Ú©Ú¤ Ø³ÙŠÙ…Ø¨Ú Ø§ÙˆÙ†ØªÙˆÙ‚ مناٴيڤ ارهن تمڤتن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Serverlist URL" +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق ممبوک ØªØªÙŠÚ Ú©Ú¤ Ø³ÙŠÙ…Ø¨Ú .\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق ممبوک اينÛينتوري.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Serverlist file" +#, 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 "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-11 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-12 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-13 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Enable register confirmation" +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-14 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-15 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-16 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-17 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mapblock limit" +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-18 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-19 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Show debug info" +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-20 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-21 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server / Singleplayer" +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-22 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server name" +msgid "" +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-23 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Name of the server, to be displayed when players join and in the serverlist." +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-24 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server description" +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-25 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-26 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." +msgid "" +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-27 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server URL" +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-28 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." +msgid "" +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-29 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Announce server" +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-30 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-31 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Announce to this serverlist." +msgid "" +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-32 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Strip color codes" +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-8 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-5 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server port" +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت ڤرتام دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-4 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Bind address" +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه ايتم ستروسڽ ددالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-9 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Strict protocol checking" +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه Ø¨Ø§Ø±Ú Ø³Ø¨Ù„ÙˆÙ…Ú½ دهوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-2 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Remote media" +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-7 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-6 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "IPv6 server" +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-10 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مميليه سلوت Ú©-3 دالم هوتبر.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق مڽلينڤ.\n" +"جوݢ دݢوناکن اونتوق تورون باواه کتيک ممنجت دان دالم اٴير جيک تتڤن " +"aux1_descends دلومڤوهکن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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)" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق برتوکر انتارا کاميرا Ø§ÙˆØ±Ú Ú¤Ø±ØªØ§Ù… دان کتيݢ.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ù†Ú Ú©Ú¤ ݢمبر لاير.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول أوتوڤرݢرقن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Max. packets per iteration" +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول مود سينماتيک.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن ڤتا ميني.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Default game" +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤنتس.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول مود ØªØ±Ø¨Ú .\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Message of the day" +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول مود تمبوس بلوک.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." +msgid "" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول مود ڤرݢرقن Ú¤ÙŠÚ†.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum users" +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول Ú¤Ú Ù…Ø³Ú©ÙŠÙ†ÙŠÙ† کاميرا. هاڽ دݢوناکن اونتوق Ú¤Ù…Ø¨Ø§Ú ÙˆÙ†Ù†.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." +msgid "" +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن Ø³ÙŠÙ…Ø¨Ú .\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Map directory" +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن معلومت ڽهڤڤيجت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن کابوت.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Item entity TTL" +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول ڤاڤر ڤندو (HUD).\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول ڤاڤرن کونسول Ø³ÙŠÙ…Ø¨Ú Ø¨Ø³Ø±.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Default stack size" +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول ڤمبوکه. دݢوناکن اونتوق Ú¤Ù…Ø¨Ø§Ú ÙˆÙ†Ù†.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق منوݢول جارق Ú¤Ù†Ø¯Ú Ù† تيادا ØØ¯.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Damage" +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"ککونچي اونتوق Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† Ú¤Ù†Ø¯Ú Ù† زوم اڤابيلا دبنرکن.\n" +"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "ØªÙ†Ø¯Ú Ú¤Ù…Ø§Ù´ÙŠÙ† ÙŠÚ Ù…Ú Ù‡Ù†ØªØ± ميسيج لبيه درڤد X ستياڤ 10 ساٴت." #: src/settings_translation_file.cpp -msgid "Creative" +msgid "Lake steepness" msgstr "" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "Lake threshold" msgstr "" #: src/settings_translation_file.cpp -msgid "Fixed map seed" +msgid "Language" 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." +msgid "Large cave depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Default password" +msgid "Large cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "New users need to input this password." +msgid "Large cave minimum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Default privileges" +msgid "Large cave proportion flooded" 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 "" +msgid "Large chat console key" +msgstr "ککونچي کونسول Ø³ÙŠÙ…Ø¨Ú Ø¨Ø³Ø±" #: src/settings_translation_file.cpp -msgid "Basic privileges" -msgstr "" +msgid "Leaves style" +msgstr "ݢاي داٴون" #: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" msgstr "" +"ݢاي داٴون:\n" +"- براݢم: سموا سيسي کليهتن\n" +"- Ø±ÙŠÚ Ú©Ø³: هاڽ سيسي لوار کليهتن⹠جيک special_tiles ÙŠÚ Ø¯ØªÙ†ØªÙˆÚ©Ù† دݢوناکن\n" +"- Ù„Ý¢Ú¤: ملومڤوهکن لوت سينر" #: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" +msgid "Left key" +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." +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." msgstr "" #: src/settings_translation_file.cpp -msgid "Player transfer distance" +msgid "" +"Length of liquid waves.\n" +"Requires waving liquids to be enabled." msgstr "" +"Ú¤Ù†Ø¬Ú Ý¢Ù„ÙˆØ±Ø§ چچاٴير.\n" +"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." #: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgid "Length of time between Active Block Modifier (ABM) execution cycles" msgstr "" #: src/settings_translation_file.cpp -msgid "Player versus player" +msgid "Length of time between NodeTimer execution cycles" msgstr "" #: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." +msgid "Length of time between active block management cycles" msgstr "" #: src/settings_translation_file.cpp -msgid "Mod channels" +msgid "" +"Level of logging to be written to debug.txt:\n" +"- <nothing> (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 "Enable mod channels support." -msgstr "" +msgid "Light curve boost" +msgstr "تولقن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ" #: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" +msgid "Light curve boost center" +msgstr "تيتيق ØªÚ Ù‡ تولقن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ" #: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" +msgid "Light curve boost spread" +msgstr "سيبرن تولقن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ" #: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" +msgid "Light curve gamma" +msgstr "ݢام Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ" #: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" +msgid "Light curve high gradient" +msgstr "کچرونن ØªÙŠÚ Ý¢ÙŠ Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ" #: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" +msgid "Light curve low gradient" +msgstr "کچرونن رنده Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ" #: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." +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 "Rollback recording" +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 "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." +msgid "Liquid fluidity" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat message format" +msgid "Liquid fluidity smoothing" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" +msgid "Liquid loop max" msgstr "" #: src/settings_translation_file.cpp -msgid "Shutdown message" +msgid "Liquid queue purge time" msgstr "" #: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." +msgid "Liquid sinking" msgstr "" #: src/settings_translation_file.cpp -msgid "Crash message" +msgid "Liquid update interval in seconds." msgstr "" #: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." +msgid "Liquid update tick" msgstr "" #: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" +msgid "Load the game profiler" 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." +"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 "Active object send range" +msgid "Loading Block Modifiers" 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)" +msgid "Lower Y limit of dungeons." msgstr "" #: src/settings_translation_file.cpp -msgid "Active block range" +msgid "Lower Y limit of floatlands." 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." +msgid "Main menu script" msgstr "" #: src/settings_translation_file.cpp -msgid "Max block send distance" +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" +"بواتکن ورنا کابوت دان Ù„Ø§Ú ÙŠØª Ø¨Ø±Ý¢Ù†ØªÙˆÚ Ú©Ú¤Ø¯ وقتو (ÙØ¬Ø±\\ماتاهاري) دان اره Ú¤Ù†Ø¯Ú ." #: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" +msgid "Makes all liquids opaque" +msgstr "بواتکن سموا چچاٴير منجادي Ù„Ý¢Ú¤" #: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." +msgid "Map Compression Level for Disk Storage" msgstr "" #: src/settings_translation_file.cpp -msgid "Time send interval" +msgid "Map Compression Level for Network Transfer" msgstr "" #: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" +msgid "Map directory" +msgstr "ديريکتوري ڤتا" #: src/settings_translation_file.cpp -msgid "Time speed" +msgid "Map generation attributes specific to Mapgen Carpathian." 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." +"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 "World start time" +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 "Time of day when a new world is started, in millihours (0-23999)." +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 save interval" +msgid "Map generation attributes specific to Mapgen v5." msgstr "" #: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." +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 "Chat message max length" +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 "Set the maximum character length of a chat message sent by clients." +msgid "Map generation limit" msgstr "" #: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" +msgid "Map save interval" +msgstr "Ø³Ù„Ú Ù…Ø§Ø³ ڤڽيمڤنن ڤتا" #: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgid "Mapblock limit" +msgstr "ØØ¯ بلوک ڤتا" #: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" +msgid "Mapblock mesh generation delay" +msgstr "Ù„Ú Ù‡ ماس ڤنجاناٴن Ø¬Ø¬Ø§Ø±ÙŠÚ Ø¨Ù„ÙˆÚ© ڤتا" #: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." +msgid "Mapblock mesh generator's MapBlock cache size in MB" msgstr "" +"ساٴيز کيش بلوکڤتا اونتوق ڤنجان Ø¬Ø¬Ø§Ø±ÙŠÚ Ø¨Ù„ÙˆÚ©Ú¤ØªØ§ دالم اونيت ميݢاباٴيت (MB)" #: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" +msgid "Mapblock unload timeout" +msgstr "ØØ¯ ماس ڽهموات بلوک ڤتا" #: src/settings_translation_file.cpp -msgid "Default acceleration" +msgid "Mapgen Carpathian" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." +msgid "Mapgen Carpathian specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Acceleration in air" +msgid "Mapgen Flat" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." +msgid "Mapgen Flat specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Fast mode acceleration" +msgid "Mapgen Fractal" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." +msgid "Mapgen Fractal specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Walking speed" +msgid "Mapgen V5" msgstr "" #: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." +msgid "Mapgen V5 specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Sneaking speed" +msgid "Mapgen V6" msgstr "" #: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." +msgid "Mapgen V6 specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Fast mode speed" +msgid "Mapgen V7" msgstr "" #: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." +msgid "Mapgen V7 specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Climbing speed" +msgid "Mapgen Valleys" msgstr "" #: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." +msgid "Mapgen Valleys specific flags" msgstr "" #: src/settings_translation_file.cpp -msgid "Jumping speed" +msgid "Mapgen debug" msgstr "" #: src/settings_translation_file.cpp -msgid "Initial vertical speed when jumping, in nodes per second." +msgid "Mapgen name" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid fluidity" +msgid "Max block generate distance" msgstr "" #: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." -msgstr "" +msgid "Max block send distance" +msgstr "جارق مکسيموم Ú¤Ú Ù‡Ù†ØªØ±Ù† بلوک" #: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" +msgid "Max liquids processed per step." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Maximum liquid resistance. Controls deceleration when entering liquid at\n" -"high speed." +msgid "Max. clearobjects extra blocks" msgstr "" #: src/settings_translation_file.cpp -msgid "Liquid sinking" -msgstr "" +msgid "Max. packets per iteration" +msgstr "Ø¨ÙŠÚ Ú©ÙŠØ³Ù† مکسيما ستياڤ للرن" #: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." -msgstr "" +msgid "Maximum FPS" +msgstr "FPS مکسيما" #: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" +#, fuzzy +msgid "Maximum FPS when the window is not focused, or when the game is paused." +msgstr "Ø¨ÙŠÚ Ú©Ø§ÙŠ ڤر ساٴت (FPS) مکسيما اڤابيلا ڤرماٴينن دجيداکن." #: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." -msgstr "" +msgid "Maximum forceloaded blocks" +msgstr "جومله مکسيموم بلوک ÙŠÚ Ø¯Ú¤Ù‚Ø³Ø§ موات" #: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" +msgid "Maximum hotbar width" +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)." +msgid "Maximum limit of random number of large caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" +msgid "Maximum limit of random number of small caves per mapchunk." 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)." +"Maximum liquid resistance. Controls deceleration when entering liquid at\n" +"high speed." msgstr "" #: src/settings_translation_file.cpp -msgid "Unload unused server data" +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" +"جومله بلوک مکسيموم ÙŠÚ Ø¯Ù‡Ù†ØªØ± سرنتق ڤر کليئن.\n" +"جومله مکسيموم دکيرا سچارا ديناميک:\n" +"جومله_مکس = بولت_ناٴيق((#کليئن + Ú¤Ú Ý¢ÙˆÙ†Ø§_مکس) * ڤر_کليئن \\ 4 )" #: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." +msgid "Maximum number of blocks that can be queued for loading." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum objects per block" +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 statically stored objects in a block." +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 "Synchronous SQLite" +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 "See https://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" +msgid "Maximum number of forceloaded mapblocks." +msgstr "جومله مکسيموم بلوکڤتا ÙŠÚ Ø¯Ú¤Ù‚Ø³Ø§ موات." #: src/settings_translation_file.cpp -msgid "Dedicated server step" +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." msgstr "" +"جومله بلوک ڤتا مکسيموم ÙŠÚ Ú©Ù„ÙŠØ¦Ù† بوليه سيمڤن دالم ميموري.\n" +"تتڤکن کڤد -1 اونتوق جومله تنڤ ØØ¯." #: src/settings_translation_file.cpp msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." msgstr "" +"جومله مکسيما Ø¨ÙŠÚ Ú©ÙŠØ³Ù† ÙŠÚ Ø¯Ù‡Ù†ØªØ± ڤد ستياڤ Ù„Ú Ú©Ù‡ Ú¤Ú Ù‡Ù†ØªØ±Ù†â¹\n" +"جک اندا ممڤوڽاٴي Ø³Ù…Ø¨ÙˆÚ Ù† ÙŠÚ Ú¤Ø±Ù„Ø§Ù‡Ù† ماک چوبا Ú©ÙˆØ±Ú Ú©Ù†Ú½â¹\n" +"نامون Ø¬Ø§Ú Ù† Ú©ÙˆØ±Ú Ú©Ù† کڤد نيلاي دباوه ݢندا دوا جومله کليئن ساسرن." #: src/settings_translation_file.cpp -msgid "Active block management interval" -msgstr "" +msgid "Maximum number of players that can be connected simultaneously." +msgstr "ØØ¯ جومله ڤماٴين مکسيموم ÙŠÚ Ø¨ÙˆÙ„ÙŠÙ‡ Ù…Ú½Ù…Ø¨ÙˆÚ Ø³Ø±Ù†ØªÙ‚." #: src/settings_translation_file.cpp -msgid "Length of time between active block management cycles" -msgstr "" +msgid "Maximum number of recent chat messages to show" +msgstr "جومله مکسيموم ميسيج Ø³ÙŠÙ…Ø¨Ú ØªØ±Ø¨Ø§Ø±Ùˆ اونتوق دتونجوقکن" #: src/settings_translation_file.cpp -msgid "ABM interval" +msgid "Maximum number of statically stored objects in a block." msgstr "" #: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" +msgid "Maximum objects per block" msgstr "" #: src/settings_translation_file.cpp -msgid "NodeTimer interval" +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." msgstr "" +"ڤرکادرن مکسيما اونتوق ØªØªÙŠÚ Ú©Ú¤ سماس ÙŠÚ Ø¯Ý¢ÙˆÙ†Ø§Ú©Ù† اونتوق هوتبر.\n" +"برݢونا جيک اد سسواتو ÙŠÚ Ø§Ú©Ù† دڤاڤرکن دسبله کانن اتاو کيري هوتبر." #: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" +msgid "Maximum simultaneous block sends per client" +msgstr "جومله بلوک مکسيموم ÙŠÚ Ø¯Ù‡Ù†ØªØ± سرنتق کڤد ستياڤ کليئن" #: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" +msgid "Maximum size of the out chat queue" +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." +"Maximum size of the out chat queue.\n" +"0 to disable queueing and -1 to make the queue size unlimited." msgstr "" +"ساٴيز مکسيموم باريس ݢيلير کلوار Ø³ÙŠÙ…Ø¨Ú .\n" +"0 اونتوق لومڤوهکن باريس ݢيلير دان -1 اونتوق بواتکن ساٴيز باريس ݢيلير تيادا " +"ØØ¯." #: src/settings_translation_file.cpp -msgid "Liquid loop max" +msgid "Maximum time in ms a file download (e.g. a mod download) may take." msgstr "" #: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" +msgid "Maximum users" +msgstr "ØØ¯ جومله Ú¤Ú Ý¢ÙˆÙ†Ø§" #: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" +msgid "Menus" +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 "" +msgid "Mesh cache" +msgstr "کيش Ø¬Ø¬Ø§Ø±ÙŠÚ " #: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" +msgid "Message of the day" +msgstr "ميسيج هاري اين" #: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" +msgid "Message of the day displayed to players connecting." +msgstr "ميسيج هاري اين ÙŠÚ Ø§Ú©Ù† دڤاڤرکن کڤد ڤماٴين ÙŠÚ Ù…Ú½Ù…Ø¨ÙˆÚ ." #: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" +msgid "Method used to highlight selected object." +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)." +msgid "Minimal level of logging to be written to chat." msgstr "" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" +msgid "Minimap" +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 "" +msgid "Minimap key" +msgstr "ککونچي ڤتا ميني" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" +msgid "Minimap scan height" +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)" +msgid "Minimum limit of random number of large caves per mapchunk." msgstr "" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" +msgid "Minimum limit of random number of small caves per mapchunk." 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 "" +msgid "Minimum texture size" +msgstr "سايز تيکستور مينيموم" #: src/settings_translation_file.cpp -msgid "Security" -msgstr "" +msgid "Mipmapping" +msgstr "ڤمتاٴن ميڤ" #: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" +msgid "Mod channels" +msgstr "سالوران مودس" #: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" +msgid "Modifies the size of the hudbar elements." +msgstr "Ù…Ú Ø§ÙˆØ¨Ù‡ سايز ايليمن Ú¤Ø§Ù„Ú Ú¤Ø§Ú¤Ø± ڤندو (hudbar)." #: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" +msgid "Monospace font path" +msgstr "لالوان Ùون monospace" #: 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 "" +msgid "Monospace font size" +msgstr "سايز Ùون monospace" #: src/settings_translation_file.cpp -msgid "HTTP mods" +msgid "Mountain height noise" 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." +msgid "Mountain noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Profiling" +msgid "Mountain variation noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Load the game profiler" +msgid "Mountain zero level" 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 "" +msgid "Mouse sensitivity" +msgstr "کڤيکاٴن تتيکوس" #: src/settings_translation_file.cpp -msgid "Default report format" +msgid "Mouse sensitivity multiplier." +msgstr "ڤندارب کڤيکاٴن تتيکوس." + +#: src/settings_translation_file.cpp +msgid "Mud noise" msgstr "" #: src/settings_translation_file.cpp msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." msgstr "" +"ڤندارب اونتوق Ø§Ú¤ÙˆÚ Ù† تيمبول ØªÚ Ý¢Ù„Ù….\n" +"چونتوهڽ: 0 اونتوق تيادا Ø§Ú¤ÙˆÚ Ù†â 1.0 اونتوق بياساâ 2.0 اونتوق دوا کالي ݢندا." #: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" +msgid "Mute key" +msgstr "ککونچي بيسو" + +#: src/settings_translation_file.cpp +msgid "Mute sound" +msgstr "بيسوکن بوڽي" #: src/settings_translation_file.cpp msgid "" -"The file path relative to your worldpath in which profiles will be saved to." +"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 "Instrumentation" +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 "Entity methods" +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." msgstr "" +"نام ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم سناراي " +"ڤلاين." #: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" +msgid "Near plane" +msgstr "دکت ساته" #: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" +msgid "Network" +msgstr "Ø±Ú Ú©Ø§ÙŠÙ†" #: src/settings_translation_file.cpp msgid "" -"Instrument the action function of Active Block Modifiers on registration." +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." msgstr "" +"ڤورت Ø±Ú Ú©Ø§ÙŠÙ† اونتوق Ø¯Ú Ø± (UDP).\n" +"نيلاي اين اکن دأتسي اڤابيلا ممولاکن ڤلاين دري مينو اوتام." #: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" +msgid "New users need to input this password." +msgstr "Ú¤Ú Ý¢ÙˆÙ†Ø§ بارو مستي مماسوقکن کات لالوان اين." #: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" +msgid "Noclip" +msgstr "تمبوس بلوک" #: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" +msgid "Noclip key" +msgstr "ککونچي تمبوس بلوک" #: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" +msgid "Node highlighting" +msgstr "تونجولن نود" #: src/settings_translation_file.cpp -msgid "Global callbacks" +msgid "NodeTimer interval" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" +msgid "Noises" msgstr "" #: src/settings_translation_file.cpp -msgid "Builtin" +msgid "Number of emerge threads" msgstr "" #: src/settings_translation_file.cpp msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" +"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 "Profiler" +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 "" -"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." +msgid "Online Content Repository" msgstr "" #: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" +msgid "Opaque liquids" +msgstr "چچاٴير Ù„Ý¢Ú¤" #: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" +msgid "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "Ú©Ù„Ý¢Ú¤Ù† (Ø§Ù„ÙØ§) Ø¨Ø§ÙŠÚ Ø¨Ù„Ø§Ú©Ú Ùون لالاي⹠نيلاي انتارا 0 دان 225." #: 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 "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "Ú©Ù„Ý¢Ú¤Ù† (Ø§Ù„ÙØ§) Ø¨Ø§ÙŠÚ Ø¨Ù„Ø§Ú©Ú Ùون برباليق⹠نيلاي انتارا 0 دان 225." #: src/settings_translation_file.cpp -msgid "Language" +msgid "" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." msgstr "" +"بوک مينو جيدا اڤابيلا Ùوکوس ØªØªÙŠÚ Ú©Ú¤ Ù‡ÙŠÙ„Ú .\n" +"تيدق جيدا جيک Ùورمسڤيک دبوک." #: src/settings_translation_file.cpp msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." +"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 "" +"لالوان Ùون برباليق.\n" +"جيک تتڤن “freetype†دبوليهکن: اي مستيله Ùون TrueType.\n" +"جيک تتڤن “freetype†دلومڤوهکن: اي مستيله Ùون ڤتا بيت اتاو Ûيکتور XML.\n" +"Ùون اين اکن دݢوناکن باݢي Ø³Ø³ØªÚ Ù‡ بهاس اتاو جيک Ùون لالاي تيدق ترسديا." #: src/settings_translation_file.cpp -msgid "Debug log level" +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 "" -"Level of logging to be written to debug.txt:\n" -"- <nothing> (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" +"Path to shader directory. If no path is defined, default location will be " +"used." msgstr "" +"لالوان کديريکتوري Ú¤Ù…Ø¨Ø§ÙŠÚ . جيک تيادا لالوان دتعريÙکن⹠لوکاسي لالاي اکن " +"دݢوناکن." #: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" +msgid "Path to texture directory. All textures are first searched from here." +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." +"Path to the default font.\n" +"If “freetype†setting is enabled: Must be a TrueType font.\n" +"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." msgstr "" +"لالوان Ùون لالاي.\n" +"جيک تتڤن “freetype†دبوليهکن: اي مستيله Ùون TrueType.\n" +"جيک تتڤن “freetype†دلومڤوهکن: اي مستيله Ùون ڤتا بيت اتاو Ûيکتور XML.\n" +"Ùون برباليق اکن دݢوناکن سکيراڽ Ùون اين تيدق داڤت دمواتکن." #: src/settings_translation_file.cpp -msgid "Chat log level" +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 "" +"لالوان Ùون monospace.\n" +"جيک تتڤن “freetype†دبوليهکن: اي مستيله Ùون TrueType.\n" +"جيک تتڤن “freetype†دلومڤوهکن: اي مستيله Ùون ڤتا بيت اتاو Ûيکتور XML.\n" +"Ùون اين دݢوناکن اونتوق عنصور سڤرتي کونسول دان سکرين ڤمبوکه." #: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" +msgid "Pause on lost window focus" +msgstr "جيدا کتيک Ù‡ÙŠÙ„Ú Ùوکوس ØªØªÙŠÚ Ú©Ú¤" #: src/settings_translation_file.cpp -msgid "IPv6" +msgid "Per-player limit of queued blocks load from disk" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." +msgid "Per-player limit of queued blocks to generate" msgstr "" #: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" +msgid "Physics" +msgstr "ايکوت Ùيزيک" #: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" +msgid "Pitch move key" +msgstr "ککونچي ڤرݢرقن Ú¤ÙŠÚ†" #: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" +msgid "Pitch move mode" +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 "" +#, fuzzy +msgid "Place key" +msgstr "ککونچي ØªØ±Ø¨Ú " #: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" +#, fuzzy +msgid "Place repetition interval" +msgstr "Ø³Ù„Ú Ú¤Ú Ø§ÙˆÙ„Ú Ù† کليک کانن" #: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." msgstr "" +"ڤماٴين بوليه ØªØ±Ø¨Ú ØªÙ†Ú¤ ترکسن Ø¯Ú Ù† ݢراÛيتي.\n" +"اين ممرلوکن کأيستيميواٴن \"ØªØ±Ø¨Ú \" دالم ڤلاين ترسبوت." #: src/settings_translation_file.cpp -msgid "High-precision FPU" +msgid "Player name" msgstr "" #: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" +msgid "Player transfer distance" +msgstr "جارق وميندهن ڤماٴين" #: src/settings_translation_file.cpp -msgid "Main menu style" -msgstr "" +msgid "Player versus player" +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" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." msgstr "" +"ڤورت اونتوق Ù…Ú½Ù…Ø¨ÙˆÚ (UDP).\n" +"امبيل ڤرهاتيان بهاوا ميدن ڤورت دالم مينو اوتام Ù…Ú Ø§ØªØ³ÙŠ تتڤن اين." #: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." +msgid "" +"Prevent digging and placing from repeating when holding the mouse buttons.\n" +"Enable this when you dig or place too often by accident." msgstr "" +"منچݢه ݢالي دان ڤلتقن درڤد Ø¨Ø±Ø§ÙˆÙ„Ú Ú©ØªÙŠÚ© تروس منکن Ø¨ÙˆØªÚ ØªØªÙŠÚ©ÙˆØ³.\n" +"بوليهکن تتڤن اين اڤابيلا اندا ݢالي اتاو لتق سچارا تيدق Ø³Ú Ø§Ø¬ ترلالو کرڤ." #: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" +msgid "Prevent mods from doing insecure things like running shell commands." msgstr "" #: src/settings_translation_file.cpp @@ -5491,465 +5635,574 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen name" +msgid "Privileges that players with basic_privs can grant" msgstr "" +"کأيستيميواٴن٢ ÙŠÚ Ø¨ÙˆÙ„ÙŠÙ‡ دبريکن اوليه ڤماين ÙŠÚ Ù…Ù…Ú¤ÙˆÚ½Ø§Ù´ÙŠ کأيستيميواٴن " +"basic_privs" #: 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)." +msgid "Profiler" msgstr "" #: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" +msgid "Profiler toggle key" +msgstr "ککونچي توݢول ڤمبوکه" #: src/settings_translation_file.cpp -msgid "Water surface level of the world." +msgid "Profiling" msgstr "" #: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" +msgid "Prometheus listener address" +msgstr "علامت Ú¤Ù†Ø¯Ú Ø± Prometheus" #: src/settings_translation_file.cpp msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." +"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 "" +"علامت Ú¤Ù†Ø¯Ú Ø± Prometheus.\n" +"جک minetest دکومڤيل Ø¯Ú Ù† تتڤن ENABLE_PROMETHEUS دبوليهکن,\n" +"ممبوليهکن Ú¤Ù†Ø¯Ú Ø± ميتريک اونتوق Prometheus ڤد علامت برکناٴن.\n" +"ميتريک بوليه دأمبيل د http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp -msgid "Map generation limit" +msgid "Proportion of large caves that contain liquid." 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." +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." msgstr "" +"ججاري کلواسن اون دڽاتاکن دالم جومله 64 نود ڤيتق اون.\n" +"نيلاي لبيه دري 26 اکن مولا Ù…Ú Ù‡Ø§Ø³ÙŠÙ„Ú©Ù† Ú¤Ù…ÙˆØªÙˆÚ Ù† تاجم دسودوت کاوسن اون." #: src/settings_translation_file.cpp -msgid "" -"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." +msgid "Raises terrain to make valleys around the rivers." msgstr "" #: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgid "Random input" +msgstr "اينڤوت راوق" #: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" +msgid "Range select key" +msgstr "ککونچي جارق ڤميليهن" #: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" +msgid "Recent Chat Messages" +msgstr "ميسيج Ø³ÙŠÙ…Ø¨Ú ØªØ±Ú©ÙŠÙ†ÙŠ" #: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" +msgid "Regular font path" +msgstr "لالوان Ùون بياسا" #: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" +msgid "Remote media" +msgstr "ميديا جارق جاٴوه" #: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" +msgid "Remote port" +msgstr "ڤورت جارق جاٴوه" #: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." +msgid "" +"Remove color codes from incoming chat messages\n" +"Use this to stop players from being able to use color in their messages" msgstr "" +"Ø¨ÙˆØ§Ú Ú©ÙˆØ¯ ورنا درڤد ميسيج Ø³ÙŠÙ…Ø¨Ú Ù…Ù†Ø¯Ø§ØªÚ \n" +"ݢوناکن اين اونتوق هنتيکن ڤماٴين درڤد Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† ورنا دالم ميسيج مريک" #: src/settings_translation_file.cpp -msgid "Humidity blend noise" +msgid "Replaces the default main menu with a custom one." msgstr "" #: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." +msgid "Report path" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V5" +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 "Mapgen V5 specific flags" +msgid "Ridge mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." +msgid "Ridge noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Cave width" +msgid "Ridge underwater noise" 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." +msgid "Ridged mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" +msgid "Right key" +msgstr "ککومچي ککانن" #: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." +msgid "River channel depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Small cave minimum number" +msgid "River channel width" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." +msgid "River depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Small cave maximum number" +msgid "River noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." +msgid "River size" msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave minimum number" +msgid "River valley width" msgstr "" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" +msgid "Rollback recording" +msgstr "راکمن Ý¢ÙˆÙ„ÙˆÚ Ø¨Ø§Ù„ÙŠÙ‚" #: src/settings_translation_file.cpp -msgid "Large cave maximum number" +msgid "Rolling hill size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." +msgid "Rolling hills spread noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" +msgid "Round minimap" +msgstr "ڤتا ميني بولت" #: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." -msgstr "" +msgid "Safe digging and placing" +msgstr "Ú¤Ú Ý¢Ø§Ù„ÙŠÙ† دان ڤلتقن سلامت" #: src/settings_translation_file.cpp -msgid "Cavern limit" +msgid "Sandy beaches occur when np_beach exceeds this value." msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" +msgid "Save the map received by the client on disk." +msgstr "سيمڤن ڤتا ÙŠÚ Ø¯ØªØ±ÙŠÙ…Ø§ اوليه کليئن دالم چکرا." #: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" +msgid "Save window size automatically when modified." +msgstr "سيمڤن سايز ØªØªÙŠÚ Ú©Ú¤ سچارا أوتوماتيک کتيک داوبه." #: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" +msgid "Saving map received from server" +msgstr "سيمڤن ڤتا دتريما دري ڤلاين ڤرماٴينن" #: src/settings_translation_file.cpp -msgid "Cavern threshold" +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" +"مڽسوايکن GUI Ø¯Ú Ù† نيلاي دتنتوکن اوليه Ú¤Ú Ý¢ÙˆÙ†Ø§.\n" +"ݢوناکن ڤناڤيس انتيألياس جيرن تردکت اونتوق مڽسوايکن GUI.\n" +"اين ممبوليهکن سيسي تاجم دلمبوتکن⹠دان سباتيکن ڤيکسل اڤابيلا\n" +"مڽسوايتورونکن⹠نامون اي اکن Ù…Ú Ø§Ø¨ÙˆØ±Ú©Ù† Ø³Ø³ØªÚ Ù‡ ڤيکسل دسيسي\n" +"اڤابيلا ايميج دسسوايکن Ø¯Ú Ù† سايز بوکن اينتيݢر." #: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" +msgid "Screen height" +msgstr "ØªÙŠÚ Ý¢ÙŠ سکرين" #: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" +msgid "Screen width" +msgstr "ليبر سکرين" #: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" +msgid "Screenshot folder" +msgstr "Ùولدر ØªÚ Ú©Ú¤ لاير" #: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" +msgid "Screenshot format" +msgstr "Ùورمت ØªÚ Ú©Ú¤ لاير" #: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" +msgid "Screenshot quality" +msgstr "کواليتي ØªÚ Ú©Ú¤ لاير" #: src/settings_translation_file.cpp -msgid "Noises" +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." msgstr "" +"کواليتي ØªÚ Ú©Ú¤ لاير. هاڽ دݢوناکن اونتوق Ùورمت JPEG.\n" +"1 مقصودڽ Ú¤Ø§Ù„ÙŠÚ ØªØ±ÙˆÙ‚â 100 مقصودڽ Ú¤Ø§Ù„ÙŠÚ Ø¨Ø§Ý¢ÙˆØ³.\n" +"ݢوناکن 0 اونتوق کواليتي لالاي." #: src/settings_translation_file.cpp -msgid "Filler depth noise" +msgid "Seabed noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." +msgid "Second of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Factor noise" +msgid "Second of two 3D noises that together define tunnels." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." +msgid "Security" msgstr "" #: src/settings_translation_file.cpp -msgid "Height noise" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" +msgid "Selection box border color (R,G,B)." +msgstr "ورنا سمڤادن کوتق ڤميليهن (R,G,B)." #: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" +msgid "Selection box color" +msgstr "ورنا کوتق ڤميليهن" #: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" +msgid "Selection box width" +msgstr "ليبر کوتق ڤميليهن" #: src/settings_translation_file.cpp -msgid "Cave2 noise" +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 "Second of two 3D noises that together define tunnels." -msgstr "" +msgid "Server / Singleplayer" +msgstr "ڤلاين ڤرماٴينن \\ ڤماٴين Ú¤Ø±Ø³Ø£ÙˆØ±Ú Ù†" #: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" +msgid "Server URL" +msgstr "URL ڤلاين" #: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" +msgid "Server address" +msgstr "علامت ڤلاين" #: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" +msgid "Server description" +msgstr "ڤريهل ڤلاين ڤرماٴينن" #: src/settings_translation_file.cpp -msgid "3D noise defining terrain." -msgstr "" +msgid "Server name" +msgstr "نام ڤلاين ڤرماٴينن" #: src/settings_translation_file.cpp -msgid "Dungeon noise" -msgstr "" +msgid "Server port" +msgstr "ڤورت ڤلاين" #: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." +msgid "Server side occlusion culling" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen V6" -msgstr "" +msgid "Serverlist URL" +msgstr "URL سناراي ڤلاين" #: src/settings_translation_file.cpp -msgid "Mapgen V6 specific flags" -msgstr "" +msgid "Serverlist file" +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." +"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 "Desert noise threshold" -msgstr "" +msgid "Set the maximum character length of a chat message sent by clients." +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." +"Set to true to enable waving leaves.\n" +"Requires shaders to be enabled." msgstr "" +"تتڤکن کڤد \"true\" اونتوق ممبوليهکن داٴون Ø¨Ø±Ý¢ÙˆÙŠÚ .\n" +"ممرلوکن Ú¤Ù…Ø¨Ø§ÙŠÚ Ø§ÙˆÙ†ØªÙˆÙ‚ دبوليهکن." #: src/settings_translation_file.cpp -msgid "Beach noise threshold" +msgid "" +"Set to true to enable waving liquids (like water).\n" +"Requires shaders to be enabled." msgstr "" +"تتڤکن کڤد \"true\" اونتوق ممبوليهکن چچاٴير برݢلورا (ماچم اٴير).\n" +"ممرلوکن Ú¤Ù…Ø¨Ø§ÙŠÚ Ø§ÙˆÙ†ØªÙˆÙ‚ دبوليهکن." #: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." +msgid "" +"Set to true to enable waving plants.\n" +"Requires shaders to be enabled." msgstr "" +"تتڤکن کڤد \"true\" اونتوق ممبوليهکن تومبوهن Ø¨Ø±Ý¢ÙˆÙŠÚ .\n" +"ممرلوکن Ú¤Ù…Ø¨Ø§ÙŠÚ Ø§ÙˆÙ†ØªÙˆÙ‚ دبوليهکن." #: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" +msgid "Shader path" +msgstr "لالوان Ú¤Ù…Ø¨Ø§ÙŠÚ " #: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" +"Ú¤Ù…Ø¨Ø§ÙŠÚ Ù…Ù…Ø¨ÙˆÙ„ÙŠÙ‡Ú©Ù† کسن Ûيسوال مندالم دان بوليه Ù…Ù†ÙŠÚ Ú©ØªÚ©Ù†\n" +"ڤريستاسي اونتوق Ø³Ø³ØªÚ Ù‡ کد Ûيديو.\n" +"نامون اي هاڽ برÙÙˆÚ Ø³ÙŠ Ø¯Ú Ù† ڤمبهاݢين Ø¨Ù„Ø§Ú©Ú Ûيديو OpenGL." #: src/settings_translation_file.cpp -msgid "Terrain higher noise" +msgid "" +"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " +"drawn." msgstr "" +"Ø§ÙˆÙØ³ÙŠØª Ø¨Ø§ÙŠÚ Ùون لالاي (دالم اونيت ڤيکسل). جيک 0⹠ماک Ø¨Ø§ÙŠÚ ØªÙŠØ¯Ù‚ اکن دلوکيس." #: src/settings_translation_file.cpp -msgid "Y-level of higher terrain that creates cliffs." +msgid "" +"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " +"be drawn." msgstr "" +"Ø§ÙˆÙØ³ÙŠØª Ø¨Ø§ÙŠÚ Ùون برباليق (دالم اونيت ڤيکسل). جيک 0⹠ماک Ø¨Ø§ÙŠÚ ØªÙŠØ¯Ù‚ اکن دلوکيس." #: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "بنتوق ڤتا ميني. دبوليهکن = بولت⹠دلومڤوهکن = ڤيتق." #: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" +msgid "Show debug info" +msgstr "تونجوقکن معلومت ڽهڤڤيجت" #: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" +msgid "Show entity selection boxes" +msgstr "تونجوقکن کوتق ڤميليهن اينتيتي" #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." msgstr "" #: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Ùون تبل سچارا لالايڽ" #: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" +msgid "Shutdown message" +msgstr "ميسيج ڤنوتوڤن" #: src/settings_translation_file.cpp -msgid "Beach noise" +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 "Defines areas with sandy beaches." +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." msgstr "" +"ساٴيز کيش بلوکڤتا اونتوق ڤنجان Ø¬Ø¬Ø§Ø±ÙŠÚ . مناٴيقکن نيلاي اين\n" +"اکن Ù…Ù†ÙŠÚ Ú©ØªÚ©Ù† جومله % هيت Ú©ÙŠØ´â¹ Ù…Ú ÙˆØ±Ú Ú©Ù† داتا ÙŠÚ Ú¤Ø±Ù„Ùˆ دسالين\n" +"درڤد جالور اوتام⹠لالو Ù…Ú ÙˆØ±Ú Ú©Ù† کترن." #: src/settings_translation_file.cpp -msgid "Biome noise" +msgid "Slice w" msgstr "" #: src/settings_translation_file.cpp -msgid "Cave noise" +msgid "Slope and fill work together to modify the heights." msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of number of caves." +msgid "Small cave maximum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Trees noise" +msgid "Small cave minimum number" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." +msgid "Small-scale humidity variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -msgid "Apple trees noise" +msgid "Small-scale temperature variation for blending biomes on borders." msgstr "" #: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" +msgid "Smooth lighting" +msgstr "ڤنچهاياٴن لمبوت" #: src/settings_translation_file.cpp -msgid "Mapgen V7" +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." msgstr "" +"ملمبوتکن کاميرا اڤابيلا مليهت Ø³Ú©Ù„ÙŠÙ„ÙŠÚ . جوݢ دکنلي سباݢاي ڤلمبوتن Ú¤Ú Ù„ÙŠÙ‡ØªÙ† اتاو " +"ڤلمبوتن تتيکوس.\n" +"برݢونا اونتوق مراکم Ûيديو." #: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." msgstr "" +"ملمبوتکن ڤموترن کاميرا دالم مود سينماتيک. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." #: 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 "" +msgid "Smooths rotation of camera. 0 to disable." +msgstr "ملمبوتکن ڤموترن کاميرا. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ." #: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" +msgid "Sneak key" +msgstr "ککونچي سلينڤ" #: src/settings_translation_file.cpp -msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." +msgid "Sneaking speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland minimum Y" +msgid "Sneaking speed, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." -msgstr "" +msgid "Sound" +msgstr "بوڽي" #: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" +msgid "Special key" +msgstr "ککونچي ايستيميوا" #: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." +msgid "Special key for climbing/descending" +msgstr "ککونچي اونتوق ممنجت\\منورون" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." msgstr "" +"منتڤکن URL دري مان کليئن Ù…Ú Ù…Ø¨ÙŠÙ„ Ù…ÙŠØ¯ÙŠØ§â¹ Ù…Ú Ý¢Ù†ØªÙŠÚ©Ù† UDP.\n" +"$filename مستيله بوليه دأکسيس درڤد $remote_media$filename ملالوٴي\n" +"cURL (سوده تنتو⹠remote_media مستي براخير Ø¯Ú Ù† تندا Ú†ÙˆÙ†Ø¯ÙˆÚ ).\n" +"ÙØ§Ù´ÙŠÙ„ ÙŠÚ ØªÙŠØ¯Ù‚ وجود اکن دأمبيل Ø¯Ú Ù† چارا بياسا." #: src/settings_translation_file.cpp -msgid "Floatland tapering distance" +msgid "" +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." msgstr "" +"منتڤکن ساٴيز تيندنن لالاي باݢي نود⹠ايتم دان التن.\n" +"امبيل ڤرهاتيان بهاوا مودس اتاو ڤرماٴينن بوليه تتڤکن سچارا خصوص تيندنن اونتوق " +"Ø³Ø³ØªÚ Ù‡ (اتاو سموا) ايتم." #: src/settings_translation_file.cpp msgid "" -"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." +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." msgstr "" +"سيبر جولت تولقن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ.\n" +"Ù…Ú Ø§ÙˆÙ„ ليبر جولت اونتوق دتولق.\n" +"سيسيهن ڤياواي Gauss (ݢاٴوس) تولقن Ù„Ú Ú©ÙˆÚ Ú†Ù‡Ø§ÙŠ." #: src/settings_translation_file.cpp -msgid "Floatland taper exponent" +msgid "Static spawnpoint" +msgstr "تيتيق لاهير ستاتيک" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" 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." +msgid "Step mountain size noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Floatland density" +msgid "Step mountain spread noise" msgstr "" #: src/settings_translation_file.cpp -#, c-format +msgid "Strength of 3D mode parallax." +msgstr "ککواتن ڤارالکس مود 3D." + +#: src/settings_translation_file.cpp 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." +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." msgstr "" +"ککواتن تولقن چهاي.\n" +"تيݢ ڤاراميتر 'تولقن' منتعريÙÚ©Ù† جولت Ù„Ú Ú©ÙˆÚ \n" +"چهاي ÙŠÚ Ø¯ØªÙˆÙ„Ù‚ دالم ڤنچهاياٴن." #: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" +msgid "Strict protocol checking" +msgstr "ڤمريقساٴن ڤروتوکول کتت" + +#: src/settings_translation_file.cpp +msgid "Strip color codes" +msgstr "Ø¨ÙˆØ§Ú Ú©ÙˆØ¯ ورنا" #: src/settings_translation_file.cpp msgid "" @@ -5966,131 +6219,222 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain alternative noise" +msgid "Synchronous SQLite" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain persistence noise" +msgid "Temperature variation for biomes." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgid "Terrain alternative noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." +msgid "Terrain base noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Mountain height noise" +msgid "Terrain height" msgstr "" #: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." +msgid "Terrain higher noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Ridge underwater noise" +msgid "Terrain noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." +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 "Mountain noise" +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 "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +msgid "Terrain persistence noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" +msgid "Texture path" +msgstr "لالوان تيکستور" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." +msgid "" +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" +"تيکستور ڤد نود بوليه دجاجرکن سام اد کڤد نود اتاو دنيا.\n" +"مود ڤرتام لبيه سسواي اونتوق بندا ماچم ميسين⹠ڤرابوت⹠دان لاٴين٢⹠ماناکال\n" +"مود کدوا ممبواتکن ØªÚ Ý¢ دان بلوک ميکرو لبيه سسواي Ø¯Ú Ù† ڤرسکيترنڽ.\n" +"نامون بݢيتو⹠کران اين چيري بارو⹠ماک اي Ù…ÙˆÚ Ú©ÙŠÙ† تيدق دݢوناکن دڤلاين لامâ¹\n" +"ڤيليهن اين ممبوليهکن ڤمقساٴن اي اونتوق جنيس نود ترتنتو. امبيل ڤرهاتين\n" +"بهاوا اياڽ Ø¯Ø§Ú Ý¢Ú¤ دالم اوجيکاجي دان Ù…ÙˆÚ Ú©ÙŠÙ† تيدق برÙÙˆÚ Ø³ÙŠ Ø¯Ú Ù† بتول." #: src/settings_translation_file.cpp -msgid "Floatland noise" +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 "" -"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." +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" +msgid "The depth of dirt or other biome filler node." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Carpathian specific flags" +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." msgstr "" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." -msgstr "" +msgid "The identifier of the joystick to use" +msgstr "Ú¤Ú Ù†Ù„ ڤستي کايو بديق ÙŠÚ Ø¯Ý¢ÙˆÙ†Ø§Ú©Ù†" #: src/settings_translation_file.cpp -msgid "Base ground level" -msgstr "" +msgid "The length in pixels it takes for touch screen interaction to start." +msgstr "Ú¤Ù†Ø¬Ú Ø¯Ø§Ù„Ù… ڤيکسيل اونتوق ممولاکن اينتراکسي سکرين سنتوه." #: src/settings_translation_file.cpp -msgid "Defines the base ground level." +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." msgstr "" +"ØªÙŠÚ Ý¢ÙŠ مکسيموم ڤرموکاٴن چچاٴير برݢلورا.\n" +"4.0 = ØªÙŠÚ Ý¢ÙŠ ݢلورا اياله دوا نود.\n" +"0.0 = ݢلورا تيدق برݢرق Ù„Ú Ø³ÙˆÚ .\n" +"نيلاي اصلڽ 1.0 (1/2 نود).\n" +"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن." #: src/settings_translation_file.cpp -msgid "River channel width" -msgstr "" +msgid "The network interface that the server listens on." +msgstr "انتاراموک Ø±Ú Ú©Ø§ÙŠÙ† ÙŠÚ Ú¤Ù„Ø§ÙŠÙ† Ø¯Ú Ø±." #: src/settings_translation_file.cpp -msgid "Defines the width of the river channel." +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." msgstr "" +"کأيستيميواٴن ÙŠÚ Ú¤Ú Ý¢ÙˆÙ†Ø§Ù¢ بارو داڤت سچارا اٴوتوماتيک.\n" +"ليهت /privs دالم ڤرماٴينن اونتوق سناراي ڤنوه کأيستيميواٴن ڤلاين دان " +"کونÙيݢوراسي مودس." #: src/settings_translation_file.cpp -msgid "River channel depth" +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." msgstr "" +"راديوس جيليد بلوک دسکيتر ستياڤ ڤماٴين ÙŠÚ ØªØ±ØªØ¹Ù„ÙˆÙ‚ کڤد\n" +"بندا بلوک اکتيÙ⹠دڽاتاکن دالم بلوکڤتا (16 نود).\n" +"دالم بلوک اکتيÙ⹠اوبجيک دمواتکن دان ABM دجالنکن.\n" +"اين جوݢ جارق مينيموم دمان اوبجيک اکتي٠(موب) دککلکن.\n" +"اين ڤرلو دتتڤکن برسام نيلاي بلوک جارق Ú¤Ú Ù‡Ù†ØªØ±Ù† اوبجيک اکتي٠" +"(active_object_send_range_blocks)." #: src/settings_translation_file.cpp -msgid "Defines the depth of the river channel." +#, fuzzy +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" +"ترجمهن بهاݢين Ø¨Ù„Ø§Ú©Ú Ø§ÙˆÙ†ØªÙˆÙ‚ Irrlicht.\n" +"اندا ڤرلو ممولاکن سمولا سلڤس Ù…Ú Ø§ÙˆØ¨Ù‡ تتڤن اين.\n" +"نوت: دAndroidâ¹ Ú©Ú©Ù„Ú©Ù† Ø¯Ú Ù† OGLES1 جيک تيدق ڤستي! اڤليکاسي Ù…ÙˆÚ Ú©ÙŠÙ† تيدق\n" +"بوليه دمولاکن جيک Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† تتڤن لاٴين. دڤلاتÙورم لاٴين⹠OpenGL دشورکنâ¹\n" +"دان اي اياله ساتو-ساتوڽ ڤماچو ÙŠÚ Ù…Ù…Ú¤ÙˆÚ½Ø§Ù´ÙŠ Ø³ÙˆÚ©ÙˆÚ Ù† Ú¤Ù…Ø¨Ø§ÙŠÚ Ú©ØªÙŠÚ© اين." #: src/settings_translation_file.cpp -msgid "River valley width" +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." msgstr "" +"کڤيکاٴن ڤکسي کايو بديق اونتوق Ù…Ú Ý¢Ø±Ù‚Ú©Ù†\n" +"ÙØ±ÙˆØ³ØªÙˆÙ… Ú¤Ú Ù„ÙŠÙ‡ØªÙ† دالم ڤرماٴينن." #: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." msgstr "" +"ککواتن (Ú©Ý¢Ù„Ú¤Ù†) Ú¤Ù…Ø¨Ø§ÙŠÚ Ù†ÙˆØ¯ اوکلوسي-سکيتر.\n" +"لبيه رنده لبيه ݢلڤ⹠لبيه ØªÙŠÚ Ý¢ÙŠ لبيه ØªØ±Ø§Ú . نيلاي ÙŠÚ ØµØ\n" +"اونتوق تتڤن اين هاڽله دري 0.25 Ù‡ÙŠÚ Ý¢ 4.0. جيک نيلاي\n" +"دلوار جولت⹠اي اکن دتتڤکن کڤد نيلاي ØµØ ÙŠÚ ØªØ±Ø¯Ú©Øª." #: src/settings_translation_file.cpp -msgid "Hilliness1 noise" +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 "First of 4 2D noises that together define hill/mountain range height." +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 "Hilliness2 noise" +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." msgstr "" +"Ø³Ù„Ú Ù…Ø§Ø³ دالم ساٴت⹠دامبيل انتارا ڤريستيوا ÙŠÚ Ø¨Ø±Ø§ÙˆÙ„Ú Ù†\n" +"اڤابيلا منکن کومبيناسي Ø¨ÙˆØªÚ Ú©Ø§ÙŠÙˆ بديق." #: src/settings_translation_file.cpp -msgid "Second of 4 2D noises that together define hill/mountain range height." +#, fuzzy +msgid "" +"The time in seconds it takes between repeated node placements when holding\n" +"the place button." msgstr "" +"جومله ماس دالم ساٴت دامبيل اونتوق ملاکوکن کليک کانن ÙŠÚ Ø¨Ø±Ø§ÙˆÙ„Ú Ø§Ú¤Ø§Ø¨ÙŠÙ„Ø§\n" +"ڤماٴين منکن Ø¨ÙˆØªÚ ØªØªÙŠÚ©ÙˆØ³ کانن تنڤ ملڤسکنڽ." #: src/settings_translation_file.cpp -msgid "Hilliness3 noise" +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 @@ -6098,488 +6442,688 @@ msgid "Third of 4 2D noises that together define hill/mountain range height." msgstr "" #: src/settings_translation_file.cpp -msgid "Hilliness4 noise" +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 "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "وقتو دالم هاري اڤابيلا دنيا بارو دمولاکن⹠دالم ميليجم (0-23999)." #: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" +msgid "Time send interval" +msgstr "Ø³Ù„Ú Ú¤Ú Ù‡Ù†ØªØ±Ù† ماس" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgid "Time speed" +msgstr "کلاجوان ماس" #: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" -msgstr "" +msgid "Timeout for client to remove unused map data from memory." +msgstr "ØØ¯ ماس اونتوق کليئن Ù…Ù…Ø¨ÙˆØ§Ú Ú¤ØªØ§ ÙŠÚ ØªÙŠØ¯Ù‚ دݢوناکن دري ميموري." #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." msgstr "" +"اونتوق Ù…Ú ÙˆØ±Ú Ú©Ù† لمبڤڽ تيندق بالس⹠ڤميندهن بلوک دڤرلاهنکن اڤابيلا ڤماٴين " +"ممبينا سسوات.\n" +"تتڤن اين منتڤکن براڤ لام اياڽ دڤرلاهنکن ستله ملتقکن اتاٴو Ù…Ú Ø§Ù„ÙŠÙ‡Ú©Ù† سسبواه " +"نود." #: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" +msgid "Toggle camera mode key" +msgstr "ککونچي توݢول مود کاميرا" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgid "Tooltip delay" +msgstr "Ù„Ú Ù‡ تيڤ التن" #: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" +msgid "Touch screen threshold" +msgstr "نيلاي Ø§Ù…Ø¨Ú Ø³Ú©Ø±ÙŠÙ† سنتوه" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." +msgid "Trees noise" msgstr "" #: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" +msgid "Trilinear filtering" +msgstr "ڤناڤيسن تريلينيار" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." msgstr "" +"True = 256\n" +"False = 128\n" +"بوليه دݢوناکن اونتوق ملنچرکن ڤتا ميني ڤد ميسين ÙŠÚ Ú¤Ø±Ù„Ø§Ù‡Ù†." #: src/settings_translation_file.cpp -msgid "Step mountain size noise" +msgid "Trusted mods" msgstr "" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." -msgstr "" +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "URL کڤد سناراي ڤلاين ÙŠÚ Ø¯Ú¤Ø§Ú¤Ø±Ú©Ù† دالم تب ڤرماٴينن راماي." #: src/settings_translation_file.cpp -msgid "River noise" -msgstr "" +msgid "Undersampling" +msgstr "ڤنسمڤلن Ú¤Ú ÙˆØ±Ú Ù†" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." msgstr "" +"ڤنسمڤلن Ú¤Ú ÙˆØ±Ú Ù† سروڤ سڤرتي Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† ريسولوسي سکرين رندهâ¹\n" +"تتاڤي اي هاڽ داڤليکاسيکن کڤد دنيا ڤرماٴينن سهاج⹠تيدق Ù…Ú Ø§ÙˆØ¨Ù‡ GUI.\n" +"اي بوليه Ù…Ù†ÙŠÚ Ú©ØªÚ©Ù† ڤريستاسي Ø¯Ú Ù† Ù…Ú ÙˆØ±Ø¨Ù†Ú©Ù† ڤراينچين ايميج.\n" +"نيلاي لبيه ØªÙŠÚ Ý¢ÙŠ ممبواتکن ايميج ÙŠÚ Ú©ÙˆØ±Ú Ú¤Ø±Ø§ÙŠÙ†Ú†ÙŠÙ†." #: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" +msgid "Unlimited player transfer distance" +msgstr "جارق ڤميندهن ڤماٴين تنڤ ØØ¯" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgid "Unload unused server data" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" +msgid "Upper Y limit of dungeons." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" +msgid "Upper Y limit of floatlands." 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 "" +msgid "Use 3D cloud look instead of flat." +msgstr "ݢونا ڤاڤرن اون 3D Ù…Ú Ý¢Ù†ØªÙŠÚ©Ù† اون رات." #: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" +msgid "Use a cloud animation for the main menu background." +msgstr "ݢوناکن انيماسي اون سباݢاي لاتر Ø¨Ù„Ø§Ú©Ú Ù…ÙŠÙ†Ùˆ اوتام." #: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "ݢوناکن ڤناڤيسن انيسوتروڤيک اڤابيلا مليهت تيکستور دري سواتو سودوت." #: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" +msgid "Use bilinear filtering when scaling textures." +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." +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." msgstr "" +"ݢوناکن ڤمتاٴن ميڤ اونتوق مڽسوايکن تيکستور. بوليه Ù…Ù†ÙŠÚ Ú©ØªÚ©Ù†\n" +"سديکيت ڤريستاسي⹠تراوتاماڽ اڤابيلا Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† Ú¤ÙŠÚ© تيکستور\n" +"برديÙينيسي ØªÙŠÚ Ý¢ÙŠ. ڤڽسواي-تورون ݢام سچار تڤت تيدق Ø¯Ø³ÙˆÚ©ÙˆÚ ." #: src/settings_translation_file.cpp -msgid "Lake steepness" +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 "Controls steepness/depth of lake depressions." -msgstr "" +msgid "Use trilinear filtering when scaling textures." +msgstr "ݢوناکن ڤناڤيسن تريلينيار اڤابيلا مڽسوايکن تيکستور." #: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" +msgid "VBO" +msgstr "VBO" #: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." +msgid "VSync" +msgstr "VSync" + +#: src/settings_translation_file.cpp +msgid "Valley depth" msgstr "" #: src/settings_translation_file.cpp -msgid "Hill steepness" +msgid "Valley fill" msgstr "" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." +msgid "Valley profile" msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain noise" +msgid "Valley slope" msgstr "" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." +msgid "Variation of biome filler depth." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Fractal" +msgid "Variation of maximum mountain height (in nodes)." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" +msgid "Variation of number of caves." 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." +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." msgstr "" #: src/settings_translation_file.cpp -msgid "Fractal type" +msgid "Varies depth of biome surface nodes." 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." +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." msgstr "" #: src/settings_translation_file.cpp -msgid "Iterations" +msgid "Varies steepness of cliffs." 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." +msgid "Vertical climbing speed, in nodes per second." 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 "" +msgid "Vertical screen synchronization." +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 "" +msgid "Video driver" +msgstr "ڤماچو Ûيديو" #: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" +msgid "View bobbing factor" +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 "" +msgid "View distance in nodes." +msgstr "جارق Ú¤Ù†Ø¯Ú Ø¯Ø§Ù„Ù… اونيت نود." #: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" +msgid "View range decrease key" +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 "" +msgid "View range increase key" +msgstr "ککونچي منمبه جارق Ú¤Ù†Ø¯Ú " #: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" +msgid "View zoom key" +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 "" +msgid "Viewing range" +msgstr "جارق Ú¤Ù†Ø¯Ú " #: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" +msgid "Virtual joystick triggers aux button" +msgstr "کايو بديق ماي مميچو Ø¨ÙˆØªÚ aux" #: 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 "" +msgid "Volume" +msgstr "کقواتن بوڽي" #: src/settings_translation_file.cpp -msgid "Julia w" +msgid "" +"Volume of all sounds.\n" +"Requires the sound system to be enabled." msgstr "" +"کقواتن سموا بوڽي.\n" +"ممرلوکن سيستم بوڽي دبوليهکن." #: src/settings_translation_file.cpp msgid "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" +"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 "Seabed noise" +msgid "Walking and flying speed, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Y-level of seabed." +msgid "Walking speed" msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Valleys" +msgid "Walking, flying and climbing speed in fast mode, in nodes per second." msgstr "" #: src/settings_translation_file.cpp -msgid "Mapgen Valleys specific flags" +msgid "Water level" 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." +msgid "Water surface level of the world." 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 "" +msgid "Waving Nodes" +msgstr "نود Ø¨Ø±Ý¢ÙˆÙŠÚ " #: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" +msgid "Waving leaves" +msgstr "داٴون Ø¨Ø±Ý¢ÙˆÙŠÚ " #: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" +msgid "Waving liquids" +msgstr "چچاٴير برݢلورا" #: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" +msgid "Waving liquids wave height" +msgstr "Ú©ØªÙŠÚ Ý¢ÙŠÙ† اومبق چچاٴير برݢلورا" #: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" +msgid "Waving liquids wave speed" +msgstr "کلاجوان اومبق چچاٴير برݢلورا" #: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" +msgid "Waving liquids wavelength" +msgstr "Ú¤Ù†Ø¬Ú Ø§ÙˆÙ…Ø¨Ù‚ چچاٴير برݢلورا" #: src/settings_translation_file.cpp -msgid "River size" -msgstr "" +msgid "Waving plants" +msgstr "تومبوهن Ø¨Ø±Ý¢ÙˆÙŠÚ " #: src/settings_translation_file.cpp -msgid "How wide to make rivers." +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" +"اڤابيلا ڤناڤيس سکال GUI ايايتgui_scaling_filter دتتڤکن کڤد \"true\"⹠سموا\n" +"ايميج GUI ڤرلو دتاڤيس دالم ڤرايسين⹠تتاڤي Ø³Ø³ØªÚ Ù‡ ايميج دجان سچارا تروس\n" +"کڤرکاکسن (چونتوهڽ⹠ڤنرجمهن-Ú©-تيکستور اونتوق نود دالم اينÛينتوري)." #: src/settings_translation_file.cpp -msgid "Cave noise #1" +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." msgstr "" +"اڤابيلا gui_scaling_filter_txr2img دتتڤکن کڤد \"true\"⹠سالين سمولا کسموا\n" +"ايميج ترسبوت دري ڤرکاکسن کڤرايسين اونتوق دسسوايکن. سکيراڽ دتتڤکن کڤد\n" +"\"false\"⹠برباليق کڤد قاعده ڤڽسواين ÙŠÚ Ù„Ø§Ù…â¹ Ø§ÙˆÙ†ØªÙˆÙ‚ ڤماچو Ûيديو ÙŠÚ ØªÙŠØ¯Ù‚ " +"ممڤو\n" +"Ù…Ú½ÙˆÚ©ÙˆÚ Ø¯Ú Ù† سمڤورنا ÙÙˆÚ Ø³ÙŠ موات تورون سمولا تيکستور درڤد ڤرکاکسن." #: src/settings_translation_file.cpp -msgid "Cave noise #2" +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." msgstr "" +"اڤابيلا Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† تاڤيسن بيلينيار\\تريلينيار\\انيسوتروڤيک⹠تيکستور\n" +"ريسولوسي رنده بوليه جادي کابور⹠جادي سسواي-ناٴيقکن مريک\n" +"سچارا أوتوماتيک Ø¯Ú Ù† سيسيڤن جيرن تردکت اونتوق ممليهارا ڤيکسل\n" +"کراس. تتڤن اين منتڤکن سايز تيکستور مينيما اونتوق تيکستور\n" +"ڤڽسواي-ناٴيقکنâ نيلاي لبيه ØªÙŠÚ Ý¢ÙŠ تمڤق لبيه تاجم⹠تتاڤي ممرلوکن\n" +"ميموري ÙŠÚ Ù„Ø¨ÙŠÙ‡ باڽق. نيلاي کواسا 2 دشورکن. منتڤکن نيلاي اين لبيه\n" +"ØªÙŠÚ Ý¢ÙŠ دري 1 تيدق اکن منمڤقکن کسن ÙŠÚ Ú½Ø§Øª ملاٴينکن تاڤيسن\n" +"بيلينيار\\تريلينيار\\انيسوتروڤيک دبوليهکن. اين جوݢ دݢوناکن سباݢاي\n" +"سايز تيکستور نود اساس اونتوق أوتوڤڽسواين تيکستور جاجرن دنيا." #: src/settings_translation_file.cpp -msgid "Filler depth" +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +"منتڤکن سام اد Ùون FreeType دݢوناکن⹠ممرلوکن Ø³ÙˆÚ©ÙˆÚ Ù† Freetype\n" +"دکومڤيل برسام. جيک دلومڤوهکن⹠Ùون ڤتا بيت دان Ûيکتور XML اکن دݢوناکن." #: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "سام اد انيماسي تيکستور نود ڤرلو دڽهسݢرقکن ڤد ستياڤ بلوک ڤتا." #: src/settings_translation_file.cpp -msgid "Base terrain height." +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." msgstr "" +"تتڤکن سام اد ڤماٴين دتونجوقکن کڤد کليئن تنڤا ØØ¯ جارق.\n" +"تتڤن اين ترکچم⹠ݢوناکن تتڤن player_transfer_distance سباݢاي ݢنتي." #: src/settings_translation_file.cpp -msgid "Valley depth" +msgid "Whether to allow players to damage and kill each other." msgstr "" +"منتڤکن سام اد Ø§ÙŠÚ ÙŠÙ† ممبنرکن ڤماٴين اونتوق منچدراکن دان ممبونوه ساتو سام " +"لاٴين." #: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." msgstr "" +"تتڤن سام اد اونتوق ممينتا Ù…Ú½Ù…Ø¨ÙˆÚ Ø³Ù…ÙˆÙ„Ø§ سلڤس برلاکوڽ کرونتوهن (Lua).\n" +"تتڤکن کڤد \"true\" جک ڤلاين اندا دتتڤکن اونتوق مولا سمولا سچارا اٴوتوماتيک." #: src/settings_translation_file.cpp -msgid "Valley fill" -msgstr "" +msgid "Whether to fog out the end of the visible area." +msgstr "سام اد اندا هندق Ù…Ú Ú©Ø§Ø¨ÙˆØªÚ©Ù† Ú¤Ú Ù‡ÙˆØ¬ÙˆÚ Ú©Ø§ÙˆØ³Ù† ÙŠÚ Ú©Ù„ÙŠÙ‡ØªÙ†." #: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." msgstr "" +"سام اد Ø§ÙŠÚ ÙŠÙ† ممبيسوکن بوڽي. اندا بوليه مڽهبيسو ڤد بيلا٢\n" +"ماس⹠ملاٴينکن سيستم بوڽي دلومڤوهکن (enable_sound=false).\n" +"دالم ڤرماٴينن⹠اندا بوليه منوݢول کأداٴن بيسو Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† ککونچي\n" +"بيسو اتاو Ù…Ú Ý¢ÙˆÙ†Ø§Ú©Ù† مينو جيدا." #: src/settings_translation_file.cpp -msgid "Valley profile" +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." msgstr "" +"تتڤکن سام اد هندق منونجوقکن معلومت ڽهڤڤيجت (کسنڽ سام سڤرتي منکن Ø¨ÙˆØªÚ F5)." #: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" +msgid "Width component of the initial window size." +msgstr "کومڤونن ليبر سايز ØªØªÙŠÚ Ú©Ú¤ اول." #: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" +msgid "Width of the selection box lines around nodes." +msgstr "ليبر ݢاريسن کوتق ڤميليهن Ø³Ú©Ù„ÙŠÙ„ÙŠÚ Ù†ÙˆØ¯." #: src/settings_translation_file.cpp -msgid "Chunk size" +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." msgstr "" +"سيستم Windows سهاج: مولاکن Minetest Ø¯Ú Ù† ØªØªÙŠÚ Ú©Ú¤ ݢاريس ڤرينة دکت لاتر Ø¨Ù„Ø§Ú©Ú .\n" +"Ù…Ú Ù†Ø¯ÙˆÚ ÙŠ معلومت ÙŠÚ Ø³Ø§Ù… سڤرتي ÙØ§Ù´ÙŠÙ„ debug.txt (نام لالاي)." #: src/settings_translation_file.cpp msgid "" -"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." +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." msgstr "" +"ديريکتوري دنيا (سموا بندا دالم دنيا دسيمڤن دسيني).\n" +"تيدق دڤرلوکن جک برمولا دري مينو اوتام." #: src/settings_translation_file.cpp -msgid "Mapgen debug" +msgid "World start time" +msgstr "ماس مولا دنيا" + +#: src/settings_translation_file.cpp +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" msgstr "" +"تيکستور جاجرن دنيا بوليه دسسوايکن اونتوق Ù…Ù†Ø¬Ú Ú©Ø§Ùˆ ببراڤ نود.\n" +"نامون بݢيتو⹠ڤلاين Ù…ÙˆÚ Ú©ÙŠÙ† تيدق داڤت Ù…Ú Ù‡Ù†ØªØ± سکال ÙŠÚ Ø§Ù†Ø¯Ø§\n" +"Ø§ÙŠÚ ÙŠÙ†Ú©Ù†â¹ ØªØ±Ø§ÙˆØªØ§Ù…Ø§Ú½ جيک اندا ݢوناکن Ú¤ÙŠÚ© تيکستور ÙŠÚ Ø¯Ø±ÙŠÚ© سچارا\n" +"Ø®ØµÙˆØµâ Ø¯Ú Ù† ڤيليهن اين⹠کليئن اکن چوبا اونتوق مننتوکن سکال سچارا\n" +"أوتوماتيک برداسرکن سايز تيکستور. جوݢ ليهت texture_min_size.\n" +"امرن: ڤيليهن اين دالم اوجيکاجي!" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +msgid "World-aligned textures mode" +msgstr "مود تيکستور جاجرن دنيا" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." msgstr "" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" +msgid "" +"Y of mountain density gradient zero level. Used to shift mountains " +"vertically." msgstr "" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." +msgid "Y of upper limit of large caves." msgstr "" #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +msgid "Y-distance over which caverns expand to full size." 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." +"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 "Per-player limit of queued blocks to generate" +msgid "Y-level of average terrain surface." msgstr "" #: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." +msgid "Y-level of cavern upper limit." msgstr "" #: src/settings_translation_file.cpp -msgid "Number of emerge threads" +msgid "Y-level of higher terrain that creates cliffs." 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'." +msgid "Y-level of lower terrain and seabed." msgstr "" #: src/settings_translation_file.cpp -msgid "Online Content Repository" +msgid "Y-level of seabed." msgstr "" #: src/settings_translation_file.cpp -msgid "ContentDB URL" +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 "The URL for the content repository" +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 "ContentDB Flag Blacklist" +msgid "cURL file download timeout" 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/" +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" msgstr "" + +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = اوکلوسي ڤارالکس Ø¯Ú Ù† معلومت چرون (لبيه چڤت).\n" +#~ "1 = ڤمتاٴن بنتوق موک بومي (لبيه لمبت⹠لبيه تڤت)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "اداکه اندا ماهو سيت سمولا دنيا ڤماٴين Ú¤Ø±Ø³Ø§ÙˆØ±Ú Ù†ØŸ" + +#~ msgid "Bump Mapping" +#~ msgstr "ڤمتاٴن برتومڤوق" + +#~ msgid "Bumpmapping" +#~ msgstr "ڤمتاٴن برتومڤوق" + +#~ msgid "Config mods" +#~ msgstr "کونÙيݢوراسي مودس" + +#~ msgid "Configure" +#~ msgstr "کونÙيݢوراسي" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "ورنا باݢي کورسور ررمبوت Ø³ÙŠÙ„Ú (R,G,B)." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "منتعريÙÚ©Ù† تاهڤ ڤرسمڤلن تيکستور.\n" +#~ "نيلاي لبيه ØªÙŠÚ Ý¢ÙŠ Ù…Ú ØØ§ØµÙŠÙ„Ú©Ù† ڤتا نورمل لبيه لمبوت." + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "ممبوليهکن ڤمتاٴن برتومڤوق ڤد تيکستور. ڤتا نورمل ڤرلو دسدياکن\n" +#~ "اوليه Ú¤ÙŠÚ© تيکستور اتاو ڤرلو دجان سچارا أوتوماتيک.\n" +#~ "ڤرلوکن Ú¤Ù…Ø¨Ø§ÙŠÚ Ø¯Ø¨ÙˆÙ„ÙŠÙ‡Ú©Ù†." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "ممبوليهکن ڤنجاناٴن ڤتا نورمل سچارا Ù„Ø§ÙŠÚ (کسن چيتق تيمبول).\n" +#~ "ڤرلوکن ڤمتاٴن برتومڤوق اونتوق دبوليهکن." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "ممبوليهکن ڤمتاٴن اوکلوسي ڤارالکس.\n" +#~ "ممرلوکن Ú¤Ù…Ø¨Ø§ÙŠÚ Ø§ÙˆÙ†ØªÙˆÙ‚ دبوليهکن." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "ڤيليهن Ú¤Ø±Ú†ÙˆØ¨Ø§Ù´Ù†â¹ Ù…ÙˆÚ Ú©ÙŠÙ† منمڤقکن Ø±ÙˆØ§Ú Ú½Ø§Øª دانتارا\n" +#~ "بلوک اڤابيلا دتتڤکن Ø¯Ú Ù† نومبور لبيه بسر درڤد 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS دمينو جيدا" + +#~ msgid "Generate Normal Maps" +#~ msgstr "جان ڤتا نورمل" + +#~ msgid "Generate normalmaps" +#~ msgstr "جان ڤتا نورمل" + +#~ msgid "Main" +#~ msgstr "اوتام" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "ڤتا ميني دالم مود رادر⹠زوم 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "ڤتا ميني دالم مود رادر⹠زوم 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹠زوم 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹠زوم 4x" + +#~ msgid "Name/Password" +#~ msgstr "نام\\کات لالوان" + +#~ msgid "No" +#~ msgstr "تيدق" + +#~ msgid "Normalmaps sampling" +#~ msgstr "ڤرسمڤلن ڤتا نورمل" + +#~ msgid "Normalmaps strength" +#~ msgstr "ککواتن ڤتا نورمل" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "جومله للرن اوکلوسي ڤارالکس." + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Ú¤Ú Ø§Ø±ÙˆÙ‡ کسن اوکلوسي ڤارالکس ڤد کسلوروهنڽ⹠کبياساٴنڽ سکال\\2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "سکال کسلوروهن کسن اوکلوسي ڤارالکس." + +#~ msgid "Parallax Occlusion" +#~ msgstr "اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion" +#~ msgstr "اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Ú¤Ú Ø§Ø±ÙˆÙ‡ اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "للرن اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "مود اوکلوسي ڤارالکس" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "سکال اوکلوسي ڤارالکس" + +#~ msgid "Reset singleplayer world" +#~ msgstr "سيت سمولا دنيا ڤماٴين Ú¤Ø±Ø³Ø§ÙˆØ±Ú Ù†" + +#~ msgid "Start Singleplayer" +#~ msgstr "مولا ماٴين Ø³Ø§ÙˆØ±Ú " + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "ککواتن ڤتا نورمل ÙŠÚ Ø¯Ø¬Ø§Ù†." + +#~ msgid "View" +#~ msgstr "ليهت" + +#~ msgid "Yes" +#~ msgstr "ياٴ" diff --git a/po/nb/minetest.po b/po/nb/minetest.po index ed5bab6db..3762509a4 100644 --- a/po/nb/minetest.po +++ b/po/nb/minetest.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Norwegian BokmÃ¥l (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-18 13:41+0000\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-01-10 01:32+0000\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Language-Team: Norwegian BokmÃ¥l <https://hosted.weblate.org/projects/" "minetest/minetest/nb_NO/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1.1-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Du døde" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -116,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:" @@ -124,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." @@ -139,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:" @@ -161,21 +152,61 @@ 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 +#, 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 "" +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" @@ -191,6 +222,16 @@ 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" msgstr "Modder" @@ -204,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" @@ -221,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 @@ -230,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" @@ -279,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" @@ -308,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" @@ -330,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 @@ -339,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" @@ -347,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" @@ -355,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 @@ -407,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" @@ -479,7 +529,7 @@ msgstr "2D-støy" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Tilbake til instillinger" +msgstr "< Tilbake til innstillinger" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" @@ -530,6 +580,10 @@ 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" @@ -641,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" @@ -698,6 +766,17 @@ msgid "Credits" msgstr "Bidragsytere" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "Tidligere bidragsytere" @@ -714,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" @@ -735,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 +825,11 @@ 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 +838,11 @@ 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:" @@ -773,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" @@ -797,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 +920,6 @@ 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" @@ -846,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 +940,6 @@ 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 +948,6 @@ 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" @@ -906,19 +975,11 @@ 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 +992,11 @@ 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)" @@ -974,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." @@ -1144,20 +1194,20 @@ msgid "Continue" msgstr "Fortsett" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1305,34 +1355,6 @@ 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 "" @@ -1393,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" @@ -1454,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" @@ -1724,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!" @@ -1752,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" @@ -1999,12 +2039,6 @@ msgstr "" "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." @@ -2042,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." @@ -2127,6 +2161,10 @@ 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 "" @@ -2260,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 "" @@ -2382,10 +2420,6 @@ msgid "Builtin" msgstr "Innebygd" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "TeksturpÃ¥føring (bump mapping)" - -#: src/settings_translation_file.cpp #, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2463,22 +2497,6 @@ msgstr "" "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" msgstr "Skriftstørrelse" @@ -2643,6 +2661,10 @@ 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" @@ -2695,7 +2717,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Crash message" -msgstr "Kræsjmelding" +msgstr "Krasjmelding" #: src/settings_translation_file.cpp msgid "Creative" @@ -2706,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 @@ -2714,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" @@ -2815,12 +2842,6 @@ 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." msgstr "Definerer treomrÃ¥der og skogstetthet." @@ -2892,6 +2913,11 @@ 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" @@ -2953,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 @@ -3043,14 +3070,6 @@ 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 "" @@ -3060,18 +3079,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3088,12 +3095,6 @@ 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" @@ -3103,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" @@ -3412,10 +3414,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3469,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 "" @@ -3938,6 +3936,11 @@ 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 "" @@ -4024,6 +4027,17 @@ msgstr "" "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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4074,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" @@ -4151,6 +4165,17 @@ msgid "" 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4840,11 +4865,6 @@ 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." msgstr "" @@ -4858,6 +4878,14 @@ 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" @@ -5027,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 @@ -5076,6 +5105,13 @@ msgid "" 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 "" @@ -5307,14 +5343,6 @@ 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 "" @@ -5340,10 +5368,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5369,34 +5393,6 @@ msgid "" 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" @@ -5463,6 +5459,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5619,10 +5624,6 @@ 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" @@ -5884,6 +5885,20 @@ 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" @@ -6022,10 +6037,6 @@ 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" @@ -6120,6 +6131,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6183,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 @@ -6210,15 +6225,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6359,6 +6379,17 @@ msgid "" 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 "" @@ -6567,6 +6598,12 @@ msgid "" 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 "" @@ -6649,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." @@ -6694,6 +6730,24 @@ 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" @@ -6705,32 +6759,97 @@ msgstr "Maksimal parallellisering i cURL" msgid "cURL timeout" msgstr "cURL-tidsgrense" -#~ msgid "Select Package File:" -#~ msgstr "Velg pakkefil:" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "" +#~ "Er du sikker pÃ¥ at du ønsker Ã¥ tilbakestille din enkeltspiller-verden?" -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y-verdi for øvre grense for lava i store grotter." +#~ msgid "Back" +#~ msgstr "Tilbake" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Hvilket Y-nivÃ¥ som skyggen til luftøyer nÃ¥r." +#~ msgid "Bump Mapping" +#~ msgstr "Teksturtilføyning" -#~ msgid "IPv6 support." -#~ msgstr "IPv6-støtte." +#~ msgid "Bumpmapping" +#~ msgstr "TeksturpÃ¥føring (bump mapping)" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Aktiver filmatisk toneoversettelse" +#~ 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 "Enable VBO" -#~ msgstr "Aktiver VBO" +#~ msgid "Config mods" +#~ msgstr "Sett opp modder" -#~ msgid "Path to save screenshots at." -#~ msgstr "Filsti til lagring av skjermdumper." +#~ 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 "Back" -#~ msgstr "Tilbake" +#~ 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 "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 "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 c4d3da53a..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: sfan5 <sfan5@live.de>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-01 05:52+0000\n" +"Last-Translator: eol <joshua.de.clercq@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/minetest/minetest/" "nl/>\n" "Language: nl\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -160,14 +152,55 @@ 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 "" "ContentDB is niet beschikbaar wanneer Minetest compileert is zonder cURL" @@ -190,6 +223,14 @@ 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" msgstr "Mods" @@ -203,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" @@ -220,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" @@ -229,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" @@ -279,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" @@ -303,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" @@ -335,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" @@ -358,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 @@ -380,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 " @@ -536,6 +582,10 @@ 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" @@ -651,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" @@ -704,6 +769,18 @@ msgid "Credits" msgstr "Credits" #: builtin/mainmenu/tab_credits.lua +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" msgstr "Vroegere ontwikkelaars" @@ -720,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" @@ -741,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 +829,22 @@ 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:" @@ -779,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" @@ -803,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 +922,6 @@ 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" @@ -852,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 +942,6 @@ 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 +950,6 @@ 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" @@ -912,19 +977,11 @@ 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 +994,10 @@ 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)" @@ -980,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." @@ -1157,13 +1202,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1173,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" @@ -1311,34 +1356,6 @@ 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" @@ -1400,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" @@ -1431,7 +1448,6 @@ msgid "Volume changed to %d%%" msgstr "Volume gewijzigd naar %d%%" #: src/client/game.cpp -#, fuzzy msgid "Wireframe shown" msgstr "Draadframe weergegeven" @@ -1473,7 +1489,6 @@ msgid "Apps" msgstr "Menu" #: src/client/keycode.cpp -#, fuzzy msgid "Backspace" msgstr "Terug" @@ -1576,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 -" @@ -1588,7 +1603,7 @@ msgstr "Numpad -" #: src/client/keycode.cpp msgid "Numpad ." -msgstr "Numpad ." +msgstr "Numeriek pad ." #: src/client/keycode.cpp msgid "Numpad /" @@ -1732,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!" @@ -2007,14 +2040,6 @@ msgstr "" "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." @@ -2052,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 "" @@ -2075,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." @@ -2138,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" @@ -2202,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" @@ -2373,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" @@ -2402,10 +2441,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2483,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" @@ -2561,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" @@ -2631,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" @@ -2666,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" @@ -2739,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" @@ -2811,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 "" @@ -2853,14 +2878,6 @@ 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." @@ -2872,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." @@ -2941,6 +2957,10 @@ 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" @@ -3005,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 @@ -3059,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 @@ -3122,18 +3142,6 @@ 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." @@ -3143,22 +3151,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3179,14 +3171,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3194,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" @@ -3248,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" @@ -3282,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" @@ -3300,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" @@ -3318,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" @@ -3365,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" @@ -3410,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 "" @@ -3442,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)." @@ -3468,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" @@ -3481,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" @@ -3541,15 +3520,10 @@ 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" @@ -3589,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" @@ -3612,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 "" @@ -3642,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." @@ -3713,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." @@ -3722,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." @@ -3739,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." @@ -3954,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." @@ -3990,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 @@ -4091,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." @@ -4112,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." @@ -4171,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 "" @@ -4212,16 +4129,18 @@ 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" @@ -4229,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" @@ -4316,6 +4236,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4341,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 @@ -4366,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" @@ -4374,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" @@ -4428,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" @@ -4459,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" @@ -4755,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" @@ -4776,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" @@ -4865,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." @@ -4926,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" @@ -4948,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." @@ -4969,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." @@ -4990,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" @@ -5041,7 +4942,6 @@ msgid "Lake steepness" msgstr "Steilheid van meren" #: src/settings_translation_file.cpp -#, fuzzy msgid "Lake threshold" msgstr "Meren-grenswaarde" @@ -5066,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" @@ -5092,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" @@ -5121,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 "" @@ -5211,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" @@ -5247,20 +5141,14 @@ 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." msgstr "" @@ -5277,6 +5165,14 @@ 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" @@ -5285,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 "" @@ -5330,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" @@ -5338,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" @@ -5369,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" @@ -5383,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" @@ -5470,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" @@ -5486,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" @@ -5529,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." @@ -5647,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" @@ -5670,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" @@ -5695,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" @@ -5815,19 +5695,10 @@ 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" @@ -5872,10 +5743,6 @@ msgstr "" "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" @@ -5907,36 +5774,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5957,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 "" @@ -6007,26 +5847,33 @@ 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" "This requires the \"fly\" privilege on the server." @@ -6043,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 "" @@ -6070,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" @@ -6096,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 "" @@ -6105,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." @@ -6136,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" @@ -6192,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" @@ -6228,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" @@ -6284,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" @@ -6292,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" @@ -6333,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" @@ -6364,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" @@ -6386,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" @@ -6455,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" @@ -6497,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." @@ -6523,6 +6354,19 @@ 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" @@ -6555,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." @@ -6618,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 "" @@ -6646,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 "" @@ -6666,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 "" @@ -6715,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" @@ -6725,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 "" @@ -6802,6 +6650,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6857,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" @@ -6873,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 "" @@ -6881,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 "" @@ -6924,20 +6776,27 @@ 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 "" +"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 @@ -6957,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 "" @@ -7009,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" @@ -7022,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 @@ -7045,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" @@ -7056,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" @@ -7072,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." @@ -7104,6 +6961,25 @@ msgstr "" "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." @@ -7112,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" @@ -7169,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." @@ -7186,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." @@ -7219,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" @@ -7238,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." @@ -7270,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" @@ -7318,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" @@ -7340,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." @@ -7380,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 "" @@ -7406,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 "" @@ -7430,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 "" @@ -7469,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." @@ -7484,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." @@ -7494,20 +7374,48 @@ 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" @@ -7519,122 +7427,283 @@ msgstr "Maximaal parallellisme in cURL" msgid "cURL timeout" msgstr "cURL time-out" -#~ msgid "Toggle Cinematic" -#~ msgstr "Cinematic modus aan/uit" +#~ 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 "Select Package File:" -#~ msgstr "Selecteer Modbestand:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Aangepaste gamma voor de licht-tabellen. Lagere waardes zijn helderder.\n" +#~ "Deze instelling wordt enkel gebruikt door de cliënt, en wordt genegeerd " +#~ "door de server." -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Minimale diepte van grote semi-willekeurige grotten." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Weet je zeker dat je jouw wereld wilt resetten?" -#~ msgid "Waving Water" -#~ msgstr "Golvend water" +#~ msgid "Back" +#~ msgstr "Terug" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-niveau tot waar de schaduw van drijvend land reikt." +#~ msgid "Bump Mapping" +#~ msgstr "Bumpmapping" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Y-niveau van drijvend land middelpunt en vijver oppervlak." +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" -#~ msgid "Waving water" -#~ msgstr "Golvend water" +#~ 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 "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgid "Config mods" +#~ msgstr "Mods configureren" + +#~ msgid "Configure" +#~ msgstr "Instellingen" + +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." #~ msgstr "" -#~ "Variatie van de heuvel hoogte en vijver diepte op drijvend egaal terrein." +#~ "Bepaalt de dichtheid van drijvende bergen.\n" +#~ "Dit wordt bijgevoegd bij de 'np_mountain' ruis waarde." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Bepaalt breedte van tunnels, een kleinere waarde maakt bredere tunnels." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Draadkruis-kleur (R,G,B)." #, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "Steilheid Van de meren" + #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." #~ msgstr "" -#~ "Typisch maximum hoogte, boven en onder het middelpunt van drijvend berg " -#~ "terrein." +#~ "Bepaalt gebieden van drijvend glijdend terrein.\n" +#~ "Drijvend glijdend terrein ontstaat wanneer ruis > 0." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Dit font wordt gebruikt voor bepaalde talen." +#~ 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 "Shadow limit" -#~ msgstr "Schaduw limiet" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..." -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Pad van TrueType font of bitmap." +#~ msgid "Enable VBO" +#~ msgstr "VBO aanzetten" + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Bumpmapping aanzetten voor texturen. Normalmaps moeten al in de texture " +#~ "pack zitten\n" +#~ "of ze moeten automatisch gegenereerd worden.\n" +#~ "Schaduwen moeten aanstaan." + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Schakelt filmisch tone-mapping in" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Schakelt het genereren van normal maps in (emboss effect).\n" +#~ "Dit vereist dat bumpmapping ook aan staat." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Schakelt parallax occlusie mappen in.\n" +#~ "Dit vereist dat shaders ook aanstaan." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentele optie. Kan bij een waarde groter dan 0 zichtbare\n" +#~ "ruimtes tussen blokken tot gevolg hebben." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS in het pauze-menu" + +#~ msgid "Floatland base height noise" +#~ msgstr "Drijvend land basis hoogte ruis" + +#~ msgid "Floatland mountain height" +#~ msgstr "Drijvend gebergte hoogte" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Fontschaduw alphawaarde (ondoorzichtigheid, tussen 0 en 255)." #, fuzzy -#~ msgid "Lava depth" -#~ msgstr "Diepte van grote grotten" +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Genereer normale werelden" + +#~ msgid "Generate normalmaps" +#~ msgstr "Genereer normaalmappen" #~ msgid "IPv6 support." #~ msgstr "IPv6 ondersteuning." #, fuzzy -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Lava depth" +#~ msgstr "Diepte van grote grotten" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Fontschaduw alphawaarde (ondoorzichtigheid, tussen 0 en 255)." +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Emerge-wachtrij voor lezen" -#~ msgid "Floatland mountain height" -#~ msgstr "Drijvend gebergte hoogte" +#~ msgid "Main" +#~ msgstr "Hoofdmenu" -#~ msgid "Floatland base height noise" -#~ msgstr "Drijvend land basis hoogte ruis" +#~ msgid "Main menu style" +#~ msgstr "Hoofdmenu stijl" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Schakelt filmisch tone-mapping in" +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Mini-kaart in radar modus, Zoom x2" -#~ msgid "Enable VBO" -#~ msgstr "VBO aanzetten" +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Mini-kaart in radar modus, Zoom x4" -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ 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 "" -#~ "Bepaalt gebieden van drijvend glijdend terrein.\n" -#~ "Drijvend glijdend terrein ontstaat wanneer ruis > 0." +#~ "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 "Darkness sharpness" -#~ msgstr "Steilheid Van de meren" +#~ msgid "Select Package File:" +#~ msgstr "Selecteer Modbestand:" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Bepaalt breedte van tunnels, een kleinere waarde maakt bredere tunnels." +#~ 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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Typical maximum height, above and below midpoint, of floatland mountains." #~ msgstr "" -#~ "Bepaalt de dichtheid van drijvende bergen.\n" -#~ "Dit wordt bijgevoegd bij de 'np_mountain' ruis waarde." +#~ "Typisch maximum hoogte, boven en onder het middelpunt van drijvend berg " +#~ "terrein." -#, fuzzy -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." #~ msgstr "" -#~ "Aangepaste gamma voor de licht-tabellen. Lagere waardes zijn helderder.\n" -#~ "Deze instelling wordt enkel gebruikt door de cliënt, en wordt genegeerd " -#~ "door de server." +#~ "Variatie van de heuvel hoogte en vijver diepte op drijvend egaal terrein." -#~ msgid "Path to save screenshots at." -#~ msgstr "Pad waar screenshots bewaard worden." +#~ msgid "View" +#~ msgstr "Bekijk" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Parallax occlusie sterkte" +#~ msgid "Waving Water" +#~ msgstr "Golvend water" -#~ msgid "Limit of emerge queues on disk" -#~ msgstr "Emerge-wachtrij voor lezen" +#~ msgid "Waving water" +#~ msgstr "Golvend water" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..." +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Minimale diepte van grote semi-willekeurige grotten." -#~ msgid "Back" -#~ msgstr "Terug" +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Y-niveau van drijvend land middelpunt en vijver oppervlak." -#~ msgid "Ok" -#~ msgstr "Oké" +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-niveau tot waar de schaduw van drijvend land reikt." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/nn/minetest.po b/po/nn/minetest.po index 9a0b036d3..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-03-31 10:14+0000\n" -"Last-Translator: sfan5 <sfan5@live.de>\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 <toregilhk@hotmail.com>\n" "Language-Team: Norwegian Nynorsk <https://hosted.weblate.org/projects/" "minetest/minetest/nn/>\n" "Language: nn\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,12 +24,11 @@ msgstr "Du døydde" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua -#, fuzzy msgid "An error occurred in a Lua script:" -msgstr "Ein feil har skjedd med eit Lua manus, slik som ein mod:" +msgstr "Ein feil oppstod i eit LUA-skript:" #: builtin/fstk/ui.lua msgid "An error occurred:" @@ -41,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. " @@ -57,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 @@ -87,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 @@ -157,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 @@ -182,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 @@ -194,22 +220,45 @@ 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" @@ -224,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" @@ -249,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 @@ -265,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" @@ -283,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" @@ -299,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" @@ -311,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" @@ -335,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" @@ -359,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 @@ -386,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" @@ -402,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 @@ -427,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 @@ -437,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 "" @@ -469,11 +521,11 @@ msgstr "(Ikkje nokon skildring gjeven)" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "2D Noise" -msgstr "To-dimensjonal lyd" +msgstr "2D-støy" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "< Back to Settings page" -msgstr "< Attende til instillinger" +msgstr "< Tilbake til innstillingssida" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" @@ -524,12 +576,16 @@ 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" @@ -537,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" @@ -580,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 @@ -596,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" @@ -642,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" @@ -652,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:" @@ -660,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" @@ -680,27 +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 +#, 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" @@ -755,12 +842,16 @@ 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" @@ -860,10 +944,6 @@ 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" @@ -872,10 +952,6 @@ 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,7 +1209,7 @@ msgstr "Kopler til tenarmaskin..." #: src/client/game.cpp msgid "Continue" -msgstr "Fortsetja" +msgstr "Fortset" #: src/client/game.cpp #, c-format @@ -1149,30 +1219,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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" "Styring:\n" -"- %s: Framsteg\n" -"- %s: Baksteg\n" -"- %s: Sidesteg mot venstre\n" -"- %s: Sidesteg mot høyre\n" -"- %s: hopp/klatre\n" -"- %s: snike seg rundt/bøye seg\n" -"- %s: slipp gjennstand\n" +"- %s: gÃ¥ framover\n" +"- %s: gÃ¥ bakover\n" +"- %s: gÃ¥ mot venstre\n" +"- %s: gÃ¥ mot høgre\n" +"- %s: hopp/klatre opp\n" +"- %s: grav/slÃ¥\n" +"- %s: plasser/nytt\n" +"- %s: snik/klatre ned\n" +"- %s: slepp ting\n" "- %s: inventar\n" -"- Datamus: snu seg/sjÃ¥ rundt\n" -"- Datamus, venstre klikk: grave/slÃ¥\n" -"- Datamus, høgre klikk: plassér/bruk\n" -"- Datamus, skrolle-hjul: select item\n" -"- %s: skravlerør\n" +"- Mus: snu deg/sjÃ¥\n" +"- Musehjul: vel ting\n" +"- %s: nettprat\n" #: src/client/game.cpp msgid "Creating client..." @@ -1303,34 +1373,6 @@ 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" @@ -1393,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" @@ -1723,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!" @@ -1975,12 +2036,6 @@ msgid "" 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 "" @@ -2010,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" @@ -2022,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 "" @@ -2044,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." @@ -2076,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" @@ -2143,7 +2205,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Advanced" -msgstr "" +msgstr "Avansert" #: src/settings_translation_file.cpp msgid "" @@ -2164,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" @@ -2233,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" @@ -2241,7 +2303,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "" +msgstr "Autoskaleringsmodus" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2257,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" @@ -2317,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 "" @@ -2394,22 +2452,12 @@ 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 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" @@ -2457,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" @@ -2477,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." @@ -2493,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 "" @@ -2555,10 +2603,14 @@ 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 "" @@ -2600,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 @@ -2619,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 @@ -2656,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" @@ -2719,12 +2777,6 @@ 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 "" @@ -2795,6 +2847,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2855,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 @@ -2943,14 +2999,6 @@ 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 "" @@ -2960,18 +3008,6 @@ 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" @@ -2988,12 +3024,6 @@ 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" @@ -3003,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 @@ -3305,10 +3335,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3362,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 "" @@ -3830,6 +3856,10 @@ 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 "" @@ -3910,6 +3940,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4009,6 +4046,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4565,10 +4609,6 @@ 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 "" @@ -4582,6 +4622,14 @@ 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 "" @@ -4745,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 @@ -4794,6 +4842,13 @@ msgid "" 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 "" @@ -5023,14 +5078,6 @@ 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 "" @@ -5056,10 +5103,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5085,34 +5128,6 @@ msgid "" 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" @@ -5178,6 +5193,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5333,10 +5356,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5588,6 +5607,16 @@ 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 "" @@ -5717,10 +5746,6 @@ 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" @@ -5814,6 +5839,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5872,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 @@ -5899,15 +5928,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6043,6 +6077,17 @@ msgid "" 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 "" @@ -6249,6 +6294,12 @@ msgid "" 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 "" @@ -6371,6 +6422,24 @@ 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 "" @@ -6382,17 +6451,65 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ msgstr "SlÃ¥ pÃ¥/av kameramodus" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Er du sikker pÃ¥ at du vill tilbakestille enkel-spelar verd?" -#~ msgid "Select Package File:" -#~ msgstr "Velje eit pakke dokument:" +#~ 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 "Back" -#~ msgstr "Attende" +#~ 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 015692182..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-09 12:14+0000\n" -"Last-Translator: MikoÅ‚aj Zaremba <mikolajzaremba03@gmail.com>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-12-27 00:29+0000\n" +"Last-Translator: Atrate <Atrate@protonmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/minetest/minetest/" "pl/>\n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -25,7 +25,7 @@ msgstr "UmarÅ‚eÅ›" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -47,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. " @@ -64,12 +60,6 @@ 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." @@ -77,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 @@ -87,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:" @@ -161,16 +153,57 @@ 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 @@ -191,6 +224,16 @@ 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" msgstr "Mody" @@ -204,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" @@ -221,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 @@ -230,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 @@ -238,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 @@ -267,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" @@ -280,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 @@ -294,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" @@ -308,7 +368,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "Wzgórza" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -317,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" @@ -341,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" @@ -351,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 @@ -536,6 +598,10 @@ 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" @@ -651,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" @@ -704,6 +785,17 @@ msgid "Credits" msgstr "Autorzy" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "Byli współautorzy" @@ -720,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" @@ -744,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 +844,11 @@ 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 +857,11 @@ 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:" @@ -779,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" @@ -803,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 +939,6 @@ 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" @@ -852,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 +959,6 @@ 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 +967,6 @@ 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" @@ -912,19 +994,11 @@ 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 +1011,11 @@ 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)" @@ -980,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." @@ -1150,20 +1213,20 @@ msgid "Continue" msgstr "Kontynuuj" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1311,34 +1374,6 @@ 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" @@ -1730,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!" @@ -2004,14 +2058,6 @@ msgstr "" "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." @@ -2139,6 +2185,10 @@ 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" msgstr "BezwzglÄ™dny limit kolejki" @@ -2388,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 @@ -2404,10 +2454,6 @@ msgid "Builtin" msgstr "Wbudowany" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Mapowanie wypukÅ‚oÅ›ci" - -#: src/settings_translation_file.cpp #, fuzzy msgid "" "Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" @@ -2485,21 +2531,6 @@ 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 "" -"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" msgstr "Rozmiar czcionki" @@ -2662,6 +2693,10 @@ 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" msgstr "Zawartość" @@ -2728,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 @@ -2736,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" @@ -2845,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)." @@ -2876,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." @@ -2937,6 +2968,11 @@ 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" @@ -2977,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 "" @@ -3000,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 @@ -3069,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 "" @@ -3106,18 +3146,6 @@ 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." @@ -3127,22 +3155,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3159,14 +3171,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3176,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" @@ -3328,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" @@ -3514,10 +3518,6 @@ 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" @@ -3584,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" @@ -4148,6 +4148,11 @@ 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" @@ -4251,6 +4256,17 @@ msgstr "" "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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4396,6 +4412,17 @@ msgstr "" #: 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 "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5192,11 +5219,6 @@ 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." msgstr "" @@ -5212,6 +5234,14 @@ 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" @@ -5411,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 @@ -5471,6 +5502,13 @@ msgstr "" "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." @@ -5725,14 +5763,6 @@ 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" @@ -5762,10 +5792,6 @@ msgstr "" "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" msgstr "Repozytorium ZawartoÅ›ci z Sieci" @@ -5794,35 +5820,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5895,6 +5892,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -6073,10 +6080,6 @@ 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" msgstr "Głębokość rzeki" @@ -6383,6 +6386,19 @@ 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" @@ -6533,10 +6549,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6639,6 +6651,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6704,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 @@ -6738,6 +6755,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6745,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." @@ -6909,6 +6932,17 @@ msgstr "" "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." @@ -7157,6 +7191,12 @@ msgstr "" "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." @@ -7293,6 +7333,24 @@ 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" @@ -7304,137 +7362,296 @@ msgstr "Limit równolegÅ‚y cURL" msgid "cURL timeout" msgstr "Limit czasu cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Przełącz na tryb Cinematic" +#~ 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 "Select Package File:" -#~ msgstr "Wybierz plik paczki:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Ustaw kodowanie gamma dla tablic Å›wiateÅ‚. Wyższe wartoÅ›ci to wiÄ™ksza " +#~ "jasność.\n" +#~ "To ustawienie jest tylko dla klientów, ignorowane przez serwer." -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y górnej granicy lawy dużych jaskiÅ„." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Zmienia sposób w jaki podobne do gór latajÄ…ce wyspy zwężajÄ… siÄ™ ku " +#~ "Å›rodkowi nad i pod punktem Å›rodkowym." -#~ msgid "Waving Water" -#~ msgstr "FalujÄ…ca woda" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "JesteÅ› pewny że chcesz zresetować Å›wiat singleplayer?" -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "OkreÅ›la czy lochy majÄ… być czasem przez generowane teren." +#~ msgid "Back" +#~ msgstr "Backspace" -#~ msgid "Projecting dungeons" -#~ msgstr "Projekcja lochów" +#~ msgid "Bump Mapping" +#~ msgstr "Mapowanie wypukÅ‚oÅ›ci" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Wysokość do której rozciÄ…gajÄ… siÄ™ cienie wznoszÄ…cego terenu." +#~ msgid "Bumpmapping" +#~ msgstr "Mapowanie wypukÅ‚oÅ›ci" -#~ msgid "Y-level of floatland midpoint and lake surface." +#~ 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 "" -#~ "Wysokość Å›redniego punktu wznoszÄ…cego siÄ™ terenu oraz powierzchni jezior." +#~ "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 "Waving water" -#~ msgstr "FalujÄ…ca woda" +#~ msgid "Config mods" +#~ msgstr "Ustawienia modów" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgid "Configure" +#~ msgstr "Ustaw" + +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." #~ msgstr "" -#~ "Zmienność wysokoÅ›ci wzgórz oraz głębokoÅ›ci jezior na gÅ‚adkim terenie " -#~ "wznoszÄ…cym siÄ™." +#~ "Kontroluje gÄ™stość wznoszÄ…cego siÄ™ terenu górzystego.\n" +#~ "Jest to wartość dodana do wartość szumu 'np_mountain'." + +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Kontroluje szerokość tuneli, mniejsze wartoÅ›ci tworzÄ… szersze tunele." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Kolor celownika (R,G,B)." + +#~ msgid "Darkness sharpness" +#~ msgstr "Ostrość ciemnoÅ›ci" #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." #~ msgstr "" -#~ "Maksymalna, standardowa wysokość, powyżej lub poniżej Å›redniego punktu " -#~ "górzystego terenu." +#~ "OkreÅ›la obszary wznoszÄ…cego siÄ™ gÅ‚adkiego terenu.\n" +#~ "WygÅ‚adzone powierzchnie pojawiajÄ… siÄ™ gdy szum > 0." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Ta czcionka zostanie użyta w niektórych jÄ™zykach." +#~ 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 "Strength of light curve mid-boost." -#~ msgstr "Siłą przyÅ›pieszenia Å›rodkowego krzywej Å›wiatÅ‚a." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Pobieranie i instalowanie $1, proszÄ™ czekaj..." -#~ msgid "Shadow limit" -#~ msgstr "Limit cieni" +#~ msgid "Enable VBO" +#~ msgstr "Włącz VBO" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Åšcieżka do pliku .ttf lub bitmapy." +#~ 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 "Lightness sharpness" -#~ msgstr "Ostrość naÅ›wietlenia" +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Włącz filmic tone mapping" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Włącza generacjÄ™ map normalnych w locie (efekt pÅ‚askorzeźby).\n" +#~ "Wymaga włączenia mapowania wypukÅ‚oÅ›ci." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Włącza mapowanie paralaksy.\n" +#~ "Wymaga włączenia shaderów." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Eksperymentalna opcja, może powodować widoczne przestrzenie\n" +#~ "pomiÄ™dzy blokami kiedy ustawiona powyżej 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS podczas pauzy w menu" + +#~ msgid "Floatland base height noise" +#~ msgstr "Podstawowy szum wysokoÅ›ci wznoszÄ…cego siÄ™ terenu" + +#~ msgid "Floatland mountain height" +#~ msgstr "Wysokość gór latajÄ…cych wysp" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Kanał alfa cienia czcionki (nieprzeźroczystość, od 0 do 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Generuj normalne mapy" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generuj mapy normalnych" + +#~ msgid "IPv6 support." +#~ msgstr "Wsparcie IPv6." #, fuzzy #~ msgid "Lava depth" #~ msgstr "Głębia dużej jaskini" -#~ msgid "IPv6 support." -#~ msgstr "Wsparcie IPv6." +#~ msgid "Lightness sharpness" +#~ msgstr "Ostrość naÅ›wietlenia" -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Limit of emerge queues on disk" +#~ msgstr "Limit oczekiwaÅ„ na dysku" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Kanał alfa cienia czcionki (nieprzeźroczystość, od 0 do 255)." +#~ msgid "Main" +#~ msgstr "Menu główne" -#~ msgid "Floatland mountain height" -#~ msgstr "Wysokość gór latajÄ…cych wysp" +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Skrypt głównego menu" -#~ msgid "Floatland base height noise" -#~ msgstr "Podstawowy szum wysokoÅ›ci wznoszÄ…cego siÄ™ terenu" +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa w trybie radaru, Zoom x2" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Włącz filmic tone mapping" +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa w trybie radaru, Zoom x4" -#~ msgid "Enable VBO" -#~ msgstr "Włącz VBO" +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa w trybie powierzchniowym, powiÄ™kszenie x2" -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "OkreÅ›la obszary wznoszÄ…cego siÄ™ gÅ‚adkiego terenu.\n" -#~ "WygÅ‚adzone powierzchnie pojawiajÄ… siÄ™ gdy szum > 0." +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa w trybie powierzchniowym, powiÄ™kszenie x4" -#~ msgid "Darkness sharpness" -#~ msgstr "Ostrość ciemnoÅ›ci" +#~ msgid "Name/Password" +#~ msgstr "Nazwa gracza/HasÅ‚o" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "" -#~ "Kontroluje szerokość tuneli, mniejsze wartoÅ›ci tworzÄ… szersze tunele." +#~ msgid "No" +#~ msgstr "Nie" -#~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." -#~ msgstr "" -#~ "Kontroluje gÄ™stość wznoszÄ…cego siÄ™ terenu górzystego.\n" -#~ "Jest to wartość dodana do wartość szumu 'np_mountain'." +#~ msgid "Normalmaps sampling" +#~ msgstr "Próbkowanie normalnych map" -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Centrum przyÅ›pieszenia Å›rodkowego krzywej Å›wiatÅ‚a." +#~ msgid "Normalmaps strength" +#~ msgstr "SiÅ‚a map normlanych" -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "" -#~ "Zmienia sposób w jaki podobne do gór latajÄ…ce wyspy zwężajÄ… siÄ™ ku " -#~ "Å›rodkowi nad i pod punktem Å›rodkowym." +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Liczba iteracji dla parallax occlusion." -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ msgid "Ok" +#~ msgstr "OK" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." #~ msgstr "" -#~ "Ustaw kodowanie gamma dla tablic Å›wiateÅ‚. Wyższe wartoÅ›ci to wiÄ™ksza " -#~ "jasność.\n" -#~ "To ustawienie jest tylko dla klientów, ignorowane przez serwer." +#~ "Ogólny błąd systematyczny efektu zamykania paralaksy, zwykle skala/2." -#~ msgid "Path to save screenshots at." -#~ msgstr "Åšcieżka, pod którÄ… zapisywane sÄ… zrzuty ekranu." +#~ 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 "Limit of emerge queues on disk" -#~ msgstr "Limit oczekiwaÅ„ na dysku" +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Åšcieżka do pliku .ttf lub bitmapy." -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Pobieranie i instalowanie $1, proszÄ™ czekaj..." +#~ msgid "Path to save screenshots at." +#~ msgstr "Åšcieżka, pod którÄ… zapisywane sÄ… zrzuty ekranu." -#~ msgid "Back" -#~ msgstr "Backspace" +#~ msgid "Projecting dungeons" +#~ msgstr "Projekcja lochów" -#~ msgid "Ok" -#~ msgstr "OK" +#~ msgid "Reset singleplayer world" +#~ msgstr "Resetuj Å›wiat pojedynczego gracza" + +#~ msgid "Select Package File:" +#~ msgstr "Wybierz plik paczki:" + +#~ msgid "Shadow limit" +#~ msgstr "Limit cieni" + +#~ msgid "Start Singleplayer" +#~ msgstr "Tryb jednoosobowy" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "SiÅ‚a generowanych zwykÅ‚ych map." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Siłą przyÅ›pieszenia Å›rodkowego krzywej Å›wiatÅ‚a." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Ta czcionka zostanie użyta w niektórych jÄ™zykach." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Przełącz na tryb Cinematic" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Maksymalna, standardowa wysokość, powyżej lub poniżej Å›redniego punktu " +#~ "górzystego terenu." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Zmienność wysokoÅ›ci wzgórz oraz głębokoÅ›ci jezior na gÅ‚adkim terenie " +#~ "wznoszÄ…cym siÄ™." + +#~ msgid "Waving Water" +#~ msgstr "FalujÄ…ca woda" + +#~ msgid "Waving water" +#~ msgstr "FalujÄ…ca woda" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "OkreÅ›la czy lochy majÄ… być czasem przez generowane teren." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y górnej granicy lawy dużych jaskiÅ„." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "Wysokość Å›redniego punktu wznoszÄ…cego siÄ™ terenu oraz powierzchni jezior." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Wysokość do której rozciÄ…gajÄ… siÄ™ cienie wznoszÄ…cego terenu." + +#~ msgid "Yes" +#~ msgstr "Tak" diff --git a/po/pt/minetest.po b/po/pt/minetest.po index 466428c35..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-06-13 23:17+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 <ssantos@web.de>\n" "Language-Team: Portuguese <https://hosted.weblate.org/projects/minetest/" "minetest/pt/>\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Você morreu" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -44,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -96,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" @@ -104,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 "" @@ -117,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:" @@ -161,21 +153,60 @@ 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 "Base Game:" +msgstr "Jogo base:" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB não está disponÃvel quando Minetest é compilado sem cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "A carregar..." +msgstr "A descarregar..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -191,6 +222,14 @@ 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" msgstr "Mods" @@ -204,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" @@ -221,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" @@ -230,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" @@ -279,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" @@ -303,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" @@ -335,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" @@ -358,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 @@ -380,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" @@ -447,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\"" @@ -534,6 +578,10 @@ 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" @@ -602,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" @@ -651,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" @@ -661,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:" @@ -701,7 +764,19 @@ msgstr "Desenvolvedores Principais" #: builtin/mainmenu/tab_credits.lua msgid "Credits" -msgstr "Créditos" +msgstr "Méritos" + +#: builtin/mainmenu/tab_credits.lua +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" @@ -720,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" @@ -741,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 +827,10 @@ 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 +839,10 @@ 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:" @@ -779,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" @@ -803,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 +920,6 @@ 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ã" @@ -852,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 +940,6 @@ 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 +948,6 @@ 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" @@ -912,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 +992,10 @@ 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)" @@ -980,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)." @@ -1111,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" @@ -1131,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..." @@ -1157,43 +1200,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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" "Controles:\n" -"\n" -"- %s1: andar para frente\n" -"\n" -"- %s2: andar para trás\n" -"\n" -"- %s3: andar para a esquerda\n" -"\n" -"-%s4: andar para a direita\n" -"\n" -"- %s5: pular/escalar\n" -"\n" -"- %s6: esgueirar/descer\n" -"\n" -"- %s7: soltar item\n" -"\n" -"- %s8: inventário\n" -"\n" -"- Mouse: virar/olhar\n" -"\n" -"- Botão esquerdo do mouse: cavar/dar soco\n" -"\n" -"- Botão direito do mouse: colocar/usar\n" -"\n" -"- Roda do mouse: selecionar item\n" -"\n" -"- %s9: bate-papo\n" +"- %s: mover para a frente\n" +"- %s: mover para trás\n" +"- %s: mover 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..." @@ -1245,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" @@ -1261,31 +1291,31 @@ msgstr "Sair para o S.O" #: src/client/game.cpp msgid "Fast mode disabled" -msgstr "Modo rápido desabilitado" +msgstr "Modo rápido desativado" #: src/client/game.cpp msgid "Fast mode enabled" -msgstr "Modo rápido habilitado" +msgstr "Modo rápido ativado" #: src/client/game.cpp msgid "Fast mode enabled (note: no 'fast' privilege)" -msgstr "Modo rápido habilitado(note: sem privilégio 'fast')" +msgstr "Modo rápido ativado (note: sem privilégio 'fast')" #: src/client/game.cpp msgid "Fly mode disabled" -msgstr "Modo voo desabilitado" +msgstr "Modo voo desativado" #: src/client/game.cpp msgid "Fly mode enabled" -msgstr "Modo voo habilitado" +msgstr "Modo voo ativado" #: src/client/game.cpp msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "Modo voo habilitado(note: sem privilegio 'fly')" +msgstr "Modo voo ativado (note: sem privilégio 'fly')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "Névoa desabilitada" +msgstr "Névoa desativada" #: src/client/game.cpp msgid "Fog enabled" @@ -1321,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..." @@ -1377,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" @@ -1413,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" @@ -1436,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 @@ -1449,7 +1451,7 @@ msgstr "Mostrar wireframe" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" -msgstr "Zoom atualmente desabilitado por jogo ou mod" +msgstr "Zoom atualmente desativado por jogo ou mod" #: src/client/game.cpp msgid "ok" @@ -1743,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!" @@ -1962,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 @@ -1972,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 "" @@ -2007,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." @@ -2058,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." @@ -2081,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." @@ -2113,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 "" @@ -2149,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" @@ -2208,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" @@ -2276,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" @@ -2298,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 @@ -2403,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" @@ -2484,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" @@ -2666,6 +2672,10 @@ 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" @@ -2678,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" @@ -2731,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 @@ -2739,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" @@ -2767,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" @@ -2804,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 "" @@ -2848,14 +2861,6 @@ 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." @@ -2936,6 +2941,11 @@ 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" @@ -2992,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" @@ -3025,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 "" @@ -3086,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 @@ -3114,18 +3124,6 @@ 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." @@ -3135,22 +3133,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3171,14 +3153,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3186,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" @@ -3204,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" @@ -3214,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" @@ -3307,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 @@ -3423,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)." @@ -3439,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" @@ -3519,10 +3499,6 @@ 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" @@ -3584,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" @@ -3602,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" @@ -3878,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 "" @@ -3889,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 "" @@ -3910,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 @@ -3930,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." @@ -3962,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 "" @@ -4122,6 +4102,11 @@ 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" @@ -4222,6 +4207,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4279,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" @@ -4364,6 +4360,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tecla para pular. \n" +"Consulte 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." @@ -4733,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" @@ -5119,10 +5126,6 @@ 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." msgstr "" @@ -5138,6 +5141,14 @@ 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" @@ -5175,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." @@ -5241,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" @@ -5324,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 @@ -5390,6 +5402,13 @@ msgstr "" "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." @@ -5422,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" @@ -5450,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." @@ -5647,14 +5666,6 @@ 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" @@ -5701,10 +5712,6 @@ msgstr "" "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" @@ -5732,34 +5739,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5830,6 +5809,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5862,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." @@ -5876,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" @@ -5981,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" @@ -6012,10 +5999,6 @@ 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" @@ -6185,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" @@ -6314,6 +6297,20 @@ 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" @@ -6422,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 "" @@ -6465,10 +6462,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6562,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 " @@ -6575,6 +6568,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6600,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 "" @@ -6642,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 @@ -6692,6 +6692,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6699,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." @@ -6717,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." @@ -6773,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" @@ -6866,6 +6872,17 @@ msgstr "" "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." @@ -6936,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" @@ -7107,6 +7124,12 @@ msgstr "" "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 "" "Determina se animações das texturas dos cubos devem ser dessincronizadas " @@ -7218,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." @@ -7254,6 +7277,24 @@ 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" @@ -7265,83 +7306,92 @@ msgstr "limite paralelo de cURL" msgid "cURL timeout" msgstr "Tempo limite de cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Ativar/Desativar câmera cinemática" - -#~ msgid "Select Package File:" -#~ msgstr "Selecionar o ficheiro do pacote:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Limite Y máximo de lava em grandes cavernas." - -#~ msgid "Waving Water" -#~ msgstr "Ãgua ondulante" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." - -#~ msgid "Projecting dungeons" -#~ msgstr "Projetando dungeons" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "NÃvel Y para o qual as sombras de ilhas flutuantes se estendem." - -#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "NÃvel em Y do ponto médio da montanha flutuante e da superfÃcie do lago." +#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" +#~ "1 = mapeamento de relevo (mais lento, mais preciso)." -#~ msgid "Waving water" -#~ msgstr "Balançar das Ondas" - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "Variação da altura da colina e profundidade do lago no terreno liso da " -#~ "Terra Flutuante." +#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais " +#~ "elevados são mais brilhantes.\n" +#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor." -#~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." #~ msgstr "" -#~ "Altura máxima tÃpica, acima e abaixo do ponto médio, do terreno da " -#~ "montanha flutuante." +#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " +#~ "ponto médio." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Esta fonte será usada para determinados idiomas." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Tem a certeza que deseja reiniciar o seu mundo?" -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Força do aumento médio da curva de luz." +#~ msgid "Back" +#~ msgstr "Voltar" -#~ msgid "Shadow limit" -#~ msgstr "Limite de mapblock" +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Caminho para TrueTypeFont ou bitmap." +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" -#~ msgid "Lightness sharpness" -#~ msgstr "Nitidez da iluminação" +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Centro do aumento da curva de luz." -#~ msgid "Lava depth" -#~ msgstr "Profundidade da lava" +#~ 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 "IPv6 support." -#~ msgstr "Suporte IPv6." +#~ msgid "Config mods" +#~ msgstr "Configurar mods" -#~ msgid "Gamma" -#~ msgstr "Gama" +#~ msgid "Configure" +#~ msgstr "Configurar" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Opacidade da sombra da fonte (entre 0 e 255)." +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" +#~ "É um parâmetro adicionado ao valor de ruÃdo 'mgv7_np_mountain'." -#~ msgid "Floatland mountain height" -#~ msgstr "Altura da terra flutuante montanhosa" +#~ 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 "Floatland base height noise" -#~ msgstr "Altura base de ruÃdo de terra flutuante" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Cor do cursor (R,G,B)." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Ativa mapeamento de tons fÃlmico" +#~ msgid "Darkness sharpness" +#~ msgstr "Nitidez da escuridão" -#~ msgid "Enable VBO" -#~ msgstr "Ativar VBO" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Define áreas de terra flutuante em terreno suavizado.\n" +#~ "Terrenos suavizados ocorrem quando o ruÃdo é menor que zero." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Define nÃvel de amostragem de textura.\n" +#~ "Um valor mais alto resulta em mapas normais mais suaves." #~ msgid "" #~ "Deprecated, define and locate cave liquids using biome definitions " @@ -7352,57 +7402,209 @@ 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 "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "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 "" -#~ "Define áreas de terra flutuante em terreno suavizado.\n" -#~ "Terrenos suavizados ocorrem quando o ruÃdo é menor que zero." +#~ "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 "Darkness sharpness" -#~ msgstr "Nitidez da escuridão" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "Controla a largura dos túneis, um valor menor cria túneis maiores." +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Ativa mapeamento de tons fÃlmico" #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" -#~ "É um parâmetro adicionado ao valor de ruÃdo 'mgv7_np_mountain'." +#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n" +#~ "Requer texturização bump mapping para ser ativado." -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Centro do aumento da curva de luz." - -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " -#~ "ponto médio." +#~ "Ativa mapeamento de oclusão de paralaxe.\n" +#~ "Requer sombreadores ativados." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais " -#~ "elevados são mais brilhantes.\n" -#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor." +#~ "Opção experimental, pode causar espaços visÃveis entre blocos\n" +#~ "quando definido com num úmero superior a 0." -#~ msgid "Path to save screenshots at." -#~ msgstr "Caminho para onde salvar screenshots." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS em menu de pausa" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Força da oclusão paralaxe" +#~ msgid "Floatland base height noise" +#~ msgstr "Altura base de ruÃdo de terra flutuante" + +#~ msgid "Floatland mountain height" +#~ msgstr "Altura da terra flutuante montanhosa" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Opacidade da sombra da fonte (entre 0 e 255)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Gerar Normal maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Gerar mapa de normais" + +#~ msgid "IPv6 support." +#~ msgstr "Suporte IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profundidade da lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Nitidez da iluminação" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Limite de filas emerge no disco" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Descarregando e instalando $1, por favor aguarde..." +#~ msgid "Main" +#~ msgstr "Principal" -#~ msgid "Back" -#~ msgstr "Voltar" +#~ msgid "Main menu style" +#~ msgstr "Estilo do menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa em modo radar, zoom 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa em modo radar, zoom 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa em modo de superfÃcie, zoom 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa em modo de superfÃcie, zoom 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nome/palavra-passe" + +#~ msgid "No" +#~ msgstr "Não" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Amostragem de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensidade de normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Número de iterações de oclusão de paralaxe." #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Enviesamento do efeito de oclusão de paralaxe, normalmente escala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Escala do efeito de oclusão de paralaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Enviesamento de oclusão paralaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterações de oclusão paralaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modo de oclusão paralaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Escala de Oclusão de paralaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Força da oclusão paralaxe" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Caminho para TrueTypeFont ou bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Caminho para onde salvar screenshots." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projetando dungeons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Reiniciar mundo singleplayer" + +#~ msgid "Select Package File:" +#~ msgstr "Selecionar o ficheiro do pacote:" + +#~ msgid "Shadow limit" +#~ msgstr "Limite de mapblock" + +#~ msgid "Start Singleplayer" +#~ msgstr "Iniciar Um Jogador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensidade de normalmaps gerados." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Força do aumento médio da curva de luz." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Esta fonte será usada para determinados idiomas." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Ativar/Desativar câmera cinemática" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Altura máxima tÃpica, acima e abaixo do ponto médio, do terreno da " +#~ "montanha flutuante." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variação da altura da colina e profundidade do lago no terreno liso da " +#~ "Terra Flutuante." + +#~ msgid "View" +#~ msgstr "Vista" + +#~ msgid "Waving Water" +#~ msgstr "Ãgua ondulante" + +#~ msgid "Waving water" +#~ msgstr "Balançar das Ondas" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Limite Y máximo de lava em grandes cavernas." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "NÃvel em Y do ponto médio da montanha flutuante e da superfÃcie do lago." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "NÃvel Y para o qual as sombras de ilhas flutuantes se estendem." + +#~ msgid "Yes" +#~ msgstr "Sim" diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po index fc31640c4..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-12-11 13:36+0000\n" -"Last-Translator: ramon.venson <ramon.venson@gmail.com>\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 <victornuti.1@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "minetest/minetest/pt_BR/>\n" "Language: pt_BR\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.5\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "Você morreu" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -46,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. " @@ -63,20 +59,15 @@ 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 @@ -86,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:" @@ -117,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:" @@ -132,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." @@ -162,25 +153,64 @@ 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 "Base Game:" +msgstr "Jogo Base:" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" -msgstr "" +msgstr "ContentDB não está disponÃvel quando Minetest é compilado sem cURL" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "Carregando..." +msgstr "Baixando..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" -msgstr "Falhou em baixar $1" +msgstr "Falha ao baixar $1" #: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua @@ -192,22 +222,45 @@ 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" 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" @@ -222,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" @@ -231,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" @@ -277,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" @@ -304,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" @@ -333,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" @@ -359,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" @@ -465,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 "" @@ -473,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)" @@ -521,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." @@ -529,13 +571,17 @@ 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" @@ -592,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 @@ -608,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" @@ -647,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" @@ -663,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:" @@ -671,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." @@ -679,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" @@ -687,67 +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 "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 +826,10 @@ 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,55 +838,59 @@ 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" @@ -840,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" @@ -854,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 +939,6 @@ 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 +947,6 @@ 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" @@ -914,19 +974,11 @@ 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 +991,10 @@ 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)" @@ -975,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)." @@ -1050,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: " @@ -1058,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" @@ -1086,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: " @@ -1161,43 +1200,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" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" "Controles:\n" -"\n" -"- %s1: andar para frente\n" -"\n" -"- %s2: andar para trás\n" -"\n" -"- %s3: andar para a esquerda\n" -"\n" -"-%s4: andar para a direita\n" -"\n" -"- %s5: pular/escalar\n" -"\n" -"- %s6: esgueirar/descer\n" -"\n" -"- %s7: soltar item\n" -"\n" -"- %s8: inventário\n" -"\n" +"- %s: mover para frente\n" +"- %s: mover para trás\n" +"- %s: mover para esquerda\n" +"- %s: mover para direita\n" +"- %s: pular/subir\n" +"- %s: cavar/socar\n" +"- %s: colocar/usar\n" +"- %s: andar furtivamente/descer\n" +"- %s: soltar item\n" +"- %s: inventário\n" "- Mouse: virar/olhar\n" -"\n" -"- Botão esquerdo do mouse: cavar/dar soco\n" -"\n" -"- Botão direito do mouse: colocar/usar\n" -"\n" "- Roda do mouse: selecionar item\n" -"\n" -"- %s9: bate-papo\n" +"- %s: bate-papo\n" #: src/client/game.cpp msgid "Creating client..." @@ -1273,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" @@ -1328,34 +1354,6 @@ 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" @@ -1417,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" @@ -1440,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 @@ -1747,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!" @@ -1756,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 " @@ -1764,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" @@ -1854,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" @@ -1913,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" @@ -1982,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" @@ -1993,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 "" @@ -2013,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." @@ -2037,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." @@ -2049,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" @@ -2065,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 @@ -2088,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." @@ -2156,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" @@ -2215,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" @@ -2228,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" @@ -2267,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" @@ -2278,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" @@ -2299,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" @@ -2350,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" @@ -2383,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" @@ -2411,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." @@ -2441,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" @@ -2457,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" @@ -2469,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" @@ -2488,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" @@ -2672,6 +2683,10 @@ 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" @@ -2720,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" @@ -2734,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" @@ -2771,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" @@ -2806,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 "" @@ -2850,21 +2875,12 @@ 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)." @@ -2873,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." @@ -2920,27 +2934,30 @@ 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" @@ -2981,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 "" @@ -3004,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 @@ -3078,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 "" @@ -3088,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 "" @@ -3104,24 +3125,17 @@ 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." @@ -3131,27 +3145,16 @@ 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" "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 "" +"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" @@ -3163,14 +3166,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3178,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" @@ -3196,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" @@ -3299,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" @@ -3355,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" @@ -3375,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 "" @@ -3397,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." @@ -3509,10 +3510,6 @@ 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" @@ -3529,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" @@ -3571,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 @@ -3618,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" @@ -3626,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" @@ -3657,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" @@ -3816,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 "" @@ -3956,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." @@ -3993,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." @@ -4062,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" @@ -4101,6 +4110,10 @@ 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" @@ -4196,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" @@ -4226,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" @@ -4298,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" @@ -4344,6 +4367,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4900,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" @@ -4944,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" @@ -4985,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 "" @@ -5056,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." @@ -5091,19 +5116,14 @@ 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." msgstr "" @@ -5119,6 +5139,14 @@ 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" @@ -5127,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 "" @@ -5158,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 @@ -5166,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" @@ -5236,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" @@ -5305,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" @@ -5318,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 "" @@ -5346,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." @@ -5461,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" @@ -5476,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" @@ -5553,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 "" @@ -5586,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" @@ -5627,19 +5660,10 @@ 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" @@ -5652,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 "" @@ -5676,10 +5702,6 @@ msgstr "" "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" @@ -5690,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 "" @@ -5707,34 +5729,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5742,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 "" @@ -5770,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 "" @@ -5778,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" @@ -5786,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" @@ -5805,6 +5817,14 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5872,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 "" @@ -5881,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 "" @@ -5913,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" @@ -5988,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" @@ -6014,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" @@ -6132,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" @@ -6225,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" @@ -6267,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." @@ -6293,6 +6307,19 @@ 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" @@ -6331,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." @@ -6378,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" @@ -6411,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" @@ -6439,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 "" @@ -6453,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" @@ -6475,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" @@ -6554,6 +6597,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6589,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." @@ -6604,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" @@ -6614,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 "" @@ -6626,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 "" @@ -6671,6 +6723,14 @@ 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 "" +"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" "when holding down a joystick button combination." msgstr "" @@ -6679,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" @@ -6764,7 +6823,6 @@ msgid "Trilinear filtering" msgstr "Filtragem tri-linear" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6787,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" @@ -6795,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" @@ -6813,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." @@ -6845,6 +6903,27 @@ msgstr "" "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." @@ -6911,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." @@ -6956,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 "" @@ -6979,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" @@ -6988,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" @@ -7006,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" @@ -7077,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." @@ -7125,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 "" @@ -7211,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." @@ -7233,6 +7324,36 @@ 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" @@ -7244,83 +7365,78 @@ msgstr "limite paralelo de cURL" msgid "cURL timeout" msgstr "Tempo limite de cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Alternar modo de câmera cinemática" - -#~ msgid "Select Package File:" -#~ msgstr "Selecionar o arquivo do pacote:" - -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Limite Y máximo de lava em grandes cavernas." - -#~ msgid "Waving Water" -#~ msgstr "Ondas na água" - -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." - -#~ msgid "Projecting dungeons" -#~ msgstr "Projetando dungeons" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "NÃvel Y para o qual as sombras de ilhas flutuantes se estendem." - -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "" -#~ "NÃvel em Y do ponto médio da montanha flutuante e da superfÃcie do lago." - -#~ msgid "Waving water" -#~ msgstr "Balanço da água" - -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Variação da altura da colina e profundidade do lago no terreno liso da " -#~ "Terra Flutuante." +#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n" +#~ "1 = mapeamento de relevo (mais lento, mais preciso)." #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "Altura máxima tÃpica, acima e abaixo do ponto médio, do terreno da " -#~ "montanha flutuante." +#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais " +#~ "elevados são mais brilhantes.\n" +#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor." -#~ msgid "This font will be used for certain languages." -#~ msgstr "Esta fonte será usada para determinados idiomas." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " +#~ "ponto médio." -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Força do aumento médio da curva de luz." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Você tem certeza que deseja resetar seu mundo um-jogador?" -#~ msgid "Shadow limit" -#~ msgstr "Limite de mapblock" +#~ msgid "Back" +#~ msgstr "Backspace" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Caminho para TrueTypeFont ou bitmap." +#~ msgid "Bump Mapping" +#~ msgstr "Bump mapping" -#~ msgid "Lightness sharpness" -#~ msgstr "Nitidez da iluminação" +#~ msgid "Bumpmapping" +#~ msgstr "Bump mapping" -#~ msgid "Lava depth" -#~ msgstr "Profundidade da lava" +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Centro do aumento da curva de luz." -#~ msgid "IPv6 support." -#~ msgstr "Suporte a IPv6." +#~ 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 "Gamma" -#~ msgstr "Gama" +#~ msgid "Config mods" +#~ msgstr "Configurar Mods" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Fonte alpha de sombra (opacidade, entre 0 e 255)." +#~ msgid "Configure" +#~ msgstr "Configurar" -#~ msgid "Floatland mountain height" -#~ msgstr "Altura da Ilha Flutuante montanhosa" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" +#~ "É um parâmetro adicionado ao valor de ruÃdo 'mgv7_np_mountain'." -#~ msgid "Floatland base height noise" -#~ msgstr "Altura base de ruÃdo de Ilha Flutuante" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Controla a largura dos túneis, um valor menor cria túneis mais largos." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Habilitar efeito \"filmic tone mapping\"" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Cor do cursor (R,G,B)." -#~ msgid "Enable VBO" -#~ msgstr "Habilitar VBO" +#~ msgid "Darkness sharpness" +#~ msgstr "Nitidez da escuridão" #~ msgid "" #~ "Defines areas of floatland smooth terrain.\n" @@ -7329,51 +7445,216 @@ 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 "Darkness sharpness" -#~ msgstr "Nitidez da escuridão" - -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." #~ msgstr "" -#~ "Controla a largura dos túneis, um valor menor cria túneis mais largos." +#~ "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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n" -#~ "É um parâmetro adicionado ao valor de ruÃdo 'mgv7_np_mountain'." +#~ "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 "Center of light curve mid-boost." -#~ msgstr "Centro do aumento da curva de luz." +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Habilitar efeito \"filmic tone mapping\"" -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do " -#~ "ponto médio." +#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n" +#~ "Requer texturização bump mapping para ser ativado." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais " -#~ "elevados são mais brilhantes.\n" -#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor." +#~ "Ativar mapeamento de oclusão de paralaxe.\n" +#~ "Requer shaders a serem ativados." -#~ msgid "Path to save screenshots at." -#~ msgstr "Caminho para onde salvar screenshots." +#~ 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 "Parallax occlusion strength" -#~ msgstr "Insinsidade de oclusão de paralaxe" +#~ msgid "FPS in pause menu" +#~ msgstr "FPS no menu de pausa" + +#~ msgid "Floatland base height noise" +#~ msgstr "Altura base de ruÃdo de Ilha Flutuante" + +#~ msgid "Floatland mountain height" +#~ msgstr "Altura da Ilha Flutuante montanhosa" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Fonte alpha de sombra (opacidade, entre 0 e 255)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Gerar Normal maps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Gerar mapa de normais" + +#~ msgid "IPv6 support." +#~ msgstr "Suporte a IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Profundidade da lava" + +#~ msgid "Lightness sharpness" +#~ msgstr "Nitidez da iluminação" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Limite de filas emerge no disco" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Baixando e instalando $1, por favor aguarde..." +#~ msgid "Main" +#~ msgstr "Principal" -#~ msgid "Back" -#~ msgstr "Backspace" +#~ msgid "Main menu style" +#~ msgstr "Estilo do menu principal" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa em modo radar, zoom 2x" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa em modo radar, zoom 4x" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa em modo de superfÃcie, zoom 2x" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa em modo de superfÃcie, zoom 4x" + +#~ msgid "Name/Password" +#~ msgstr "Nome / Senha" + +#~ msgid "No" +#~ msgstr "Não" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Amostragem de normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intensidade de normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Número de iterações de oclusão de paralaxe." #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "" +#~ "Viés geral do efeito de oclusão de paralaxe, geralmente de escala/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Escala global do efeito de oclusão de paralaxe." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion" +#~ msgstr "Oclusão de paralaxe" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Viés de oclusão de paralaxe" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Iterações de oclusão de paralaxe" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Modo de oclusão de paralaxe" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Escala de Oclusão de paralaxe" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Insinsidade de oclusão de paralaxe" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Caminho para TrueTypeFont ou bitmap." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Caminho para onde salvar screenshots." + +#~ msgid "Projecting dungeons" +#~ msgstr "Projetando dungeons" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Resetar mundo um-jogador" + +#~ msgid "Select Package File:" +#~ msgstr "Selecionar o arquivo do pacote:" + +#~ msgid "Shadow limit" +#~ msgstr "Limite de mapblock" + +#~ msgid "Start Singleplayer" +#~ msgstr "Iniciar Um jogador" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intensidade de normalmaps gerados." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Força do aumento médio da curva de luz." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Esta fonte será usada para determinados idiomas." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Alternar modo de câmera cinemática" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Altura máxima tÃpica, acima e abaixo do ponto médio, do terreno da " +#~ "montanha flutuante." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Variação da altura da colina e profundidade do lago no terreno liso da " +#~ "Terra Flutuante." + +#~ msgid "View" +#~ msgstr "Vista" + +#~ msgid "Waving Water" +#~ msgstr "Ondas na água" + +#~ msgid "Waving water" +#~ msgstr "Balanço da água" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Se dungeons ocasionalmente se projetam do terreno." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Limite Y máximo de lava em grandes cavernas." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "" +#~ "NÃvel em Y do ponto médio da montanha flutuante e da superfÃcie do lago." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "NÃvel Y para o qual as sombras de ilhas flutuantes se estendem." + +#~ msgid "Yes" +#~ msgstr "Sim" diff --git a/po/ro/minetest.po b/po/ro/minetest.po index f7c6b6fef..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-04 16:41+0000\n" -"Last-Translator: f0roots <f0rootss@gmail.com>\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 <kneekoo@yahoo.com>\n" "Language-Team: Romanian <https://hosted.weblate.org/projects/minetest/" "minetest/ro/>\n" "Language: ro\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.4-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -25,7 +25,7 @@ msgstr "Ai murit" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -41,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. " @@ -61,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 @@ -87,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:" @@ -97,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" @@ -105,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 "" @@ -117,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:" @@ -161,25 +153,65 @@ 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 +#, 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 "" +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 @@ -191,9 +223,19 @@ 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" @@ -201,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" @@ -221,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" @@ -301,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" @@ -332,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" @@ -354,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 @@ -376,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" @@ -529,6 +583,10 @@ 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" @@ -645,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" @@ -698,6 +771,17 @@ msgid "Credits" msgstr "Credite" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "FoÈ™ti contribuitori" @@ -714,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" @@ -735,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 +830,11 @@ 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 +843,11 @@ 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:" @@ -773,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" @@ -797,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 +925,6 @@ 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" @@ -846,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 +945,6 @@ 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 +953,6 @@ 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" @@ -906,19 +980,11 @@ 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 +997,11 @@ 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)" @@ -974,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." @@ -1144,20 +1199,20 @@ msgid "Continue" msgstr "Continuă" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1305,34 +1360,6 @@ 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" @@ -1394,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" @@ -1724,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!" @@ -1999,14 +2045,6 @@ msgstr "" "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." @@ -2045,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." @@ -2066,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." @@ -2133,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" @@ -2192,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" @@ -2391,10 +2443,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2413,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" @@ -2506,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" @@ -2518,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" @@ -2530,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" @@ -2538,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" @@ -2550,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" @@ -2566,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" @@ -2586,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 "" @@ -2632,6 +2681,10 @@ 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" @@ -2688,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 @@ -2696,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 @@ -2797,12 +2854,6 @@ 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 "" @@ -2873,6 +2924,11 @@ 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" @@ -2933,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 @@ -3021,14 +3077,6 @@ 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 "" @@ -3038,18 +3086,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3066,12 +3102,6 @@ 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" @@ -3081,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 @@ -3384,10 +3414,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3441,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 "" @@ -3909,6 +3935,10 @@ 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 +4019,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4088,6 +4125,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4644,10 +4688,6 @@ 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." msgstr "" @@ -4661,6 +4701,14 @@ 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 +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 @@ -4873,6 +4921,13 @@ msgid "" 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 "" @@ -5102,14 +5157,6 @@ 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 "" @@ -5135,10 +5182,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5164,34 +5207,6 @@ msgid "" 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" @@ -5257,6 +5272,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5412,10 +5436,6 @@ 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 "" @@ -5667,6 +5687,16 @@ 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 "" @@ -5796,10 +5826,6 @@ 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" @@ -5893,6 +5919,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5951,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 @@ -5978,15 +6008,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 +6157,17 @@ msgid "" 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 +6370,12 @@ msgid "" 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 "" @@ -6446,6 +6498,24 @@ 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 "" @@ -6457,21 +6527,45 @@ msgstr "" msgid "cURL timeout" msgstr "" -#, fuzzy -#~ msgid "Toggle Cinematic" -#~ msgstr "Intră pe rapid" +#~ 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ă)." -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Selectează FiÈ™ierul Modului:" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "EÅŸti sigur că vrei să resetezi lumea proprie ?" -#, fuzzy -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Activează Daune" +#~ msgid "Back" +#~ msgstr "ÃŽnapoi" -#, fuzzy -#~ msgid "Enable VBO" -#~ msgstr "Activează MP" +#~ 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" @@ -6480,8 +6574,63 @@ msgstr "" #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Se descarca si se instaleaza $ 1, vă rugăm să aÈ™teptaÈ›i ..." -#~ msgid "Back" -#~ msgstr "ÃŽnapoi" +#, fuzzy +#~ msgid "Enable VBO" +#~ msgstr "Activează MP" + +#, fuzzy +#~ 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 e626d58b3..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-18 13:41+0000\n" -"Last-Translator: Maksim Gamarnik <MoNTE48@mail.ua>\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) <er2official@outlook.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/minetest/" "minetest/ru/>\n" "Language: ru\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -47,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 "ÐеÑоответÑтвие верÑии протокола. " @@ -61,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 @@ -86,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 "ЗавиÑимоÑти:" @@ -157,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 "Загрузка..." @@ -190,6 +222,14 @@ 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" msgstr "Моды" @@ -203,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" @@ -220,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" @@ -233,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" @@ -278,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" @@ -302,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" @@ -324,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" @@ -334,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" @@ -364,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 @@ -386,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" @@ -470,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)" @@ -527,13 +572,17 @@ 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 "Выбрать каталог" @@ -590,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 @@ -610,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" @@ -633,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" @@ -652,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 "ПоиÑк дополнений в Ñети" @@ -705,6 +767,18 @@ msgid "Credits" msgstr "БлагодарноÑти" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "Открыть каталог данных пользователÑ" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" +"Открывает каталог, Ñодержащий пользовательÑкие миры, игры, моды,\n" +"и пакеты текÑтур в файловом менеджере / проводнике." + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Прошлые учаÑтники" @@ -721,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 "Включить урон" @@ -742,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 +827,10 @@ 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 +839,10 @@ msgid "Port" msgstr "Порт" #: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "Выберите моды" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Выберите мир:" @@ -780,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 "Ð’ избранные" @@ -806,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 +920,6 @@ 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 "Запоминать размер окна" @@ -855,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 +940,6 @@ msgid "Fancy Leaves" msgstr "КраÑÐ¸Ð²Ð°Ñ Ð»Ð¸Ñтва" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "Создавать карты нормалей" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Мипмаппинг" @@ -884,12 +948,8 @@ 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" @@ -915,19 +975,11 @@ 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 +992,10 @@ msgid "Shaders" msgstr "Шейдеры" #: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "Шейдеры (ÑкÑпериментально)" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Шейдеры (недоÑтупно)" @@ -965,7 +1021,7 @@ msgstr "Тональное отображение" #: builtin/mainmenu/tab_settings.lua msgid "Touchthreshold: (px)" -msgstr "Порог чувÑтвительноÑти: (px)" +msgstr "ЧувÑтвительноÑть: (px)" #: builtin/mainmenu/tab_settings.lua msgid "Trilinear Filter" @@ -977,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 "Тайм-аут ÑоединениÑ." @@ -1122,7 +1162,7 @@ msgstr "Ðвтобег включён" #: src/client/game.cpp msgid "Camera update disabled" -msgstr "Обновление камеры отключено" +msgstr "Обновление камеры выключено" #: src/client/game.cpp msgid "Camera update enabled" @@ -1160,13 +1200,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1272,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" @@ -1315,34 +1355,6 @@ 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 "Режим Ð¿Ñ€Ð¾Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñквозь Ñтены отключён" @@ -1352,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..." @@ -1541,7 +1553,7 @@ msgstr "Insert" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Left" -msgstr "Влево" +msgstr "Лево" #: src/client/keycode.cpp msgid "Left Button" @@ -1566,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" @@ -1734,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 "Пароли не Ñовпадают!" @@ -1780,11 +1810,11 @@ msgstr "Ðазад" #: src/gui/guiKeyChangeMenu.cpp msgid "Change camera" -msgstr "Камера" +msgstr "Изменить камеру" #: src/gui/guiKeyChangeMenu.cpp msgid "Chat" -msgstr "Сообщение" +msgstr "Чат" #: src/gui/guiKeyChangeMenu.cpp msgid "Command" @@ -1816,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" @@ -1842,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" @@ -1858,7 +1888,7 @@ msgstr "Пред. предмет" #: src/gui/guiKeyChangeMenu.cpp msgid "Range select" -msgstr "ВидимоÑть" +msgstr "ДальноÑть прориÑовки" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" @@ -1870,15 +1900,15 @@ msgstr "КраÑтьÑÑ" #: src/gui/guiKeyChangeMenu.cpp msgid "Special" -msgstr "ИÑпользовать" +msgstr "ОÑобенный" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Игровой интерфейÑ" +msgstr "Вкл/выкл игровой интерфейÑ" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" -msgstr "Чат" +msgstr "Вкл/выкл иÑторию чата" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" @@ -1999,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." @@ -2053,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." @@ -2076,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." @@ -2088,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." @@ -2113,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 @@ -2136,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" @@ -2173,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." @@ -2198,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" @@ -2300,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" @@ -2316,7 +2354,7 @@ msgstr "Запоминать размер окна" #: src/settings_translation_file.cpp msgid "Autoscaling mode" -msgstr "Режим автомаÑштабированиÑ" +msgstr "Режим автоматичеÑкого маÑштабированиÑ" #: src/settings_translation_file.cpp msgid "Backward key" @@ -2324,7 +2362,7 @@ msgstr "Клавиша назад" #: src/settings_translation_file.cpp msgid "Base ground level" -msgstr "Уровень земли" +msgstr "Базовый уровень земли" #: src/settings_translation_file.cpp msgid "Base terrain height." @@ -2376,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" @@ -2395,10 +2433,6 @@ 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" @@ -2477,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" @@ -2612,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 "" @@ -2657,6 +2674,10 @@ 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" @@ -2723,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" @@ -2795,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 "" @@ -2839,14 +2867,6 @@ 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 "ОпределÑет базовый уровень земли." @@ -2927,6 +2947,10 @@ msgid "Desynchronize block animation" msgstr "РаÑÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸ блоков" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "Кнопка копать" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "ЧаÑтицы при рытье" @@ -2991,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 @@ -3094,23 +3119,16 @@ 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 "Включает кÑширование повёрнутых мешей." @@ -3120,22 +3138,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3156,14 +3158,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3171,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" @@ -3290,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" @@ -3381,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 "" @@ -3430,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." @@ -3502,10 +3497,6 @@ 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 "Глобальные обратные вызовы" @@ -3521,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" @@ -3563,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: прерывание при иÑпользовании уÑтаревших вызовов (рекомендовано " @@ -3813,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 "" @@ -4089,6 +4083,10 @@ 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 "ЧувÑтвительноÑть джойÑтика" @@ -4192,6 +4190,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4333,6 +4341,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша прыжка.\n" +"См. 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." @@ -4899,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" @@ -4936,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" @@ -4977,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 "" @@ -5083,19 +5095,14 @@ 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." msgstr "" @@ -5111,6 +5118,14 @@ 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 "Каталог ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ñ€Ñ‚" @@ -5119,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." @@ -5128,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 @@ -5171,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" @@ -5294,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" @@ -5307,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 "" @@ -5339,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." @@ -5451,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" @@ -5466,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" @@ -5571,9 +5595,8 @@ msgid "" msgstr "Ð˜Ð¼Ñ Ñервера, отображаемое при входе и в ÑпиÑке Ñерверов." #: src/settings_translation_file.cpp -#, fuzzy msgid "Near plane" -msgstr "Ð‘Ð»Ð¸Ð·ÐºÐ°Ñ Ð¿Ð»Ð¾ÑкоÑть отÑечениÑ" +msgstr "БлижнÑÑ Ð¿Ð»Ð¾ÑкоÑть" #: src/settings_translation_file.cpp msgid "Network" @@ -5612,19 +5635,10 @@ 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" @@ -5638,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 "" @@ -5665,10 +5676,6 @@ msgstr "" "памÑти (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 "Сетевой репозиторий" @@ -5679,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 "" @@ -5696,34 +5703,6 @@ msgstr "" "форма уже открыта." #: 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5731,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 "" @@ -5758,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 "" @@ -5766,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" @@ -5773,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" @@ -5793,6 +5789,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5862,7 +5868,7 @@ msgstr "Профилирование" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Ð°Ð´Ñ€ÐµÑ Ð¿Ñ€Ð¸Ñ‘Ð¼Ð½Ð¸ÐºÐ° Prometheus" #: src/settings_translation_file.cpp msgid "" @@ -5871,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 "" @@ -5902,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" @@ -5975,10 +5984,6 @@ msgid "Right key" msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° меню" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Интервал повторного клика правой кнопкой" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "Глубина руÑла реки" @@ -6118,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" @@ -6211,7 +6215,6 @@ msgstr "" "в чат." #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Set to true to enable waving leaves.\n" "Requires shaders to be enabled." @@ -6220,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." @@ -6253,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." @@ -6279,6 +6282,20 @@ 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 "Сообщение о выключении" @@ -6321,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." @@ -6400,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" @@ -6428,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 "" @@ -6442,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" @@ -6464,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" @@ -6544,6 +6577,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6580,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." @@ -6595,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" @@ -6605,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" @@ -6660,6 +6703,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6667,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 @@ -6753,7 +6802,6 @@ msgid "Trilinear filtering" msgstr "Ð¢Ñ€Ð¸Ð»Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "True = 256\n" "False = 128\n" @@ -6803,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." @@ -6836,6 +6883,26 @@ 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 "" +"ИÑпользуйте многовыборочное Ñглаживание (MSAA) Ð´Ð»Ñ ÑÐ³Ð»Ð°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÐºÑ€Ð°ÐµÐ² " +"блоков.\n" +"Ðтот алгоритм Ñглаживает облаÑть проÑмотра 3D, ÑохранÑÑ Ñ€ÐµÐ·ÐºÐ¾Ñть " +"изображениÑ,\n" +"но Ñто не влиÑет на внутренноÑти текÑтур\n" +"(что оÑобенно заметно на прозрачных текÑтурах).\n" +"Когда шейдеры отключены, между узлами поÑвлÑÑŽÑ‚ÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñ‹Ðµ пробелы.\n" +"ЕÑли уÑтановлено значение 0, MSAA отключено.\n" +"ПоÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтой опции требуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ°." + +#: src/settings_translation_file.cpp msgid "Use trilinear filtering when scaling textures." msgstr "ИÑпользовать трилинейную фильтрацию Ð´Ð»Ñ Ð¼Ð°ÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑтур." @@ -6944,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 "" @@ -6997,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" @@ -7068,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." @@ -7114,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 "" @@ -7198,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." @@ -7220,6 +7296,35 @@ 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" @@ -7231,80 +7336,91 @@ msgstr "Лимит одновременных Ñоединений cURL" msgid "cURL timeout" msgstr "cURL тайм-аут" -#~ msgid "Toggle Cinematic" -#~ msgstr "Кино" - -#~ msgid "Select Package File:" -#~ msgstr "Выберите файл дополнениÑ:" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = ÐŸÐ°Ñ€Ð°Ð»Ð»Ð°ÐºÑ Ð¾ÐºÐºÐ»ÑŽÐ·Ð¸Ð¸ Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ о Ñклоне (быÑтро).\n" +#~ "1 = Рельефный маппинг (медленно, но качеÑтвенно)." -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Верхний предел по Y Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… пÑевдоÑлучайных пещер." +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Регулирует гамма-кодировку таблиц оÑвещениÑ. Более выÑокие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ " +#~ "Ñрче.\n" +#~ "Ðтот параметр предназначен только Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° и игнорируетÑÑ Ñервером." -#~ msgid "Waving Water" -#~ msgstr "Волны на воде" +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "УправлÑет Ñужением оÑтровов горного типа ниже Ñредней точки." -#~ msgid "Projecting dungeons" -#~ msgstr "ПроÑтупающие подземельÑ" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Уверены, что хотите ÑброÑить мир одиночной игры?" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-уровень, на который раÑпроÑтранÑÑŽÑ‚ÑÑ Ñ‚ÐµÐ½Ð¸ Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой." +#~ msgid "Back" +#~ msgstr "Ðазад" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Y-уровень Ñередины поплавка и поверхноÑти озера." +#~ msgid "Bump Mapping" +#~ msgstr "Бампмаппинг" -#~ msgid "Waving water" -#~ msgstr "Волны на воде" +#~ msgid "Bumpmapping" +#~ msgstr "Бампмаппинг" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Ð’Ð°Ñ€Ð¸Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ñоты холмов и глубин озёр на гладкой меÑтноÑти парÑщих " -#~ "оÑтровов." +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Центр Ñреднего подъёма кривой Ñвета." #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "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 "" -#~ "Ð¢Ð¸Ð¿Ð¸Ñ‡Ð½Ð°Ñ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹Ñота, выше и ниже Ñредней точки гор парÑщих " -#~ "оÑтровов." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Ðтот шрифт будет иÑпользован Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… Ñзыков." - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Сила Ñреднего подъёма кривой Ñвета." - -#~ msgid "Shadow limit" -#~ msgstr "Лимит теней" - -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Путь к шрифту TrueType или картинке Ñо шрифтом." - -#~ msgid "Lightness sharpness" -#~ msgstr "РезкоÑть оÑвещённоÑти" +#~ "Изменение интерфейÑа в главном меню:\n" +#~ "- Full: неÑколько однопользовательÑких миров, выбор игры, выбор пакета " +#~ "текÑтур и Ñ‚. д.\n" +#~ "- Simple: один однопользовательÑкий мир без выбора игр или текÑтур. " +#~ "Может быть полезно Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¸Ñ… Ñкранов." -#~ msgid "Lava depth" -#~ msgstr "Глубина лавы" +#~ msgid "Config mods" +#~ msgstr "ÐаÑтройка модов" -#~ msgid "IPv6 support." -#~ msgstr "Поддержка IPv6." +#~ msgid "Configure" +#~ msgstr "ÐаÑтроить" -#~ msgid "Gamma" -#~ msgstr "Гамма" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "Контролирует плотноÑть горной меÑтноÑти парÑщих оÑтровов.\n" +#~ "ЯвлÑетÑÑ Ñмещением, добавлÑемым к значению шума 'mgv7_np_mountain'." -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "ПрозрачноÑть тени шрифта (непрозрачноÑть от 0 до 255)." +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Контролирует ширину тоннелей. Меньшие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñоздают более широкие " +#~ "тоннели." -#~ msgid "Floatland mountain height" -#~ msgstr "Ð’Ñ‹Ñота гор на парÑщих оÑтровах" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Цвет перекреÑÑ‚Ð¸Ñ (R,G,B)." -#~ msgid "Floatland base height noise" -#~ msgstr "Шум базовой выÑоты парÑщих оÑтровов" +#~ msgid "Darkness sharpness" +#~ msgstr "РезкоÑть темноты" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Включить кинематографичеÑкое тональное отображение" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "ОпределÑет облаÑти гладкой поверхноÑти на парÑщих оÑтровах.\n" +#~ "Гладкие парÑщие оÑтрова поÑвлÑÑŽÑ‚ÑÑ, когда шум больше нолÑ." -#~ msgid "Enable VBO" -#~ msgstr "Включить объекты буфера вершин (VBO)" +#~ 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 " @@ -7315,59 +7431,207 @@ msgstr "cURL тайм-аут" #~ "определений биома.\n" #~ "Y верхней границы лавы в больших пещерах." -#~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ msgid "Downloading and installing $1, please wait..." #~ msgstr "" -#~ "ОпределÑет облаÑти гладкой поверхноÑти на парÑщих оÑтровах.\n" -#~ "Гладкие парÑщие оÑтрова поÑвлÑÑŽÑ‚ÑÑ, когда шум больше нолÑ." +#~ "ЗагружаетÑÑ Ð¸ уÑтанавливаетÑÑ $1.\n" +#~ "ПожалуйÑта, подождите..." -#~ msgid "Darkness sharpness" -#~ msgstr "РезкоÑть темноты" +#~ msgid "Enable VBO" +#~ msgstr "Включить объекты буфера вершин (VBO)" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ 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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Контролирует плотноÑть горной меÑтноÑти парÑщих оÑтровов.\n" -#~ "ЯвлÑетÑÑ Ñмещением, добавлÑемым к значению шума 'mgv7_np_mountain'." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Центр Ñреднего подъёма кривой Ñвета." +#~ "Включает генерацию карт нормалей \"на лету\" (Ñффект тиÑнениÑ).\n" +#~ "Требует, чтобы бампмаппинг был включён." -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." -#~ msgstr "УправлÑет Ñужением оÑтровов горного типа ниже Ñредней точки." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Включает Parallax Occlusion.\n" +#~ "Требует, чтобы шейдеры были включены." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Регулирует гамма-кодировку таблиц оÑвещениÑ. Более выÑокие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ " -#~ "Ñрче.\n" -#~ "Ðтот параметр предназначен только Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° и игнорируетÑÑ Ñервером." +#~ "ÐкÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ, может привеÑти к видимым зазорам\n" +#~ "между блоками, когда значение больше, чем 0." -#~ msgid "Path to save screenshots at." -#~ msgstr "Путь Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñкриншотов." +#~ msgid "FPS in pause menu" +#~ msgstr "ÐšÐ°Ð´Ñ€Ð¾Ð²Ð°Ñ Ñ‡Ð°Ñтота во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°ÑƒÐ·Ñ‹" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Сила параллакÑа" +#~ msgid "Floatland base height noise" +#~ msgstr "Шум базовой выÑоты парÑщих оÑтровов" + +#~ msgid "Floatland mountain height" +#~ msgstr "Ð’Ñ‹Ñота гор на парÑщих оÑтровах" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "ПрозрачноÑть тени шрифта (непрозрачноÑть от 0 до 255)." + +#~ msgid "Gamma" +#~ msgstr "Гамма" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Создавать карты нормалей" + +#~ msgid "Generate normalmaps" +#~ msgstr "Генерировать карты нормалей" + +#~ msgid "IPv6 support." +#~ msgstr "Поддержка IPv6." + +#~ msgid "Lava depth" +#~ msgstr "Глубина лавы" + +#~ msgid "Lightness sharpness" +#~ msgstr "РезкоÑть оÑвещённоÑти" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Ограничение очередей emerge на диÑке" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "" -#~ "ЗагружаетÑÑ Ð¸ уÑтанавливаетÑÑ $1.\n" -#~ "ПожалуйÑта, подождите..." +#~ msgid "Main" +#~ msgstr "Главное меню" -#~ msgid "Back" -#~ msgstr "Ðазад" +#~ msgid "Main menu style" +#~ msgstr "Стиль главного меню" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Миникарта в режиме радара, увеличение x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Миникарта в режиме радара, увеличение x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Миникарта в поверхноÑтном режиме, увеличение x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Миникарта в поверхноÑтном режиме, увеличение x4" + +#~ msgid "Name/Password" +#~ msgstr "ИмÑ/Пароль" + +#~ msgid "No" +#~ msgstr "Ðет" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Выборка карт нормалей" + +#~ msgid "Normalmaps strength" +#~ msgstr "Сила карт нормалей" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "КоличеÑтво итераций Parallax Occlusion." #~ msgid "Ok" #~ msgstr "Oк" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Общее Ñмещение Ñффекта Parallax Occlusion, обычно маÑштаб/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Общее Ñмещение Ñффекта Parallax Occlusion." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Объёмные текÑтуры" + +#~ msgid "Parallax occlusion" +#~ msgstr "Включить параллакÑ" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Смещение параллакÑа" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Повторение параллакÑа" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Режим параллакÑа" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "МаÑштаб параллакÑной окклюзии" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Сила параллакÑа" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Путь к шрифту TrueType или картинке Ñо шрифтом." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Путь Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñкриншотов." + +#~ msgid "Projecting dungeons" +#~ msgstr "ПроÑтупающие подземельÑ" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ð¾Ð¹ игры" + +#~ msgid "Select Package File:" +#~ msgstr "Выберите файл дополнениÑ:" + +#~ msgid "Shadow limit" +#~ msgstr "Лимит теней" + +#~ msgid "Start Singleplayer" +#~ msgstr "Ðачать одиночную игру" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Сила Ñгенерированных карт нормалей." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Сила Ñреднего подъёма кривой Ñвета." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Ðтот шрифт будет иÑпользован Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… Ñзыков." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Кино" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Ð¢Ð¸Ð¿Ð¸Ñ‡Ð½Ð°Ñ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹Ñота, выше и ниже Ñредней точки гор парÑщих " +#~ "оÑтровов." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Ð’Ð°Ñ€Ð¸Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ñоты холмов и глубин озёр на гладкой меÑтноÑти парÑщих " +#~ "оÑтровов." + +#~ msgid "View" +#~ msgstr "Вид" + +#~ msgid "Waving Water" +#~ msgstr "Волны на воде" + +#~ msgid "Waving water" +#~ msgstr "Волны на воде" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Верхний предел по Y Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… пÑевдоÑлучайных пещер." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Y-уровень Ñередины поплавка и поверхноÑти озера." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-уровень, на который раÑпроÑтранÑÑŽÑ‚ÑÑ Ñ‚ÐµÐ½Ð¸ Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой." + +#~ msgid "Yes" +#~ msgstr "Да" diff --git a/po/sk/minetest.po b/po/sk/minetest.po index 843c924e3..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-07-08 20:47+0000\n" -"Last-Translator: rubenwardy <rw@rubenwardy.com>\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2021-02-13 08:50+0000\n" +"Last-Translator: Marian <daretmavi@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/minetest/minetest/" "sk/>\n" "Language: sk\n" @@ -17,259 +17,350 @@ 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" - -#: builtin/client/death_formspec.lua src/client/game.cpp -msgid "You died" -msgstr "Zomrel si" +"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" msgstr "OK" #: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "Server požadoval obnovu spojenia:" +msgid "An error occurred in a Lua script:" +msgstr "Chyba v lua skripte:" #: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "Znova pripojiÅ¥" +msgid "An error occurred:" +msgstr "Chyba:" #: builtin/fstk/ui.lua msgid "Main menu" msgstr "Hlavné menu" #: builtin/fstk/ui.lua -msgid "An error occurred in a Lua script:" -msgstr "Chyba v lua skripte:" +msgid "Reconnect" +msgstr "Znova pripojiÅ¥" #: builtin/fstk/ui.lua -msgid "An error occurred:" -msgstr "Chyba:" +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. " #: 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." +msgid "Server enforces protocol version $1. " +msgstr "Server vyžaduje protokol verzie $1. " #: builtin/mainmenu/common.lua msgid "Server supports protocol versions between $1 and $2. " msgstr "Server podporuje verzie protokolov: $1 - $2. " #: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "Server vyžaduje protokol verzie $1. " +msgid "We only support protocol version $1." +msgstr "Podporujeme len protokol verzie $1." #: builtin/mainmenu/common.lua msgid "We support protocol versions between version $1 and $2." msgstr "Podporujeme verzie protokolov: $1 - $2." -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "Podporujeme len protokol verzie $1." +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_content.lua +#: builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp +#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp +#: src/gui/guiPasswordChange.cpp +msgid "Cancel" +msgstr "ZruÅ¡" -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "Nesúhlas verzià protokolov. " +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua +#: builtin/mainmenu/tab_content.lua +msgid "Dependencies:" +msgstr "Závislosti:" #: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "Svet:" +msgid "Disable all" +msgstr "Deaktivuj vÅ¡etko" #: builtin/mainmenu/dlg_config_world.lua -msgid "No modpack description provided." -msgstr "Popis balÃka rozÅ¡Ãrenà nie je k dispozÃciÃ." +msgid "Disable modpack" +msgstr "Deaktivuj balÃÄek rozÅ¡ÃrenÃ" #: builtin/mainmenu/dlg_config_world.lua -msgid "No game description provided." -msgstr "Popis hry nie je k dispozÃciÃ." +msgid "Enable all" +msgstr "Aktivuj vÅ¡etko" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable modpack" +msgstr "Aktivuj balÃÄek rozÅ¡ÃrenÃ" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"characters [a-z0-9_] are allowed." +msgstr "" +"Nepodarilo sa aktivovaÅ¥ rozÅ¡Ãrenie \"$1\" lebo obsahuje nepovolené znaky. " +"Povolené sú len znaky [a-z0-9_]." + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Find More Mods" +msgstr "Nájdi viac rozÅ¡ÃrenÃ" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" -msgstr "RozÅ¡Ãrenie:" +msgstr "Mod:" #: builtin/mainmenu/dlg_config_world.lua msgid "No (optional) dependencies" msgstr "Bez (voliteľných) závislostÃ" #: builtin/mainmenu/dlg_config_world.lua +msgid "No game description provided." +msgstr "Popis hry nie je k dispozÃciÃ." + +#: builtin/mainmenu/dlg_config_world.lua msgid "No hard dependencies" msgstr "Bez povinných závislostÃ" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Optional dependencies:" -msgstr "Voliteľné závislosti:" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua -msgid "Dependencies:" -msgstr "Závislosti:" +#: builtin/mainmenu/dlg_config_world.lua +msgid "No modpack description provided." +msgstr "Popis balÃka rozÅ¡Ãrenà nie je k dispozÃciÃ." #: builtin/mainmenu/dlg_config_world.lua msgid "No optional dependencies" msgstr "Bez voliteľných závislostÃ" +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua +msgid "Optional dependencies:" +msgstr "Voliteľné závislosti:" + #: builtin/mainmenu/dlg_config_world.lua #: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp msgid "Save" msgstr "Ulož" -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_content.lua -#: builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp -#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp -#: src/gui/guiPasswordChange.cpp -msgid "Cancel" -msgstr "ZruÅ¡" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Find More Mods" -msgstr "Nájdi viac rozÅ¡ÃrenÃ" - #: builtin/mainmenu/dlg_config_world.lua -msgid "Disable modpack" -msgstr "Deaktivuj rozÅ¡Ãrenie" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable modpack" -msgstr "Povoľ rozÅ¡Ãrenie" +msgid "World:" +msgstr "Svet:" #: builtin/mainmenu/dlg_config_world.lua msgid "enabled" -msgstr "povolené" +msgstr "aktÃvne" -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "Deaktivuj vÅ¡etko" +#: 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_config_world.lua -msgid "Enable all" -msgstr "Povoľ vÅ¡etko" +#: 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_config_world.lua +#: builtin/mainmenu/dlg_contentstore.lua +msgid "$1 by $2" +msgstr "$1 od $2" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"characters [a-z0-9_] are allowed." +"$1 downloading,\n" +"$2 queued" msgstr "" -"Nepodarilo sa aktivovaÅ¥ rozÅ¡Ãrenie \"$1\" lebo obsahuje nepovolené znaky. " -"Povolené sú len znaky [a-z0-9_]." +"$1 sÅ¥ahujem,\n" +"$2 Äaká v rade" #: 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" +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" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Downloading..." +msgstr "SÅ¥ahujem..." + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Failed to download $1" +msgstr "Nepodarilo sa stiahnuÅ¥ $1" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Games" msgstr "Hry" #: builtin/mainmenu/dlg_contentstore.lua +msgid "Install" +msgstr "InÅ¡taluj" + +#: builtin/mainmenu/dlg_contentstore.lua +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" msgstr "RozÅ¡Ãrenia" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Texture packs" -msgstr "BalÃÄky textúr" +msgid "No packages could be retrieved" +msgstr "Nepodarilo sa stiahnuÅ¥ žiadne balÃÄky" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Failed to download $1" -msgstr "Nepodarilo sa stiahnuÅ¥ $1" +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 "Back to Main Menu" -msgstr "Naspäť do hlavného menu" +msgid "Not found" +msgstr "Nenájdené" #: builtin/mainmenu/dlg_contentstore.lua -msgid "No results" -msgstr "Bez výsledku" +msgid "Overwrite" +msgstr "PrepÃÅ¡" #: builtin/mainmenu/dlg_contentstore.lua -msgid "No packages could be retrieved" -msgstr "Nepodarilo sa stiahnuÅ¥ žiadne balÃÄky" +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 "Downloading..." -msgstr "SÅ¥ahujem..." +msgid "Queued" +msgstr "ÄŒaká v rade" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Install" -msgstr "InÅ¡taluj" +msgid "Texture packs" +msgstr "BalÃÄky textúr" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "OdinÅ¡taluj" #: builtin/mainmenu/dlg_contentstore.lua msgid "Update" msgstr "Aktualizuj" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" -msgstr "OdinÅ¡taluj" +msgid "Update All [$1]" +msgstr "Aktualizuj vÅ¡etky [$1]" #: builtin/mainmenu/dlg_contentstore.lua -msgid "View" -msgstr "ZobraziÅ¥" +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" +msgstr "Svet menom \"$1\" už existuje" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Additional terrain" +msgstr "DodatoÄný terén" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Altitude chill" +msgstr "Ochladenie s nadmorskou výškou" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Altitude dry" +msgstr "Sucho v nadmorskej výške" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biome blending" +msgstr "MieÅ¡anie ekosystémov" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Biomes" +msgstr "Ekosystémy" #: builtin/mainmenu/dlg_create_world.lua msgid "Caverns" msgstr "Jaskyne" #: builtin/mainmenu/dlg_create_world.lua -msgid "Very large caverns deep in the underground" -msgstr "Obrovské jaskyne hlboko v podzemÃ" +msgid "Caves" +msgstr "Jaskyne" #: builtin/mainmenu/dlg_create_world.lua -msgid "Sea level rivers" -msgstr "Rieky na úrovni hladiny mora" +msgid "Create" +msgstr "Vytvor" #: builtin/mainmenu/dlg_create_world.lua -msgid "Rivers" -msgstr "Rieky" +msgid "Decorations" +msgstr "Dekorácie" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mountains" -msgstr "Hory" +msgid "Download a game, such as Minetest Game, from minetest.net" +msgstr "Stiahni si hru, ako napr. Minetest Game z minetest.net" #: builtin/mainmenu/dlg_create_world.lua -msgid "Floatlands (experimental)" -msgstr "Lietajúce krajiny (experimentálne)" +msgid "Download one from minetest.net" +msgstr "Stiahni jednu z minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Dungeons" +msgstr "Kobky" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Flat terrain" +msgstr "Rovný terén" #: builtin/mainmenu/dlg_create_world.lua msgid "Floating landmasses in the sky" msgstr "Poletujúce pevniny na oblohe" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Altitude chill" -msgstr "Ochladenie s nadmorskou výškou" - #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces heat with altitude" -msgstr "Znižuje teplotu s nadmorskou výškou" +msgid "Floatlands (experimental)" +msgstr "Lietajúce krajiny (experimentálne)" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "Hra" #: builtin/mainmenu/dlg_create_world.lua -msgid "Altitude dry" -msgstr "Sucho v nadmorskej výške" +msgid "Generate non-fractal terrain: Oceans and underground" +msgstr "Generuj nefragmentovaný terén: oceány a podzemie" #: builtin/mainmenu/dlg_create_world.lua -msgid "Reduces humidity with altitude" -msgstr "Znižuje vlhkosÅ¥ s nadmorskou výškou" +msgid "Hills" +msgstr "Kopce" #: builtin/mainmenu/dlg_create_world.lua msgid "Humid rivers" @@ -280,8 +371,8 @@ msgid "Increases humidity around rivers" msgstr "ZvyÅ¡uje vlhkosÅ¥ v okolà riek" #: builtin/mainmenu/dlg_create_world.lua -msgid "Vary river depth" -msgstr "Premenlivá hĺbka riek" +msgid "Lakes" +msgstr "Jazerá" #: builtin/mainmenu/dlg_create_world.lua msgid "Low humidity and high heat causes shallow or dry rivers" @@ -289,69 +380,58 @@ msgstr "" "NÃzka vlhkosÅ¥ a vysoké teploty spôsobujú znižovanie hladÃn, alebo vysychanie " "riek" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Hills" -msgstr "Kopce" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Lakes" -msgstr "Jazerá" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Additional terrain" -msgstr "DodatoÄný terén" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "Generátor mapy" -#: builtin/mainmenu/dlg_create_world.lua -msgid "Generate non-fractal terrain: Oceans and underground" -msgstr "Generuj nefragmentovaný terén: oceány a podzemie" +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "PrÃznaky generátora máp" #: builtin/mainmenu/dlg_create_world.lua -msgid "Trees and jungle grass" -msgstr "Stromy a vysoká tráva" +msgid "Mapgen-specific flags" +msgstr "Å pecifické prÃznaky generátora máp" #: builtin/mainmenu/dlg_create_world.lua -msgid "Flat terrain" -msgstr "Rovný terén" +msgid "Mountains" +msgstr "Hory" #: builtin/mainmenu/dlg_create_world.lua msgid "Mud flow" msgstr "Prúd bahna" #: builtin/mainmenu/dlg_create_world.lua -msgid "Terrain surface erosion" -msgstr "Erózia terénu" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle, Tundra, Taiga" -msgstr "Mierne pásmo, Púšť, Džungľa, Tundra, Tajga" +msgid "Network of tunnels and caves" +msgstr "SieÅ¥ tunelov a jaskýň" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert, Jungle" -msgstr "Mierne pásmo, Púšť, Džungľa" +msgid "No game selected" +msgstr "Nie je zvolená hra" #: builtin/mainmenu/dlg_create_world.lua -msgid "Temperate, Desert" -msgstr "Mierne pásmo, Púšť" +msgid "Reduces heat with altitude" +msgstr "Znižuje teplotu s nadmorskou výškou" #: builtin/mainmenu/dlg_create_world.lua -msgid "You have no games installed." -msgstr "Nie je nainÅ¡talovaná žiadna hra." +msgid "Reduces humidity with altitude" +msgstr "Znižuje vlhkosÅ¥ s nadmorskou výškou" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "Stiahni jednu z minetest.net" +msgid "Rivers" +msgstr "Rieky" #: builtin/mainmenu/dlg_create_world.lua -msgid "Caves" -msgstr "Jaskyne" +msgid "Sea level rivers" +msgstr "Rieky na úrovni hladiny mora" #: builtin/mainmenu/dlg_create_world.lua -msgid "Dungeons" -msgstr "Kobky" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Seed" +msgstr "Semienko" #: builtin/mainmenu/dlg_create_world.lua -msgid "Decorations" -msgstr "Dekorácie" +msgid "Smooth transition between biomes" +msgstr "Plynulý prechod medzi ekosystémami" #: builtin/mainmenu/dlg_create_world.lua msgid "" @@ -366,65 +446,44 @@ msgid "Structures appearing on the terrain, typically trees and plants" msgstr "Å truktúry objavujúce sa na povrchu, typicky stromy a rastliny" #: builtin/mainmenu/dlg_create_world.lua -msgid "Network of tunnels and caves" -msgstr "SieÅ¥ tunelov a jaskýň" +msgid "Temperate, Desert" +msgstr "Mierne pásmo, Púšť" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biomes" -msgstr "Ekosystémy" +msgid "Temperate, Desert, Jungle" +msgstr "Mierne pásmo, Púšť, Džungľa" #: builtin/mainmenu/dlg_create_world.lua -msgid "Biome blending" -msgstr "MieÅ¡anie ekosystémov" +msgid "Temperate, Desert, Jungle, Tundra, Taiga" +msgstr "Mierne pásmo, Púšť, Džungľa, Tundra, Tajga" #: builtin/mainmenu/dlg_create_world.lua -msgid "Smooth transition between biomes" -msgstr "Plynulý prechod medzi ekosystémami" +msgid "Terrain surface erosion" +msgstr "Erózia terénu" -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "PrÃznaky generátora máp" +#: builtin/mainmenu/dlg_create_world.lua +msgid "Trees and jungle grass" +msgstr "Stromy a vysoká tráva" #: builtin/mainmenu/dlg_create_world.lua -msgid "Mapgen-specific flags" -msgstr "Å pecifické prÃznaky generátora máp" +msgid "Vary river depth" +msgstr "Premenlivá hĺbka riek" #: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The Development Test is meant for developers." -msgstr "Varovanie: Vývojarský Test je urÄený vývojárom." +msgid "Very large caverns deep in the underground" +msgstr "Obrovské jaskyne hlboko v podzemÃ" #: builtin/mainmenu/dlg_create_world.lua -msgid "Download a game, such as Minetest Game, from minetest.net" -msgstr "Stiahni si hru, ako napr. Minetest Game z minetest.net" +msgid "Warning: The Development Test is meant for developers." +msgstr "Varovanie: Vývojarský Test je urÄený vývojárom." #: builtin/mainmenu/dlg_create_world.lua msgid "World name" msgstr "Meno sveta" #: builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Seed" -msgstr "Semienko" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "Generátor mapy" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "Hra" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "Vytvor" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "Svet menom \"$1\" už existuje" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No game selected" -msgstr "Nie je zvolená hra" +msgid "You have no games installed." +msgstr "Nie je nainÅ¡talovaná žiadna hra." #: builtin/mainmenu/dlg_delete_content.lua msgid "Are you sure you want to delete \"$1\"?" @@ -453,6 +512,10 @@ msgid "Accept" msgstr "PrijaÅ¥" #: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "Premenuj balÃÄek rozÅ¡ÃrenÃ:" + +#: builtin/mainmenu/dlg_rename_modpack.lua msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." @@ -460,100 +523,81 @@ msgstr "" "Tento balÃÄek rozÅ¡Ãrenà má vo svojom modpack.conf explicitne zadané meno, " "ktoré prepÃÅ¡e akékoľvek tunajÅ¡ie premenovanie." -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "Premenuj balÃÄek rozÅ¡ÃrenÃ:" +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "(Nie je zadaný popis nastavenia)" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "Zablokované" +msgid "2D Noise" +msgstr "2D Å¡um" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "Povolené" +msgid "< Back to Settings page" +msgstr "< Späť na nastavenia" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Browse" msgstr "Prehliadaj" -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Offset" -msgstr "Ofset" - -#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp -msgid "Scale" -msgstr "Mierka" - #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X spread" -msgstr "Rozptyl X" +msgid "Disabled" +msgstr "Vypnuté" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y spread" -msgstr "Rozptyl Y" +msgid "Edit" +msgstr "UpraviÅ¥" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "2D Noise" -msgstr "2D Å¡um" +msgid "Enabled" +msgstr "Aktivované" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z spread" -msgstr "Rozptyl Z" +msgid "Lacunarity" +msgstr "Lakunarita" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Octaves" msgstr "Oktávy" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Offset" +msgstr "Ofset" + #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Persistance" msgstr "VytrvalosÅ¥" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Lacunarity" -msgstr "Lakunarita" - -#. ~ "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 "Å¡tandardné hodnoty (defaults)" +msgid "Please enter a valid integer." +msgstr "ProsÃm zadaj platné celé ÄÃslo." -#. ~ "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 "zjemnené (eased)" +msgid "Please enter a valid number." +msgstr "ProsÃm vlož platné ÄÃslo." -#. ~ "absvalue" is a noise parameter flag. -#. It is short for "absolute value". -#. It can be enabled in noise settings in -#. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "absvalue" -msgstr "Absolútna hodnota (absvalue)" +msgid "Restore Default" +msgstr "Obnov Å¡tandardné hodnoty" -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "X" -msgstr "X" +#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp +msgid "Scale" +msgstr "Mierka" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Y" -msgstr "Y" +msgid "Search" +msgstr "Hľadaj" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Z" -msgstr "Z" +msgid "Select directory" +msgstr "Zvoľ adresár" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "(Nie je zadaný popis nastavenia)" +msgid "Select file" +msgstr "Zvoľ súbor" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "ProsÃm zadaj platné celé ÄÃslo." +msgid "Show technical names" +msgstr "Zobraz technické názvy" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "The value must be at least $1." @@ -564,52 +608,68 @@ msgid "The value must not be larger than $1." msgstr "Hodnota nesmie byÅ¥ vyššia ako $1." #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "ProsÃm vlož platné ÄÃslo." +msgid "X" +msgstr "X" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select directory" -msgstr "Zvoľ adresár" +msgid "X spread" +msgstr "Rozptyl X" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select file" -msgstr "Zvoľ súbor" +msgid "Y" +msgstr "Y" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "< Späť na nastavenia" +msgid "Y spread" +msgstr "Rozptyl Y" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "UpraviÅ¥" +msgid "Z" +msgstr "Z" #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "Obnov Å¡tandardné hodnoty" +msgid "Z spread" +msgstr "Rozptyl Z" +#. ~ "absvalue" is a noise parameter flag. +#. It is short for "absolute value". +#. It can be enabled in noise settings in +#. main menu -> "All Settings". #: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "Zobraz technické názvy" +msgid "absvalue" +msgstr "Absolútna hodnota (absvalue)" + +#. ~ "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 "Å¡tandardné hodnoty (defaults)" + +#. ~ "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 "zjemnené (eased)" #: builtin/mainmenu/pkgmgr.lua msgid "$1 (Enabled)" -msgstr "$1 (povolený)" +msgstr "$1 (Aktivované)" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a $1 as a texture pack" -msgstr "Nie je možné nainÅ¡talovaÅ¥ $1 ako balÃÄek textúr" +msgid "$1 mods" +msgstr "$1 rozÅ¡Ãrenia" #: builtin/mainmenu/pkgmgr.lua msgid "Failed to install $1 to $2" msgstr "Zlyhala inÅ¡talácia $1 na $2" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to find a valid mod or modpack" -msgstr "Nie je možné nájsÅ¥ platné rozÅ¡Ãrenie, alebo balÃÄek rozÅ¡ÃrenÃ" - -#: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a modpack as a $1" -msgstr "Nie je možné nainÅ¡talovaÅ¥ balÃÄek rozÅ¡Ãrenà $1" +msgid "Install Mod: Unable to find real mod name for: $1" +msgstr "" +"InÅ¡talácia rozÅ¡Ãrenia: Nie je možné nájsÅ¥ skutoÄné meno rozÅ¡Ãrenia pre: $1" #: builtin/mainmenu/pkgmgr.lua msgid "Install Mod: Unable to find suitable folder name for modpack $1" @@ -618,434 +678,432 @@ msgstr "" "rozÅ¡Ãrenà $1" #: builtin/mainmenu/pkgmgr.lua -msgid "Unable to install a mod as a $1" -msgstr "Nie je možné nainÅ¡talovaÅ¥ rozÅ¡Ãrenie $1" +msgid "Install: Unsupported file type \"$1\" or broken archive" +msgstr "InÅ¡talácia: Nepodporovaný typ súboru \"$1\", alebo poÅ¡kodený archÃv" #: builtin/mainmenu/pkgmgr.lua -msgid "Install Mod: Unable to find real mod name for: $1" -msgstr "" -"InÅ¡talácia rozÅ¡Ãrenia: Nie je možné nájsÅ¥ skutoÄné meno rozÅ¡Ãrenia pre: $1" +msgid "Install: file: \"$1\"" +msgstr "InÅ¡talácia: súbor: \"$1\"" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to find a valid mod or modpack" +msgstr "Nie je možné nájsÅ¥ platné rozÅ¡Ãrenie, alebo balÃÄek rozÅ¡ÃrenÃ" + +#: builtin/mainmenu/pkgmgr.lua +msgid "Unable to install a $1 as a texture pack" +msgstr "Nie je možné nainÅ¡talovaÅ¥ $1 ako balÃÄek textúr" #: builtin/mainmenu/pkgmgr.lua msgid "Unable to install a game as a $1" msgstr "Nie je možné nainÅ¡talovaÅ¥ hru $1" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: file: \"$1\"" -msgstr "InÅ¡talácia: súbor: \"$1\"" +msgid "Unable to install a mod as a $1" +msgstr "Nie je možné nainÅ¡talovaÅ¥ rozÅ¡Ãrenie $1" #: builtin/mainmenu/pkgmgr.lua -msgid "Install: Unsupported file type \"$1\" or broken archive" -msgstr "InÅ¡talácia: Nepodporovaný typ súboru \"$1\", alebo poÅ¡kodený archÃv" +msgid "Unable to install a modpack as a $1" +msgstr "Nie je možné nainÅ¡talovaÅ¥ balÃÄek rozÅ¡Ãrenà $1" -#: builtin/mainmenu/pkgmgr.lua -msgid "$1 mods" -msgstr "$1 rozÅ¡Ãrenia" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Nahrávam..." -#: builtin/mainmenu/tab_content.lua -msgid "Installed Packages:" -msgstr "NainÅ¡talované balÃÄky:" +#: 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 "No package description available" -msgstr "Nie je k dispozÃcià popis balÃÄka" +msgid "Content" +msgstr "Doplnky" #: builtin/mainmenu/tab_content.lua -msgid "Rename" -msgstr "Premenuj" +msgid "Disable Texture Pack" +msgstr "Deaktivuj balÃÄek textúr" #: builtin/mainmenu/tab_content.lua -msgid "No dependencies." -msgstr "Bez závislostÃ." +msgid "Information:" +msgstr "Informácie:" #: builtin/mainmenu/tab_content.lua -msgid "Disable Texture Pack" -msgstr "Deaktivuj balÃÄek textúr" +msgid "Installed Packages:" +msgstr "NainÅ¡talované balÃÄky:" #: builtin/mainmenu/tab_content.lua -msgid "Use Texture Pack" -msgstr "Použi balÃÄek textúr" +msgid "No dependencies." +msgstr "Bez závislostÃ." #: builtin/mainmenu/tab_content.lua -msgid "Information:" -msgstr "Informácie:" +msgid "No package description available" +msgstr "Nie je k dispozÃcià popis balÃÄka" + +#: builtin/mainmenu/tab_content.lua +msgid "Rename" +msgstr "Premenuj" #: builtin/mainmenu/tab_content.lua msgid "Uninstall Package" msgstr "OdinÅ¡taluj balÃÄek" #: builtin/mainmenu/tab_content.lua -msgid "Content" -msgstr "Obsah" +msgid "Use Texture Pack" +msgstr "Použi balÃÄek textúr" #: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "Uznanie" +msgid "Active Contributors" +msgstr "AktÃvny prispievatelia" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" msgstr "Hlavný vývojari" #: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "AktÃvny prispievatelia" +msgid "Credits" +msgstr "PoÄakovanie" #: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "Predchádzajúci hlavný vývojári" +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" msgstr "Predchádzajúci prispievatelia" -#: builtin/mainmenu/tab_local.lua -msgid "Install games from ContentDB" -msgstr "InÅ¡taluj hru z ContentDB" +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "Predchádzajúci hlavný vývojári" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurácia" +msgid "Announce Server" +msgstr "Zverejni server" #: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "Nový" +msgid "Bind Address" +msgstr "PriraÄ adresu" #: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "Zvoľ si svet:" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "KreatÃvny mód" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" -msgstr "Povoľ poÅ¡kodenie" +msgstr "Aktivuj zranenie" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "HosÅ¥uj hru" #: builtin/mainmenu/tab_local.lua msgid "Host Server" msgstr "HosÅ¥uj server" #: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "HosÅ¥uj hru" +msgid "Install games from ContentDB" +msgstr "InÅ¡taluj hry z ContentDB" #: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "Zverejni server" +msgid "Name" +msgstr "Meno" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Meno/Heslo" +msgid "New" +msgstr "Nový" #: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "PriraÄ adresu" +msgid "No world created or selected!" +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 "Hraj hru" #: builtin/mainmenu/tab_local.lua msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "Port servera" +msgid "Select Mods" +msgstr "Zvoľ mody" #: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" +msgid "Select World:" +msgstr "Zvoľ si svet:" #: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" +msgid "Server Port" +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 -msgid "Name / Password" -msgstr "" - -#: 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 "KreatÃvny mód" + +#: builtin/mainmenu/tab_online.lua +msgid "Damage enabled" +msgstr "PoÅ¡kodenie je aktivované" + +#: 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 builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" +#: builtin/mainmenu/tab_online.lua +msgid "Join Game" +msgstr "Pripoj sa do hry" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" +#: builtin/mainmenu/tab_online.lua +msgid "Name / Password" +msgstr "Meno / Heslo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" +#: builtin/mainmenu/tab_online.lua +msgid "Ping" +msgstr "Ping" #. ~ PvP = Player versus Player -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - #: builtin/mainmenu/tab_online.lua -msgid "Join Game" -msgstr "" +msgid "PvP enabled" +msgstr "PvP je aktÃvne" #: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" +msgid "2x" +msgstr "2x" #: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" +msgid "3D Clouds" +msgstr "3D mraky" #: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" +msgid "4x" +msgstr "4x" #: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" +msgid "8x" +msgstr "8x" #: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" +msgid "All Settings" +msgstr "VÅ¡etky nastavenia" #: builtin/mainmenu/tab_settings.lua -msgid "None" -msgstr "" +msgid "Antialiasing:" +msgstr "Vyhladzovanie:" #: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" +msgid "Autosave Screen Size" +msgstr "Automat. ulož. veľkosti okna" #: builtin/mainmenu/tab_settings.lua msgid "Bilinear Filter" -msgstr "" +msgstr "Bilineárny filter" + +#: builtin/mainmenu/tab_settings.lua src/client/game.cpp +msgid "Change Keys" +msgstr "Zmeň ovládacie klávesy" #: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" +msgid "Connected Glass" +msgstr "Prepojené sklo" #: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" +msgid "Fancy Leaves" +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 "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" +msgstr "Mipmapy + Aniso. filter" #: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" +msgid "No Filter" +msgstr "Žiaden filter" #: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" +msgid "No Mipmap" +msgstr "Žiadne Mipmapy" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" +msgid "Node Highlighting" +msgstr "Nasvietenie kocky" #: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" +msgid "Node Outlining" +msgstr "Obrys kocky" #: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" +msgid "None" +msgstr "Žiadne" #: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" +msgid "Opaque Leaves" +msgstr "Nepriehľadné listy" #: builtin/mainmenu/tab_settings.lua msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" +msgstr "Nepriehľadná voda" #: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" +msgid "Particles" +msgstr "ÄŒastice" #: builtin/mainmenu/tab_settings.lua msgid "Screen:" -msgstr "" +msgstr "Zobrazenie:" #: builtin/mainmenu/tab_settings.lua -msgid "Autosave Screen Size" -msgstr "" +msgid "Settings" +msgstr "Nastavenia" #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Shaders" -msgstr "" +msgstr "Shadery" #: builtin/mainmenu/tab_settings.lua -msgid "Shaders (unavailable)" -msgstr "" +msgid "Shaders (experimental)" +msgstr "Shadery (experimentálne)" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" +msgid "Shaders (unavailable)" +msgstr "Shadery (nedostupné)" -#: builtin/mainmenu/tab_settings.lua src/client/game.cpp -msgid "Change Keys" -msgstr "" +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "Jednoduché listy" #: builtin/mainmenu/tab_settings.lua -msgid "All Settings" -msgstr "" +msgid "Smooth Lighting" +msgstr "Jemné osvetlenie" #: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold: (px)" -msgstr "" +msgid "Texturing:" +msgstr "Textúrovanie:" #: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "Aby mohli byÅ¥ aktivované shadery, musà sa použiÅ¥ OpenGL." #: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp msgid "Tone Mapping" -msgstr "" +msgstr "Tone Mapping (Optim. farieb)" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" +msgid "Touchthreshold: (px)" +msgstr "Dotykový prah: (px)" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Liquids" -msgstr "" +msgid "Trilinear Filter" +msgstr "Trilineárny filter" #: builtin/mainmenu/tab_settings.lua msgid "Waving Leaves" -msgstr "" +msgstr "Vlniace sa listy" #: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" +msgid "Waving Liquids" +msgstr "Vlniace sa kvapaliny" #: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" +msgid "Waving Plants" +msgstr "Vlniace sa rastliny" #: src/client/client.cpp msgid "Connection timed out." -msgstr "" +msgstr "ÄŒasový limit pripojenia vyprÅ¡al." #: src/client/client.cpp -msgid "Loading textures..." -msgstr "" +msgid "Done!" +msgstr "Hotovo!" #: src/client/client.cpp -msgid "Rebuilding shaders..." -msgstr "" +msgid "Initializing nodes" +msgstr "Inicializujem kocky" #: src/client/client.cpp msgid "Initializing nodes..." -msgstr "" +msgstr "Inicializujem kocky..." #: src/client/client.cpp -msgid "Initializing nodes" -msgstr "" +msgid "Loading textures..." +msgstr "Nahrávam textúry..." #: src/client/client.cpp -msgid "Done!" -msgstr "" +msgid "Rebuilding shaders..." +msgstr "Obnovujem shadery..." #: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" +msgid "Connection error (timed out?)" +msgstr "Chyba spojenia (Äasový limit?)" #: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" +msgid "Could not find or load game \"" +msgstr "Nie je možné nájsÅ¥ alebo nahraÅ¥ hru \"" #: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" +msgid "Invalid gamespec." +msgstr "Chybná Å¡pec. hry." #: src/client/clientlauncher.cpp -msgid "Provided password file failed to open: " -msgstr "" +msgid "Main Menu" +msgstr "Hlavné menu" #: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" +msgid "No world selected and no address provided. Nothing to do." +msgstr "Nie je zvolený svet ani poskytnutá adresa. Niet Äo robiÅ¥." #: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" +msgid "Player name too long." +msgstr "Meno hráÄa je prÃliÅ¡ dlhé." #: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" +msgid "Please choose a name!" +msgstr "ProsÃm zvoľ si meno!" #: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" +msgid "Provided password file failed to open: " +msgstr "Dodaný súbor s heslom nie je možné otvoriÅ¥: " #: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" +msgid "Provided world path doesn't exist: " +msgstr "Zadaná cesta k svetu neexistuje: " #. ~ DO NOT TRANSLATE THIS LITERALLY! #. This is a special string. Put either "no" or "yes" @@ -1057,641 +1115,668 @@ msgstr "" #. When in doubt, test your translation. #: src/client/fontengine.cpp msgid "needs_fallback_font" -msgstr "" +msgstr "no" #: src/client/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/client/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/client/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/client/game.cpp -msgid "Connecting to server..." +msgid "" +"\n" +"Check debug.txt for details." msgstr "" +"\n" +"Pozri detaily v debug.txt." #: src/client/game.cpp -msgid "Item definitions..." -msgstr "" +msgid "- Address: " +msgstr "- Adresa: " #: src/client/game.cpp -msgid "Node definitions..." -msgstr "" +msgid "- Creative Mode: " +msgstr "- KreatÃvny mód: " #: src/client/game.cpp -msgid "Media..." -msgstr "" +msgid "- Damage: " +msgstr "- PoÅ¡kodenie: " #: src/client/game.cpp -msgid "KiB/s" -msgstr "" +msgid "- Mode: " +msgstr "- Mode: " #: src/client/game.cpp -msgid "MiB/s" -msgstr "" +msgid "- Port: " +msgstr "- Port: " #: src/client/game.cpp -msgid "Client side scripting is disabled" -msgstr "" +msgid "- Public: " +msgstr "- Verejný: " +#. ~ PvP = Player versus Player #: src/client/game.cpp -msgid "Sound muted" -msgstr "" +msgid "- PvP: " +msgstr "- PvP: " #: src/client/game.cpp -msgid "Sound unmuted" -msgstr "" +msgid "- Server Name: " +msgstr "- Meno servera: " #: src/client/game.cpp -msgid "Sound system is disabled" -msgstr "" +msgid "Automatic forward disabled" +msgstr "Automatický pohyb vpred je zakázaný" #: src/client/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" +msgid "Automatic forward enabled" +msgstr "Automatický pohyb vpred je aktivovaný" #: src/client/game.cpp -msgid "Sound system is not supported on this build" -msgstr "" +msgid "Camera update disabled" +msgstr "Aktualizácia kamery je zakázaná" #: src/client/game.cpp -msgid "ok" -msgstr "" +msgid "Camera update enabled" +msgstr "Aktualizácia kamery je aktivovaná" #: src/client/game.cpp -msgid "Fly mode enabled" -msgstr "" +msgid "Change Password" +msgstr "ZmeniÅ¥ heslo" #: src/client/game.cpp -msgid "Fly mode enabled (note: no 'fly' privilege)" -msgstr "" +msgid "Cinematic mode disabled" +msgstr "Filmový režim je zakázaný" #: src/client/game.cpp -msgid "Fly mode disabled" -msgstr "" +msgid "Cinematic mode enabled" +msgstr "Filmový režim je aktivovaný" #: src/client/game.cpp -msgid "Pitch move mode enabled" -msgstr "" +msgid "Client side scripting is disabled" +msgstr "Skriptovanie na strane klienta je zakázané" #: src/client/game.cpp -msgid "Pitch move mode disabled" -msgstr "" +msgid "Connecting to server..." +msgstr "Pripájam sa k serveru..." #: src/client/game.cpp -msgid "Fast mode enabled" -msgstr "" +msgid "Continue" +msgstr "PokraÄuj" #: src/client/game.cpp -msgid "Fast mode enabled (note: no 'fast' privilege)" +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" msgstr "" +"Ovládanie:\n" +"- %s: pohyb vpred\n" +"- %s: pohyb vzad\n" +"- %s: pohyb doľava\n" +"- %s: pohyb doprava\n" +"- %s: skoÄ/vylez\n" +"- %s: 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 "Fast mode disabled" -msgstr "" +msgid "Creating client..." +msgstr "Vytváram klienta..." #: src/client/game.cpp -msgid "Noclip mode enabled" -msgstr "" +msgid "Creating server..." +msgstr "Vytváram server..." #: src/client/game.cpp -msgid "Noclip mode enabled (note: no 'noclip' privilege)" -msgstr "" +msgid "Debug info and profiler graph hidden" +msgstr "Ladiace informácie a Profilový graf sú skryté" #: src/client/game.cpp -msgid "Noclip mode disabled" -msgstr "" +msgid "Debug info shown" +msgstr "Ladiace informácie zobrazené" #: src/client/game.cpp -msgid "Cinematic mode enabled" -msgstr "" +msgid "Debug info, profiler graph, and wireframe hidden" +msgstr "Ladiace informácie, Profilový graf a Obrysy sú skryté" #: src/client/game.cpp -msgid "Cinematic mode disabled" +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 "" +"Å 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 "Automatic forward enabled" -msgstr "" +msgid "Disabled unlimited viewing range" +msgstr "Neobmedzená dohľadnosÅ¥ je zakázaná" #: src/client/game.cpp -msgid "Automatic forward disabled" -msgstr "" +msgid "Enabled unlimited viewing range" +msgstr "Neobmedzená dohľadnosÅ¥ je aktivovaná" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x1" -msgstr "" +msgid "Exit to Menu" +msgstr "Návrat do menu" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x2" -msgstr "" +msgid "Exit to OS" +msgstr "UkonÄiÅ¥ hru" #: src/client/game.cpp -msgid "Minimap in surface mode, Zoom x4" -msgstr "" +msgid "Fast mode disabled" +msgstr "Rýchly režim je zakázaný" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x1" -msgstr "" +msgid "Fast mode enabled" +msgstr "Rýchly režim je aktÃvny" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x2" -msgstr "" +msgid "Fast mode enabled (note: no 'fast' privilege)" +msgstr "Rýchly režim je aktivovaný (poznámka: chýba právo 'fast')" #: src/client/game.cpp -msgid "Minimap in radar mode, Zoom x4" -msgstr "" +msgid "Fly mode disabled" +msgstr "Režim lietania je zakázaný" #: src/client/game.cpp -msgid "Minimap hidden" -msgstr "" +msgid "Fly mode enabled" +msgstr "Režim lietania je aktÃvny" #: src/client/game.cpp -msgid "Minimap currently disabled by game or mod" -msgstr "" +msgid "Fly mode enabled (note: no 'fly' privilege)" +msgstr "Režim lietania je aktÃvny (poznámka: chýba právo 'fly')" #: src/client/game.cpp msgid "Fog disabled" -msgstr "" +msgstr "Hmla je vypnutá" #: src/client/game.cpp msgid "Fog enabled" -msgstr "" - -#: src/client/game.cpp -msgid "Debug info shown" -msgstr "" - -#: src/client/game.cpp -msgid "Profiler graph shown" -msgstr "" +msgstr "Hmla je aktivovaná" #: src/client/game.cpp -msgid "Wireframe shown" -msgstr "" +msgid "Game info:" +msgstr "Informácie o hre:" #: src/client/game.cpp -msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "" +msgid "Game paused" +msgstr "Hra je pozastavená" #: src/client/game.cpp -msgid "Debug info and profiler graph hidden" -msgstr "" +msgid "Hosting server" +msgstr "Bežà server" #: src/client/game.cpp -msgid "Camera update disabled" -msgstr "" +msgid "Item definitions..." +msgstr "DefinÃcie vecÃ..." #: src/client/game.cpp -msgid "Camera update enabled" -msgstr "" +msgid "KiB/s" +msgstr "KiB/s" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at maximum: %d" -msgstr "" +msgid "Media..." +msgstr "Média..." #: src/client/game.cpp -#, c-format -msgid "Viewing range changed to %d" -msgstr "" +msgid "MiB/s" +msgstr "MiB/s" #: src/client/game.cpp -#, c-format -msgid "Viewing range is at minimum: %d" -msgstr "" +msgid "Minimap currently disabled by game or mod" +msgstr "Minimapa je aktuálne zakázaná hrou, alebo rozÅ¡ÃrenÃm" #: src/client/game.cpp -msgid "Enabled unlimited viewing range" -msgstr "" +msgid "Noclip mode disabled" +msgstr "Režim prechádzania stenami je zakázaný" #: src/client/game.cpp -msgid "Disabled unlimited viewing range" -msgstr "" +msgid "Noclip mode enabled" +msgstr "Režim prechádzania stenami je aktivovaný" #: src/client/game.cpp -msgid "Zoom currently disabled by game or mod" +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 "" -"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 "" +msgid "Node definitions..." +msgstr "DefinÃcie kocky..." #: src/client/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" +msgid "Off" +msgstr "Vypnutý" #: src/client/game.cpp -msgid "Continue" -msgstr "" +msgid "On" +msgstr "AktÃvny" #: src/client/game.cpp -msgid "Change Password" -msgstr "" +msgid "Pitch move mode disabled" +msgstr "Režim pohybu podľa sklonu je zakázaný" #: src/client/game.cpp -msgid "Game paused" -msgstr "" +msgid "Pitch move mode enabled" +msgstr "Režim pohybu podľa sklonu je aktÃvny" #: src/client/game.cpp -msgid "Sound Volume" -msgstr "" +msgid "Profiler graph shown" +msgstr "Profilový graf je zobrazený" #: src/client/game.cpp -msgid "Exit to Menu" -msgstr "" +msgid "Remote server" +msgstr "Vzdialený server" #: src/client/game.cpp -msgid "Exit to OS" -msgstr "" +msgid "Resolving address..." +msgstr "Prekladám adresu..." #: src/client/game.cpp -msgid "Game info:" -msgstr "" +msgid "Shutting down..." +msgstr "VypÃnam..." #: src/client/game.cpp -msgid "- Mode: " -msgstr "" +msgid "Singleplayer" +msgstr "Hra pre jedného hráÄa" #: src/client/game.cpp -msgid "Remote server" -msgstr "" +msgid "Sound Volume" +msgstr "HlasitosÅ¥" #: src/client/game.cpp -msgid "- Address: " -msgstr "" +msgid "Sound muted" +msgstr "Zvuk je stlmený" #: src/client/game.cpp -msgid "Hosting server" -msgstr "" +msgid "Sound system is disabled" +msgstr "Zvukový systém je zakázaný" #: src/client/game.cpp -msgid "- Port: " -msgstr "" +msgid "Sound system is not supported on this build" +msgstr "Zvukový systém nie je podporovaný v tomto zostavenÃ" #: src/client/game.cpp -msgid "Singleplayer" -msgstr "" +msgid "Sound unmuted" +msgstr "Zvuk je obnovený" #: src/client/game.cpp -msgid "On" -msgstr "" +#, c-format +msgid "Viewing range changed to %d" +msgstr "DohľadnosÅ¥ je zmenená na %d" #: src/client/game.cpp -msgid "Off" -msgstr "" +#, c-format +msgid "Viewing range is at maximum: %d" +msgstr "DohľadnosÅ¥ je na maxime: %d" #: src/client/game.cpp -msgid "- Damage: " -msgstr "" +#, c-format +msgid "Viewing range is at minimum: %d" +msgstr "DohľadnosÅ¥ je na minime: %d" #: src/client/game.cpp -msgid "- Creative Mode: " -msgstr "" +#, c-format +msgid "Volume changed to %d%%" +msgstr "HlasitosÅ¥ zmenená na %d%%" -#. ~ PvP = Player versus Player #: src/client/game.cpp -msgid "- PvP: " -msgstr "" +msgid "Wireframe shown" +msgstr "Obrysy zobrazené" #: src/client/game.cpp -msgid "- Public: " -msgstr "" +msgid "Zoom currently disabled by game or mod" +msgstr "ZväÄÅ¡enie je zakázané hrou, alebo rozÅ¡ÃrenÃm" #: src/client/game.cpp -msgid "- Server Name: " -msgstr "" +msgid "ok" +msgstr "ok" -#: src/client/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" +#: src/client/gameui.cpp +msgid "Chat hidden" +msgstr "KomunikaÄná konzola je skrytá" #: src/client/gameui.cpp msgid "Chat shown" -msgstr "" +msgstr "KomunikaÄná konzola je zobrazená" #: src/client/gameui.cpp -msgid "Chat hidden" -msgstr "" +msgid "HUD hidden" +msgstr "HUD je skryrý" #: src/client/gameui.cpp msgid "HUD shown" -msgstr "" +msgstr "HUD je zobrazený" #: src/client/gameui.cpp -msgid "HUD hidden" -msgstr "" +msgid "Profiler hidden" +msgstr "Profilovanie je skryté" #: src/client/gameui.cpp #, c-format msgid "Profiler shown (page %d of %d)" -msgstr "" - -#: src/client/gameui.cpp -msgid "Profiler hidden" -msgstr "" +msgstr "Profilovanie je zobrazené (strana %d z %d)" #: src/client/keycode.cpp -msgid "Left Button" -msgstr "" +msgid "Apps" +msgstr "Aplikácie" #: src/client/keycode.cpp -msgid "Right Button" -msgstr "" +msgid "Backspace" +msgstr "Backspace" #: src/client/keycode.cpp -msgid "Middle Button" -msgstr "" +msgid "Caps Lock" +msgstr "Caps Lock" #: src/client/keycode.cpp -msgid "X Button 1" -msgstr "" +msgid "Clear" +msgstr "Zmaž" #: src/client/keycode.cpp -msgid "X Button 2" -msgstr "" +msgid "Control" +msgstr "CTRL" #: src/client/keycode.cpp -msgid "Backspace" -msgstr "" +msgid "Down" +msgstr "Dole" #: src/client/keycode.cpp -msgid "Tab" -msgstr "" +msgid "End" +msgstr "End" #: src/client/keycode.cpp -msgid "Clear" -msgstr "" +msgid "Erase EOF" +msgstr "Zmaž EOF" #: src/client/keycode.cpp -msgid "Return" -msgstr "" +msgid "Execute" +msgstr "SpustiÅ¥" #: src/client/keycode.cpp -msgid "Shift" -msgstr "" +msgid "Help" +msgstr "Pomoc" #: src/client/keycode.cpp -msgid "Control" -msgstr "" +msgid "Home" +msgstr "Home" -#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Menu" -msgstr "" +msgid "IME Accept" +msgstr "IME Súhlas" #: src/client/keycode.cpp -msgid "Pause" -msgstr "" +msgid "IME Convert" +msgstr "IME Konvertuj" #: src/client/keycode.cpp -msgid "Caps Lock" -msgstr "" +msgid "IME Escape" +msgstr "IME Escape" #: src/client/keycode.cpp -msgid "Space" -msgstr "" +msgid "IME Mode Change" +msgstr "IME Zmena módu" #: src/client/keycode.cpp -msgid "Page up" -msgstr "" +msgid "IME Nonconvert" +msgstr "IME Nekonvertuj" #: src/client/keycode.cpp -msgid "Page down" -msgstr "" +msgid "Insert" +msgstr "Vlož" -#: src/client/keycode.cpp -msgid "End" -msgstr "" +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Left" +msgstr "Vľavo" #: src/client/keycode.cpp -msgid "Home" -msgstr "" +msgid "Left Button" +msgstr "Ľavé tlaÄÃtko" -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Left" -msgstr "" +#: src/client/keycode.cpp +msgid "Left Control" +msgstr "Ľavý CRTL" #: src/client/keycode.cpp -msgid "Up" -msgstr "" +msgid "Left Menu" +msgstr "Ľavé Menu" -#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp -msgid "Right" -msgstr "" +#: src/client/keycode.cpp +msgid "Left Shift" +msgstr "Ľavý Shift" #: src/client/keycode.cpp -msgid "Down" -msgstr "" +msgid "Left Windows" +msgstr "Ľavá klávesa Windows" -#. ~ Key name +#. ~ Key name, common on Windows keyboards #: src/client/keycode.cpp -msgid "Select" -msgstr "" +msgid "Menu" +msgstr "Menu" -#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Print" -msgstr "" +msgid "Middle Button" +msgstr "Stredné tlaÄÃtko" #: src/client/keycode.cpp -msgid "Execute" -msgstr "" +msgid "Num Lock" +msgstr "Num Lock" #: src/client/keycode.cpp -msgid "Snapshot" -msgstr "" +msgid "Numpad *" +msgstr "Numerická klávesnica *" #: src/client/keycode.cpp -msgid "Insert" -msgstr "" +msgid "Numpad +" +msgstr "Numerická klávesnica +" #: src/client/keycode.cpp -msgid "Help" -msgstr "" +msgid "Numpad -" +msgstr "Numerická klávesnica -" #: src/client/keycode.cpp -msgid "Left Windows" -msgstr "" +msgid "Numpad ." +msgstr "Numerická klávesnica ." #: src/client/keycode.cpp -msgid "Right Windows" -msgstr "" +msgid "Numpad /" +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 "Numpad *" -msgstr "" +msgid "OEM Clear" +msgstr "OEM Clear" #: src/client/keycode.cpp -msgid "Numpad +" -msgstr "" +msgid "Page down" +msgstr "Page down" #: src/client/keycode.cpp -msgid "Numpad ." -msgstr "" +msgid "Page up" +msgstr "Page up" #: src/client/keycode.cpp -msgid "Numpad -" -msgstr "" +msgid "Pause" +msgstr "Pause" #: src/client/keycode.cpp -msgid "Numpad /" -msgstr "" +msgid "Play" +msgstr "Hraj" +#. ~ "Print screen" key #: src/client/keycode.cpp -msgid "Num Lock" -msgstr "" +msgid "Print" +msgstr "PrtSc" #: src/client/keycode.cpp -msgid "Scroll Lock" -msgstr "" +msgid "Return" +msgstr "Enter" + +#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp +msgid "Right" +msgstr "Vpravo" #: src/client/keycode.cpp -msgid "Left Shift" -msgstr "" +msgid "Right Button" +msgstr "Pravé tlaÄÃtko" #: src/client/keycode.cpp -msgid "Right Shift" -msgstr "" +msgid "Right Control" +msgstr "Pravý CRTL" #: src/client/keycode.cpp -msgid "Left Control" -msgstr "" +msgid "Right Menu" +msgstr "Pravé Menu" #: src/client/keycode.cpp -msgid "Right Control" -msgstr "" +msgid "Right Shift" +msgstr "Pravý Shift" #: src/client/keycode.cpp -msgid "Left Menu" -msgstr "" +msgid "Right Windows" +msgstr "Pravá klávesa Windows" #: src/client/keycode.cpp -msgid "Right Menu" -msgstr "" +msgid "Scroll Lock" +msgstr "Scroll Lock" +#. ~ Key name #: src/client/keycode.cpp -msgid "IME Escape" -msgstr "" +msgid "Select" +msgstr "VybraÅ¥" #: src/client/keycode.cpp -msgid "IME Convert" -msgstr "" +msgid "Shift" +msgstr "Shift" #: src/client/keycode.cpp -msgid "IME Nonconvert" -msgstr "" +msgid "Sleep" +msgstr "Spánok" #: src/client/keycode.cpp -msgid "IME Accept" -msgstr "" +msgid "Snapshot" +msgstr "SnÃmka" #: src/client/keycode.cpp -msgid "IME Mode Change" -msgstr "" +msgid "Space" +msgstr "Medzera" #: src/client/keycode.cpp -msgid "Apps" -msgstr "" +msgid "Tab" +msgstr "Tab" #: src/client/keycode.cpp -msgid "Sleep" -msgstr "" +msgid "Up" +msgstr "Hore" #: src/client/keycode.cpp -msgid "Erase EOF" -msgstr "" +msgid "X Button 1" +msgstr "X tlaÄidlo 1" #: src/client/keycode.cpp -msgid "Play" -msgstr "" +msgid "X Button 2" +msgstr "X tlaÄidlo 2" #: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp msgid "Zoom" -msgstr "" +msgstr "PriblÞ" -#: src/client/keycode.cpp -msgid "OEM Clear" -msgstr "" +#: 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 "Hesla sa nezhodujú!" + +#: src/gui/guiConfirmRegistration.cpp +msgid "Register and Join" +msgstr "RegistrovaÅ¥ a pripojiÅ¥ sa" #: src/gui/guiConfirmRegistration.cpp #, c-format @@ -1702,196 +1787,195 @@ msgid "" "Please retype your password and click 'Register and Join' to confirm account " "creation, or click 'Cancel' to abort." msgstr "" - -#: src/gui/guiConfirmRegistration.cpp -msgid "Register and Join" -msgstr "" - -#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" +"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 "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" +msgstr "PokraÄuj" #: src/gui/guiKeyChangeMenu.cpp msgid "\"Special\" = climb down" -msgstr "" +msgstr "\"Å peciál\"=Å¡plhaj dole" #: src/gui/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" +msgid "Autoforward" +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 "Key already in use" -msgstr "" +msgid "Backward" +msgstr "Vzad" #: src/gui/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" +msgid "Change camera" +msgstr "Zmeň pohľad" #: src/gui/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" +msgid "Chat" +msgstr "Komunikácia" #: src/gui/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" +msgid "Command" +msgstr "PrÃkaz" #: src/gui/guiKeyChangeMenu.cpp -msgid "Special" -msgstr "" +msgid "Console" +msgstr "Konzola" #: src/gui/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" +msgid "Dec. range" +msgstr "ZnÞ dohľad" #: src/gui/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" +msgid "Dec. volume" +msgstr "ZnÞ hlasitosÅ¥" #: src/gui/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" +msgid "Double tap \"jump\" to toggle fly" +msgstr "2x stlaÄ \"skok\" pre prepnutie lietania" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" +msgid "Drop" +msgstr "ZahodiÅ¥" #: src/gui/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" +msgid "Forward" +msgstr "Vpred" #: src/gui/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" +msgid "Inc. range" +msgstr "Zvýš dohľad" #: src/gui/guiKeyChangeMenu.cpp -msgid "Change camera" -msgstr "" +msgid "Inc. volume" +msgstr "Zvýš hlasitosÅ¥" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle minimap" -msgstr "" +msgid "Inventory" +msgstr "Inventár" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" +msgid "Jump" +msgstr "Skok" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle pitchmove" -msgstr "" +msgid "Key already in use" +msgstr "Klávesa sa už použÃva" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fast" +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 "Toggle noclip" -msgstr "" +msgid "Local command" +msgstr "Lokálny prÃkaz" #: src/gui/guiKeyChangeMenu.cpp msgid "Mute" -msgstr "" - -#: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" +msgstr "Vypni zvuk" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" +msgid "Next item" +msgstr "ÄŽalÅ¡ia vec" #: src/gui/guiKeyChangeMenu.cpp -msgid "Autoforward" -msgstr "" +msgid "Prev. item" +msgstr "Pred. vec" #: src/gui/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" +msgid "Range select" +msgstr "Zmena dohľadu" #: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp msgid "Screenshot" -msgstr "" +msgstr "Fotka obrazovky" #: src/gui/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" +msgid "Sneak" +msgstr "ZakrádaÅ¥ sa" #: src/gui/guiKeyChangeMenu.cpp -msgid "Dec. range" -msgstr "" +msgid "Special" +msgstr "Å peciál" #: src/gui/guiKeyChangeMenu.cpp -msgid "Inc. range" -msgstr "" +msgid "Toggle HUD" +msgstr "Prepni HUD" #: src/gui/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" +msgid "Toggle chat log" +msgstr "Prepni logovanie komunikácie" #: src/gui/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" +msgid "Toggle fast" +msgstr "Prepni rýchly režim" #: src/gui/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" +msgid "Toggle fly" +msgstr "Prepni lietanie" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle HUD" -msgstr "" +msgid "Toggle fog" +msgstr "Prepni hmlu" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle chat log" -msgstr "" +msgid "Toggle minimap" +msgstr "Prepni minimapu" #: src/gui/guiKeyChangeMenu.cpp -msgid "Toggle fog" -msgstr "" +msgid "Toggle noclip" +msgstr "Prepni režim prechádzania stenami" -#: src/gui/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" +#: src/gui/guiKeyChangeMenu.cpp +msgid "Toggle pitchmove" +msgstr "Prepni režim pohybu podľa sklonu" + +#: src/gui/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "stlaÄ klávesu" #: src/gui/guiPasswordChange.cpp -msgid "New Password" -msgstr "" +msgid "Change" +msgstr "ZmeniÅ¥" #: src/gui/guiPasswordChange.cpp msgid "Confirm Password" -msgstr "" +msgstr "PotvrÄ heslo" #: src/gui/guiPasswordChange.cpp -msgid "Change" -msgstr "" +msgid "New Password" +msgstr "Nové heslo" -#: src/gui/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" +#: src/gui/guiPasswordChange.cpp +msgid "Old Password" +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 "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 @@ -1901,3811 +1985,4470 @@ msgid "LANG_CODE" msgstr "sk" #: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" +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 "" -"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." +"(Android) Use virtual joystick to trigger \"aux\" button.\n" +"If enabled, virtual joystick will also tap \"aux\" button when out of main " +"circle." msgstr "" +"(Android) 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 "Flying" +msgid "" +"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n" +"Can be used to move a desired point to (0, 0) to create a\n" +"suitable spawn point, or to allow 'zooming in' on a desired\n" +"point by increasing 'scale'.\n" +"The default is tuned for a suitable spawn point for Mandelbrot\n" +"sets with default parameters, it may need altering in other\n" +"situations.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." msgstr "" +"(X,Y,Z) 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 "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." +"(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 "" +"(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 "Pitch move mode" -msgstr "" +msgid "2D noise that controls the shape/size of ridged mountains." +msgstr "2D Å¡um, ktorý riadi tvar/veľkosÅ¥ hrebeňa hôr." #: src/settings_translation_file.cpp -msgid "" -"If enabled, makes move directions relative to the player's pitch when flying " -"or swimming." -msgstr "" +msgid "2D noise that controls the shape/size of rolling hills." +msgstr "2D Å¡um, ktorý riadi tvar/veľkosÅ¥ vlnitosti kopcov." #: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" +msgid "2D noise that controls the shape/size of step mountains." +msgstr "2D Å¡um, ktorý riadi tvar/veľkosÅ¥ horských stepÃ." #: src/settings_translation_file.cpp -msgid "" -"Fast movement (via the \"special\" key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" +msgid "2D noise that controls the size/occurrence of ridged mountain ranges." +msgstr "2D Å¡um, ktorý riadi veľkosÅ¥/výskyt hrebeňa kopcov." #: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" +msgid "2D noise that controls the size/occurrence of rolling hills." +msgstr "2D Å¡um, ktorý riadi veľkosÅ¥/výskyt zvlnenia kopcov." #: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" +msgid "2D noise that controls the size/occurrence of step mountain ranges." +msgstr "2D Å¡um, ktorý riadi veľkosÅ¥/výskyt horských stepÃ." #: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" +msgid "2D noise that locates the river valleys and channels." +msgstr "2D Å¡um, ktorý urÄuje údolia a kanály riek." #: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" +msgid "3D clouds" +msgstr "3D mraky" #: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" +msgid "3D mode" +msgstr "3D režim" #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" +msgid "3D mode parallax strength" +msgstr "3D režim stupeň paralaxy" #: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" +msgid "3D noise defining giant caverns." +msgstr "3D Å¡um definujúci gigantické dutiny/jaskyne." #: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +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 "Invert mouse" +msgid "" +"3D noise defining structure of floatlands.\n" +"If altered from the default, the noise 'scale' (0.7 by default) may need\n" +"to be adjusted, as floatland tapering functions best when this noise has\n" +"a value range of approximately -2.0 to 2.0." msgstr "" +"3D Å¡um definujúci Å¡truktúru lietajúcich pevnÃn.\n" +"Ak je zmenený zo Å¡tandardného, 'mierka' Å¡umu (Å¡tandardne 0.7) môže\n" +"potrebovaÅ¥ nastavenie, keÄže zoÅ¡picaÅ¥ovanie lietajúcej pevniny funguje " +"najlepÅ¡ie,\n" +"keÄ tento Å¡um má hodnotu približne v rozsahu -2.0 až 2.0." #: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" +msgid "3D noise defining structure of river canyon walls." +msgstr "3D Å¡um definujúci Å¡truktúru stien kaňona rieky." #: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" +msgid "3D noise defining terrain." +msgstr "3D Å¡um definujúci terén." #: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" +msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." +msgstr "3D Å¡um pre previsy, útesy, atÄ. hôr. Obvykle malé odchýlky." #: src/settings_translation_file.cpp -msgid "Special key for climbing/descending" -msgstr "" +msgid "3D noise that determines number of dungeons per mapchunk." +msgstr "3D Å¡um definujúci poÄet kobiek na ÄasÅ¥ mapy (mapchunk)." #: src/settings_translation_file.cpp msgid "" -"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " -"down and\n" -"descending." +"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 "" +"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 "Double tap jump for fly" +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 "Double-tapping the jump key toggles fly mode." -msgstr "" +msgid "A message to be displayed to all clients when the server crashes." +msgstr "Správa, ktorá sa zobrazà vÅ¡etkým klientom pri páde servera." #: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "Správa, ktorá sa zobrazà vÅ¡etkým klientom, keÄ sa server vypÃna." #: src/settings_translation_file.cpp -msgid "" -"If disabled, \"special\" key is used to fly fast if both fly and fast mode " -"are\n" -"enabled." -msgstr "" +msgid "ABM interval" +msgstr "ABM interval" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" +msgid "ABM time budget" +msgstr "Vyhradená doba ABM" #: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right\n" -"mouse button." -msgstr "" +msgid "Absolute limit of queued blocks to emerge" +msgstr "Absolútny limit kociek vo fronte" #: src/settings_translation_file.cpp -msgid "Automatically jump up single-node obstacles." -msgstr "" +msgid "Acceleration in air" +msgstr "Zrýchlenie vo vzduchu" #: src/settings_translation_file.cpp -msgid "Safe digging and placing" -msgstr "" +msgid "Acceleration of gravity, in nodes per second per second." +msgstr "GravitaÄné zrýchlenie, v kockách za sekundu na druhú." #: src/settings_translation_file.cpp -msgid "" -"Prevent digging and placing from repeating when holding the mouse buttons.\n" -"Enable this when you dig or place too often by accident." -msgstr "" +msgid "Active Block Modifiers" +msgstr "AktÃvne modifikátory blokov (ABM)" #: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" +msgid "Active block management interval" +msgstr "Riadiaci interval aktÃvnych blokov" #: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" +msgid "Active block range" +msgstr "Rozsah aktÃvnych blokov" #: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" +msgid "Active object send range" +msgstr "Zasielaný rozsah aktÃvnych objektov" #: src/settings_translation_file.cpp msgid "" -"Continuous forward movement, toggled by autoforward key.\n" -"Press the autoforward key again or the backwards movement to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Touch screen threshold" +"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 "" +"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 "The length in pixels it takes for touch screen interaction to start." -msgstr "" +msgid "Adds particles when digging a node." +msgstr "Pridá Äasticové efekty pri vykopávanà kocky." #: src/settings_translation_file.cpp -msgid "Fixed virtual joystick" +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 msgid "" -"(Android) Fixes the position of virtual joystick.\n" -"If disabled, virtual joystick will center to first-touch's position." +"Adjusts the density of the floatland layer.\n" +"Increase value to increase density. Can be positive or negative.\n" +"Value = 0.0: 50% of volume is floatland.\n" +"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n" +"to be sure) creates a solid floatland layer." msgstr "" +"Nastav hustotu vrstvy lietajúcej pevniny.\n" +"Zvýš hodnotu pre zvýšenie hustoty. Môže byÅ¥ kladná, alebo záporná.\n" +"Hodnota = 0.0: 50% objemu je lietajúca pevnina.\n" +"Hodnota = 2.0 (môže byÅ¥ vyššie v závislosti od 'mgv7_np_floatland', vždy " +"otestuj\n" +"aby si si bol istý) vytvorà pevnú úroveň lietajúcej pevniny." #: src/settings_translation_file.cpp -msgid "Virtual joystick triggers aux button" -msgstr "" +msgid "Advanced" +msgstr "PokroÄilé" #: src/settings_translation_file.cpp msgid "" -"(Android) Use virtual joystick to trigger \"aux\" button.\n" -"If enabled, virtual joystick will also tap \"aux\" button when out of main " -"circle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable joysticks" +"Alters the light curve by applying 'gamma correction' to it.\n" +"Higher values make middle and lower light levels brighter.\n" +"Value '1.0' leaves the light curve unaltered.\n" +"This only has significant effect on daylight and artificial\n" +"light, it has very little effect on natural night light." msgstr "" +"Zmenà svetelnú krivku aplikovanÃm 'gamma korekcie'.\n" +"Vyššie hodnoty robia stredné a nižšie tóny svetlejÅ¡Ãmi.\n" +"Hodnota '1.0' ponechá svetelnú krivku nezmenenú.\n" +"Toto má vplyv len na denné a umelé svetlo,\n" +"ma len veľmi malý vplyv na prirodzené noÄné svetlo." #: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" +msgid "Always fly and fast" +msgstr "Vždy zapnuté lietanie a rýchlosÅ¥" #: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" +msgid "Ambient occlusion gamma" +msgstr "Ambient occlusion gamma" #: src/settings_translation_file.cpp -msgid "Joystick type" -msgstr "" +msgid "Amount of messages a player may send per 10 seconds." +msgstr "PoÄet správ, ktoré môže hrÃ¡Ä poslaÅ¥ za 10 sekúnd." #: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" +msgid "Amplifies the valleys." +msgstr "ZväÄÅ¡uje údolia." #: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" +msgid "Anisotropic filtering" +msgstr "Anisotropné filtrovanie" #: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" +msgid "Announce server" +msgstr "Zverejni server" #: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" +msgid "Announce to this serverlist." +msgstr "Zverejni v zozname serverov." #: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" +msgid "Append item name" +msgstr "Pridaj názov položky/veci" #: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" +msgid "Append item name to tooltip." +msgstr "Pridaj názov veci do popisku." #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Apple trees noise" +msgstr "Å um jablonÃ" #: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" +msgid "Arm inertia" +msgstr "ZotrvaÄnosÅ¥ ruky" #: 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" +"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 "Left key" -msgstr "" +msgid "Ask to reconnect after crash" +msgstr "Ponúkni obnovu pripojenia po páde" #: src/settings_translation_file.cpp msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "" +"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 "Right key" -msgstr "" +msgid "Automatic forward key" +msgstr "TlaÄidlo Automatický pohyb vpred" #: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Automatically jump up single-node obstacles." +msgstr "Automaticky vyskoÄà na prekážku vysokú jedna kocka." #: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" +msgid "Automatically report to the serverlist." +msgstr "Automaticky zápis do zoznamu serverov." #: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Autosave screen size" +msgstr "PamätaÅ¥ si veľkosÅ¥ obrazovky" #: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" +msgid "Autoscaling mode" +msgstr "Režim automatickej zmeny mierky" #: 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 "" +msgid "Backward key" +msgstr "TlaÄidlo Vzad" #: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" +msgid "Base ground level" +msgstr "Základná úroveň dna" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Base terrain height." +msgstr "Základná výška terénu." #: src/settings_translation_file.cpp -msgid "Special key" -msgstr "" +msgid "Basic" +msgstr "Základné" #: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Basic privileges" +msgstr "Základné práva" #: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" +msgid "Beach noise" +msgstr "Å um pláže" #: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Beach noise threshold" +msgstr "HraniÄná hodnota Å¡umu pláže" #: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" +msgid "Bilinear filtering" +msgstr "Bilineárne filtrovanie" #: 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 "" +msgid "Bind address" +msgstr "Spájacia adresa" #: 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 "" +msgid "Biome API temperature and humidity noise parameters" +msgstr "Parametre Å¡umu teploty a vlhkosti pre Biome API" #: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" +msgid "Biome noise" +msgstr "Å um biómu" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "PoÄet bitov na pixel (farebná hĺbka) v režime celej obrazovky." #: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" +msgid "Block send optimize distance" +msgstr "VzdialenosÅ¥ pre optimalizáciu posielania blokov" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Bold and italic font path" +msgstr "Cesta k tuÄnému Å¡ikmému pÃsmu" #: src/settings_translation_file.cpp -msgid "Pitch move key" -msgstr "" +msgid "Bold and italic monospace font path" +msgstr "Cesta k tuÄnému Å¡ikmému pÃsmu s pevnou Å¡Ãrkou" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling pitch move mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Bold font path" +msgstr "Cesta k tuÄnému pÃsmu" #: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" +msgid "Bold monospace font path" +msgstr "Cesta k tuÄnému pÃsmu s pevnou Å¡Ãrkou" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Build inside player" +msgstr "Stavanie vnútri hráÄa" #: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" +msgid "Builtin" +msgstr "Vstavané (Builtin)" #: src/settings_translation_file.cpp msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" +"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n" +"Only works on GLES platforms. Most users will not need to change this.\n" +"Increasing can reduce artifacting on weaker GPUs.\n" +"0.1 = Default, 0.25 = Good value for weaker tablets." msgstr "" +"VzdialenosÅ¥ kamery 'blÃzko orezanej roviny' v kockách, medzi 0 a 0.25\n" +"Funguje len na GLES platformách. VäÄÅ¡ina toto nepotrebuje meniÅ¥.\n" +"Zvýšenie môže zredukovaÅ¥ artefakty na slabÅ¡Ãch GPU.\n" +"0.1 = Å tandardná hodnota, 0.25 = Dobrá hodnota pre slabé tablety." #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Camera smoothing" +msgstr "Plynulý pohyb kamery" #: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" +msgid "Camera smoothing in cinematic mode" +msgstr "Plynulý pohyb kamery vo filmovom režime" #: 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 "" +msgid "Camera update toggle key" +msgstr "TlaÄidlo Aktualizácia pohľadu" #: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" +msgid "Cave noise" +msgstr "Å um jaskyne" #: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Cave noise #1" +msgstr "Å um jaskýň #1" #: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" +msgid "Cave noise #2" +msgstr "Å um jaskýň #2" #: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Cave width" +msgstr "Å Ãrka jaskyne" #: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" +msgid "Cave1 noise" +msgstr "Cave1 Å¡um" #: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Cave2 noise" +msgstr "Cave2 Å¡um" #: src/settings_translation_file.cpp -msgid "Automatic forward key" -msgstr "" +msgid "Cavern limit" +msgstr "Limit dutÃn" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling autoforward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Cavern noise" +msgstr "Å um dutÃn" #: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" +msgid "Cavern taper" +msgstr "ZbiehavosÅ¥ dutÃn" #: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Cavern threshold" +msgstr "HraniÄná hodnota dutÃn" #: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" +msgid "Cavern upper limit" +msgstr "Horný limit dutÃn" #: src/settings_translation_file.cpp msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Center of light curve boost range.\n" +"Where 0.0 is minimum light level, 1.0 is maximum light level." msgstr "" +"Centrum rozsahu zosilnenia svetelnej krivky.\n" +"Kde 0.0 je minimálna úroveň, 1.0 je maximálna úroveň ." #: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Chat font size" +msgstr "VeľkosÅ¥ komunikaÄného pÃsma" #: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" +msgid "Chat key" +msgstr "TlaÄidlo Komunikácia" #: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Chat log level" +msgstr "Úroveň komunikaÄného logu" #: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" +msgid "Chat message count limit" +msgstr "Limit poÄtu správ" #: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Chat message format" +msgstr "Formát komunikaÄných správ" #: src/settings_translation_file.cpp -msgid "Hotbar slot 1 key" -msgstr "" +msgid "Chat message kick threshold" +msgstr "Hranica správ pre vylúÄenie" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the first hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Chat message max length" +msgstr "Max dĺžka správy" #: src/settings_translation_file.cpp -msgid "Hotbar slot 2 key" -msgstr "" +msgid "Chat toggle key" +msgstr "TlaÄidlo Prepnutie komunikácie" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the second hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Chatcommands" +msgstr "KomunikaÄné prÃkazy" #: src/settings_translation_file.cpp -msgid "Hotbar slot 3 key" -msgstr "" +msgid "Chunk size" +msgstr "VeľkosÅ¥ Äasti (chunk)" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the third hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Cinematic mode" +msgstr "Filmový mód" #: src/settings_translation_file.cpp -msgid "Hotbar slot 4 key" -msgstr "" +msgid "Cinematic mode key" +msgstr "TlaÄidlo Filmový režim" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fourth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Clean transparent textures" +msgstr "VyÄisti priehľadné textúry" #: src/settings_translation_file.cpp -msgid "Hotbar slot 5 key" -msgstr "" +msgid "Client" +msgstr "Klient" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the fifth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Client and Server" +msgstr "Klient a Server" #: src/settings_translation_file.cpp -msgid "Hotbar slot 6 key" -msgstr "" +msgid "Client modding" +msgstr "Úpravy (modding) cez klienta" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the sixth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Client side modding restrictions" +msgstr "Obmedzenia úprav na strane klienta" #: src/settings_translation_file.cpp -msgid "Hotbar slot 7 key" -msgstr "" +msgid "Client side node lookup range restriction" +msgstr "Obmedzenie vyhľadávania dosahu kociek na strane klienta" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the seventh hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Climbing speed" +msgstr "RýchlosÅ¥ Å¡plhania" #: src/settings_translation_file.cpp -msgid "Hotbar slot 8 key" -msgstr "" +msgid "Cloud radius" +msgstr "Polomer mrakov" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the eighth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Clouds" +msgstr "Mraky" #: src/settings_translation_file.cpp -msgid "Hotbar slot 9 key" -msgstr "" +msgid "Clouds are a client side effect." +msgstr "Mraky sú efektom na strane klienta." #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the ninth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Clouds in menu" +msgstr "Mraky v menu" #: src/settings_translation_file.cpp -msgid "Hotbar slot 10 key" -msgstr "" +msgid "Colored fog" +msgstr "Farebná hmla" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the tenth hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Comma-separated list of flags to hide in the content repository.\n" +"\"nonfree\" can be used to hide packages which do not qualify as 'free " +"software',\n" +"as defined by the Free Software Foundation.\n" +"You can also specify content ratings.\n" +"These flags are independent from Minetest versions,\n" +"so see a full list at https://content.minetest.net/help/content_flags/" msgstr "" +"ÄŒiarkou oddelený zoznam prÃznakov, ktoré sa skryjú v zozname doplnkov.\n" +"\"nonfree\" môže byÅ¥ využité na skrytie doplnkov, ktoré nie je možné " +"považovaÅ¥ za 'voľný softvér',\n" +"tak ako je definovaný Free Software Foundation.\n" +"MôžeÅ¡ definovaÅ¥ aj hodnotenie obsahu.\n" +"Tie to prÃznaky sú nezávislé od verzie Minetestu,\n" +"viÄ. aj kompletný zoznam na https://content.minetest.net/help/content_flags/" #: src/settings_translation_file.cpp -msgid "Hotbar slot 11 key" +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 "" -"Key for selecting the 11th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 12 key" -msgstr "" +msgid "Command key" +msgstr "TlaÄidlo PrÃkaz" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 12th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Connect glass" +msgstr "Prepojené sklo" #: src/settings_translation_file.cpp -msgid "Hotbar slot 13 key" -msgstr "" +msgid "Connect to external media server" +msgstr "Pripoj sa na externý média server" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 13th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Connects glass if supported by node." +msgstr "Prepojà sklo, ak je to podporované kockou." #: src/settings_translation_file.cpp -msgid "Hotbar slot 14 key" -msgstr "" +msgid "Console alpha" +msgstr "PriehľadnosÅ¥ konzoly" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 14th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Console color" +msgstr "Farba konzoly" #: src/settings_translation_file.cpp -msgid "Hotbar slot 15 key" -msgstr "" +msgid "Console height" +msgstr "Výška konzoly" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 15th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "ContentDB Flag Blacklist" +msgstr "ÄŒierna listina prÃznakov z ContentDB" #: src/settings_translation_file.cpp -msgid "Hotbar slot 16 key" -msgstr "" +msgid "ContentDB Max Concurrent Downloads" +msgstr "ContentDB Maximum súbežných sÅ¥ahovanÃ" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 16th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "ContentDB URL" +msgstr "Cesta (URL) ku ContentDB" #: src/settings_translation_file.cpp -msgid "Hotbar slot 17 key" -msgstr "" +msgid "Continuous forward" +msgstr "Neustály pohyb vpred" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 17th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 18 key" -msgstr "" +msgid "Controls" +msgstr "Ovládanie" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 18th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Controls length of day/night cycle.\n" +"Examples:\n" +"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged." msgstr "" +"Riadi dĺžku dňa a noci.\n" +"PrÃklad:\n" +"72 = 20min, 360 = 4min, 1 = 24hodÃn, 0 = deň/noc/Äokoľvek ostáva nezmenený." #: src/settings_translation_file.cpp -msgid "Hotbar slot 19 key" -msgstr "" +msgid "Controls sinking speed in liquid." +msgstr "Riadi rýchlosÅ¥ ponárania v tekutinách." #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 19th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Controls steepness/depth of lake depressions." +msgstr "Riadi strmosÅ¥/hĺbku jazier." #: src/settings_translation_file.cpp -msgid "Hotbar slot 20 key" -msgstr "" +msgid "Controls steepness/height of hills." +msgstr "Riadi strmosÅ¥/výšku kopcov." #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 20th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"Controls width of tunnels, a smaller value creates wider tunnels.\n" +"Value >= 10.0 completely disables generation of tunnels and avoids the\n" +"intensive noise calculations." msgstr "" +"Riadi Å¡Ãrku tunelov, menÅ¡ia hodnota vytvára Å¡irÅ¡ie tunely.\n" +"Hodnota >= 10.0 úplne vypne generovanie tunelov, ÄÃm sa vyhne\n" +"nároÄným prepoÄtom Å¡umu." #: src/settings_translation_file.cpp -msgid "Hotbar slot 21 key" -msgstr "" +msgid "Crash message" +msgstr "Správa pri páde" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 21st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Creative" +msgstr "KreatÃvny režim" #: src/settings_translation_file.cpp -msgid "Hotbar slot 22 key" -msgstr "" +msgid "Crosshair alpha" +msgstr "PriehľadnosÅ¥ zameriavaÄa" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 22nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 23 key" -msgstr "" +msgid "Crosshair color" +msgstr "Farba zameriavaÄa" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 23rd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 24 key" -msgstr "" +msgid "DPI" +msgstr "DPI" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 24th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Damage" +msgstr "Zranenie" #: src/settings_translation_file.cpp -msgid "Hotbar slot 25 key" -msgstr "" +msgid "Debug info toggle key" +msgstr "TlaÄidlo Ladiace informácie" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 25th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Debug log file size threshold" +msgstr "HraniÄná veľkosÅ¥ ladiaceho log súboru" #: src/settings_translation_file.cpp -msgid "Hotbar slot 26 key" -msgstr "" +msgid "Debug log level" +msgstr "Úroveň ladiacich info" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 26th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Dec. volume key" +msgstr "TlaÄidlo ZnÞ hlasitosÅ¥" #: src/settings_translation_file.cpp -msgid "Hotbar slot 27 key" -msgstr "" +msgid "Decrease this to increase liquid resistance to movement." +msgstr "ZnÞ pre spomalenie teÄenia." #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 27th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Dedicated server step" +msgstr "UrÄený krok servera" #: src/settings_translation_file.cpp -msgid "Hotbar slot 28 key" -msgstr "" +msgid "Default acceleration" +msgstr "Å tandardné zrýchlenie" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 28th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Default game" +msgstr "Å tandardná hra" #: src/settings_translation_file.cpp -msgid "Hotbar slot 29 key" +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 "" -"Key for selecting the 29th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Default password" +msgstr "Å tandardné heslo" #: src/settings_translation_file.cpp -msgid "Hotbar slot 30 key" -msgstr "" +msgid "Default privileges" +msgstr "Å tandardné práva" #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 30th hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Default report format" +msgstr "Å tandardný formát záznamov" #: src/settings_translation_file.cpp -msgid "Hotbar slot 31 key" -msgstr "" +msgid "Default stack size" +msgstr "Å tandardná veľkosÅ¥ kôpky" #: src/settings_translation_file.cpp msgid "" -"Key for selecting the 31st hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Hotbar slot 32 key" -msgstr "" +msgid "Defines areas where trees have apples." +msgstr "Definuje oblasti, kde stromy majú jablká." #: src/settings_translation_file.cpp -msgid "" -"Key for selecting the 32nd hotbar slot.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Defines areas with sandy beaches." +msgstr "Definuje oblasti s pieskovými plážami." #: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" +msgid "Defines distribution of higher terrain and steepness of cliffs." +msgstr "Definuje rozdelenie vyššieho terénu a strmosÅ¥ útesov." #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Defines distribution of higher terrain." +msgstr "Definuje rozdelenie vyššieho terénu." #: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "Definuje plnú Å¡Ãrku dutÃn, menÅ¡ie hodnoty vytvoria väÄÅ¡ie dutiny." #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Defines large-scale river channel structure." +msgstr "Vo veľkom merÃtku definuje Å¡truktúru kanálov riek." #: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" +msgid "Defines location and terrain of optional hills and lakes." +msgstr "Definuje umiestnenie a terén voliteľných kopcov a jazier." #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" +msgid "Defines the base ground level." +msgstr "Definuje úroveň dna." #: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" +msgid "Defines the depth of the river channel." +msgstr "Definuje hĺbku koryta rieky." #: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +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 "Camera update toggle key" -msgstr "" +msgid "Defines the width of the river channel." +msgstr "Definuje Å¡Ãrku pre koryto rieky." #: 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 "" +msgid "Defines the width of the river valley." +msgstr "Definuje Å¡Ãrku údolia rieky." #: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" +msgid "Defines tree areas and tree density." +msgstr "Definuje oblasti so stromami a hustotu stromov." #: src/settings_translation_file.cpp msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Profiler toggle key" -msgstr "" +msgid "Delay in sending blocks after building" +msgstr "Oneskorenie posielania blokov po výstavbe" #: 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 "" +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "Oneskorenie zobrazenia popisku, zadané v milisekundách." #: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" +msgid "Deprecated Lua API handling" +msgstr "Zastaralé Lua API spracovanie" #: 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 "" +msgid "Depth below which you'll find giant caverns." +msgstr "Hĺbka pod ktorou nájdeÅ¡ gigantické dutiny/jaskyne." #: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" +msgid "Depth below which you'll find large caves." +msgstr "Hĺbka pod ktorou nájdeÅ¡ veľké jaskyne." #: src/settings_translation_file.cpp msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "View range decrease key" -msgstr "" +msgid "Desert noise threshold" +msgstr "HraniÄná hodnota Å¡umu púšte" #: src/settings_translation_file.cpp msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" +"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 "Graphics" -msgstr "" +msgid "Desynchronize block animation" +msgstr "Nesynchronizuj animáciu blokov" #: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" +msgid "Dig key" +msgstr "TlaÄidlo Kopanie" #: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" +msgid "Digging particles" +msgstr "ÄŒasticové efekty pri kopanÃ" #: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" +msgid "Disable anticheat" +msgstr "Zakáž anticheat" #: src/settings_translation_file.cpp -msgid "" -"Enable vertex buffer objects.\n" -"This should greatly improve graphics performance." -msgstr "" +msgid "Disallow empty passwords" +msgstr "Zakáž prázdne heslá" #: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "Doménové meno servera, ktoré bude zobrazené v zozname serverov." #: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" +msgid "Double tap jump for fly" +msgstr "Dvakrát skok pre lietanie" #: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" +msgid "Double-tapping the jump key toggles fly mode." +msgstr "Dvojnásobné stlaÄenie klávesy pre skok prepne režim lietania." #: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" +msgid "Drop item key" +msgstr "TlaÄidlo ZahoÄ vec" #: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" +msgid "Dump the mapgen debug information." +msgstr "ZÃskaj ladiace informácie generátora máp." #: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" +msgid "Dungeon maximum Y" +msgstr "Maximálne Y kobky" #: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" +msgid "Dungeon minimum Y" +msgstr "Minimálne Y kobky" #: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" +msgid "Dungeon noise" +msgstr "Å um kobky" #: src/settings_translation_file.cpp -msgid "Clouds" +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 "Clouds are a client side effect." +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 "3D clouds" -msgstr "" +msgid "Enable console window" +msgstr "Aktivuj okno konzoly" #: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -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 "Node highlighting" -msgstr "" +msgid "Enable joysticks" +msgstr "Aktivuj joysticky" #: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" +msgid "Enable mod channels support." +msgstr "Aktivuj podporu komunikaÄných kanálov rozÅ¡Ãrenà (mod channels)." #: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" +msgid "Enable mod security" +msgstr "Aktivuj rozÅ¡Ãrenie pre zabezpeÄenie" #: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" +msgid "Enable players getting damage and dying." +msgstr "Aktivuje aby mohol byÅ¥ hrÃ¡Ä zranený a zomrieÅ¥." #: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" +msgid "Enable random user input (only used for testing)." +msgstr "Aktivuje náhodný užÃvateľský vstup (použÃva sa len pre testovanie)." #: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" +msgid "Enable register confirmation" +msgstr "Aktivuj potvrdenie registrácie" #: src/settings_translation_file.cpp msgid "" -"Use mip mapping to scale textures. May slightly increase performance,\n" -"especially when using a high resolution texture pack.\n" -"Gamma correct downscaling is not supported." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" +"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 "Use anisotropic filtering when viewing at textures from an angle." +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 "Bilinear filtering" +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." msgstr "" +"Aktivuj zakázanie pripojenia starých klientov.\n" +"Staršà klienti sú kompatibilný v tom zmysle, že nepadnú pri pripájanÃ\n" +"k novým serverom, ale nemusia podporovaÅ¥ nové funkcie, ktoré oÄakávaÅ¡." #: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." msgstr "" +"Aktivuj použitie vzdialeného média servera (ak je poskytovaný serverom).\n" +"Vzdialený server poskytuje výrazne rýchlejšà spôsob pre sÅ¥ahovanie médià " +"(napr. textúr)\n" +"pri pripojenà na server." #: src/settings_translation_file.cpp -msgid "Trilinear filtering" +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 "Use trilinear filtering when scaling textures." +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 "Clean transparent textures" +msgid "" +"Enable/disable running an IPv6 server.\n" +"Ignored if bind_address is set.\n" +"Needs enable_ipv6 to be enabled." msgstr "" +"Aktivuj/vypni IPv6 server.\n" +"Ignorované, ak je nastavená bind_address .\n" +"Vyžaduje povolené enable_ipv6." #: src/settings_translation_file.cpp msgid "" -"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." +"Enables Hable's 'Uncharted 2' filmic tone mapping.\n" +"Simulates the tone curve of photographic film and how this approximates the\n" +"appearance of high dynamic range images. Mid-range contrast is slightly\n" +"enhanced, highlights and shadows are gradually compressed." msgstr "" +"Aktivuje Hablov 'Uncharted 2' filmový tone mapping.\n" +"Simuluje farebnú krivku fotografického filmu a ako sa približuje\n" +"vzhľadu obrázku s veľkým dynamickým rozsahom. Stredový kontrast je mierne\n" +"zlepÅ¡ený, nasvietenie a tiene sú postupne zhustené." #: src/settings_translation_file.cpp -msgid "Minimum texture size" -msgstr "" +msgid "Enables animation of inventory items." +msgstr "Aktivuje animáciu vecà v inventári." #: 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 "" +msgid "Enables caching of facedir rotated meshes." +msgstr "Aktivuje ukladanie tvárou rotovaných Mesh objektov do medzipamäti." #: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" +msgid "Enables minimap." +msgstr "Aktivuje minimapu." #: src/settings_translation_file.cpp msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." +"Enables the sound system.\n" +"If disabled, this completely disables all sounds everywhere and the in-game\n" +"sound controls will be non-functional.\n" +"Changing this setting requires a restart." msgstr "" +"Aktivuje zvukový systém.\n" +"Ak je zakázaný, tak kompletne zakáže vÅ¡etky zvuky\n" +"a ovládanie hlasitosti v hre bude nefunkÄné.\n" +"Zmena tohto nastavenia si vyžaduje reÅ¡tart hry." #: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" +msgid "Engine profiling data print interval" +msgstr "Interval tlaÄe profilových dát enginu" #: 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 "" +msgid "Entity methods" +msgstr "Metódy bytostÃ" #: 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." +"Exponent of the floatland tapering. Alters the tapering behaviour.\n" +"Value = 1.0 creates a uniform, linear tapering.\n" +"Values > 1.0 create a smooth tapering suitable for the default separated\n" +"floatlands.\n" +"Values < 1.0 (for example 0.25) create a more defined surface level with\n" +"flatter lowlands, suitable for a solid floatland layer." msgstr "" +"Exponent zoÅ¡picatenia lietajúcej pevniny. Pozmeňuje fungovanie " +"zoÅ¡picatenia.\n" +"Hodnota = 1.0 vytvorà stále, lineárne zoÅ¡picatenie.\n" +"Hodnoty > 1.0 vytvoria plynulé zoÅ¡picatenie, vhodné pre Å¡tandardné oddelené\n" +"lietajúce pevniny.\n" +"Hodnoty < 1.0 (naprÃklad 0.25) vytvoria viac vymedzený povrch s\n" +"rovnejÅ¡Ãmi nÞinami, vhodné ako pevná základná vrstva lietajúcej pevniny." #: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" +msgid "FPS when unfocused or paused" +msgstr "FPS ak je hra nezameraná, alebo pozastavená" #: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" +msgid "FSAA" +msgstr "FSAA" #: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" +msgid "Factor noise" +msgstr "Faktor Å¡umu" #: 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 "" +msgid "Fall bobbing factor" +msgstr "Faktor pohupovania sa pri pádu" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" +msgid "Fallback font path" +msgstr "Cesta k záložnému pÃsmu" #: 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 "" +msgid "Fallback font shadow" +msgstr "Tieň záložného pÃsma" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" +msgid "Fallback font shadow alpha" +msgstr "PriehľadnosÅ¥ tieňa záložného fontu" #: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" +msgid "Fallback font size" +msgstr "VeľkosÅ¥ záložného pÃsma" #: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" +msgid "Fast key" +msgstr "TlaÄidlo RýchlosÅ¥" #: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" +msgid "Fast mode acceleration" +msgstr "Zrýchlenie v rýchlom režime" #: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" +msgid "Fast mode speed" +msgstr "RýchlosÅ¥ v rýchlom režime" #: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" +msgid "Fast movement" +msgstr "Rýchly pohyb" #: src/settings_translation_file.cpp -msgid "Parallax occlusion" +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 "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" +msgid "Field of view" +msgstr "Zorné pole" #: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" +msgid "Field of view in degrees." +msgstr "Zorné pole v stupňoch." #: src/settings_translation_file.cpp msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." +"File in client/serverlist/ that contains your favorite servers displayed in " +"the\n" +"Multiplayer Tab." msgstr "" +"Súbor v client/serverlist ktorý obsahuje obľúbené servery, ktoré\n" +"sa zobrazujú v záložke Multiplayer." #: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" +msgid "Filler depth" +msgstr "Hĺbka výplne" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" +msgid "Filler depth noise" +msgstr "Å um hĺbky výplne" #: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "" +msgid "Filmic tone mapping" +msgstr "Filmový tone mapping" #: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." msgstr "" +"Filtrované textúry môžu zmieÅ¡aÅ¥ svoje RGB hodnoty s plne priehľadnými " +"susedmi,\n" +"s PNG optimizérmi obvykle zmazané, niekdy môžu viesÅ¥ k tmavým oblastiam\n" +"alebo svetlým rohom na priehľadnej textúre.\n" +"Aplikuj tento filter na ich vyÄistenie pri nahrávanà textúry." #: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" +msgid "Filtering" +msgstr "Filtrovanie" #: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" +msgid "First of 4 2D noises that together define hill/mountain range height." +msgstr "Prvý zo 4 2D Å¡umov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" +msgid "First of two 3D noises that together define tunnels." +msgstr "Prvý z dvoch 3D Å¡umov, ktoré spolu definujú tunely." #: src/settings_translation_file.cpp -msgid "Waving liquids" -msgstr "" +msgid "Fixed map seed" +msgstr "Predvolené semienko mapy" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving liquids (like water).\n" -"Requires shaders to be enabled." -msgstr "" +msgid "Fixed virtual joystick" +msgstr "Pevný virtuálny joystick" #: src/settings_translation_file.cpp -msgid "Waving liquids wave height" -msgstr "" +msgid "Floatland density" +msgstr "Hustota lietajúcej pevniny" #: 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 "" +msgid "Floatland maximum Y" +msgstr "Maximálne Y lietajúcich pevnÃn" #: src/settings_translation_file.cpp -msgid "Waving liquids wavelength" -msgstr "" +msgid "Floatland minimum Y" +msgstr "Minimálne Y lietajúcich pevnÃn" #: src/settings_translation_file.cpp -msgid "" -"Length of liquid waves.\n" -"Requires waving liquids to be enabled." -msgstr "" +msgid "Floatland noise" +msgstr "Å um lietajúcich krajÃn" #: src/settings_translation_file.cpp -msgid "Waving liquids wave speed" -msgstr "" +msgid "Floatland taper exponent" +msgstr "Exponent kužeľovitosti lietajúcej pevniny" #: 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 "" +msgid "Floatland tapering distance" +msgstr "VzdialenosÅ¥ Å¡picatosti lietajúcich krajÃn" #: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" +msgid "Floatland water level" +msgstr "Úroveň vody lietajúcich pevnÃn" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" +msgid "Fly key" +msgstr "TlaÄidlo Lietanie" #: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" +msgid "Flying" +msgstr "Lietanie" #: src/settings_translation_file.cpp -msgid "" -"Set to true to enable waving plants.\n" -"Requires shaders to be enabled." -msgstr "" +msgid "Fog" +msgstr "Hmla" #: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" +msgid "Fog start" +msgstr "ZaÄiatok hmly" #: src/settings_translation_file.cpp -msgid "Arm inertia" -msgstr "" +msgid "Fog toggle key" +msgstr "TlaÄidlo Prepnutie hmly" #: src/settings_translation_file.cpp -msgid "" -"Arm inertia, gives a more realistic movement of\n" -"the arm when the camera moves." -msgstr "" +msgid "Font bold by default" +msgstr "Å tandardne tuÄné pÃsmo" #: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" +msgid "Font italic by default" +msgstr "Å tandardne Å¡ikmé pÃsmo" #: 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 "" +msgid "Font shadow" +msgstr "Tieň pÃsma" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" +msgid "Font shadow alpha" +msgstr "PriehľadnosÅ¥ tieňa pÃsma" #: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" +msgid "Font size" +msgstr "VeľkosÅ¥ pÃsma" #: src/settings_translation_file.cpp -msgid "Pause on lost window focus" -msgstr "" +msgid "Font size of the default font in point (pt)." +msgstr "VeľkosÅ¥ pÃsma Å¡tandardného pÃsma v bodoch (pt)." #: src/settings_translation_file.cpp -msgid "" -"Open the pause menu when the window's focus is lost. Does not pause if a " -"formspec is\n" -"open." -msgstr "" +msgid "Font size of the fallback font in point (pt)." +msgstr "VeľkosÅ¥ pÃsma záložného pÃsma v bodoch (pt)." #: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" +msgid "Font size of the monospace font in point (pt)." +msgstr "VeľkosÅ¥ pÃsma s pevnou Å¡Ãrkou v bodoch (pt)." #: src/settings_translation_file.cpp -msgid "View distance in nodes." +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 "Near plane" +msgid "" +"Format of player chat messages. The following strings are valid " +"placeholders:\n" +"@name, @message, @timestamp (optional)" msgstr "" +"Formát komunikaÄných správ hráÄa. Nasledujúce reÅ¥azce sú platné zástupné " +"symboly:\n" +"@name, @message, @timestamp (voliteľné)" #: src/settings_translation_file.cpp -msgid "" -"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 "" +msgid "Format of screenshots." +msgstr "Formát obrázkov snÃmok obrazovky." #: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" +msgid "Formspec Default Background Color" +msgstr "Formspec Å¡tandardná farba pozadia" #: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" +msgid "Formspec Default Background Opacity" +msgstr "Formspec Å¡tandardná nepriehľadnosÅ¥ pozadia" #: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" +msgid "Formspec Full-Screen Background Color" +msgstr "Formspec Celo-obrazovková farba pozadia" #: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" +msgid "Formspec Full-Screen Background Opacity" +msgstr "Formspec Celo-obrazovková nepriehľadnosÅ¥ pozadia" #: src/settings_translation_file.cpp -msgid "Autosave screen size" -msgstr "" +msgid "Formspec default background color (R,G,B)." +msgstr "Å tandardná farba pozadia (R,G,B) v definÃcii formulára (Formspec)." #: src/settings_translation_file.cpp -msgid "Save window size automatically when modified." +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 "Full screen" +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 "Fullscreen mode." +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 "Full screen BPP" -msgstr "" +msgid "Forward key" +msgstr "TlaÄidlo Vpred" #: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" +msgid "Fourth of 4 2D noises that together define hill/mountain range height." +msgstr "Å tvrtý zo 4 2D Å¡umov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp -msgid "VSync" -msgstr "" +msgid "Fractal type" +msgstr "Typ fraktálu" #: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "Zlomok viditeľnej vzdialenosti od ktorej zaÄne byÅ¥ vykresľovaná hmla" #: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" +msgid "FreeType fonts" +msgstr "FreeType pÃsma" #: src/settings_translation_file.cpp -msgid "Field of view in degrees." +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 "Light curve gamma" +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 "" -"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." +"From how far clients know about objects, stated in mapblocks (16 nodes).\n" +"\n" +"Setting this larger than active_block_range will also cause the server\n" +"to maintain active objects up to this distance in the direction the\n" +"player is looking. (This can avoid mobs suddenly disappearing from view)" msgstr "" +"Do akej vzdialenosti vedia klienti o objektoch, uvádzané v blokoch mapy (16 " +"kociek).\n" +"\n" +"Nastavenie vyššie ako active_block_range spôsobÃ, že server bude\n" +"uchovávaÅ¥ objekty až do udanej vzdialenosti v smere v ktorom sa\n" +"hrÃ¡Ä pozerá. (Toto môže zabrániÅ¥ tomu aby mobovia zrazu zmizli z pohľadu)" #: src/settings_translation_file.cpp -msgid "Light curve low gradient" -msgstr "" +msgid "Full screen" +msgstr "Celá obrazovka" #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at minimum light level.\n" -"Controls the contrast of the lowest light levels." -msgstr "" +msgid "Full screen BPP" +msgstr "BPP v režime celej obrazovky" #: src/settings_translation_file.cpp -msgid "Light curve high gradient" -msgstr "" +msgid "Fullscreen mode." +msgstr "Režim celej obrazovky." #: src/settings_translation_file.cpp -msgid "" -"Gradient of light curve at maximum light level.\n" -"Controls the contrast of the highest light levels." -msgstr "" +msgid "GUI scaling" +msgstr "Mierka GUI" #: src/settings_translation_file.cpp -msgid "Light curve boost" -msgstr "" +msgid "GUI scaling filter" +msgstr "Filter mierky GUI" #: 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 "" +msgid "GUI scaling filter txr2img" +msgstr "Filter mierky GUI txr2img" #: src/settings_translation_file.cpp -msgid "Light curve boost center" -msgstr "" +msgid "Global callbacks" +msgstr "Globálne odozvy" #: 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." +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations." msgstr "" +"Globálne atribúty pre generovanie máp.\n" +"V generátore v6 prÃznak 'decorations' riadi vÅ¡etky dekorácie okrem stromov\n" +"a vysokej trávy, vo vÅ¡etkých ostatných generátoroch tento prÃznak riadi " +"vÅ¡etky dekorácie." #: src/settings_translation_file.cpp -msgid "Light curve boost spread" +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 "" -"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." +"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 "Texture path" -msgstr "" +msgid "Graphics" +msgstr "Grafika" #: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" +msgid "Gravity" +msgstr "Gravitácia" #: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" +msgid "Ground level" +msgstr "Základná úroveň" #: 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 "" +msgid "Ground noise" +msgstr "Å um terénu" #: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" +msgid "HTTP mods" +msgstr "HTTP rozÅ¡Ãrenia" #: 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 "" +msgid "HUD scale factor" +msgstr "Mierka HUD" #: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" +msgid "HUD toggle key" +msgstr "TlaÄidlo PrepÃnanie HUD" #: 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." +"Handling for deprecated Lua API calls:\n" +"- none: Do not log deprecated calls\n" +"- log: mimic and log backtrace of deprecated call (default).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." msgstr "" +"Spracovanie zastaralých Lua API volanÃ:\n" +"- 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 "Fall bobbing factor" +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." msgstr "" +"Ako má profiler inÅ¡trumentovaÅ¥ sám seba:\n" +"* InÅ¡trumentuj prázdnu funkciu.\n" +"Toto odhaduje režijné náklady, táto inÅ¡trumentácia pridáva (+1 funkÄné " +"volanie).\n" +"* Instrument the sampler being used to update the statistics." #: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" +msgid "Heat blend noise" +msgstr "Å um mieÅ¡ania teplôt" #: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" +msgid "Heat noise" +msgstr "Teplotný Å¡um" #: 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 "" +msgid "Height component of the initial window size." +msgstr "Výška okna po spustenÃ." #: src/settings_translation_file.cpp -msgid "3D mode parallax strength" -msgstr "" +msgid "Height noise" +msgstr "Výškový Å¡um" #: src/settings_translation_file.cpp -msgid "Strength of 3D mode parallax." -msgstr "" +msgid "Height select noise" +msgstr "Å um výšok" #: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" +msgid "High-precision FPU" +msgstr "Vysoko-presné FPU" #: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" +msgid "Hill steepness" +msgstr "StrmosÅ¥ kopcov" #: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" +msgid "Hill threshold" +msgstr "Hranica kopcov" #: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" +msgid "Hilliness1 noise" +msgstr "Å um KopcovitosÅ¥1" #: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" +msgid "Hilliness2 noise" +msgstr "Å um KopcovitosÅ¥2" #: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" +msgid "Hilliness3 noise" +msgstr "Å um KopcovitosÅ¥3" #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Opacity" -msgstr "" +msgid "Hilliness4 noise" +msgstr "Å um KopcovitosÅ¥4" #: src/settings_translation_file.cpp -msgid "Formspec full-screen background opacity (between 0 and 255)." -msgstr "" +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "Domovská stránka servera, ktorá bude zobrazená v zozname serverov." #: src/settings_translation_file.cpp -msgid "Formspec Full-Screen Background Color" +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 "Formspec full-screen background color (R,G,B)." +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 "Formspec Default Background Opacity" +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 "Formspec default background opacity (between 0 and 255)." -msgstr "" +msgid "Hotbar next key" +msgstr "TlaÄidlo Nasledujúca vec na opasku" #: src/settings_translation_file.cpp -msgid "Formspec Default Background Color" -msgstr "" +msgid "Hotbar previous key" +msgstr "TlaÄidlo Predchádzajúcu vec na opasku" #: src/settings_translation_file.cpp -msgid "Formspec default background color (R,G,B)." -msgstr "" +msgid "Hotbar slot 1 key" +msgstr "TlaÄidlo Opasok pozÃcia 1" #: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" +msgid "Hotbar slot 10 key" +msgstr "TlaÄidlo Opasok pozÃcia 10" #: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" +msgid "Hotbar slot 11 key" +msgstr "TlaÄidlo Opasok pozÃcia 11" #: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" +msgid "Hotbar slot 12 key" +msgstr "TlaÄidlo Opasok pozÃcia 12" #: src/settings_translation_file.cpp -msgid "Width of the selection box lines around nodes." -msgstr "" +msgid "Hotbar slot 13 key" +msgstr "TlaÄidlo Opasok pozÃcia 13" #: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" +msgid "Hotbar slot 14 key" +msgstr "TlaÄidlo Opasok pozÃcia 14" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" +msgid "Hotbar slot 15 key" +msgstr "TlaÄidlo Opasok pozÃcia 15" #: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" +msgid "Hotbar slot 16 key" +msgstr "TlaÄidlo Opasok pozÃcia 16" #: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" +msgid "Hotbar slot 17 key" +msgstr "TlaÄidlo Opasok pozÃcia 17" #: src/settings_translation_file.cpp -msgid "Recent Chat Messages" -msgstr "" +msgid "Hotbar slot 18 key" +msgstr "TlaÄidlo Opasok pozÃcia 18" #: src/settings_translation_file.cpp -msgid "Maximum number of recent chat messages to show" -msgstr "" +msgid "Hotbar slot 19 key" +msgstr "TlaÄidlo Opasok pozÃcia 19" #: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" +msgid "Hotbar slot 2 key" +msgstr "TlaÄidlo Opasok pozÃcia 2" #: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" +msgid "Hotbar slot 20 key" +msgstr "TlaÄidlo Opasok pozÃcia 20" #: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" +msgid "Hotbar slot 21 key" +msgstr "TlaÄidlo Opasok pozÃcia 21" #: 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 "" +msgid "Hotbar slot 22 key" +msgstr "TlaÄidlo Opasok pozÃcia 22" #: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" +msgid "Hotbar slot 23 key" +msgstr "TlaÄidlo Opasok pozÃcia 23" #: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" +msgid "Hotbar slot 24 key" +msgstr "TlaÄidlo Opasok pozÃcia 24" #: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" +msgid "Hotbar slot 25 key" +msgstr "TlaÄidlo Opasok pozÃcia 25" #: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" +msgid "Hotbar slot 26 key" +msgstr "TlaÄidlo Opasok pozÃcia 26" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" +msgid "Hotbar slot 27 key" +msgstr "TlaÄidlo Opasok pozÃcia 27" #: 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 "" +msgid "Hotbar slot 28 key" +msgstr "TlaÄidlo Opasok pozÃcia 28" #: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size in MB" -msgstr "" +msgid "Hotbar slot 29 key" +msgstr "TlaÄidlo Opasok pozÃcia 29" #: 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 "" +msgid "Hotbar slot 3 key" +msgstr "TlaÄidlo Opasok pozÃcia 3" #: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" +msgid "Hotbar slot 30 key" +msgstr "TlaÄidlo Opasok pozÃcia 30" #: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" +msgid "Hotbar slot 31 key" +msgstr "TlaÄidlo Opasok pozÃcia 31" #: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" +msgid "Hotbar slot 32 key" +msgstr "TlaÄidlo Opasok pozÃcia 32" #: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" +msgid "Hotbar slot 4 key" +msgstr "TlaÄidlo Opasok pozÃcia 4" #: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" +msgid "Hotbar slot 5 key" +msgstr "TlaÄidlo Opasok pozÃcia 5" #: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Usable to make minimap smoother on slower machines." -msgstr "" +msgid "Hotbar slot 6 key" +msgstr "TlaÄidlo Opasok pozÃcia 6" #: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" +msgid "Hotbar slot 7 key" +msgstr "TlaÄidlo Opasok pozÃcia 7" #: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" +msgid "Hotbar slot 8 key" +msgstr "TlaÄidlo Opasok pozÃcia 8" #: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" +msgid "Hotbar slot 9 key" +msgstr "TlaÄidlo Opasok pozÃcia 9" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers." +msgstr "Aké hlboké majú byÅ¥ rieky." #: src/settings_translation_file.cpp msgid "" -"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." +"How fast liquid waves will move. Higher = faster.\n" +"If negative, liquid waves will move backwards.\n" +"Requires waving liquids to be enabled." msgstr "" +"Ako rýchlo sa budú pohybovaÅ¥ vlny tekutÃn. Vyššia hodnota = rýchlejÅ¡ie.\n" +"Ak je záporná, tekutina sa bude pohybovaÅ¥ naspäť.\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp -msgid "Inventory items animations" +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 "Enables animation of inventory items." -msgstr "" +msgid "How wide to make rivers." +msgstr "Aké Å¡iroké majú byÅ¥ rieky." #: src/settings_translation_file.cpp -msgid "Fog start" -msgstr "" +msgid "Humidity blend noise" +msgstr "Å um mieÅ¡ania vlhkostÃ" #: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" +msgid "Humidity noise" +msgstr "Å um vlhkosti" #: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" +msgid "Humidity variation for biomes." +msgstr "Odchýlky vlhkosti pre biómy." #: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" +msgid "IPv6" +msgstr "IPv6" #: src/settings_translation_file.cpp -msgid "World-aligned textures mode" -msgstr "" +msgid "IPv6 server" +msgstr "IPv6 server" #: 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." +"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 "Autoscaling mode" +msgid "" +"If disabled, \"special\" key is used to fly fast if both fly and fast mode " +"are\n" +"enabled." msgstr "" +"Ak je aktivované, použije sa \"Å¡peciálna\" klávesa na lietanie, v prÃpade,\n" +"že je povolený režim lietania aj rýchlosti." #: src/settings_translation_file.cpp msgid "" -"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!" +"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 "" +"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 "Show entity selection boxes" +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." msgstr "" +"Ak je aktivovaný spolu s režimom lietania, tak je hrÃ¡Ä schopný letieÅ¥ cez " +"pevné kocky.\n" +"Toto si na serveri vyžaduje privilégium \"noclip\"." #: src/settings_translation_file.cpp -msgid "Menus" +msgid "" +"If enabled, \"special\" key instead of \"sneak\" key is used for climbing " +"down and\n" +"descending." msgstr "" +"Ak je aktivované, použije sa namiesto klávesy pre \"zakrádanie\" \"Å¡peciálnu " +"klávesu\"\n" +"pre klesanie a Å¡plhanie dole." #: src/settings_translation_file.cpp -msgid "Clouds in menu" +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 "Use a cloud animation for the main menu background." +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 "GUI scaling" +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 "" -"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." +"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 "GUI scaling filter" -msgstr "" +msgid "If enabled, new players cannot join with an empty password." +msgstr "Ak je aktivované, nový hráÄi sa nemôžu pridaÅ¥ bez zadaného hesla." #: src/settings_translation_file.cpp msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." msgstr "" +"Ak je aktivované, môžeÅ¡ daÅ¥ bloky na miesto kde stojÃÅ¡ (v úrovni päta + " +"oÄi).\n" +"Je to užitoÄné ak pracujeÅ¡ s kockami v stiesnených priestoroch." #: src/settings_translation_file.cpp msgid "" -"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." +"If the CSM restriction for node range is enabled, get_node calls are " +"limited\n" +"to this distance from the player to the node." msgstr "" +"Ak sú CSM obmedzenia pre dohľad kocky aktÃvne, volania get_node sú\n" +"obmedzené touto vzdialenosÅ¥ou od hráÄa ku kocke." #: src/settings_translation_file.cpp -msgid "Tooltip delay" +msgid "" +"If the file size of debug.txt exceeds the number of megabytes specified in\n" +"this setting when it is opened, the file is moved to debug.txt.1,\n" +"deleting an older debug.txt.1 if it exists.\n" +"debug.txt is only moved if this setting is positive." msgstr "" +"Ak veľkosÅ¥ súboru debug.txt prekroÄà zadanú veľkosÅ¥ v megabytoch,\n" +"keÄ bude otvorený, súbor bude presunutý do debug.txt.1,\n" +"ak existuje staršà debug.txt.1, tak tento bude zmazaný.\n" +"debug.txt bude presunutý, len ak je toto nastavenie kladné." #: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "Ak je povolený, hráÄi vždy ožijú (obnovia sa) na zadanej pozÃciÃ." #: src/settings_translation_file.cpp -msgid "Append item name" -msgstr "" +msgid "Ignore world errors" +msgstr "Ignoruj chyby vo svete" #: src/settings_translation_file.cpp -msgid "Append item name to tooltip." -msgstr "" +msgid "In-Game" +msgstr "V hre" #: src/settings_translation_file.cpp -msgid "FreeType fonts" -msgstr "" +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "PriehľadnosÅ¥ pozadia konzoly v hre (nepriehľadnosÅ¥, medzi 0 a 255)." #: src/settings_translation_file.cpp -msgid "" -"Whether FreeType fonts are used, requires FreeType support to be compiled " -"in.\n" -"If disabled, bitmap and XML vectors fonts are used instead." -msgstr "" +msgid "In-game chat console background color (R,G,B)." +msgstr "Pozadie (R,G,B) komunikaÄnej konzoly v hre." #: src/settings_translation_file.cpp -msgid "Font bold by default" -msgstr "" +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "Výška komunikaÄnej konzoly v hre, medzi 0.1 (10%) a 1.0 (100%)." #: src/settings_translation_file.cpp -msgid "Font italic by default" -msgstr "" +msgid "Inc. volume key" +msgstr "TlaÄidlo Zvýš hlasitosÅ¥" #: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" +msgid "Initial vertical speed when jumping, in nodes per second." +msgstr "PoÄiatoÄná vertikálna rýchlosÅ¥ pri skákanÃ, v kockách za sekundu." #: src/settings_translation_file.cpp msgid "" -"Shadow offset (in pixels) of the default font. If 0, then shadow will not be " -"drawn." +"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 "Font shadow alpha" -msgstr "" +msgid "Instrument chatcommands on registration." +msgstr "InÅ¡trumentuj komunikaÄné prÃkazy pri registráciÃ." #: src/settings_translation_file.cpp msgid "" -"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" +"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 "Font size of the default font in point (pt)." -msgstr "" +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "InÅ¡trumentuj funkcie ABM pri registráciÃ." #: src/settings_translation_file.cpp -msgid "Regular font path" -msgstr "" +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "InÅ¡trumentuj funkcie nahrávania modifikátorov blokov pri registráciÃ." #: src/settings_translation_file.cpp -msgid "" -"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 "" +msgid "Instrument the methods of entities on registration." +msgstr "InÅ¡trumentuj metódy bytostà pri registráciÃ." #: src/settings_translation_file.cpp -msgid "Bold font path" -msgstr "" +msgid "Instrumentation" +msgstr "Výstroj" #: src/settings_translation_file.cpp -msgid "Italic font path" -msgstr "" +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "Interval ukladania dôležitých zmien vo svete, uvádzaný v sekundách." #: src/settings_translation_file.cpp -msgid "Bold and italic font path" -msgstr "" +msgid "Interval of sending time of day to clients." +msgstr "Interval v akom sa posiela denný Äas klientom." #: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" +msgid "Inventory items animations" +msgstr "Animácia vecà v inventári" #: src/settings_translation_file.cpp -msgid "Font size of the monospace font in point (pt)." -msgstr "" +msgid "Inventory key" +msgstr "TlaÄidlo Inventár" #: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" +msgid "Invert mouse" +msgstr "ObrátiÅ¥ smer myÅ¡i" #: 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 "" +msgid "Invert vertical mouse movement." +msgstr "Obráti vertikálny pohyb myÅ¡i." #: src/settings_translation_file.cpp -msgid "Bold monospace font path" -msgstr "" +msgid "Italic font path" +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 "Bold and italic monospace font path" -msgstr "" +msgid "Item entity TTL" +msgstr "ŽivotnosÅ¥ odložených vecÃ" #: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" +msgid "Iterations" +msgstr "Iterácie" #: src/settings_translation_file.cpp -msgid "Font size of the fallback font in point (pt)." +msgid "" +"Iterations of the recursive function.\n" +"Increasing this increases the amount of fine detail, but also\n" +"increases processing load.\n" +"At iterations = 20 this mapgen has a similar load to mapgen V7." msgstr "" +"Iterácie rekurzÃvnej funkcie.\n" +"Zvýšenie zvýši úroveň jemnosti detailov, ale tiež\n" +"zvýši zaÅ¥aženie pri spracovanÃ.\n" +"Pri iteráciach = 20 má tento generátor podobné zaÅ¥aženie ako generátor V7." #: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" +msgid "Joystick ID" +msgstr "ID joysticku" #: src/settings_translation_file.cpp -msgid "" -"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not " -"be drawn." -msgstr "" +msgid "Joystick button repetition interval" +msgstr "Interval opakovania tlaÄidla joysticku" #: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" +msgid "Joystick deadzone" +msgstr "MÅ•tva zóna joysticku" #: src/settings_translation_file.cpp -msgid "" -"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." -msgstr "" +msgid "Joystick frustum sensitivity" +msgstr "CitlivosÅ¥ otáÄania pohľadu joystickom" #: src/settings_translation_file.cpp -msgid "Fallback font path" -msgstr "" +msgid "Joystick type" +msgstr "Typ joysticku" #: 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." +"Julia set only.\n" +"W component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"W komponent hyperkomplexnej konÅ¡tanty.\n" +"Zmenà tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp -msgid "Chat font size" +msgid "" +"Julia set only.\n" +"X component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"X komponent hyperkomplexnej konÅ¡tanty.\n" +"Zmenà tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp msgid "" -"Font size of the recent chat text and chat prompt in point (pt).\n" -"Value 0 will use the default font size." +"Julia set only.\n" +"Y component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"Y komponent hyperkomplexnej konÅ¡tanty.\n" +"Zmenà tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp -msgid "Screenshot folder" +msgid "" +"Julia set only.\n" +"Z component of hypercomplex constant.\n" +"Alters the shape of the fractal.\n" +"Range roughly -2 to 2." msgstr "" +"Len pre sadu Julia.\n" +"Z komponent hyperkomplexnej konÅ¡tanty.\n" +"Zmenà tvar fraktálu.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp -msgid "" -"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 "" +msgid "Julia w" +msgstr "Julia w" #: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" +msgid "Julia x" +msgstr "Julia x" #: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" +msgid "Julia y" +msgstr "Julia y" #: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" +msgid "Julia z" +msgstr "Julia z" #: 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 "" +msgid "Jump key" +msgstr "TlaÄidlo Skok" #: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" +msgid "Jumping speed" +msgstr "RýchlosÅ¥ skákania" #: src/settings_translation_file.cpp msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre znÞenie dohľadu.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Enable console window" +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre znÞenie hlasitosti.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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)." +"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 "Sound" +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre zahodenie aktuálne vybranej veci.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre zvýšenie dohľadu.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Volume" +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre zvýšenie hlasitosti.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Volume of all sounds.\n" -"Requires the sound system to be enabled." +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre skákanie.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mute sound" +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre rýchly pohyb hráÄa v rýchlom móde.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for moving the player backward.\n" +"Will also disable autoforward, when active.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre pohyb hráÄa vzad.\n" +"Zároveň vypne automatický pohyb hráÄa dopredu, ak je aktÃvny.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Client" +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre pohyb hráÄa vpred.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Network" +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre pohyb hráÄa vľavo.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server address" +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre pohyb hráÄa vpravo.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre vypnutie hlasitosti v hre.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Remote port" +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre otvorenie komunikaÄného okna pre zadávanie prÃkazov.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre otvorenie komunikaÄného okna pre zadávanie lokálnych prÃkazov.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Prometheus listener address" +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre otvorenie komunikaÄného okna.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre otvorenie inventára.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Saving map received from server" +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 "Save the map received by the client on disk." +msgid "" +"Key for selecting the 11th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber jedenástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Connect to external media server" +msgid "" +"Key for selecting the 12th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber dvanástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for selecting the 13th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber trinástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Client modding" +msgid "" +"Key for selecting the 14th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber Å¡trnástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." +"Key for selecting the 15th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber pätnástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Serverlist URL" +msgid "" +"Key for selecting the 16th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber Å¡estnástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." +msgid "" +"Key for selecting the 17th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber sedemnástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Serverlist file" +msgid "" +"Key for selecting the 18th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber osemnástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the\n" -"Multiplayer Tab." +"Key for selecting the 19th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber devätnástej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum size of the out chat queue" +msgid "" +"Key for selecting the 20th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 20. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Maximum size of the out chat queue.\n" -"0 to disable queueing and -1 to make the queue size unlimited." +"Key for selecting the 21st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 21. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Enable register confirmation" +msgid "" +"Key for selecting the 22nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 22. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable register confirmation when connecting to server.\n" -"If disabled, new account will be registered automatically." +"Key for selecting the 23rd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 23. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" +msgid "" +"Key for selecting the 24th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 24. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." +msgid "" +"Key for selecting the 25th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 25. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Mapblock limit" +msgid "" +"Key for selecting the 26th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 26. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." +"Key for selecting the 27th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 27. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Show debug info" +msgid "" +"Key for selecting the 28th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 28. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." +"Key for selecting the 29th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 29. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server / Singleplayer" +msgid "" +"Key for selecting the 30th hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 30. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server name" +msgid "" +"Key for selecting the 31st hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 31. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Name of the server, to be displayed when players join and in the serverlist." +"Key for selecting the 32nd hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber 32. pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server description" +msgid "" +"Key for selecting the eighth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber ôsmej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." +"Key for selecting the fifth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber piatej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." +msgid "" +"Key for selecting the first hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber prvej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server URL" +msgid "" +"Key for selecting the fourth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber Å¡tvrtej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber ÄalÅ¡ej veci na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Announce server" +msgid "" +"Key for selecting the ninth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber deviatej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Automatically report to the serverlist." +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber predchádzajúcej veci na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Announce to this serverlist." +msgid "" +"Key for selecting the second hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber druhej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Strip color codes" +msgid "" +"Key for selecting the seventh hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber siedmej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Remove color codes from incoming chat messages\n" -"Use this to stop players from being able to use color in their messages" +"Key for selecting the sixth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber Å¡iestej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Server port" +msgid "" +"Key for selecting the tenth hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber desiatej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." +"Key for selecting the third hotbar slot.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre výber tretej pozÃcie na opasku.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Bind address" +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre utajený pohyb (zakrádanie) hráÄa.\n" +"Tiež sa použÃva pre zliezanie a ponáranie vo vode ak aux1_descends je " +"vypnutý.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepÃnanie medzi pohľadom z prvej a tretej osoby.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Strict protocol checking" +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre snÃmanie obrazovky.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for toggling autoforward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie režimu automatického pohybu vpred.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Remote media" +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie filmového režimu.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie zobrazenia minimapy.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "IPv6 server" +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie režimu rýchlosÅ¥.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Enable/disable running an IPv6 server.\n" -"Ignored if bind_address is set.\n" -"Needs enable_ipv6 to be enabled." +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie lietania.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie režimu prechádzania stenami.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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)" +"Key for toggling pitch move mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie režimu pohyb podľa sklonu.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie aktualizácie pohľadu. PoužÃva sa len pre vývoj.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for toggling the display of chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie zobrazenia komunikácie.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Max. packets per iteration" +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie zobrazenia ladiacich informáciÃ.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"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." +"Key for toggling the display of fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie zobrazenia hmly.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Default game" +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie zobrazenia HUD (Head-Up Display - výhľadový " +"displej).\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie zobrazenia veľkej konzoly na komunikáciu.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Message of the day" +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie zobrazenia profileru. PoužÃva sa pri vývoji.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre prepnutie neobmedzeného dohľadu.\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum users" +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" +"TlaÄidlo pre použitie priblÞenia pokiaľ je to možné .\n" +"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp -msgid "Maximum number of players that can be connected simultaneously." -msgstr "" +msgid "Kick players who sent more than X messages per 10 seconds." +msgstr "VylÃºÄ hráÄa, ktorý poÅ¡le viac ako X správ za 10 sekúnd." #: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" +msgid "Lake steepness" +msgstr "StrmosÅ¥ jazier" #: 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 "" +msgid "Lake threshold" +msgstr "Hranica jazier" #: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" +msgid "Language" +msgstr "Jazyk" #: 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 "" +msgid "Large cave depth" +msgstr "Hĺbka veľkých jaskýň" #: src/settings_translation_file.cpp -msgid "Default stack size" -msgstr "" +msgid "Large cave maximum number" +msgstr "Minimálny poÄet veľkých jaskýň" #: 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 "" +msgid "Large cave minimum number" +msgstr "Minimálny poÄet veľkých jaskýň" #: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" +msgid "Large cave proportion flooded" +msgstr "Pomer zaplavených Äastà veľkých jaskýň" #: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" +msgid "Large chat console key" +msgstr "TlaÄidlo Veľká komunikaÄná konzola" #: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" +msgid "Leaves style" +msgstr "Å týl listov" #: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" msgstr "" +"Å týly listov:\n" +"- Ozdobné: vÅ¡etky plochy sú viditeľné\n" +"- Jednoduché: sú použité len vonkajÅ¡ie plochy, ak sú použité definované " +"\"special_tiles\"\n" +"- Nepriehľadné: vypne priehliadnosÅ¥" #: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" +msgid "Left key" +msgstr "TlaÄidlo Vľavo" #: 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." +"Length of a server tick and the interval at which objects are generally " +"updated over\n" +"network." msgstr "" +"Dĺžka kroku servera a interval v ktorom sú objekty aktualizované\n" +"cez sieÅ¥." #: src/settings_translation_file.cpp -msgid "Default password" +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 "New users need to input this password." +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 "Default privileges" +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 "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" +msgid "Length of time between active block management cycles" +msgstr "ÄŒasový interval medzi jednotlivými riadiacimi cyklami aktÃvnych blokov" #: src/settings_translation_file.cpp -msgid "Basic privileges" +msgid "" +"Level of logging to be written to debug.txt:\n" +"- <nothing> (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" msgstr "" +"Úroveň ladiacich informáciÃ, ktoré budú zapÃsané do debug.txt:\n" +"- <niÄ> (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 "Privileges that players with basic_privs can grant" -msgstr "" +msgid "Light curve boost" +msgstr "Zosilnenie svetelnej krivky" #: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" +msgid "Light curve boost center" +msgstr "Stred zosilnenia svetelnej krivky" #: 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 "" +msgid "Light curve boost spread" +msgstr "Rozptyl zosilnenia svetelnej krivky" #: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" +msgid "Light curve gamma" +msgstr "Svetelná gamma krivka" #: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" +msgid "Light curve high gradient" +msgstr "Horný gradient svetelnej krivky" #: src/settings_translation_file.cpp -msgid "Player versus player" -msgstr "" +msgid "Light curve low gradient" +msgstr "Spodný gradient svetelnej krivky" #: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." msgstr "" +"Limit pre generovanie mapy, v kockách, vo vÅ¡etkých 6 smeroch (0, 0, 0).\n" +"Len Äasti mapy (mapchunks) kompletne v rámci limitu generátora máp sú " +"generované.\n" +"Hodnota sa ukladá pre každý svet." #: src/settings_translation_file.cpp -msgid "Mod channels" +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." msgstr "" +"Maximálny poÄet paralelných HTTP požiadavok. Ovplyvňuje:\n" +"- ZÃskavanie médià ak server použÃva nastavenie remote_media.\n" +"- SÅ¥ahovanie zoznamu serverov a zverejňovanie servera.\n" +"- SÅ¥ahovania vykonávané z hlavného menu (napr. správca rozÅ¡ÃrenÃ).\n" +"Má efekt len ak je skompilovaný s cURL." #: src/settings_translation_file.cpp -msgid "Enable mod channels support." -msgstr "" +msgid "Liquid fluidity" +msgstr "TekutosÅ¥ kvapalÃn" #: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" +msgid "Liquid fluidity smoothing" +msgstr "Zjemnenie tekutosti kvapalÃn" #: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" +msgid "Liquid loop max" +msgstr "Max sprac. tekutÃn" #: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" +msgid "Liquid queue purge time" +msgstr "ÄŒas do uvolnenia fronty tekutÃn" #: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" +msgid "Liquid sinking" +msgstr "Ponáranie v tekutinách" #: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" +msgid "Liquid update interval in seconds." +msgstr "AktualizaÄný interval tekutÃn v sekundách." #: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" +msgid "Liquid update tick" +msgstr "AktualizaÄný interval tekutÃn" #: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" +msgid "Load the game profiler" +msgstr "Nahraj profiler hry" #: src/settings_translation_file.cpp msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." msgstr "" +"Nahraj profiler hry pre zÃskanie profilových dát.\n" +"Poskytne prÃkaz /profiler pre prÃstup k skompilovanému profilu.\n" +"UžitoÄné pre vývojárov rozÅ¡Ãrenà a správcov serverov." #: src/settings_translation_file.cpp -msgid "Chat message format" -msgstr "" +msgid "Loading Block Modifiers" +msgstr "Nahrávam modifikátory blokov" #: src/settings_translation_file.cpp -msgid "" -"Format of player chat messages. The following strings are valid " -"placeholders:\n" -"@name, @message, @timestamp (optional)" -msgstr "" +msgid "Lower Y limit of dungeons." +msgstr "Dolný Y limit kobiek." #: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" +msgid "Lower Y limit of floatlands." +msgstr "Spodný Y limit lietajúcich pevnÃn." #: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" +msgid "Main menu script" +msgstr "Skript hlavného menu" #: src/settings_translation_file.cpp -msgid "Crash message" +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 "A message to be displayed to all clients when the server crashes." -msgstr "" +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "Umožnà DirectX pracovaÅ¥ s LuaJIT. Vypni ak to spôsobuje problémy." #: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" +msgid "Makes all liquids opaque" +msgstr "VÅ¡etky tekutiny budú nepriehľadné" #: 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 "" +msgid "Map Compression Level for Disk Storage" +msgstr "Úroveň kompresie mapy pre diskové úložisko" #: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" +msgid "Map Compression Level for Network Transfer" +msgstr "Úroveň kompresie mapy pre sieÅ¥ový prenos" #: 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 "" +msgid "Map directory" +msgstr "Adresár máp" #: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" +msgid "Map generation attributes specific to Mapgen Carpathian." +msgstr "Å pecifické prÃznaky pre generátor máp Karpaty." #: 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." +"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 "Max block send distance" +msgid "" +"Map generation attributes specific to Mapgen Fractal.\n" +"'terrain' enables the generation of non-fractal terrain:\n" +"ocean, islands and underground." msgstr "" +"Å pecifické prÃznaky generátora máp Fraktál.\n" +"'terrain' aktivuje generovanie nie-fraktálneho terénu:\n" +"oceán, ostrovy and podzemie." #: src/settings_translation_file.cpp msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill': Reduces heat with altitude.\n" +"'humid_rivers': Increases humidity around rivers.\n" +"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n" +"to become shallower and occasionally dry.\n" +"'altitude_dry': Reduces humidity with altitude." msgstr "" +"Å pecifické prÃznaky pre generovanie mapy generátora Údolia.\n" +"'altitude_chill': Znižuje teplotu s nadmorskou výškou.\n" +"'humid_rivers': ZvyÅ¡uje vlhkosÅ¥ okolo riek.\n" +"'vary_river_depth': ak je aktÃvne, nÃzka vlhkosÅ¥ a vysoké teploty\n" +"spôsobia, že hladina rieky poklesne, niekdy aj vyschne.\n" +"'altitude_dry': Znižuje vlhkosÅ¥ s nadmorskou výškou." #: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" +msgid "Map generation attributes specific to Mapgen v5." +msgstr "PrÃznaky pre generovanie Å¡pecifické pre generátor V5." #: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored." msgstr "" +"Å pecifické atribúty pre generátor V6.\n" +"PrÃznak 'snowbiomes' aktivuje nový systém 5 biómov.\n" +"Ak je aktÃvny prźnak 'snowbiomes', džungle sú automaticky povolené a\n" +"prÃznak 'jungles' je ignorovaný." #: src/settings_translation_file.cpp -msgid "Time send interval" +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"'ridges': Rivers.\n" +"'floatlands': Floating land masses in the atmosphere.\n" +"'caverns': Giant caves deep underground." msgstr "" +"Å pecifické prÃznaky pre generátor máp V7.\n" +"'ridges': Rieky.\n" +"'floatlands': Lietajúce masy pevnÃn v atmosfére.\n" +"'caverns': Gigantické jaskyne hlboko v podzemÃ." #: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" +msgid "Map generation limit" +msgstr "Limit generovania mapy" #: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" +msgid "Map save interval" +msgstr "Interval ukladania mapy" #: 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 "" +msgid "Mapblock limit" +msgstr "Limit blokov mapy" #: src/settings_translation_file.cpp -msgid "World start time" -msgstr "" +msgid "Mapblock mesh generation delay" +msgstr "Oneskorenie generovania Mesh blokov" #: src/settings_translation_file.cpp -msgid "Time of day when a new world is started, in millihours (0-23999)." -msgstr "" +msgid "Mapblock mesh generator's MapBlock cache size in MB" +msgstr "Medzipamäť Mapblock Mesh generátora blokov v MB" #: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" +msgid "Mapblock unload timeout" +msgstr "ÄŒas odstránenia bloku mapy" #: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" +msgid "Mapgen Carpathian" +msgstr "Generátor mapy Karpaty" #: src/settings_translation_file.cpp -msgid "Chat message max length" -msgstr "" +msgid "Mapgen Carpathian specific flags" +msgstr "Å pecifické prÃznaky generátora máp Karpaty" #: src/settings_translation_file.cpp -msgid "Set the maximum character length of a chat message sent by clients." -msgstr "" +msgid "Mapgen Flat" +msgstr "Generátor mapy plochý" #: src/settings_translation_file.cpp -msgid "Chat message count limit" -msgstr "" +msgid "Mapgen Flat specific flags" +msgstr "Å pecifické prÃznaky plochého generátora mapy" #: src/settings_translation_file.cpp -msgid "Amount of messages a player may send per 10 seconds." -msgstr "" +msgid "Mapgen Fractal" +msgstr "Generátor mapy Fraktál" #: src/settings_translation_file.cpp -msgid "Chat message kick threshold" -msgstr "" +msgid "Mapgen Fractal specific flags" +msgstr "Å pecifické prÃznaky generátora máp Fraktál" #: src/settings_translation_file.cpp -msgid "Kick players who sent more than X messages per 10 seconds." -msgstr "" +msgid "Mapgen V5" +msgstr "Generátor mapy V5" #: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" +msgid "Mapgen V5 specific flags" +msgstr "Å pecifické prÃznaky pre generátor mapy V5" #: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" +msgid "Mapgen V6" +msgstr "Generátor mapy V6" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration on ground or when climbing,\n" -"in nodes per second per second." -msgstr "" +msgid "Mapgen V6 specific flags" +msgstr "Å pecifické prÃznaky generátora mapy V6" #: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" +msgid "Mapgen V7" +msgstr "Generátor mapy V7" #: src/settings_translation_file.cpp -msgid "" -"Horizontal acceleration in air when jumping or falling,\n" -"in nodes per second per second." -msgstr "" +msgid "Mapgen V7 specific flags" +msgstr "Å pecifické prÃznaky generátora V7" #: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" +msgid "Mapgen Valleys" +msgstr "Generátor mapy Údolia" #: src/settings_translation_file.cpp -msgid "" -"Horizontal and vertical acceleration in fast mode,\n" -"in nodes per second per second." -msgstr "" +msgid "Mapgen Valleys specific flags" +msgstr "Å pecifické prÃznaky pre generátor Údolia" #: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" +msgid "Mapgen debug" +msgstr "Ladenie generátora máp" #: src/settings_translation_file.cpp -msgid "Walking and flying speed, in nodes per second." -msgstr "" +msgid "Mapgen name" +msgstr "Meno generátora mapy" #: src/settings_translation_file.cpp -msgid "Sneaking speed" -msgstr "" +msgid "Max block generate distance" +msgstr "Maximálna vzdialenosÅ¥ generovania blokov" #: src/settings_translation_file.cpp -msgid "Sneaking speed, in nodes per second." -msgstr "" +msgid "Max block send distance" +msgstr "Max vzdialenosÅ¥ posielania objektov" #: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" +msgid "Max liquids processed per step." +msgstr "Maximálny poÄet tekutÃn spracovaný v jednom kroku." #: src/settings_translation_file.cpp -msgid "Walking, flying and climbing speed in fast mode, in nodes per second." -msgstr "" +msgid "Max. clearobjects extra blocks" +msgstr "Max. extra blokov clearobjects" #: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" +msgid "Max. packets per iteration" +msgstr "Max. paketov za opakovanie" #: src/settings_translation_file.cpp -msgid "Vertical climbing speed, in nodes per second." -msgstr "" +msgid "Maximum FPS" +msgstr "Maximálne FPS" #: src/settings_translation_file.cpp -msgid "Jumping speed" +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 "Initial vertical speed when jumping, in nodes per second." -msgstr "" +msgid "Maximum forceloaded blocks" +msgstr "Maximum vynútene nahraných blokov" #: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" +msgid "Maximum hotbar width" +msgstr "Maximálna Å¡Ãrka opaska" #: src/settings_translation_file.cpp -msgid "Decrease this to increase liquid resistance to movement." +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 "Liquid fluidity smoothing" +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 "Liquid sinking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls sinking speed in liquid." +msgid "" +"Maximum number of blocks that are simultaneously sent per client.\n" +"The maximum total count is calculated dynamically:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" msgstr "" +"Maximálny poÄet súÄasne posielaných blokov na klienta.\n" +"Maximálny poÄet sa prepoÄÃtava dynamicky:\n" +"max_total = ceil((#clients + max_users) * per_client / 4)" #: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" +msgid "Maximum number of blocks that can be queued for loading." +msgstr "Maximálny limit kociek, ktoré môžu byÅ¥ vo fronte pre nahrávanie." #: src/settings_translation_file.cpp -msgid "Acceleration of gravity, in nodes per second per second." +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 "Deprecated Lua API handling" +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 "" -"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)." +"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 "Max. clearobjects extra blocks" -msgstr "" +msgid "Maximum number of forceloaded mapblocks." +msgstr "Maximálny poÄet vynútene nahraných blokov mapy." #: 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)." +"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 "Unload unused server data" +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." msgstr "" +"Maximálny poÄet paketov poslaný pri jednom kroku posielania,\n" +"ak máš pomalé pripojenie skús ho znÞiÅ¥, ale\n" +"neznižuj ho pod dvojnásobok cieľového poÄtu klientov." #: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" +msgid "Maximum number of players that can be connected simultaneously." +msgstr "Maximálny poÄet hráÄov, ktorà sa môžu súÄasne pripojiÅ¥." #: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" +msgid "Maximum number of recent chat messages to show" +msgstr "Maximálny poÄet nedávnych správ v komunikáciÃ, ktoré budú zobrazované" #: src/settings_translation_file.cpp msgid "Maximum number of statically stored objects in a block." -msgstr "" +msgstr "Maximálny poÄet staticky uložených objektov v bloku." #: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" +msgid "Maximum objects per block" +msgstr "Max. poÄet objektov na blok" #: src/settings_translation_file.cpp -msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +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 "Dedicated server step" -msgstr "" +msgid "Maximum simultaneous block sends per client" +msgstr "Maximum súÄasných odoslanà bloku na klienta" + +#: src/settings_translation_file.cpp +msgid "Maximum size of the out chat queue" +msgstr "Maximálna veľkosÅ¥ výstupnej komunikaÄnej fronty" #: src/settings_translation_file.cpp msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over\n" -"network." +"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 "Active block management interval" +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 "Length of time between active block management cycles" -msgstr "" +msgid "Maximum users" +msgstr "Maximálny poÄet hráÄov" #: src/settings_translation_file.cpp -msgid "ABM interval" -msgstr "" +msgid "Menus" +msgstr "Menu" #: src/settings_translation_file.cpp -msgid "Length of time between Active Block Modifier (ABM) execution cycles" -msgstr "" +msgid "Mesh cache" +msgstr "Medzipamäť Mesh" #: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" +msgid "Message of the day" +msgstr "Správa dňa" #: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" +msgid "Message of the day displayed to players connecting." +msgstr "Správa dňa sa zobrazà hráÄom pri pripájanÃ." #: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" +msgid "Method used to highlight selected object." +msgstr "Metóda použitá pre zvýraznenie vybraných objektov." #: 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 "" +msgid "Minimal level of logging to be written to chat." +msgstr "Minimálna úroveň záznamov, ktoré budú vypÃsané do komunikaÄného okna." #: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" +msgid "Minimap" +msgstr "Minimapa" #: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" +msgid "Minimap key" +msgstr "TlaÄidlo Minimapa" #: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" +msgid "Minimap scan height" +msgstr "Minimapa výška skenovania" #: 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." +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 "Liquid update tick" +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 "Liquid update interval in seconds." -msgstr "" +msgid "Minimum texture size" +msgstr "Minimálna veľkosÅ¥ textúry" #: src/settings_translation_file.cpp -msgid "Block send optimize distance" -msgstr "" +msgid "Mipmapping" +msgstr "Mipmapping" #: 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 "" +msgid "Mod channels" +msgstr "KomunikaÄné kanály rozÅ¡ÃrenÃ" #: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" +msgid "Modifies the size of the hudbar elements." +msgstr "Upravà veľkosÅ¥ elementov v užÃvateľskom rozhranÃ." #: 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 "" +msgid "Monospace font path" +msgstr "Cesta k pÃsmu s pevnou Å¡Ãrkou" #: src/settings_translation_file.cpp -msgid "Client side modding restrictions" -msgstr "" +msgid "Monospace font size" +msgstr "VeľkosÅ¥ pÃsmo s pevnou Å¡Ãrkou" #: 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 "" +msgid "Mountain height noise" +msgstr "Å um pre výšku hôr" #: src/settings_translation_file.cpp -msgid "Client side node lookup range restriction" -msgstr "" +msgid "Mountain noise" +msgstr "Å um hôr" #: 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 "" +msgid "Mountain variation noise" +msgstr "Odchýlka Å¡umu hôr" #: src/settings_translation_file.cpp -msgid "Security" -msgstr "" +msgid "Mountain zero level" +msgstr "Základná úroveň hôr" #: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" +msgid "Mouse sensitivity" +msgstr "CitlivosÅ¥ myÅ¡i" #: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" +msgid "Mouse sensitivity multiplier." +msgstr "Multiplikátor citlivosti myÅ¡i." #: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" +msgid "Mud noise" +msgstr "Å um bahna" #: 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())." +"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 "HTTP mods" -msgstr "" +msgid "Mute key" +msgstr "TlaÄidlo Ticho" #: 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 "" +msgid "Mute sound" +msgstr "StÃÅ¡ hlasitosÅ¥" #: src/settings_translation_file.cpp -msgid "Profiling" +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this.\n" +"Current mapgens in a highly unstable state:\n" +"- The optional floatlands of v7 (disabled by default)." msgstr "" +"Meno generátora mapy, ktorý sa použije pri vytváranà nového sveta.\n" +"Vytvorenie sveta cez hlavné menu toto prepÃÅ¡e.\n" +"Aktuálne nestabilné generátory:\n" +"- Voliteľné lietajúce pevniny (floatlands) vo v7 (Å¡tandardne vypnuté)." #: src/settings_translation_file.cpp -msgid "Load the game profiler" +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." msgstr "" +"Meno hráÄa.\n" +"Ak je spustený server, klienti s týmto menom sú administrátori.\n" +"Pri Å¡tarte z hlavného menu, toto bude prepÃsané." #: src/settings_translation_file.cpp msgid "" -"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." +"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 "Default report format" -msgstr "" +msgid "Near plane" +msgstr "BlÃzkosÅ¥ roviny" #: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" +msgid "Network" +msgstr "SieÅ¥" #: src/settings_translation_file.cpp -msgid "Report path" +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 "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" +msgid "New users need to input this password." +msgstr "Novà hráÄi musia zadaÅ¥ toto heslo." #: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" +msgid "Noclip" +msgstr "Prechádzanie stenami" #: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" +msgid "Noclip key" +msgstr "TlaÄidlo Prechádzanie stenami" #: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" +msgid "Node highlighting" +msgstr "Zvýrazňovanie kociek" #: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" +msgid "NodeTimer interval" +msgstr "Interval ÄasovaÄa kociek" #: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" +msgid "Noises" +msgstr "Å umy" #: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" +msgid "Number of emerge threads" +msgstr "PoÄet použitých vlákien" #: src/settings_translation_file.cpp msgid "" -"Instrument the action function of Loading Block Modifiers on registration." +"Number of emerge threads to use.\n" +"Value 0:\n" +"- Automatic selection. The number of emerge threads will be\n" +"- 'number of processors - 2', with a lower limit of 1.\n" +"Any other value:\n" +"- Specifies the number of emerge threads, with a lower limit of 1.\n" +"WARNING: Increasing the number of emerge threads increases engine mapgen\n" +"speed, but this may harm game performance by interfering with other\n" +"processes, especially in singleplayer and/or when running Lua code in\n" +"'on_generated'. For many users the optimum setting may be '1'." msgstr "" +"PoÄet použitých vlákien.\n" +"Hodnota 0:\n" +"- Automatický urÄenie. PoÄet použitých vlákien bude\n" +"- 'poÄet procesorov - 2', s dolným limitom 1.\n" +"Akákoľvek iná hodnota:\n" +"- Definuje poÄet vlákien, s dolným limitom 1.\n" +"VAROVANIE: Zvýšenie poÄtu vlákien zvýši rýchlosÅ¥ generátora máp,\n" +"ale môže to uÅ¡kodiÅ¥ hernému výkonu interferenciou s inými\n" +"procesmi, obzvlášť pri hre jedného hráÄa a/alebo ak bežà Lua kód\n" +"v 'on_generated'. Pre mnohých hráÄov môže byÅ¥ optimálne nastavenie '1'." #: src/settings_translation_file.cpp -msgid "Chatcommands" +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." msgstr "" +"PoÄet extra blokov, ktoré môžu byÅ¥ naraz nahrané pomocou /clearobjects.\n" +"Toto je kompromis medzi vyÅ¥aženÃm sqlite transakciami\n" +"a spotrebou pamäti (4096=100MB, ako približné pravidlo)." #: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" +msgid "Online Content Repository" +msgstr "Úložisko doplnkov na internete" #: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" +msgid "Opaque liquids" +msgstr "Nepriehľadné tekutiny" #: src/settings_translation_file.cpp msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" +"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255." +msgstr "NepriehľadnosÅ¥ tieňa za Å¡tandardným pÃsmom, medzi 0 a 255." #: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" +msgid "" +"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255." +msgstr "NepriehľadnosÅ¥ tieňa za záložným pÃsmom, medzi 0 a 255." #: src/settings_translation_file.cpp msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" +"Open the pause menu when the window's focus is lost. Does not pause if a " +"formspec is\n" +"open." msgstr "" +"Otvorà menu pozastavenia, ak aktuálne okno hry nie je vybrané.\n" +"Nepozastavà sa ak je otvorený formspec." #: src/settings_translation_file.cpp -msgid "Profiler" +msgid "" +"Path of the fallback font.\n" +"If “freetype†setting is enabled: Must be a TrueType font.\n" +"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font will be used for certain languages or if the default font is " +"unavailable." msgstr "" +"Cesta k záložnému pÃsmu.\n" +"Ak je aktÃvne nastavenie “freetypeâ€: Musà to byÅ¥ TrueType pÃsmo.\n" +"Ak je zakázané nastavenie “freetypeâ€: Musà to byÅ¥ bitmapové, alebo XML " +"vektorové pÃsmo.\n" +"Toto pÃsmo bude použité pre urÄité jazyky, alebo ak nie je Å¡tandardné pÃsmo " +"k dispozÃciÃ." #: src/settings_translation_file.cpp msgid "" -"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." +"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 "Client and Server" +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 "Player name" -msgstr "" +msgid "Path to texture directory. All textures are first searched from here." +msgstr "Cesta do adresára s textúrami. VÅ¡etky textúry sú najprv hľadané tu." #: src/settings_translation_file.cpp msgid "" -"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." +"Path to the default font.\n" +"If “freetype†setting is enabled: Must be a TrueType font.\n" +"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n" +"The fallback font will be used if the font cannot be loaded." msgstr "" +"Cesta k Å¡tandardnému pÃsmu.\n" +"Ak je aktivné nastavenie “freetypeâ€: Musà to byÅ¥ TrueType pÃsmo.\n" +"Ak je zakázané nastavenie “freetypeâ€: Musà to byÅ¥ bitmapové, alebo XML " +"vektorové pÃsmo.\n" +"Bude použité záložné pÃsmo, ak nebude možné pÃsmo nahraÅ¥." #: src/settings_translation_file.cpp -msgid "Language" +msgid "" +"Path to the monospace font.\n" +"If “freetype†setting is enabled: Must be a TrueType font.\n" +"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n" +"This font is used for e.g. the console and profiler screen." msgstr "" +"Cesta k pÃsmu s pevnou Å¡Ãrkou.\n" +"Ak je aktÃvne nastavenie “freetypeâ€: Musà to byÅ¥ TrueType pÃsmo.\n" +"Ak je zakázané nastavenie “freetypeâ€: Musà to byÅ¥ bitmapové, alebo XML " +"vektorové pÃsmo.\n" +"Toto pÃsmo je použité pre napr. konzolu a okno profilera." #: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" +msgid "Pause on lost window focus" +msgstr "Pozastav hru, pri strate zamerania okna" #: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" +msgid "Per-player limit of queued blocks load from disk" +msgstr "Limit kociek vo fronte na každého hráÄa nahrávaných z disku" #: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- <nothing> (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" +msgid "Per-player limit of queued blocks to generate" +msgstr "Limit kociek vo fronte na každého hráÄa pre generovanie" #: src/settings_translation_file.cpp -msgid "Debug log file size threshold" -msgstr "" +msgid "Physics" +msgstr "Fyzika" #: 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 "" +msgid "Pitch move key" +msgstr "TlaÄidlo Pohyb podľa sklonu" #: src/settings_translation_file.cpp -msgid "Chat log level" -msgstr "" +msgid "Pitch move mode" +msgstr "Režim pohybu podľa sklonu" #: src/settings_translation_file.cpp -msgid "Minimal level of logging to be written to chat." -msgstr "" +msgid "Place key" +msgstr "TlaÄidlo na pokladanie" #: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" +msgid "Place repetition interval" +msgstr "Interval opakovania pokladania" #: src/settings_translation_file.cpp msgid "" -"Enable IPv6 support (for both client and server).\n" -"Required for IPv6 connections to work at all." +"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 "cURL timeout" -msgstr "" +msgid "Player name" +msgstr "Meno hráÄa" #: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" +msgid "Player transfer distance" +msgstr "VzdialenosÅ¥ zobrazenia hráÄa" #: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" +msgid "Player versus player" +msgstr "HrÃ¡Ä proti hráÄovi (PvP)" #: src/settings_translation_file.cpp msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" +"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 "Maximum time in ms a file download (e.g. a mod download) may take." +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 "High-precision FPU" +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 "Makes DirectX work with LuaJIT. Disable if it causes troubles." +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 "Main menu style" -msgstr "" +msgid "Privileges that players with basic_privs can grant" +msgstr "Oprávnenia, ktoré môže udeliÅ¥ hrÃ¡Ä s basic_privs" #: src/settings_translation_file.cpp -msgid "" -"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 "" +msgid "Profiler" +msgstr "Profiler" #: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" +msgid "Profiler toggle key" +msgstr "TlaÄidlo PrepÃnanie profileru" #: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" +msgid "Profiling" +msgstr "Profilovanie" #: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" +msgid "Prometheus listener address" +msgstr "OdpoÄúvacia adresa Promethea" #: src/settings_translation_file.cpp msgid "" -"Print the engine's profiling data in regular intervals (in seconds).\n" -"0 = disable. Useful for developers." +"Prometheus listener address.\n" +"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n" +"enable metrics listener for Prometheus on that address.\n" +"Metrics can be fetch on http://127.0.0.1:30000/metrics" msgstr "" +"OdpoÄúvacia adresa Promethea.\n" +"Ak je minetest skompilovaný s nastaveným ENABLE_PROMETHEUS,\n" +"aktivuj odpoÄúvanie metriky pre Prometheus na zadanej adrese.\n" +"Metrika môže byÅ¥ zÃskaná na http://127.0.0.1:30000/metrics" #: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" +msgid "Proportion of large caves that contain liquid." +msgstr "Pomer Äastà veľkých jaskýň, ktoré obsahujú tekutinu." #: src/settings_translation_file.cpp msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this.\n" -"Current mapgens in a highly unstable state:\n" -"- The optional floatlands of v7 (disabled by default)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." msgstr "" +"Polomer oblasti mrakov zadaný v poÄtoch 64 kociek na Å¡tvorcový mrak.\n" +"Hodnoty vyššie než 26 budú produkovaÅ¥ ostré hranice na rohoch oblasti mrakov." #: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" +msgid "Raises terrain to make valleys around the rivers." +msgstr "Zvýši terén aby vznikli údolia okolo riek." #: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" +msgid "Random input" +msgstr "Náhodný vstup" #: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" +msgid "Range select key" +msgstr "TlaÄidlo Dohľad" #: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" +msgid "Recent Chat Messages" +msgstr "Posledné správy v komunikáciÃ" #: 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 "" +msgid "Regular font path" +msgstr "Å tandardná cesta k pÃsmam" #: 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 "" +msgid "Remote media" +msgstr "Vzdialené média" #: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" +msgid "Remote port" +msgstr "Vzdialený port" #: src/settings_translation_file.cpp -msgid "Heat noise" +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 "Temperature variation for biomes." -msgstr "" +msgid "Replaces the default main menu with a custom one." +msgstr "Nahradà štandardné hlavné menu vlastným." #: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" +msgid "Report path" +msgstr "Cesta k záznamom" #: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." +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 "" +"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 "Humidity noise" -msgstr "" +msgid "Ridge mountain spread noise" +msgstr "Rozptyl Å¡umu hrebeňa hôr" #: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" +msgid "Ridge noise" +msgstr "Å um hrebeňa" #: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" +msgid "Ridge underwater noise" +msgstr "Å um podmorského hrebeňa" #: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" +msgid "Ridged mountain size noise" +msgstr "VeľkosÅ¥ Å¡umu hrebeňa hôr" #: src/settings_translation_file.cpp -msgid "Mapgen V5" -msgstr "" +msgid "Right key" +msgstr "TlaÄidlo Vpravo" #: src/settings_translation_file.cpp -msgid "Mapgen V5 specific flags" -msgstr "" +msgid "River channel depth" +msgstr "Hĺbka rieÄneho kanála" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen v5." -msgstr "" +msgid "River channel width" +msgstr "Å Ãrka kanála rieky" #: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" +msgid "River depth" +msgstr "Hĺbka rieky" #: 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 "" +msgid "River noise" +msgstr "Å um riek" #: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" +msgid "River size" +msgstr "VeľkosÅ¥ riek" #: src/settings_translation_file.cpp -msgid "Y of upper limit of large caves." -msgstr "" +msgid "River valley width" +msgstr "Å Ãrka údolia rieky" #: src/settings_translation_file.cpp -msgid "Small cave minimum number" -msgstr "" +msgid "Rollback recording" +msgstr "Nahrávanie pre obnovenie" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of small caves per mapchunk." -msgstr "" +msgid "Rolling hill size noise" +msgstr "VeľkosÅ¥ Å¡umu vlnitosti kopcov" #: src/settings_translation_file.cpp -msgid "Small cave maximum number" -msgstr "" +msgid "Rolling hills spread noise" +msgstr "Rozptyl Å¡umu vlnitosti kopcov" #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of small caves per mapchunk." -msgstr "" +msgid "Round minimap" +msgstr "Okrúhla minimapa" #: src/settings_translation_file.cpp -msgid "Large cave minimum number" -msgstr "" +msgid "Safe digging and placing" +msgstr "BezpeÄné kopanie a ukladanie" #: src/settings_translation_file.cpp -msgid "Minimum limit of random number of large caves per mapchunk." -msgstr "" +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "Pieskové pláže sa objavia keÄ np_beach presiahne túto hodnotu." #: src/settings_translation_file.cpp -msgid "Large cave maximum number" -msgstr "" +msgid "Save the map received by the client on disk." +msgstr "Ulož mapu zÃskanú klientom na disk." #: src/settings_translation_file.cpp -msgid "Maximum limit of random number of large caves per mapchunk." -msgstr "" +msgid "Save window size automatically when modified." +msgstr "Automaticky ulož veľkosÅ¥ okna po úprave." #: src/settings_translation_file.cpp -msgid "Large cave proportion flooded" -msgstr "" +msgid "Saving map received from server" +msgstr "Ukladanie mapy zÃskanej zo servera" #: src/settings_translation_file.cpp -msgid "Proportion of large caves that contain liquid." +msgid "" +"Scale GUI by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." msgstr "" +"Zmeň mierku užÃvateľského rozhrania (GUI) podľa zadanej hodnoty.\n" +"Pre zmenu mierky GUI použi antialias filter podľa-najbližšieho-suseda.\n" +"Toto zjemnà niektoré hrubé hrany a zmieÅ¡a pixely pri zmenÅ¡enÃ,\n" +"za cenu rozmazania niektorých okrajových pixelov ak sa mierka\n" +"obrázkov menà podľa neceloÄÃselných hodnôt." #: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" +msgid "Screen height" +msgstr "Výška obrazovky" #: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" +msgid "Screen width" +msgstr "Å Ãrka obrazovky" #: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" +msgid "Screenshot folder" +msgstr "Adresár pre snÃmky obrazovky" #: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" +msgid "Screenshot format" +msgstr "Formát snÃmok obrazovky" #: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" +msgid "Screenshot quality" +msgstr "Kvalita snÃmok obrazovky" #: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." msgstr "" +"Kvalita snÃmok obrazovky. PoužÃva sa len pre JPEG formát.\n" +"1 znamená najhorÅ¡iu kvalitu; 100 znamená najlepÅ¡iu kvalitu.\n" +"Použi 0 pre Å¡tandardnú kvalitu." #: src/settings_translation_file.cpp -msgid "Dungeon minimum Y" -msgstr "" +msgid "Seabed noise" +msgstr "Å um morského dna" #: src/settings_translation_file.cpp -msgid "Lower Y limit of dungeons." -msgstr "" +msgid "Second of 4 2D noises that together define hill/mountain range height." +msgstr "Druhý zo 4 2D Å¡umov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp -msgid "Dungeon maximum Y" -msgstr "" +msgid "Second of two 3D noises that together define tunnels." +msgstr "Druhý z dvoch 3D Å¡umov, ktoré spolu definujú tunely." #: src/settings_translation_file.cpp -msgid "Upper Y limit of dungeons." -msgstr "" +msgid "Security" +msgstr "BezpeÄnosÅ¥" #: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" +msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "ViÄ. https://www.sqlite.org/pragma.html#pragma_synchronous" #: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" +msgid "Selection box border color (R,G,B)." +msgstr "Farba obrysu bloku (R,G,B)." #: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" +msgid "Selection box color" +msgstr "Farba obrysu bloku" #: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" +msgid "Selection box width" +msgstr "Å Ãrka obrysu bloku" #: src/settings_translation_file.cpp msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." +"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 "" +"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 "Height noise" -msgstr "" +msgid "Server / Singleplayer" +msgstr "Server / Hra pre jedného hráÄa" #: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" +msgid "Server URL" +msgstr "URL servera" #: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" +msgid "Server address" +msgstr "Adresa servera" #: src/settings_translation_file.cpp -msgid "First of two 3D noises that together define tunnels." -msgstr "" +msgid "Server description" +msgstr "Popis servera" #: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" +msgid "Server name" +msgstr "Meno servera" #: src/settings_translation_file.cpp -msgid "Second of two 3D noises that together define tunnels." -msgstr "" +msgid "Server port" +msgstr "Port servera" #: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" +msgid "Server side occlusion culling" +msgstr "Occlusion culling na strane servera" #: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" +msgid "Serverlist URL" +msgstr "URL zoznamu serverov" #: src/settings_translation_file.cpp -msgid "Ground noise" -msgstr "" +msgid "Serverlist file" +msgstr "Súbor so zoznamom serverov" #: src/settings_translation_file.cpp -msgid "3D noise defining terrain." +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 "Dungeon noise" -msgstr "" +msgid "Set the maximum character length of a chat message sent by clients." +msgstr "Nastav maximálny poÄet znakov komunikaÄnej správy posielanej klientmi." #: src/settings_translation_file.cpp -msgid "3D noise that determines number of dungeons per mapchunk." +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 "Mapgen V6" +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 "Mapgen V6 specific flags" +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 "" -"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 "" +msgid "Shader path" +msgstr "Cesta k shaderom" #: src/settings_translation_file.cpp -msgid "Desert noise threshold" +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video\n" +"cards.\n" +"This only works with the OpenGL video backend." msgstr "" +"Shadery umožňujú pokroÄilé vizuálne efekty a na niektorých grafických " +"kartách\n" +"môžu zvýšiÅ¥ výkon.\n" +"Toto funguje len s OpenGL." #: src/settings_translation_file.cpp msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the 'snowbiomes' flag is enabled, this is ignored." +"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 "Beach noise threshold" +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 "Sandy beaches occur when np_beach exceeds this value." -msgstr "" +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "Tvar minimapy. Aktivované = okrúhla, vypnuté = Å¡tvorcová." #: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" +msgid "Show debug info" +msgstr "Zobraz ladiace informácie" #: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and seabed." -msgstr "" +msgid "Show entity selection boxes" +msgstr "Zobraz obrys bytosti" #: src/settings_translation_file.cpp -msgid "Terrain higher noise" +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 -msgid "Y-level of higher terrain that creates cliffs." -msgstr "" +#, fuzzy +msgid "Show nametag backgrounds by default" +msgstr "Å tandardne tuÄné pÃsmo" #: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" +msgid "Shutdown message" +msgstr "Správa pri vypÃnanÃ" #: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." +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 "" +"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 "Height select noise" +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." msgstr "" +"VeľkosÅ¥ medzipamäte blokov v Mesh generátoru.\n" +"Zvýšenie zvýši využitie medzipamäte %, znÞi sa množstvo dát kopÃrovaných\n" +"z hlavnej vetvy a tým sa znÞi chvenie." #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain." -msgstr "" +msgid "Slice w" +msgstr "Plátok w" #: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" +msgid "Slope and fill work together to modify the heights." +msgstr "Sklon a výplň spolupracujú aby upravili výšky." #: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" +msgid "Small cave maximum number" +msgstr "Maximálny poÄet malých jaskýň" #: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" +msgid "Small cave minimum number" +msgstr "Minimálny poÄet malých jaskýň" #: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "Drobné odchýlky vlhkosti pre zjemnenie prechodu na hraniciach biómov." #: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "Drobné odchýlky teplôt pre zjemnenie prechodu na hraniciach biómov." #: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" +msgid "Smooth lighting" +msgstr "Jemné osvetlenie" #: src/settings_translation_file.cpp -msgid "Variation of number of caves." +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 "Trees noise" -msgstr "" +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "Zjemnà rotáciu kamery vo filmovom režime. 0 je pre vypnuté." #: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" +msgid "Smooths rotation of camera. 0 to disable." +msgstr "Zjemnà rotáciu kamery. 0 je pre vypnuté." #: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" +msgid "Sneak key" +msgstr "TlaÄidlo zakrádania sa" #: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" +msgid "Sneaking speed" +msgstr "RýchlosÅ¥ zakrádania" #: src/settings_translation_file.cpp -msgid "Mapgen V7" -msgstr "" +msgid "Sneaking speed, in nodes per second." +msgstr "RýchlosÅ¥ zakrádania sa, v kockách za sekundu." #: src/settings_translation_file.cpp -msgid "Mapgen V7 specific flags" -msgstr "" +msgid "Sound" +msgstr "Zvuk" #: 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 "" +msgid "Special key" +msgstr "Å peciálne tlaÄidlo" #: src/settings_translation_file.cpp -msgid "Mountain zero level" -msgstr "" +msgid "Special key for climbing/descending" +msgstr "Å peciálna klávesa pre Å¡plhanie hore/dole" #: src/settings_translation_file.cpp msgid "" -"Y of mountain density gradient zero level. Used to shift mountains " -"vertically." +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." msgstr "" +"Å pecifikuje URL s ktorého klient stiahne média namiesto použitia UDP.\n" +"$filename by mal byt dostupný z $remote_media$filename cez cURL\n" +"(samozrejme, remote_media by mal konÄiÅ¥ lomÃtkom).\n" +"Súbory, ktoré nie sú dostupné budú zÃskané Å¡tandardným spôsobom." #: src/settings_translation_file.cpp -msgid "Floatland minimum Y" +msgid "" +"Specifies the default stack size of nodes, items and tools.\n" +"Note that mods or games may explicitly set a stack for certain (or all) " +"items." msgstr "" +"Definuje Å¡tandardnú veľkosÅ¥ kôpky kociek, vecà a nástrojov.\n" +"Ber v úvahu, že rozÅ¡Ãrenia, alebo hry môžu explicitne nastaviÅ¥ veľkosÅ¥ pre " +"urÄité (alebo vÅ¡etky) typy." #: src/settings_translation_file.cpp -msgid "Lower Y limit of floatlands." +msgid "" +"Spread of light curve boost range.\n" +"Controls the width of the range to be boosted.\n" +"Standard deviation of the light curve boost Gaussian." msgstr "" +"Rozptyl zosilnenia svetelnej krivky.\n" +"UrÄuje Å¡Ãrku rozsahu , ktorý bude zosilnený.\n" +"Å tandardné gausovo rozdelenie odchýlky svetelnej krivky." #: src/settings_translation_file.cpp -msgid "Floatland maximum Y" -msgstr "" +msgid "Static spawnpoint" +msgstr "Pevný bod obnovy" #: src/settings_translation_file.cpp -msgid "Upper Y limit of floatlands." -msgstr "" +msgid "Steepness noise" +msgstr "Å um zrázov" #: src/settings_translation_file.cpp -msgid "Floatland tapering distance" -msgstr "" +msgid "Step mountain size noise" +msgstr "VeľkosÅ¥ Å¡umu horských stepÃ" #: 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 "" +msgid "Step mountain spread noise" +msgstr "Rozptyl Å¡umu horských stepÃ" #: src/settings_translation_file.cpp -msgid "Floatland taper exponent" -msgstr "" +msgid "Strength of 3D mode parallax." +msgstr "Stupeň paralaxy 3D režimu." #: src/settings_translation_file.cpp msgid "" -"Exponent of the floatland tapering. Alters the tapering behaviour.\n" -"Value = 1.0 creates a uniform, linear tapering.\n" -"Values > 1.0 create a smooth tapering suitable for the default separated\n" -"floatlands.\n" -"Values < 1.0 (for example 0.25) create a more defined surface level with\n" -"flatter lowlands, suitable for a solid floatland layer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland density" +"Strength of light curve boost.\n" +"The 3 'boost' parameters define a range of the light\n" +"curve that is boosted in brightness." msgstr "" +"Sila zosilnenia svetelnej krivky.\n" +"Tri 'zosilňujúce' parametre definujú ktorý rozsah\n" +"svetelnej krivky je zosilnený v jasu." #: src/settings_translation_file.cpp -#, 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 "" +msgid "Strict protocol checking" +msgstr "PrÃsna kontrola protokolu" #: src/settings_translation_file.cpp -msgid "Floatland water level" -msgstr "" +msgid "Strip color codes" +msgstr "Odstráň farby" #: src/settings_translation_file.cpp msgid "" @@ -5720,622 +6463,996 @@ 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 "Synchrónne SQLite" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "Odchýlky teplôt pre biómy." #: src/settings_translation_file.cpp msgid "Terrain alternative noise" -msgstr "" +msgstr "AlternatÃvny Å¡um terénu" #: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" +msgid "Terrain base noise" +msgstr "Základný Å¡um terénu" #: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" +msgid "Terrain height" +msgstr "Výška terénu" #: src/settings_translation_file.cpp -msgid "Defines distribution of higher terrain and steepness of cliffs." -msgstr "" +msgid "Terrain higher noise" +msgstr "Horný Å¡um terénu" #: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" +msgid "Terrain noise" +msgstr "Å um terénu" #: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." msgstr "" +"Prah Å¡umu terénu pre kopce.\n" +"Riadi pomer plochy sveta pokrytého kopcami.\n" +"Uprav smerom k 0.0 pre väÄšà pomer." #: src/settings_translation_file.cpp -msgid "Ridge underwater noise" +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." msgstr "" +"Prah Å¡umu terénu pre jazerá.\n" +"Riadi pomer plochy sveta pokrytého jazerami.\n" +"Uprav smerom k 0.0 pre väÄšà pomer." #: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" +msgid "Terrain persistence noise" +msgstr "StálosÅ¥ Å¡umu terénu" #: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" +msgid "Texture path" +msgstr "Cesta k textúram" #: src/settings_translation_file.cpp msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." +"Textures on a node may be aligned either to the node or to the world.\n" +"The former mode suits better things like machines, furniture, etc., while\n" +"the latter makes stairs and microblocks fit surroundings better.\n" +"However, as this possibility is new, thus may not be used by older servers,\n" +"this option allows enforcing it for certain node types. Note though that\n" +"that is considered EXPERIMENTAL and may not work properly." msgstr "" +"Textúry na kocke môžu byÅ¥ zarovnané buÄ podľa kocky, alebo sveta.\n" +"Kým prvý režim poslúži lepÅ¡ie veciam ako sú stroje, nábytok, atÄ.,\n" +"tak s druhým režimom zapadnú schody a mikrobloky lepÅ¡ie do svojho okolia.\n" +"KeÄže je táto možnosÅ¥ nová, nemusà byÅ¥ použitá na starÅ¡Ãch serveroch,\n" +"toto nastavenie povolà jeho vynútenie pre urÄité typy kociek. Je potrebné\n" +"si uvedomiÅ¥, že táto funkcia je EXPERIMENTÃLNA a nemusà fungovaÅ¥ korektne." #: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" +msgid "The URL for the content repository" +msgstr "Webová adresa (URL) k úložisku doplnkov" #: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" +msgid "The deadzone of the joystick" +msgstr "MÅ•tva zóna joysticku" #: src/settings_translation_file.cpp -msgid "Floatland noise" +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 "" -"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 "" +msgid "The depth of dirt or other biome filler node." +msgstr "Hĺbka zeminy, alebo inej výplne kocky." #: src/settings_translation_file.cpp -msgid "Mapgen Carpathian" +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 "Mapgen Carpathian specific flags" -msgstr "" +msgid "The identifier of the joystick to use" +msgstr "Identifikátor joysticku na použitie" #: src/settings_translation_file.cpp -msgid "Map generation attributes specific to Mapgen Carpathian." +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 "Base ground level" +msgid "" +"The maximum height of the surface of waving liquids.\n" +"4.0 = Wave height is two nodes.\n" +"0.0 = Wave doesn't move at all.\n" +"Default is 1.0 (1/2 node).\n" +"Requires waving liquids to be enabled." msgstr "" +"Maximálna výška povrchu vlniacich sa tekutÃn.\n" +"4.0 = Výška vlny sú dve kocky.\n" +"0.0 = Vlna sa vôbec nehýbe.\n" +"Å tandardná hodnota je 1.0 (1/2 kocky).\n" +"Požaduje, aby boli aktivované vlniace sa tekutiny." #: src/settings_translation_file.cpp -msgid "Defines the base ground level." -msgstr "" +msgid "The network interface that the server listens on." +msgstr "SieÅ¥ové rozhranie, na ktorom server naÄúva." #: src/settings_translation_file.cpp -msgid "River channel width" +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 "Defines the width of the river channel." +msgid "" +"The radius of the volume of blocks around every player that is subject to " +"the\n" +"active block stuff, stated in mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run.\n" +"This is also the minimum range in which active objects (mobs) are " +"maintained.\n" +"This should be configured together with active_object_send_range_blocks." msgstr "" +"Polomer objemu blokov okolo každého hráÄa, ktoré sú predmetom\n" +"záležitostà okolo aktÃvnych objektov, uvádzané v blokoch mapy (16 kociek).\n" +"V objektoch aktÃvnych blokov sú nahrávané a spúšťané ABM.\n" +"Toto je tiež minimálna vzdialenosÅ¥ v ktorej sú aktÃvne objekty (mobovia) " +"zachovávaný.\n" +"Malo by to byÅ¥ konfigurované spolu s active_object_send_range_blocks." #: src/settings_translation_file.cpp -msgid "River channel depth" +msgid "" +"The rendering back-end for Irrlicht.\n" +"A restart is required after changing this.\n" +"Note: On Android, stick with OGLES1 if unsure! App may fail to start " +"otherwise.\n" +"On other platforms, OpenGL is recommended.\n" +"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)" msgstr "" +"Renderovacà back-end pre Irrlicht.\n" +"Po zmene je vyžadovaný reÅ¡tart.\n" +"Poznámka: Na 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 "Defines the depth of the river channel." +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 "River valley width" +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." msgstr "" +"Úroveň tieňovania ambient-occlusion kocky (tmavosÅ¥).\n" +"Nižšia hodnota je tmavÅ¡ie, vyššia svetlejÅ¡ie.\n" +"Platý rozsah hodnôt je od 0.25 po 0.4 vrátane.\n" +"Ak je hodnota mimo rozsah, bude nastavená na najbližšiu platnú hodnotu." #: src/settings_translation_file.cpp -msgid "Defines the width of the river valley." +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." msgstr "" +"ÄŒas (c sekundách) kedy fronta tekutÃn môže narastaÅ¥ nad kapacitu\n" +"spracovania než bude urobený pokus o jej znÞenie zruÅ¡enÃm starých\n" +"vecà z fronty. Hodnota 0 vypne túto funkciu." #: src/settings_translation_file.cpp -msgid "Hilliness1 noise" +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 "First of 4 2D noises that together define hill/mountain range height." +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 "Hilliness2 noise" +msgid "" +"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 "Second of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgid "The type of joystick" +msgstr "Typ joysticku" #: src/settings_translation_file.cpp -msgid "Hilliness3 noise" +msgid "" +"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n" +"enabled. Also the vertical distance over which humidity drops by 10 if\n" +"'altitude_dry' is enabled." msgstr "" +"Vertikálna vzdialenosÅ¥ kedy poklesne teplota o 20 ak je 'altitude_chill'\n" +"aktÃvne. Tiež je to vertikálna vzdialenosÅ¥ kedy poklesne vlhkosÅ¥ o 10,\n" +"ak je 'altitude_dry' aktÃvne." #: src/settings_translation_file.cpp msgid "Third of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgstr "Tretà zo 4 2D Å¡umov, ktoré spolu definujú rozsah výšok kopcov/hôr." #: src/settings_translation_file.cpp -msgid "Hilliness4 noise" +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 "Fourth of 4 2D noises that together define hill/mountain range height." -msgstr "" +msgid "Time of day when a new world is started, in millihours (0-23999)." +msgstr "ÄŒas pri spustenà nového sveta, v milihodinách (0-23999)." #: src/settings_translation_file.cpp -msgid "Rolling hills spread noise" -msgstr "" +msgid "Time send interval" +msgstr "Interval posielania Äasu" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of rolling hills." -msgstr "" +msgid "Time speed" +msgstr "RýchlosÅ¥ Äasu" #: src/settings_translation_file.cpp -msgid "Ridge mountain spread noise" +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 "2D noise that controls the size/occurrence of ridged mountain ranges." +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." msgstr "" +"Pre znÞenie lagu, prenos blokov je spomalený, keÄ hrÃ¡Ä nieÄo stavia.\n" +"Toto urÄuje ako dlho je spomalený po vloženÃ, alebo zmazanà kocky." #: src/settings_translation_file.cpp -msgid "Step mountain spread noise" -msgstr "" +msgid "Toggle camera mode key" +msgstr "TlaÄidlo Prepnutie režimu zobrazenia" #: src/settings_translation_file.cpp -msgid "2D noise that controls the size/occurrence of step mountain ranges." -msgstr "" +msgid "Tooltip delay" +msgstr "Oneskorenie popisku" #: src/settings_translation_file.cpp -msgid "Rolling hill size noise" -msgstr "" +msgid "Touch screen threshold" +msgstr "Prah citlivosti dotykovej obrazovky" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of rolling hills." -msgstr "" +msgid "Trees noise" +msgstr "Å um stromov" #: src/settings_translation_file.cpp -msgid "Ridged mountain size noise" -msgstr "" +msgid "Trilinear filtering" +msgstr "Trilineárne filtrovanie" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of ridged mountains." +msgid "" +"True = 256\n" +"False = 128\n" +"Usable to make minimap smoother on slower machines." msgstr "" +"Pravda = 256\n" +"Nepravda = 128\n" +"UžitoÄné pre plynulejÅ¡iu minimapu na pomalÅ¡Ãch strojoch." #: src/settings_translation_file.cpp -msgid "Step mountain size noise" -msgstr "" +msgid "Trusted mods" +msgstr "Dôveryhodné rozÅ¡Ãrenia" #: src/settings_translation_file.cpp -msgid "2D noise that controls the shape/size of step mountains." +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 "River noise" -msgstr "" +msgid "Undersampling" +msgstr "Podvzorkovanie" #: src/settings_translation_file.cpp -msgid "2D noise that locates the river valleys and channels." +msgid "" +"Undersampling is similar to using a lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give a significant performance boost at the cost of less detailed " +"image.\n" +"Higher values result in a less detailed image." msgstr "" +"Podvzorkovanie je podobné ako použiÅ¥ obrazovku s nižšÃm rozlÃÅ¡enÃm, ale\n" +"aplikuje sa len na samotný svet, priÄom GUI ostáva nezmenené.\n" +"Malo by poskytnúť výrazné zvýšenie výkonu za cenu nižšÃch detailov obrazu.\n" +"Vyššie hodnotu vedú k menej detailnému obrazu." #: src/settings_translation_file.cpp -msgid "Mountain variation noise" -msgstr "" +msgid "Unlimited player transfer distance" +msgstr "Neobmedzená vzdialenosÅ¥ zobrazenia hráÄa" #: src/settings_translation_file.cpp -msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations." -msgstr "" +msgid "Unload unused server data" +msgstr "Uvoľni nepoužÃvané serverové dáta" #: src/settings_translation_file.cpp -msgid "Mapgen Flat" -msgstr "" +msgid "Upper Y limit of dungeons." +msgstr "Horný Y limit kobiek." #: src/settings_translation_file.cpp -msgid "Mapgen Flat specific flags" -msgstr "" +msgid "Upper Y limit of floatlands." +msgstr "Horný Y limit lietajúcich pevnÃn." #: 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 "" +msgid "Use 3D cloud look instead of flat." +msgstr "Použi 3D mraky namiesto plochých." #: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" +msgid "Use a cloud animation for the main menu background." +msgstr "Použi animáciu mrakov pre pozadie hlavného menu." #: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "Použi anisotropné filtrovanie pri pohľade na textúry zo strany." #: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" +msgid "Use bilinear filtering when scaling textures." +msgstr "Použi bilineárne filtrovanie pri zmene mierky textúr." #: 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." +"Use mip mapping to scale textures. May slightly increase performance,\n" +"especially when using a high resolution texture pack.\n" +"Gamma correct downscaling is not supported." msgstr "" +"Použi mip mapy pre úpravu textúr. Môže jemne zvýšiÅ¥ výkon,\n" +"obzvlášť použità balÃÄka textúr s vysokým rozlÃÅ¡enÃm.\n" +"Gama korektné podvzorkovanie nie je podporované." #: src/settings_translation_file.cpp -msgid "Lake steepness" +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 "Controls steepness/depth of lake depressions." -msgstr "" +msgid "Use trilinear filtering when scaling textures." +msgstr "Použi trilineárne filtrovanie pri zmene mierky textúr." #: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" +msgid "VBO" +msgstr "VBO" #: 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 "" +msgid "VSync" +msgstr "VSync" #: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" +msgid "Valley depth" +msgstr "Hĺbka údolia" #: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" +msgid "Valley fill" +msgstr "Výplň údolÃ" #: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" +msgid "Valley profile" +msgstr "Profil údolia" #: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" +msgid "Valley slope" +msgstr "Sklon údolia" #: src/settings_translation_file.cpp -msgid "Mapgen Fractal" -msgstr "" +msgid "Variation of biome filler depth." +msgstr "Odchýlka hĺbky výplne biómu." #: src/settings_translation_file.cpp -msgid "Mapgen Fractal specific flags" -msgstr "" +msgid "Variation of maximum mountain height (in nodes)." +msgstr "Obmieňa maximálnu výšku hôr (v kockách)." + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "RôznosÅ¥ poÄtu jaskýň." #: src/settings_translation_file.cpp msgid "" -"Map generation attributes specific to Mapgen Fractal.\n" -"'terrain' enables the generation of non-fractal terrain:\n" -"ocean, islands and underground." +"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 "Fractal type" -msgstr "" +msgid "Varies depth of biome surface nodes." +msgstr "Pozmeňuje hĺbku povrchových kociek biómu." #: 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." +"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 "Iterations" -msgstr "" +msgid "Varies steepness of cliffs." +msgstr "Pozmeňuje strmosÅ¥ útesov." #: 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 "" +msgid "Vertical climbing speed, in nodes per second." +msgstr "Vertikálna rýchlosÅ¥ Å¡plhania, v kockách za sekundu." #: src/settings_translation_file.cpp -msgid "" -"(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 "" +msgid "Vertical screen synchronization." +msgstr "Vertikálna synchronizácia obrazovky." #: 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 "" +msgid "Video driver" +msgstr "Grafický ovládaÄ" #: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" +msgid "View bobbing factor" +msgstr "Faktor pohupovania sa" #: 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 "" +msgid "View distance in nodes." +msgstr "VzdialenosÅ¥ dohľadu v kockách." #: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" +msgid "View range decrease key" +msgstr "TlaÄidlo ZnÞ dohľad" #: 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 "" +msgid "View range increase key" +msgstr "TlaÄidlo Zvýš dohľad" #: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" +msgid "View zoom key" +msgstr "TlaÄidlo PriblÞenie pohľadu" #: 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 "" +msgid "Viewing range" +msgstr "VzdialenosÅ¥ dohľadu" #: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" +msgid "Virtual joystick triggers aux button" +msgstr "Virtuálny joystick stlaÄà tlaÄidlo aux" #: 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 "" +msgid "Volume" +msgstr "HlasitosÅ¥" #: src/settings_translation_file.cpp -msgid "Julia w" +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 "" -"Julia set only.\n" -"W component of hypercomplex constant.\n" +"W coordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" "Alters the shape of the fractal.\n" "Has no effect on 3D fractals.\n" "Range roughly -2 to 2." msgstr "" +"W koordináty generovaného 3D plátku v 4D fraktáli.\n" +"UrÄuje, ktorý 3D plátok z 4D tvaru je generovaný.\n" +"Zmenà tvar fraktálu.\n" +"Nemá vplyv na 3D fraktály.\n" +"Rozsah zhruba -2 až 2." #: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" +msgid "Walking and flying speed, in nodes per second." +msgstr "RýchlosÅ¥ chôdze a lietania, v kockách za sekundu." #: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" +msgid "Walking speed" +msgstr "RýchlosÅ¥ chôdze" #: src/settings_translation_file.cpp -msgid "Mapgen Valleys" +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 "Mapgen Valleys specific flags" -msgstr "" +msgid "Water level" +msgstr "Úroveň vody" #: 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 "" +msgid "Water surface level of the world." +msgstr "Hladina povrchovej vody vo svete." #: 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 "" +msgid "Waving Nodes" +msgstr "Vlniace sa kocky" #: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" +msgid "Waving leaves" +msgstr "Vlniace sa listy" #: src/settings_translation_file.cpp -msgid "Cavern upper limit" -msgstr "" +msgid "Waving liquids" +msgstr "Vlniace sa tekutiny" #: src/settings_translation_file.cpp -msgid "Depth below which you'll find giant caverns." -msgstr "" +msgid "Waving liquids wave height" +msgstr "Výška vlnenia sa tekutÃn" #: src/settings_translation_file.cpp -msgid "River depth" -msgstr "" +msgid "Waving liquids wave speed" +msgstr "RýchlosÅ¥ vlny tekutÃn" #: src/settings_translation_file.cpp -msgid "How deep to make rivers." -msgstr "" +msgid "Waving liquids wavelength" +msgstr "Vlnová dĺžka vlniacich sa tekutÃn" #: src/settings_translation_file.cpp -msgid "River size" -msgstr "" +msgid "Waving plants" +msgstr "Vlniace sa rastliny" #: src/settings_translation_file.cpp -msgid "How wide to make rivers." +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." msgstr "" +"Ake je gui_scaling_filter povolený, vÅ¡etky GUI obrázky potrebujú byÅ¥\n" +"filtrované softvérom, ale niektoré obrázky sú generované priamo\n" +"pre hardvér (napr. render-to-texture pre kocky v inventári)." #: src/settings_translation_file.cpp -msgid "Cave noise #1" +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." msgstr "" +"Ake je gui_scaling_filter_txr2img povolený, nakopÃruj tieto obrázky\n" +"z hardvéru do softvéru pre zmenu mierky. Ak za vypnutý, vráť sa\n" +"k starej metóde zmeny mierky, pre grafické ovládaÄe, ktoré dostatoÄne\n" +"nepodporujú sÅ¥ahovanie textúr z hardvéru." #: src/settings_translation_file.cpp -msgid "Cave noise #2" +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled.\n" +"This is also used as the base node texture size for world-aligned\n" +"texture autoscaling." msgstr "" +"Pri použità bilineárneho/trilineárneho/anisotropného filtra, textúry s " +"nÃzkym\n" +"rozlÃÅ¡enÃm môžu byÅ¥ rozmazané, tak sa automaticky upravia interpoláciou\n" +"s najbližšÃm susedom aby bola zachovaná ostrosÅ¥ pixelov.\n" +"Toto nastavà minimálnu veľkosÅ¥ pre upravenú textúru;\n" +"vyššia hodnota znamená ostrejšà vzhľad, ale potrebuje viac pamäti.\n" +"OdporúÄané sú mocniny 2. Nastavenie viac než 1 nemusà maÅ¥ viditeľný efekt,\n" +"kým nie je použité bilineárne/trilineárne/anisotropné filtrovanie.\n" +"Toto sa tiež použÃva ako základná veľkosÅ¥ textúry kociek pre\n" +"\"world-aligned autoscaling\" textúr." #: src/settings_translation_file.cpp -msgid "Filler depth" +msgid "" +"Whether FreeType fonts are used, requires FreeType support to be compiled " +"in.\n" +"If disabled, bitmap and XML vectors fonts are used instead." msgstr "" +"Aby boli FreeType pÃsma použité, je nutné aby bola podpora FreeType " +"zakompilovaná.\n" +"Ak je zakázané, budú použité bitmapové a XML vektorové pÃsma." #: src/settings_translation_file.cpp -msgid "The depth of dirt or other biome filler node." +msgid "" +"Whether nametag backgrounds should be shown by default.\n" +"Mods may still set a background." msgstr "" #: src/settings_translation_file.cpp -msgid "Terrain height" -msgstr "" +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "ÄŒi sa nemá animácia textúry kocky synchronizovaÅ¥." #: src/settings_translation_file.cpp -msgid "Base terrain height." +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 "Valley depth" -msgstr "" +msgid "Whether to allow players to damage and kill each other." +msgstr "ÄŒi sa môžu hráÄi navzájom poÅ¡kodzovaÅ¥ a zabiÅ¥." #: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers." +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 "Valley fill" -msgstr "" +msgid "Whether to fog out the end of the visible area." +msgstr "ÄŒi zamlžiÅ¥ okraj viditeľnej oblasti." #: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights." +msgid "" +"Whether to mute sounds. You can unmute sounds at any time, unless the\n" +"sound system is disabled (enable_sound=false).\n" +"In-game, you can toggle the mute state with the mute key or by using the\n" +"pause menu." msgstr "" +"Vypnutie zvukov. Zapnúť zvuky môžeÅ¡ kedykoľvek, pokiaľ\n" +"nie je zakázaný zvukový systém (enable_sound=false).\n" +"V hre môžeÅ¡ zapnúť/vypnúť zvuk tlaÄidlom pre stÃÅ¡enie zvuku, alebo\n" +"pozastavenÃm hry." #: src/settings_translation_file.cpp -msgid "Valley profile" -msgstr "" +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "Zobrazenie ladiaceho okna na klientovi (má rovnaký efekt ako F5)." #: src/settings_translation_file.cpp -msgid "Amplifies the valleys." -msgstr "" +msgid "Width component of the initial window size." +msgstr "Å Ãrka okna po spustenÃ." #: src/settings_translation_file.cpp -msgid "Valley slope" -msgstr "" +msgid "Width of the selection box lines around nodes." +msgstr "Å Ãrka lÃnià obrysu kocky." #: src/settings_translation_file.cpp -msgid "Chunk size" +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." msgstr "" +"Len pre systémy s Windows: Spusti Minetest s oknom prÃkazovej riadky na " +"pozadÃ.\n" +"Obsahuje tie isté informácie ako súbor debug.txt (Å¡tandardný názov)." #: src/settings_translation_file.cpp msgid "" -"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." +"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 "Mapgen debug" -msgstr "" +msgid "World start time" +msgstr "PoÄiatoÄný Äas sveta" #: src/settings_translation_file.cpp -msgid "Dump the mapgen debug information." +msgid "" +"World-aligned textures may be scaled to span several nodes. However,\n" +"the server may not send the scale you want, especially if you use\n" +"a specially-designed texture pack; with this option, the client tries\n" +"to determine the scale automatically basing on the texture size.\n" +"See also texture_min_size.\n" +"Warning: This option is EXPERIMENTAL!" msgstr "" +"Textúry zarovnané podľa sveta môžu byÅ¥ zväÄÅ¡ené aby pokryli niekoľko " +"kociek.\n" +"AvÅ¡ak server nemusà poslaÅ¥ mierku akú potrebujeÅ¡, obzvlášť ak použÃvaÅ¡\n" +"Å¡peciálne dizajnovaný balÃÄek textúr; s týmto nastavenÃm, sa klient pokúsi\n" +"urÄiÅ¥ mierku automaticky na základe veľkosti textúry.\n" +"ViÄ. tiež texture_min_size.\n" +"Varovanie: Toto nastavenie je EXPERIMENTÃLNE!" #: src/settings_translation_file.cpp -msgid "Absolute limit of queued blocks to emerge" -msgstr "" +msgid "World-aligned textures mode" +msgstr "Režim zarovnaných textúr podľa sveta" #: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" +msgid "Y of flat ground." +msgstr "Y plochej zeme." #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks load from disk" +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 "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"This limit is enforced per player." -msgstr "" +msgid "Y of upper limit of large caves." +msgstr "Horný Y limit veľkých jaskýň." #: src/settings_translation_file.cpp -msgid "Per-player limit of queued blocks to generate" -msgstr "" +msgid "Y-distance over which caverns expand to full size." +msgstr "Y-nová vzdialenosÅ¥ nad ktorou dutiny expandujú do plnej veľkosti." #: src/settings_translation_file.cpp msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"This limit is enforced per player." +"Y-distance over which floatlands taper from full density to nothing.\n" +"Tapering starts at this distance from the Y limit.\n" +"For a solid floatland layer, this controls the height of hills/mountains.\n" +"Must be less than or equal to half the distance between the Y limits." msgstr "" +"Y-vzdialenosÅ¥ kde sa lietajúce pevniny zužujú od plnej hustoty po niÄ.\n" +"Zužovanie zaÄÃna na tejto vzdialenosti z Y limitu.\n" +"Pre jednoznaÄnosÅ¥ vrstvy lietajúcej krajiny, toto riadi výšku kopcov/hôr.\n" +"Musà byÅ¥ menej ako, alebo rovnako ako polovica vzdialenosti medzi Y limitami." #: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" +msgid "Y-level of average terrain surface." +msgstr "Y-úroveň priemeru povrchu terénu." #: 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 "" +msgid "Y-level of cavern upper limit." +msgstr "Y-úroveň horného limitu dutÃn." #: src/settings_translation_file.cpp -msgid "Online Content Repository" -msgstr "" +msgid "Y-level of higher terrain that creates cliffs." +msgstr "Y-úroveň horného terénu, ktorý tvorà útesy/skaly." #: src/settings_translation_file.cpp -msgid "ContentDB URL" -msgstr "" +msgid "Y-level of lower terrain and seabed." +msgstr "Y-úroveň dolnej Äasti terénu a morského dna." #: src/settings_translation_file.cpp -msgid "The URL for the content repository" -msgstr "" +msgid "Y-level of seabed." +msgstr "Y-úroveň morského dna." #: src/settings_translation_file.cpp -msgid "ContentDB Flag Blacklist" +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 "" -"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/" +"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 "cURL Äasový rámec sÅ¥ahovania súborov" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "Paralelný limit cURL" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "ÄŒasový rámec cURL" + +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion s informácia o sklone (rýchlejÅ¡ie).\n" +#~ "1 = mapovanie reliéfu (pomalÅ¡ie, presnejÅ¡ie)." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Si si istý, že chceÅ¡ vynulovaÅ¥ svoj svet jedného hráÄa?" + +#~ msgid "Bump Mapping" +#~ msgstr "Bump Mapping (Ilúzia nerovnosti)" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" + +#~ msgid "" +#~ "Changes the main menu UI:\n" +#~ "- Full: Multiple singleplayer worlds, game choice, texture pack " +#~ "chooser, etc.\n" +#~ "- Simple: One singleplayer world, no game or texture pack choosers. May " +#~ "be\n" +#~ "necessary for smaller screens." +#~ msgstr "" +#~ "Zmenà užÃvateľské rozhranie (UI) hlavného menu:\n" +#~ "- Plné: Viacero svetov, voľby hry, voľba balÃÄka textúr, atÄ.\n" +#~ "- Jednoduché: Jeden svet, bez herných volieb, alebo voľby textúr. Môže " +#~ "byÅ¥\n" +#~ "nevyhnutné pre malé obrazovky." + +#~ msgid "Config mods" +#~ msgstr "Nastav rozÅ¡Ãrenia" + +#~ msgid "Configure" +#~ msgstr "Konfigurácia" + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Farba zameriavaÄa (R,G,B)." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definuje vzorkovacà krok pre textúry.\n" +#~ "Vyššia hodnota vedie k jemnejÅ¡Ãm normálovým mapám." + +#~ msgid "" +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktivuje bumpmapping pre textúry. Normálové mapy musia byÅ¥ dodané v " +#~ "balÃÄku textúr.\n" +#~ "alebo musia byÅ¥ automaticky generované.\n" +#~ "Vyžaduje aby boli shadery aktivované." + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "Aktivuje generovanie normálových máp za behu (efekt reliéfu).\n" +#~ "Požaduje aby bol aktivovaný bumpmapping." + +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "Aktivuj parallax occlusion mapping.\n" +#~ "Požaduje aby boli aktivované shadery." + +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Experimentálne nastavenie, môže spôsobiÅ¥ viditeľné medzery\n" +#~ "medzi blokmi, ak je nastavené väÄÅ¡ie než 0." + +#~ msgid "FPS in pause menu" +#~ msgstr "FPS v menu pozastavenia hry" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal Maps (nerovnosti)" + +#~ msgid "Generate normalmaps" +#~ msgstr "Generuj normálové mapy" + +#~ msgid "Main" +#~ msgstr "Hlavné" + +#~ msgid "Main menu style" +#~ msgstr "Å týl hlavného menu" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Minimapa v radarovom režime, priblÞenie x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Minimapa v radarovom režime, priblÞenie x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Minimapa v povrchovom režime, priblÞenie x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Minimapa v povrchovom režime, priblÞenie x4" + +#~ msgid "Name/Password" +#~ msgstr "Meno/Heslo" + +#~ msgid "No" +#~ msgstr "Nie" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Vzorkovanie normálových máp" + +#~ msgid "Normalmaps strength" +#~ msgstr "Intenzita normálových máp" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "PoÄet opakovanà výpoÄtu parallax occlusion." + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Celkové skreslenie parallax occlusion efektu, obvykle mierka/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Celková mierka parallax occlusion efektu." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion (nerovnosti)" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Skreslenie parallax occlusion" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Opakovania parallax occlusion" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Režim parallax occlusion" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Mierka parallax occlusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Vynuluj svet jedného hráÄa" + +#~ msgid "Start Singleplayer" +#~ msgstr "Spusti hru pre jedného hráÄa" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Intenzita generovaných normálových máp." + +#~ msgid "View" +#~ msgstr "ZobraziÅ¥" + +#~ msgid "Yes" +#~ msgstr "Ãno" diff --git a/po/sl/minetest.po b/po/sl/minetest.po index 16d224c40..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2019-11-29 23:04+0000\n" -"Last-Translator: Matej Mlinar <mlinar.matej@gmail.com>\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 <iztok.bajcar@gmail.com>\n" "Language-Team: Slovenian <https://hosted.weblate.org/projects/minetest/" "minetest/sl/>\n" "Language: sl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3;\n" -"X-Generator: Weblate 3.10-dev\n" +"X-Generator: Weblate 4.3-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -25,7 +25,7 @@ msgstr "Umrl si" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "V redu" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -47,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. " @@ -64,12 +60,6 @@ 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." @@ -77,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 @@ -87,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:" @@ -117,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:" @@ -144,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:" @@ -164,16 +156,57 @@ 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 @@ -194,6 +227,16 @@ 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" msgstr "Prilagoditve (mods)" @@ -207,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" @@ -224,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 @@ -232,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" @@ -244,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 @@ -257,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" @@ -268,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" @@ -281,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)" @@ -300,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" @@ -329,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 @@ -338,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" @@ -354,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 @@ -375,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" @@ -401,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 @@ -414,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 @@ -472,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" @@ -497,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" @@ -529,6 +600,10 @@ 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" @@ -538,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." @@ -592,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)" @@ -645,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" @@ -698,6 +789,17 @@ msgid "Credits" msgstr "Zasluge" #: builtin/mainmenu/tab_credits.lua +#, 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 msgid "Previous Contributors" msgstr "Predhodni sodelavci" @@ -714,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" @@ -735,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 +848,11 @@ 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 +861,11 @@ 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:" @@ -773,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" @@ -797,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 +943,6 @@ 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" @@ -846,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 +963,6 @@ 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 +971,6 @@ 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" @@ -906,19 +998,11 @@ 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,8 +1015,13 @@ 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" @@ -955,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" @@ -974,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." @@ -1146,20 +1220,20 @@ msgid "Continue" msgstr "Nadaljuj" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1187,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 "" @@ -1308,34 +1384,6 @@ 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" @@ -1370,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" @@ -1399,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" @@ -1430,8 +1479,9 @@ msgid "Volume changed to %d%%" msgstr "Glasnost zvoka je nastavljena na %d %%" #: src/client/game.cpp +#, fuzzy msgid "Wireframe shown" -msgstr "" +msgstr "ŽiÄnati prikaz omogoÄen" #: src/client/game.cpp msgid "Zoom currently disabled by game or mod" @@ -1458,13 +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" @@ -1511,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" @@ -1632,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" @@ -1729,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!" @@ -1831,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" @@ -1947,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 "" @@ -1954,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 "" @@ -1966,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 "" @@ -1977,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." @@ -1990,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" @@ -2022,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 "" @@ -2041,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 "" @@ -2077,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." @@ -2091,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 @@ -2099,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" @@ -2127,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 @@ -2172,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" @@ -2192,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." @@ -2205,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" @@ -2231,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" @@ -2264,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" @@ -2284,7 +2411,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Bilinear filtering" -msgstr "" +msgstr "Bilinearno filtriranje" #: src/settings_translation_file.cpp msgid "Bind address" @@ -2295,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" @@ -2308,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 @@ -2321,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" @@ -2329,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" @@ -2376,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" @@ -2408,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 @@ -2459,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" @@ -2471,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" @@ -2543,7 +2669,7 @@ msgstr "" #: src/settings_translation_file.cpp msgid "Command key" -msgstr "" +msgstr "Tipka Command" #: src/settings_translation_file.cpp msgid "Connect glass" @@ -2564,17 +2690,21 @@ 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" msgstr "ContentDB URL" @@ -2590,8 +2720,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy msgid "Controls" -msgstr "" +msgstr "Kontrole" #: src/settings_translation_file.cpp msgid "" @@ -2602,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 "" @@ -2632,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 @@ -2640,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 @@ -2744,14 +2879,6 @@ 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." @@ -2824,6 +2951,11 @@ 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" @@ -2884,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 @@ -2972,14 +3105,6 @@ 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 +3114,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3017,12 +3130,6 @@ 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" @@ -3032,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 @@ -3345,10 +3452,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3402,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 "" @@ -3889,6 +3992,10 @@ 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 "" @@ -3969,6 +4076,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4068,6 +4182,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4624,10 +4745,6 @@ 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." msgstr "" @@ -4641,6 +4758,14 @@ 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 "" @@ -4805,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 @@ -4854,6 +4979,13 @@ msgid "" 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 "" @@ -5083,14 +5215,6 @@ 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 "" @@ -5116,10 +5240,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5145,35 +5265,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5239,6 +5330,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5397,10 +5497,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5652,6 +5748,16 @@ 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 "" @@ -5787,10 +5893,6 @@ 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" @@ -5884,6 +5986,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5942,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 @@ -5969,15 +6075,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6113,6 +6224,17 @@ msgid "" 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 "" @@ -6319,6 +6441,12 @@ msgid "" 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 "" @@ -6441,6 +6569,24 @@ 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 "" @@ -6452,27 +6598,116 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ msgstr "Preklopi gladek pogled" +#, 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 "Select Package File:" -#~ msgstr "Izberi datoteko paketa:" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Ali res želiÅ¡ ponastaviti samostojno igro?" -#~ msgid "IPv6 support." -#~ msgstr "IPv6 podpora." +#~ msgid "Back" +#~ msgstr "Nazaj" -#, fuzzy -#~ msgid "Enable VBO" -#~ msgstr "OmogoÄi VBO" +#~ 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..." -#~ msgid "Back" -#~ msgstr "Nazaj" +#, 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 67ee37bd0..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-06-13 23:17+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 <sfan5@live.de>\n" "Language-Team: Serbian (cyrillic) <https://hosted.weblate.org/projects/" @@ -50,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 "ÐеÑлагање верзија протокола. " @@ -67,12 +63,6 @@ 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 верзију протокола." @@ -80,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 @@ -90,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 "ЗавиÑи од:" @@ -173,15 +165,56 @@ 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 "" @@ -205,6 +238,16 @@ msgid "Install" msgstr "ИнÑталирај" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "ИнÑталирај" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Ðеобавезне завиÑноÑти:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Модови" @@ -218,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 @@ -237,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 @@ -547,6 +609,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Тражи" + +#: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" msgstr "Изаберите фајл мода:" @@ -681,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 "" @@ -741,6 +821,17 @@ msgid "Credits" msgstr "ЗаÑлуге" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Изаберите фајл мода:" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Предходни Ñарадници" @@ -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" @@ -794,6 +881,11 @@ msgstr "Ðиједан Ñвет није направљен или изабраР#: builtin/mainmenu/tab_local.lua #, fuzzy +msgid "Password" +msgstr "Ðова шифра" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Play Game" msgstr "Почни игру" @@ -802,6 +894,11 @@ 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 "Туча омогућена" @@ -882,10 +979,6 @@ 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 "ÐутоматÑки Ñачувај величину екрана" @@ -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 "ПодеÑи контроле" @@ -911,10 +1000,6 @@ msgid "Fancy Leaves" msgstr "Елегантно лишће" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Мипмап" @@ -923,10 +1008,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Ðнизотропни филтер" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Ðе" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Без филтера" @@ -954,19 +1035,11 @@ 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 "Екран:" @@ -979,6 +1052,10 @@ 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 "Конекцији је иÑтекло време." @@ -1201,20 +1262,20 @@ msgid "Continue" msgstr "ÐаÑтави" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1367,34 +1428,6 @@ 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 "" @@ -1792,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 "Шифре Ñе не поклапају!" @@ -2055,14 +2106,6 @@ msgid "" 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 "" @@ -2180,6 +2223,10 @@ 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" msgstr "ÐбÑолутни лимит emerge токова." @@ -2434,10 +2481,6 @@ 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" @@ -2509,16 +2552,6 @@ 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 "Величина комада" @@ -2682,6 +2715,10 @@ 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" msgstr "ÐаÑтави" @@ -2743,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 @@ -2751,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" @@ -2855,12 +2897,6 @@ 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 "" @@ -2931,6 +2967,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp #, fuzzy msgid "Digging particles" msgstr "ЧеÑтице" @@ -2993,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 @@ -3081,14 +3121,6 @@ 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 "" @@ -3098,18 +3130,6 @@ 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" @@ -3126,12 +3146,6 @@ 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" @@ -3141,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 @@ -3447,10 +3461,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3505,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 "" @@ -3976,6 +3986,10 @@ 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 "" @@ -4056,6 +4070,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4155,6 +4176,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4712,11 +4740,6 @@ 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." msgstr "" @@ -4730,6 +4753,14 @@ 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 "" @@ -4899,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 @@ -4948,6 +4979,13 @@ msgid "" 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 "" @@ -5177,14 +5215,6 @@ 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 "" @@ -5210,10 +5240,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5239,35 +5265,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5334,6 +5331,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5492,10 +5498,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5769,6 +5771,16 @@ 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 "" @@ -5900,10 +5912,6 @@ 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" @@ -5997,6 +6005,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6055,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 @@ -6082,15 +6094,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6228,6 +6245,17 @@ msgid "" 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 "" @@ -6434,6 +6462,12 @@ msgid "" 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 "" @@ -6558,6 +6592,24 @@ 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 "" @@ -6569,15 +6621,38 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ msgstr "Укључи/ИÑкључи Cinematic мод" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion Ñа информацијама о нагибима (брже)\n" +#~ "1 = мапирање рељефа (Ñпорије, прецизније)." -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Изаберите фајл мода:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "ПодеÑи оÑветљење унутар игре. Веће вредноÑти Ñу Ñветлије.\n" +#~ "Ово подешавање је Ñамо за клијента, Ñервер га игнорише." -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "Контролише ширину тунела, мања вредноÑÑ‚ Ñтвара шире тунеле." +#~ 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 "" @@ -6587,20 +6662,51 @@ msgstr "" #~ "Контролише гуÑтину планинÑког терена на лебдећим оÑтрвима.\n" #~ "Као одÑтупање Ñе додаје на вредноÑÑ‚ 'np_mountain' Ñемена." -#~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." -#~ msgstr "" -#~ "ПодеÑи оÑветљење унутар игре. Веће вредноÑти Ñу Ñветлије.\n" -#~ "Ово подешавање је Ñамо за клијента, Ñервер га игнорише." +#~ msgid "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 "Back" -#~ msgstr "Ðазад" +#~ 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/lo/minetest.po b/po/sr_Latn/minetest.po index 731a7957d..7c5ad11fc 100644 --- a/po/lo/minetest.po +++ b/po/sr_Latn/minetest.po @@ -1,80 +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 <EMAIL@ADDRESS>, YEAR. +# msgid "" msgstr "" -"Project-Id-Version: Lao (Minetest)\n" +"Project-Id-Version: minetest\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-11 18:26+0000\n" -"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n" -"Language-Team: Lao <https://hosted.weblate.org/projects/minetest/minetest/lo/" -">\n" -"Language: lo\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" +"PO-Revision-Date: 2020-08-15 23:32+0000\n" +"Last-Translator: Milos <milosfilic97@gmail.com>\n" +"Language-Team: Serbian (latin) <https://hosted.weblate.org/projects/minetest/" +"minetest/sr_Latn/>\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=1; plural=0;\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 "" +msgstr "Vrati se u zivot" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "You died" -msgstr "" +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 @@ -82,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 "Texture packs" +msgid "Please check that the base game is correct." msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -msgid "Uninstall" +msgid "Queued" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua +msgid "Texture packs" +msgstr "Pakovanja tekstura" + +#: builtin/mainmenu/dlg_contentstore.lua +msgid "Uninstall" +msgstr "Deinstaliraj" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "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 @@ -224,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" @@ -256,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" @@ -264,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" @@ -288,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" @@ -316,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" @@ -324,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" @@ -340,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 @@ -361,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." @@ -411,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\"?" @@ -510,6 +583,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Trazi" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -624,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 "" @@ -677,6 +768,16 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -693,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 "" @@ -717,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 +826,10 @@ 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 +838,10 @@ msgid "Port" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -752,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 "" @@ -776,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 +919,6 @@ 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 +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 +939,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -854,10 +947,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -885,19 +974,11 @@ 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 +991,11 @@ 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 "" @@ -953,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 "" @@ -1039,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 "" @@ -1128,13 +1198,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1256,34 +1326,6 @@ 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 "" @@ -1675,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 "" @@ -1880,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 "lo" +msgstr "sr_Latn" #: src/settings_translation_file.cpp msgid "" @@ -1919,12 +1979,6 @@ msgid "" 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 "" @@ -2031,6 +2085,10 @@ 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 "" @@ -2264,10 +2322,6 @@ 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" @@ -2338,16 +2392,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2499,6 +2543,10 @@ 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 "" @@ -2555,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 @@ -2563,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 @@ -2663,12 +2715,6 @@ 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 "" @@ -2739,6 +2785,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2799,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 @@ -2887,14 +2937,6 @@ 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 "" @@ -2904,18 +2946,6 @@ 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" @@ -2932,12 +2962,6 @@ 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" @@ -2947,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 @@ -3249,10 +3273,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3306,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 "" @@ -3774,6 +3794,10 @@ 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 "" @@ -3854,6 +3878,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3953,6 +3984,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4509,10 +4547,6 @@ 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 "" @@ -4526,6 +4560,14 @@ 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 "" @@ -4689,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 @@ -4738,6 +4780,13 @@ msgid "" 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 "" @@ -4967,14 +5016,6 @@ 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 "" @@ -5000,10 +5041,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5029,34 +5066,6 @@ msgid "" 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" @@ -5122,6 +5131,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5277,10 +5294,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5532,6 +5545,16 @@ 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 "" @@ -5661,10 +5684,6 @@ 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" @@ -5758,6 +5777,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5816,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 @@ -5843,15 +5866,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -5987,6 +6015,17 @@ msgid "" 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 "" @@ -6189,6 +6228,12 @@ msgid "" 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 "" @@ -6311,6 +6356,24 @@ 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 "" @@ -6321,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 296e0b5bb..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-06-13 23:17+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 <sfan5@live.de>\n" "Language-Team: Swedish <https://hosted.weblate.org/projects/minetest/" @@ -47,10 +47,6 @@ msgstr "Ã…teranslut" msgid "The server has requested a reconnect:" msgstr "Servern har begärt en Ã¥teranslutning:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Laddar..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Protokollversionen matchar ej. " @@ -64,11 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. " msgstr "Servern stöder protokollversioner mellan $1 och $2. " #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Försök Ã¥teraktivera allmän serverlista och kolla din internetanslutning." - -#: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Vi stöder endast protokollversion $1." @@ -76,7 +67,8 @@ msgstr "Vi stöder endast protokollversion $1." msgid "We support protocol versions between version $1 and $2." msgstr "Vi stöder protokollversioner mellan version $1 och $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 @@ -86,7 +78,8 @@ msgstr "Vi stöder protokollversioner mellan version $1 och $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 "Beroenden:" @@ -163,14 +156,55 @@ msgid "enabled" msgstr "aktiverad" #: 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 "Laddar..." + +#: 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 "Alla paket" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Already installed" +msgstr "Tangent används redan" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "Back to Main Menu" msgstr "Tillbaka till huvudmeny" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Bilda Spel" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -193,6 +227,16 @@ msgid "Install" msgstr "Installera" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Installera" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Valfria beroenden:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Moddar" @@ -206,9 +250,25 @@ msgid "No results" msgstr "Inga resultat" #: 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 "Uppdatera" + +#: 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" @@ -223,7 +283,11 @@ msgid "Update" msgstr "Uppdatera" #: 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 @@ -532,6 +596,10 @@ 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 "Välj katalog" @@ -661,6 +729,19 @@ msgstr "Misslyckades installera $1 till $2" msgid "Unable to install a modpack as a $1" msgstr "Misslyckades installera $1 till $2" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Laddar..." + +#: 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 "" +"Försök Ã¥teraktivera allmän serverlista och kolla din internetanslutning." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -721,6 +802,17 @@ msgid "Credits" msgstr "Medverkande" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Välj 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 msgid "Previous Contributors" msgstr "Före detta bidragande" @@ -737,14 +829,10 @@ msgid "Bind Address" msgstr "Bindningsadress" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurera" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Kreativt läge" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Aktivera Skada" @@ -761,8 +849,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Namn/Lösenord" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -774,6 +862,11 @@ msgstr "Ingen värld skapad eller vald!" #: builtin/mainmenu/tab_local.lua #, fuzzy +msgid "Password" +msgstr "Nytt Lösenord" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Play Game" msgstr "Starta spel" @@ -782,6 +875,11 @@ msgid "Port" msgstr "Port" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Välj värld:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Välj värld:" @@ -798,23 +896,23 @@ msgstr "Bilda Spel" msgid "Address / Port" msgstr "Adress / Port" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Anslut" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Kreativt läge" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Skada aktiverat" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Radera Favorit" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Favoritmarkera" @@ -823,16 +921,16 @@ msgstr "Favoritmarkera" msgid "Join Game" msgstr "Bilda Spel" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Namn / Lösenord" -#: 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 aktiverat" @@ -862,10 +960,6 @@ msgid "Antialiasing:" msgstr "Kantutjämning:" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Är du säker pÃ¥ att du vill starta om din enspelarvärld?" - -#: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Autosave Screen Size" msgstr "Spara fönsterstorlek automatiskt" @@ -874,10 +968,6 @@ msgstr "Spara fönsterstorlek automatiskt" msgid "Bilinear Filter" msgstr "Bilinjärt filter" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Stötkartläggning" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Ändra Tangenter" @@ -891,10 +981,6 @@ msgid "Fancy Leaves" msgstr "Fina Löv" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -903,10 +989,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Aniso-filter" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nej" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Inget filter" @@ -934,19 +1016,11 @@ msgstr "Ogenomskinliga löv" msgid "Opaque Water" msgstr "Ogenomskinligt vatten" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parrallax Ocklusion" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Partiklar" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Starta om enspelarvärld" - -#: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "Skärm:" @@ -959,6 +1033,10 @@ msgid "Shaders" msgstr "Shaders" #: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -1004,22 +1082,6 @@ msgstr "Vajande Löv" msgid "Waving Plants" msgstr "Vajande Växter" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ja" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Konfigurera moddar" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Huvudsaklig" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Starta Enspelarläge" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Anslutningens tidsgräns nÃ¥dd." @@ -1184,20 +1246,20 @@ msgid "Continue" msgstr "Fortsätt" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1350,34 +1412,6 @@ 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 "" @@ -1774,6 +1808,24 @@ msgstr "X Knapp 2" msgid "Zoom" msgstr "Zoom" +#: 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 "Lösenorden matchar inte!" @@ -2035,14 +2087,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax ocklusion med sluttningsinformation (snabbare).\n" -"1 = reliefmappning (lÃ¥ngsammare, noggrannare)." - -#: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2163,6 +2207,10 @@ 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" msgstr "Absolut gräns av emerge kö" @@ -2420,10 +2468,6 @@ msgid "Builtin" msgstr "Inbyggd" #: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Bumpmappning" - -#: 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" @@ -2495,16 +2539,6 @@ 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 "Chunkstorlek" @@ -2667,6 +2701,10 @@ 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" msgstr "Fortsätt" @@ -2728,7 +2766,10 @@ msgid "Crosshair alpha" msgstr "HÃ¥rkorsalpha" #: 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 "HÃ¥rkorsalpha (ogenomskinlighet, mellan 0 och 255)." #: src/settings_translation_file.cpp @@ -2736,8 +2777,10 @@ msgid "Crosshair color" msgstr "HÃ¥rkorsfärg" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "HÃ¥rkorsförg (R,G,B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2847,14 +2890,6 @@ msgid "Defines location and terrain of optional hills and lakes." msgstr "Definierar plats och terräng för valfria kullar och sjöar." #: src/settings_translation_file.cpp -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." - -#: src/settings_translation_file.cpp #, fuzzy msgid "Defines the base ground level." msgstr "Definierar trädomrÃ¥den och trädtäthet." @@ -2939,6 +2974,10 @@ msgid "Desynchronize block animation" msgstr "Desynkronisera blockanimation" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "Grävpartiklar" @@ -3000,7 +3039,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 @@ -3088,14 +3127,6 @@ 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 "" @@ -3105,18 +3136,6 @@ 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" @@ -3133,12 +3152,6 @@ 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" @@ -3148,7 +3161,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 @@ -3451,10 +3464,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3509,8 +3518,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 "" @@ -3977,6 +3986,10 @@ 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 "" @@ -4057,6 +4070,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4156,6 +4176,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4714,11 +4741,6 @@ msgid "Main menu script" msgstr "" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Huvudmeny" - -#: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" @@ -4732,6 +4754,14 @@ 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 "" @@ -4901,7 +4931,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 @@ -4950,6 +4980,13 @@ msgid "" 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 "" @@ -5179,14 +5216,6 @@ 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 "" @@ -5212,10 +5241,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5241,35 +5266,6 @@ msgid "" 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 "Parrallax Ocklusion" - -#: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5336,6 +5332,15 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Tangent för filmiskt länge" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5491,10 +5496,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5768,6 +5769,16 @@ 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 "" @@ -5899,10 +5910,6 @@ 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" @@ -5997,6 +6004,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6055,8 +6066,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 @@ -6082,15 +6093,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6228,6 +6244,17 @@ msgid "" 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 "" @@ -6434,6 +6461,12 @@ msgid "" 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 "" @@ -6560,6 +6593,24 @@ msgid "Y-level of seabed." msgstr "Y-nivÃ¥ av sjöbotten." #: 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 filhemladdning tidsgräns" @@ -6571,26 +6622,38 @@ msgstr "cURL parallellgräns" msgid "cURL timeout" msgstr "cURL-timeout" -#~ msgid "Toggle Cinematic" -#~ msgstr "SlÃ¥ av/pÃ¥ Filmisk Kamera" - -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Välj modfil:" - -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Y-nivÃ¥ till vilket luftöars skuggor nÃ¥r." - #~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." #~ msgstr "" -#~ "Definierar omrÃ¥den för luftöars jämna terräng.\n" -#~ "Jämna luftöar förekommer när oljud > 0." +#~ "0 = parallax ocklusion med sluttningsinformation (snabbare).\n" +#~ "1 = reliefmappning (lÃ¥ngsammare, noggrannare)." -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." #~ msgstr "" -#~ "Kontrollerar bredd av tunnlar, mindre värden skapar bredare tunnlar." +#~ "Justera gammakodningen för ljustabeller. Högre tal är ljusare.\n" +#~ "Denna inställning pÃ¥verkar endast klienten och ignoreras av servern." + +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Är du säker pÃ¥ att du vill starta om din enspelarvärld?" + +#~ msgid "Back" +#~ msgstr "Tillbaka" + +#~ msgid "Bump Mapping" +#~ msgstr "Stötkartläggning" + +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmappning" + +#~ msgid "Config mods" +#~ msgstr "Konfigurera moddar" + +#~ msgid "Configure" +#~ msgstr "Konfigurera" #, fuzzy #~ msgid "" @@ -6600,19 +6663,68 @@ msgstr "cURL-timeout" #~ "Kontrollerar densiteten av luftöars bergsterräng.\n" #~ "Är en förskjutning adderad till oljudsvärdet för 'np_mountain'." +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Kontrollerar bredd av tunnlar, mindre värden skapar bredare tunnlar." + +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "HÃ¥rkorsförg (R,G,B)." + #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." #~ msgstr "" -#~ "Justera gammakodningen för ljustabeller. Högre tal är ljusare.\n" -#~ "Denna inställning pÃ¥verkar endast klienten och ignoreras av servern." +#~ "Definierar omrÃ¥den för luftöars jämna terräng.\n" +#~ "Jämna luftöar förekommer när oljud > 0." + +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Definierar samplingssteg av textur.\n" +#~ "Högre värden resulterar i jämnare normalmappning." #~ msgid "Downloading and installing $1, please wait..." #~ msgstr "Laddar ner och installerar $1, vänligen vänta..." -#~ msgid "Back" -#~ msgstr "Tillbaka" +#~ msgid "Main" +#~ msgstr "Huvudsaklig" + +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "Huvudmeny" + +#~ msgid "Name/Password" +#~ msgstr "Namn/Lösenord" + +#~ msgid "No" +#~ msgstr "Nej" #~ msgid "Ok" #~ msgstr "Ok" + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parrallax Ocklusion" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parrallax Ocklusion" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Starta om enspelarvärld" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Välj modfil:" + +#~ msgid "Start Singleplayer" +#~ msgstr "Starta Enspelarläge" + +#~ msgid "Toggle Cinematic" +#~ msgstr "SlÃ¥ av/pÃ¥ Filmisk Kamera" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Y-nivÃ¥ till vilket luftöars skuggor nÃ¥r." + +#~ msgid "Yes" +#~ msgstr "Ja" diff --git a/po/sw/minetest.po b/po/sw/minetest.po index a34b6c98b..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-06-13 23:17+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 <EMAIL@ADDRESS>\n" "Language-Team: Swahili <https://hosted.weblate.org/projects/minetest/" @@ -48,10 +48,6 @@ msgstr "Unganisha upya" msgid "The server has requested a reconnect:" msgstr "Seva imeomba na Unganisha upya:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Inapakia..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Itifaki ya toleo haifanani." @@ -65,10 +61,6 @@ msgid "Server supports protocol versions between $1 and $2. " msgstr "Seva inasaidia matoleo ya itifaki kati ya $1 na $2." #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "Jaribu reenabling serverlist umma na Kagua muunganisho wako wa tovuti." - -#: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Sisi tu mkono itifaki toleo la $1." @@ -76,7 +68,8 @@ msgstr "Sisi tu mkono itifaki toleo la $1." msgid "We support protocol versions between version $1 and $2." msgstr "Tunaunga mkono matoleo ya itifaki kati ya toleo la $1 na $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 @@ -86,7 +79,8 @@ msgstr "Tunaunga mkono matoleo ya itifaki kati ya toleo la $1 na $2." msgid "Cancel" msgstr "Katisha" -#: 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 "Mategemezi:" @@ -165,15 +159,56 @@ msgid "enabled" msgstr "kuwezeshwa" #: 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 "Inapakia..." + +#: 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 "Muhimu tayari katika matumizi" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy msgid "Back to Main Menu" msgstr "Menyu kuu" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Base Game:" +msgstr "Ficha mchezo" + +#: builtin/mainmenu/dlg_contentstore.lua msgid "ContentDB is not available when Minetest was compiled without cURL" msgstr "" @@ -197,6 +232,16 @@ msgid "Install" msgstr "Sakinisha" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Sakinisha" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Inaanzilisha fundo" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Mods" @@ -210,9 +255,24 @@ msgid "No results" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Utafutaji" +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 @@ -229,7 +289,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 @@ -548,6 +612,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "Utafutaji" + +#: builtin/mainmenu/dlg_settings_advanced.lua #, fuzzy msgid "Select directory" msgstr "Orodha ya ramani" @@ -682,6 +750,18 @@ msgstr "Imeshindwa kusakinisha $1 hadi $2" msgid "Unable to install a modpack as a $1" msgstr "Imeshindwa kusakinisha $1 hadi $2" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Inapakia..." + +#: 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 "Jaribu reenabling serverlist umma na Kagua muunganisho wako wa tovuti." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -742,6 +822,17 @@ msgid "Credits" msgstr "Mikopo" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Orodha ya ramani" + +#: 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 "Wachangiaji wa awali" @@ -759,14 +850,10 @@ msgid "Bind Address" msgstr "Kumfunga anwani" #: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Sanidi" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua msgid "Creative Mode" msgstr "Hali ya ubunifu" -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_local.lua msgid "Enable Damage" msgstr "Wezesha uharibifu" @@ -785,8 +872,8 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Jina/nenosiri" +msgid "Name" +msgstr "" #: builtin/mainmenu/tab_local.lua msgid "New" @@ -798,6 +885,11 @@ msgstr "Duniani hakuna kuundwa au kuteuliwa!" #: builtin/mainmenu/tab_local.lua #, fuzzy +msgid "Password" +msgstr "Nywila mpya" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy msgid "Play Game" msgstr "Jina la mchezaji" @@ -806,6 +898,11 @@ msgid "Port" msgstr "Bandari" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Teua ulimwengu:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Teua ulimwengu:" @@ -822,23 +919,23 @@ msgstr "Ficha mchezo" msgid "Address / Port" msgstr "Kushughulikia / bandari" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Connect" msgstr "Kuunganisha" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Creative mode" msgstr "Hali ya ubunifu" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Damage enabled" msgstr "Uharibifu kuwezeshwa" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Del. Favorite" msgstr "Del. kipendwa" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Favorite" msgstr "Kipendwa" @@ -847,16 +944,16 @@ msgstr "Kipendwa" msgid "Join Game" msgstr "Ficha mchezo" -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#: builtin/mainmenu/tab_online.lua msgid "Name / Password" msgstr "Jina / nenosiri" -#: 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 kuwezeshwa" @@ -886,10 +983,6 @@ msgid "Antialiasing:" msgstr "Antialiasing:" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Je, una hakika upya ulimwengu wako singleplayer?" - -#: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "" @@ -897,10 +990,6 @@ msgstr "" msgid "Bilinear Filter" msgstr "Kichujio bilinear" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Mapema ramani" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "Badilisha funguo" @@ -914,11 +1003,6 @@ msgid "Fancy Leaves" msgstr "Majani ya dhana" #: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Generate Normal Maps" -msgstr "Kuzalisha normalmaps" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "Mipmap" @@ -927,10 +1011,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Mipmap + Aniso. Kichujio" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "La" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Kichujio hakuna" @@ -958,19 +1038,11 @@ msgstr "Majani opaque" msgid "Opaque Water" msgstr "Maji opaque" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax Occlusion" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "Chembe" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Weka upya singleplayer ulimwengu" - -#: builtin/mainmenu/tab_settings.lua #, fuzzy msgid "Screen:" msgstr "Screenshot" @@ -984,6 +1056,11 @@ msgid "Shaders" msgstr "Shaders" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "Kiwango cha maji" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -1029,22 +1106,6 @@ msgstr "Waving fundo" msgid "Waving Plants" msgstr "Waving mimea" -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ndio" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Mods Now" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Kuu" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Kuanza Singleplayer" - #: src/client/client.cpp msgid "Connection timed out." msgstr "Muunganisho limekatika." @@ -1219,13 +1280,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1377,35 +1438,6 @@ msgid "Minimap currently disabled by game or mod" msgstr "" #: src/client/game.cpp -#, fuzzy -msgid "Minimap hidden" -msgstr "Ufunguo wa minimap" - -#: 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 "" @@ -1811,6 +1843,26 @@ msgstr "X kitufe 2" msgid "Zoom" msgstr "Kuza" +#: src/client/minimap.cpp +#, fuzzy +msgid "Minimap hidden" +msgstr "Ufunguo wa minimap" + +#: 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 +#, fuzzy +msgid "Minimap in texture mode" +msgstr "Unamu wa kima cha chini cha ukubwa wa Vichujio" + #: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp msgid "Passwords do not match!" msgstr "MaNenotambulishi hayaoani!" @@ -2077,14 +2129,6 @@ msgid "" 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 na taarifa ya mteremko (haraka).\n" -"1 = ramani ya misaada (polepole, sahihi zaidi)." - -#: src/settings_translation_file.cpp msgid "2D noise that controls the shape/size of ridged mountains." msgstr "" @@ -2204,6 +2248,10 @@ msgid "ABM interval" msgstr "Ramani hifadhi muda" #: 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 "Kikomo halisi ya foleni ya emerge" @@ -2459,10 +2507,6 @@ msgid "Builtin" msgstr "Pamoja" #: 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2540,16 +2584,6 @@ 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 "Ukubwa wa fonti" @@ -2713,6 +2747,10 @@ 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" msgstr "Kuendelea" @@ -2775,7 +2813,10 @@ msgid "Crosshair alpha" msgstr "Crosshair Alfa" #: 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 "Crosshair Alfa (opaqueness kati ya 0 na 255)." #: src/settings_translation_file.cpp @@ -2783,8 +2824,10 @@ msgid "Crosshair color" msgstr "Rangi ya crosshair" #: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Rangi ya crosshair (R, G, B)." +msgid "" +"Crosshair color (R,G,B).\n" +"Also controls the object crosshair color" +msgstr "" #: src/settings_translation_file.cpp msgid "DPI" @@ -2891,14 +2934,6 @@ 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 "" -"Inafasili hatua ya sampuli ya unamu.\n" -"Thamani ya juu zaidi matokeo katika ramani ya laini ya kawaida." - -#: src/settings_translation_file.cpp msgid "Defines the base ground level." msgstr "" @@ -2974,6 +3009,11 @@ msgstr "Desynchronize umbo la uhuishaji" #: src/settings_translation_file.cpp #, fuzzy +msgid "Dig key" +msgstr "Ufunguo sahihi" + +#: src/settings_translation_file.cpp +#, fuzzy msgid "Digging particles" msgstr "Chembe" @@ -3036,7 +3076,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 @@ -3142,17 +3182,6 @@ msgid "Enables animation of inventory items." msgstr "Huwezesha uhuishaji wa vitu inventering." #: 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 "" -"Inawezesha bumpmapping kwa ajili ya unamu. Normalmaps haja iwekwe kwa pakiti " -"ya unamu au haja ya kuwa yaliyozalishwa na otomatiki.\n" -"Inahitaji shaders kwa kuwezeshwa." - -#: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "Huwezesha uwekaji kache kwa facedir Iliyozungushwa meshes." @@ -3162,22 +3191,6 @@ msgstr "Inawezesha minimap." #: src/settings_translation_file.cpp msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Huwezesha kwenye kizazi cha normalmap kuruka (Emboss athari).\n" -"Inahitaji bumpmapping kwa kuwezeshwa." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Huwezesha parallax occlusion uramanishi.\n" -"Inahitaji shaders kwa kuwezeshwa." - -#: 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" @@ -3194,14 +3207,6 @@ msgstr "Mbinu ya chombo" #: src/settings_translation_file.cpp msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Chaguo majaribio, inaweza kusababisha nafasi inayoonekana kati ya vitalu " -"wakati kuweka namba ya juu zaidi kuliko 0." - -#: 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" @@ -3211,8 +3216,9 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "Ramprogrammen katika Menyu ya mapumziko" +#, fuzzy +msgid "FPS when unfocused or paused" +msgstr "Ramprogrammen juu wakati mchezo umesitishwa." #: src/settings_translation_file.cpp msgid "FSAA" @@ -3546,10 +3552,6 @@ msgid "GUI scaling filter txr2img" msgstr "GUI kipimo Kichujio txr2img" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Kuzalisha normalmaps" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "Callbacks ya kimataifa" @@ -3615,8 +3617,8 @@ msgstr "HUD kibonye" #, 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 "" "Utunzaji kwa deprecated lua ya API: - Rithi: (jaribu kwa) mimic zamani tabia " @@ -4139,6 +4141,10 @@ msgid "Joystick button repetition interval" msgstr "Kifimbocheza kitufe marudio nafasi" #: src/settings_translation_file.cpp +msgid "Joystick deadzone" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Joystick frustum sensitivity" msgstr "Kifimbocheza frustum unyeti" @@ -4238,6 +4244,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Muhimu kwa ajili ya kuruka.\n" +"Ona http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4385,6 +4402,17 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Muhimu kwa ajili ya kuruka.\n" +"Ona http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5168,11 +5196,6 @@ msgid "Main menu script" msgstr "Hati ya Menyu kuu" #: src/settings_translation_file.cpp -#, fuzzy -msgid "Main menu style" -msgstr "Hati ya Menyu kuu" - -#: src/settings_translation_file.cpp msgid "" "Make fog and sky colors depend on daytime (dawn/sunset) and view direction." msgstr "" @@ -5188,6 +5211,14 @@ 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 "Orodha ya ramani" @@ -5391,7 +5422,8 @@ msgid "Maximum FPS" msgstr "Ramprogrammen juu" #: 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 "Ramprogrammen juu wakati mchezo umesitishwa." #: src/settings_translation_file.cpp @@ -5448,6 +5480,13 @@ msgstr "" "Seti kwa wazi kwa kiasi sahihi ili uweze kuchaguliwa moja kwa moja." #: 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 "Namba ya juu ya forceloaded mapblocks." @@ -5702,14 +5741,6 @@ msgid "Noises" msgstr "Kila" #: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Sampuli ya Normalmaps" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Nguvu ya Normalmaps" - -#: src/settings_translation_file.cpp msgid "Number of emerge threads" msgstr "Idadi ya nyuzi emerge" @@ -5738,10 +5769,6 @@ msgstr "" "(4096 = 100 MB, kama kanuni ya thumb)." #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Idadi ya parallax occlusion Marudiorudio." - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5767,35 +5794,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Upendeleo wa jumla wa parallax occlusion athari, kawaida kipimo/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Kipimo cha jumla ya parallax occlusion athari." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Parallax occlusion" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Parallax occlusion upendeleo" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Parallax occlusion Marudiorudio" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Parallax occlusion hali" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax occlusion scale" -msgstr "Parallax occlusion wadogo" - -#: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5863,6 +5861,16 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "Kuruka ufunguo" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Place repetition interval" +msgstr "Bofya kulia marudio nafasi" + +#: 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." @@ -6034,10 +6042,6 @@ msgid "Right key" msgstr "Ufunguo sahihi" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Bofya kulia marudio nafasi" - -#: src/settings_translation_file.cpp #, fuzzy msgid "River channel depth" msgstr "Kina wa mto" @@ -6344,6 +6348,19 @@ msgid "Show entity selection boxes" msgstr "Onyesha chombo masanduku ya uteuzi" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Show entity selection boxes\n" +"A restart is required after changing this." +msgstr "" +"Seti lugha. Acha tupu kwa kutumia lugha ya mfumo.\n" +"Kuanza upya inahitajika baada ya kubadilisha hii." + +#: src/settings_translation_file.cpp +msgid "Show nametag backgrounds by default" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Shutdown message" msgstr "Uzimaji ujumbe" @@ -6488,10 +6505,6 @@ msgid "Strength of 3D mode parallax." msgstr "Nguvu ya parallax." #: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Nguvu ya normalmaps inayozalishwa." - -#: src/settings_translation_file.cpp msgid "" "Strength of light curve boost.\n" "The 3 'boost' parameters define a range of the light\n" @@ -6596,6 +6609,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6662,8 +6679,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 @@ -6696,6 +6713,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6705,9 +6728,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 "" "Wakati katika sekunde inachukua kati ya vibonyezo mara kwa mara sahihi " "wakati wa kufanya kitufe cha kulia." @@ -6858,6 +6880,17 @@ msgid "" 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 "Tumia uchujaji trilinear wakati upimaji unamu." @@ -7100,6 +7133,12 @@ msgstr "" "katika." #: 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 "Kama fundo unamu uhuishaji lazima desynchronized kwa mapblock." @@ -7232,6 +7271,24 @@ 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 muda wa upakuzi wa faili" @@ -7243,84 +7300,216 @@ msgstr "cURL kikomo sambamba" msgid "cURL timeout" msgstr "muda wa kuisha wa cURL" -#~ msgid "Toggle Cinematic" -#~ msgstr "Togoa Cinematic" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = parallax occlusion na taarifa ya mteremko (haraka).\n" +#~ "1 = ramani ya misaada (polepole, sahihi zaidi)." #, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "Teua faili ya Moduli:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Rekebisha simbiko gamma kwa majedwali mwanga. Idadi ya chini ni mkali.\n" +#~ "Kipimo hiki ni kwa ajili ya mteja tu na ni kupuuzwa na seva." -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "Y ya upper kikomo ya kubwa pseudorandom cellars." +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Je, una hakika upya ulimwengu wako singleplayer?" -#~ msgid "Waving Water" -#~ msgstr "Waving maji" +#~ msgid "Back" +#~ msgstr "Nyuma" -#~ msgid "Waving water" -#~ msgstr "Waving maji" +#~ msgid "Bump Mapping" +#~ msgstr "Mapema ramani" -#~ msgid "This font will be used for certain languages." -#~ msgstr "Fonti hii itatumika kwa lugha fulani." +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" -#, fuzzy -#~ msgid "Shadow limit" -#~ msgstr "Kikomo cha Mapblock" +#~ msgid "Config mods" +#~ msgstr "Mods Now" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "Njia ya TrueTypeFont au vitone michoro." +#~ msgid "Configure" +#~ msgstr "Sanidi" -#, fuzzy -#~ msgid "Lava depth" -#~ msgstr "Kina ya pango kubwa" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Vidhibiti vya upana wa vichuguu, thamani ndogo huunda vichuguu pana." -#~ msgid "IPv6 support." -#~ msgstr "IPv6 msaada." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Rangi ya crosshair (R, G, B)." -#~ msgid "Gamma" -#~ msgstr "Gamma" +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "Mwandishi ramani ziwa gorofa mwinuko" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Fonti kivuli Alfa (opaqueness kati ya 0 na 255)." +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "Inafasili hatua ya sampuli ya unamu.\n" +#~ "Thamani ya juu zaidi matokeo katika ramani ya laini ya kawaida." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Huwezesha toni filmic ramani" +#, fuzzy +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Inapakua $1, Tafadhali subiri..." #~ msgid "Enable VBO" #~ msgstr "Wezesha VBO" -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "Mwandishi ramani ziwa gorofa mwinuko" +#~ 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 "" +#~ "Inawezesha bumpmapping kwa ajili ya unamu. Normalmaps haja iwekwe kwa " +#~ "pakiti ya unamu au haja ya kuwa yaliyozalishwa na otomatiki.\n" +#~ "Inahitaji shaders kwa kuwezeshwa." -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgid "Enables filmic tone mapping" +#~ msgstr "Huwezesha toni filmic ramani" + +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "Vidhibiti vya upana wa vichuguu, thamani ndogo huunda vichuguu pana." +#~ "Huwezesha kwenye kizazi cha normalmap kuruka (Emboss athari).\n" +#~ "Inahitaji bumpmapping kwa kuwezeshwa." -#, fuzzy #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "Rekebisha simbiko gamma kwa majedwali mwanga. Idadi ya chini ni mkali.\n" -#~ "Kipimo hiki ni kwa ajili ya mteja tu na ni kupuuzwa na seva." +#~ "Huwezesha parallax occlusion uramanishi.\n" +#~ "Inahitaji shaders kwa kuwezeshwa." -#~ msgid "Path to save screenshots at." -#~ msgstr "Njia ya kuokoa viwambo katika." +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "Chaguo majaribio, inaweza kusababisha nafasi inayoonekana kati ya vitalu " +#~ "wakati kuweka namba ya juu zaidi kuliko 0." -#~ msgid "Parallax occlusion strength" -#~ msgstr "Parallax occlusion nguvu" +#~ msgid "FPS in pause menu" +#~ msgstr "Ramprogrammen katika Menyu ya mapumziko" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Fonti kivuli Alfa (opaqueness kati ya 0 na 255)." + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#, fuzzy +#~ msgid "Generate Normal Maps" +#~ msgstr "Kuzalisha normalmaps" + +#~ msgid "Generate normalmaps" +#~ msgstr "Kuzalisha normalmaps" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 msaada." + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "Kina ya pango kubwa" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Kikomo ya foleni emerge kwenye diski" +#~ msgid "Main" +#~ msgstr "Kuu" + #, fuzzy -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Inapakua $1, Tafadhali subiri..." +#~ msgid "Main menu style" +#~ msgstr "Hati ya Menyu kuu" -#~ msgid "Back" -#~ msgstr "Nyuma" +#~ msgid "Name/Password" +#~ msgstr "Jina/nenosiri" + +#~ msgid "No" +#~ msgstr "La" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Sampuli ya Normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Nguvu ya Normalmaps" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Idadi ya parallax occlusion Marudiorudio." #~ msgid "Ok" #~ msgstr "Sawa kabisa" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Upendeleo wa jumla wa parallax occlusion athari, kawaida kipimo/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Kipimo cha jumla ya parallax occlusion athari." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax Occlusion" + +#~ msgid "Parallax occlusion" +#~ msgstr "Parallax occlusion" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Parallax occlusion upendeleo" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Parallax occlusion Marudiorudio" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Parallax occlusion hali" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "Parallax occlusion wadogo" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Parallax occlusion nguvu" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "Njia ya TrueTypeFont au vitone michoro." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Njia ya kuokoa viwambo katika." + +#~ msgid "Reset singleplayer world" +#~ msgstr "Weka upya singleplayer ulimwengu" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "Teua faili ya Moduli:" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "Kikomo cha Mapblock" + +#~ msgid "Start Singleplayer" +#~ msgstr "Kuanza Singleplayer" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Nguvu ya normalmaps inayozalishwa." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Fonti hii itatumika kwa lugha fulani." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Togoa Cinematic" + +#~ msgid "Waving Water" +#~ msgstr "Waving maji" + +#~ msgid "Waving water" +#~ msgstr "Waving maji" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Y ya upper kikomo ya kubwa pseudorandom cellars." + +#~ msgid "Yes" +#~ msgstr "Ndio" diff --git a/po/th/minetest.po b/po/th/minetest.po index 72490f111..06e322f79 100644 --- a/po/th/minetest.po +++ b/po/th/minetest.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Thai (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" +"POT-Creation-Date: 2021-02-23 19:03+0100\n" "PO-Revision-Date: 2020-07-08 08:41+0000\n" "Last-Translator: TZTarzan <khunsatyptiphan@gmail.com>\n" "Language-Team: Thai <https://hosted.weblate.org/projects/minetest/minetest/" @@ -47,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 "เวà¸à¸£à¹Œà¸Šà¸±à¸™à¹‚ปรโทคà¸à¸¥à¹„ม่ตรงà¸à¸±à¸™ " @@ -64,12 +60,6 @@ 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 เท่านั้น" @@ -77,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 @@ -87,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 "ไฟล์à¸à¹‰à¸²à¸‡à¸à¸´à¸‡:" @@ -112,8 +104,8 @@ msgid "" "Failed to enable mod \"$1\" as it contains disallowed characters. Only " "characters [a-z0-9_] are allowed." msgstr "" -"ไม่สามารถเปิดใช้งานม็à¸à¸” '$1' ซึ่งประà¸à¸à¸šà¸”้วยตัวà¸à¸±à¸à¸©à¸£à¸—ี่ไม่ได้รับà¸à¸™à¸¸à¸à¸²à¸• ตัวà¸à¸±" -"à¸à¸©à¸£ [a-z0-9_] เท่านั้นที่ได้รับà¸à¸™à¸¸à¸à¸²à¸•" +"ไม่สามารถเปิดใช้งานม็à¸à¸” '$1' ซึ่งประà¸à¸à¸šà¸”้วยตัวà¸à¸±à¸à¸©à¸£à¸—ี่ไม่ได้รับà¸à¸™à¸¸à¸à¸²à¸• ตัวà¸à¸±à¸à¸©à¸£ [a-z0-9_] " +"เท่านั้นที่ได้รับà¸à¸™à¸¸à¸à¸²à¸•" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" @@ -164,14 +156,55 @@ 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 "" @@ -194,6 +227,16 @@ msgid "Install" msgstr "ติดตั้ง" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "ติดตั้ง" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "ไฟล์à¸à¹‰à¸²à¸‡à¸à¸´à¸‡à¸—ี่เลืà¸à¸à¹ƒà¸Šà¹‰à¹„ด้:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "ม็à¸à¸”" @@ -207,9 +250,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" @@ -224,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 @@ -461,9 +525,7 @@ msgstr "เปลี่ยนชื่à¸à¸¡à¹‡à¸à¸”à¹à¸žà¹‡à¸„:" msgid "" "This modpack has an explicit name given in its modpack.conf which will " "override any renaming here." -msgstr "" -"ม็à¸à¸”à¹à¸žà¹‡à¸„มีชื่à¸à¸Šà¸·à¹ˆà¸à¸—ี่ถูà¸à¸•ั้งในไฟล์ modpack.conf " -"ซึ่งจะà¹à¸—นที่ชื่à¸à¸—ี่เปลี่ยนตรงนี้" +msgstr "ม็à¸à¸”à¹à¸žà¹‡à¸„มีชื่à¸à¸Šà¸·à¹ˆà¸à¸—ี่ถูà¸à¸•ั้งในไฟล์ modpack.conf ซึ่งจะà¹à¸—นที่ชื่à¸à¸—ี่เปลี่ยนตรงนี้" #: builtin/mainmenu/dlg_settings_advanced.lua msgid "(No description of setting given)" @@ -528,6 +590,10 @@ msgid "Scale" msgstr "ขนาด" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "ค้นหา" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "เลืà¸à¸à¹„ดเรà¸à¸—à¸à¸£à¸µ" @@ -642,6 +708,19 @@ msgstr "ไม่สามารถติดตั้ง mod $1" msgid "Unable to install a modpack as a $1" msgstr "ไม่สามารถติดตั้ง modpack ที่ $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 "เรียà¸à¸”ูเนื้à¸à¸«à¸²à¸à¸à¸™à¹„ลน์" @@ -695,6 +774,17 @@ msgid "Credits" msgstr "เครดิต" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "เลืà¸à¸à¹„ดเรà¸à¸—à¸à¸£à¸µ" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "ผู้สนับสนุนà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²" @@ -711,14 +801,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 "เปิดใช้งานความเสียหาย" @@ -735,8 +821,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" @@ -747,6 +833,11 @@ 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 "เล่นเà¸à¸¡" @@ -755,6 +846,11 @@ msgid "Port" msgstr "พà¸à¸£à¹Œà¸•" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "เลืà¸à¸à¹‚ลà¸:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "เลืà¸à¸à¹‚ลà¸:" @@ -770,23 +866,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 +890,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 เปิดใช้งาน" @@ -832,10 +928,6 @@ msgid "Antialiasing:" msgstr "ลบรà¸à¸¢à¸«à¸¢à¸±à¸:" #: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "à¸à¸²à¸£à¸•ั้งค่าขà¸à¸‡à¸„ุณโลภsingleplayer à¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸à¹„ม่?" - -#: builtin/mainmenu/tab_settings.lua msgid "Autosave Screen Size" msgstr "ขนาดหน้าจà¸à¸šà¸±à¸™à¸—ึà¸à¸à¸±à¸•โนมัติ" @@ -843,10 +935,6 @@ msgstr "ขนาดหน้าจà¸à¸šà¸±à¸™à¸—ึà¸à¸à¸±à¸•โนมัต msgid "Bilinear Filter" msgstr "à¸à¸£à¸à¸‡ bilinear" -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "à¸à¸²à¸£à¹à¸¡à¹‡à¸› ชน" - #: builtin/mainmenu/tab_settings.lua src/client/game.cpp msgid "Change Keys" msgstr "เปลี่ยนคีย์" @@ -860,10 +948,6 @@ msgid "Fancy Leaves" msgstr "ใบไม้" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "สร้างà¹à¸œà¸™à¸—ี่ปà¸à¸•ิ" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "à¹à¸œà¸™à¸—ี่ย่à¸" @@ -872,10 +956,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "à¹à¸œà¸™à¸—ี่ย่ภ+ Aniso.à¸à¸£à¸à¸‡" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "ไม่" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "ไม่มีตัวà¸à¸£à¸à¸‡" @@ -903,20 +983,11 @@ msgstr "ใบทึบ" msgid "Opaque Water" msgstr "น้ำขุ่น" -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -#, fuzzy -msgid "Parallax Occlusion" -msgstr "Parallax à¸à¸¸à¸”ตัน" - #: builtin/mainmenu/tab_settings.lua msgid "Particles" msgstr "à¸à¸™à¸¸à¸ าค" #: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "รีเซ็ต singleplayer โลà¸" - -#: builtin/mainmenu/tab_settings.lua msgid "Screen:" msgstr "หน้าจà¸:" @@ -931,6 +1002,11 @@ msgstr "Shaders" #: builtin/mainmenu/tab_settings.lua #, fuzzy +msgid "Shaders (experimental)" +msgstr "Shaders (ไม่พร้à¸à¸¡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™)" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy msgid "Shaders (unavailable)" msgstr "Shaders (ไม่พร้à¸à¸¡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™)" @@ -976,22 +1052,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 "à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¸•่à¸à¸«à¸¡à¸”เวลา" @@ -1155,13 +1215,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1309,37 +1369,6 @@ 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 -#, fuzzy -msgid "Minimap in surface mode, Zoom x1" -msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมด surface, ซูม x1" - -#: src/client/game.cpp -#, fuzzy -msgid "Minimap in surface mode, Zoom x2" -msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมด surface, ซูม x2" - -#: src/client/game.cpp -#, fuzzy -msgid "Minimap in surface mode, Zoom x4" -msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมด surface, ซูม x4" - -#: src/client/game.cpp msgid "Noclip mode disabled" msgstr "ปิดใช้งานโหมด Noclip" @@ -1756,6 +1785,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 "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมดเรดาร์, ซูม x1" + +#: src/client/minimap.cpp +#, fuzzy, c-format +msgid "Minimap in surface mode, Zoom x%d" +msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมด surface, ซูม x1" + +#: 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 "รหัสผ่านไม่ตรงà¸à¸±à¸š!" @@ -2010,14 +2058,6 @@ msgid "" 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 "" @@ -2137,6 +2177,10 @@ 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 "" @@ -2382,11 +2426,6 @@ msgstr "" #: src/settings_translation_file.cpp #, fuzzy -msgid "Bumpmapping" -msgstr "Bumpmapping" - -#: 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" @@ -2461,16 +2500,6 @@ 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 "ขนาดตัวà¸à¸±à¸à¸©à¸£" @@ -2625,6 +2654,10 @@ 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 "" @@ -2683,7 +2716,10 @@ msgid "Crosshair alpha" msgstr "Crosshair à¸à¸±à¸¥à¸Ÿà¸²" #: 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 "Crosshair à¸à¸±à¸¥à¸Ÿà¸² (ความทึบà¹à¸ªà¸‡à¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡ 0 ถึง 255)." #: src/settings_translation_file.cpp @@ -2691,8 +2727,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" @@ -2794,14 +2832,6 @@ 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 "" @@ -2874,6 +2904,11 @@ msgid "Desynchronize block animation" msgstr "Desynchronize บล็à¸à¸à¸ าพเคลื่à¸à¸™à¹„หว" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "ปุ่มขวา" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "ขุดà¸à¸™à¸¸à¸ าค" @@ -2936,7 +2971,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 @@ -3039,17 +3075,6 @@ 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 "" -"เปิดใช้งานà¸à¸²à¸£à¹à¸¡à¸› bump สำหรับพื้นผิว à¹à¸œà¸™à¸—ี่ปà¸à¸•ิจะต้à¸à¸‡à¸¡à¸µà¸à¸²à¸£à¸ˆà¸±à¸”หาโดยà¹à¸žà¹‡à¸„พื้นผิว\n" -"หรืà¸à¸ˆà¸³à¹€à¸›à¹‡à¸™à¸•้à¸à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้นà¸à¸±à¸•โนมัติ\n" -"ต้à¸à¸‡à¸¡à¸µ shaders เพื่à¸à¹€à¸›à¸´à¸”ใช้งาน" - -#: src/settings_translation_file.cpp msgid "Enables caching of facedir rotated meshes." msgstr "เปิดใช้งานà¸à¸²à¸£à¹à¸„ชขà¸à¸‡à¸•าข่ายที่หมุนได้." @@ -3059,22 +3084,6 @@ msgstr "เปิดใช้งานย่à¸à¹à¸œà¸™à¸—ี่." #: src/settings_translation_file.cpp 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" -"ต้à¸à¸‡à¸¡à¸µ shaders เพื่à¸à¹€à¸›à¸´à¸”ใช้งาน" - -#: 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" @@ -3091,14 +3100,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3108,8 +3109,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 #, fuzzy @@ -3422,10 +3424,6 @@ 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 "" @@ -3481,8 +3479,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 "" @@ -3961,6 +3959,11 @@ 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 "ความไวขà¸à¸‡à¸ˆà¸à¸¢à¸ªà¸•ิ๊ภfrustum" @@ -4046,6 +4049,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"à¸à¸¸à¸à¹à¸ˆà¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¸à¸£à¸°à¹‚ดด.\n" +"ดู http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4188,6 +4202,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"à¸à¸¸à¸à¹à¸ˆà¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¸à¸£à¸°à¹‚ดด.\n" +"ดู 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." @@ -4918,10 +4943,6 @@ 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 "" @@ -4936,6 +4957,14 @@ 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 "ไดเรà¸à¸—à¸à¸£à¸µà¹à¸œà¸™à¸—ี่" @@ -5099,7 +5128,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 @@ -5151,6 +5181,13 @@ msgid "" 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 "" @@ -5396,14 +5433,6 @@ 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 "" @@ -5429,10 +5458,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "จำนวนà¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚à¸à¸‡à¸à¸²à¸£à¸›à¸´à¸”à¸à¸±à¹‰à¸™ parallax" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5458,34 +5483,6 @@ msgid "" msgstr "เปิดเมนูหยุดชั่วคราวเมื่à¸à¹‚ฟà¸à¸±à¸ªà¸‚à¸à¸‡à¸«à¸™à¹‰à¸²à¸•่างหายไป ไม่หยุดถ้า formspec คืภเปิด." #: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "ความเà¸à¸™à¹€à¸à¸µà¸¢à¸‡à¹‚ดยรวมขà¸à¸‡à¹€à¸à¸Ÿà¹€à¸Ÿà¹‡à¸à¸•์à¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax มัà¸à¹€à¸›à¹‡à¸™à¸ªà¹€à¸à¸¥ / 2" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "ขนาดโดยรวมขà¸à¸‡à¸œà¸¥à¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡à¸£à¸±à¸¥à¹à¸¥à¸à¸‹à¹Œ" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "à¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "à¸à¸„ติà¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "à¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚à¸à¸‡ Parallax" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "โหมดà¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion scale" -msgstr "ขนาดà¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" - -#: src/settings_translation_file.cpp msgid "" "Path of the fallback font.\n" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5551,6 +5548,16 @@ msgid "Pitch move mode" msgstr "โหมดย้ายสนาม" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Place key" +msgstr "ปุ่ม Fly" + +#: 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" "This requires the \"fly\" privilege on the server." @@ -5717,10 +5724,6 @@ msgid "Right key" msgstr "ปุ่มขวา" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "à¸à¸£à¸°à¹à¸—à¸à¸‹à¹‰à¸³à¸Šà¹ˆà¸§à¸‡" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5994,6 +5997,16 @@ 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 "ข้à¸à¸„วามปิดเครื่à¸à¸‡" @@ -6136,10 +6149,6 @@ 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" @@ -6239,6 +6248,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6294,13 +6308,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 "" "à¸à¸²à¸£à¹à¸ªà¸”งผลà¹à¸šà¹‡à¸à¹€à¸à¸™à¸”์สำหรับ Irrlicht\n" "จำเป็นต้à¸à¸‡à¸£à¸µà¸ªà¸•าร์ทหลังจาà¸à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸ªà¸´à¹ˆà¸‡à¸™à¸µà¹‰\n" @@ -6337,6 +6352,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6344,10 +6365,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 @@ -6499,6 +6520,17 @@ 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 "ใช้à¸à¸²à¸£à¸à¸£à¸à¸‡ trilinear เมื่à¸à¸›à¸£à¸±à¸šà¸‚นาดพื้นผิว" @@ -6728,9 +6760,14 @@ msgstr "" "หาà¸à¸›à¸´à¸”ใช้งาน ฟà¸à¸™à¸•์บิตà¹à¸¡à¸›à¹à¸¥à¸°à¹€à¸à¹‡à¸à¸‹à¹Œà¹€à¸à¹‡à¸¡à¹à¸à¸¥à¹€à¸§à¸à¹€à¸•à¸à¸£à¹Œà¸ˆà¸°à¹ƒà¸Šà¹‰à¹à¸—น" #: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." +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 "ระบุว่าควรสร้างà¸à¸²à¸£à¸‹à¸´à¸‡à¹‚ครไนซ์ภาพเคลื่à¸à¸™à¹„หวพื้นผิวขà¸à¸‡à¹‚หนดต่à¸à¹à¸¡à¹‡à¸›à¸šà¸¥à¹‡à¸à¸à¸«à¸£à¸·à¸à¹„ม่" #: src/settings_translation_file.cpp msgid "" @@ -6865,6 +6902,24 @@ 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 "" @@ -6876,67 +6931,209 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ msgstr "สลับโรงภาพยนตร์" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = à¸à¸²à¸£à¸šà¸”บังพารัลà¹à¸¥à¸à¸‹à¹Œà¸žà¸£à¹‰à¸à¸¡à¸‚้à¸à¸¡à¸¹à¸¥à¸„วามชัน (เร็วà¸à¸§à¹ˆà¸²)\n" +#~ "1 = à¸à¸²à¸£à¸—ำà¹à¸œà¸™à¸—ี่นูน (ช้าà¸à¸§à¹ˆà¸²à¹à¸¡à¹ˆà¸™à¸¢à¸³à¸à¸§à¹ˆà¸²)" -#~ msgid "Select Package File:" -#~ msgstr "เลืà¸à¸à¹à¸Ÿà¹‰à¸¡à¹à¸žà¸„เà¸à¸ˆ:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "ปรับà¸à¸²à¸£à¹€à¸‚้ารหัสà¹à¸à¸¡à¸¡à¹ˆà¸²à¸ªà¸³à¸«à¸£à¸±à¸šà¸•ารางà¹à¸ªà¸‡ ตัวเลขที่สูงà¸à¸§à¹ˆà¸²à¸™à¸±à¹‰à¸™à¸ˆà¸°à¸ªà¸§à¹ˆà¸²à¸‡à¸à¸§à¹ˆà¸²\n" +#~ "à¸à¸²à¸£à¸•ั้งค่านี้มีไว้สำหรับไคลเà¸à¹‡à¸™à¸•์เท่านั้นà¹à¸¥à¸°à¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸à¸£à¹Œà¸ˆà¸°à¹€à¸žà¸´à¸à¹€à¸‰à¸¢" -#~ msgid "Waving Water" -#~ msgstr "น้ำโบà¸" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "à¸à¸²à¸£à¸•ั้งค่าขà¸à¸‡à¸„ุณโลภsingleplayer à¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸à¹„ม่?" -#~ msgid "Waving water" -#~ msgstr "โบà¸à¸™à¹‰à¸³" +#~ msgid "Back" +#~ msgstr "หลัง" -#~ msgid "This font will be used for certain languages." -#~ msgstr "à¹à¸šà¸šà¸à¸±à¸à¸©à¸£à¸™à¸µà¹‰à¸ˆà¸°à¹ƒà¸Šà¹‰à¸ªà¸³à¸«à¸£à¸±à¸šà¸šà¸²à¸‡à¸ าษา" +#~ msgid "Bump Mapping" +#~ msgstr "à¸à¸²à¸£à¹à¸¡à¹‡à¸› ชน" -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "ความà¹à¸‚็งà¹à¸£à¸‡à¸‚à¸à¸‡à¹à¸ªà¸‡à¹‚ค้งà¸à¸¥à¸²à¸‡ - เพิ่ม" +#, fuzzy +#~ msgid "Bumpmapping" +#~ msgstr "Bumpmapping" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "เส้นทางà¹à¸šà¸šà¸à¸±à¸à¸©à¸£." +#~ msgid "Center of light curve mid-boost." +#~ msgstr "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡à¸‚à¸à¸‡à¹€à¸ªà¹‰à¸™à¹‚ค้งà¹à¸ªà¸‡ - à¸à¸¥à¸²à¸‡à¹€à¸žà¸´à¹ˆà¸¡" -#~ msgid "Lightness sharpness" -#~ msgstr "ความคมชัดขà¸à¸‡à¹à¸ªà¸‡" +#~ msgid "Config mods" +#~ msgstr "à¸à¸³à¸«à¸™à¸”ค่าวัยรุ่น" -#~ msgid "Gamma" -#~ msgstr "à¹à¸à¸¡à¸¡à¸²" +#~ msgid "Configure" +#~ msgstr "à¸à¸³à¸«à¸™à¸”ค่า" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "ตัวà¸à¸±à¸à¸©à¸£à¹€à¸‡à¸²à¸à¸±à¸¥à¸Ÿà¸² (ความทึบระหว่าง 0 à¹à¸¥à¸° 255)." +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "สีขà¸à¸‡à¸„รà¸à¸ªà¹à¸®à¸£à¹Œ (R,G,B)." -#~ msgid "Enables filmic tone mapping" -#~ msgstr "เปิดใช้งานà¸à¸²à¸£à¸ˆà¸±à¸šà¸„ู่โทนภาพยนตร์" +#~ msgid "Darkness sharpness" +#~ msgstr "ความมืดมิด" + +#~ 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 "Darkness sharpness" -#~ msgstr "ความมืดมิด" +#~ 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 "" +#~ "เปิดใช้งานà¸à¸²à¸£à¹à¸¡à¸› bump สำหรับพื้นผิว à¹à¸œà¸™à¸—ี่ปà¸à¸•ิจะต้à¸à¸‡à¸¡à¸µà¸à¸²à¸£à¸ˆà¸±à¸”หาโดยà¹à¸žà¹‡à¸„พื้นผิว\n" +#~ "หรืà¸à¸ˆà¸³à¹€à¸›à¹‡à¸™à¸•้à¸à¸‡à¸ªà¸£à¹‰à¸²à¸‡à¸‚ึ้นà¸à¸±à¸•โนมัติ\n" +#~ "ต้à¸à¸‡à¸¡à¸µ shaders เพื่à¸à¹€à¸›à¸´à¸”ใช้งาน" -#~ msgid "Center of light curve mid-boost." -#~ msgstr "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡à¸‚à¸à¸‡à¹€à¸ªà¹‰à¸™à¹‚ค้งà¹à¸ªà¸‡ - à¸à¸¥à¸²à¸‡à¹€à¸žà¸´à¹ˆà¸¡" +#~ msgid "Enables filmic tone mapping" +#~ msgstr "เปิดใช้งานà¸à¸²à¸£à¸ˆà¸±à¸šà¸„ู่โทนภาพยนตร์" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "ปรับà¸à¸²à¸£à¹€à¸‚้ารหัสà¹à¸à¸¡à¸¡à¹ˆà¸²à¸ªà¸³à¸«à¸£à¸±à¸šà¸•ารางà¹à¸ªà¸‡ ตัวเลขที่สูงà¸à¸§à¹ˆà¸²à¸™à¸±à¹‰à¸™à¸ˆà¸°à¸ªà¸§à¹ˆà¸²à¸‡à¸à¸§à¹ˆà¸²\n" -#~ "à¸à¸²à¸£à¸•ั้งค่านี้มีไว้สำหรับไคลเà¸à¹‡à¸™à¸•์เท่านั้นà¹à¸¥à¸°à¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸à¸£à¹Œà¸ˆà¸°à¹€à¸žà¸´à¸à¹€à¸‰à¸¢" +#~ "เปิดใช้งานà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹à¸œà¸™à¸—ี่ปà¸à¸•ิà¹à¸šà¸šà¸¥à¸à¸¢à¸•ัว (เà¸à¸Ÿà¹€à¸Ÿà¸à¸•์นูน)\n" +#~ "ต้à¸à¸‡à¸¡à¸µà¸à¸²à¸£à¹€à¸›à¸´à¸”ใช้งาน bumpmapping" -#~ msgid "Path to save screenshots at." -#~ msgstr "พา ธ เพื่à¸à¸šà¸±à¸™à¸—ึà¸à¸ าพหน้าจà¸à¸—ี่ ..." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "เปิดใช้งานà¸à¸²à¸£à¹à¸¡à¸›à¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡à¸£à¸±à¸¥à¹à¸¥à¸à¸‹à¹Œ\n" +#~ "ต้à¸à¸‡à¸¡à¸µ shaders เพื่à¸à¹€à¸›à¸´à¸”ใช้งาน" -#~ msgid "Parallax occlusion strength" -#~ msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "ตัวเลืà¸à¸à¸à¸²à¸£à¸—ดลà¸à¸‡à¸à¸²à¸ˆà¸—ำให้เà¸à¸´à¸”ช่à¸à¸‡à¸§à¹ˆà¸²à¸‡à¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡à¸šà¸¥à¹‡à¸à¸\n" +#~ "เมื่à¸à¸•ั้งค่าเป็นจำนวนที่สูงà¸à¸§à¹ˆà¸² 0" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "ดาวน์โหลด à¹à¸¥à¸°à¸•ิดตั้ง $1 à¸à¸£à¸¸à¸“ารà¸à¸ªà¸±à¸à¸„รู่..." +#~ msgid "FPS in pause menu" +#~ msgstr "FPS ในเมนูหยุดชั่วคราว" -#~ msgid "Back" -#~ msgstr "หลัง" +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "ตัวà¸à¸±à¸à¸©à¸£à¹€à¸‡à¸²à¸à¸±à¸¥à¸Ÿà¸² (ความทึบระหว่าง 0 à¹à¸¥à¸° 255)." + +#~ msgid "Gamma" +#~ msgstr "à¹à¸à¸¡à¸¡à¸²" + +#~ msgid "Generate Normal Maps" +#~ msgstr "สร้างà¹à¸œà¸™à¸—ี่ปà¸à¸•ิ" + +#~ msgid "Generate normalmaps" +#~ msgstr "สร้างà¹à¸œà¸™à¸—ี่ปà¸à¸•ิ" + +#~ msgid "Lightness sharpness" +#~ msgstr "ความคมชัดขà¸à¸‡à¹à¸ªà¸‡" + +#~ msgid "Main" +#~ msgstr "หลัà¸" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมดเรดาร์, ซูม x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมดเรดาร์, ซูม x4" + +#, fuzzy +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมด surface, ซูม x2" + +#, fuzzy +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "à¹à¸œà¸™à¸—ี่ย่à¸à¹ƒà¸™à¹‚หมด surface, ซูม x4" + +#~ msgid "Name/Password" +#~ msgstr "ชื่à¸/รหัสผ่าน" + +#~ msgid "No" +#~ msgstr "ไม่" + +#~ msgid "Normalmaps sampling" +#~ msgstr "à¸à¸²à¸£à¸ªà¸¸à¹ˆà¸¡à¸•ัวà¸à¸¢à¹ˆà¸²à¸‡ Normalmaps" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normalmaps à¹à¸‚็งà¹à¸£à¸‡" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "จำนวนà¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚à¸à¸‡à¸à¸²à¸£à¸›à¸´à¸”à¸à¸±à¹‰à¸™ parallax" #~ msgid "Ok" #~ msgstr "ตà¸à¸¥à¸‡" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "ความเà¸à¸™à¹€à¸à¸µà¸¢à¸‡à¹‚ดยรวมขà¸à¸‡à¹€à¸à¸Ÿà¹€à¸Ÿà¹‡à¸à¸•์à¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax มัà¸à¹€à¸›à¹‡à¸™à¸ªà¹€à¸à¸¥ / 2" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "ขนาดโดยรวมขà¸à¸‡à¸œà¸¥à¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡à¸£à¸±à¸¥à¹à¸¥à¸à¸‹à¹Œ" + +#, fuzzy +#~ msgid "Parallax Occlusion" +#~ msgstr "Parallax à¸à¸¸à¸”ตัน" + +#~ msgid "Parallax occlusion" +#~ msgstr "à¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "à¸à¸„ติà¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "à¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚à¸à¸‡ Parallax" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "โหมดà¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "ขนาดà¸à¸²à¸£à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸”เคี้ยวขà¸à¸‡ Parallax" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "เส้นทางà¹à¸šà¸šà¸à¸±à¸à¸©à¸£." + +#~ msgid "Path to save screenshots at." +#~ msgstr "พา ธ เพื่à¸à¸šà¸±à¸™à¸—ึà¸à¸ าพหน้าจà¸à¸—ี่ ..." + +#~ msgid "Reset singleplayer world" +#~ msgstr "รีเซ็ต singleplayer โลà¸" + +#~ msgid "Select Package File:" +#~ 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 "Waving Water" +#~ msgstr "น้ำโบà¸" + +#~ msgid "Waving water" +#~ msgstr "โบà¸à¸™à¹‰à¸³" + +#~ msgid "Yes" +#~ msgstr "ใช่" diff --git a/po/tr/minetest.po b/po/tr/minetest.po index 5101b66fa..a2311124b 100644 --- a/po/tr/minetest.po +++ b/po/tr/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Turkish (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-15 22:41+0000\n" -"Last-Translator: monolifed <monolifed@protonmail.com>\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 <oguzersen@protonmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/minetest/" "minetest/tr/>\n" "Language: tr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -46,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. " @@ -63,12 +59,6 @@ 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." @@ -76,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 @@ -86,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:" @@ -160,14 +152,54 @@ 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" @@ -189,6 +221,14 @@ 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" msgstr "Modlar" @@ -202,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" @@ -219,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" @@ -518,6 +577,10 @@ 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ç" @@ -632,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" @@ -685,6 +763,18 @@ msgid "Credits" msgstr "Hakkında" #: builtin/mainmenu/tab_credits.lua +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" msgstr "Önceki Katkıda Bulunanlar" @@ -701,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" @@ -725,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 +823,10 @@ 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 +835,10 @@ 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ç:" @@ -760,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" @@ -784,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 +916,6 @@ 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" @@ -833,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 +936,6 @@ 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 +944,6 @@ 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" @@ -893,19 +971,11 @@ 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 +988,10 @@ 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)" @@ -961,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ı." @@ -1031,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: " @@ -1108,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" @@ -1138,13 +1196,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1154,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" @@ -1292,34 +1350,6 @@ 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ışı" @@ -1711,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" @@ -1731,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 @@ -1888,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" @@ -1980,14 +2028,6 @@ msgstr "" "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ü." @@ -2114,6 +2154,10 @@ 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ı" @@ -2374,10 +2418,6 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2456,21 +2496,6 @@ msgstr "" "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" @@ -2634,6 +2659,10 @@ 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" @@ -2700,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" @@ -2761,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" @@ -2814,14 +2851,6 @@ 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." @@ -2902,6 +2931,10 @@ 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ı" @@ -2911,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." @@ -2966,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 @@ -3076,18 +3110,6 @@ 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." @@ -3097,22 +3119,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3133,14 +3139,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3157,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" @@ -3360,8 +3358,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 "" -"Son sohbet metninin ve sohbet isteminin nokta(pt) cinsinden yazı tipi boyutu." -"\n" +"Son sohbet metninin ve sohbet isteminin nokta(pt) cinsinden yazı tipi " +"boyutu.\n" "0 deÄŸer öntanımlı yazı tipi boyutunu kullanır." #: src/settings_translation_file.cpp @@ -3485,10 +3483,6 @@ 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" @@ -3550,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 @@ -3914,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 "" @@ -4082,6 +4076,10 @@ 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ığı" @@ -4185,6 +4183,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4327,6 +4335,16 @@ msgstr "" #: 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" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5071,10 +5089,6 @@ 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." msgstr "" @@ -5092,6 +5106,14 @@ 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" @@ -5275,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" @@ -5333,6 +5355,16 @@ msgstr "" "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ı." @@ -5563,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" @@ -5586,14 +5618,6 @@ 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ı" @@ -5633,10 +5657,6 @@ msgstr "" "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" @@ -5667,34 +5687,6 @@ msgstr "" "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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5777,6 +5769,14 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5961,10 +5961,6 @@ 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" @@ -6260,6 +6256,19 @@ 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" @@ -6411,10 +6420,6 @@ 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" "The 3 'boost' parameters define a range of the light\n" @@ -6535,6 +6540,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -6611,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 "" @@ -6654,6 +6665,14 @@ 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 "" +"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" "when holding down a joystick button combination." msgstr "" @@ -6662,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" @@ -6827,6 +6845,25 @@ msgstr "" "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." @@ -7064,6 +7101,12 @@ msgstr "" "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 "" "Harita bloÄŸu başına nod doku animasyonlarının eÅŸzamansız yapılıp " @@ -7220,6 +7263,35 @@ 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ı" @@ -7231,81 +7303,93 @@ msgstr "cURL paralel sınırı" msgid "cURL timeout" msgstr "cURL zaman aşımı" -#~ msgid "Toggle Cinematic" -#~ msgstr "Sinematik Aç/Kapa" - -#~ msgid "Select Package File:" -#~ msgstr "Paket Dosyası Seç:" - -#~ 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 "" +#~ "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 "Waving Water" -#~ msgstr "Dalgalanan Su" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "Işık tabloları için gama kodlamayı ayarlayın. Daha yüksek sayılar daha " +#~ "aydınlıktır.\n" +#~ "Bu ayar yalnızca istemci içindir ve sunucu tarafından yok sayılır." -#~ msgid "Whether dungeons occasionally project from the terrain." -#~ msgstr "Zindanların bazen araziden yansıyıp yansımayacağı." +#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgstr "" +#~ "DaÄŸ-türü yüzerkaraların orta noktanın üstünde ve altında nasıl " +#~ "konikleÅŸtiÄŸini deÄŸiÅŸtirir." -#~ msgid "Projecting dungeons" -#~ msgstr "İzdüşüm zindanlar" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "Tek oyunculu dünyayı sıfırlamak istediÄŸinizden emin misiniz ?" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "Yüzenkara gölgelerinin uzanacağı Y-seviyesi." +#~ msgid "Back" +#~ msgstr "Geri" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "Yüzenkara orta noktasının ve göl yüzeyinin Y-seviyesi." +#~ msgid "Bump Mapping" +#~ msgstr "Tümsek EÅŸleme" -#~ msgid "Waving water" -#~ msgstr "Dalgalanan su" +#~ msgid "Bumpmapping" +#~ msgstr "Tümsek eÅŸleme" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "" -#~ "Tepe yüksekliÄŸinin ve göl derinliÄŸinin yüzenkara düz arazide deÄŸiÅŸimi." +#~ msgid "Center of light curve mid-boost." +#~ msgstr "Işık eÄŸrisi orta-artırmanın merkezi." #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ "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 "" -#~ "Yüzenkara daÄŸların, orta noktanın altındaki ve üstündeki, tipik maksimum " -#~ "yüksekliÄŸi." - -#~ msgid "This font will be used for certain languages." -#~ msgstr "Belirli diller için bu yazı tipi kullanılacak." - -#~ msgid "Strength of light curve mid-boost." -#~ msgstr "Işık eÄŸrisi orta-artırmanın kuvveti." - -#~ msgid "Shadow limit" -#~ msgstr "Gölge sınırı" +#~ "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 "Path to TrueTypeFont or bitmap." -#~ msgstr "TrueTypeFont veya bitmap konumu." - -#~ msgid "Lightness sharpness" -#~ msgstr "Aydınlık keskinliÄŸi" - -#~ msgid "Lava depth" -#~ msgstr "Lav derinliÄŸi" +#~ msgid "Config mods" +#~ msgstr "Modları yapılandır" -#~ msgid "IPv6 support." -#~ msgstr "IPv6 desteÄŸi." +#~ msgid "Configure" +#~ msgstr "Yapılandır" -#~ msgid "Gamma" -#~ msgstr "Gama" +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "DaÄŸ-türü yüzenkaraların yoÄŸunluÄŸunu denetler.\n" +#~ "'mgv7_np_mountain' gürültü deÄŸerine eklenen bir gürültü kaydırmadır." -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "Yazı tipi gölge saydamlığı (solukluk, 0 ve 255 arası)." +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "" +#~ "Tünellerin geniÅŸliÄŸini denetler, daha küçük bir deÄŸer daha geniÅŸ tüneller " +#~ "yaratır." -#~ msgid "Floatland mountain height" -#~ msgstr "Yüzenkara daÄŸ yüksekliÄŸi" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "Artı rengi (R,G,B)." -#~ msgid "Floatland base height noise" -#~ msgstr "Yüzenkara taban yükseklik gürültüsü" +#~ msgid "Darkness sharpness" +#~ msgstr "Karanlık keskinliÄŸi" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "Filmsel ton eÅŸlemeyi etkinleÅŸtirir" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "Yüzenkara düz arazilerin alanlarını belirler.\n" +#~ "Gürültü > 0 iken düz yüzenkaralar oluÅŸur." -#~ msgid "Enable VBO" -#~ msgstr "VBO'yu etkinleÅŸtir" +#~ 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 " @@ -7316,59 +7400,206 @@ 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 "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." -#~ msgstr "" -#~ "Yüzenkara düz arazilerin alanlarını belirler.\n" -#~ "Gürültü > 0 iken düz yüzenkaralar oluÅŸur." +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..." -#~ msgid "Darkness sharpness" -#~ msgstr "Karanlık keskinliÄŸi" +#~ msgid "Enable VBO" +#~ msgstr "VBO'yu etkinleÅŸtir" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ 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ünellerin geniÅŸliÄŸini denetler, daha küçük bir deÄŸer daha geniÅŸ tüneller " -#~ "yaratır." +#~ "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 "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "DaÄŸ-türü yüzenkaraların yoÄŸunluÄŸunu denetler.\n" -#~ "'mgv7_np_mountain' gürültü deÄŸerine eklenen bir gürültü kaydırmadır." - -#~ msgid "Center of light curve mid-boost." -#~ msgstr "Işık eÄŸrisi orta-artırmanın merkezi." +#~ "Çalışma anı dikey eÅŸleme üretimini (kabartma efekti) etkinleÅŸtirir.\n" +#~ "Tümsek eÅŸlemenin etkin olmasını gerektirir." -#~ msgid "Alters how mountain-type floatlands taper above and below midpoint." +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "DaÄŸ-türü yüzerkaraların orta noktanın üstünde ve altında nasıl " -#~ "konikleÅŸtiÄŸini deÄŸiÅŸtirir." +#~ "Paralaks oklüzyon eÅŸlemeyi etkinleÅŸtirir.\n" +#~ "Gölgelemelerin etkin olmasını gerektirir." #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "Işık tabloları için gama kodlamayı ayarlayın. Daha yüksek sayılar daha " -#~ "aydınlıktır.\n" -#~ "Bu ayar yalnızca istemci içindir ve sunucu tarafından yok sayılır." +#~ "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 "Path to save screenshots at." -#~ msgstr "Ekran yakalamaların kaydedileceÄŸi konum." +#~ msgid "FPS in pause menu" +#~ msgstr "Duraklat menüsünde FPS" -#~ msgid "Parallax occlusion strength" -#~ msgstr "Paralaks oklüzyon gücü" +#~ msgid "Floatland base height noise" +#~ msgstr "Yüzenkara taban yükseklik gürültüsü" + +#~ msgid "Floatland mountain height" +#~ msgstr "Yüzenkara daÄŸ yüksekliÄŸi" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "Yazı tipi gölge saydamlığı (solukluk, 0 ve 255 arası)." + +#~ msgid "Gamma" +#~ msgstr "Gama" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Normal EÅŸlemeleri Üret" + +#~ msgid "Generate normalmaps" +#~ msgstr "Normal eÅŸlemeleri üret" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 desteÄŸi." + +#~ msgid "Lava depth" +#~ msgstr "Lav derinliÄŸi" + +#~ msgid "Lightness sharpness" +#~ msgstr "Aydınlık keskinliÄŸi" #~ msgid "Limit of emerge queues on disk" #~ msgstr "Diskte emerge sıralarının sınırı" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..." +#~ msgid "Main" +#~ msgstr "Ana" -#~ msgid "Back" -#~ msgstr "Geri" +#~ msgid "Main menu style" +#~ msgstr "Ana menü stili" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Radar kipinde mini harita, YakınlaÅŸtırma x2" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "Radar kipinde mini harita, YakınlaÅŸtırma x4" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "Yüzey kipinde mini harita, YakınlaÅŸtırma x2" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "Yüzey kipinde mini harita, YakınlaÅŸtırma x4" + +#~ msgid "Name/Password" +#~ msgstr "Ad/Åžifre" + +#~ msgid "No" +#~ msgstr "Hayır" + +#~ msgid "Normalmaps sampling" +#~ msgstr "Normal eÅŸleme örnekleme" + +#~ msgid "Normalmaps strength" +#~ msgstr "Normal eÅŸleme gücü" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "Paralaks oklüzyon yineleme sayısı." #~ msgid "Ok" #~ msgstr "Tamam" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "Paralaks oklüzyon efektinin genel sapması, genellikle boyut/2." + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "Paralaks oklüzyon efektinin genel boyutu." + +#~ msgid "Parallax Occlusion" +#~ msgstr "Paralaks Oklüzyon" + +#~ msgid "Parallax occlusion" +#~ msgstr "Paralaks oklüzyon" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "Paralaks oklüzyon sapması" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "Paralaks oklüzyon yinelemesi" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "Paralaks oklüzyon kipi" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "Paralaks oklüzyon boyutu" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "Paralaks oklüzyon gücü" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueTypeFont veya bitmap konumu." + +#~ msgid "Path to save screenshots at." +#~ msgstr "Ekran yakalamaların kaydedileceÄŸi konum." + +#~ msgid "Projecting dungeons" +#~ msgstr "İzdüşüm zindanlar" + +#~ msgid "Reset singleplayer world" +#~ msgstr "Tek oyunculu dünyayı sıfırla" + +#~ msgid "Select Package File:" +#~ msgstr "Paket Dosyası Seç:" + +#~ msgid "Shadow limit" +#~ msgstr "Gölge sınırı" + +#~ msgid "Start Singleplayer" +#~ msgstr "Tek oyunculu baÅŸlat" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "Üretilen normal eÅŸlemelerin gücü." + +#~ msgid "Strength of light curve mid-boost." +#~ msgstr "Işık eÄŸrisi orta-artırmanın kuvveti." + +#~ msgid "This font will be used for certain languages." +#~ msgstr "Belirli diller için bu yazı tipi kullanılacak." + +#~ msgid "Toggle Cinematic" +#~ msgstr "Sinematik Aç/Kapa" + +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "" +#~ "Yüzenkara daÄŸların, orta noktanın altındaki ve üstündeki, tipik maksimum " +#~ "yüksekliÄŸi." + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "" +#~ "Tepe yüksekliÄŸinin ve göl derinliÄŸinin yüzenkara düz arazide deÄŸiÅŸimi." + +#~ msgid "View" +#~ msgstr "Görüntüle" + +#~ msgid "Waving Water" +#~ msgstr "Dalgalanan Su" + +#~ msgid "Waving water" +#~ msgstr "Dalgalanan su" + +#~ msgid "Whether dungeons occasionally project from the terrain." +#~ msgstr "Zindanların bazen araziden yansıyıp yansımayacağı." + +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "Büyük maÄŸaralardaki lavın üst sınırının Y'si." + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "Yüzenkara orta noktasının ve göl yüzeyinin Y-seviyesi." + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "Yüzenkara gölgelerinin uzanacağı Y-seviyesi." + +#~ msgid "Yes" +#~ msgstr "Evet" diff --git a/po/uk/minetest.po b/po/uk/minetest.po index a87362951..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-26 10:41+0000\n" -"Last-Translator: Maksim Gamarnik <MoNTE48@mail.ua>\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 <mykola.naumenko@protonmail.com>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/minetest/" "minetest/uk/>\n" "Language: uk\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.2-dev\n" +"X-Generator: Weblate 4.3.2-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -47,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 "ВерÑÑ–Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ не Ñпівпадає. " @@ -64,12 +60,6 @@ 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." @@ -77,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 @@ -87,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 "Залежить від:" @@ -117,7 +109,7 @@ msgstr "" #: builtin/mainmenu/dlg_config_world.lua msgid "Find More Mods" -msgstr "Знайти Більше Модів" +msgstr "Знайти більше модів" #: builtin/mainmenu/dlg_config_world.lua msgid "Mod:" @@ -161,14 +153,55 @@ 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" @@ -190,6 +223,16 @@ msgid "Install" msgstr "Ð’Ñтановити" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "Ð’Ñтановити" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Ðеобов'Ñзкові залежноÑті:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Модифікації" @@ -203,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" @@ -220,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" @@ -260,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" @@ -374,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" @@ -389,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 @@ -461,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" @@ -505,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" @@ -545,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" @@ -553,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" @@ -561,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". @@ -576,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 @@ -636,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" @@ -682,19 +764,30 @@ msgstr "Ðктивні учаÑники" #: builtin/mainmenu/tab_credits.lua msgid "Core Developers" -msgstr "Розробники двигуна" +msgstr "Розробники Ñдра" #: builtin/mainmenu/tab_credits.lua msgid "Credits" msgstr "ПодÑки" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "Виберіть директорію" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "Попередні учаÑники" #: builtin/mainmenu/tab_credits.lua msgid "Previous Core Developers" -msgstr "Попередні розробники двигуна" +msgstr "Попередні розробники Ñдра" #: builtin/mainmenu/tab_local.lua msgid "Announce Server" @@ -705,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" @@ -726,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 +830,11 @@ 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 +843,11 @@ msgid "Port" msgstr "Порт" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "Виберіть Ñвіт:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "Виберіть Ñвіт:" @@ -758,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 "Бої увімкнено" @@ -807,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 +925,6 @@ 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 "Зберігати розмір вікна" @@ -837,27 +932,19 @@ 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 +953,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Міпмапи Ñ– анізотропний фільтр" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "ÐÑ–" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "Без фільтрації" @@ -897,19 +980,11 @@ 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 +997,11 @@ msgid "Shaders" msgstr "Шейдери" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "ВиÑÑчі оÑтрови" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "Шейдери (недоÑтупно)" @@ -965,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 "Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð¹ÑˆÐ¾Ð²." @@ -1023,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." @@ -1071,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: " @@ -1135,20 +1199,20 @@ msgid "Continue" msgstr "Продовжити" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1163,7 +1227,7 @@ msgstr "" "- %s: інвентар\n" "- Мишка: поворот/дивитиÑÑ\n" "- Ліва кнопка миші: копати/удар\n" -"- Права кнопка миші: поÑтавити/зробити\n" +"- Права кнопка миші: поÑтавити/викориÑтати\n" "- КолеÑо миші: вибір предмета\n" "- %s: чат\n" @@ -1296,34 +1360,6 @@ 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 "Прохід крізь Ñтіни вимкнено" @@ -1385,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" @@ -1618,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" @@ -1716,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 "Паролі не збігаютьÑÑ!" @@ -1855,7 +1909,7 @@ msgstr "Спеціальна" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle HUD" -msgstr "Увімкнути HUD" +msgstr "Увімкнути позначки на екрані" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle chat log" @@ -1961,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 "" @@ -1972,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" @@ -2019,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 "" @@ -2038,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 "" @@ -2068,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 "" @@ -2121,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." @@ -2323,10 +2411,6 @@ 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" @@ -2397,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" @@ -2560,6 +2633,10 @@ 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" msgstr "Додатки" @@ -2617,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 @@ -2625,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 @@ -2728,12 +2809,6 @@ 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 "" @@ -2804,6 +2879,11 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "Права клавіша" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "ЧаÑточки при копанні" @@ -2864,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 @@ -2952,14 +3032,6 @@ 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 "" @@ -2969,18 +3041,6 @@ 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" @@ -2997,12 +3057,6 @@ 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" @@ -3012,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" @@ -3315,10 +3370,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Генерувати карти нормалів" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3372,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 "" @@ -3841,6 +3892,10 @@ 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 "" @@ -3921,6 +3976,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4020,6 +4082,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4576,10 +4645,6 @@ 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 "" @@ -4593,6 +4658,14 @@ 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 +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 @@ -4812,6 +4885,13 @@ msgid "" 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 +5121,6 @@ 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 +5146,6 @@ msgid "" 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 +5171,6 @@ msgid "" 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" @@ -5197,6 +5237,15 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5353,10 +5402,6 @@ 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 "Глибина великих печер" @@ -5611,6 +5656,19 @@ 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 "" @@ -5740,10 +5798,6 @@ 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" @@ -5837,6 +5891,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5895,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 @@ -5922,15 +5980,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6066,6 +6129,17 @@ msgid "" 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 "" @@ -6272,6 +6346,12 @@ msgid "" 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 "" @@ -6394,6 +6474,24 @@ 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 "" @@ -6405,29 +6503,102 @@ msgstr "" msgid "cURL timeout" msgstr "" -#~ msgid "Toggle Cinematic" -#~ 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 "Select Package File:" -#~ msgstr "Виберіть файл пакунку:" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ $1, зачекайте..." -#~ msgid "Lava depth" -#~ msgstr "Глибина лави" +#~ msgid "Enable VBO" +#~ msgstr "Увімкнути VBO" + +#~ msgid "Generate Normal Maps" +#~ msgstr "Генерувати мапи нормалів" + +#~ msgid "Generate normalmaps" +#~ msgstr "Генерувати карти нормалів" #~ msgid "IPv6 support." #~ msgstr "Підтримка IPv6." -#~ msgid "Enable VBO" -#~ msgstr "Увімкнути VBO" +#~ msgid "Lava depth" +#~ msgstr "Глибина лави" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ $1, зачекайте..." +#~ msgid "Main" +#~ msgstr "Головне Меню" -#~ msgid "Back" -#~ msgstr "Ðазад" +#~ msgid "Main menu style" +#~ msgstr "Стиль головного меню" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "Мінімапа в режимі радар. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…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 "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 f2574e132..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-06-13 23:17+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 <leducthn@gmail.com>\n" "Language-Team: Vietnamese <https://hosted.weblate.org/projects/minetest/" @@ -46,10 +46,6 @@ msgstr "Kết nối lại" msgid "The server has requested a reconnect:" msgstr "Máy chá»§ đã yêu cầu kết nối lại:" -#: builtin/mainmenu/common.lua src/client/game.cpp -msgid "Loading..." -msgstr "Äang tải..." - #: builtin/mainmenu/common.lua msgid "Protocol version mismatch. " msgstr "Phiên bản giao thức không khá»›p " @@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. " msgstr "Máy chá»§ há»— trợ các phiên bản giao thức trong khoảng từ $1 đến $2. " #: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Hãy thá» kÃch hoạt lại danh sách máy chá»§ công cá»™ng và kiểm tra kết nối " -"internet cá»§a bạn." - -#: builtin/mainmenu/common.lua msgid "We only support protocol version $1." msgstr "Chúng tôi chỉ há»— trợ phiên bản giao thức $1." @@ -76,7 +66,8 @@ msgstr "Chúng tôi chỉ há»— trợ phiên bản giao thức $1." msgid "We support protocol versions between version $1 and $2." msgstr "Chúng tôi há»— trợ các phiên bản giao thức giữa phiên bản $1 đến $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 @@ -86,7 +77,8 @@ msgstr "Chúng tôi há»— trợ các phiên bản giao thức giữa phiên bản msgid "Cancel" msgstr "Há»§y bá»" -#: 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 "Phụ thuá»™c:" @@ -163,14 +155,53 @@ msgid "enabled" msgstr "kÃch hoạt" #: 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 "Äang tả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 "Tất cả các gói" #: 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 "" @@ -193,6 +224,15 @@ msgid "Install" msgstr "" #: builtin/mainmenu/dlg_contentstore.lua +msgid "Install $1" +msgstr "" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "Phụ thuá»™c tùy chá»n:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Mod" @@ -206,8 +246,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 @@ -223,7 +278,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 @@ -518,6 +577,10 @@ msgid "Scale" msgstr "" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "" @@ -632,6 +695,20 @@ msgstr "" msgid "Unable to install a modpack as a $1" msgstr "" +#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp +msgid "Loading..." +msgstr "Äang tả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 "" +"Hãy thá» kÃch hoạt lại danh sách máy chá»§ công cá»™ng và kiểm tra kết nối " +"internet cá»§a bạn." + #: builtin/mainmenu/tab_content.lua msgid "Browse online content" msgstr "" @@ -685,6 +762,16 @@ msgid "Credits" msgstr "" #: builtin/mainmenu/tab_credits.lua +msgid "Open User Data Directory" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "" @@ -701,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 "" @@ -725,7 +808,7 @@ msgid "Install games from ContentDB" msgstr "" #: builtin/mainmenu/tab_local.lua -msgid "Name/Password" +msgid "Name" msgstr "" #: builtin/mainmenu/tab_local.lua @@ -737,6 +820,10 @@ msgid "No world created or selected!" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Play Game" msgstr "" @@ -745,6 +832,10 @@ msgid "Port" msgstr "" #: builtin/mainmenu/tab_local.lua +msgid "Select Mods" +msgstr "" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "" @@ -760,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 "" @@ -784,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 "" @@ -822,10 +913,6 @@ 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 "" @@ -833,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 "" @@ -850,10 +933,6 @@ msgid "Fancy Leaves" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "Generate Normal Maps" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "Mipmap" msgstr "" @@ -862,10 +941,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "" @@ -893,19 +968,11 @@ 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 "" @@ -918,6 +985,10 @@ msgid "Shaders" msgstr "" #: builtin/mainmenu/tab_settings.lua +msgid "Shaders (experimental)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "" @@ -961,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 "" - -#: 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 "" @@ -1136,13 +1191,13 @@ msgid "" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1264,34 +1319,6 @@ 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 "" @@ -1683,6 +1710,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 "" @@ -1927,12 +1972,6 @@ msgid "" 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 "" @@ -2039,6 +2078,10 @@ 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 "" @@ -2272,10 +2315,6 @@ 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" @@ -2346,16 +2385,6 @@ 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 msgid "Chat font size" msgstr "" @@ -2507,6 +2536,10 @@ 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 "" @@ -2563,7 +2596,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 @@ -2571,7 +2606,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 @@ -2671,12 +2708,6 @@ 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 "" @@ -2747,6 +2778,10 @@ msgid "Desynchronize block animation" msgstr "" #: src/settings_translation_file.cpp +msgid "Dig key" +msgstr "" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "" @@ -2807,7 +2842,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 @@ -2895,14 +2930,6 @@ 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 "" @@ -2912,18 +2939,6 @@ 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" @@ -2940,12 +2955,6 @@ 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" @@ -2955,7 +2964,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 @@ -3257,10 +3266,6 @@ msgid "GUI scaling filter txr2img" msgstr "" #: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp msgid "Global callbacks" msgstr "" @@ -3314,8 +3319,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 "" @@ -3782,6 +3787,10 @@ 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 "" @@ -3862,6 +3871,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -3961,6 +3977,13 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "Key for selecting the 11th hotbar slot.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -4517,10 +4540,6 @@ 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 "" @@ -4534,6 +4553,14 @@ 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 "" @@ -4697,7 +4724,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 @@ -4746,6 +4773,13 @@ msgid "" 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 "" @@ -4975,14 +5009,6 @@ 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 "" @@ -5008,10 +5034,6 @@ msgid "" msgstr "" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5037,34 +5059,6 @@ msgid "" 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" @@ -5130,6 +5124,14 @@ msgid "Pitch move mode" msgstr "" #: src/settings_translation_file.cpp +msgid "Place key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Place repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp msgid "" "Player is able to fly without being affected by gravity.\n" "This requires the \"fly\" privilege on the server." @@ -5285,10 +5287,6 @@ msgid "Right key" msgstr "" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "" @@ -5540,6 +5538,16 @@ 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 "" @@ -5669,10 +5677,6 @@ 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" @@ -5766,6 +5770,10 @@ 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" "when calling `/profiler save [format]` without format." @@ -5824,8 +5832,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 @@ -5851,15 +5859,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -5995,6 +6008,17 @@ msgid "" 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 "" @@ -6197,6 +6221,12 @@ msgid "" 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 "" @@ -6319,6 +6349,24 @@ 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/zh_CN/minetest.po b/po/zh_CN/minetest.po index 80f2d86fa..aa816e11d 100644 --- a/po/zh_CN/minetest.po +++ b/po/zh_CN/minetest.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Chinese (Simplified) (Minetest)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-06-13 21:08+0000\n" -"Last-Translator: ferrumcccp <wushuzhen1975@icloud.com>\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 <qi_wang_zz@outlook.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "minetest/minetest/zh_Hans/>\n" "Language: zh_CN\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.1-dev\n" +"X-Generator: Weblate 4.5-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -24,7 +24,7 @@ msgstr "您已æ»äº¡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -46,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 "å议版本ä¸åŒ¹é…。 " @@ -63,10 +59,6 @@ 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。" @@ -74,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 @@ -84,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 "ä¾èµ–项:" @@ -112,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:" @@ -156,21 +150,61 @@ 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 "在没有cURL的情况下编译Minetest时,ContentDBä¸å¯ç”¨" #: builtin/mainmenu/dlg_contentstore.lua -#, fuzzy msgid "Downloading..." -msgstr "载入ä¸..." +msgstr "下载ä¸..." #: builtin/mainmenu/dlg_contentstore.lua msgid "Failed to download $1" @@ -186,6 +220,16 @@ msgid "Install" msgstr "安装" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "安装" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "å¯é€‰ä¾èµ–项:" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Mod" @@ -199,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" @@ -216,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 @@ -225,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" @@ -274,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" @@ -329,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" @@ -352,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 @@ -374,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" @@ -527,6 +577,10 @@ msgid "Scale" msgstr "比例" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "æœç´¢" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "选择目录" @@ -641,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 "æµè§ˆåœ¨çº¿å†…容" @@ -694,6 +761,17 @@ msgid "Credits" msgstr "贡献者" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "选择目录" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "å‰è´¡çŒ®è€…" @@ -710,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 "å¼€å¯ä¼¤å®³" @@ -731,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 +820,11 @@ 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 +833,11 @@ msgid "Port" msgstr "端å£" #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "选择世界:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "选择世界:" @@ -769,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 "æ”¶è—项" @@ -793,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 +915,6 @@ 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 "自动ä¿å˜å±å¹•尺寸" @@ -842,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 +935,6 @@ 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 +943,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Mip 贴图 + å„å‘异性过滤" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "å¦" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "æ— è¿‡æ»¤" @@ -902,19 +970,11 @@ 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 +987,11 @@ msgid "Shaders" msgstr "ç€è‰²å™¨" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "悬空岛(实验性)" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "ç€è‰²å™¨ (ä¸å¯ç”¨)" @@ -940,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." @@ -970,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 "连接超时。" @@ -1140,20 +1189,20 @@ msgid "Continue" msgstr "ç»§ç»" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1182,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" @@ -1190,7 +1239,7 @@ msgstr "调试信æ¯å·²æ˜¾ç¤º" #: src/client/game.cpp msgid "Debug info, profiler graph, and wireframe hidden" -msgstr "éšè—调试信æ¯ï¼Œæ€§èƒ½åˆ†æžå›¾ï¼Œå’Œçº¿æ¡†" +msgstr "调试信æ¯ã€æ€§èƒ½åˆ†æžå›¾å’Œçº¿æ¡†å·²éšè—" #: src/client/game.cpp msgid "" @@ -1242,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)" @@ -1301,34 +1350,6 @@ 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 "穿墙模å¼å·²ç¦ç”¨" @@ -1362,7 +1383,7 @@ msgstr "俯仰移动模å¼å·²ç¦ç”¨" #: src/client/game.cpp msgid "Profiler graph shown" -msgstr "显示性能分æžå›¾" +msgstr "性能分æžå›¾å·²æ˜¾ç¤º" #: src/client/game.cpp msgid "Remote server" @@ -1390,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" @@ -1720,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 "密ç ä¸åŒ¹é…ï¼" @@ -1737,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" @@ -1862,7 +1903,7 @@ msgstr "å¯ç”¨/ç¦ç”¨èŠå¤©è®°å½•" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fast" -msgstr "å¯ç”¨/ç¦ç”¨å¿«é€Ÿç§»åŠ¨æ¨¡å¼" +msgstr "å¯ç”¨/ç¦ç”¨å¿«é€Ÿæ¨¡å¼" #: src/gui/guiKeyChangeMenu.cpp msgid "Toggle fly" @@ -1985,14 +2026,6 @@ msgstr "" "å¤å²›çš„垂直压æ‰å½¢çŠ¶ï¼Œå°†æ‰€æœ‰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噪声。" @@ -2029,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." @@ -2052,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." @@ -2114,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" @@ -2171,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" @@ -2192,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" @@ -2359,17 +2403,13 @@ 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" "Only works on GLES platforms. Most users will not need to change this.\n" @@ -2446,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" @@ -2623,6 +2647,10 @@ 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网å€" @@ -2687,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 @@ -2695,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" @@ -2759,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 "" @@ -2800,14 +2832,6 @@ 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 "定义基准地é¢é«˜åº¦." @@ -2882,6 +2906,11 @@ 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 +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 @@ -3055,17 +3085,6 @@ 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的缓å˜ã€‚" @@ -3075,22 +3094,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3111,14 +3114,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3126,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" @@ -3161,7 +3162,7 @@ msgstr "åŽå¤‡å—体大å°" #: src/settings_translation_file.cpp msgid "Fast key" -msgstr "快速移动键" +msgstr "快速键" #: src/settings_translation_file.cpp msgid "Fast mode acceleration" @@ -3245,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" @@ -3336,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 "" @@ -3452,10 +3448,6 @@ 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 "全局回调" @@ -3514,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" @@ -4035,6 +4028,11 @@ 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 "摇æ†å¤´çµæ•度" @@ -4137,6 +4135,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"跳跃键。\n" +"è§http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4279,6 +4288,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"跳跃键。\n" +"è§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." @@ -4667,7 +4687,7 @@ msgid "" "See http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" msgstr "" -"开关电影模å¼é”®ã€‚\n" +"å¯ç”¨/ç¦ç”¨ç”µå½±æ¨¡å¼é”®ã€‚\n" "è§http://irrlicht.sourceforge.net/docu/namespaceirr." "html#a54da2a0e231901735e3da1b0edf72eb3" @@ -5015,19 +5035,14 @@ 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." msgstr "使雾和天空颜色ä¾èµ–于一天ä¸çš„æ—¶é—´ï¼ˆé»Žæ˜Ž/傿™šï¼‰å’Œè§†çº¿æ–¹å‘。" @@ -5041,6 +5056,14 @@ 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 "地图目录" @@ -5099,7 +5122,6 @@ msgstr "" "忽略'jungles'æ ‡ç¾ã€‚" #: src/settings_translation_file.cpp -#, fuzzy msgid "" "Map generation attributes specific to Mapgen v7.\n" "'ridges': Rivers.\n" @@ -5107,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" @@ -5222,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 @@ -5264,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." @@ -5373,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" @@ -5531,19 +5561,10 @@ 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" @@ -5557,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" @@ -5568,7 +5586,7 @@ msgstr "" "è¦å‘Šï¼šå¢žå¤§æ¤å€¼ä¼šæé«˜å¼•擎地图生æˆå™¨é€Ÿåº¦ï¼Œä½†ä¼šç”±äºŽ\n" "å¹²æ‰°å…¶ä»–è¿›ç¨‹è€Œå½±å“æ¸¸æˆä½“验,尤其是å•äººæ¨¡å¼æˆ–è¿è¡Œ\n" "‘on_generated’ä¸çš„Lua代ç 。对于大部分用户æ¥è¯´ï¼Œæœ€\n" -"佳值为1。" +"佳值为'1'。" #: src/settings_translation_file.cpp msgid "" @@ -5581,10 +5599,6 @@ msgstr "" "(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)" @@ -5612,34 +5626,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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5657,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 "" @@ -5698,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" @@ -5718,6 +5705,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5783,7 +5780,7 @@ msgstr "性能分æž" #: src/settings_translation_file.cpp msgid "Prometheus listener address" -msgstr "" +msgstr "Prometheus 监å¬å™¨åœ°å€" #: src/settings_translation_file.cpp msgid "" @@ -5792,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." @@ -5895,10 +5896,6 @@ msgid "Right key" msgstr "峿–¹å‘é”®" #: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "å³å‡»é‡å¤é—´éš”" - -#: src/settings_translation_file.cpp msgid "River channel depth" msgstr "æ²³é“æ·±åº¦" @@ -6188,6 +6185,20 @@ 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 "关闿¶ˆæ¯" @@ -6223,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" @@ -6303,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 "" @@ -6310,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" @@ -6317,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 "" @@ -6343,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" @@ -6350,7 +6363,7 @@ msgstr "ä¸¥æ ¼å议检查" #: src/settings_translation_file.cpp msgid "Strip color codes" -msgstr "" +msgstr "æ¡å½¢é¢œè‰²ä»£ç " #: src/settings_translation_file.cpp msgid "" @@ -6365,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" @@ -6372,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 "" @@ -6405,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 "" @@ -6412,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 "" @@ -6432,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 @@ -6496,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 @@ -6523,15 +6552,20 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" #: src/settings_translation_file.cpp msgid "" -"The time in seconds it takes between repeated 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 @@ -6544,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 @@ -6555,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" @@ -6589,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" @@ -6607,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" @@ -6614,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 "" @@ -6642,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." @@ -6670,6 +6712,17 @@ msgid "" 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 "" @@ -6678,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 "山谷深度" @@ -6693,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 "" @@ -6753,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" @@ -6803,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" @@ -6811,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 "世界水平é¢çº§åˆ«ã€‚" @@ -6830,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" @@ -6889,6 +6932,12 @@ msgid "" 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 "" @@ -7010,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 @@ -7028,50 +7095,69 @@ msgstr "cURL å¹¶å‘é™åˆ¶" msgid "cURL timeout" msgstr "cURL è¶…æ—¶" -#~ msgid "Toggle Cinematic" -#~ msgstr "切æ¢ç”µå½±æ¨¡å¼" - -#~ msgid "Select Package File:" -#~ msgstr "选择包文件:" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = 利用梯度信æ¯è¿›è¡Œè§†å·®é®è”½ (较快).\n" +#~ "1 = æµ®é›•æ˜ å°„ (较慢, 但准确)." -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "å¤§åž‹éšæœºæ´žç©´çš„Y轴最大值。" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "调整亮度表的伽玛编ç 。较高的数值会较亮。\n" +#~ "这个设定是给客户端使用的,会被æœåŠ¡å™¨å¿½ç•¥ã€‚" -#~ msgid "Waving Water" -#~ msgstr "æµåŠ¨çš„æ°´é¢" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "ä½ ç¡®å®šè¦é‡ç½®ä½ çš„å•人世界å—?" -#~ msgid "Waving water" -#~ msgstr "摇动水" +#~ msgid "Back" +#~ msgstr "åŽé€€" -#~ msgid "This font will be used for certain languages." -#~ msgstr "用于特定è¯è¨€çš„å—体。" +#~ msgid "Bump Mapping" +#~ msgstr "凹凸贴图" -#, fuzzy -#~ msgid "Shadow limit" -#~ msgstr "地图å—é™åˆ¶" +#~ msgid "Bumpmapping" +#~ msgstr "凹凸贴图" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "TrueType å—体或ä½å›¾çš„路径。" +#~ 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" +#~ "需è¦ç”¨äºŽå°å±å¹•。" -#, fuzzy -#~ msgid "Lava depth" -#~ msgstr "巨大洞穴深度" +#~ msgid "Config mods" +#~ msgstr "é…ç½® mod" -#~ msgid "IPv6 support." -#~ msgstr "IPv6 支æŒã€‚" +#~ msgid "Configure" +#~ msgstr "é…ç½®" -#~ msgid "Gamma" -#~ msgstr "伽马" +#, fuzzy +#~ msgid "" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "控制 floatland 地形的密度。\n" +#~ "æ˜¯æ·»åŠ åˆ° \"np_mountain\" 噪声值的åç§»é‡ã€‚" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "å—体阴影ä¸é€æ˜Žåº¦ï¼ˆ0-255)。" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧é“宽度,较å°çš„值创建更宽的隧é“。" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "å¯ç”¨ç”µå½±åŸºè°ƒæ˜ å°„" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "准星颜色(红,绿,è“)。" -#~ msgid "Enable VBO" -#~ msgstr "å¯ç”¨ VBO" +#, fuzzy +#~ msgid "Darkness sharpness" +#~ msgstr "地图生æˆå™¨å¹³é¢æ¹–å¡åº¦" #~ msgid "" #~ "Defines areas of floatland smooth terrain.\n" @@ -7080,43 +7166,181 @@ msgstr "cURL è¶…æ—¶" #~ "定义 floatland 平滑地形的区域。\n" #~ "当噪音0æ—¶, 平滑的 floatlands å‘生。" -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "地图生æˆå™¨å¹³é¢æ¹–å¡åº¦" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定义æè´¨é‡‡æ ·æ¥éª¤ã€‚\n" +#~ "数值越高常æ€è´´å›¾è¶Šå¹³æ»‘。" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧é“宽度,较å°çš„值创建更宽的隧é“。" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "æ£åœ¨ä¸‹è½½å’Œå®‰è£… $1,请ç¨ç‰..." + +#~ msgid "Enable VBO" +#~ msgstr "å¯ç”¨ VBO" -#, fuzzy #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the " +#~ "texture pack\n" +#~ "or need to be auto-generated.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "控制 floatland 地形的密度。\n" -#~ "æ˜¯æ·»åŠ åˆ° \"np_mountain\" 噪声值的åç§»é‡ã€‚" +#~ "å¯ç”¨æè´¨çš„å‡¹å‡¸è´´å›¾æ•ˆæžœã€‚éœ€è¦æè´¨åŒ…æ”¯æŒæ³•线贴图,\n" +#~ "å¦åˆ™å°†è‡ªåŠ¨ç”Ÿæˆæ³•线。\n" +#~ "需è¦å¯ç”¨ç€è‰²å™¨ã€‚" + +#~ msgid "Enables filmic tone mapping" +#~ msgstr "å¯ç”¨ç”µå½±åŸºè°ƒæ˜ å°„" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." #~ msgstr "" -#~ "调整亮度表的伽玛编ç 。较高的数值会较亮。\n" -#~ "这个设定是给客户端使用的,会被æœåŠ¡å™¨å¿½ç•¥ã€‚" +#~ "å¯ç”¨å³æ—¶æ³•线贴图生æˆï¼ˆæµ®é›•效果)。\n" +#~ "需è¦å¯ç”¨å‡¹å‡¸è´´å›¾ã€‚" -#~ msgid "Path to save screenshots at." -#~ msgstr "å±å¹•截图ä¿å˜è·¯å¾„。" +#~ msgid "" +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." +#~ msgstr "" +#~ "å¯ç”¨è§†å·®é®è”½è´´å›¾ã€‚\n" +#~ "需è¦å¯ç”¨ç€è‰²å™¨ã€‚" -#~ msgid "Parallax occlusion strength" -#~ msgstr "视差é®è”½å¼ºåº¦" +#~ msgid "" +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." +#~ msgstr "" +#~ "实验性选项,设为大于 0 çš„æ•°å—æ—¶å¯èƒ½å¯¼è‡´\n" +#~ "å—之间出现å¯è§ç©ºé—´ã€‚" + +#~ msgid "FPS in pause menu" +#~ msgstr "æš‚åœèœå• FPS" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "å—体阴影ä¸é€æ˜Žåº¦ï¼ˆ0-255)。" + +#~ msgid "Gamma" +#~ msgstr "伽马" + +#~ msgid "Generate Normal Maps" +#~ msgstr "ç”Ÿæˆæ³•线贴图" + +#~ msgid "Generate normalmaps" +#~ msgstr "生æˆå‘现贴图" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支æŒã€‚" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "巨大洞穴深度" #~ msgid "Limit of emerge queues on disk" #~ msgstr "ç£ç›˜ä¸Šçš„生产队列é™åˆ¶" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "æ£åœ¨ä¸‹è½½å’Œå®‰è£… $1,请ç¨ç‰..." +#~ msgid "Main" +#~ msgstr "主èœå•" -#~ msgid "Back" -#~ msgstr "åŽé€€" +#~ msgid "Main menu style" +#~ msgstr "主èœå•æ ·å¼" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "é›·è¾¾å°åœ°å›¾ï¼Œæ”¾å¤§è‡³ä¸¤å€" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "é›·è¾¾å°åœ°å›¾, 放大至四å€" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "地表模å¼å°åœ°å›¾, 放大至两å€" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "地表模å¼å°åœ°å›¾, 放大至四å€" + +#~ msgid "Name/Password" +#~ msgstr "用户å/密ç " + +#~ msgid "No" +#~ msgstr "å¦" + +#~ msgid "Normalmaps sampling" +#~ msgstr "æ³•çº¿è´´å›¾é‡‡æ ·" + +#~ msgid "Normalmaps strength" +#~ msgstr "法线贴图强度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "视差é®è”½è¿ä»£æ•°ã€‚" #~ msgid "Ok" #~ msgstr "确定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "视差é®è”½æ•ˆæžœçš„æ•´ä½“斜纹,通常为比例/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "视差é®è”½æ•ˆæžœçš„æ€»ä½“比例。" + +#~ msgid "Parallax Occlusion" +#~ msgstr "视差é®è”½" + +#~ msgid "Parallax occlusion" +#~ msgstr "视差é®è”½" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "视差é®è”½åç§»" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "视差é®è”½è¿ä»£" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "视差é®è”½æ¨¡å¼" + +#~ msgid "Parallax occlusion scale" +#~ msgstr "视差é®è”½æ¯”例" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "视差é®è”½å¼ºåº¦" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType å—体或ä½å›¾çš„路径。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "å±å¹•截图ä¿å˜è·¯å¾„。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "é‡ç½®å•人世界" + +#~ msgid "Select Package File:" +#~ msgstr "选择包文件:" + +#, fuzzy +#~ msgid "Shadow limit" +#~ msgstr "地图å—é™åˆ¶" + +#~ msgid "Start Singleplayer" +#~ msgstr "å•人游æˆ" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生æˆçš„一般地图强度。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "用于特定è¯è¨€çš„å—体。" + +#~ msgid "Toggle Cinematic" +#~ msgstr "切æ¢ç”µå½±æ¨¡å¼" + +#~ msgid "View" +#~ msgstr "视野" + +#~ msgid "Waving Water" +#~ msgstr "æµåŠ¨çš„æ°´é¢" + +#~ msgid "Waving water" +#~ msgstr "摇动水" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "å¤§åž‹éšæœºæ´žç©´çš„Y轴最大值。" + +#~ msgid "Yes" +#~ msgstr "是" diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po index 646c292b5..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-06-13 23:17+0200\n" -"PO-Revision-Date: 2020-01-29 13:50+0000\n" -"Last-Translator: pan93412 <pan93412@gmail.com>\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 <yiufamily.hh@gmail.com>\n" "Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/" "minetest/minetest/zh_Hant/>\n" "Language: zh_TW\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 3.11-dev\n" +"X-Generator: Weblate 4.4.1-dev\n" #: builtin/client/death_formspec.lua src/client/game.cpp msgid "Respawn" @@ -23,8 +23,9 @@ msgid "You died" msgstr "您已æ»äº¡" #: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp +#, fuzzy msgid "OK" -msgstr "" +msgstr "OK" #: builtin/fstk/ui.lua msgid "An error occurred in a Lua script:" @@ -46,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 "å”定版本ä¸ç¬¦åˆã€‚ " @@ -63,10 +60,6 @@ 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。" @@ -74,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 @@ -84,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 "相ä¾å…ƒä»¶ï¼š" @@ -112,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:" @@ -156,16 +151,58 @@ 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 @@ -186,6 +223,16 @@ msgid "Install" msgstr "安è£" #: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install $1" +msgstr "安è£" + +#: builtin/mainmenu/dlg_contentstore.lua +#, fuzzy +msgid "Install missing dependencies" +msgstr "å¯é¸ç›¸ä¾å…ƒä»¶ï¼š" + +#: builtin/mainmenu/dlg_contentstore.lua #: builtin/mainmenu/dlg_settings_advanced.lua msgid "Mods" msgstr "Mod" @@ -199,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" @@ -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 @@ -224,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" @@ -279,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 @@ -302,7 +371,7 @@ msgstr "" #: builtin/mainmenu/dlg_create_world.lua msgid "Hills" -msgstr "" +msgstr "å±±" #: builtin/mainmenu/dlg_create_world.lua #, fuzzy @@ -310,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" @@ -341,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" @@ -366,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 @@ -375,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" @@ -415,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 @@ -530,6 +604,10 @@ msgid "Scale" msgstr "è¦æ¨¡" #: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Search" +msgstr "æœå°‹" + +#: builtin/mainmenu/dlg_settings_advanced.lua msgid "Select directory" msgstr "鏿“‡ç›®éŒ„" @@ -644,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 "ç€è¦½ç·šä¸Šå…§å®¹" @@ -697,6 +788,17 @@ msgid "Credits" msgstr "感è¬" #: builtin/mainmenu/tab_credits.lua +#, fuzzy +msgid "Open User Data Directory" +msgstr "鏿“‡ç›®éŒ„" + +#: builtin/mainmenu/tab_credits.lua +msgid "" +"Opens the directory that contains user-provided worlds, games, mods,\n" +"and texture packs in a file manager / explorer." +msgstr "" + +#: builtin/mainmenu/tab_credits.lua msgid "Previous Contributors" msgstr "å…ˆå‰çš„è²¢ç»è€…" @@ -713,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 "啟用傷害" @@ -733,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 +848,11 @@ 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 +861,11 @@ msgid "Port" msgstr "é€£ç·šåŸ " #: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Select Mods" +msgstr "é¸å–世界:" + +#: builtin/mainmenu/tab_local.lua msgid "Select World:" msgstr "é¸å–世界:" @@ -772,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 "æ”¶è—" @@ -796,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 +943,6 @@ 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 "自動儲å˜èž¢å¹•大å°" @@ -845,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 +963,6 @@ 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 +971,6 @@ msgid "Mipmap + Aniso. Filter" msgstr "Mip 貼圖 + Aniso. éŽæ¿¾å™¨" #: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "å¦" - -#: builtin/mainmenu/tab_settings.lua msgid "No Filter" msgstr "æ²’æœ‰éŽæ¿¾å™¨" @@ -905,19 +998,11 @@ 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 +1015,11 @@ msgid "Shaders" msgstr "著色器" #: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Shaders (experimental)" +msgstr "浮地高度" + +#: builtin/mainmenu/tab_settings.lua msgid "Shaders (unavailable)" msgstr "著色器(無法使用)" @@ -973,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 "連線逾時。" @@ -1143,20 +1217,20 @@ msgid "Continue" msgstr "繼續" #: src/client/game.cpp -#, c-format +#, fuzzy, c-format msgid "" "Controls:\n" "- %s: move forwards\n" "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" +"- %s: jump/climb up\n" +"- %s: dig/punch\n" +"- %s: place/use\n" +"- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" msgstr "" @@ -1304,34 +1378,6 @@ 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 "å·²åœç”¨ç©¿ç‰†æ¨¡å¼" @@ -1392,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" @@ -1723,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 "密碼ä¸ç¬¦åˆï¼" @@ -1978,14 +2044,6 @@ msgid "" 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 雜訊值。" @@ -2109,6 +2167,10 @@ 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" msgstr "發生佇列的絕å°é™åˆ¶" @@ -2364,10 +2426,6 @@ 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" @@ -2439,16 +2497,6 @@ 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 "å—型大å°" @@ -2607,6 +2655,10 @@ 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" msgstr "繼續" @@ -2667,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 @@ -2675,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" @@ -2783,14 +2840,6 @@ 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." msgstr "定義樹木å€èˆ‡æ¨¹æœ¨å¯†åº¦ã€‚" @@ -2871,6 +2920,11 @@ msgid "Desynchronize block animation" msgstr "ç•°æ¥åŒ–方塊動畫" #: src/settings_translation_file.cpp +#, fuzzy +msgid "Dig key" +msgstr "å³éµ" + +#: src/settings_translation_file.cpp msgid "Digging particles" msgstr "挖掘粒å" @@ -2934,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 @@ -3038,17 +3093,6 @@ 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 "å•Ÿç”¨é¢æ—‹è½‰æ–¹å‘çš„ç¶²æ ¼å¿«å–。" @@ -3058,22 +3102,6 @@ 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" "If disabled, this completely disables all sounds everywhere and the in-game\n" "sound controls will be non-functional.\n" @@ -3090,14 +3118,6 @@ 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" "Value = 1.0 creates a uniform, linear tapering.\n" "Values > 1.0 create a smooth tapering suitable for the default separated\n" @@ -3107,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" @@ -3435,10 +3456,6 @@ 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 "全域回呼" @@ -3500,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" @@ -4002,6 +4019,11 @@ 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 "æ–æ¡¿éˆæ•度" @@ -4104,6 +4126,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for digging.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"è·³èºçš„æŒ‰éµã€‚\n" +"請見 http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp msgid "" "Key for dropping the currently selected item.\n" "See http://irrlicht.sourceforge.net/docu/namespaceirr." @@ -4246,6 +4279,17 @@ msgstr "" "html#a54da2a0e231901735e3da1b0edf72eb3" #: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for placing.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"è·³èºçš„æŒ‰éµã€‚\n" +"請見 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." @@ -4995,11 +5039,6 @@ 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." msgstr "讓霧與天空的é¡è‰²å–æ±ºæ–¼æ™‚é–“ï¼ˆé»Žæ˜Žï¼æ—¥è½ï¼‰èˆ‡è§€çœ‹æ–¹å‘。" @@ -5013,6 +5052,14 @@ 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 "地圖目錄" @@ -5212,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 @@ -5267,6 +5315,13 @@ 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 "強制載入地圖å€å¡Šçš„æœ€å¤§æ•¸é‡ã€‚" @@ -5513,14 +5568,6 @@ 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 "出ç¾çš„執行緒數" @@ -5549,10 +5596,6 @@ msgstr "" "è¨˜æ†¶é«”è€—è²»ï¼ˆæ ¹æ“šç¶“é©—ï¼Œ4096=100MB)。" #: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "視差é®è”½è¿ä»£æ¬¡æ•¸ã€‚" - -#: src/settings_translation_file.cpp msgid "Online Content Repository" msgstr "" @@ -5578,35 +5621,6 @@ msgid "" 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" "If “freetype†setting is enabled: Must be a TrueType font.\n" @@ -5674,6 +5688,16 @@ 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" "This requires the \"fly\" privilege on the server." @@ -5841,10 +5865,6 @@ 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 "æ²³æµæ·±åº¦" @@ -6147,6 +6167,19 @@ 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 "關閉訊æ¯" @@ -6292,10 +6325,6 @@ 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" @@ -6396,6 +6425,11 @@ 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" "when calling `/profiler save [format]` without format." @@ -6459,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 @@ -6495,6 +6529,12 @@ msgstr "" #: src/settings_translation_file.cpp msgid "" +"The time budget allowed for ABMs to execute on each step\n" +"(as a fraction of the ABM Interval)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" "The time in seconds it takes between repeated events\n" "when holding down a joystick button combination." msgstr "" @@ -6504,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 @@ -6656,6 +6695,17 @@ msgid "" 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 "當縮放æè³ªæ™‚ä½¿ç”¨ä¸‰ç·šæ€§éŽæ¿¾ã€‚" @@ -6895,6 +6945,12 @@ msgid "" 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 "æ˜¯å¦æ¯å€‹åœ°åœ–å€å¡Šçš„節點æè³ªå‹•ç•«å¯ä»¥ä¸åŒæ¥ã€‚" @@ -7030,6 +7086,24 @@ 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 檔案下載逾時" @@ -7041,112 +7115,258 @@ msgstr "cURL 並行é™åˆ¶" msgid "cURL timeout" msgstr "cURL 逾時" -#~ msgid "Toggle Cinematic" -#~ msgstr "切æ›éŽå ´å‹•ç•«" +#~ msgid "" +#~ "0 = parallax occlusion with slope information (faster).\n" +#~ "1 = relief mapping (slower, more accurate)." +#~ msgstr "" +#~ "0 = åŒ…å«æ–œçŽ‡è³‡è¨Šçš„è¦–å·®é®è”½ï¼ˆè¼ƒå¿«ï¼‰ã€‚\n" +#~ "1 = 替æ›è²¼åœ–(較慢,較準確)。" -#, fuzzy -#~ msgid "Select Package File:" -#~ msgstr "é¸å– Mod 檔案:" +#~ msgid "" +#~ "Adjust the gamma encoding for the light tables. Higher numbers are " +#~ "brighter.\n" +#~ "This setting is for the client only and is ignored by the server." +#~ msgstr "" +#~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n" +#~ "這個è¨å®šæ˜¯çµ¦å®¢æˆ¶ç«¯ä½¿ç”¨çš„,會被伺æœå™¨å¿½ç•¥ã€‚" -#, fuzzy -#~ msgid "Y of upper limit of lava in large caves." -#~ msgstr "大型å½éš¨æ©Ÿæ´žç©´çš„ Y 上é™ã€‚" +#~ msgid "Are you sure to reset your singleplayer world?" +#~ msgstr "您確定è¦é‡è¨æ‚¨çš„å–®äººéŠæˆ²ä¸–界嗎?" -#~ msgid "Waving Water" -#~ msgstr "波動的水" +#~ msgid "Back" +#~ msgstr "返回" -#~ msgid "Y-level to which floatland shadows extend." -#~ msgstr "浮地陰影擴展的 Y 高度。" +#~ msgid "Bump Mapping" +#~ msgstr "æ˜ å°„è²¼åœ–" -#~ msgid "Y-level of floatland midpoint and lake surface." -#~ msgstr "浮地ä¸é»žèˆ‡æ¹–表é¢çš„ Y 高度。" +#~ msgid "Bumpmapping" +#~ msgstr "æ˜ å°„è²¼åœ–" -#~ msgid "Waving water" -#~ msgstr "波動的水" +#~ msgid "Config mods" +#~ msgstr "è¨å®š Mod" -#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." -#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。" +#~ msgid "Configure" +#~ msgstr "è¨å®š" #, fuzzy #~ msgid "" -#~ "Typical maximum height, above and below midpoint, of floatland mountains." -#~ msgstr "浮地山å€åŸŸçš„典型最大高度,高於與低於ä¸é»žã€‚" - -#~ msgid "This font will be used for certain languages." -#~ msgstr "這個å—型將會被用於特定的語言。" +#~ "Controls the density of mountain-type floatlands.\n" +#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ msgstr "" +#~ "控制山地的浮地密度。\n" +#~ "æ˜¯åŠ å…¥åˆ° 'np_mountain' 噪音值的補償。" -#~ msgid "Shadow limit" -#~ msgstr "é™°å½±é™åˆ¶" +#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." +#~ msgstr "控制隧é“的寬度,較å°çš„å€¼æœƒå‰µé€ å‡ºè¼ƒå¯¬çš„éš§é“。" -#~ msgid "Path to TrueTypeFont or bitmap." -#~ msgstr "TrueType å—型或點陣å—的路徑。" +#~ msgid "Crosshair color (R,G,B)." +#~ msgstr "åå—色彩 (R,G,B)。" #, fuzzy -#~ msgid "Lava depth" -#~ msgstr "大型洞穴深度" - -#~ msgid "IPv6 support." -#~ msgstr "IPv6 支æ´ã€‚" - -#~ msgid "Gamma" -#~ msgstr "Gamma" +#~ msgid "Darkness sharpness" +#~ msgstr "湖泊å¡åº¦" -#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." -#~ msgstr "å—型陰影 alpha(ä¸é€æ˜Žåº¦ï¼Œä»‹æ–¼ 0 到 255)。" +#~ msgid "" +#~ "Defines areas of floatland smooth terrain.\n" +#~ "Smooth floatlands occur when noise > 0." +#~ msgstr "" +#~ "定義浮地的平整地形å€ã€‚\n" +#~ "平整的浮地會在噪音 > 0 時產生。" -#~ msgid "Floatland base height noise" -#~ msgstr "浮地基礎高度噪音" +#~ msgid "" +#~ "Defines sampling step of texture.\n" +#~ "A higher value results in smoother normal maps." +#~ msgstr "" +#~ "定義æè³ªçš„æŽ¡æ¨£æ¥é©Ÿã€‚\n" +#~ "較高的值會有較平滑的一般地圖。" -#~ msgid "Enables filmic tone mapping" -#~ msgstr "å•Ÿç”¨é›»å½±è‰²èª¿æ˜ å°„" +#~ msgid "Downloading and installing $1, please wait..." +#~ msgstr "æ£åœ¨ä¸‹è¼‰ä¸¦å®‰è£ $1,請ç¨å€™â€¦â€¦" #~ msgid "Enable VBO" #~ msgstr "啟用 VBO" #~ msgid "" -#~ "Defines areas of floatland smooth terrain.\n" -#~ "Smooth floatlands occur when noise > 0." +#~ "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" -#~ "平整的浮地會在噪音 > 0 時產生。" +#~ "為æè³ªå•Ÿç”¨è²¼åœ–è½‰å„²ã€‚æ™®é€šåœ°åœ–éœ€è¦æè³ªåŒ…çš„æ”¯æ´\n" +#~ "或是自動生æˆã€‚\n" +#~ "å¿…é ˆå•Ÿç”¨è‘—è‰²å™¨ã€‚" -#, fuzzy -#~ msgid "Darkness sharpness" -#~ msgstr "湖泊å¡åº¦" +#~ msgid "Enables filmic tone mapping" +#~ msgstr "å•Ÿç”¨é›»å½±è‰²èª¿æ˜ å°„" -#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels." -#~ msgstr "控制隧é“的寬度,較å°çš„å€¼æœƒå‰µé€ å‡ºè¼ƒå¯¬çš„éš§é“。" +#~ msgid "" +#~ "Enables on the fly normalmap generation (Emboss effect).\n" +#~ "Requires bumpmapping to be enabled." +#~ msgstr "" +#~ "啟用忙碌的一般地圖生æˆï¼ˆæµ®é›•效果)。\n" +#~ "å¿…é ˆå•Ÿç”¨è²¼åœ–è½‰å„²ã€‚" -#, fuzzy #~ msgid "" -#~ "Controls the density of mountain-type floatlands.\n" -#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value." +#~ "Enables parallax occlusion mapping.\n" +#~ "Requires shaders to be enabled." #~ msgstr "" -#~ "控制山地的浮地密度。\n" -#~ "æ˜¯åŠ å…¥åˆ° 'np_mountain' 噪音值的補償。" +#~ "啟用視差é®è”½è²¼åœ–。\n" +#~ "å¿…é ˆå•Ÿç”¨è‘—è‰²å™¨ã€‚" #~ msgid "" -#~ "Adjust the gamma encoding for the light tables. Higher numbers are " -#~ "brighter.\n" -#~ "This setting is for the client only and is ignored by the server." +#~ "Experimental option, might cause visible spaces between blocks\n" +#~ "when set to higher number than 0." #~ msgstr "" -#~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n" -#~ "這個è¨å®šæ˜¯çµ¦å®¢æˆ¶ç«¯ä½¿ç”¨çš„,會被伺æœå™¨å¿½ç•¥ã€‚" +#~ "實驗性é¸é …,當è¨å®šåˆ°å¤§æ–¼é›¶çš„值時\n" +#~ "ä¹Ÿè¨±æœƒé€ æˆåœ¨æ–¹å¡Šé–“有視覺空隙。" -#~ msgid "Path to save screenshots at." -#~ msgstr "儲å˜èž¢å¹•截圖的路徑。" +#~ msgid "FPS in pause menu" +#~ msgstr "在暫åœé¸å–®ä¸çš„ FPS" -#~ msgid "Parallax occlusion strength" -#~ msgstr "視差é®è”½å¼·åº¦" +#~ msgid "Floatland base height noise" +#~ msgstr "浮地基礎高度噪音" + +#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)." +#~ msgstr "å—型陰影 alpha(ä¸é€æ˜Žåº¦ï¼Œä»‹æ–¼ 0 到 255)。" + +#~ msgid "Gamma" +#~ msgstr "Gamma" + +#~ msgid "Generate Normal Maps" +#~ msgstr "產生一般地圖" + +#~ msgid "Generate normalmaps" +#~ msgstr "生æˆä¸€èˆ¬åœ°åœ–" + +#~ msgid "IPv6 support." +#~ msgstr "IPv6 支æ´ã€‚" + +#, fuzzy +#~ msgid "Lava depth" +#~ msgstr "大型洞穴深度" #~ msgid "Limit of emerge queues on disk" #~ msgstr "在ç£ç¢Ÿä¸Šå‡ºç¾ä½‡åˆ—çš„é™åˆ¶" -#~ msgid "Downloading and installing $1, please wait..." -#~ msgstr "æ£åœ¨ä¸‹è¼‰ä¸¦å®‰è£ $1,請ç¨å€™â€¦â€¦" +#~ msgid "Main" +#~ msgstr "主è¦" -#~ msgid "Back" -#~ msgstr "返回" +#, fuzzy +#~ msgid "Main menu style" +#~ msgstr "主é¸å–®æŒ‡ä»¤ç¨¿" + +#~ msgid "Minimap in radar mode, Zoom x2" +#~ msgstr "雷锿¨¡å¼çš„è¿·ä½ åœ°åœ–ï¼Œæ”¾å¤§ 2 å€" + +#~ msgid "Minimap in radar mode, Zoom x4" +#~ msgstr "雷锿¨¡å¼çš„è¿·ä½ åœ°åœ–ï¼Œæ”¾å¤§ 4 å€" + +#~ msgid "Minimap in surface mode, Zoom x2" +#~ msgstr "è¡¨é¢æ¨¡å¼çš„è¿·ä½ åœ°åœ–ï¼Œæ”¾å¤§ 2 å€" + +#~ msgid "Minimap in surface mode, Zoom x4" +#~ msgstr "è¡¨é¢æ¨¡å¼çš„è¿·ä½ åœ°åœ–ï¼Œæ”¾å¤§ 4 å€" + +#~ msgid "Name/Password" +#~ msgstr "å稱ï¼å¯†ç¢¼" + +#~ msgid "No" +#~ msgstr "å¦" + +#~ msgid "Normalmaps sampling" +#~ msgstr "法線貼圖採樣" + +#~ msgid "Normalmaps strength" +#~ msgstr "法線貼圖強度" + +#~ msgid "Number of parallax occlusion iterations." +#~ msgstr "視差é®è”½è¿ä»£æ¬¡æ•¸ã€‚" #~ msgid "Ok" #~ msgstr "確定" + +#~ msgid "Overall bias of parallax occlusion effect, usually scale/2." +#~ msgstr "視差é®è”½æ•ˆæžœçš„總åå·®ï¼Œé€šå¸¸æ˜¯è¦æ¨¡/2。" + +#~ msgid "Overall scale of parallax occlusion effect." +#~ msgstr "視差é®è”½æ•ˆæžœçš„ç¸½è¦æ¨¡ã€‚" + +#~ msgid "Parallax Occlusion" +#~ msgstr "視差é®è”½" + +#~ msgid "Parallax occlusion" +#~ msgstr "視差é®è”½" + +#~ msgid "Parallax occlusion bias" +#~ msgstr "視差é®è”½åå·®" + +#~ msgid "Parallax occlusion iterations" +#~ msgstr "視差é®è”½è¿ä»£" + +#~ msgid "Parallax occlusion mode" +#~ msgstr "視差é®è”½æ¨¡å¼" + +#, fuzzy +#~ msgid "Parallax occlusion scale" +#~ msgstr "視差é®è”½ä¿‚數" + +#~ msgid "Parallax occlusion strength" +#~ msgstr "視差é®è”½å¼·åº¦" + +#~ msgid "Path to TrueTypeFont or bitmap." +#~ msgstr "TrueType å—型或點陣å—的路徑。" + +#~ msgid "Path to save screenshots at." +#~ msgstr "儲å˜èž¢å¹•截圖的路徑。" + +#~ msgid "Reset singleplayer world" +#~ msgstr "é‡è¨å–®äººéŠæˆ²ä¸–界" + +#, fuzzy +#~ msgid "Select Package File:" +#~ msgstr "é¸å– Mod 檔案:" + +#~ msgid "Shadow limit" +#~ msgstr "é™°å½±é™åˆ¶" + +#~ msgid "Start Singleplayer" +#~ msgstr "é–‹å§‹å–®äººéŠæˆ²" + +#~ msgid "Strength of generated normalmaps." +#~ msgstr "生æˆä¹‹ä¸€èˆ¬åœ°åœ–的強度。" + +#~ msgid "This font will be used for certain languages." +#~ msgstr "這個å—型將會被用於特定的語言。" + +#~ msgid "Toggle Cinematic" +#~ msgstr "切æ›éŽå ´å‹•ç•«" + +#, fuzzy +#~ msgid "" +#~ "Typical maximum height, above and below midpoint, of floatland mountains." +#~ msgstr "浮地山å€åŸŸçš„典型最大高度,高於與低於ä¸é»žã€‚" + +#~ msgid "Variation of hill height and lake depth on floatland smooth terrain." +#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。" + +#~ msgid "View" +#~ msgstr "查看" + +#~ msgid "Waving Water" +#~ msgstr "波動的水" + +#~ msgid "Waving water" +#~ msgstr "波動的水" + +#, fuzzy +#~ msgid "Y of upper limit of lava in large caves." +#~ msgstr "大型å½éš¨æ©Ÿæ´žç©´çš„ Y 上é™ã€‚" + +#~ msgid "Y-level of floatland midpoint and lake surface." +#~ msgstr "浮地ä¸é»žèˆ‡æ¹–表é¢çš„ Y 高度。" + +#~ msgid "Y-level to which floatland shadows extend." +#~ msgstr "浮地陰影擴展的 Y 高度。" + +#~ msgid "Yes" +#~ msgstr "是" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3d6d1b0ea..7bcf8d6c7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 2.6) - project(minetest) INCLUDE(CheckIncludeFiles) @@ -124,27 +122,6 @@ option(ENABLE_FREETYPE "Enable FreeType2 (TrueType fonts and basic unicode suppo set(USE_FREETYPE FALSE) if(ENABLE_FREETYPE) -## -## Note: FindFreetype.cmake seems to have been fixed in recent versions of -## CMake. If issues persist, re-enable this workaround specificially for the -## failing platforms. -## -# if(UNIX) -# include(FindPkgConfig) -# if(PKG_CONFIG_FOUND) -# pkg_check_modules(FREETYPE QUIET freetype2) -# if(FREETYPE_FOUND) -# SET(FREETYPE_PKGCONFIG_FOUND TRUE) -# SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES}) -# # Because CMake is idiotic -# string(REPLACE ";" " " FREETYPE_CFLAGS_STR ${FREETYPE_CFLAGS}) -# string(REPLACE ";" " " FREETYPE_LDFLAGS_STR ${FREETYPE_LDFLAGS}) -# endif(FREETYPE_FOUND) -# endif(PKG_CONFIG_FOUND) -# endif(UNIX) -# if(NOT FREETYPE_FOUND) -# find_package(Freetype) -# endif() find_package(Freetype) if(FREETYPE_FOUND) message(STATUS "Freetype enabled.") @@ -351,6 +328,10 @@ else() if (ICONV_LIBRARY) set(PLATFORM_LIBS ${PLATFORM_LIBS} ${ICONV_LIBRARY}) endif() + if (HAIKU) + set(PLATFORM_LIBS ${PLATFORM_LIBS} intl network) + endif() + endif() check_include_files(endian.h HAVE_ENDIAN_H) @@ -551,7 +532,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin") if(BUILD_CLIENT) add_executable(${PROJECT_NAME} ${client_SRCS} ${extra_windows_SRCS}) add_dependencies(${PROJECT_NAME} GenerateVersion) - set(client_LIBS + target_link_libraries( ${PROJECT_NAME} ${ZLIB_LIBRARIES} ${IRRLICHT_LIBRARY} @@ -567,9 +548,14 @@ if(BUILD_CLIENT) ${PLATFORM_LIBS} ${CLIENT_PLATFORM_LIBS} ) - target_link_libraries( - ${client_LIBS} - ) + if(NOT USE_LUAJIT) + set_target_properties(${PROJECT_NAME} PROPERTIES + # This is necessary for dynamic Lua modules + # to work when Lua is statically linked (issue #10806) + ENABLE_EXPORTS 1 + ) + endif() + if(ENABLE_GLES) target_link_libraries( ${PROJECT_NAME} @@ -640,7 +626,15 @@ if(BUILD_SERVER) ${PLATFORM_LIBS} ) set_target_properties(${PROJECT_NAME}server PROPERTIES - COMPILE_DEFINITIONS "SERVER") + COMPILE_DEFINITIONS "SERVER") + if(NOT USE_LUAJIT) + set_target_properties(${PROJECT_NAME}server PROPERTIES + # This is necessary for dynamic Lua modules + # to work when Lua is statically linked (issue #10806) + ENABLE_EXPORTS 1 + ) + endif() + if (USE_GETTEXT) target_link_libraries(${PROJECT_NAME}server ${GETTEXT_LIBRARY}) endif() @@ -673,10 +667,11 @@ endif(BUILD_SERVER) # Blacklisted locales that don't work. # see issue #4638 set(GETTEXT_BLACKLISTED_LOCALES - be + ar he - ko ky + ms_Arab + th ) option(APPLY_LOCALE_BLACKLIST "Use a blacklist to avoid broken locales" TRUE) @@ -684,7 +679,7 @@ option(APPLY_LOCALE_BLACKLIST "Use a blacklist to avoid broken locales" TRUE) if (GETTEXTLIB_FOUND AND APPLY_LOCALE_BLACKLIST) set(GETTEXT_USED_LOCALES "") foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES}) - if (NOT ";${GETTEXT_BLACKLISTED_LOCALES};" MATCHES ";${LOCALE};") + if (NOT "${LOCALE}" IN_LIST GETTEXT_BLACKLISTED_LOCALES) list(APPEND GETTEXT_USED_LOCALES ${LOCALE}) endif() endforeach() @@ -697,21 +692,14 @@ include(CheckCSourceCompiles) if(MSVC) # Visual Studio - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN") # EHa enables SEH exceptions (used for catching segfaults) - set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /GL /FD /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP") + set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0") if(CMAKE_SIZEOF_VOID_P EQUAL 4) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE") endif() - - if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF") - else() - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF") - endif() - - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") set(CMAKE_CXX_FLAGS_SEMIDEBUG "/MDd /Zi /Ob0 /O1 /RTC1") @@ -722,6 +710,19 @@ if(MSVC) # Flags for C files (sqlite) # /MD = dynamically link to MSVCRxxx.dll set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MD") + + # Flags that cannot be shared between cl and clang-cl + # https://clang.llvm.org/docs/UsersManual.html#clang-cl + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld") + + # Disable pragma-pack warning + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-pragma-pack") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /TP /FD /GL") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG") + endif() else() # GCC or compatible compilers such as Clang set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") diff --git a/src/activeobject.h b/src/activeobject.h index 85e160d10..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 @@ -120,9 +120,9 @@ public: virtual void setAttachment(int parent_id, const std::string &bone, v3f position, - v3f rotation) {} + v3f rotation, bool force_visible) {} virtual void getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const {} + v3f *rotation, bool *force_visible) const {} virtual void clearChildAttachments() {} virtual void clearParentAttachment() {} virtual void addAttachmentChild(int child_id) {} diff --git a/src/activeobjectmgr.h b/src/activeobjectmgr.h index 95e7d3344..aa0538e60 100644 --- a/src/activeobjectmgr.h +++ b/src/activeobjectmgr.h @@ -25,7 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc., class TestClientActiveObjectMgr; class TestServerActiveObjectMgr; -template <typename T> class ActiveObjectMgr +template <typename T> +class ActiveObjectMgr { friend class ::TestClientActiveObjectMgr; friend class ::TestServerActiveObjectMgr; diff --git a/src/chat.cpp b/src/chat.cpp index c3ed59804..c9317a079 100644 --- a/src/chat.cpp +++ b/src/chat.cpp @@ -123,14 +123,14 @@ void ChatBuffer::deleteByAge(f32 maxAge) deleteOldest(count); } -u32 ChatBuffer::getColumns() const +u32 ChatBuffer::getRows() const { - return m_cols; + return m_rows; } -u32 ChatBuffer::getRows() const +void ChatBuffer::scrollTop() { - return m_rows; + m_scroll = getTopScrollPos(); } void ChatBuffer::reformat(u32 cols, u32 rows) @@ -220,11 +220,6 @@ void ChatBuffer::scrollBottom() m_scroll = getBottomScrollPos(); } -void ChatBuffer::scrollTop() -{ - m_scroll = getTopScrollPos(); -} - u32 ChatBuffer::formatChatLine(const ChatLine& line, u32 cols, std::vector<ChatFormattedLine>& destination) const { @@ -490,8 +485,8 @@ void ChatPrompt::nickCompletion(const std::list<std::string>& names, bool backwa // find all names that start with the selected prefix std::vector<std::wstring> 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/chat.h b/src/chat.h index f84ece206..0b98e4d3c 100644 --- a/src/chat.h +++ b/src/chat.h @@ -94,8 +94,6 @@ public: // Delete lines older than maxAge. void deleteByAge(f32 maxAge); - // Get number of columns, 0 if reformat has not been called yet. - u32 getColumns() const; // Get number of rows, 0 if reformat has not been called yet. u32 getRows() const; // Update console size and reformat all formatted lines. diff --git a/src/client/camera.cpp b/src/client/camera.cpp index abc55e4b7..350b685e1 100644 --- a/src/client/camera.cpp +++ b/src/client/camera.cpp @@ -30,7 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "wieldmesh.h" #include "noise.h" // easeCurve #include "sound.h" -#include "event.h" +#include "mtevent.h" #include "nodedef.h" #include "util/numeric.h" #include "constants.h" @@ -79,6 +79,7 @@ Camera::Camera(MapDrawControl &draw_control, Client *client): m_cache_fov = std::fmax(g_settings->getFloat("fov"), 45.0f); m_arm_inertia = g_settings->getBool("arm_inertia"); m_nametags.clear(); + m_show_nametag_backgrounds = g_settings->getBool("show_nametag_backgrounds"); } Camera::~Camera() @@ -691,46 +692,47 @@ void Camera::drawNametags() core::matrix4 trans = m_cameranode->getProjectionMatrix(); trans *= m_cameranode->getViewMatrix(); - for (std::list<Nametag *>::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<u32> textsize = - g_fontengine->getFont()->getDimension( + unescape_translate(utf8_to_wide(nametag->text)); + core::dimension2d<u32> 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<s32> 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<s32> bg_size(-2, 0, textsize.Width+2, textsize.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); } } } 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<video::SColor> bgcolor, const v3f &pos) { - Nametag *nametag = new Nametag(parent_node, nametag_text, nametag_color, pos); + Nametag *nametag = new Nametag(parent_node, text, textcolor, bgcolor, pos); m_nametags.push_back(nametag); return nametag; } diff --git a/src/client/camera.h b/src/client/camera.h index 3a59637bc..6fd8d9aa7 100644 --- a/src/client/camera.h +++ b/src/client/camera.h @@ -25,27 +25,47 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <ICameraSceneNode.h> #include <ISceneNode.h> #include <list> +#include "util/Optional.h" class LocalPlayer; struct MapDrawControl; class Client; class WieldMeshSceneNode; -struct Nametag { +struct Nametag +{ + scene::ISceneNode *parent_node; + std::string text; + video::SColor textcolor; + Optional<video::SColor> bgcolor; + v3f pos; + Nametag(scene::ISceneNode *a_parent_node, - const std::string &a_nametag_text, - const video::SColor &a_nametag_color, - const v3f &a_nametag_pos): + const std::string &text, + const video::SColor &textcolor, + const Optional<video::SColor> &bgcolor, + const v3f &pos): parent_node(a_parent_node), - nametag_text(a_nametag_text), - nametag_color(a_nametag_color), - nametag_pos(a_nametag_pos) + text(text), + textcolor(textcolor), + bgcolor(bgcolor), + pos(pos) { } - scene::ISceneNode *parent_node; - std::string nametag_text; - video::SColor nametag_color; - v3f nametag_pos; + + video::SColor getBgColor(bool use_fallback) const + { + if (bgcolor) + return bgcolor.value(); + else if (!use_fallback) + return video::SColor(0, 0, 0, 0); + else if (textcolor.getLuminance() > 186) + // Dark background for light text + return video::SColor(50, 50, 50, 50); + else + // Light background for dark text + return video::SColor(50, 255, 255, 255); + } }; enum CameraMode {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT}; @@ -164,13 +184,11 @@ 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<video::SColor> bgcolor, const v3f &pos); void removeNametag(Nametag *nametag); - const std::list<Nametag *> &getNametags() { return m_nametags; } - void drawNametags(); inline void addArmInertia(f32 player_yaw); @@ -247,4 +265,5 @@ private: bool m_arm_inertia; std::list<Nametag *> m_nametags; + bool m_show_nametag_backgrounds; }; diff --git a/src/client/client.cpp b/src/client/client.cpp index 65e5b3d8c..ef4a3cdfc 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -129,6 +129,7 @@ Client::Client( if (g_settings->getBool("enable_minimap")) { m_minimap = new Minimap(this); } + m_cache_save_interval = g_settings->getU16("server_map_save_interval"); } @@ -158,20 +159,6 @@ void Client::loadMods() scanModIntoMemory(BUILTIN_MOD_NAME, getBuiltinLuaPath()); m_script->loadModFromMemory(BUILTIN_MOD_NAME); - // TODO Uncomment when server-sent CSM and verifying of builtin are complete - /* - // Don't load client-provided mods if disabled by server - if (checkCSMRestrictionFlag(CSMRestrictionFlags::CSM_RF_LOAD_CLIENT_MODS)) { - warningstream << "Client-provided mod loading is disabled by server." << - std::endl; - // If builtin integrity is wrong, disconnect user - if (!checkBuiltinIntegrity()) { - // TODO disconnect user - } - return; - } - */ - ClientModConfiguration modconf(getClientModsLuaPath()); m_mods = modconf.getMods(); // complain about mods with unsatisfied dependencies @@ -215,12 +202,6 @@ void Client::loadMods() m_script->on_minimap_ready(m_minimap); } -bool Client::checkBuiltinIntegrity() -{ - // TODO - return true; -} - void Client::scanModSubfolder(const std::string &mod_name, const std::string &mod_path, std::string mod_subpath) { @@ -238,18 +219,13 @@ void Client::scanModSubfolder(const std::string &mod_name, const std::string &mo infostream << "Client::scanModSubfolder(): Loading \"" << real_path << "\" as \"" << vfs_path << "\"." << std::endl; - std::ifstream is(real_path, std::ios::binary | std::ios::ate); - if(!is.good()) { + std::string contents; + if (!fs::ReadFile(real_path, contents)) { errorstream << "Client::scanModSubfolder(): Can't read file \"" << real_path << "\"." << std::endl; continue; } - auto size = is.tellg(); - std::string contents(size, '\0'); - is.seekg(0); - is.read(&contents[0], size); - infostream << " size: " << size << " bytes" << std::endl; m_mod_vfs.emplace(vfs_path, contents); } } @@ -330,6 +306,8 @@ Client::~Client() } delete m_minimap; + m_minimap = nullptr; + delete m_media_downloader; } @@ -1218,7 +1196,7 @@ void Client::sendChatMessage(const std::wstring &message) if (canSendChatMessage()) { u32 now = time(NULL); float time_passed = now - m_last_chat_message_sent; - m_last_chat_message_sent = time(NULL); + m_last_chat_message_sent = now; m_chat_message_allowance += time_passed * (CLIENT_CHAT_MESSAGE_LIMIT_PER_10S / 8.0f); if (m_chat_message_allowance > CLIENT_CHAT_MESSAGE_LIMIT_PER_10S) @@ -1297,9 +1275,8 @@ void Client::sendPlayerPos() // Save bandwidth by only updating position when // player is not dead and something changed - // FIXME: This part causes breakages in mods like 3d_armor, and has been commented for now - // if (m_activeobjects_received && player->isDead()) - // return; + if (m_activeobjects_received && player->isDead()) + return; if ( player->last_position == player->getPosition() && @@ -1307,7 +1284,7 @@ void Client::sendPlayerPos() player->last_pitch == player->getPitch() && player->last_yaw == player->getYaw() && player->last_keyPressed == player->keyPressed && - player->last_camera_fov == camera_fov && + player->last_camera_fov == camera_fov && player->last_wanted_range == wanted_range) return; @@ -1669,11 +1646,6 @@ ClientEvent *Client::getClientEvent() return event; } -bool Client::connectedToServer() -{ - return m_con->Connected(); -} - const Address Client::getServerAddress() { return m_con->GetPeerAddress(PEER_ID_SERVER); @@ -1860,7 +1832,7 @@ void Client::makeScreenshot() sstr << "Failed to save screenshot '" << filename << "'"; } pushToChatQueue(new ChatMessage(CHATMESSAGE_TYPE_SYSTEM, - narrow_to_wide(sstr.str()))); + utf8_to_wide(sstr.str()))); infostream << sstr.str() << std::endl; image->drop(); } diff --git a/src/client/client.h b/src/client/client.h index 733634db1..25a1b97ba 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -223,6 +223,7 @@ public: void handleCommand_CSMRestrictionFlags(NetworkPacket *pkt); void handleCommand_PlayerSpeed(NetworkPacket *pkt); void handleCommand_MediaPush(NetworkPacket *pkt); + void handleCommand_MinimapModes(NetworkPacket *pkt); void ProcessData(NetworkPacket *pkt); @@ -337,7 +338,6 @@ public: u16 getProtoVersion() { return m_proto_ver; } - bool connectedToServer(); void confirmRegistration(); bool m_is_registration_confirmation_state = false; bool m_simple_singleplayer_mode; @@ -415,11 +415,6 @@ public: return m_csm_restriction_flags & flag; } - u32 getCSMNodeRangeLimit() const - { - return m_csm_restriction_noderange; - } - inline std::unordered_map<u32, u32> &getHUDTranslationMap() { return m_hud_server_to_client; @@ -437,7 +432,6 @@ public: } private: void loadMods(); - bool checkBuiltinIntegrity(); // Virtual methods from con::PeerHandler void peerAdded(con::Peer *peer) override; @@ -587,7 +581,6 @@ private: // Client modding ClientScripting *m_script = nullptr; - bool m_modding_enabled; std::unordered_map<std::string, ModMetadata *> m_mod_storages; float m_mod_storage_save_timer = 10.0f; std::vector<ModSpec> m_mods; diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index 895b0193c..fc7cbe254 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "clientmap.h" #include "scripting_client.h" #include "mapblock_mesh.h" -#include "event.h" +#include "mtevent.h" #include "collision.h" #include "nodedef.h" #include "profiler.h" @@ -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); @@ -183,84 +179,61 @@ void ClientEnvironment::step(float dtime) if(dtime > 0.5) dtime = 0.5; - f32 dtime_downcount = dtime; - /* Stuff that has a maximum time increment */ - u32 loopcount = 0; - do - { - loopcount++; - - f32 dtime_part; - if(dtime_downcount > dtime_max_increment) - { - dtime_part = dtime_max_increment; - dtime_downcount -= dtime_part; - } - else - { - dtime_part = dtime_downcount; - /* - Setting this to 0 (no -=dtime_part) disables an infinite loop - when dtime_part is so small that dtime_downcount -= dtime_part - does nothing - */ - dtime_downcount = 0; - } - + u32 steps = ceil(dtime / dtime_max_increment); + f32 dtime_part = dtime / steps; + for (; steps > 0; --steps) { /* - Handle local player + Local player handling */ - { - // Control local player - lplayer->applyControl(dtime_part, this); - - // Apply physics - if (!free_move && !is_climbing) { - // Gravity - v3f speed = lplayer->getSpeed(); - if (!lplayer->in_liquid) - speed.Y -= lplayer->movement_gravity * - lplayer->physics_override_gravity * dtime_part * 2.0f; - - // Liquid floating / sinking - if (lplayer->in_liquid && !lplayer->swimming_vertical && - !lplayer->swimming_pitch) - speed.Y -= lplayer->movement_liquid_sink * dtime_part * 2.0f; - - // Liquid resistance - if (lplayer->in_liquid_stable || lplayer->in_liquid) { - // How much the node's viscosity blocks movement, ranges - // between 0 and 1. Should match the scale at which viscosity - // increase affects other liquid attributes. - static const f32 viscosity_factor = 0.3f; - - v3f d_wanted = -speed / lplayer->movement_liquid_fluidity; - f32 dl = d_wanted.getLength(); - if (dl > lplayer->movement_liquid_fluidity_smooth) - dl = lplayer->movement_liquid_fluidity_smooth; - - dl *= (lplayer->liquid_viscosity * viscosity_factor) + - (1 - viscosity_factor); - v3f d = d_wanted.normalize() * (dl * dtime_part * 100.0f); - speed += d; - } - - lplayer->setSpeed(speed); + // Control local player + lplayer->applyControl(dtime_part, this); + + // Apply physics + if (!free_move && !is_climbing) { + // Gravity + v3f speed = lplayer->getSpeed(); + if (!lplayer->in_liquid) + speed.Y -= lplayer->movement_gravity * + lplayer->physics_override_gravity * dtime_part * 2.0f; + + // Liquid floating / sinking + if (lplayer->in_liquid && !lplayer->swimming_vertical && + !lplayer->swimming_pitch) + speed.Y -= lplayer->movement_liquid_sink * dtime_part * 2.0f; + + // Liquid resistance + if (lplayer->in_liquid_stable || lplayer->in_liquid) { + // How much the node's viscosity blocks movement, ranges + // between 0 and 1. Should match the scale at which viscosity + // increase affects other liquid attributes. + static const f32 viscosity_factor = 0.3f; + + v3f d_wanted = -speed / lplayer->movement_liquid_fluidity; + f32 dl = d_wanted.getLength(); + if (dl > lplayer->movement_liquid_fluidity_smooth) + dl = lplayer->movement_liquid_fluidity_smooth; + + dl *= (lplayer->liquid_viscosity * viscosity_factor) + + (1 - viscosity_factor); + v3f d = d_wanted.normalize() * (dl * dtime_part * 100.0f); + speed += d; } - /* - Move the lplayer. - This also does collision detection. - */ - lplayer->move(dtime_part, this, position_max_increment, - &player_collisions); + lplayer->setSpeed(speed); } - } while (dtime_downcount > 0.001); + + /* + Move the lplayer. + This also does collision detection. + */ + lplayer->move(dtime_part, this, position_max_increment, + &player_collisions); + } bool player_immortal = lplayer->getCAO() && lplayer->getCAO()->isImmortal(); @@ -361,28 +334,6 @@ GenericCAO* ClientEnvironment::getGenericCAO(u16 id) return NULL; } -bool isFreeClientActiveObjectId(const u16 id, - ClientActiveObjectMap &objects) -{ - return id != 0 && objects.find(id) == objects.end(); - -} - -u16 getFreeClientActiveObjectId(ClientActiveObjectMap &objects) -{ - // try to reuse id's as late as possible - static u16 last_used_id = 0; - u16 startid = last_used_id; - for(;;) { - last_used_id ++; - if (isFreeClientActiveObjectId(last_used_id, objects)) - return last_used_id; - - if (last_used_id == startid) - return 0; - } -} - u16 ClientEnvironment::addActiveObject(ClientActiveObject *object) { // Register object. If failed return zero id diff --git a/src/client/clientlauncher.cpp b/src/client/clientlauncher.cpp index f18915a55..2bb0bc385 100644 --- a/src/client/clientlauncher.cpp +++ b/src/client/clientlauncher.cpp @@ -56,6 +56,20 @@ bool isMenuActive() // Passed to menus to allow disconnecting and exiting MainGameCallback *g_gamecallback = nullptr; +#if 0 +// This can be helpful for the next code cleanup +static void dump_start_data(const GameStartData &data) +{ + std::cout << + "\ndedicated " << (int)data.is_dedicated_server << + "\nport " << data.socket_port << + "\nworld_path " << data.world_spec.path << + "\nworld game " << data.world_spec.gameid << + "\ngame path " << data.game_spec.path << + "\nplayer name " << data.name << + "\naddress " << data.address << std::endl; +} +#endif ClientLauncher::~ClientLauncher() { @@ -74,9 +88,16 @@ ClientLauncher::~ClientLauncher() } -bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args) +bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args) { - init_args(game_params, cmd_args); + /* This function is called when a client must be started. + * Covered cases: + * - Singleplayer (address but map provided) + * - Join server (no map but address provided) + * - Local server (for main menu only) + */ + + init_args(start_data, cmd_args); // List video modes if requested if (list_video_modes) @@ -154,7 +175,7 @@ bool ClientLauncher::run(GameParams &game_params, 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 @@ -216,7 +237,7 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args) core::rect<s32>(0, 0, 10000, 10000)); bool game_has_run = launch_game(error_message, reconnect_requested, - game_params, cmd_args); + start_data, cmd_args); // Reset the reconnect_requested flag reconnect_requested = false; @@ -241,13 +262,6 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args) break; } - if (current_playername.length() > PLAYERNAME_SIZE-1) { - error_message = gettext("Player name too long."); - playername = current_playername.substr(0, PLAYERNAME_SIZE-1); - g_settings->set("name", playername); - continue; - } - RenderingEngine::get_video_driver()->setTextureCreationFlag( video::ETCF_CREATE_MIP_MAPS, g_settings->getBool("mip_map")); @@ -258,18 +272,11 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args) the_game( kill, - random_input, input, - worldspec.path, - current_playername, - current_password, - current_address, - current_port, + start_data, error_message, chat_backend, - &reconnect_requested, - gamespec, - simple_singleplayer_mode + &reconnect_requested ); RenderingEngine::get_scene_manager()->clear(); @@ -311,31 +318,27 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args) return retval; } -void ClientLauncher::init_args(GameParams &game_params, const Settings &cmd_args) +void ClientLauncher::init_args(GameStartData &start_data, const Settings &cmd_args) { - skip_main_menu = cmd_args.getFlag("go"); - // FIXME: This is confusing (but correct) - - /* If world_path is set then override it unless skipping the main menu using - * the --go command line param. Else, give preference to the address - * supplied on the command line - */ - address = g_settings->get("address"); - if (!game_params.world_path.empty() && !skip_main_menu) - address = ""; - else if (cmd_args.exists("address")) - address = cmd_args.get("address"); + start_data.address = g_settings->get("address"); + if (cmd_args.exists("address")) { + // Join a remote server + start_data.address = cmd_args.get("address"); + start_data.world_path.clear(); + start_data.name = g_settings->get("name"); + } + if (!start_data.world_path.empty()) { + // Start a singleplayer instance + start_data.address = ""; + } - playername = g_settings->get("name"); if (cmd_args.exists("name")) - playername = cmd_args.get("name"); + start_data.name = cmd_args.get("name"); list_video_modes = cmd_args.getFlag("videomodes"); - use_freetype = g_settings->getBool("freetype"); - random_input = g_settings->getBool("random_input") || cmd_args.getFlag("random-input"); } @@ -375,28 +378,20 @@ void ClientLauncher::init_input() } bool ClientLauncher::launch_game(std::string &error_message, - bool reconnect_requested, GameParams &game_params, + bool reconnect_requested, GameStartData &start_data, const Settings &cmd_args) { - // Initialize menu data - MainMenuData menudata; - menudata.address = address; - menudata.name = playername; - menudata.password = password; - menudata.port = itos(game_params.socket_port); - menudata.script_data.errormessage = error_message; - menudata.script_data.reconnect_requested = reconnect_requested; - + // Prepare and check the start data to launch a game + std::string error_message_lua = error_message; error_message.clear(); if (cmd_args.exists("password")) - menudata.password = cmd_args.get("password"); - + start_data.password = cmd_args.get("password"); if (cmd_args.exists("password-file")) { std::ifstream passfile(cmd_args.get("password-file")); if (passfile.good()) { - getline(passfile, menudata.password); + getline(passfile, start_data.password); } else { error_message = gettext("Provided password file " "failed to open: ") @@ -407,88 +402,106 @@ bool ClientLauncher::launch_game(std::string &error_message, } // If a world was commanded, append and select it - if (!game_params.world_path.empty()) { - worldspec.gameid = getWorldGameId(game_params.world_path, true); - worldspec.name = _("[--world parameter]"); + // This is provieded by "get_world_from_cmdline()", main.cpp + if (!start_data.world_path.empty()) { + auto &spec = start_data.world_spec; + + spec.path = start_data.world_path; + spec.gameid = getWorldGameId(spec.path, true); + spec.name = _("[--world parameter]"); - if (worldspec.gameid.empty()) { // Create new - worldspec.gameid = g_settings->get("default_game"); - worldspec.name += " [new]"; + if (spec.gameid.empty()) { // Create new + spec.gameid = g_settings->get("default_game"); + spec.name += " [new]"; } - worldspec.path = game_params.world_path; } /* Show the GUI menu */ + std::string server_name, server_description; if (!skip_main_menu) { + // Initialize menu data + // TODO: Re-use existing structs (GameStartData) + MainMenuData menudata; + menudata.address = start_data.address; + menudata.name = start_data.name; + menudata.password = start_data.password; + menudata.port = itos(start_data.socket_port); + menudata.script_data.errormessage = error_message_lua; + menudata.script_data.reconnect_requested = reconnect_requested; + main_menu(&menudata); // Skip further loading if there was an exit signal. if (*porting::signal_handler_killstatus()) return false; - address = menudata.address; + if (!menudata.script_data.errormessage.empty()) { + /* The calling function will pass this back into this function upon the + * next iteration (if any) causing it to be displayed by the GUI + */ + error_message = menudata.script_data.errormessage; + return false; + } + int newport = stoi(menudata.port); if (newport != 0) - game_params.socket_port = newport; - - simple_singleplayer_mode = menudata.simple_singleplayer_mode; + start_data.socket_port = newport; + // Update world information using main menu data std::vector<WorldSpec> worldspecs = getAvailableWorlds(); - if (menudata.selected_world >= 0 - && menudata.selected_world < (int)worldspecs.size()) { + int world_index = menudata.selected_world; + if (world_index >= 0 && world_index < (int)worldspecs.size()) { g_settings->set("selected_world_path", - worldspecs[menudata.selected_world].path); - worldspec = worldspecs[menudata.selected_world]; + worldspecs[world_index].path); + start_data.world_spec = worldspecs[world_index]; } + + start_data.name = menudata.name; + start_data.password = menudata.password; + start_data.address = std::move(menudata.address); + server_name = menudata.servername; + server_description = menudata.serverdescription; + + start_data.local_server = !menudata.simple_singleplayer_mode && + start_data.address.empty(); + } else { + start_data.local_server = !start_data.world_path.empty() && + start_data.address.empty() && !start_data.name.empty(); } - if (!menudata.script_data.errormessage.empty()) { - /* The calling function will pass this back into this function upon the - * next iteration (if any) causing it to be displayed by the GUI - */ - error_message = menudata.script_data.errormessage; + if (!RenderingEngine::run()) return false; - } - if (menudata.name.empty() && !simple_singleplayer_mode) { + if (!start_data.isSinglePlayer() && start_data.name.empty()) { error_message = gettext("Please choose a name!"); errorstream << error_message << std::endl; return false; } - playername = menudata.name; - password = menudata.password; - - current_playername = playername; - current_password = password; - current_address = address; - current_port = game_params.socket_port; - // If using simple singleplayer mode, override - if (simple_singleplayer_mode) { - assert(!skip_main_menu); - current_playername = "singleplayer"; - current_password = ""; - current_address = ""; - current_port = myrand_range(49152, 65535); + if (start_data.isSinglePlayer()) { + start_data.name = "singleplayer"; + start_data.password = ""; + start_data.socket_port = myrand_range(49152, 65535); } else { - g_settings->set("name", playername); - if (!address.empty()) { - ServerListSpec server; - server["name"] = menudata.servername; - server["address"] = menudata.address; - server["port"] = menudata.port; - server["description"] = menudata.serverdescription; - ServerList::insert(server); - } + g_settings->set("name", start_data.name); + } + + if (start_data.name.length() > PLAYERNAME_SIZE - 1) { + error_message = gettext("Player name too long."); + start_data.name.resize(PLAYERNAME_SIZE); + g_settings->set("name", start_data.name); + return false; } + auto &worldspec = start_data.world_spec; infostream << "Selected world: " << worldspec.name << " [" << worldspec.path << "]" << std::endl; - if (current_address.empty()) { // If local game + if (start_data.address.empty()) { + // For singleplayer and local server if (worldspec.path.empty()) { error_message = gettext("No world selected and no address " "provided. Nothing to do."); @@ -504,8 +517,8 @@ bool ClientLauncher::launch_game(std::string &error_message, } // Load gamespec for required game - gamespec = findWorldSubgame(worldspec.path); - if (!gamespec.isValid() && !game_params.game_spec.isValid()) { + start_data.game_spec = findWorldSubgame(worldspec.path); + if (!start_data.game_spec.isValid()) { error_message = gettext("Could not find or load game \"") + worldspec.gameid + "\""; errorstream << error_message << std::endl; @@ -515,15 +528,7 @@ bool ClientLauncher::launch_game(std::string &error_message, if (porting::signal_handler_killstatus()) return true; - if (game_params.game_spec.isValid() && - game_params.game_spec.id != worldspec.gameid) { - warningstream << "Overriding gamespec from \"" - << worldspec.gameid << "\" to \"" - << game_params.game_spec.id << "\"" << std::endl; - gamespec = game_params.game_spec; - } - - if (!gamespec.isValid()) { + if (!start_data.game_spec.isValid()) { error_message = gettext("Invalid gamespec."); error_message += " (world.gameid=" + worldspec.gameid + ")"; errorstream << error_message << std::endl; @@ -531,6 +536,7 @@ bool ClientLauncher::launch_game(std::string &error_message, } } + start_data.world_path = start_data.world_spec.path; return true; } diff --git a/src/client/clientlauncher.h b/src/client/clientlauncher.h index 2702895d6..b280d8e6b 100644 --- a/src/client/clientlauncher.h +++ b/src/client/clientlauncher.h @@ -32,15 +32,15 @@ public: ~ClientLauncher(); - bool run(GameParams &game_params, const Settings &cmd_args); + bool run(GameStartData &start_data, const Settings &cmd_args); -protected: - void init_args(GameParams &game_params, const Settings &cmd_args); +private: + void init_args(GameStartData &start_data, const Settings &cmd_args); bool init_engine(); void init_input(); bool launch_game(std::string &error_message, bool reconnect_requested, - GameParams &game_params, const Settings &cmd_args); + GameStartData &start_data, const Settings &cmd_args); void main_menu(MainMenuData *menudata); @@ -48,23 +48,8 @@ protected: bool list_video_modes = false; bool skip_main_menu = false; - bool use_freetype = false; bool random_input = false; - std::string address = ""; - std::string playername = ""; - std::string password = ""; InputHandler *input = nullptr; MyEventReceiver *receiver = nullptr; gui::IGUISkin *skin = nullptr; - gui::IGUIFont *font = nullptr; - SubgameSpec gamespec; - WorldSpec worldspec; - bool simple_singleplayer_mode = false; - - // These are set up based on the menu and other things - // TODO: Are these required since there's already playername, password, etc - std::string current_playername = "inv£lid"; - std::string current_password = ""; - std::string current_address = "does-not-exist"; - int current_port = 0; }; diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index 3e4ab2e94..b9e0cc2ce 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -31,12 +31,43 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <algorithm> #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<MeshBufList> &list = lists[layer]; + const video::SMaterial &m = buf->getMaterial(); + for (MeshBufList &l : list) { + // comparing a full material is quite expensive so we don't do it if + // not even first texture is equal + if (l.m.TextureLayer[0].Texture != m.TextureLayer[0].Texture) + continue; + + if (l.m == m) { + l.bufs.emplace_back(position, buf); + return; + } + } + MeshBufList l; + l.m = m; + l.bufs.emplace_back(position, buf); + list.emplace_back(l); +} + +// ClientMap + ClientMap::ClientMap( Client *client, MapDrawControl &control, s32 id ): - Map(dout_client, client), + Map(client), scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), RenderingEngine::get_scene_manager(), id), m_client(client), @@ -122,20 +153,20 @@ void ClientMap::updateDrawList() } m_drawlist.clear(); - v3f camera_position = m_camera_position; - v3f camera_direction = m_camera_direction; - f32 camera_fov = m_camera_fov; + const v3f camera_position = m_camera_position; + const v3f camera_direction = m_camera_direction; // Use a higher fov to accomodate faster camera movements. // Blocks are cropped better when they are drawn. - // Or maybe they aren't? Well whatever. - camera_fov *= 1.2; + const f32 camera_fov = m_camera_fov * 1.1f; v3s16 cam_pos_nodes = floatToInt(camera_position, BS); v3s16 p_blocks_min; v3s16 p_blocks_max; getBlocksInViewRange(cam_pos_nodes, &p_blocks_min, &p_blocks_max); + // Number of blocks currently loaded by the client + u32 blocks_loaded = 0; // Number of blocks with mesh in rendering range u32 blocks_in_range_with_mesh = 0; // Number of blocks occlusion culled @@ -160,6 +191,7 @@ void ClientMap::updateDrawList() MapSector *sector = sector_it.second; v2s16 sp = sector->getPos(); + blocks_loaded += sector->size(); if (!m_control.range_all) { if (sp.X < p_blocks_min.X || sp.X > p_blocks_max.X || sp.Y < p_blocks_min.Z || sp.Y > p_blocks_max.Z) @@ -181,8 +213,10 @@ void ClientMap::updateDrawList() if not seen on display */ - if (block->mesh) - block->mesh->updateCameraOffset(m_camera_offset); + if (!block->mesh) { + // Ignore if mesh doesn't exist + continue; + } float range = 100000 * BS; if (!m_control.range_all) @@ -193,13 +227,6 @@ void ClientMap::updateDrawList() camera_direction, camera_fov, range, &d)) continue; - - /* - Ignore if mesh doesn't exist - */ - if (!block->mesh) - continue; - blocks_in_range_with_mesh++; /* @@ -228,52 +255,9 @@ void ClientMap::updateDrawList() g_profiler->avg("MapBlock meshes in range [#]", blocks_in_range_with_mesh); g_profiler->avg("MapBlocks occlusion culled [#]", blocks_occlusion_culled); g_profiler->avg("MapBlocks drawn [#]", m_drawlist.size()); + g_profiler->avg("MapBlocks loaded [#]", blocks_loaded); } -struct MeshBufList -{ - video::SMaterial m; - std::vector<scene::IMeshBuffer*> 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<MeshBufList> 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<MeshBufList> &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; @@ -293,19 +277,20 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) /* Get animation parameters */ - float animation_time = m_client->getAnimationTime(); - int crack = m_client->getCrackLevel(); - u32 daynight_ratio = m_client->getEnv().getDayNightRatio(); + const float animation_time = m_client->getAnimationTime(); + const int crack = m_client->getCrackLevel(); + const u32 daynight_ratio = m_client->getEnv().getDayNightRatio(); - v3f camera_position = m_camera_position; - v3f camera_direction = m_camera_direction; - f32 camera_fov = m_camera_fov; + const v3f camera_position = m_camera_position; + const v3f camera_direction = m_camera_direction; + const f32 camera_fov = m_camera_fov; /* Get all blocks and draw all visible ones */ u32 vertex_count = 0; + u32 drawcall_count = 0; // For limiting number of mesh animations per frame u32 mesh_animate_count = 0; @@ -318,6 +303,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) MeshBufListList drawbufs; for (auto &i : m_drawlist) { + v3s16 block_pos = i.first; MapBlock *block = i.second; // If the mesh of the block happened to get deleted, ignore it @@ -383,7 +369,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); } } } @@ -392,6 +378,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) { @@ -403,7 +392,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(); } @@ -417,6 +413,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) } g_profiler->avg(prefix + "vertices drawn [#]", vertex_count); + g_profiler->avg(prefix + "drawcalls [#]", drawcall_count); } static bool getVisibleBrightness(Map *map, const v3f &p0, v3f dir, float step, @@ -608,5 +605,3 @@ void ClientMap::PrintInfo(std::ostream &out) { out<<"ClientMap: "; } - - diff --git a/src/client/clientmap.h b/src/client/clientmap.h index 172e3a1d6..57cc4427e 100644 --- a/src/client/clientmap.h +++ b/src/client/clientmap.h @@ -35,6 +35,25 @@ struct MapDrawControl bool show_wireframe = false; }; +struct MeshBufList +{ + video::SMaterial m; + std::vector<std::pair<v3s16,scene::IMeshBuffer*>> 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<MeshBufList> lists[MAX_TILE_LAYERS]; + + void clear(); + void add(scene::IMeshBuffer *buf, v3s16 position, u8 layer); +}; + class Client; class ITextureSource; diff --git a/src/client/clientmedia.cpp b/src/client/clientmedia.cpp index 8cd3b6bcc..c4c08c05d 100644 --- a/src/client/clientmedia.cpp +++ b/src/client/clientmedia.cpp @@ -260,7 +260,8 @@ void ClientMediaDownloader::initialStep(Client *client) fetch_request.request_id = m_httpfetch_next_id; // == i fetch_request.timeout = m_httpfetch_timeout; fetch_request.connect_timeout = m_httpfetch_timeout; - fetch_request.post_data = required_hash_set; + fetch_request.method = HTTP_POST; + fetch_request.raw_data = required_hash_set; fetch_request.extra_headers.emplace_back( "Content-Type: application/octet-stream"); diff --git a/src/client/clouds.cpp b/src/client/clouds.cpp index 887a62f25..253dee8b9 100644 --- a/src/client/clouds.cpp +++ b/src/client/clouds.cpp @@ -170,8 +170,9 @@ void Clouds::render() // Read noise - bool *grid = new bool[m_cloud_radius_i * 2 * m_cloud_radius_i * 2]; - + std::vector<char> grid(m_cloud_radius_i * 2 * m_cloud_radius_i * 2); // vector<bool> is broken + std::vector<video::S3DVertex> vertices; + vertices.reserve(16 * m_cloud_radius_i * m_cloud_radius_i); for(s16 zi = -m_cloud_radius_i; zi < m_cloud_radius_i; zi++) { u32 si = (zi + m_cloud_radius_i) * m_cloud_radius_i * 2 + m_cloud_radius_i; @@ -195,12 +196,7 @@ void Clouds::render() { s16 zi = zi0; s16 xi = xi0; - // Draw from front to back (needed for transparency) - /*if(zi <= 0) - zi = -m_cloud_radius_i - zi; - if(xi <= 0) - xi = -m_cloud_radius_i - xi;*/ - // Draw from back to front + // Draw from back to front for proper transparency if(zi >= 0) zi = m_cloud_radius_i - zi - 1; if(xi >= 0) @@ -220,17 +216,10 @@ void Clouds::render() video::S3DVertex(0,0,0, 0,0,0, c_top, 0, 0) }; - /*if(zi <= 0 && xi <= 0){ - v[0].Color.setBlue(255); - v[1].Color.setBlue(255); - v[2].Color.setBlue(255); - v[3].Color.setBlue(255); - }*/ - - f32 rx = cloud_size / 2.0f; + const f32 rx = cloud_size / 2.0f; // if clouds are flat, the top layer should be at the given height - f32 ry = m_enable_3d ? m_params.thickness * BS : 0.0f; - f32 rz = cloud_size / 2; + const f32 ry = m_enable_3d ? m_params.thickness * BS : 0.0f; + const f32 rz = cloud_size / 2; for(int i=0; i<num_faces_to_draw; i++) { @@ -320,15 +309,25 @@ void Clouds::render() v3f pos(p0.X, m_params.height * BS, p0.Y); pos -= intToFloat(m_camera_offset, BS); - for (video::S3DVertex &vertex : v) + for (video::S3DVertex &vertex : v) { vertex.Pos += pos; - u16 indices[] = {0,1,2,2,3,0}; - driver->drawVertexPrimitiveList(v, 4, indices, 2, - video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT); + vertices.push_back(vertex); + } } } - - delete[] grid; + int quad_count = vertices.size() / 4; + std::vector<u16> indices; + indices.reserve(quad_count * 6); + for (int k = 0; k < quad_count; k++) { + indices.push_back(4 * k + 0); + indices.push_back(4 * k + 1); + indices.push_back(4 * k + 2); + indices.push_back(4 * k + 2); + indices.push_back(4 * k + 3); + indices.push_back(4 * k + 0); + } + driver->drawVertexPrimitiveList(vertices.data(), vertices.size(), indices.data(), 2 * quad_count, + video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT); // Restore fog settings driver->setFog(fog_color, fog_type, fog_start, fog_end, fog_density, @@ -342,14 +341,13 @@ void Clouds::step(float dtime) void Clouds::update(const v3f &camera_p, const video::SColorf &color_diffuse) { + video::SColorf ambient(m_params.color_ambient); + video::SColorf bright(m_params.color_bright); m_camera_pos = camera_p; - m_color.r = MYMIN(MYMAX(color_diffuse.r * m_params.color_bright.getRed(), - m_params.color_ambient.getRed()), 255) / 255.0f; - m_color.g = MYMIN(MYMAX(color_diffuse.g * m_params.color_bright.getGreen(), - m_params.color_ambient.getGreen()), 255) / 255.0f; - m_color.b = MYMIN(MYMAX(color_diffuse.b * m_params.color_bright.getBlue(), - m_params.color_ambient.getBlue()), 255) / 255.0f; - m_color.a = m_params.color_bright.getAlpha() / 255.0f; + m_color.r = core::clamp(color_diffuse.r * bright.r, ambient.r, 1.0f); + m_color.g = core::clamp(color_diffuse.g * bright.g, ambient.g, 1.0f); + m_color.b = core::clamp(color_diffuse.b * bright.b, ambient.b, 1.0f); + m_color.a = bright.a; // is the camera inside the cloud mesh? m_camera_inside_cloud = false; // default diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 4f949f6b0..97ae9afc4 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -47,6 +47,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <algorithm> #include <cmath> #include "client/shader.h" +#include "client/minimap.h" class Settings; struct ToolCapabilities; @@ -353,6 +354,8 @@ void GenericCAO::initialize(const std::string &data) m_is_local_player = true; m_is_visible = false; player->setCAO(this); + + m_prop.show_on_minimap = false; } } @@ -371,7 +374,7 @@ void GenericCAO::processInitData(const std::string &data) } // PROTOCOL_VERSION >= 37 - m_name = deSerializeString(is); + m_name = deSerializeString16(is); m_is_player = readU8(is); m_id = readU16(is); m_position = readV3F32(is); @@ -381,7 +384,7 @@ void GenericCAO::processInitData(const std::string &data) const u8 num_messages = readU8(is); for (int i = 0; i < num_messages; i++) { - std::string message = deSerializeLongString(is); + std::string message = deSerializeString32(is); processMessage(message); } @@ -456,18 +459,21 @@ void GenericCAO::setChildrenVisible(bool toset) for (u16 cao_id : m_attachment_child_ids) { GenericCAO *obj = m_env->getGenericCAO(cao_id); if (obj) { - obj->setVisible(toset); + // Check if the entity is forced to appear in first person. + obj->setVisible(obj->m_force_visible ? true : toset); } } } -void GenericCAO::setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation) +void GenericCAO::setAttachment(int parent_id, const std::string &bone, + v3f position, v3f rotation, bool force_visible) { int old_parent = m_attachment_parent_id; m_attachment_parent_id = parent_id; m_attachment_bone = bone; m_attachment_position = position; m_attachment_rotation = rotation; + m_force_visible = force_visible; ClientActiveObject *parent = m_env->getActiveObject(parent_id); @@ -477,18 +483,31 @@ void GenericCAO::setAttachment(int parent_id, const std::string &bone, v3f posit if (parent) parent->addAttachmentChild(m_id); } - - updateAttachments(); + + // Forcibly show attachments if required by set_attach + if (m_force_visible) { + m_is_visible = true; + } else if (!m_is_local_player) { + // Objects attached to the local player should be hidden in first person + m_is_visible = !m_attached_to_local || + m_client->getCamera()->getCameraMode() != CAMERA_MODE_FIRST; + m_force_visible = false; + } else { + // Local players need to have this set, + // otherwise first person attachments fail. + m_is_visible = true; + } } void GenericCAO::getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const + v3f *rotation, bool *force_visible) const { *parent_id = m_attachment_parent_id; *bone = m_attachment_bone; *position = m_attachment_position; *rotation = m_attachment_rotation; + *force_visible = m_force_visible; } void GenericCAO::clearChildAttachments() @@ -498,7 +517,7 @@ void GenericCAO::clearChildAttachments() int child_id = *m_attachment_child_ids.begin(); if (ClientActiveObject *child = m_env->getActiveObject(child_id)) - child->setAttachment(0, "", v3f(), v3f()); + child->setAttachment(0, "", v3f(), v3f(), false); removeAttachmentChild(child_id); } @@ -507,9 +526,9 @@ void GenericCAO::clearChildAttachments() void GenericCAO::clearParentAttachment() { if (m_attachment_parent_id) - setAttachment(0, "", m_attachment_position, m_attachment_rotation); + setAttachment(0, "", m_attachment_position, m_attachment_rotation, false); else - setAttachment(0, "", v3f(), v3f()); + setAttachment(0, "", v3f(), v3f(), false); } void GenericCAO::addAttachmentChild(int child_id) @@ -567,6 +586,9 @@ void GenericCAO::removeFromScene(bool permanent) m_client->getCamera()->removeNametag(m_nametag); m_nametag = nullptr; } + + if (m_marker && m_client->getMinimap()) + m_client->getMinimap()->removeMarker(&m_marker); } void GenericCAO::addToScene(ITextureSource *tsrc) @@ -795,11 +817,13 @@ void GenericCAO::addToScene(ITextureSource *tsrc) node->setParent(m_matrixnode); updateNametag(); + updateMarker(); updateNodePos(); updateAnimation(); updateBonePosition(); updateAttachments(); setNodeLight(m_last_light); + updateMeshCulling(); } void GenericCAO::updateLight(u32 day_night_ratio) @@ -885,12 +909,32 @@ u16 GenericCAO::getLightPosition(v3s16 *pos) return 3; } +void GenericCAO::updateMarker() +{ + if (!m_client->getMinimap()) + return; + + if (!m_prop.show_on_minimap) { + if (m_marker) + m_client->getMinimap()->removeMarker(&m_marker); + return; + } + + if (m_marker) + return; + + scene::ISceneNode *node = getSceneNode(); + if (!node) + return; + m_marker = m_client->getMinimap()->addMarker(node); +} + void GenericCAO::updateNametag() { if (m_is_local_player) // No nametag for local player 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); @@ -908,12 +952,14 @@ void GenericCAO::updateNametag() if (!m_nametag) { // Add nametag m_nametag = m_client->getCamera()->addNametag(node, - m_prop.nametag, m_prop.nametag_color, pos); + m_prop.nametag, m_prop.nametag_color, + m_prop.nametag_bgcolor, pos); } else { // Update nametag - m_nametag->nametag_text = m_prop.nametag; - m_nametag->nametag_color = m_prop.nametag_color; - m_nametag->nametag_pos = pos; + m_nametag->text = m_prop.nametag; + m_nametag->textcolor = m_prop.nametag_color; + m_nametag->bgcolor = m_prop.nametag_bgcolor; + m_nametag->pos = pos; } } @@ -975,13 +1021,13 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) if (controls.sneak && walking) new_speed /= 2; - if (walking && (controls.LMB || controls.RMB)) { + if (walking && (controls.dig || controls.place)) { new_anim = player->local_animations[3]; player->last_animation = WD_ANIM; - } else if(walking) { + } else if (walking) { new_anim = player->local_animations[1]; player->last_animation = WALK_ANIM; - } else if(controls.LMB || controls.RMB) { + } else if (controls.dig || controls.place) { new_anim = player->local_animations[2]; player->last_animation = DIG_ANIM; } @@ -1004,9 +1050,9 @@ void GenericCAO::step(float dtime, ClientEnvironment *env) // Update local player animations if ((player->last_animation != old_anim || - m_animation_speed != old_anim_speed) && - player->last_animation != NO_ANIM && allow_update) - updateAnimation(); + m_animation_speed != old_anim_speed) && + player->last_animation != NO_ANIM && allow_update) + updateAnimation(); } } @@ -1121,7 +1167,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 * @@ -1130,7 +1176,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 = @@ -1176,6 +1222,7 @@ void GenericCAO::updateTexturePos() int row = m_tx_basepos.Y; int col = m_tx_basepos.X; + // Yawpitch goes rightwards if (m_tx_select_horiz_by_yawpitch) { if (cam_to_entity.Y > 0.75) col += 5; @@ -1206,6 +1253,27 @@ void GenericCAO::updateTexturePos() float tys = m_tx_size.Y; setBillboardTextureMatrix(m_spritenode, txs, tys, col, row); } + + else if (m_meshnode) { + if (m_prop.visual == "upright_sprite") { + int row = m_tx_basepos.Y; + int col = m_tx_basepos.X; + + // Animation goes downwards + row += m_anim_frame; + + const auto &tx = m_tx_size; + v2f t[4] = { // cf. vertices in GenericCAO::addToScene() + tx * v2f(col+1, row+1), + tx * v2f(col, row+1), + tx * v2f(col, row), + tx * v2f(col+1, row), + }; + auto mesh = m_meshnode->getMesh(); + setMeshBufferTextureCoords(mesh->getMeshBuffer(0), t, 4); + setMeshBufferTextureCoords(mesh->getMeshBuffer(1), t, 4); + } + } } // Do not pass by reference, see header. @@ -1247,7 +1315,7 @@ void GenericCAO::updateTextures(std::string mod) } } - if (m_animated_meshnode) { + else if (m_animated_meshnode) { if (m_prop.visual == "mesh") { for (u32 i = 0; i < m_prop.textures.size() && i < m_animated_meshnode->getMaterialCount(); ++i) { @@ -1296,8 +1364,8 @@ void GenericCAO::updateTextures(std::string mod) } } } - if(m_meshnode) - { + + else if (m_meshnode) { if(m_prop.visual == "cube") { for (u32 i = 0; i < 6; ++i) @@ -1389,6 +1457,9 @@ void GenericCAO::updateTextures(std::string mod) setMeshColor(mesh, m_prop.colors[0]); } } + // Prevent showing the player after changing texture + if (m_is_local_player) + updateMeshCulling(); } void GenericCAO::updateAnimation() @@ -1558,6 +1629,8 @@ void GenericCAO::processMessage(const std::string &data) u8 cmd = readU8(is); if (cmd == AO_CMD_SET_PROPERTIES) { ObjectProperties newprops; + newprops.show_on_minimap = m_is_player; // default + newprops.deSerialize(is); // Check what exactly changed @@ -1591,6 +1664,8 @@ void GenericCAO::processMessage(const std::string &data) if ((m_is_player && !m_is_local_player) && m_prop.nametag.empty()) m_prop.nametag = m_name; + if (m_is_local_player) + m_prop.show_on_minimap = false; if (expire_visuals) { expireVisuals(); @@ -1603,6 +1678,7 @@ void GenericCAO::processMessage(const std::string &data) updateTextures(m_current_texture_modifier); } updateNametag(); + updateMarker(); } } else if (cmd == AO_CMD_UPDATE_POSITION) { // Not sent by the server if this object is an attachment. @@ -1635,7 +1711,7 @@ void GenericCAO::processMessage(const std::string &data) rot_translator.update(m_rotation, false, update_interval); updateNodePos(); } else if (cmd == AO_CMD_SET_TEXTURE_MOD) { - std::string mod = deSerializeString(is); + std::string mod = deSerializeString16(is); // immediately reset a engine issued texture modifier if a mod sends a different one if (m_reset_textures_timer > 0) { @@ -1713,7 +1789,7 @@ void GenericCAO::processMessage(const std::string &data) m_animation_speed = readF32(is); updateAnimationSpeed(); } else if (cmd == AO_CMD_SET_BONE_POSITION) { - std::string bone = deSerializeString(is); + std::string bone = deSerializeString16(is); v3f position = readV3F32(is); v3f rotation = readV3F32(is); m_bone_position[bone] = core::vector2d<v3f>(position, rotation); @@ -1721,15 +1797,12 @@ void GenericCAO::processMessage(const std::string &data) // updateBonePosition(); now called every step } else if (cmd == AO_CMD_ATTACH_TO) { u16 parent_id = readS16(is); - std::string bone = deSerializeString(is); + std::string bone = deSerializeString16(is); v3f position = readV3F32(is); v3f rotation = readV3F32(is); + bool force_visible = readU8(is); // Returns false for EOF - setAttachment(parent_id, bone, position, rotation); - - // localplayer itself can't be attached to localplayer - if (!m_is_local_player) - m_is_visible = !m_attached_to_local; + setAttachment(parent_id, bone, position, rotation, force_visible); } else if (cmd == AO_CMD_PUNCHED) { u16 result_hp = readU16(is); @@ -1771,7 +1844,7 @@ void GenericCAO::processMessage(const std::string &data) int armor_groups_size = readU16(is); for(int i=0; i<armor_groups_size; i++) { - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); int rating = readS16(is); m_armor_groups[name] = rating; } @@ -1843,5 +1916,43 @@ std::string GenericCAO::debugInfoText() return os.str(); } +void GenericCAO::updateMeshCulling() +{ + if (!m_is_local_player) + return; + + const bool hidden = m_client->getCamera()->getCameraMode() == CAMERA_MODE_FIRST; + + if (m_meshnode && m_prop.visual == "upright_sprite") { + u32 buffers = m_meshnode->getMesh()->getMeshBufferCount(); + for (u32 i = 0; i < buffers; i++) { + video::SMaterial &mat = m_meshnode->getMesh()->getMeshBuffer(i)->getMaterial(); + // upright sprite has no backface culling + mat.setFlag(video::EMF_FRONT_FACE_CULLING, hidden); + } + return; + } + + irr::scene::ISceneNode *node = getSceneNode(); + if (!node) + return; + + if (hidden) { + // Hide the mesh by culling both front and + // back faces. Serious hackyness but it works for our + // purposes. This also preserves the skeletal armature. + node->setMaterialFlag(video::EMF_BACK_FACE_CULLING, + true); + node->setMaterialFlag(video::EMF_FRONT_FACE_CULLING, + true); + } else { + // Restore mesh visibility. + node->setMaterialFlag(video::EMF_BACK_FACE_CULLING, + m_prop.backface_culling); + node->setMaterialFlag(video::EMF_FRONT_FACE_CULLING, + false); + } +} + // Prototype GenericCAO proto_GenericCAO(NULL, NULL); diff --git a/src/client/content_cao.h b/src/client/content_cao.h index 974ff9a1e..7c134fb48 100644 --- a/src/client/content_cao.h +++ b/src/client/content_cao.h @@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., class Camera; class Client; struct Nametag; +struct MinimapMarker; /* SmoothTranslator @@ -84,6 +85,7 @@ private: scene::IBillboardSceneNode *m_spritenode = nullptr; scene::IDummyTransformationSceneNode *m_matrixnode = nullptr; Nametag *m_nametag = nullptr; + MinimapMarker *m_marker = nullptr; v3f m_position = v3f(0.0f, 10.0f * BS, 0); v3f m_velocity; v3f m_acceleration; @@ -109,6 +111,7 @@ private: v3f m_attachment_position; v3f m_attachment_rotation; bool m_attached_to_local = false; + bool m_force_visible = false; int m_anim_frame = 0; int m_anim_num_frames = 1; @@ -216,9 +219,10 @@ public: } void setChildrenVisible(bool toset); - void setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation); + void setAttachment(int parent_id, const std::string &bone, v3f position, + v3f rotation, bool force_visible); void getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const; + v3f *rotation, bool *force_visible) const; void clearChildAttachments(); void clearParentAttachment(); void addAttachmentChild(int child_id); @@ -248,6 +252,8 @@ public: void updateNametag(); + void updateMarker(); + void updateNodePos(); void step(float dtime, ClientEnvironment *env); @@ -275,4 +281,6 @@ public: { return m_prop.infotext; } + + void updateMeshCulling(); }; diff --git a/src/client/content_mapblock.cpp b/src/client/content_mapblock.cpp index 3d06584c4..90284ecce 100644 --- a/src/client/content_mapblock.cpp +++ b/src/client/content_mapblock.cpp @@ -513,10 +513,10 @@ f32 MapblockMeshGenerator::getCornerLevel(int i, int k) count++; } else if (content == CONTENT_AIR) { air_count++; - if (air_count >= 2) - return -0.5 * BS + 0.2; } } + if (air_count >= 2) + return -0.5 * BS + 0.2; if (count > 0) return sum / count; return 0; @@ -723,7 +723,8 @@ void MapblockMeshGenerator::drawGlasslikeFramedNode() for (auto &glass_tile : glass_tiles) glass_tile = tiles[4]; - u8 param2 = n.getParam2(); + // Only respect H/V merge bits when paramtype2 = "glasslikeliquidlevel" (liquid tank) + u8 param2 = (f->param_type_2 == CPT2_GLASSLIKE_LIQUID_LEVEL) ? n.getParam2() : 0; bool H_merge = !(param2 & 128); bool V_merge = !(param2 & 64); param2 &= 63; @@ -1454,10 +1455,10 @@ void MapblockMeshGenerator::generate() } } -void MapblockMeshGenerator::renderSingle(content_t node) +void MapblockMeshGenerator::renderSingle(content_t node, u8 param2) { p = {0, 0, 0}; - n = MapNode(node, 0xff, 0x00); + n = MapNode(node, 0xff, param2); f = &nodedef->get(n); drawNode(); } diff --git a/src/client/content_mapblock.h b/src/client/content_mapblock.h index 97947cdbe..487d84a07 100644 --- a/src/client/content_mapblock.h +++ b/src/client/content_mapblock.h @@ -174,5 +174,5 @@ public: public: MapblockMeshGenerator(MeshMakeData *input, MeshCollector *output); void generate(); - void renderSingle(content_t node); + void renderSingle(content_t node, u8 param2 = 0x00); }; diff --git a/src/client/event_manager.h b/src/client/event_manager.h index 3762e89bf..16f7bcf07 100644 --- a/src/client/event_manager.h +++ b/src/client/event_manager.h @@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once -#include "event.h" +#include "mtevent.h" #include <list> #include <map> diff --git a/src/client/fontengine.cpp b/src/client/fontengine.cpp index 61d52cc2f..47218c0d9 100644 --- a/src/client/fontengine.cpp +++ b/src/client/fontengine.cpp @@ -42,8 +42,7 @@ static void font_setting_changed(const std::string &name, void *userdata) } /******************************************************************************/ -FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) : - m_settings(main_settings), +FontEngine::FontEngine(gui::IGUIEnvironment* env) : m_env(env) { @@ -51,34 +50,34 @@ FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) : i = (FontMode) FONT_SIZE_UNSPECIFIED; } - assert(m_settings != NULL); // pre-condition + assert(g_settings != NULL); // pre-condition assert(m_env != NULL); // pre-condition assert(m_env->getSkin() != NULL); // pre-condition readSettings(); if (m_currentMode == FM_Standard) { - m_settings->registerChangedCallback("font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_bold", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_italic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL); - m_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_bold", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_italic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL); + g_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL); } else if (m_currentMode == FM_Fallback) { - m_settings->registerChangedCallback("fallback_font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_shadow", font_setting_changed, NULL); - m_settings->registerChangedCallback("fallback_font_shadow_alpha", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_shadow", font_setting_changed, NULL); + g_settings->registerChangedCallback("fallback_font_shadow_alpha", font_setting_changed, NULL); } - m_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL); - m_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL); - m_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL); - m_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL); + g_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL); + g_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL); + g_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL); + g_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL); } /******************************************************************************/ @@ -186,13 +185,28 @@ unsigned int FontEngine::getDefaultFontSize() return m_default_size[m_currentMode]; } +unsigned int FontEngine::getFontSize(FontMode mode) +{ + if (m_currentMode == FM_Simple) { + if (mode == FM_Mono || mode == FM_SimpleMono) + return m_default_size[FM_SimpleMono]; + else + return m_default_size[FM_Simple]; + } + + if (mode == FM_Unspecified) + return m_default_size[FM_Standard]; + + return m_default_size[mode]; +} + /******************************************************************************/ void FontEngine::readSettings() { if (USE_FREETYPE && g_settings->getBool("freetype")) { - m_default_size[FM_Standard] = m_settings->getU16("font_size"); - m_default_size[FM_Fallback] = m_settings->getU16("fallback_font_size"); - m_default_size[FM_Mono] = m_settings->getU16("mono_font_size"); + m_default_size[FM_Standard] = g_settings->getU16("font_size"); + m_default_size[FM_Fallback] = g_settings->getU16("fallback_font_size"); + m_default_size[FM_Mono] = g_settings->getU16("mono_font_size"); /*~ DO NOT TRANSLATE THIS LITERALLY! This is a special string. Put either "no" or "yes" @@ -205,15 +219,15 @@ void FontEngine::readSettings() m_currentMode = is_yes(gettext("needs_fallback_font")) ? FM_Fallback : FM_Standard; - m_default_bold = m_settings->getBool("font_bold"); - m_default_italic = m_settings->getBool("font_italic"); + m_default_bold = g_settings->getBool("font_bold"); + m_default_italic = g_settings->getBool("font_italic"); } else { m_currentMode = FM_Simple; } - m_default_size[FM_Simple] = m_settings->getU16("font_size"); - m_default_size[FM_SimpleMono] = m_settings->getU16("mono_font_size"); + m_default_size[FM_Simple] = g_settings->getU16("font_size"); + m_default_size[FM_SimpleMono] = g_settings->getU16("mono_font_size"); cleanCache(); updateFontCache(); @@ -229,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; @@ -277,7 +291,7 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) setting_suffix.append("_italic"); u32 size = std::floor(RenderingEngine::getDisplayDensity() * - m_settings->getFloat("gui_scaling") * spec.size); + g_settings->getFloat("gui_scaling") * spec.size); if (size == 0) { errorstream << "FontEngine: attempt to use font size 0" << std::endl; @@ -296,8 +310,8 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec) std::string fallback_settings[] = { wanted_font_path, - m_settings->get("fallback_font_path"), - m_settings->getDefault(setting_prefix + "font_path") + g_settings->get("fallback_font_path"), + Settings::getLayer(SL_DEFAULTS)->get(setting_prefix + "font_path") }; #if USE_FREETYPE @@ -331,7 +345,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec) assert(spec.mode == FM_Simple || spec.mode == FM_SimpleMono); assert(spec.size != FONT_SIZE_UNSPECIFIED); - const std::string &font_path = m_settings->get( + const std::string &font_path = g_settings->get( (spec.mode == FM_SimpleMono) ? "mono_font_path" : "font_path"); size_t pos_dot = font_path.find_last_of('.'); @@ -349,7 +363,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec) u32 size = std::floor( RenderingEngine::getDisplayDensity() * - m_settings->getFloat("gui_scaling") * + g_settings->getFloat("gui_scaling") * spec.size); irr::gui::IGUIFont *font = nullptr; diff --git a/src/client/fontengine.h b/src/client/fontengine.h index 53f14c45f..e27ef60e9 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 <map> #include <vector> #include "util/basic_macros.h" +#include "irrlichttypes.h" #include <IGUIFont.h> #include <IGUISkin.h> #include <IGUIEnvironment.h> @@ -48,7 +49,7 @@ struct FontSpec { u16 getHash() { - return (mode << 2) | (bold << 1) | italic; + return (mode << 2) | (static_cast<u8>(bold) << 1) | static_cast<u8>(italic); } unsigned int size; @@ -61,7 +62,7 @@ class FontEngine { public: - FontEngine(Settings* main_settings, gui::IGUIEnvironment* env); + FontEngine(gui::IGUIEnvironment* env); ~FontEngine(); @@ -124,8 +125,8 @@ public: /** get default font size */ unsigned int getDefaultFontSize(); - /** initialize font engine */ - void initialize(Settings* main_settings, gui::IGUIEnvironment* env); + /** get font size for a specific mode */ + unsigned int getFontSize(FontMode mode); /** update internal parameters from settings */ void readSettings(); @@ -146,9 +147,6 @@ private: /** clean cache */ void cleanCache(); - /** pointer to settings for registering callbacks or reading config */ - Settings* m_settings = nullptr; - /** pointer to irrlicht gui environment */ gui::IGUIEnvironment* m_env = nullptr; diff --git a/src/client/game.cpp b/src/client/game.cpp index 069c482ca..3c58fb46f 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -34,11 +34,13 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "clouds.h" #include "config.h" #include "content_cao.h" +#include "content/subgames.h" #include "client/event_manager.h" #include "fontengine.h" #include "itemdef.h" #include "log.h" #include "filesys.h" +#include "gameparams.h" #include "gettext.h" #include "gui/guiChatConsole.h" #include "gui/guiConfirmRegistration.h" @@ -169,13 +171,7 @@ struct LocalFormspecHandler : public TextDest return; } - if (fields.find("quit") != fields.end()) { - return; - } - - if (fields.find("btn_continue") != fields.end()) { - return; - } + return; } if (m_formname == "MT_DEATH_SCREEN") { @@ -184,7 +180,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); } @@ -422,14 +418,13 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter CachedVertexShaderSetting<float> m_animation_timer_vertex; CachedPixelShaderSetting<float> m_animation_timer_pixel; CachedPixelShaderSetting<float, 3> m_day_light; + CachedPixelShaderSetting<float, 4> m_star_color; CachedPixelShaderSetting<float, 3> m_eye_position_pixel; CachedVertexShaderSetting<float, 3> m_eye_position_vertex; CachedPixelShaderSetting<float, 3> m_minimap_yaw; CachedPixelShaderSetting<float, 3> m_camera_offset_pixel; CachedPixelShaderSetting<float, 3> m_camera_offset_vertex; CachedPixelShaderSetting<SamplerLayer_t> m_base_texture; - CachedPixelShaderSetting<SamplerLayer_t> m_normal_texture; - CachedPixelShaderSetting<SamplerLayer_t> m_texture_flags; Client *m_client; public: @@ -456,14 +451,13 @@ public: m_animation_timer_vertex("animationTimer"), m_animation_timer_pixel("animationTimer"), m_day_light("dayLight"), + m_star_color("starColor"), m_eye_position_pixel("eyePosition"), m_eye_position_vertex("eyePosition"), m_minimap_yaw("yawVec"), m_camera_offset_pixel("cameraOffset"), m_camera_offset_vertex("cameraOffset"), m_base_texture("baseTexture"), - m_normal_texture("normalTexture"), - m_texture_flags("textureFlags"), m_client(client) { g_settings->registerChangedCallback("enable_fog", settingsCallback, this); @@ -475,12 +469,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); @@ -509,6 +499,10 @@ public: sunlight.b }; m_day_light.set(dnc, services); + video::SColorf star_color = m_sky->getCurrentStarColor(); + float clr[4] = {star_color.r, star_color.g, star_color.b, star_color.a}; + m_star_color.set(clr, services); + u32 animation_timer = porting::getTimeMs() % 1000000; float animation_timer_f = (float)animation_timer / 100000.f; m_animation_timer_vertex.set(&animation_timer_f, services); @@ -551,12 +545,8 @@ public: m_camera_offset_pixel.set(camera_offset_array, services); m_camera_offset_vertex.set(camera_offset_array, services); - SamplerLayer_t base_tex = 0, - normal_tex = 1, - flags_tex = 2; + SamplerLayer_t base_tex = 0; m_base_texture.set(&base_tex, services); - m_normal_texture.set(&normal_tex, services); - m_texture_flags.set(&flags_tex, services); } }; @@ -587,7 +577,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); @@ -602,7 +592,6 @@ public: #endif /**************************************************************************** - ****************************************************************************/ const float object_hit_delay = 0.2; @@ -623,15 +612,15 @@ struct GameRunData { u16 new_playeritem; PointedThing pointed_old; bool digging; - bool ldown_for_dig; + bool punching; + 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; float dig_time_complete; - float repeat_rightclick_timer; + float repeat_place_timer; float object_hit_delay_timer; float time_from_last_punch; ClientActiveObject *selected_object; @@ -669,19 +658,11 @@ public: ~Game(); bool startup(bool *kill, - bool random_input, InputHandler *input, - const std::string &map_dir, - const std::string &playername, - const std::string &password, - // If address is "", local server is used and address is updated - std::string *address, - u16 port, + const GameStartData &game_params, std::string &error_message, bool *reconnect, - ChatBackend *chat_backend, - const SubgameSpec &gamespec, // Used for local game - bool simple_singleplayer_mode); + ChatBackend *chat_backend); void run(); void shutdown(); @@ -691,21 +672,18 @@ protected: void extendedResourceCleanup(); // Basic initialisation - bool init(const std::string &map_dir, std::string *address, - u16 port, - const SubgameSpec &gamespec); + bool init(const std::string &map_dir, const std::string &address, + u16 port, const SubgameSpec &gamespec); bool initSound(); bool createSingleplayerServer(const std::string &map_dir, - const SubgameSpec &gamespec, u16 port, std::string *address); + const SubgameSpec &gamespec, u16 port); // Client creation - bool createClient(const std::string &playername, - const std::string &password, std::string *address, u16 port); + bool createClient(const GameStartData &start_data); bool initGui(); // Client connection - bool connectToServer(const std::string &playername, - const std::string &password, std::string *address, u16 port, + bool connectToServer(const GameStartData &start_data, bool *connect_ok, bool *aborted); bool getServerContent(bool *aborted); @@ -796,6 +774,14 @@ protected: { return input->wasKeyDown(k); } + inline bool wasKeyPressed(GameKeyType k) + { + return input->wasKeyPressed(k); + } + inline bool wasKeyReleased(GameKeyType k) + { + return input->wasKeyReleased(k); + } #ifdef __ANDROID__ void handleAndroidChatInput(); @@ -885,7 +871,6 @@ private: bool *reconnect_requested; scene::ISceneNode *skybox; - bool random_input; bool simple_singleplayer_mode; /* End 'cache' */ @@ -910,7 +895,7 @@ private: bool m_cache_enable_free_move; f32 m_cache_mouse_sensitivity; f32 m_cache_joystick_frustum_sensitivity; - f32 m_repeat_right_click_time; + f32 m_repeat_place_time; f32 m_cache_cam_smoothing; f32 m_cache_fog_start; @@ -920,6 +905,7 @@ private: bool m_does_lost_focus_pause_game = false; + int m_reset_HW_buffer_counter = 0; #ifdef __ANDROID__ bool m_cache_hold_aux1; bool m_android_chat_open; @@ -944,7 +930,7 @@ Game::Game() : &settingChangedCallback, this); g_settings->registerChangedCallback("joystick_frustum_sensitivity", &settingChangedCallback, this); - g_settings->registerChangedCallback("repeat_rightclick_time", + g_settings->registerChangedCallback("repeat_place_time", &settingChangedCallback, this); g_settings->registerChangedCallback("noclip", &settingChangedCallback, this); @@ -1002,7 +988,7 @@ Game::~Game() &settingChangedCallback, this); g_settings->deregisterChangedCallback("mouse_sensitivity", &settingChangedCallback, this); - g_settings->deregisterChangedCallback("repeat_rightclick_time", + g_settings->deregisterChangedCallback("repeat_place_time", &settingChangedCallback, this); g_settings->deregisterChangedCallback("noclip", &settingChangedCallback, this); @@ -1017,28 +1003,21 @@ Game::~Game() } bool Game::startup(bool *kill, - bool random_input, InputHandler *input, - const std::string &map_dir, - const std::string &playername, - const std::string &password, - std::string *address, // can change if simple_singleplayer_mode - u16 port, + const GameStartData &start_data, std::string &error_message, bool *reconnect, - ChatBackend *chat_backend, - const SubgameSpec &gamespec, - bool simple_singleplayer_mode) + ChatBackend *chat_backend) { + // "cache" this->device = RenderingEngine::get_raw_device(); this->kill = kill; this->error_message = &error_message; this->reconnect_requested = reconnect; - this->random_input = random_input; this->input = input; this->chat_backend = chat_backend; - this->simple_singleplayer_mode = simple_singleplayer_mode; + this->simple_singleplayer_mode = start_data.isSinglePlayer(); input->keycache.populate(); @@ -1059,10 +1038,12 @@ bool Game::startup(bool *kill, g_client_translations->clear(); - if (!init(map_dir, address, port, gamespec)) + // address can change if simple_singleplayer_mode + if (!init(start_data.world_spec.path, start_data.address, + start_data.socket_port, start_data.game_spec)) return false; - if (!createClient(playername, password, address, port)) + if (!createClient(start_data)) return false; RenderingEngine::initialize(client, hud); @@ -1221,7 +1202,7 @@ void Game::shutdown() bool Game::init( const std::string &map_dir, - std::string *address, + const std::string &address, u16 port, const SubgameSpec &gamespec) { @@ -1245,8 +1226,8 @@ bool Game::init( return false; // Create a server if not connecting to an existing one - if (address->empty()) { - if (!createSingleplayerServer(map_dir, gamespec, port, address)) + if (address.empty()) { + if (!createSingleplayerServer(map_dir, gamespec, port)) return false; } @@ -1281,7 +1262,7 @@ bool Game::initSound() } bool Game::createSingleplayerServer(const std::string &map_dir, - const SubgameSpec &gamespec, u16 port, std::string *address) + const SubgameSpec &gamespec, u16 port) { showOverlayMessage(N_("Creating server..."), 0, 5); @@ -1308,14 +1289,14 @@ bool Game::createSingleplayerServer(const std::string &map_dir, return false; } - server = new Server(map_dir, gamespec, simple_singleplayer_mode, bind_addr, false); + server = new Server(map_dir, gamespec, simple_singleplayer_mode, bind_addr, + false, nullptr, error_message); server->start(); return true; } -bool Game::createClient(const std::string &playername, - const std::string &password, std::string *address, u16 port) +bool Game::createClient(const GameStartData &start_data) { showOverlayMessage(N_("Creating client..."), 0, 10); @@ -1330,8 +1311,7 @@ bool Game::createClient(const std::string &playername, g_touchscreengui->hide(); } #endif - if (!connectToServer(playername, password, address, port, - &could_connect, &connect_aborted)) + if (!connectToServer(start_data, &could_connect, &connect_aborted)) return false; if (!could_connect) { @@ -1352,7 +1332,7 @@ bool Game::createClient(const std::string &playername, return false; } - GameGlobalShaderConstantSetterFactory *scsf = new GameGlobalShaderConstantSetterFactory( + auto *scsf = new GameGlobalShaderConstantSetterFactory( &m_flags.force_fog_off, &runData.fog_range, client); shader_src->addShaderConstantSetterFactory(scsf); @@ -1362,33 +1342,21 @@ bool Game::createClient(const std::string &playername, /* Camera */ camera = new Camera(*draw_control, client); - if (!camera || !camera->successfullyCreated(*error_message)) + if (!camera->successfullyCreated(*error_message)) return false; client->setCamera(camera); /* Clouds */ - if (m_cache_enable_clouds) { + if (m_cache_enable_clouds) clouds = new Clouds(smgr, -1, time(0)); - if (!clouds) { - *error_message = "Memory allocation error (clouds)"; - errorstream << *error_message << std::endl; - return false; - } - } /* Skybox */ - sky = new Sky(-1, texture_src); + sky = new Sky(-1, texture_src, shader_src); scsf->setSky(sky); skybox = NULL; // This is used/set later on in the main run loop - 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"); @@ -1418,18 +1386,10 @@ bool Game::createClient(const std::string &playername, hud = new Hud(guienv, client, player, &player->inventory); - if (!hud) { - *error_message = "Memory error: could not create HUD"; - errorstream << *error_message << std::endl; - return false; - } - mapper = client->getMinimap(); - if (mapper) { - mapper->setMinimapMode(MINIMAP_MODE_OFF); - if (client->modsLoaded()) - client->getScript()->on_minimap_ready(mapper); - } + + if (mapper && client->modsLoaded()) + client->getScript()->on_minimap_ready(mapper); return true; } @@ -1447,11 +1407,6 @@ bool Game::initGui() // Chat backend and console gui_chat_console = new GUIChatConsole(guienv, guienv->getRootGUIElement(), -1, chat_backend, client, &g_menumgr); - if (!gui_chat_console) { - *error_message = "Could not allocate memory for chat console"; - errorstream << *error_message << std::endl; - return false; - } #ifdef HAVE_TOUCHSCREENGUI @@ -1463,8 +1418,7 @@ bool Game::initGui() return true; } -bool Game::connectToServer(const std::string &playername, - const std::string &password, std::string *address, u16 port, +bool Game::connectToServer(const GameStartData &start_data, bool *connect_ok, bool *connection_aborted) { *connect_ok = false; // Let's not be overly optimistic @@ -1473,10 +1427,10 @@ bool Game::connectToServer(const std::string &playername, showOverlayMessage(N_("Resolving address..."), 0, 15); - Address connect_address(0, 0, 0, 0, port); + Address connect_address(0, 0, 0, 0, start_data.socket_port); try { - connect_address.Resolve(address->c_str()); + connect_address.Resolve(start_data.address.c_str()); if (connect_address.isZero()) { // i.e. INADDR_ANY, IN6ADDR_ANY //connect_address.Resolve("localhost"); @@ -1503,14 +1457,12 @@ bool Game::connectToServer(const std::string &playername, return false; } - client = new Client(playername.c_str(), password, *address, + client = new Client(start_data.name.c_str(), + 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; - client->m_simple_singleplayer_mode = simple_singleplayer_mode; infostream << "Connecting to server at "; @@ -1574,13 +1526,13 @@ bool Game::connectToServer(const std::string &playername, } else { registration_confirmation_shown = true; (new GUIConfirmRegistration(guienv, guienv->getRootGUIElement(), -1, - &g_menumgr, client, playername, password, + &g_menumgr, client, start_data.name, start_data.password, connection_aborted, texture_src))->drop(); } } else { wait_time += dtime; // Only time out if we aren't waiting for the server we started - if (!address->empty() && wait_time > 10) { + if (!start_data.isSinglePlayer() && wait_time > 10) { *error_message = "Connection timed out."; errorstream << *error_message << std::endl; break; @@ -1659,7 +1611,10 @@ bool Game::getServerContent(bool *aborted) std::stringstream message; std::fixed(message); message.precision(0); - message << gettext("Media...") << " " << (client->mediaReceiveProgress()*100) << "%"; + float receive = client->mediaReceiveProgress() * 100; + message << gettext("Media..."); + if (receive > 0) + message << " " << receive << "%"; message.precision(2); if ((USE_CURL == 0) || @@ -2029,15 +1984,11 @@ void Game::processItemSelection(u16 *new_playeritem) s32 dir = wheel; - if (input->joystick.wasKeyDown(KeyType::SCROLL_DOWN) || - wasKeyDown(KeyType::HOTBAR_NEXT)) { + if (wasKeyDown(KeyType::HOTBAR_NEXT)) dir = -1; - } - if (input->joystick.wasKeyDown(KeyType::SCROLL_UP) || - wasKeyDown(KeyType::HOTBAR_PREV)) { + if (wasKeyDown(KeyType::HOTBAR_PREV)) dir = 1; - } if (dir < 0) *new_playeritem = *new_playeritem < max_item ? *new_playeritem + 1 : 0; @@ -2090,7 +2041,7 @@ void Game::openInventory() TextDest *txt_dst = new TextDestPlayerInventory(client); auto *&formspec = m_game_ui->updateFormspec(""); GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src, - txt_dst, client->getFormspecPrepend()); + txt_dst, client->getFormspecPrepend(), sound); formspec->setFormSpec(fs_src->getForm(), inventoryloc); } @@ -2231,52 +2182,37 @@ void Game::toggleMinimap(bool shift_pressed) if (!mapper || !m_game_ui->m_flags.show_hud || !g_settings->getBool("enable_minimap")) return; - if (shift_pressed) { + if (shift_pressed) mapper->toggleMinimapShape(); - return; - } + else + mapper->nextMode(); + + // TODO: When legacy minimap is deprecated, keep only HUD minimap stuff here + // Not so satisying code to keep compatibility with old fixed mode system + // --> u32 hud_flags = client->getEnv().getLocalPlayer()->hud_flags; - MinimapMode mode = MINIMAP_MODE_OFF; - if (hud_flags & HUD_FLAG_MINIMAP_VISIBLE) { - mode = mapper->getMinimapMode(); - mode = (MinimapMode)((int)mode + 1); - // If radar is disabled and in, or switching to, radar mode - if (!(hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE) && mode > 3) - mode = MINIMAP_MODE_OFF; - } + if (!(hud_flags & HUD_FLAG_MINIMAP_VISIBLE)) { + m_game_ui->m_flags.show_minimap = false; + } else { - m_game_ui->m_flags.show_minimap = true; - switch (mode) { - case MINIMAP_MODE_SURFACEx1: - m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x1"); - break; - case MINIMAP_MODE_SURFACEx2: - m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x2"); - break; - case MINIMAP_MODE_SURFACEx4: - m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x4"); - break; - case MINIMAP_MODE_RADARx1: - m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x1"); - break; - case MINIMAP_MODE_RADARx2: - m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x2"); - break; - case MINIMAP_MODE_RADARx4: - m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x4"); - break; - default: - mode = MINIMAP_MODE_OFF; - m_game_ui->m_flags.show_minimap = false; - if (hud_flags & HUD_FLAG_MINIMAP_VISIBLE) - m_game_ui->showTranslatedStatusText("Minimap hidden"); - else - m_game_ui->showTranslatedStatusText("Minimap currently disabled by game or mod"); - } + // If radar is disabled, try to find a non radar mode or fall back to 0 + if (!(hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE)) + while (mapper->getModeIndex() && + mapper->getModeDef().type == MINIMAP_TYPE_RADAR) + mapper->nextMode(); - mapper->setMinimapMode(mode); + m_game_ui->m_flags.show_minimap = mapper->getModeDef().type != + MINIMAP_TYPE_OFF; + } + // <-- + // End of 'not so satifying code' + if ((hud_flags & HUD_FLAG_MINIMAP_VISIBLE) || + (hud && hud->hasElementOfType(HUD_ELEM_MINIMAP))) + m_game_ui->showStatusText(utf8_to_wide(mapper->getModeDef().label)); + else + m_game_ui->showTranslatedStatusText("Minimap currently disabled by game or mod"); } void Game::toggleFog() @@ -2399,10 +2335,10 @@ void Game::checkZoomEnabled() void Game::updateCameraDirection(CameraOrientation *cam, float dtime) { if ((device->isWindowActive() && device->isWindowFocused() - && !isMenuActive()) || random_input) { + && !isMenuActive()) || input->isRandom()) { #ifndef __ANDROID__ - if (!random_input) { + if (!input->isRandom()) { // Mac OSX gets upset if this is set every frame if (device->getCursorControl()->isVisible()) device->getCursorControl()->setVisible(false); @@ -2482,8 +2418,8 @@ void Game::updatePlayerControl(const CameraOrientation &cam) isKeyDown(KeyType::SPECIAL1), isKeyDown(KeyType::SNEAK), isKeyDown(KeyType::ZOOM), - input->getLeftState(), - input->getRightState(), + isKeyDown(KeyType::DIG), + isKeyDown(KeyType::PLACE), cam.camera_pitch, cam.camera_yaw, input->joystick.getAxisWithoutDead(JA_SIDEWARD_MOVE), @@ -2498,8 +2434,8 @@ void Game::updatePlayerControl(const CameraOrientation &cam) ( (u32)(isKeyDown(KeyType::JUMP) & 0x1) << 4) | ( (u32)(isKeyDown(KeyType::SPECIAL1) & 0x1) << 5) | ( (u32)(isKeyDown(KeyType::SNEAK) & 0x1) << 6) | - ( (u32)(input->getLeftState() & 0x1) << 7) | - ( (u32)(input->getRightState() & 0x1) << 8) | + ( (u32)(isKeyDown(KeyType::DIG) & 0x1) << 7) | + ( (u32)(isKeyDown(KeyType::PLACE) & 0x1) << 8) | ( (u32)(isKeyDown(KeyType::ZOOM) & 0x1) << 9) ); @@ -2637,7 +2573,7 @@ void Game::handleClientEvent_ShowFormSpec(ClientEvent *event, CameraOrientation auto *&formspec = m_game_ui->updateFormspec(*(event->show_formspec.formname)); GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); } delete event->show_formspec.formspec; @@ -2650,7 +2586,7 @@ void Game::handleClientEvent_ShowLocalFormSpec(ClientEvent *event, CameraOrienta LocalFormspecHandler *txt_dst = new LocalFormspecHandler(*event->show_formspec.formname, client); GUIFormSpecMenu::create(m_game_ui->getFormspecGUI(), client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); delete event->show_formspec.formspec; delete event->show_formspec.formname; @@ -2959,7 +2895,8 @@ void Game::updateCamera(u32 busy_time, f32 dtime) camera->toggleCameraMode(); - playercao->setVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); + // Make the player visible depending on camera mode. + playercao->updateMeshCulling(); playercao->setChildrenVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); } @@ -3081,7 +3018,7 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) PointedThing pointed = updatePointedThing(shootline, selected_def.liquids_pointable, - !runData.ldown_for_dig, + !runData.btn_down_for_dig, camera_offset); if (pointed != runData.pointed_old) { @@ -3089,20 +3026,18 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) hud->updateSelectionMesh(camera_offset); } - if (runData.digging_blocked && !input->getLeftState()) { - // allow digging again if button is not pressed + // Allow digging again if button is not pressed + if (runData.digging_blocked && !isKeyDown(KeyType::DIG)) runData.digging_blocked = false; - } /* Stop digging when - - releasing left mouse button + - releasing dig button - pointing away from node */ if (runData.digging) { - if (input->getLeftReleased()) { - infostream << "Left button released" - << " (stopped digging)" << std::endl; + if (wasKeyReleased(KeyType::DIG)) { + infostream << "Dig button released (stopped digging)" << std::endl; runData.digging = false; } else if (pointed != runData.pointed_old) { if (pointed.type == POINTEDTHING_NODE @@ -3112,8 +3047,7 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) // Still pointing to the same node, but a different face. // Don't reset. } else { - infostream << "Pointing away from node" - << " (stopped digging)" << std::endl; + infostream << "Pointing away from node (stopped digging)" << std::endl; runData.digging = false; hud->updateSelectionMesh(camera_offset); } @@ -3124,55 +3058,60 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug) client->setCrack(-1, v3s16(0, 0, 0)); runData.dig_time = 0.0; } - } else if (runData.dig_instantly && input->getLeftReleased()) { - // Remove e.g. torches faster when clicking instead of holding LMB + } else if (runData.dig_instantly && wasKeyReleased(KeyType::DIG)) { + // Remove e.g. torches faster when clicking instead of holding dig button runData.nodig_delay_timer = 0; runData.dig_instantly = false; } - if (!runData.digging && runData.ldown_for_dig && !input->getLeftState()) { - runData.ldown_for_dig = false; - } + if (!runData.digging && runData.btn_down_for_dig && !isKeyDown(KeyType::DIG)) + runData.btn_down_for_dig = false; - runData.left_punch = false; + runData.punching = false; soundmaker->m_player_leftpunch_sound.name = ""; // Prepare for repeating, unless we're not supposed to - if (input->getRightState() && !g_settings->getBool("safe_dig_and_place")) - runData.repeat_rightclick_timer += dtime; + if (isKeyDown(KeyType::PLACE) && !g_settings->getBool("safe_dig_and_place")) + runData.repeat_place_timer += dtime; else - runData.repeat_rightclick_timer = 0; + runData.repeat_place_timer = 0; - if (selected_def.usable && input->getLeftState()) { - if (input->getLeftClicked() && (!client->modsLoaded() - || !client->getScript()->on_item_use(selected_item, pointed))) + if (selected_def.usable && isKeyDown(KeyType::DIG)) { + if (wasKeyPressed(KeyType::DIG) && (!client->modsLoaded() || + !client->getScript()->on_item_use(selected_item, pointed))) client->interact(INTERACT_USE, pointed); } else if (pointed.type == POINTEDTHING_NODE) { handlePointingAtNode(pointed, selected_item, hand_item, dtime); } else if (pointed.type == POINTEDTHING_OBJECT) { v3f player_position = player->getPosition(); handlePointingAtObject(pointed, tool_item, player_position, show_debug); - } else if (input->getLeftState()) { + } else if (isKeyDown(KeyType::DIG)) { // When button is held down in air, show continuous animation - runData.left_punch = true; + runData.punching = true; // Run callback even though item is not usable - if (input->getLeftClicked() && client->modsLoaded()) + if (wasKeyPressed(KeyType::DIG) && client->modsLoaded()) client->getScript()->on_item_use(selected_item, pointed); - } else if (input->getRightClicked()) { + } else if (wasKeyPressed(KeyType::PLACE)) { handlePointingAtNothing(selected_item); } runData.pointed_old = pointed; - if (runData.left_punch || input->getLeftClicked()) - camera->setDigging(0); // left click animation + if (runData.punching || wasKeyPressed(KeyType::DIG)) + camera->setDigging(0); // dig animation - input->resetLeftClicked(); - input->resetRightClicked(); + input->clearWasKeyPressed(); + input->clearWasKeyReleased(); + // Ensure DIG & PLACE are marked as handled + wasKeyDown(KeyType::DIG); + wasKeyDown(KeyType::PLACE); - input->resetLeftReleased(); - input->resetRightReleased(); + input->joystick.clearWasKeyPressed(KeyType::DIG); + input->joystick.clearWasKeyPressed(KeyType::PLACE); + + input->joystick.clearWasKeyReleased(KeyType::DIG); + input->joystick.clearWasKeyReleased(KeyType::PLACE); } @@ -3193,11 +3132,14 @@ PointedThing Game::updatePointedThing( const NodeDefManager *nodedef = map.getNodeDefManager(); runData.selected_object = NULL; + hud->pointing_at_object = false; RaycastState s(shootline, look_for_object, liquids_pointable); PointedThing result; env.continueRaycast(&s, &result); if (result.type == POINTEDTHING_OBJECT) { + hud->pointing_at_object = true; + runData.selected_object = client->getEnv().getActiveObject(result.object_id); aabb3f selection_box; if (show_entity_selectionbox && runData.selected_object->doShowSelectionBox() && @@ -3269,7 +3211,7 @@ PointedThing Game::updatePointedThing( void Game::handlePointingAtNothing(const ItemStack &playerItem) { - infostream << "Right Clicked in Air" << std::endl; + infostream << "Attempted to place item while pointing at nothing" << std::endl; PointedThing fauxPointed; fauxPointed.type = POINTEDTHING_NOTHING; client->interact(INTERACT_ACTIVATE, fauxPointed); @@ -3288,7 +3230,7 @@ void Game::handlePointingAtNode(const PointedThing &pointed, ClientMap &map = client->getEnv().getClientMap(); - if (runData.nodig_delay_timer <= 0.0 && input->getLeftState() + if (runData.nodig_delay_timer <= 0.0 && isKeyDown(KeyType::DIG) && !runData.digging_blocked && client->checkPrivilege("interact")) { handleDigging(pointed, nodepos, selected_item, hand_item, dtime); @@ -3309,13 +3251,14 @@ void Game::handlePointingAtNode(const PointedThing &pointed, } } - if ((input->getRightClicked() || - runData.repeat_rightclick_timer >= m_repeat_right_click_time) && + if ((wasKeyPressed(KeyType::PLACE) || + runData.repeat_place_timer >= m_repeat_place_time) && client->checkPrivilege("interact")) { - runData.repeat_rightclick_timer = 0; - infostream << "Ground right-clicked" << std::endl; + runData.repeat_place_timer = 0; + infostream << "Place button pressed while looking at ground" << std::endl; - camera->setDigging(1); // right click animation (always shown for feedback) + // Placing animation (always shown for feedback) + camera->setDigging(1); soundmaker->m_player_rightpunch_sound = SimpleSoundSpec(); @@ -3349,7 +3292,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, } // formspec in meta - if (meta && !meta->getString("formspec").empty() && !random_input + if (meta && !meta->getString("formspec").empty() && !input->isRandom() && !isKeyDown(KeyType::SNEAK)) { // on_rightclick callbacks are called anyway if (nodedef_manager->get(map.getNode(nodepos)).rightclickable) @@ -3366,7 +3309,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, auto *&formspec = m_game_ui->updateFormspec(""); GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src, - txt_dst, client->getFormspecPrepend()); + txt_dst, client->getFormspecPrepend(), sound); formspec->setFormSpec(meta->getString("formspec"), inventoryloc); return false; @@ -3381,8 +3324,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, } verbosestream << "Node placement prediction for " - << selected_def.name << " is " - << prediction << std::endl; + << selected_def.name << " is " << prediction << std::endl; v3s16 p = neighbourpos; // Place inside node itself if buildable_to @@ -3393,6 +3335,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, } else { node = map.getNode(p, &is_valid_position); if (is_valid_position && !nodedef->get(node).buildable_to) { + soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed; // Report to server client->interact(INTERACT_PLACE, pointed); return false; @@ -3465,6 +3408,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def, pp = p + v3s16(0, -1, 0); if (!nodedef->get(map.getNode(pp)).walkable) { + soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed; // Report to server client->interact(INTERACT_PLACE, pointed); return false; @@ -3541,7 +3485,7 @@ void Game::handlePointingAtObject(const PointedThing &pointed, m_game_ui->setInfoText(infotext); - if (input->getLeftState()) { + if (isKeyDown(KeyType::DIG)) { bool do_punch = false; bool do_punch_damage = false; @@ -3551,12 +3495,12 @@ void Game::handlePointingAtObject(const PointedThing &pointed, runData.object_hit_delay_timer = object_hit_delay; } - if (input->getLeftClicked()) + if (wasKeyPressed(KeyType::DIG)) do_punch = true; if (do_punch) { - infostream << "Left-clicked object" << std::endl; - runData.left_punch = true; + infostream << "Punched object" << std::endl; + runData.punching = true; } if (do_punch_damage) { @@ -3571,8 +3515,8 @@ void Game::handlePointingAtObject(const PointedThing &pointed, if (!disable_send) client->interact(INTERACT_START_DIGGING, pointed); } - } else if (input->getRightClicked()) { - infostream << "Right-clicked object" << std::endl; + } else if (wasKeyDown(KeyType::PLACE)) { + infostream << "Pressed place button while pointing at object" << std::endl; client->interact(INTERACT_PLACE, pointed); // place } } @@ -3618,7 +3562,7 @@ void Game::handleDigging(const PointedThing &pointed, const v3s16 &nodepos, return; client->interact(INTERACT_START_DIGGING, pointed); runData.digging = true; - runData.ldown_for_dig = true; + runData.btn_down_for_dig = true; } if (!runData.dig_instantly) { @@ -3712,10 +3656,9 @@ void Game::handleDigging(const PointedThing &pointed, const v3s16 &nodepos, client->setCrack(-1, nodepos); } - camera->setDigging(0); // left click animation + camera->setDigging(0); // Dig animation } - void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, const CameraOrientation &cam) { @@ -3958,7 +3901,7 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, /* Update minimap pos and rotation */ - if (mapper && m_game_ui->m_flags.show_minimap && m_game_ui->m_flags.show_hud) { + if (mapper && m_game_ui->m_flags.show_hud) { mapper->setPos(floatToInt(player->getPosition(), BS)); mapper->setAngle(player->getYaw()); } @@ -3966,6 +3909,27 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime, /* End scene */ + if (++m_reset_HW_buffer_counter > 500) { + /* + Periodically remove all mesh HW buffers. + + Work around for a quirk in Irrlicht where a HW buffer is only + released after 20000 iterations (triggered from endScene()). + + Without this, all loaded but unused meshes will retain their HW + buffers for at least 5 minutes, at which point looking up the HW buffers + becomes a bottleneck and the framerate drops (as much as 30%). + + Tests showed that numbers between 50 and 1000 are good, so picked 500. + There are no other public Irrlicht APIs that allow interacting with the + HW buffers without tracking the status of every individual mesh. + + The HW buffers for _visible_ meshes will be reinitialized in the next frame. + */ + infostream << "Game::updateFrame(): Removing all HW buffers." << std::endl; + driver->removeAllHardwareBuffers(); + m_reset_HW_buffer_counter = 0; + } driver->endScene(); stats->drawtime = tt_draw.stop(true); @@ -4001,9 +3965,10 @@ inline void Game::limitFps(FpsControl *fps_timings, f32 *dtime) else fps_timings->busy_time = 0; - u32 frametime_min = 1000 / (g_menumgr.pausesGame() - ? g_settings->getFloat("pause_fps_max") - : g_settings->getFloat("fps_max")); + u32 frametime_min = 1000 / ( + device->isWindowFocused() && !g_menumgr.pausesGame() + ? g_settings->getFloat("fps_max") + : g_settings->getFloat("fps_max_unfocused")); if (fps_timings->busy_time < frametime_min) { fps_timings->sleep_time = frametime_min - fps_timings->busy_time; @@ -4051,7 +4016,7 @@ void Game::readSettings() m_cache_enable_fog = g_settings->getBool("enable_fog"); m_cache_mouse_sensitivity = g_settings->getFloat("mouse_sensitivity"); m_cache_joystick_frustum_sensitivity = g_settings->getFloat("joystick_frustum_sensitivity"); - m_repeat_right_click_time = g_settings->getFloat("repeat_rightclick_time"); + m_repeat_place_time = g_settings->getFloat("repeat_place_time"); m_cache_enable_noclip = g_settings->getBool("noclip"); m_cache_enable_free_move = g_settings->getBool("free_move"); @@ -4116,7 +4081,7 @@ void Game::showDeathFormspec() auto *&formspec = m_game_ui->getFormspecGUI(); GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFocus("btn_respawn"); } @@ -4143,30 +4108,32 @@ void Game::showPauseMenu() "- %s: move backwards\n" "- %s: move left\n" "- %s: move right\n" - "- %s: jump/climb\n" - "- %s: sneak/go down\n" + "- %s: jump/climb up\n" + "- %s: dig/punch\n" + "- %s: place/use\n" + "- %s: sneak/climb down\n" "- %s: drop item\n" "- %s: inventory\n" "- Mouse: turn/look\n" - "- Mouse left: dig/punch\n" - "- Mouse right: place/use\n" "- Mouse wheel: select item\n" "- %s: chat\n" ); - char control_text_buf[600]; - - porting::mt_snprintf(control_text_buf, sizeof(control_text_buf), control_text_template.c_str(), - GET_KEY_NAME(keymap_forward), - GET_KEY_NAME(keymap_backward), - GET_KEY_NAME(keymap_left), - GET_KEY_NAME(keymap_right), - GET_KEY_NAME(keymap_jump), - GET_KEY_NAME(keymap_sneak), - GET_KEY_NAME(keymap_drop), - GET_KEY_NAME(keymap_inventory), - GET_KEY_NAME(keymap_chat) - ); + char control_text_buf[600]; + + porting::mt_snprintf(control_text_buf, sizeof(control_text_buf), control_text_template.c_str(), + GET_KEY_NAME(keymap_forward), + GET_KEY_NAME(keymap_backward), + GET_KEY_NAME(keymap_left), + GET_KEY_NAME(keymap_right), + GET_KEY_NAME(keymap_jump), + GET_KEY_NAME(keymap_dig), + GET_KEY_NAME(keymap_place), + GET_KEY_NAME(keymap_sneak), + GET_KEY_NAME(keymap_drop), + GET_KEY_NAME(keymap_inventory), + GET_KEY_NAME(keymap_chat) + ); std::string control_text = std::string(control_text_buf); str_formspec_escape(control_text); @@ -4248,7 +4215,7 @@ void Game::showPauseMenu() auto *&formspec = m_game_ui->getFormspecGUI(); GUIFormSpecMenu::create(formspec, client, &input->joystick, - fs_src, txt_dst, client->getFormspecPrepend()); + fs_src, txt_dst, client->getFormspecPrepend(), sound); formspec->setFocus("btn_continue"); formspec->doPause = true; } @@ -4260,19 +4227,11 @@ void Game::showPauseMenu() /****************************************************************************/ void the_game(bool *kill, - bool random_input, InputHandler *input, - const std::string &map_dir, - const std::string &playername, - const std::string &password, - const std::string &address, // If empty local server is created - u16 port, - + const GameStartData &start_data, std::string &error_message, ChatBackend &chat_backend, - bool *reconnect_requested, - const SubgameSpec &gamespec, // Used for local game - bool simple_singleplayer_mode) + bool *reconnect_requested) // Used for local game { Game game; @@ -4280,14 +4239,11 @@ void the_game(bool *kill, * is created then this is updated and we don't want to change the value * passed to us by the calling function */ - std::string server_address = address; try { - if (game.startup(kill, random_input, input, map_dir, - playername, password, &server_address, port, error_message, - reconnect_requested, &chat_backend, gamespec, - simple_singleplayer_mode)) { + if (game.startup(kill, input, start_data, error_message, + reconnect_requested, &chat_backend)) { game.run(); } diff --git a/src/client/game.h b/src/client/game.h index 69e6eed0b..d04153271 100644 --- a/src/client/game.h +++ b/src/client/game.h @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., class InputHandler; class ChatBackend; /* to avoid having to include chat.h */ struct SubgameSpec; +struct GameStartData; struct Jitter { f32 max, min, avg, counter, max_sample, min_sample, max_fraction; @@ -41,16 +42,10 @@ struct CameraOrientation { f32 camera_pitch; // "up/down" }; + void the_game(bool *kill, - bool random_input, InputHandler *input, - const std::string &map_dir, - const std::string &playername, - const std::string &password, - const std::string &address, // If "", local server is used - u16 port, + const GameStartData &start_data, std::string &error_message, ChatBackend &chat_backend, - bool *reconnect_requested, - const SubgameSpec &gamespec, // Used for local game - bool simple_singleplayer_mode); + bool *reconnect_requested); diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp index c216f405d..0c08efeb5 100644 --- a/src/client/gameui.cpp +++ b/src/client/gameui.cpp @@ -61,17 +61,6 @@ void GameUI::init() m_guitext2 = gui::StaticText::add(guienv, L"", core::rect<s32>(0, 0, 0, 0), false, false, guiroot); - // At the middle of the screen - // Object infos are shown in this - m_guitext_info = gui::StaticText::add(guienv, L"", - core::rect<s32>(0, 0, 400, g_fontengine->getTextHeight() * 5 + 5) - + v2s32(100, 200), false, true, guiroot); - - // Status text (displays info when showing and hiding GUI stuff, etc.) - m_guitext_status = gui::StaticText::add(guienv, L"<Status>", - core::rect<s32>(0, 0, 0, 0), false, false, guiroot); - m_guitext_status->setVisible(false); - // Chat text m_guitext_chat = gui::StaticText::add(guienv, L"", core::rect<s32>(0, 0, 0, 0), //false, false); // Disable word wrap as of now @@ -82,6 +71,20 @@ void GameUI::init() chat_font_size, FM_Unspecified)); } + // At the middle of the screen + // Object infos are shown in this + u32 chat_font_height = m_guitext_chat->getActiveFont()->getDimension(L"Ay").Height; + m_guitext_info = gui::StaticText::add(guienv, L"", + core::rect<s32>(0, 0, 400, g_fontengine->getTextHeight() * 5 + 5) + + v2s32(100, chat_font_height * + (g_settings->getU16("recent_chat_messages") + 3)), + false, true, guiroot); + + // Status text (displays info when showing and hiding GUI stuff, etc.) + m_guitext_status = gui::StaticText::add(guienv, L"<Status>", + core::rect<s32>(0, 0, 0, 0), false, false, guiroot); + m_guitext_status->setVisible(false); + // Profiler text (size is updated when text is updated) m_guitext_profiler = gui::StaticText::add(guienv, L"<Profiler>", core::rect<s32>(0, 0, 0, 0), false, false, guiroot); @@ -113,8 +116,8 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_ << std::setprecision(1) << " | view range: " << (draw_control->range_all ? "All" : itos(draw_control->wanted_range)) - << std::setprecision(3) - << " | RTT: " << client->getRTT() << "s"; + << std::setprecision(2) + << " | RTT: " << (client->getRTT() * 1000.0f) << "ms"; setStaticText(m_guitext, utf8_to_wide(os.str()).c_str()); m_guitext->setRelativePosition(core::rect<s32>(5, 5, screensize.X, @@ -133,9 +136,9 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_ << "pos: (" << (player_position.X / BS) << ", " << (player_position.Y / BS) << ", " << (player_position.Z / BS) - << ") | yaw: " << (wrapDegrees_0_360(cam.camera_yaw)) << "\xC2\xB0 " + << ") | yaw: " << (wrapDegrees_0_360(cam.camera_yaw)) << "° " << yawToDirectionString(cam.camera_yaw) - << " | pitch: " << (-wrapDegrees_180(cam.camera_pitch)) << "\xC2\xB0" + << " | pitch: " << (-wrapDegrees_180(cam.camera_pitch)) << "°" << " | seed: " << ((u64)client->getMapSeed()); if (pointed_old.type == POINTEDTHING_NODE) { diff --git a/src/client/gameui.h b/src/client/gameui.h index 67c6a9921..b6c8a224d 100644 --- a/src/client/gameui.h +++ b/src/client/gameui.h @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "irrlichttypes.h" #include <IGUIEnvironment.h> #include "gui/guiFormSpecMenu.h" #include "util/enriched_string.h" diff --git a/src/client/guiscalingfilter.cpp b/src/client/guiscalingfilter.cpp index 4262331bd..406c096e6 100644 --- a/src/client/guiscalingfilter.cpp +++ b/src/client/guiscalingfilter.cpp @@ -172,11 +172,8 @@ void draw2DImageFilterScaled(video::IVideoDriver *driver, video::ITexture *txr, void draw2DImage9Slice(video::IVideoDriver *driver, video::ITexture *texture, const core::rect<s32> &rect, const core::rect<s32> &middle, - const core::rect<s32> *cliprect) + const core::rect<s32> *cliprect, const video::SColor *const colors) { - const video::SColor color(255,255,255,255); - const video::SColor colors[] = {color,color,color,color}; - auto originalSize = texture->getOriginalSize(); core::vector2di lowerRightOffset = core::vector2di(originalSize.Width, originalSize.Height) - middle.LowerRightCorner; diff --git a/src/client/guiscalingfilter.h b/src/client/guiscalingfilter.h index b703d91f0..379a4bdb0 100644 --- a/src/client/guiscalingfilter.h +++ b/src/client/guiscalingfilter.h @@ -54,4 +54,5 @@ void draw2DImageFilterScaled(video::IVideoDriver *driver, video::ITexture *txr, */ void draw2DImage9Slice(video::IVideoDriver *driver, video::ITexture *texture, const core::rect<s32> &rect, const core::rect<s32> &middle, - const core::rect<s32> *cliprect = nullptr); + const core::rect<s32> *cliprect = nullptr, + const video::SColor *const colors = nullptr); diff --git a/src/client/hud.cpp b/src/client/hud.cpp index 31e633bc2..46736b325 100644 --- a/src/client/hud.cpp +++ b/src/client/hud.cpp @@ -36,11 +36,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mesh.h" #include "wieldmesh.h" #include "client/renderingengine.h" +#include "client/minimap.h" #ifdef HAVE_TOUCHSCREENGUI #include "gui/touchscreengui.h" #endif +#define OBJECT_CROSSHAIR_LINE_SIZE 8 +#define CROSSHAIR_LINE_SIZE 10 + Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, Inventory *inventory) { @@ -76,6 +80,7 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, selectionbox_argb = video::SColor(255, sbox_r, sbox_g, sbox_b); use_crosshair_image = tsrc->isKnownSourceImage("crosshair.png"); + use_object_crosshair_image = tsrc->isKnownSourceImage("object_crosshair.png"); m_selection_boxes.clear(); m_halo_boxes.clear(); @@ -95,7 +100,7 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, if (g_settings->getBool("enable_shaders")) { IShaderSource *shdrsrc = client->getShaderSource(); u16 shader_id = shdrsrc->getShader( - m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", 1, 1); + m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", TILE_MATERIAL_ALPHA); m_selection_material.MaterialType = shdrsrc->getShaderInfo(shader_id).material; } else { m_selection_material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; @@ -110,6 +115,28 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, } else { m_selection_material.MaterialType = video::EMT_SOLID; } + + // Prepare mesh for compass drawing + m_rotation_mesh_buffer.Vertices.set_used(4); + m_rotation_mesh_buffer.Indices.set_used(6); + + video::SColor white(255, 255, 255, 255); + v3f normal(0.f, 0.f, 1.f); + + m_rotation_mesh_buffer.Vertices[0] = video::S3DVertex(v3f(-1.f, -1.f, 0.f), normal, white, v2f(0.f, 1.f)); + m_rotation_mesh_buffer.Vertices[1] = video::S3DVertex(v3f(-1.f, 1.f, 0.f), normal, white, v2f(0.f, 0.f)); + m_rotation_mesh_buffer.Vertices[2] = video::S3DVertex(v3f( 1.f, 1.f, 0.f), normal, white, v2f(1.f, 0.f)); + m_rotation_mesh_buffer.Vertices[3] = video::S3DVertex(v3f( 1.f, -1.f, 0.f), normal, white, v2f(1.f, 1.f)); + + m_rotation_mesh_buffer.Indices[0] = 0; + m_rotation_mesh_buffer.Indices[1] = 1; + m_rotation_mesh_buffer.Indices[2] = 2; + m_rotation_mesh_buffer.Indices[3] = 2; + m_rotation_mesh_buffer.Indices[4] = 3; + m_rotation_mesh_buffer.Indices[5] = 0; + + m_rotation_mesh_buffer.getMaterial().Lighting = false; + m_rotation_mesh_buffer.getMaterial().MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; } Hud::~Hud() @@ -271,6 +298,18 @@ void Hud::drawItems(v2s32 upperleftpos, v2s32 screen_offset, s32 itemcount, } } +bool Hud::hasElementOfType(HudElementType type) +{ + for (size_t i = 0; i != player->maxHudId(); i++) { + HudElement *e = player->getHud(i); + if (!e) + continue; + if (e->type == type) + return true; + } + return false; +} + // Calculates screen position of waypoint. Returns true if waypoint is visible (in front of the player), else false. bool Hud::calculateScreenPos(const v3s16 &camera_offset, HudElement *e, v2s32 *pos) { @@ -419,6 +458,69 @@ void Hud::drawLuaElements(const v3s16 &camera_offset) core::rect<s32>(core::position2d<s32>(0,0), imgsize), NULL, colors, true); break; } + case HUD_ELEM_COMPASS: { + video::ITexture *texture = tsrc->getTexture(e->text); + if (!texture) + continue; + + // Positionning : + v2s32 dstsize(e->size.X, e->size.Y); + if (e->size.X < 0) + dstsize.X = m_screensize.X * (e->size.X * -0.01); + if (e->size.Y < 0) + dstsize.Y = m_screensize.Y * (e->size.Y * -0.01); + + if (dstsize.X <= 0 || dstsize.Y <= 0) + return; // Avoid zero divides + + // Angle according to camera view + v3f fore(0.f, 0.f, 1.f); + scene::ICameraSceneNode *cam = RenderingEngine::get_scene_manager()->getActiveCamera(); + cam->getAbsoluteTransformation().rotateVect(fore); + int angle = - fore.getHorizontalAngle().Y; + + // Limit angle and ajust with given offset + angle = (angle + (int)e->number) % 360; + + core::rect<s32> dstrect(0, 0, dstsize.X, dstsize.Y); + dstrect += pos + v2s32( + (e->align.X - 1.0) * dstsize.X / 2, + (e->align.Y - 1.0) * dstsize.Y / 2) + + v2s32(e->offset.X * m_hud_scaling, e->offset.Y * m_hud_scaling); + + switch (e->dir) { + case HUD_COMPASS_ROTATE: + drawCompassRotate(e, texture, dstrect, angle); + break; + case HUD_COMPASS_ROTATE_REVERSE: + drawCompassRotate(e, texture, dstrect, -angle); + break; + case HUD_COMPASS_TRANSLATE: + drawCompassTranslate(e, texture, dstrect, angle); + break; + case HUD_COMPASS_TRANSLATE_REVERSE: + drawCompassTranslate(e, texture, dstrect, -angle); + break; + default: + break; + } + break; } + case HUD_ELEM_MINIMAP: { + if (e->size.X <= 0 || e->size.Y <= 0) + break; + if (!client->getMinimap()) + break; + // Draw a minimap of size "size" + v2s32 dstsize(e->size.X * m_scale_factor, + e->size.Y * m_scale_factor); + // (no percent size as minimap would likely be anamorphosed) + v2s32 offset((e->align.X - 1.0) * dstsize.X / 2, + (e->align.Y - 1.0) * dstsize.Y / 2); + core::rect<s32> rect(0, 0, dstsize.X, dstsize.Y); + rect += pos + offset + v2s32(e->offset.X * m_scale_factor, + e->offset.Y * m_scale_factor); + client->getMinimap()->drawMinimap(rect); + break; } default: infostream << "Hud::drawLuaElements: ignoring drawform " << e->type << " of hud element ID " << i << " due to unrecognized type" << std::endl; @@ -426,6 +528,74 @@ void Hud::drawLuaElements(const v3s16 &camera_offset) } } +void Hud::drawCompassTranslate(HudElement *e, video::ITexture *texture, + const core::rect<s32> &rect, int angle) +{ + const video::SColor color(255, 255, 255, 255); + const video::SColor colors[] = {color, color, color, color}; + + // Compute source image scaling + core::dimension2di imgsize(texture->getOriginalSize()); + core::rect<s32> srcrect(0, 0, imgsize.Width, imgsize.Height); + + v2s32 dstsize(rect.getHeight() * e->scale.X * imgsize.Width / imgsize.Height, + rect.getHeight() * e->scale.Y); + + // Avoid infinite loop + if (dstsize.X <= 0 || dstsize.Y <= 0) + return; + + core::rect<s32> tgtrect(0, 0, dstsize.X, dstsize.Y); + tgtrect += v2s32( + (rect.getWidth() - dstsize.X) / 2, + (rect.getHeight() - dstsize.Y) / 2) + + rect.UpperLeftCorner; + + int offset = angle * dstsize.X / 360; + + tgtrect += v2s32(offset, 0); + + // Repeat image as much as needed + while (tgtrect.UpperLeftCorner.X > rect.UpperLeftCorner.X) + tgtrect -= v2s32(dstsize.X, 0); + + draw2DImageFilterScaled(driver, texture, tgtrect, srcrect, &rect, colors, true); + tgtrect += v2s32(dstsize.X, 0); + + while (tgtrect.UpperLeftCorner.X < rect.LowerRightCorner.X) { + draw2DImageFilterScaled(driver, texture, tgtrect, srcrect, &rect, colors, true); + tgtrect += v2s32(dstsize.X, 0); + } +} + +void Hud::drawCompassRotate(HudElement *e, video::ITexture *texture, + const core::rect<s32> &rect, int angle) +{ + core::rect<s32> oldViewPort = driver->getViewPort(); + core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION); + core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW); + + core::matrix4 Matrix; + Matrix.makeIdentity(); + Matrix.setRotationDegrees(v3f(0.f, 0.f, angle)); + + driver->setViewPort(rect); + driver->setTransform(video::ETS_PROJECTION, core::matrix4()); + driver->setTransform(video::ETS_VIEW, core::matrix4()); + driver->setTransform(video::ETS_WORLD, Matrix); + + video::SMaterial &material = m_rotation_mesh_buffer.getMaterial(); + material.TextureLayer[0].Texture = texture; + driver->setMaterial(material); + driver->drawMeshBuffer(&m_rotation_mesh_buffer); + + driver->setTransform(video::ETS_WORLD, core::matrix4()); + driver->setTransform(video::ETS_VIEW, oldViewMat); + driver->setTransform(video::ETS_PROJECTION, oldProjMat); + + // restore the view area + driver->setViewPort(oldViewPort); +} void Hud::drawStatbar(v2s32 pos, u16 corner, u16 drawdir, const std::string &texture, const std::string &bgtexture, @@ -601,6 +771,31 @@ void Hud::drawHotbar(u16 playeritem) { void Hud::drawCrosshair() { + if (pointing_at_object) { + if (use_object_crosshair_image) { + video::ITexture *object_crosshair = tsrc->getTexture("object_crosshair.png"); + v2u32 size = object_crosshair->getOriginalSize(); + v2s32 lsize = v2s32(m_displaycenter.X - (size.X / 2), + m_displaycenter.Y - (size.Y / 2)); + driver->draw2DImage(object_crosshair, lsize, + core::rect<s32>(0, 0, size.X, size.Y), + nullptr, crosshair_argb, true); + } else { + driver->draw2DLine( + m_displaycenter - v2s32(OBJECT_CROSSHAIR_LINE_SIZE, + OBJECT_CROSSHAIR_LINE_SIZE), + m_displaycenter + v2s32(OBJECT_CROSSHAIR_LINE_SIZE, + OBJECT_CROSSHAIR_LINE_SIZE), crosshair_argb); + driver->draw2DLine( + m_displaycenter + v2s32(OBJECT_CROSSHAIR_LINE_SIZE, + -OBJECT_CROSSHAIR_LINE_SIZE), + m_displaycenter + v2s32(-OBJECT_CROSSHAIR_LINE_SIZE, + OBJECT_CROSSHAIR_LINE_SIZE), crosshair_argb); + } + + return; + } + if (use_crosshair_image) { video::ITexture *crosshair = tsrc->getTexture("crosshair.png"); v2u32 size = crosshair->getOriginalSize(); @@ -608,12 +803,12 @@ void Hud::drawCrosshair() m_displaycenter.Y - (size.Y / 2)); driver->draw2DImage(crosshair, lsize, core::rect<s32>(0, 0, size.X, size.Y), - 0, crosshair_argb, true); + nullptr, crosshair_argb, true); } else { - driver->draw2DLine(m_displaycenter - v2s32(10, 0), - m_displaycenter + v2s32(10, 0), crosshair_argb); - driver->draw2DLine(m_displaycenter - v2s32(0, 10), - m_displaycenter + v2s32(0, 10), crosshair_argb); + driver->draw2DLine(m_displaycenter - v2s32(CROSSHAIR_LINE_SIZE, 0), + m_displaycenter + v2s32(CROSSHAIR_LINE_SIZE, 0), crosshair_argb); + driver->draw2DLine(m_displaycenter - v2s32(0, CROSSHAIR_LINE_SIZE), + m_displaycenter + v2s32(0, CROSSHAIR_LINE_SIZE), crosshair_argb); } } @@ -858,9 +1053,9 @@ void drawItemStack( if (def.type == ITEM_TOOL && item.wear != 0) { // Draw a progressbar - float barheight = rect.getHeight() / 16; - float barpad_x = rect.getWidth() / 16; - float barpad_y = rect.getHeight() / 16; + float barheight = static_cast<float>(rect.getHeight()) / 16; + float barpad_x = static_cast<float>(rect.getWidth()) / 16; + float barpad_y = static_cast<float>(rect.getHeight()) / 16; core::rect<s32> progressrect( rect.UpperLeftCorner.X + barpad_x, diff --git a/src/client/hud.h b/src/client/hud.h index 6f4c54626..d46545d71 100644 --- a/src/client/hud.h +++ b/src/client/hud.h @@ -45,12 +45,16 @@ public: video::SColor crosshair_argb; video::SColor selectionbox_argb; + bool use_crosshair_image = false; + bool use_object_crosshair_image = false; std::string hotbar_image = ""; bool use_hotbar_image = false; std::string hotbar_selected_image = ""; bool use_hotbar_selected_image = false; + bool pointing_at_object = false; + Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player, Inventory *inventory); ~Hud(); @@ -77,6 +81,8 @@ public: m_selected_face_normal = face_normal; } + bool hasElementOfType(HudElementType type); + void drawLuaElements(const v3s16 &camera_offset); private: @@ -91,6 +97,12 @@ private: void drawItem(const ItemStack &item, const core::rect<s32> &rect, bool selected); + void drawCompassTranslate(HudElement *e, video::ITexture *texture, + const core::rect<s32> &rect, int way); + + void drawCompassRotate(HudElement *e, video::ITexture *texture, + const core::rect<s32> &rect, int way); + float m_hud_scaling; // cached minetest setting float m_scale_factor; v3s16 m_camera_offset; @@ -111,6 +123,8 @@ private: video::SMaterial m_selection_material; + scene::SMeshBuffer m_rotation_mesh_buffer; + enum { HIGHLIGHT_BOX, diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index a79b04a90..978baa320 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -37,6 +37,8 @@ void KeyCache::populate() key[KeyType::JUMP] = getKeySetting("keymap_jump"); key[KeyType::SPECIAL1] = getKeySetting("keymap_special1"); key[KeyType::SNEAK] = getKeySetting("keymap_sneak"); + key[KeyType::DIG] = getKeySetting("keymap_dig"); + key[KeyType::PLACE] = getKeySetting("keymap_place"); key[KeyType::AUTOFORWARD] = getKeySetting("keymap_autoforward"); @@ -112,56 +114,75 @@ bool MyEventReceiver::OnEvent(const SEvent &event) const KeyPress &keyCode = event.KeyInput; if (keysListenedFor[keyCode]) { if (event.KeyInput.PressedDown) { + if (!IsKeyDown(keyCode)) + keyWasPressed.set(keyCode); + keyIsDown.set(keyCode); keyWasDown.set(keyCode); } else { + if (IsKeyDown(keyCode)) + keyWasReleased.set(keyCode); + keyIsDown.unset(keyCode); } + return true; } - } #ifdef HAVE_TOUCHSCREENGUI - // case of touchscreengui we have to handle different events - if (m_touchscreengui && event.EventType == irr::EET_TOUCH_INPUT_EVENT) { + } else if (m_touchscreengui && event.EventType == irr::EET_TOUCH_INPUT_EVENT) { + // In case of touchscreengui, we have to handle different events m_touchscreengui->translateEvent(event); return true; - } #endif - if (event.EventType == irr::EET_JOYSTICK_INPUT_EVENT) { + } else if (event.EventType == irr::EET_JOYSTICK_INPUT_EVENT) { /* TODO add a check like: if (event.JoystickEvent != joystick_we_listen_for) return false; */ return joystick->handleEvent(event.JoystickEvent); - } - // handle mouse events - if (event.EventType == irr::EET_MOUSE_INPUT_EVENT) { - if (isMenuActive()) { - left_active = false; - middle_active = false; - right_active = false; - } else { - left_active = event.MouseInput.isLeftPressed(); - middle_active = event.MouseInput.isMiddlePressed(); - right_active = event.MouseInput.isRightPressed(); - - if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) { - leftclicked = true; - } - if (event.MouseInput.Event == EMIE_RMOUSE_PRESSED_DOWN) { - rightclicked = true; - } - if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) { - leftreleased = true; - } - if (event.MouseInput.Event == EMIE_RMOUSE_LEFT_UP) { - rightreleased = true; - } - if (event.MouseInput.Event == EMIE_MOUSE_WHEEL) { - mouse_wheel += event.MouseInput.Wheel; - } + } else if (event.EventType == irr::EET_MOUSE_INPUT_EVENT) { + // Handle mouse events + KeyPress key; + switch (event.MouseInput.Event) { + case EMIE_LMOUSE_PRESSED_DOWN: + key = "KEY_LBUTTON"; + keyIsDown.set(key); + keyWasDown.set(key); + keyWasPressed.set(key); + break; + case EMIE_MMOUSE_PRESSED_DOWN: + key = "KEY_MBUTTON"; + keyIsDown.set(key); + keyWasDown.set(key); + keyWasPressed.set(key); + break; + case EMIE_RMOUSE_PRESSED_DOWN: + key = "KEY_RBUTTON"; + keyIsDown.set(key); + keyWasDown.set(key); + keyWasPressed.set(key); + break; + case EMIE_LMOUSE_LEFT_UP: + key = "KEY_LBUTTON"; + keyIsDown.unset(key); + keyWasReleased.set(key); + break; + case EMIE_MMOUSE_LEFT_UP: + key = "KEY_MBUTTON"; + keyIsDown.unset(key); + keyWasReleased.set(key); + break; + case EMIE_RMOUSE_LEFT_UP: + key = "KEY_RBUTTON"; + keyIsDown.unset(key); + keyWasReleased.set(key); + break; + case EMIE_MOUSE_WHEEL: + mouse_wheel += event.MouseInput.Wheel; + break; + default: break; } } else if (event.EventType == irr::EET_LOG_TEXT_EVENT) { static const LogLevel irr_loglev_conv[] = { @@ -188,38 +209,28 @@ s32 RandomInputHandler::Rand(s32 min, s32 max) return (myrand() % (max - min + 1)) + min; } +struct RandomInputHandlerSimData { + std::string key; + float counter; + int time_max; +}; + void RandomInputHandler::step(float dtime) { - { - static float counter1 = 0; - counter1 -= dtime; - if (counter1 < 0.0) { - counter1 = 0.1 * Rand(1, 40); - keydown.toggle(getKeySetting("keymap_jump")); - } - } - { - static float counter1 = 0; - counter1 -= dtime; - if (counter1 < 0.0) { - counter1 = 0.1 * Rand(1, 40); - keydown.toggle(getKeySetting("keymap_special1")); - } - } - { - static float counter1 = 0; - counter1 -= dtime; - if (counter1 < 0.0) { - counter1 = 0.1 * Rand(1, 40); - keydown.toggle(getKeySetting("keymap_forward")); - } - } - { - static float counter1 = 0; - counter1 -= dtime; - if (counter1 < 0.0) { - counter1 = 0.1 * Rand(1, 40); - keydown.toggle(getKeySetting("keymap_left")); + static RandomInputHandlerSimData rnd_data[] = { + { "keymap_jump", 0.0f, 40 }, + { "keymap_special1", 0.0f, 40 }, + { "keymap_forward", 0.0f, 40 }, + { "keymap_left", 0.0f, 40 }, + { "keymap_dig", 0.0f, 30 }, + { "keymap_place", 0.0f, 15 } + }; + + for (auto &i : rnd_data) { + i.counter -= dtime; + if (i.counter < 0.0) { + i.counter = 0.1 * Rand(1, i.time_max); + keydown.toggle(getKeySetting(i.key.c_str())); } } { @@ -230,29 +241,5 @@ void RandomInputHandler::step(float dtime) mousespeed = v2s32(Rand(-20, 20), Rand(-15, 20)); } } - { - static float counter1 = 0; - counter1 -= dtime; - if (counter1 < 0.0) { - counter1 = 0.1 * Rand(1, 30); - leftdown = !leftdown; - if (leftdown) - leftclicked = true; - if (!leftdown) - leftreleased = true; - } - } - { - static float counter1 = 0; - counter1 -= dtime; - if (counter1 < 0.0) { - counter1 = 0.1 * Rand(1, 15); - rightdown = !rightdown; - if (rightdown) - rightclicked = true; - if (!rightdown) - rightreleased = true; - } - } mousepos += mousespeed; } diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h index 9be2a2ed4..1fb4cf0ec 100644 --- a/src/client/inputhandler.h +++ b/src/client/inputhandler.h @@ -144,6 +144,14 @@ public: return b; } + // Checks whether a key was just pressed. State will be cleared + // in the subsequent iteration of Game::processPlayerInteraction + bool WasKeyPressed(const KeyPress &keycode) const { return keyWasPressed[keycode]; } + + // Checks whether a key was just released. State will be cleared + // in the subsequent iteration of Game::processPlayerInteraction + bool WasKeyReleased(const KeyPress &keycode) const { return keyWasReleased[keycode]; } + void listenForKey(const KeyPress &keyCode) { keysListenedFor.set(keyCode); } void dontListenForKeys() { keysListenedFor.clear(); } @@ -158,17 +166,20 @@ public: { keyIsDown.clear(); keyWasDown.clear(); + keyWasPressed.clear(); + keyWasReleased.clear(); - leftclicked = false; - rightclicked = false; - leftreleased = false; - rightreleased = false; + mouse_wheel = 0; + } - left_active = false; - middle_active = false; - right_active = false; + void clearWasKeyPressed() + { + keyWasPressed.clear(); + } - mouse_wheel = 0; + void clearWasKeyReleased() + { + keyWasReleased.clear(); } MyEventReceiver() @@ -178,15 +189,6 @@ public: #endif } - bool leftclicked = false; - bool rightclicked = false; - bool leftreleased = false; - bool rightreleased = false; - - bool left_active = false; - bool middle_active = false; - bool right_active = false; - s32 mouse_wheel = 0; JoystickController *joystick = nullptr; @@ -198,8 +200,16 @@ public: private: // The current state of keys KeyList keyIsDown; - // Whether a key has been pressed or not + + // Like keyIsDown but only reset when that key is read KeyList keyWasDown; + + // Whether a key has just been pressed + KeyList keyWasPressed; + + // Whether a key has just been released + KeyList keyWasReleased; + // List of keys we listen for // TODO perhaps the type of this is not really // performant as KeyList is designed for few but @@ -219,29 +229,26 @@ public: virtual ~InputHandler() = default; + virtual bool isRandom() const + { + return false; + } + virtual bool isKeyDown(GameKeyType k) = 0; virtual bool wasKeyDown(GameKeyType k) = 0; + virtual bool wasKeyPressed(GameKeyType k) = 0; + virtual bool wasKeyReleased(GameKeyType k) = 0; virtual bool cancelPressed() = 0; + virtual void clearWasKeyPressed() {} + virtual void clearWasKeyReleased() {} + virtual void listenForKey(const KeyPress &keyCode) {} virtual void dontListenForKeys() {} virtual v2s32 getMousePos() = 0; virtual void setMousePos(s32 x, s32 y) = 0; - virtual bool getLeftState() = 0; - virtual bool getRightState() = 0; - - virtual bool getLeftClicked() = 0; - virtual bool getRightClicked() = 0; - virtual void resetLeftClicked() = 0; - virtual void resetRightClicked() = 0; - - virtual bool getLeftReleased() = 0; - virtual bool getRightReleased() = 0; - virtual void resetLeftReleased() = 0; - virtual void resetRightReleased() = 0; - virtual s32 getMouseWheel() = 0; virtual void step(float dtime) {} @@ -270,10 +277,26 @@ public: { return m_receiver->WasKeyDown(keycache.key[k]) || joystick.wasKeyDown(k); } + virtual bool wasKeyPressed(GameKeyType k) + { + return m_receiver->WasKeyPressed(keycache.key[k]) || joystick.wasKeyPressed(k); + } + virtual bool wasKeyReleased(GameKeyType k) + { + return m_receiver->WasKeyReleased(keycache.key[k]) || joystick.wasKeyReleased(k); + } virtual bool cancelPressed() { return wasKeyDown(KeyType::ESC) || m_receiver->WasKeyDown(CancelKey); } + virtual void clearWasKeyPressed() + { + m_receiver->clearWasKeyPressed(); + } + virtual void clearWasKeyReleased() + { + m_receiver->clearWasKeyReleased(); + } virtual void listenForKey(const KeyPress &keyCode) { m_receiver->listenForKey(keyCode); @@ -301,59 +324,6 @@ public: } } - virtual bool getLeftState() - { - return m_receiver->left_active || joystick.isKeyDown(KeyType::MOUSE_L); - } - virtual bool getRightState() - { - return m_receiver->right_active || joystick.isKeyDown(KeyType::MOUSE_R); - } - - virtual bool getLeftClicked() - { - return m_receiver->leftclicked || - joystick.getWasKeyDown(KeyType::MOUSE_L); - } - virtual bool getRightClicked() - { - return m_receiver->rightclicked || - joystick.getWasKeyDown(KeyType::MOUSE_R); - } - - virtual void resetLeftClicked() - { - m_receiver->leftclicked = false; - joystick.clearWasKeyDown(KeyType::MOUSE_L); - } - virtual void resetRightClicked() - { - m_receiver->rightclicked = false; - joystick.clearWasKeyDown(KeyType::MOUSE_R); - } - - virtual bool getLeftReleased() - { - return m_receiver->leftreleased || - joystick.wasKeyReleased(KeyType::MOUSE_L); - } - virtual bool getRightReleased() - { - return m_receiver->rightreleased || - joystick.wasKeyReleased(KeyType::MOUSE_R); - } - - virtual void resetLeftReleased() - { - m_receiver->leftreleased = false; - joystick.clearWasKeyReleased(KeyType::MOUSE_L); - } - virtual void resetRightReleased() - { - m_receiver->rightreleased = false; - joystick.clearWasKeyReleased(KeyType::MOUSE_R); - } - virtual s32 getMouseWheel() { return m_receiver->getMouseWheel(); } void clear() @@ -372,25 +342,19 @@ class RandomInputHandler : public InputHandler public: RandomInputHandler() = default; + bool isRandom() const + { + return true; + } + virtual bool isKeyDown(GameKeyType k) { return keydown[keycache.key[k]]; } virtual bool wasKeyDown(GameKeyType k) { return false; } + virtual bool wasKeyPressed(GameKeyType k) { return false; } + virtual bool wasKeyReleased(GameKeyType k) { return false; } virtual bool cancelPressed() { return false; } virtual v2s32 getMousePos() { return mousepos; } virtual void setMousePos(s32 x, s32 y) { mousepos = v2s32(x, y); } - virtual bool getLeftState() { return leftdown; } - virtual bool getRightState() { return rightdown; } - - virtual bool getLeftClicked() { return leftclicked; } - virtual bool getRightClicked() { return rightclicked; } - virtual void resetLeftClicked() { leftclicked = false; } - virtual void resetRightClicked() { rightclicked = false; } - - virtual bool getLeftReleased() { return leftreleased; } - virtual bool getRightReleased() { return rightreleased; } - virtual void resetLeftReleased() { leftreleased = false; } - virtual void resetRightReleased() { rightreleased = false; } - virtual s32 getMouseWheel() { return 0; } virtual void step(float dtime); @@ -401,10 +365,4 @@ private: KeyList keydown; v2s32 mousepos; v2s32 mousespeed; - bool leftdown = false; - bool rightdown = false; - bool leftclicked = false; - bool rightclicked = false; - bool leftreleased = false; - bool rightreleased = false; }; diff --git a/src/client/joystick_controller.cpp b/src/client/joystick_controller.cpp index c29e8b639..f61ae4ae6 100644 --- a/src/client/joystick_controller.cpp +++ b/src/client/joystick_controller.cpp @@ -37,7 +37,7 @@ bool JoystickAxisCmb::isTriggered(const irr::SEvent::SJoystickEvent &ev) const { s16 ax_val = ev.Axis[axis_to_compare]; - return (ax_val * direction < 0) && (thresh * direction > ax_val * direction); + return (ax_val * direction < -thresh); } // spares many characters @@ -48,7 +48,7 @@ JoystickLayout create_default_layout() { JoystickLayout jlo; - jlo.axes_dead_border = 1024; + jlo.axes_deadzone = g_settings->getU16("joystick_deadzone"); const JoystickAxisLayout axes[JA_COUNT] = { {0, 1}, // JA_SIDEWARD_MOVE @@ -74,8 +74,8 @@ JoystickLayout create_default_layout() // Accessible without four modifier button pressed // regardless whether start is pressed or not - JLO_B_PB(KeyType::MOUSE_L, fb | 1 << 4, 1 << 4); - JLO_B_PB(KeyType::MOUSE_R, fb | 1 << 5, 1 << 5); + JLO_B_PB(KeyType::DIG, fb | 1 << 4, 1 << 4); + JLO_B_PB(KeyType::PLACE, fb | 1 << 5, 1 << 5); // Accessible without any modifier pressed JLO_B_PB(KeyType::JUMP, bm | 1 << 0, 1 << 0); @@ -83,9 +83,9 @@ JoystickLayout create_default_layout() // Accessible with start button not pressed, but four pressed // TODO find usage for button 0 - JLO_B_PB(KeyType::DROP, bm | 1 << 1, fb | 1 << 1); - JLO_B_PB(KeyType::SCROLL_UP, bm | 1 << 4, fb | 1 << 4); - JLO_B_PB(KeyType::SCROLL_DOWN,bm | 1 << 5, fb | 1 << 5); + JLO_B_PB(KeyType::DROP, bm | 1 << 1, fb | 1 << 1); + JLO_B_PB(KeyType::HOTBAR_PREV, bm | 1 << 4, fb | 1 << 4); + JLO_B_PB(KeyType::HOTBAR_NEXT, bm | 1 << 5, fb | 1 << 5); // Accessible with start button and four pressed // TODO find usage for buttons 0, 1 and 4, 5 @@ -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::SCROLL_UP, 2, -1, 1024); - JLO_A_PB(KeyType::SCROLL_DOWN, 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 @@ -134,10 +134,10 @@ JoystickLayout create_xbox_layout() JLO_B_PB(KeyType::SNEAK, 1 << 12, 1 << 12); // right // Triggers - JLO_B_PB(KeyType::MOUSE_L, 1 << 6, 1 << 6); // lt - JLO_B_PB(KeyType::MOUSE_R, 1 << 7, 1 << 7); // rt - JLO_B_PB(KeyType::SCROLL_UP, 1 << 4, 1 << 4); // lb - JLO_B_PB(KeyType::SCROLL_DOWN, 1 << 5, 1 << 5); // rb + JLO_B_PB(KeyType::DIG, 1 << 6, 1 << 6); // lt + JLO_B_PB(KeyType::PLACE, 1 << 7, 1 << 7); // rt + JLO_B_PB(KeyType::HOTBAR_PREV, 1 << 4, 1 << 4); // lb + JLO_B_PB(KeyType::HOTBAR_NEXT, 1 << 5, 1 << 5); // rb // D-PAD JLO_B_PB(KeyType::ZOOM, 1 << 15, 1 << 15); // up @@ -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<JoystickButtonCmb> button_keys; std::vector<JoystickAxisCmb> 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) + + bool wasKeyReleased(GameKeyType b) { - return m_past_pressed_keys[b]; + return m_keys_released[b]; } - void clearWasKeyDown(GameKeyType b) + void clearWasKeyReleased(GameKeyType b) { - m_past_pressed_keys[b] = false; + m_keys_released[b] = false; } - bool wasKeyReleased(GameKeyType b) + bool wasKeyPressed(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_pressed[b]; } - void clearWasKeyReleased(GameKeyType b) + void clearWasKeyPressed(GameKeyType b) { - m_past_pressed_keys[b] = false; + 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<KeyType::INTERNAL_ENUM_COUNT> m_pressed_keys; + std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_down; + std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_pressed; f32 m_internal_time; f32 m_past_pressed_time[KeyType::INTERNAL_ENUM_COUNT]; - std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_pressed_keys; - std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_released_keys; + std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_keys_pressed; + std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_released; }; diff --git a/src/client/keycode.cpp b/src/client/keycode.cpp index 6a0e9f569..ce5214f54 100644 --- a/src/client/keycode.cpp +++ b/src/client/keycode.cpp @@ -316,7 +316,8 @@ KeyPress::KeyPress(const char *name) int chars_read = mbtowc(&Char, name, 1); FATAL_ERROR_IF(chars_read != 1, "Unexpected multibyte character"); m_name = ""; - warningstream << "KeyPress: Unknown key '" << name << "', falling back to first char."; + warningstream << "KeyPress: Unknown key '" << name + << "', falling back to first char." << std::endl; } KeyPress::KeyPress(const irr::SEvent::SKeyInput &in, bool prefer_character) diff --git a/src/client/keys.h b/src/client/keys.h index 50d3d194b..60a7a3c45 100644 --- a/src/client/keys.h +++ b/src/client/keys.h @@ -35,6 +35,8 @@ public: SPECIAL1, SNEAK, AUTOFORWARD, + DIG, + PLACE, ESC, @@ -108,12 +110,6 @@ public: SLOT_31, SLOT_32, - // joystick specific keys - MOUSE_L, - MOUSE_R, - SCROLL_UP, - SCROLL_DOWN, - // Fake keycode for array size and internal checks INTERNAL_ENUM_COUNT diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp index 1e7040d57..f3eb1a2dd 100644 --- a/src/client/localplayer.cpp +++ b/src/client/localplayer.cpp @@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "localplayer.h" #include <cmath> -#include "event.h" +#include "mtevent.h" #include "collision.h" #include "nodedef.h" #include "settings.h" diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp index 1020e35f5..167e1e3ec 100644 --- a/src/client/mapblock_mesh.cpp +++ b/src/client/mapblock_mesh.cpp @@ -35,11 +35,9 @@ with this program; if not, write to the Free Software Foundation, Inc., MeshMakeData */ -MeshMakeData::MeshMakeData(Client *client, bool use_shaders, - bool use_tangent_vertices): +MeshMakeData::MeshMakeData(Client *client, bool use_shaders): m_client(client), - m_use_shaders(use_shaders), - m_use_tangent_vertices(use_tangent_vertices) + m_use_shaders(use_shaders) {} void MeshMakeData::fillBlockDataBegin(const v3s16 &blockpos) @@ -81,33 +79,6 @@ void MeshMakeData::fill(MapBlock *block) } } -void MeshMakeData::fillSingleNode(MapNode *node) -{ - m_blockpos = v3s16(0,0,0); - - v3s16 blockpos_nodes = v3s16(0,0,0); - VoxelArea area(blockpos_nodes-v3s16(1,1,1)*MAP_BLOCKSIZE, - blockpos_nodes+v3s16(1,1,1)*MAP_BLOCKSIZE*2-v3s16(1,1,1)); - s32 volume = area.getVolume(); - s32 our_node_index = area.index(1,1,1); - - // Allocate this block + neighbors - m_vmanip.clear(); - m_vmanip.addArea(area); - - // Fill in data - MapNode *data = new MapNode[volume]; - for(s32 i = 0; i < volume; i++) - { - if (i == our_node_index) - data[i] = *node; - else - data[i] = MapNode(CONTENT_AIR, LIGHT_MAX, 0); - } - m_vmanip.copyFrom(data, area, area.MinEdge, area.MinEdge, area.getExtent()); - delete[] data; -} - void MeshMakeData::setCrack(int crack_level, v3s16 crack_pos) { if (crack_level >= 0) @@ -419,12 +390,21 @@ static void getNodeVertexDirs(const v3s16 &dir, v3s16 *vertex_dirs) u8 idx = (dir.X + 2 * dir.Y + 3 * dir.Z) & 7; idx = (idx - 1) * 4; +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#if __GNUC__ > 7 +#pragma GCC diagnostic ignored "-Wclass-memaccess" +#endif +#endif memcpy(vertex_dirs, &vertex_dirs_table[idx], 4 * sizeof(v3s16)); +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif } 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; @@ -442,8 +422,8 @@ static void getNodeTextureCoords(v3f base, const v3f &scale, const v3s16 &dir, f *u = base.X + 1; *v = -base.Z - 2; } else if (dir == v3s16(0,-1,0)) { - *u = base.X; - *v = base.Z; + *u = base.X + 1; + *v = base.Z + 1; } } @@ -1034,10 +1014,9 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): for (auto &m : m_mesh) m = new scene::SMesh(); m_enable_shaders = data->m_use_shaders; - m_use_tangent_vertices = data->m_use_tangent_vertices; m_enable_vbo = g_settings->getBool("enable_vbo"); - if (g_settings->getBool("enable_minimap")) { + if (data->m_client->getMinimap()) { m_minimap_mapblock = new MinimapMapblock; m_minimap_mapblock->getMinimapNodes( &data->m_vmanip, data->m_blockpos * MAP_BLOCKSIZE); @@ -1188,51 +1167,15 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset): scene::SMesh *mesh = (scene::SMesh *)m_mesh[layer]; - // Create meshbuffer, add to mesh - if (m_use_tangent_vertices) { - scene::SMeshBufferTangents *buf = - new scene::SMeshBufferTangents(); - buf->Material = material; - buf->Vertices.reallocate(p.vertices.size()); - buf->Indices.reallocate(p.indices.size()); - for (const video::S3DVertex &v: p.vertices) - buf->Vertices.push_back(video::S3DVertexTangents(v.Pos, v.Color, v.TCoords)); - for (u16 i: p.indices) - buf->Indices.push_back(i); - buf->recalculateBoundingBox(); - mesh->addMeshBuffer(buf); - buf->drop(); - } else { - scene::SMeshBuffer *buf = new scene::SMeshBuffer(); - buf->Material = material; - buf->append(&p.vertices[0], p.vertices.size(), - &p.indices[0], p.indices.size()); - mesh->addMeshBuffer(buf); - buf->drop(); - } - } - - /* - 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_use_tangent_vertices) { - scene::IMeshManipulator* meshmanip = - RenderingEngine::get_scene_manager()->getMeshManipulator(); - meshmanip->recalculateTangents(m_mesh[layer], true, false, false); + scene::SMeshBuffer *buf = new scene::SMeshBuffer(); + buf->Material = material; + buf->append(&p.vertices[0], p.vertices.size(), + &p.indices[0], p.indices.size()); + mesh->addMeshBuffer(buf); + buf->drop(); } 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); @@ -1251,13 +1194,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; } @@ -1351,19 +1294,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 6af23a656..3b17c4af9 100644 --- a/src/client/mapblock_mesh.h +++ b/src/client/mapblock_mesh.h @@ -45,10 +45,8 @@ struct MeshMakeData Client *m_client; bool m_use_shaders; - bool m_use_tangent_vertices; - MeshMakeData(Client *client, bool use_shaders, - bool use_tangent_vertices = false); + MeshMakeData(Client *client, bool use_shaders); /* Copy block data manually (to allow optimizations by the caller) @@ -63,11 +61,6 @@ struct MeshMakeData void fill(MapBlock *block); /* - Set up with only a single node at (1,1,1) - */ - void fillSingleNode(MapNode *node); - - /* Set the (node) position of a crack */ void setCrack(int crack_level, v3s16 crack_pos); @@ -132,8 +125,6 @@ public: m_animation_force_timer--; } - void updateCameraOffset(v3s16 camera_offset); - private: scene::IMesh *m_mesh[MAX_TILE_LAYERS]; MinimapMapblock *m_minimap_mapblock; @@ -141,7 +132,6 @@ private: IShaderSource *m_shdrsrc; bool m_enable_shaders; - bool m_use_tangent_vertices; bool m_enable_vbo; // Must animate() be called before rendering? @@ -168,9 +158,6 @@ private: // of sunlit vertices // Keys are pairs of (mesh index, buffer index in the mesh) std::map<std::pair<u8, u32>, std::map<u32, video::SColor > > 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 e1ec22068..2400a374c 100644 --- a/src/client/mesh.cpp +++ b/src/client/mesh.cpp @@ -203,6 +203,15 @@ void setMeshColor(scene::IMesh *mesh, const video::SColor &color) setMeshBufferColor(mesh->getMeshBuffer(j), color); } +void setMeshBufferTextureCoords(scene::IMeshBuffer *buf, const v2f *uv, u32 count) +{ + const u32 stride = getVertexPitchFromType(buf->getVertexType()); + assert(buf->getVertexCount() >= count); + u8 *vertices = (u8 *) buf->getVertices(); + for (u32 i = 0; i < count; i++) + ((video::S3DVertex*) (vertices + i * stride))->TCoords = uv[i]; +} + template <typename F> static void applyToMesh(scene::IMesh *mesh, const F &fn) { diff --git a/src/client/mesh.h b/src/client/mesh.h index 103c61e45..dbc091a06 100644 --- a/src/client/mesh.h +++ b/src/client/mesh.h @@ -58,6 +58,13 @@ void setMeshBufferColor(scene::IMeshBuffer *buf, const video::SColor &color); */ void setMeshColor(scene::IMesh *mesh, const video::SColor &color); + +/* + Sets texture coords for vertices in the mesh buffer. + `uv[]` must have `count` elements +*/ +void setMeshBufferTextureCoords(scene::IMeshBuffer *buf, const v2f *uv, u32 count); + /* Set a constant color for an animated mesh */ diff --git a/src/client/mesh_generator_thread.cpp b/src/client/mesh_generator_thread.cpp index 53b980eeb..c8d1cba26 100644 --- a/src/client/mesh_generator_thread.cpp +++ b/src/client/mesh_generator_thread.cpp @@ -52,9 +52,6 @@ MeshUpdateQueue::MeshUpdateQueue(Client *client): m_client(client) { m_cache_enable_shaders = g_settings->getBool("enable_shaders"); - m_cache_use_tangent_vertices = m_cache_enable_shaders && ( - g_settings->getBool("enable_bumpmapping") || - g_settings->getBool("enable_parallax_occlusion")); m_cache_smooth_lighting = g_settings->getBool("smooth_lighting"); m_meshgen_block_cache_size = g_settings->getS32("meshgen_block_cache_size"); } @@ -207,8 +204,7 @@ CachedMapBlockData* MeshUpdateQueue::getCachedBlock(const v3s16 &p) void MeshUpdateQueue::fillDataFromMapBlockCache(QueuedMeshUpdate *q) { - MeshMakeData *data = new MeshMakeData(m_client, m_cache_enable_shaders, - m_cache_use_tangent_vertices); + MeshMakeData *data = new MeshMakeData(m_client, m_cache_enable_shaders); q->data = data; data->fillBlockDataBegin(q->p); diff --git a/src/client/mesh_generator_thread.h b/src/client/mesh_generator_thread.h index 9a42852a3..4371b8390 100644 --- a/src/client/mesh_generator_thread.h +++ b/src/client/mesh_generator_thread.h @@ -40,7 +40,6 @@ struct QueuedMeshUpdate { v3s16 p = v3s16(-1337, -1337, -1337); bool ack_block_to_server = false; - bool urgent = false; int crack_level = -1; v3s16 crack_pos; MeshMakeData *data = nullptr; // This is generated in MeshUpdateQueue::pop() @@ -88,7 +87,6 @@ private: // TODO: Add callback to update these when g_settings changes bool m_cache_enable_shaders; - bool m_cache_use_tangent_vertices; bool m_cache_smooth_lighting; int m_meshgen_block_cache_size; diff --git a/src/client/minimap.cpp b/src/client/minimap.cpp index 68770ec19..dd810ee0a 100644 --- a/src/client/minimap.cpp +++ b/src/client/minimap.cpp @@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "shader.h" #include "mapblock.h" #include "client/renderingengine.h" - +#include "gettext.h" //// //// MinimapUpdateThread @@ -108,8 +108,11 @@ void MinimapUpdateThread::doUpdate() } } - if (data->map_invalidated && data->mode != MINIMAP_MODE_OFF) { - getMap(data->pos, data->map_size, data->scan_height); + + if (data->map_invalidated && ( + data->mode.type == MINIMAP_TYPE_RADAR || + data->mode.type == MINIMAP_TYPE_SURFACE)) { + getMap(data->pos, data->mode.map_size, data->mode.scan_height); data->map_invalidated = false; } } @@ -181,19 +184,26 @@ Minimap::Minimap(Client *client) this->m_ndef = client->getNodeDefManager(); m_angle = 0.f; + m_current_mode_index = 0; // Initialize static settings m_enable_shaders = g_settings->getBool("enable_shaders"); m_surface_mode_scan_height = g_settings->getBool("minimap_double_scan_height") ? 256 : 128; + // Initialize minimap modes + addMode(MINIMAP_TYPE_OFF); + addMode(MINIMAP_TYPE_SURFACE, 256); + addMode(MINIMAP_TYPE_SURFACE, 128); + addMode(MINIMAP_TYPE_SURFACE, 64); + addMode(MINIMAP_TYPE_RADAR, 512); + addMode(MINIMAP_TYPE_RADAR, 256); + addMode(MINIMAP_TYPE_RADAR, 128); + // Initialize minimap data data = new MinimapData; - data->mode = MINIMAP_MODE_OFF; - data->is_radar = false; - data->map_invalidated = true; - data->texture = NULL; - data->heightmap_texture = NULL; + data->map_invalidated = true; + data->minimap_shape_round = g_settings->getBool("minimap_shape_round"); // Get round minimap textures @@ -215,6 +225,8 @@ Minimap::Minimap(Client *client) // Create object marker texture data->object_marker_red = m_tsrc->getTexture("object_marker_red.png"); + setModeIndex(0); + // Create mesh buffer for minimap m_meshbuffer = getMinimapMeshBuffer(); @@ -240,6 +252,10 @@ Minimap::~Minimap() driver->removeTexture(data->minimap_overlay_square); driver->removeTexture(data->object_marker_red); + for (MinimapMarker *m : m_markers) + delete m; + m_markers.clear(); + delete data; delete m_minimap_update_thread; } @@ -280,29 +296,102 @@ MinimapShape Minimap::getMinimapShape() return MINIMAP_SHAPE_SQUARE; } -void Minimap::setMinimapMode(MinimapMode mode) +void Minimap::setModeIndex(size_t index) { - static const MinimapModeDef modedefs[MINIMAP_MODE_COUNT] = { - {false, 0, 0}, - {false, m_surface_mode_scan_height, 256}, - {false, m_surface_mode_scan_height, 128}, - {false, m_surface_mode_scan_height, 64}, - {true, 32, 128}, - {true, 32, 64}, - {true, 32, 32} - }; - - if (mode >= MINIMAP_MODE_COUNT) - return; - MutexAutoLock lock(m_mutex); - data->is_radar = modedefs[mode].is_radar; - data->scan_height = modedefs[mode].scan_height; - data->map_size = modedefs[mode].map_size; - data->mode = mode; + if (index < m_modes.size()) { + data->mode = m_modes[index]; + m_current_mode_index = index; + } else { + data->mode = MinimapModeDef{MINIMAP_TYPE_OFF, gettext("Minimap hidden"), 0, 0, ""}; + m_current_mode_index = 0; + } - m_minimap_update_thread->deferUpdate(); + data->map_invalidated = true; + + if (m_minimap_update_thread) + m_minimap_update_thread->deferUpdate(); +} + +void Minimap::addMode(MinimapModeDef mode) +{ + // Check validity + if (mode.type == MINIMAP_TYPE_TEXTURE) { + if (mode.texture.empty()) + return; + if (mode.scale < 1) + mode.scale = 1; + } + + int zoom = -1; + + // Build a default standard label + if (mode.label == "") { + switch (mode.type) { + case MINIMAP_TYPE_OFF: + mode.label = gettext("Minimap hidden"); + break; + case MINIMAP_TYPE_SURFACE: + 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 = 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 = gettext("Minimap in texture mode"); + break; + default: + break; + } + } + // else: Custom labels need mod-provided client-side translation + + if (zoom >= 0) { + char label_buf[1024]; + porting::mt_snprintf(label_buf, sizeof(label_buf), + mode.label.c_str(), zoom); + mode.label = label_buf; + } + + m_modes.push_back(mode); +} + +void Minimap::addMode(MinimapType type, u16 size, std::string label, + std::string texture, u16 scale) +{ + MinimapModeDef mode; + mode.type = type; + mode.label = label; + mode.map_size = size; + mode.texture = texture; + mode.scale = scale; + switch (type) { + case MINIMAP_TYPE_SURFACE: + mode.scan_height = m_surface_mode_scan_height; + break; + case MINIMAP_TYPE_RADAR: + mode.scan_height = 32; + break; + default: + mode.scan_height = 0; + } + addMode(mode); +} + +void Minimap::nextMode() +{ + if (m_modes.empty()) + return; + m_current_mode_index++; + if (m_current_mode_index >= m_modes.size()) + m_current_mode_index = 0; + + setModeIndex(m_current_mode_index); } void Minimap::setPos(v3s16 pos) @@ -331,16 +420,16 @@ void Minimap::setAngle(f32 angle) void Minimap::blitMinimapPixelsToImageRadar(video::IImage *map_image) { video::SColor c(240, 0, 0, 0); - for (s16 x = 0; x < data->map_size; x++) - for (s16 z = 0; z < data->map_size; z++) { - MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->map_size]; + for (s16 x = 0; x < data->mode.map_size; x++) + for (s16 z = 0; z < data->mode.map_size; z++) { + MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->mode.map_size]; if (mmpixel->air_count > 0) c.setGreen(core::clamp(core::round32(32 + mmpixel->air_count * 8), 0, 255)); else c.setGreen(0); - map_image->setPixel(x, data->map_size - z - 1, c); + map_image->setPixel(x, data->mode.map_size - z - 1, c); } } @@ -349,9 +438,9 @@ void Minimap::blitMinimapPixelsToImageSurface( { // This variable creation/destruction has a 1% cost on rendering minimap video::SColor tilecolor; - for (s16 x = 0; x < data->map_size; x++) - for (s16 z = 0; z < data->map_size; z++) { - MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->map_size]; + for (s16 x = 0; x < data->mode.map_size; x++) + for (s16 z = 0; z < data->mode.map_size; z++) { + MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->mode.map_size]; const ContentFeatures &f = m_ndef->get(mmpixel->n); const TileDef *tile = &f.tiledef[0]; @@ -367,10 +456,10 @@ void Minimap::blitMinimapPixelsToImageSurface( tilecolor.setBlue(tilecolor.getBlue() * f.minimap_color.getBlue() / 255); tilecolor.setAlpha(240); - map_image->setPixel(x, data->map_size - z - 1, tilecolor); + map_image->setPixel(x, data->mode.map_size - z - 1, tilecolor); u32 h = mmpixel->height; - heightmap_image->setPixel(x,data->map_size - z - 1, + heightmap_image->setPixel(x,data->mode.map_size - z - 1, video::SColor(255, h, h, h)); } } @@ -378,21 +467,46 @@ void Minimap::blitMinimapPixelsToImageSurface( video::ITexture *Minimap::getMinimapTexture() { // update minimap textures when new scan is ready - if (data->map_invalidated) + if (data->map_invalidated && data->mode.type != MINIMAP_TYPE_TEXTURE) return data->texture; // create minimap and heightmap images in memory - core::dimension2d<u32> dim(data->map_size, data->map_size); + core::dimension2d<u32> dim(data->mode.map_size, data->mode.map_size); video::IImage *map_image = driver->createImage(video::ECF_A8R8G8B8, dim); video::IImage *heightmap_image = driver->createImage(video::ECF_A8R8G8B8, dim); video::IImage *minimap_image = driver->createImage(video::ECF_A8R8G8B8, core::dimension2d<u32>(MINIMAP_MAX_SX, MINIMAP_MAX_SY)); // Blit MinimapPixels to images - if (data->is_radar) - blitMinimapPixelsToImageRadar(map_image); - else + switch(data->mode.type) { + case MINIMAP_TYPE_OFF: + break; + case MINIMAP_TYPE_SURFACE: blitMinimapPixelsToImageSurface(map_image, heightmap_image); + break; + case MINIMAP_TYPE_RADAR: + blitMinimapPixelsToImageRadar(map_image); + break; + case MINIMAP_TYPE_TEXTURE: + // Want to use texture source, to : 1 find texture, 2 cache it + video::ITexture* texture = m_tsrc->getTexture(data->mode.texture); + video::IImage* image = driver->createImageFromData( + texture->getColorFormat(), texture->getSize(), texture->lock(), true, false); + texture->unlock(); + + auto dim = image->getDimension(); + + map_image->fill(video::SColor(255, 0, 0, 0)); + + image->copyTo(map_image, + irr::core::vector2d<int> { + ((data->mode.map_size - (static_cast<int>(dim.Width))) >> 1) + - data->pos.X / data->mode.scale, + ((data->mode.map_size - (static_cast<int>(dim.Height))) >> 1) + + data->pos.Z / data->mode.scale + }); + image->drop(); + } map_image->copyToScaling(minimap_image); map_image->drop(); @@ -461,21 +575,31 @@ scene::SMeshBuffer *Minimap::getMinimapMeshBuffer() void Minimap::drawMinimap() { + // Non hud managed minimap drawing (legacy minimap) + v2u32 screensize = RenderingEngine::get_instance()->getWindowSize(); + const u32 size = 0.25 * screensize.Y; + + drawMinimap(core::rect<s32>( + screensize.X - size - 10, 10, + screensize.X - 10, size + 10)); +} + +void Minimap::drawMinimap(core::rect<s32> rect) { + video::ITexture *minimap_texture = getMinimapTexture(); if (!minimap_texture) return; + if (data->mode.type == MINIMAP_TYPE_OFF) + return; + updateActiveMarkers(); - v2u32 screensize = RenderingEngine::get_instance()->getWindowSize(); - const u32 size = 0.25 * screensize.Y; core::rect<s32> oldViewPort = driver->getViewPort(); core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION); core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW); - driver->setViewPort(core::rect<s32>( - screensize.X - size - 10, 10, - screensize.X - 10, size + 10)); + driver->setViewPort(rect); driver->setTransform(video::ETS_PROJECTION, core::matrix4()); driver->setTransform(video::ETS_VIEW, core::matrix4()); @@ -488,8 +612,8 @@ void Minimap::drawMinimap() material.TextureLayer[0].Texture = minimap_texture; material.TextureLayer[1].Texture = data->heightmap_texture; - if (m_enable_shaders && !data->is_radar) { - u16 sid = m_shdrsrc->getShader("minimap_shader", 1, 1); + if (m_enable_shaders && data->mode.type == MINIMAP_TYPE_SURFACE) { + 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; @@ -529,14 +653,14 @@ void Minimap::drawMinimap() driver->setViewPort(oldViewPort); // Draw player markers - v2s32 s_pos(screensize.X - size - 10, 10); + v2s32 s_pos(rect.UpperLeftCorner.X, rect.UpperLeftCorner.Y); core::dimension2di imgsize(data->object_marker_red->getOriginalSize()); core::rect<s32> img_rect(0, 0, imgsize.Width, imgsize.Height); static const video::SColor col(255, 255, 255, 255); static const video::SColor c[4] = {col, col, col, col}; f32 sin_angle = std::sin(m_angle * core::DEGTORAD); f32 cos_angle = std::cos(m_angle * core::DEGTORAD); - s32 marker_size2 = 0.025 * (float)size; + s32 marker_size2 = 0.025 * (float)rect.getWidth();; for (std::list<v2f>::const_iterator i = m_active_markers.begin(); i != m_active_markers.end(); ++i) { @@ -547,8 +671,8 @@ void Minimap::drawMinimap() posf.X = t1; posf.Y = t2; } - posf.X = (posf.X + 0.5) * (float)size; - posf.Y = (posf.Y + 0.5) * (float)size; + posf.X = (posf.X + 0.5) * (float)rect.getWidth(); + posf.Y = (posf.Y + 0.5) * (float)rect.getHeight(); core::rect<s32> dest_rect( s_pos.X + posf.X - marker_size2, s_pos.Y + posf.Y - marker_size2, @@ -559,28 +683,41 @@ void Minimap::drawMinimap() } } +MinimapMarker* Minimap::addMarker(scene::ISceneNode *parent_node) +{ + MinimapMarker *m = new MinimapMarker(parent_node); + m_markers.push_back(m); + return m; +} + +void Minimap::removeMarker(MinimapMarker **m) +{ + m_markers.remove(*m); + delete *m; + *m = nullptr; +} + void Minimap::updateActiveMarkers() { video::IImage *minimap_mask = data->minimap_shape_round ? data->minimap_mask_round : data->minimap_mask_square; - const std::list<Nametag *> &nametags = client->getCamera()->getNametags(); - m_active_markers.clear(); - - for (Nametag *nametag : nametags) { - v3s16 pos = floatToInt(nametag->parent_node->getAbsolutePosition() + - intToFloat(client->getCamera()->getOffset(), BS), BS); - pos -= data->pos - v3s16(data->map_size / 2, - data->scan_height / 2, - data->map_size / 2); - if (pos.X < 0 || pos.X > data->map_size || - pos.Y < 0 || pos.Y > data->scan_height || - pos.Z < 0 || pos.Z > data->map_size) { + v3f cam_offset = intToFloat(client->getCamera()->getOffset(), BS); + v3s16 pos_offset = data->pos - v3s16(data->mode.map_size / 2, + data->mode.scan_height / 2, + data->mode.map_size / 2); + + for (MinimapMarker *marker : m_markers) { + v3s16 pos = floatToInt(marker->parent_node->getAbsolutePosition() + + cam_offset, BS) - pos_offset; + if (pos.X < 0 || pos.X > data->mode.map_size || + pos.Y < 0 || pos.Y > data->mode.scan_height || + pos.Z < 0 || pos.Z > data->mode.map_size) { continue; } - pos.X = ((float)pos.X / data->map_size) * MINIMAP_MAX_SX; - pos.Z = ((float)pos.Z / data->map_size) * MINIMAP_MAX_SY; + pos.X = ((float)pos.X / data->mode.map_size) * MINIMAP_MAX_SX; + pos.Z = ((float)pos.Z / data->mode.map_size) * MINIMAP_MAX_SY; const video::SColor &mask_col = minimap_mask->getPixel(pos.X, pos.Z); if (!mask_col.getAlpha()) { continue; diff --git a/src/client/minimap.h b/src/client/minimap.h index 258d5330d..87c9668ee 100644 --- a/src/client/minimap.h +++ b/src/client/minimap.h @@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "../hud.h" #include "irrlichttypes_extrabloated.h" #include "util/thread.h" #include "voxel.h" @@ -33,28 +34,27 @@ class IShaderSource; #define MINIMAP_MAX_SX 512 #define MINIMAP_MAX_SY 512 -enum MinimapMode { - MINIMAP_MODE_OFF, - MINIMAP_MODE_SURFACEx1, - MINIMAP_MODE_SURFACEx2, - MINIMAP_MODE_SURFACEx4, - MINIMAP_MODE_RADARx1, - MINIMAP_MODE_RADARx2, - MINIMAP_MODE_RADARx4, - MINIMAP_MODE_COUNT, -}; - enum MinimapShape { MINIMAP_SHAPE_SQUARE, MINIMAP_SHAPE_ROUND, }; struct MinimapModeDef { - bool is_radar; + MinimapType type; + std::string label; u16 scan_height; u16 map_size; + std::string texture; + u16 scale; }; +struct MinimapMarker { + MinimapMarker(scene::ISceneNode *parent_node): + parent_node(parent_node) + { + } + scene::ISceneNode *parent_node; +}; struct MinimapPixel { //! The topmost node that the minimap displays. MapNode n; @@ -69,12 +69,9 @@ struct MinimapMapblock { }; struct MinimapData { - bool is_radar; - MinimapMode mode; + MinimapModeDef mode; v3s16 pos; v3s16 old_pos; - u16 scan_height; - u16 map_size; MinimapPixel minimap_scan[MINIMAP_MAX_SX * MINIMAP_MAX_SY]; bool map_invalidated; bool minimap_shape_round; @@ -127,12 +124,21 @@ public: v3s16 getPos() const { return data->pos; } void setAngle(f32 angle); f32 getAngle() const { return m_angle; } - void setMinimapMode(MinimapMode mode); - MinimapMode getMinimapMode() const { return data->mode; } void toggleMinimapShape(); void setMinimapShape(MinimapShape shape); MinimapShape getMinimapShape(); + void clearModes() { m_modes.clear(); }; + void addMode(MinimapModeDef mode); + void addMode(MinimapType type, u16 size = 0, std::string label = "", + std::string texture = "", u16 scale = 1); + + void setModeIndex(size_t index); + size_t getModeIndex() const { return m_current_mode_index; }; + size_t getMaxModeIndex() const { return m_modes.size() - 1; }; + void nextMode(); + + MinimapModeDef getModeDef() const { return data->mode; } video::ITexture *getMinimapTexture(); @@ -142,8 +148,12 @@ public: scene::SMeshBuffer *getMinimapMeshBuffer(); + MinimapMarker* addMarker(scene::ISceneNode *parent_node); + void removeMarker(MinimapMarker **marker); + void updateActiveMarkers(); void drawMinimap(); + void drawMinimap(core::rect<s32> rect); video::IVideoDriver *driver; Client* client; @@ -153,11 +163,14 @@ private: ITextureSource *m_tsrc; IShaderSource *m_shdrsrc; const NodeDefManager *m_ndef; - MinimapUpdateThread *m_minimap_update_thread; + MinimapUpdateThread *m_minimap_update_thread = nullptr; scene::SMeshBuffer *m_meshbuffer; bool m_enable_shaders; + std::vector<MinimapModeDef> m_modes; + size_t m_current_mode_index; u16 m_surface_mode_scan_height; f32 m_angle; std::mutex m_mutex; + std::list<MinimapMarker*> m_markers; std::list<v2f> m_active_markers; }; diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp index bf5aa6c2c..92a7137ea 100644 --- a/src/client/render/core.cpp +++ b/src/client/render/core.cpp @@ -86,6 +86,7 @@ void RenderingCore::drawHUD() if (show_hud) { if (draw_crosshair) hud->drawCrosshair(); + hud->drawHotbar(client->getEnv().getLocalPlayer()->getWieldIndex()); hud->drawLuaElements(camera->getOffset()); camera->drawNametags(); 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 <stdexcept> +#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..ce8e92f21 100644 --- a/src/client/render/interlaced.cpp +++ b/src/client/render/interlaced.cpp @@ -36,7 +36,7 @@ void RenderingCoreInterlaced::initMaterial() mat.UseMipMaps = false; mat.ZBuffer = false; mat.ZWriteEnable = false; - u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC, 0); + u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC); mat.MaterialType = s->getShaderInfo(shader).material; for (int k = 0; k < 3; ++k) { mat.TextureLayer[k].AnisotropicFilter = false; diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp index f5aca8f58..99ff8c1ee 100644 --- a/src/client/renderingengine.cpp +++ b/src/client/renderingengine.cpp @@ -153,7 +153,7 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver) RenderingEngine::~RenderingEngine() { core.reset(); - m_device->drop(); + m_device->closeDevice(); s_singleton = nullptr; } diff --git a/src/client/shader.cpp b/src/client/shader.cpp index ee6079f7a..b3e4911f4 100644 --- a/src/client/shader.cpp +++ b/src/client/shader.cpp @@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <iterator> #include "shader.h" #include "irrlichttypes_extrabloated.h" +#include "irr_ptr.h" #include "debug.h" #include "filesys.h" #include "util/container.h" @@ -37,6 +38,22 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "gamedef.h" #include "client/tile.h" +#include "config.h" + +#if ENABLE_GLES +#ifdef _IRR_COMPILE_WITH_OGLES1_ +#include <GLES/gl.h> +#else +#include <GLES2/gl2.h> +#endif +#else +#ifndef __APPLE__ +#include <GL/gl.h> +#else +#define GL_SILENCE_DEPRECATION +#include <OpenGL/gl.h> +#endif +#endif /* A cache from shader name to shader path @@ -173,19 +190,14 @@ private: class ShaderCallback : public video::IShaderConstantSetCallBack { - std::vector<IShaderConstantSetter*> m_setters; + std::vector<std::unique_ptr<IShaderConstantSetter>> m_setters; public: - ShaderCallback(const std::vector<IShaderConstantSetterFactory *> &factories) + template <typename Factories> + 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<IShaderConstantSetter>(factory->create())); } virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData) override @@ -193,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); } }; @@ -215,37 +225,61 @@ class MainShaderConstantSetter : public IShaderConstantSetter { CachedVertexShaderSetting<float, 16> m_world_view_proj; CachedVertexShaderSetting<float, 16> m_world; +#if ENABLE_GLES + // Modelview matrix + CachedVertexShaderSetting<float, 16> m_world_view; + // Texture matrix + CachedVertexShaderSetting<float, 16> m_texture; + // Normal matrix + CachedVertexShaderSetting<float, 9> m_normal; +#endif public: MainShaderConstantSetter() : - m_world_view_proj("mWorldViewProj"), - m_world("mWorld") + m_world_view_proj("mWorldViewProj") + , m_world("mWorld") +#if ENABLE_GLES + , m_world_view("mWorldView") + , m_texture("mTexture") + , m_normal("mNormal") +#endif {} ~MainShaderConstantSetter() = default; - 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 clip matrix - core::matrix4 worldViewProj; - worldViewProj = driver->getTransform(video::ETS_PROJECTION); - worldViewProj *= driver->getTransform(video::ETS_VIEW); - worldViewProj *= driver->getTransform(video::ETS_WORLD); - if (is_highlevel) - m_world_view_proj.set(*reinterpret_cast<float(*)[16]>(worldViewProj.pointer()), services); - else - services->setVertexShaderConstant(worldViewProj.pointer(), 0, 4); - // Set world matrix core::matrix4 world = driver->getTransform(video::ETS_WORLD); - if (is_highlevel) - m_world.set(*reinterpret_cast<float(*)[16]>(world.pointer()), services); - else - services->setVertexShaderConstant(world.pointer(), 4, 4); + m_world.set(*reinterpret_cast<float(*)[16]>(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; + m_world_view_proj.set(*reinterpret_cast<float(*)[16]>(worldViewProj.pointer()), services); + +#if ENABLE_GLES + core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0); + m_world_view.set(*reinterpret_cast<float(*)[16]>(worldView.pointer()), services); + m_texture.set(*reinterpret_cast<float(*)[16]>(texture.pointer()), services); + + core::matrix4 normal; + worldView.getTransposed(normal); + sanity_check(normal.makeInverse()); + float m[9] = { + normal[0], normal[1], normal[2], + normal[4], normal[5], normal[6], + normal[8], normal[9], normal[10], + }; + m_normal.set(m, services); +#endif } }; @@ -266,7 +300,6 @@ class ShaderSource : public IWritableShaderSource { public: ShaderSource(); - ~ShaderSource(); /* - If shader material specified by name is found from cache, @@ -276,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 @@ -288,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<IShaderConstantSetterFactory>(setter)); } private: @@ -329,10 +362,11 @@ private: RequestQueue<std::string, u32, u8, u8> m_get_shader_queue; // Global constant setter factories - std::vector<IShaderConstantSetterFactory *> m_setter_factories; + std::vector<std::unique_ptr<IShaderConstantSetterFactory>> m_setter_factories; - // Shader callbacks - std::vector<ShaderCallback *> m_callbacks; + // Generate shader given the shader name. + ShaderInfo generateShader(const std::string &name, + MaterialType material_type, NodeDrawType drawtype); }; IWritableShaderSource *createShaderSource() @@ -340,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<ShaderCallback *> &callbacks, - const std::vector<IShaderConstantSetterFactory *> &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(); @@ -367,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 @@ -420,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<<"\""<<std::endl; @@ -447,8 +455,7 @@ u32 ShaderSource::getShaderIdDirect(const std::string &name, return 0; } - ShaderInfo info = generate_shader(name, material_type, drawtype, - m_callbacks, m_setter_factories, &m_sourcecache); + ShaderInfo info = generateShader(name, material_type, drawtype); /* Add shader to caches (add dummy shaders too) @@ -512,24 +519,19 @@ void ShaderSource::rebuildShaders() for (ShaderInfo &i : m_shaderinfo_cache) { ShaderInfo *info = &i; if (!info->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<ShaderCallback *> &callbacks, - const std::vector<IShaderConstantSetterFactory *> &setter_factories, - SourceShaderCache *sourcecache) +ShaderInfo ShaderSource::generateShader(const std::string &name, + MaterialType material_type, NodeDrawType drawtype) { ShaderInfo shaderinfo; shaderinfo.name = name; shaderinfo.material_type = material_type; shaderinfo.drawtype = drawtype; - shaderinfo.material = video::EMT_SOLID; switch (material_type) { case TILE_MATERIAL_OPAQUE: case TILE_MATERIAL_LIQUID_OPAQUE: @@ -550,326 +552,171 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp shaderinfo.base_material = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF; break; } + shaderinfo.material = shaderinfo.base_material; bool enable_shaders = g_settings->getBool("enable_shaders"); if (!enable_shaders) return shaderinfo; video::IVideoDriver *driver = RenderingEngine::get_video_driver(); - - video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices(); - if(!gpu){ - errorstream<<"generate_shader(): " - "failed to generate \""<<name<<"\", " - "GPU programming not supported." - <<std::endl; + if (!driver->queryFeature(video::EVDF_ARB_GLSL)) { + errorstream << "Shaders are enabled but GLSL is not supported by the driver\n"; return shaderinfo; } - - // Choose shader language depending on driver type and settings - // Then load shaders - std::string vertex_program; - std::string pixel_program; - std::string geometry_program; - bool is_highlevel; - load_shaders(name, sourcecache, driver->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." - <<std::endl; - vertex_program = ""; - } - if (!pixel_program.empty() && - !driver->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." - <<std::endl; - pixel_program = ""; - } - if (!geometry_program.empty() && - !driver->queryFeature(video::EVDF_GEOMETRY_SHADER)){ - infostream<<"generate_shader(): geometry shaders disabled " - "because of missing driver/hardware support." - <<std::endl; - geometry_program = ""; - } - - // If no shaders are used, don't make a separate material type - if (vertex_program.empty() && pixel_program.empty() && geometry_program.empty()) - return shaderinfo; + video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices(); // Create shaders header - std::string shaders_header = "#version 120\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", - }; - - for (int i = 0; i < 14; i++){ - shaders_header += "#define "; - shaders_header += drawTypes[i]; - shaders_header += " "; - shaders_header += itos(i); - shaders_header += "\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", - }; - - 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 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("generate_normalmaps")) { - shaders_header += "#define GENERATE_NORMALMAPS 1\n"; + bool use_gles = false; +#if ENABLE_GLES + use_gles = driver->getDriverType() == video::EDT_OGLES2; +#endif + 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 << R"( + #version 100 + )"; + vertex_header = R"( + uniform highp mat4 mWorldView; + uniform highp mat4 mWorldViewProj; + uniform mediump mat4 mTexture; + uniform mediump mat3 mNormal; + + attribute highp vec4 inVertexPosition; + attribute lowp vec4 inVertexColor; + attribute mediump vec4 inTexCoord0; + attribute mediump vec3 inVertexNormal; + attribute mediump vec4 inVertexTangent; + attribute mediump vec4 inVertexBinormal; + )"; + fragment_header = R"( + precision mediump float; + )"; } else { - shaders_header += "#define GENERATE_NORMALMAPS 0\n"; - } - shaders_header += "#define NORMALMAPS_STRENGTH "; - shaders_header += ftos(g_settings->getFloat("normalmaps_strength")); - shaders_header += "\n"; - float sample_step; - int smooth = (int)g_settings->getFloat("normalmaps_smooth"); - switch (smooth){ - case 0: - sample_step = 0.0078125; // 1.0 / 128.0 - break; - case 1: - sample_step = 0.00390625; // 1.0 / 256.0 - break; - case 2: - sample_step = 0.001953125; // 1.0 / 512.0 - break; - default: - sample_step = 0.0078125; - break; - } - shaders_header += "#define SAMPLE_STEP "; - shaders_header += ftos(sample_step); - shaders_header += "\n"; - - if (g_settings->getBool("enable_bumpmapping")) - shaders_header += "#define ENABLE_BUMPMAPPING\n"; - - if (g_settings->getBool("enable_parallax_occlusion")){ - int mode = g_settings->getFloat("parallax_occlusion_mode"); - float scale = g_settings->getFloat("parallax_occlusion_scale"); - float bias = g_settings->getFloat("parallax_occlusion_bias"); - int iterations = g_settings->getFloat("parallax_occlusion_iterations"); - shaders_header += "#define ENABLE_PARALLAX_OCCLUSION\n"; - shaders_header += "#define PARALLAX_OCCLUSION_MODE "; - shaders_header += itos(mode); - shaders_header += "\n"; - shaders_header += "#define PARALLAX_OCCLUSION_SCALE "; - shaders_header += ftos(scale); - shaders_header += "\n"; - shaders_header += "#define PARALLAX_OCCLUSION_BIAS "; - shaders_header += ftos(bias); - shaders_header += "\n"; - shaders_header += "#define PARALLAX_OCCLUSION_ITERATIONS "; - shaders_header += itos(iterations); - shaders_header += "\n"; - } - - shaders_header += "#define USE_NORMALMAPS "; - if (g_settings->getBool("enable_bumpmapping") || g_settings->getBool("enable_parallax_occlusion")) - shaders_header += "1\n"; - else - shaders_header += "0\n"; - - if (g_settings->getBool("enable_waving_water")){ - shaders_header += "#define ENABLE_WAVING_WATER 1\n"; - shaders_header += "#define WATER_WAVE_HEIGHT "; - shaders_header += ftos(g_settings->getFloat("water_wave_height")); - shaders_header += "\n"; - shaders_header += "#define WATER_WAVE_LENGTH "; - shaders_header += ftos(g_settings->getFloat("water_wave_length")); - shaders_header += "\n"; - shaders_header += "#define WATER_WAVE_SPEED "; - shaders_header += ftos(g_settings->getFloat("water_wave_speed")); - shaders_header += "\n"; - } else{ - shaders_header += "#define ENABLE_WAVING_WATER 0\n"; - } - - shaders_header += "#define ENABLE_WAVING_LEAVES "; - if (g_settings->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 += ftos(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_program; - vertex_program_ptr = vertex_program.c_str(); - } - if (!pixel_program.empty()) { - pixel_program = shaders_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 "<<name<<std::endl; - shadermat = gpu->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 \""<<name<<"\", " - "addHighLevelShaderMaterial failed." - <<std::endl; - dumpShaderProgram(warningstream, "Vertex", vertex_program); - dumpShaderProgram(warningstream, "Pixel", pixel_program); - dumpShaderProgram(warningstream, "Geometry", geometry_program); - delete cb; - return shaderinfo; - } - } - else{ - infostream<<"Compiling assembly shaders for "<<name<<std::endl; - shadermat = gpu->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 \""<<name<<"\", " - "addShaderMaterial failed." - <<std::endl; - dumpShaderProgram(warningstream, "Vertex", vertex_program); - dumpShaderProgram(warningstream,"Pixel", pixel_program); - delete cb; - return shaderinfo; - } + shaders_header << R"( + #version 120 + #define lowp + #define mediump + #define highp + )"; + vertex_header = R"( + #define mWorldView gl_ModelViewMatrix + #define mWorldViewProj gl_ModelViewProjectionMatrix + #define mTexture (gl_TextureMatrix[0]) + #define mNormal gl_NormalMatrix + + #define inVertexPosition gl_Vertex + #define inVertexColor gl_Color + #define inTexCoord0 gl_MultiTexCoord0 + #define inVertexNormal gl_Normal + #define inVertexTangent gl_MultiTexCoord1 + #define inVertexBinormal gl_MultiTexCoord2 + )"; + } + + bool use_discard = use_gles; +#ifdef __unix__ + // For renderers that should use discard instead of GL_ALPHA_TEST + const char* gl_renderer = (const char*)glGetString(GL_RENDERER); + if (strstr(gl_renderer, "GC7000")) + use_discard = true; +#endif + if (use_discard && shaderinfo.base_material != video::EMT_SOLID) + shaders_header << "#define USE_DISCARD 1\n"; + +#define PROVIDE(constant) shaders_header << "#define " #constant " " << (int)constant << "\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"; + } + + 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"; + + 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(); + } + + irr_ptr<ShaderCallback> cb{new ShaderCallback(m_setter_factories)}; + infostream<<"Compiling high level shaders for "<<name<<std::endl; + s32 shadermat = gpu->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 \""<<name<<"\", " + "addHighLevelShaderMaterial failed." + <<std::endl; + dumpShaderProgram(warningstream, "Vertex", vertex_shader); + dumpShaderProgram(warningstream, "Fragment", fragment_shader); + dumpShaderProgram(warningstream, "Geometry", geometry_shader); + return shaderinfo; } - callbacks.push_back(cb); - - // HACK, TODO: investigate this better - // Grab the material renderer once more so minetest doesn't crash on exit - driver->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){ - // Look for high level shaders - if(drivertype == video::EDT_DIRECT3D9){ - // Direct3D 9: HLSL - // (All shaders in one file) - vertex_program = sourcecache->getOrLoad(name, "d3d9.hlsl"); - pixel_program = vertex_program; - geometry_program = vertex_program; - } - else if(drivertype == video::EDT_OPENGL){ - // OpenGL: GLSL - vertex_program = sourcecache->getOrLoad(name, "opengl_vertex.glsl"); - pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl"); - geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl"); - } - if (!vertex_program.empty() || !pixel_program.empty() || !geometry_program.empty()){ - is_highlevel = true; - return; - } - } - -} - 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..38ab76704 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 <IMaterialRendererServices.h> #include "irrlichttypes_bloated.h" +#include <IMaterialRendererServices.h> #include <string> +#include "tile.h" +#include "nodedef.h" class IGameDef; @@ -46,8 +48,8 @@ struct ShaderInfo { std::string name = ""; video::E_MATERIAL_TYPE base_material = video::EMT_SOLID; video::E_MATERIAL_TYPE material = video::EMT_SOLID; - u8 drawtype = 0; - u8 material_type = 0; + NodeDrawType drawtype = NDT_NORMAL; + MaterialType material_type = TILE_MATERIAL_BASIC; ShaderInfo() = default; virtual ~ShaderInfo() = default; @@ -65,8 +67,7 @@ namespace irr { namespace video { class IShaderConstantSetter { public: virtual ~IShaderConstantSetter() = default; - virtual void onSetConstants(video::IMaterialRendererServices *services, - bool is_highlevel) = 0; + virtual void onSetConstants(video::IMaterialRendererServices *services) = 0; virtual void onSetMaterial(const video::SMaterial& material) { } }; @@ -128,10 +129,10 @@ public: virtual ~IShaderSource() = default; virtual u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} + MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;} virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();} virtual u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} + MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;} }; class IWritableShaderSource : public IShaderSource { @@ -139,16 +140,12 @@ public: IWritableShaderSource() = default; virtual ~IWritableShaderSource() = default; - virtual u32 getShaderIdDirect(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} - virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();} - virtual u32 getShader(const std::string &name, - const u8 material_type, const u8 drawtype){return 0;} - virtual void processQueue()=0; virtual void insertSourceShader(const std::string &name_of_shader, const std::string &filename, const std::string &program)=0; virtual void rebuildShaders()=0; + + /// @note Takes ownership of @p setter. virtual void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) = 0; }; diff --git a/src/client/sky.cpp b/src/client/sky.cpp index 2e0cbca86..3a40321dd 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -1,6 +1,7 @@ /* Minetest Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com> +Copyright (C) 2020 numzero, Lobachevskiy Vitaliy <numzer0@yandex.ru> This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -34,16 +35,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "config.h" using namespace irr::core; -Sky::Sky(s32 id, ITextureSource *tsrc) : - scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), - RenderingEngine::get_scene_manager(), id) +static video::SMaterial baseMaterial() { - setAutomaticCulling(scene::EAC_OFF); - m_box.MaxEdge.set(0, 0, 0); - m_box.MinEdge.set(0, 0, 0); - - // Create material - video::SMaterial mat; mat.Lighting = false; #if ENABLE_GLES @@ -56,14 +49,31 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : mat.TextureLayer[0].TextureWrapU = video::ETC_CLAMP_TO_EDGE; mat.TextureLayer[0].TextureWrapV = video::ETC_CLAMP_TO_EDGE; mat.BackfaceCulling = false; + return mat; +}; + +Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) : + scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(), + RenderingEngine::get_scene_manager(), id) +{ + setAutomaticCulling(scene::EAC_OFF); + m_box.MaxEdge.set(0, 0, 0); + m_box.MinEdge.set(0, 0, 0); + + m_enable_shaders = g_settings->getBool("enable_shaders"); - m_materials[0] = mat; + // Create materials - m_materials[1] = mat; + m_materials[0] = baseMaterial(); + 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; + + m_materials[1] = baseMaterial(); //m_materials[1].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA; m_materials[1].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; - m_materials[2] = mat; + m_materials[2] = baseMaterial(); m_materials[2].setTexture(0, tsrc->getTextureForMesh("sunrisebg.png")); m_materials[2].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; //m_materials[2].MaterialType = video::EMT_TRANSPARENT_ADD_COLOR; @@ -80,7 +90,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : tsrc->getTexture(m_moon_params.tonemap) : NULL; if (m_sun_texture) { - m_materials[3] = mat; + m_materials[3] = baseMaterial(); m_materials[3].setTexture(0, m_sun_texture); m_materials[3].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; // Disables texture filtering @@ -92,7 +102,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : m_materials[3].Lighting = true; } if (m_moon_texture) { - m_materials[4] = mat; + m_materials[4] = baseMaterial(); m_materials[4].setTexture(0, m_moon_texture); m_materials[4].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; // Disables texture filtering @@ -105,7 +115,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) : } for (int i = 5; i < 11; i++) { - m_materials[i] = mat; + m_materials[i] = baseMaterial(); m_materials[i].Lighting = true; m_materials[i].MaterialType = video::EMT_SOLID; } @@ -202,7 +212,7 @@ void Sky::render() const f32 t = 1.0f; const f32 o = 0.0f; - static const u16 indices[4] = {0, 1, 2, 3}; + static const u16 indices[6] = {0, 1, 2, 0, 2, 3}; video::S3DVertex vertices[4]; driver->setMaterial(m_materials[1]); @@ -244,7 +254,7 @@ void Sky::render() vertex.Pos.rotateXZBy(180); } } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } @@ -270,7 +280,7 @@ void Sky::render() // Switch from -Z (south) to +Z (north) vertex.Pos.rotateXZBy(-180); } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } @@ -301,7 +311,7 @@ void Sky::render() // Switch from -Z (south) to -X (west) vertex.Pos.rotateXZBy(-90); } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } // Draw sun @@ -337,7 +347,7 @@ void Sky::render() // Switch from -Z (south) to +Z (north) vertex.Pos.rotateXZBy(-180); } - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } // Draw bottom far cloudy fog thing in front of sun, moon and stars @@ -346,7 +356,7 @@ void Sky::render() vertices[1] = video::S3DVertex( 1, -1.0, -1, 0, 1, 0, c, o, t); vertices[2] = video::S3DVertex( 1, -1.0, 1, 0, 1, 0, c, o, o); vertices[3] = video::S3DVertex(-1, -1.0, 1, 0, 1, 0, c, t, o); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } } @@ -590,7 +600,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol * wicked_time_of_day: current time of day, to know where should be the sun in the sky */ { - static const u16 indices[4] = {0, 1, 2, 3}; + static const u16 indices[] = {0, 1, 2, 0, 2, 3}; std::array<video::S3DVertex, 4> vertices; if (!m_sun_texture) { driver->setMaterial(m_materials[1]); @@ -608,7 +618,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol for (int i = 0; i < 4; i++) { draw_sky_body(vertices, -sunsizes[i], sunsizes[i], colors[i]); place_sky_body(vertices, 90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } else { driver->setMaterial(m_materials[3]); @@ -620,7 +630,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol c = video::SColor(255, 255, 255, 255); draw_sky_body(vertices, -d, d, c); place_sky_body(vertices, 90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } @@ -637,7 +647,7 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC * the sky */ { - static const u16 indices[4] = {0, 1, 2, 3}; + static const u16 indices[] = {0, 1, 2, 0, 2, 3}; std::array<video::S3DVertex, 4> vertices; if (!m_moon_texture) { driver->setMaterial(m_materials[1]); @@ -661,7 +671,7 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC for (int i = 0; i < 4; i++) { draw_sky_body(vertices, moonsizes_1[i], moonsizes_2[i], colors[i]); place_sky_body(vertices, -90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } else { driver->setMaterial(m_materials[4]); @@ -673,13 +683,12 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC c = video::SColor(255, 255, 255, 255); draw_sky_body(vertices, -d, d, c); place_sky_body(vertices, -90, wicked_time_of_day * 360 - 90); - driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2); + driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2); } } void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day) { - driver->setMaterial(m_materials[1]); // Tune values so that stars first appear just after the sun // disappears over the horizon, and disappear just before the sun // appears over the horizon. @@ -687,87 +696,18 @@ void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day) // to time 4000. float tod = wicked_time_of_day < 0.5f ? wicked_time_of_day : (1.0f - wicked_time_of_day); - float starbrightness = clamp((0.25f - fabsf(tod)) * 20.0f, 0.0f, 1.0f); - - float f = starbrightness; - float d = (0.006 / 2) * m_star_params.scale; - - video::SColor starcolor = m_star_params.starcolor; - starcolor.setAlpha(f * m_star_params.starcolor.getAlpha()); - - // Stars are only drawn when not fully transparent - if (m_star_params.starcolor.getAlpha() < 1) + float starbrightness = (0.25f - fabsf(tod)) * 20.0f; + m_star_color = m_star_params.starcolor; + m_star_color.a *= clamp(starbrightness, 0.0f, 1.0f); + if (m_star_color.a <= 0.0f) // Stars are only drawn when not fully transparent return; -#if ENABLE_GLES - u16 *indices = new u16[m_star_params.count * 3]; - video::S3DVertex *vertices = - new video::S3DVertex[m_star_params.count * 3]; - for (u32 i = 0; i < m_star_params.count; i++) { - indices[i * 3 + 0] = i * 3 + 0; - indices[i * 3 + 1] = i * 3 + 1; - indices[i * 3 + 2] = i * 3 + 2; - v3f r = m_stars[i]; - core::CMatrix4<f32> a; - a.buildRotateFromTo(v3f(0, 1, 0), r); - v3f p = v3f(-d, 1, -d); - v3f p1 = v3f(d, 1, 0); - v3f p2 = v3f(-d, 1, d); - a.rotateVect(p); - a.rotateVect(p1); - a.rotateVect(p2); - p.rotateXYBy(wicked_time_of_day * 360 - 90); - p1.rotateXYBy(wicked_time_of_day * 360 - 90); - p2.rotateXYBy(wicked_time_of_day * 360 - 90); - vertices[i * 3 + 0].Pos = p; - vertices[i * 3 + 0].Color = starcolor; - vertices[i * 3 + 1].Pos = p1; - vertices[i * 3 + 1].Color = starcolor; - vertices[i * 3 + 2].Pos = p2; - vertices[i * 3 + 2].Color = starcolor; - } - driver->drawIndexedTriangleList(vertices, m_star_params.count * 3, - indices, m_star_params.count); - delete[] indices; - delete[] vertices; -#else - u16 *indices = new u16[m_star_params.count * 4]; - video::S3DVertex *vertices = - new video::S3DVertex[m_star_params.count * 4]; - for (u32 i = 0; i < m_star_params.count; i++) { - indices[i * 4 + 0] = i * 4 + 0; - indices[i * 4 + 1] = i * 4 + 1; - indices[i * 4 + 2] = i * 4 + 2; - indices[i * 4 + 3] = i * 4 + 3; - v3f r = m_stars[i]; - core::CMatrix4<f32> a; - a.buildRotateFromTo(v3f(0, 1, 0), r); - v3f p = v3f(-d, 1, -d); - v3f p1 = v3f(d, 1, -d); - v3f p2 = v3f(d, 1, d); - v3f p3 = v3f(-d, 1, d); - a.rotateVect(p); - a.rotateVect(p1); - a.rotateVect(p2); - a.rotateVect(p3); - p.rotateXYBy(wicked_time_of_day * 360 - 90); - p1.rotateXYBy(wicked_time_of_day * 360 - 90); - p2.rotateXYBy(wicked_time_of_day * 360 - 90); - p3.rotateXYBy(wicked_time_of_day * 360 - 90); - vertices[i * 4 + 0].Pos = p; - vertices[i * 4 + 0].Color = starcolor; - vertices[i * 4 + 1].Pos = p1; - vertices[i * 4 + 1].Color = starcolor; - vertices[i * 4 + 2].Pos = p2; - vertices[i * 4 + 2].Color = starcolor; - vertices[i * 4 + 3].Pos = p3; - vertices[i * 4 + 3].Color = starcolor; - } - driver->drawVertexPrimitiveList(vertices, m_star_params.count * 4, - indices, m_star_params.count, video::EVT_STANDARD, - scene::EPT_QUADS, video::EIT_16BIT); - delete[] indices; - delete[] vertices; -#endif + m_materials[0].DiffuseColor = m_materials[0].EmissiveColor = m_star_color.toSColor(); + auto sky_rotation = core::matrix4().setRotationAxisRadians(2.0f * M_PI * (wicked_time_of_day - 0.25f), v3f(0.0f, 0.0f, 1.0f)); + auto world_matrix = driver->getTransform(video::ETS_WORLD); + driver->setTransform(video::ETS_WORLD, world_matrix * sky_rotation); + driver->setMaterial(m_materials[0]); + driver->drawMeshBuffer(m_stars.get()); + driver->setTransform(video::ETS_WORLD, world_matrix); } void Sky::draw_sky_body(std::array<video::S3DVertex, 4> &vertices, float pos_1, float pos_2, const video::SColor &c) @@ -822,7 +762,7 @@ void Sky::setSunTexture(std::string sun_texture, m_sun_texture = tsrc->getTextureForMesh(m_sun_params.texture); if (m_sun_texture) { - m_materials[3] = m_materials[0]; + m_materials[3] = baseMaterial(); m_materials[3].setTexture(0, m_sun_texture); m_materials[3].MaterialType = video:: EMT_TRANSPARENT_ALPHA_CHANNEL; @@ -870,7 +810,7 @@ void Sky::setMoonTexture(std::string moon_texture, m_moon_texture = tsrc->getTextureForMesh(m_moon_params.texture); if (m_moon_texture) { - m_materials[4] = m_materials[0]; + m_materials[4] = baseMaterial(); m_materials[4].setTexture(0, m_moon_texture); m_materials[4].MaterialType = video:: EMT_TRANSPARENT_ALPHA_CHANNEL; @@ -892,19 +832,58 @@ void Sky::setStarCount(u16 star_count, bool force_update) // Allow force updating star count at game init. if (m_star_params.count != star_count || force_update) { m_star_params.count = star_count; - m_stars.clear(); - // Rebuild the stars surrounding the camera - for (u16 i = 0; i < star_count; i++) { - v3f star = v3f( - myrand_range(-10000, 10000), - myrand_range(-10000, 10000), - myrand_range(-10000, 10000) - ); - - star.normalize(); - m_stars.emplace_back(star); - } + m_seed = (u64)myrand() << 32 | myrand(); + updateStars(); + } +} + +void Sky::updateStars() +{ + m_stars.reset(new scene::SMeshBuffer()); + // Stupid IrrLicht doesn’t allow non-indexed rendering, and indexed quad + // rendering is slow due to lack of hardware support. So as indices are + // 16-bit and there are 4 vertices per star... the limit is 2^16/4 = 0x4000. + // That should be well enough actually. + if (m_star_params.count > 0x4000) { + warningstream << "Requested " << m_star_params.count << " stars but " << 0x4000 << " is the max\n"; + m_star_params.count = 0x4000; + } + m_stars->Vertices.reallocate(4 * m_star_params.count); + m_stars->Indices.reallocate(6 * m_star_params.count); + + video::SColor fallback_color = m_star_params.starcolor; // used on GLES 2 “without shaders†+ PcgRandom rgen(m_seed); + float d = (0.006 / 2) * m_star_params.scale; + for (u16 i = 0; i < m_star_params.count; i++) { + v3f r = v3f( + rgen.range(-10000, 10000), + rgen.range(-10000, 10000), + rgen.range(-10000, 10000) + ); + core::CMatrix4<f32> a; + a.buildRotateFromTo(v3f(0, 1, 0), r); + v3f p = v3f(-d, 1, -d); + v3f p1 = v3f(d, 1, -d); + v3f p2 = v3f(d, 1, d); + v3f p3 = v3f(-d, 1, d); + a.rotateVect(p); + a.rotateVect(p1); + a.rotateVect(p2); + a.rotateVect(p3); + m_stars->Vertices.push_back(video::S3DVertex(p, {}, fallback_color, {})); + m_stars->Vertices.push_back(video::S3DVertex(p1, {}, fallback_color, {})); + m_stars->Vertices.push_back(video::S3DVertex(p2, {}, fallback_color, {})); + m_stars->Vertices.push_back(video::S3DVertex(p3, {}, fallback_color, {})); + } + for (u16 i = 0; i < m_star_params.count; i++) { + m_stars->Indices.push_back(i * 4 + 0); + m_stars->Indices.push_back(i * 4 + 1); + m_stars->Indices.push_back(i * 4 + 2); + m_stars->Indices.push_back(i * 4 + 2); + m_stars->Indices.push_back(i * 4 + 3); + m_stars->Indices.push_back(i * 4 + 0); } + m_stars->setHardwareMappingHint(scene::EHM_STATIC); } void Sky::setSkyColors(const SkyColor &sky_color) @@ -936,7 +915,7 @@ void Sky::addTextureToSkybox(std::string texture, int material_id, // Keep a list of texture names handy. m_sky_params.textures.emplace_back(texture); video::ITexture *result = tsrc->getTextureForMesh(texture); - m_materials[material_id+5] = m_materials[0]; + m_materials[material_id+5] = baseMaterial(); m_materials[material_id+5].setTexture(0, result); m_materials[material_id+5].MaterialType = video::EMT_SOLID; } diff --git a/src/client/sky.h b/src/client/sky.h index 3227e8f59..342a97596 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -17,10 +17,12 @@ 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 <ISceneNode.h> #include <array> #include "camera.h" -#include "irrlichttypes_extrabloated.h" +#include "irr_ptr.h" +#include "shader.h" #include "skyparams.h" #pragma once @@ -34,7 +36,7 @@ class Sky : public scene::ISceneNode { public: //! constructor - Sky(s32 id, ITextureSource *tsrc); + Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc); virtual void OnRegisterSceneNode(); @@ -77,7 +79,7 @@ public: void setStarsVisible(bool stars_visible) { m_star_params.visible = stars_visible; } void setStarCount(u16 star_count, bool force_update); void setStarColor(video::SColor star_color) { m_star_params.starcolor = star_color; } - void setStarScale(f32 star_scale) { m_star_params.scale = star_scale; } + void setStarScale(f32 star_scale) { m_star_params.scale = star_scale; updateStars(); } bool getCloudsVisible() const { return m_clouds_visible && m_clouds_enabled; } const video::SColorf &getCloudColor() const { return m_cloudcolor_f; } @@ -101,6 +103,8 @@ public: void clearSkyboxTextures() { m_sky_params.textures.clear(); } void addTextureToSkybox(std::string texture, int material_id, ITextureSource *tsrc); + const video::SColorf &getCurrentStarColor() const { return m_star_color; } + private: aabb3f m_box; video::SMaterial m_materials[SKY_MATERIAL_COUNT]; @@ -154,6 +158,7 @@ private: bool m_clouds_enabled = true; // Initialised to true, reset only by set_sky API bool m_directional_colored_fog; bool m_in_clouds = true; // Prevent duplicating bools to remember old values + bool m_enable_shaders = false; video::SColorf m_bgcolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); video::SColorf m_skycolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); @@ -178,13 +183,17 @@ private: bool m_default_tint = true; - std::vector<v3f> m_stars; + u64 m_seed = 0; + irr_ptr<scene::SMeshBuffer> m_stars; + video::SColorf m_star_color; video::ITexture *m_sun_texture; video::ITexture *m_moon_texture; video::ITexture *m_sun_tonemap; video::ITexture *m_moon_tonemap; + void updateStars(); + void draw_sun(video::IVideoDriver *driver, float sunsize, const video::SColor &suncolor, const video::SColor &suncolor2, float wicked_time_of_day); void draw_moon(video::IVideoDriver *driver, float moonsize, const video::SColor &mooncolor, diff --git a/src/client/sound_openal.cpp b/src/client/sound_openal.cpp index 20a651c1d..f4e61f93e 100644 --- a/src/client/sound_openal.cpp +++ b/src/client/sound_openal.cpp @@ -28,6 +28,7 @@ with this program; ifnot, write to the Free Software Foundation, Inc., #include <alc.h> //#include <alext.h> #elif defined(__APPLE__) + #define OPENAL_DEPRECATED #include <OpenAL/al.h> #include <OpenAL/alc.h> //#include <OpenAL/alext.h> @@ -337,14 +338,12 @@ private: }; std::unordered_map<int, FadeState> m_sounds_fading; - float m_fade_delay; public: OpenALSoundManager(SoundManagerSingleton *smg, OnDemandSoundFetcher *fetcher): m_fetcher(fetcher), m_device(smg->m_device.get()), m_context(smg->m_context.get()), - m_next_id(1), - m_fade_delay(0) + m_next_id(1) { infostream << "Audio: Initialized: OpenAL " << std::endl; } @@ -616,38 +615,45 @@ public: void fadeSound(int soundid, float step, float gain) { - m_sounds_fading[soundid] = FadeState(step, getSoundGain(soundid), gain); + // Ignore the command if step isn't valid. + if (step == 0) + return; + float current_gain = getSoundGain(soundid); + step = gain - current_gain > 0 ? abs(step) : -abs(step); + if (m_sounds_fading.find(soundid) != m_sounds_fading.end()) { + auto current_fade = m_sounds_fading[soundid]; + // Do not replace the fade if it's equivalent. + if (current_fade.target_gain == gain && current_fade.step == step) + return; + m_sounds_fading.erase(soundid); + } + gain = rangelim(gain, 0, 1); + m_sounds_fading[soundid] = FadeState(step, current_gain, gain); } void doFades(float dtime) { - m_fade_delay += dtime; - - if (m_fade_delay < 0.1f) - return; + for (auto i = m_sounds_fading.begin(); i != m_sounds_fading.end();) { + FadeState& fade = i->second; + assert(fade.step != 0); + fade.current_gain += (fade.step * dtime); - float chkGain = 0; - for (auto i = m_sounds_fading.begin(); - i != m_sounds_fading.end();) { - if (i->second.step < 0.f) - chkGain = -(i->second.current_gain); + if (fade.step < 0.f) + fade.current_gain = std::max(fade.current_gain, fade.target_gain); else - chkGain = i->second.current_gain; + fade.current_gain = std::min(fade.current_gain, fade.target_gain); - if (chkGain < i->second.target_gain) { - i->second.current_gain += (i->second.step * m_fade_delay); - i->second.current_gain = rangelim(i->second.current_gain, 0, 1); - - updateSoundGain(i->first, i->second.current_gain); - ++i; - } else { - if (i->second.target_gain <= 0.f) - stopSound(i->first); + if (fade.current_gain <= 0.f) + stopSound(i->first); + else + updateSoundGain(i->first, fade.current_gain); + // The increment must happen during the erase call, or else it'll segfault. + if (fade.current_gain == fade.target_gain) m_sounds_fading.erase(i++); - } + else + i++; } - m_fade_delay = 0; } bool soundExists(int sound) diff --git a/src/client/tile.cpp b/src/client/tile.cpp index d03588b2b..f2639757e 100644 --- a/src/client/tile.cpp +++ b/src/client/tile.cpp @@ -429,7 +429,6 @@ private: // Cached settings needed for making textures from meshes bool m_setting_trilinear_filter; bool m_setting_bilinear_filter; - bool m_setting_anisotropic_filter; }; IWritableTextureSource *createTextureSource() @@ -450,7 +449,6 @@ TextureSource::TextureSource() // for these settings to take effect m_setting_trilinear_filter = g_settings->getBool("trilinear_filter"); m_setting_bilinear_filter = g_settings->getBool("bilinear_filter"); - m_setting_anisotropic_filter = g_settings->getBool("anisotropic_filter"); } TextureSource::~TextureSource() @@ -1633,6 +1631,13 @@ bool TextureSource::generateImagePart(std::string part_of_name, /* IMPORTANT: When changing this, getTextureForMesh() needs to be * updated too. */ + if (!baseimg) { + errorstream << "generateImagePart(): baseimg == NULL " + << "for part_of_name=\"" << part_of_name + << "\", cancelling." << std::endl; + return false; + } + // Apply the "clean transparent" filter, if configured. if (g_settings->getBool("texture_clean_transparent")) imageCleanTransparent(baseimg, 127); @@ -2219,9 +2224,14 @@ video::SColor TextureSource::getTextureAverageColor(const std::string &name) video::IVideoDriver *driver = RenderingEngine::get_video_driver(); video::SColor c(0, 0, 0, 0); video::ITexture *texture = getTexture(name); + if (!texture) + return c; video::IImage *image = driver->createImage(texture, core::position2d<s32>(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 52e0a2b2b..49c46f749 100644 --- a/src/client/tile.h +++ b/src/client/tile.h @@ -25,7 +25,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <string> #include <vector> #include <SMaterial.h> -#include <memory> #include "util/numeric.h" #include "config.h" @@ -272,7 +271,7 @@ struct TileLayer u32 texture_id = 0; u16 animation_frame_length_ms = 0; - u8 animation_frame_count = 1; + u16 animation_frame_count = 1; u8 material_type = TILE_MATERIAL_BASIC; u8 material_flags = @@ -284,7 +283,7 @@ struct TileLayer //! If true, the tile has its own color. bool has_color = false; - std::shared_ptr<std::vector<FrameSpec>> frames = nullptr; + std::vector<FrameSpec> *frames = nullptr; /*! * The color of the tile, or if the tile does not own diff --git a/src/client/wieldmesh.cpp b/src/client/wieldmesh.cpp index 8cd3e29a9..ad583210a 100644 --- a/src/client/wieldmesh.cpp +++ b/src/client/wieldmesh.cpp @@ -303,13 +303,24 @@ void WieldMeshSceneNode::setExtruded(const std::string &imagename, } } -scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector<ItemPartColor> *colors) +scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector<ItemPartColor> *colors, const ContentFeatures &f) { - MeshMakeData mesh_make_data(client, false, false); + MeshMakeData mesh_make_data(client, false); MeshCollector collector; mesh_make_data.setSmoothLighting(false); MapblockMeshGenerator gen(&mesh_make_data, &collector); - gen.renderSingle(id); + u8 param2 = 0; + 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 || + f.drawtype == NDT_NODEBOX || + f.drawtype == NDT_MESH) + param2 = 4; + } + gen.renderSingle(id, param2); + colors->clear(); scene::SMesh *mesh = new scene::SMesh(); for (auto &prebuffers : collector.prebuffers) @@ -319,8 +330,9 @@ scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector<It p.layer.texture = frame.texture; p.layer.normal_texture = frame.normal_texture; } - for (video::S3DVertex &v : p.vertices) + for (video::S3DVertex &v : p.vertices) { v.Color.setAlpha(255); + } scene::SMeshBuffer *buf = new scene::SMeshBuffer(); buf->Material.setTexture(0, p.layer.texture); p.layer.applyMaterialOptions(buf->Material); @@ -368,73 +380,61 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client, bool che // Handle nodes // See also CItemDefManager::createClientCached() if (def.type == ITEM_NODE) { - if (f.mesh_ptr[0]) { - // e.g. mesh nodes and nodeboxes - mesh = cloneMesh(f.mesh_ptr[0]); - postProcessNodeMesh(mesh, f, m_enable_shaders, true, - &m_material_type, &m_colors); + bool cull_backface = f.needsBackfaceCulling(); + + // Select rendering method + switch (f.drawtype) { + case NDT_AIRLIKE: + setExtruded("no_texture_airlike.png", "", + v3f(1.0, 1.0, 1.0), tsrc, 1); + break; + case NDT_SIGNLIKE: + 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) + wscale.Z *= 0.1f; + setExtruded(tsrc->getTextureName(f.tiles[0].layers[0].texture_id), + tsrc->getTextureName(f.tiles[0].layers[1].texture_id), + wscale, tsrc, + f.tiles[0].layers[0].animation_frame_count); + // Add color + const TileLayer &l0 = f.tiles[0].layers[0]; + m_colors.emplace_back(l0.has_color, l0.color); + const TileLayer &l1 = f.tiles[0].layers[1]; + m_colors.emplace_back(l1.has_color, l1.color); + break; + } + case NDT_NORMAL: + case NDT_ALLFACES: + case NDT_LIQUID: + setCube(f, def.wield_scale); + break; + default: + // Render non-trivial drawtypes like the actual node + mesh = createSpecialNodeMesh(client, id, &m_colors, f); changeToMesh(mesh); mesh->drop(); - // mesh is pre-scaled by BS * f->visual_scale m_meshnode->setScale( - def.wield_scale * WIELD_SCALE_FACTOR - / (BS * f.visual_scale)); - } else { - switch (f.drawtype) { - case NDT_AIRLIKE: { - changeToMesh(nullptr); - break; - } - case NDT_PLANTLIKE: { - setExtruded(tsrc->getTextureName(f.tiles[0].layers[0].texture_id), - tsrc->getTextureName(f.tiles[0].layers[1].texture_id), - def.wield_scale, tsrc, - f.tiles[0].layers[0].animation_frame_count); - // Add color - const TileLayer &l0 = f.tiles[0].layers[0]; - m_colors.emplace_back(l0.has_color, l0.color); - const TileLayer &l1 = f.tiles[0].layers[1]; - 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: - case NDT_FLOWINGLIQUID: { - setCube(f, def.wield_scale); - break; - } - default: { - mesh = createSpecialNodeMesh(client, id, &m_colors); - changeToMesh(mesh); - mesh->drop(); - m_meshnode->setScale( - def.wield_scale * WIELD_SCALE_FACTOR - / (BS * f.visual_scale)); - } - } + def.wield_scale * WIELD_SCALE_FACTOR + / (BS * f.visual_scale)); + break; } + u32 material_count = m_meshnode->getMaterialCount(); for (u32 i = 0; i < material_count; ++i) { video::SMaterial &material = m_meshnode->getMaterial(i); material.MaterialType = m_material_type; material.MaterialTypeParam = 0.5f; - material.setFlag(video::EMF_BACK_FACE_CULLING, true); + material.setFlag(video::EMF_BACK_FACE_CULLING, cull_backface); material.setFlag(video::EMF_BILINEAR_FILTER, m_bilinear_filter); material.setFlag(video::EMF_TRILINEAR_FILTER, m_trilinear_filter); } return; - } - else if (!def.inventory_image.empty()) { + } else if (!def.inventory_image.empty()) { setExtruded(def.inventory_image, def.inventory_overlay, def.wield_scale, tsrc, 1); m_colors.emplace_back(); @@ -529,6 +529,8 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result) // Shading is on by default result->needs_shading = true; + bool cull_backface = f.needsBackfaceCulling(); + // If inventory_image is defined, it overrides everything else if (!def.inventory_image.empty()) { mesh = getExtrudedMesh(tsrc, def.inventory_image, @@ -538,51 +540,56 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result) result->buffer_colors.emplace_back(true, video::SColor(0xFFFFFFFF)); // Items with inventory images do not need shading result->needs_shading = false; + } else if (def.type == ITEM_NODE && f.drawtype == NDT_AIRLIKE) { + // Fallback image for airlike node + mesh = getExtrudedMesh(tsrc, "no_texture_airlike.png", + def.inventory_overlay); + result->needs_shading = false; } else if (def.type == ITEM_NODE) { - if (f.mesh_ptr[0]) { - mesh = cloneMesh(f.mesh_ptr[0]); - scaleMesh(mesh, v3f(0.12, 0.12, 0.12)); + switch (f.drawtype) { + case NDT_NORMAL: + case NDT_ALLFACES: + case NDT_LIQUID: + case NDT_FLOWINGLIQUID: { + scene::IMesh *cube = g_extrusion_mesh_cache->createCube(); + mesh = cloneMesh(cube); + cube->drop(); + if (f.drawtype == NDT_FLOWINGLIQUID) { + scaleMesh(mesh, v3f(1.2, 0.03, 1.2)); + translateMesh(mesh, v3f(0, -0.57, 0)); + } else + scaleMesh(mesh, v3f(1.2, 1.2, 1.2)); + // add overlays postProcessNodeMesh(mesh, f, false, false, nullptr, - &result->buffer_colors); - } else { - switch (f.drawtype) { - case NDT_PLANTLIKE: { - mesh = getExtrudedMesh(tsrc, - tsrc->getTextureName(f.tiles[0].layers[0].texture_id), - tsrc->getTextureName(f.tiles[0].layers[1].texture_id)); - // Add color - const TileLayer &l0 = f.tiles[0].layers[0]; - result->buffer_colors.emplace_back(l0.has_color, l0.color); - const TileLayer &l1 = f.tiles[0].layers[1]; - result->buffer_colors.emplace_back(l1.has_color, l1.color); - break; - } - case NDT_PLANTLIKE_ROOTED: { - mesh = getExtrudedMesh(tsrc, - tsrc->getTextureName(f.special_tiles[0].layers[0].texture_id), ""); - // Add color - const TileLayer &l0 = f.special_tiles[0].layers[0]; - result->buffer_colors.emplace_back(l0.has_color, l0.color); - break; - } - case NDT_NORMAL: - case NDT_ALLFACES: - case NDT_LIQUID: - case NDT_FLOWINGLIQUID: { - scene::IMesh *cube = g_extrusion_mesh_cache->createCube(); - mesh = cloneMesh(cube); - cube->drop(); - scaleMesh(mesh, v3f(1.2, 1.2, 1.2)); - // add overlays - postProcessNodeMesh(mesh, f, false, false, nullptr, - &result->buffer_colors); - break; - } - default: { - mesh = createSpecialNodeMesh(client, id, &result->buffer_colors); - scaleMesh(mesh, v3f(0.12, 0.12, 0.12)); - } - } + &result->buffer_colors, true); + if (f.drawtype == NDT_ALLFACES) + scaleMesh(mesh, v3f(f.visual_scale)); + break; + } + case NDT_PLANTLIKE: { + mesh = getExtrudedMesh(tsrc, + tsrc->getTextureName(f.tiles[0].layers[0].texture_id), + tsrc->getTextureName(f.tiles[0].layers[1].texture_id)); + // Add color + const TileLayer &l0 = f.tiles[0].layers[0]; + result->buffer_colors.emplace_back(l0.has_color, l0.color); + const TileLayer &l1 = f.tiles[0].layers[1]; + result->buffer_colors.emplace_back(l1.has_color, l1.color); + break; + } + case NDT_PLANTLIKE_ROOTED: { + mesh = getExtrudedMesh(tsrc, + tsrc->getTextureName(f.special_tiles[0].layers[0].texture_id), ""); + // Add color + const TileLayer &l0 = f.special_tiles[0].layers[0]; + result->buffer_colors.emplace_back(l0.has_color, l0.color); + break; + } + default: + // Render non-trivial drawtypes like the actual node + mesh = createSpecialNodeMesh(client, id, &result->buffer_colors, f); + scaleMesh(mesh, v3f(0.12, 0.12, 0.12)); + break; } u32 mc = mesh->getMeshBufferCount(); @@ -593,7 +600,7 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result) material.MaterialTypeParam = 0.5f; material.setFlag(video::EMF_BILINEAR_FILTER, false); material.setFlag(video::EMF_TRILINEAR_FILTER, false); - material.setFlag(video::EMF_BACK_FACE_CULLING, true); + material.setFlag(video::EMF_BACK_FACE_CULLING, cull_backface); material.setFlag(video::EMF_LIGHTING, false); } diff --git a/src/clientiface.cpp b/src/clientiface.cpp index 602a44c90..797afd3c1 100644 --- a/src/clientiface.cpp +++ b/src/clientiface.cpp @@ -80,10 +80,11 @@ LuaEntitySAO *getAttachedObject(PlayerSAO *sao, ServerEnvironment *env) int id; std::string bone; v3f dummy; - sao->getAttachment(&id, &bone, &dummy, &dummy); + bool force_visible; + sao->getAttachment(&id, &bone, &dummy, &dummy, &force_visible); ServerActiveObject *ao = env->getActiveObject(id); while (id && ao) { - ao->getAttachment(&id, &bone, &dummy, &dummy); + ao->getAttachment(&id, &bone, &dummy, &dummy, &force_visible); if (id) ao = env->getActiveObject(id); } @@ -98,7 +99,6 @@ void RemoteClient::GetNextBlocks ( { // Increment timers m_nothing_to_send_pause_timer -= dtime; - m_nearest_unsent_reset_timer += dtime; if (m_nothing_to_send_pause_timer >= 0) return; @@ -138,34 +138,6 @@ void RemoteClient::GetNextBlocks ( camera_dir.rotateYZBy(sao->getLookPitch()); camera_dir.rotateXZBy(sao->getRotation().Y); - /*infostream<<"camera_dir=("<<camera_dir.X<<","<<camera_dir.Y<<"," - <<camera_dir.Z<<")"<<std::endl;*/ - - /* - Get the starting value of the block finder radius. - */ - - if (m_last_center != center) { - m_nearest_unsent_d = 0; - m_last_center = center; - } - - /*infostream<<"m_nearest_unsent_reset_timer=" - <<m_nearest_unsent_reset_timer<<std::endl;*/ - - // Reset periodically to workaround for some bugs or stuff - if (m_nearest_unsent_reset_timer > 20.0f) { - m_nearest_unsent_reset_timer = 0.0f; - m_nearest_unsent_d = 0; - //infostream<<"Resetting m_nearest_unsent_d for " - // <<server->getPlayerName(peer_id)<<std::endl; - } - - //s16 last_nearest_unsent_d = m_nearest_unsent_d; - s16 d_start = m_nearest_unsent_d; - - //infostream<<"d_start="<<d_start<<std::endl; - u16 max_simul_sends_usually = m_max_simul_sends; /* @@ -197,6 +169,29 @@ void RemoteClient::GetNextBlocks ( s16 wanted_range = sao->getWantedRange() + 1; float camera_fov = sao->getFov(); + /* + Get the starting value of the block finder radius. + */ + if (m_last_center != center) { + m_nearest_unsent_d = 0; + m_last_center = center; + } + // reset the unsent distance if the view angle has changed more that 10% of the fov + // (this matches isBlockInSight which allows for an extra 10%) + if (camera_dir.dotProduct(m_last_camera_dir) < std::cos(camera_fov * 0.1f)) { + m_nearest_unsent_d = 0; + m_last_camera_dir = camera_dir; + } + if (m_nearest_unsent_d > 0) { + // make sure any blocks modified since the last time we sent blocks are resent + for (const v3s16 &p : m_blocks_modified) { + m_nearest_unsent_d = std::min(m_nearest_unsent_d, center.getDistanceFrom(p)); + } + } + m_blocks_modified.clear(); + + s16 d_start = m_nearest_unsent_d; + // Distrust client-sent FOV and get server-set player object property // zoom FOV (degrees) as a check to avoid hacked clients using FOV to load // distant world. @@ -211,13 +206,13 @@ void RemoteClient::GetNextBlocks ( wanted_range); const s16 d_blocks_in_sight = full_d_max * BS * MAP_BLOCKSIZE; - s16 d_max = full_d_max; s16 d_max_gen = std::min(adjustDist(m_max_gen_distance, prop_zoom_fov), wanted_range); - // Don't loop very much at a time, adjust with distance, - // do more work per RTT with greater distances. - s16 max_d_increment_at_time = full_d_max / 9 + 1; + s16 d_max = full_d_max; + + // Don't loop very much at a time + s16 max_d_increment_at_time = 2; if (d_max > d_start + max_d_increment_at_time) d_max = d_start + max_d_increment_at_time; @@ -310,20 +305,14 @@ void RemoteClient::GetNextBlocks ( */ MapBlock *block = env->getMap().getBlockNoCreateNoEx(p); - bool surely_not_found_on_disk = false; - bool block_is_invalid = false; + bool block_not_found = false; if (block) { // Reset usage timer, this block will be of use in the future. block->resetUsageTimer(); - // Block is dummy if data doesn't exist. - // It means it has been not found from disk and not generated - if (block->isDummy()) { - surely_not_found_on_disk = true; - } - - if (!block->isGenerated()) - block_is_invalid = true; + // Check whether the block exists (with data) + if (block->isDummy() || !block->isGenerated()) + block_not_found = true; /* If block is not close, don't send it unless it is near @@ -337,7 +326,7 @@ void RemoteClient::GetNextBlocks ( continue; } - if (m_occ_cull && !block_is_invalid && + if (m_occ_cull && !block_not_found && env->getMap().isBlockOccluded(block, cam_pos_nodes)) { continue; } @@ -347,7 +336,7 @@ void RemoteClient::GetNextBlocks ( If block has been marked to not exist on disk (dummy) or is not generated and generating new ones is not wanted, skip block. */ - if (!generate && (surely_not_found_on_disk || block_is_invalid)) { + if (!generate && block_not_found) { // get next one. continue; } @@ -355,7 +344,7 @@ void RemoteClient::GetNextBlocks ( /* Add inexistent block to emerge queue. */ - if (block == NULL || surely_not_found_on_disk || block_is_invalid) { + if (block == NULL || block_not_found) { if (emerge->enqueueBlockEmerge(peer_id, p, generate)) { if (nearest_emerged_d == -1) nearest_emerged_d = d; @@ -408,21 +397,18 @@ queue_full_break: void RemoteClient::GotBlock(v3s16 p) { - if (m_blocks_modified.find(p) == m_blocks_modified.end()) { - if (m_blocks_sending.find(p) != m_blocks_sending.end()) - m_blocks_sending.erase(p); - else - m_excess_gotblocks++; - + if (m_blocks_sending.find(p) != m_blocks_sending.end()) { + m_blocks_sending.erase(p); + // only add to sent blocks if it actually was sending + // (it might have been modified since) m_blocks_sent.insert(p); + } else { + m_excess_gotblocks++; } } void RemoteClient::SentBlock(v3s16 p) { - if (m_blocks_modified.find(p) != m_blocks_modified.end()) - m_blocks_modified.erase(p); - if (m_blocks_sending.find(p) == m_blocks_sending.end()) m_blocks_sending[p] = 0.0f; else @@ -432,29 +418,24 @@ void RemoteClient::SentBlock(v3s16 p) void RemoteClient::SetBlockNotSent(v3s16 p) { - m_nearest_unsent_d = 0; m_nothing_to_send_pause_timer = 0; - if (m_blocks_sending.find(p) != m_blocks_sending.end()) - m_blocks_sending.erase(p); - if (m_blocks_sent.find(p) != m_blocks_sent.end()) - m_blocks_sent.erase(p); - m_blocks_modified.insert(p); + // remove the block from sending and sent sets, + // and mark as modified if found + if (m_blocks_sending.erase(p) + m_blocks_sent.erase(p) > 0) + m_blocks_modified.insert(p); } void RemoteClient::SetBlocksNotSent(std::map<v3s16, MapBlock*> &blocks) { - m_nearest_unsent_d = 0; m_nothing_to_send_pause_timer = 0; for (auto &block : blocks) { v3s16 p = block.first; - m_blocks_modified.insert(p); - - if (m_blocks_sending.find(p) != m_blocks_sending.end()) - m_blocks_sending.erase(p); - if (m_blocks_sent.find(p) != m_blocks_sent.end()) - m_blocks_sent.erase(p); + // remove the block from sending and sent sets, + // and mark as modified if found + if (m_blocks_sending.erase(p) + m_blocks_sent.erase(p) > 0) + m_blocks_modified.insert(p); } } @@ -471,9 +452,6 @@ void RemoteClient::notifyEvent(ClientStateEvent event) case CSE_Hello: m_state = CS_HelloSent; break; - case CSE_InitLegacy: - m_state = CS_AwaitingInit2; - break; case CSE_Disconnect: m_state = CS_Disconnecting; break; diff --git a/src/clientiface.h b/src/clientiface.h index 83fa6fe99..cc5292b71 100644 --- a/src/clientiface.h +++ b/src/clientiface.h @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serialization.h" // for SER_FMT_VER_INVALID #include "network/networkpacket.h" #include "network/networkprotocol.h" +#include "network/address.h" #include "porting.h" #include <list> @@ -188,7 +189,6 @@ enum ClientStateEvent { CSE_Hello, CSE_AuthAccept, - CSE_InitLegacy, CSE_GotInit2, CSE_SetDenied, CSE_SetDefinitionsSent, @@ -338,17 +338,24 @@ public: u8 getMajor() const { return m_version_major; } u8 getMinor() const { return m_version_minor; } u8 getPatch() const { return m_version_patch; } - const std::string &getFull() const { return m_full_version; } + const std::string &getFullVer() const { return m_full_version; } void setLangCode(const std::string &code) { m_lang_code = code; } const std::string &getLangCode() const { return m_lang_code; } + + void setCachedAddress(const Address &addr) { m_addr = addr; } + const Address &getAddress() const { return m_addr; } + private: // Version is stored in here after INIT before INIT2 u8 m_pending_serialization_version = SER_FMT_VER_INVALID; /* current state of client */ ClientState m_state = CS_Created; - + + // Cached here so retrieval doesn't have to go to connection API + Address m_addr; + // Client sent language code std::string m_lang_code; @@ -364,7 +371,7 @@ private: std::set<v3s16> m_blocks_sent; s16 m_nearest_unsent_d = 0; v3s16 m_last_center; - float m_nearest_unsent_reset_timer = 0.0f; + v3f m_last_camera_dir; const u16 m_max_simul_sends; const float m_min_time_from_building; @@ -384,10 +391,10 @@ private: std::map<v3s16, float> m_blocks_sending; /* - Blocks that have been modified since last sending them. - These blocks will not be marked as sent, even if the - client reports it has received them to account for blocks - that are being modified while on the line. + Blocks that have been modified since blocks were + sent to the client last (getNextBlocks()). + This is used to reset the unsent distance, so that + modified blocks are resent to the client. List of block positions. */ @@ -412,7 +419,7 @@ private: /* client information - */ + */ u8 m_version_major = 0; u8 m_version_minor = 0; u8 m_version_patch = 0; diff --git a/src/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/CMakeLists.txt b/src/content/CMakeLists.txt index 5adcf6b1e..6dd049418 100644 --- a/src/content/CMakeLists.txt +++ b/src/content/CMakeLists.txt @@ -1,6 +1,5 @@ set(content_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/content.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/packages.cpp ${CMAKE_CURRENT_SOURCE_DIR}/mods.cpp ${CMAKE_CURRENT_SOURCE_DIR}/subgames.cpp PARENT_SCOPE diff --git a/src/content/packages.cpp b/src/content/packages.cpp deleted file mode 100644 index 2d488eb76..000000000 --- a/src/content/packages.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* -Minetest -Copyright (C) 2018 rubenwardy <rw@rubenwardy.com> - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -#include "content/packages.h" -#include "log.h" -#include "filesys.h" -#include "porting.h" -#include "settings.h" -#include "content/mods.h" -#include "content/subgames.h" - -std::string Package::getDownloadURL(const std::string &baseURL) const -{ - return baseURL + "/packages/" + author + "/" + name + "/releases/" + - std::to_string(release) + "/download/"; -} - -#if USE_CURL -std::vector<Package> getPackagesFromURL(const std::string &url) -{ - std::vector<std::string> extra_headers; - extra_headers.emplace_back("Accept: application/json"); - - Json::Value json = fetchJsonValue(url, &extra_headers); - if (!json.isArray()) { - errorstream << "Invalid JSON download " << std::endl; - return std::vector<Package>(); - } - - std::vector<Package> packages; - - // Note: `unsigned int` is required to index JSON - for (unsigned int i = 0; i < json.size(); ++i) { - Package package; - - package.author = json[i]["author"].asString(); - package.name = json[i]["name"].asString(); - package.title = json[i]["title"].asString(); - package.type = json[i]["type"].asString(); - package.shortDesc = json[i]["shortDesc"].asString(); - package.release = json[i]["release"].asInt(); - if (json[i].isMember("thumbnail")) - package.thumbnail = json[i]["thumbnail"].asString(); - - if (package.valid()) - packages.push_back(package); - else - errorstream << "Invalid package at " << i << std::endl; - } - - return packages; -} -#endif diff --git a/src/content/packages.h b/src/content/packages.h deleted file mode 100644 index 9029475ef..000000000 --- a/src/content/packages.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -Minetest -Copyright (C) 2018 rubenwardy <rw@rubenwardy.com> - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -*/ - -#pragma once -#include "config.h" -#include "convert_json.h" -#include "irrlichttypes.h" - -struct Package -{ - std::string author; - std::string name; // Technical name - std::string title; - std::string type; // One of "mod", "game", or "txp" - - std::string shortDesc; - u32 release; - std::string thumbnail; - - bool valid() const - { - return !(author.empty() || name.empty() || title.empty() || - type.empty() || release <= 0); - } - - std::string getDownloadURL(const std::string &baseURL) const; -}; - -#if USE_CURL -std::vector<Package> getPackagesFromURL(const std::string &url); -#else -inline std::vector<Package> getPackagesFromURL(const std::string &url) -{ - return std::vector<Package>(); -} -#endif diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp index 170f54e20..e9dc609b0 100644 --- a/src/content/subgames.cpp +++ b/src/content/subgames.cpp @@ -31,12 +31,20 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "client/tile.h" // getImagePath #endif +// The maximum number of identical world names allowed +#define MAX_WORLD_NAMES 100 + +namespace +{ + bool getGameMinetestConfig(const std::string &game_path, Settings &conf) { std::string conf_path = game_path + DIR_DELIM + "minetest.conf"; return conf.readConfigFile(conf_path.c_str()); } +} + struct GameFindPath { std::string path; @@ -213,6 +221,21 @@ bool getWorldExists(const std::string &world_path) fs::PathExists(world_path + DIR_DELIM + "world.mt")); } +//! Try to get the displayed name of a world +std::string getWorldName(const std::string &world_path, const std::string &default_name) +{ + std::string conf_path = world_path + DIR_DELIM + "world.mt"; + Settings conf; + bool succeeded = conf.readConfigFile(conf_path.c_str()); + if (!succeeded) { + return default_name; + } + + if (!conf.exists("world_name")) + return default_name; + return conf.get("world_name"); +} + std::string getWorldGameId(const std::string &world_path, bool can_be_legacy) { std::string conf_path = world_path + DIR_DELIM + "world.mt"; @@ -259,7 +282,7 @@ std::vector<WorldSpec> getAvailableWorlds() if (!dln.dir) continue; std::string fullpath = worldspath + DIR_DELIM + dln.name; - std::string name = dln.name; + std::string name = getWorldName(fullpath, dln.name); // Just allow filling in the gameid always for now bool can_be_legacy = true; std::string gameid = getWorldGameId(fullpath, can_be_legacy); @@ -288,27 +311,45 @@ std::vector<WorldSpec> getAvailableWorlds() return worlds; } -bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec) +void loadGameConfAndInitWorld(const std::string &path, const std::string &name, + const SubgameSpec &gamespec, bool create_world) { - // 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_defaults; - getGameMinetestConfig(gamespec.path, game_defaults); - g_settings->overrideDefaults(&game_defaults); + std::string final_path = path; + + // If we're creating a new world, ensure that the path isn't already taken + if (create_world) { + int counter = 1; + while (fs::PathExists(final_path) && counter < MAX_WORLD_NAMES) { + final_path = path + "_" + std::to_string(counter); + counter++; + } - infostream << "Initializing world at " << path << std::endl; + if (fs::PathExists(final_path)) { + throw BaseException("Too many similar filenames"); + } + } - fs::CreateAllDirs(path); + 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); + } + + getGameMinetestConfig(gamespec.path, *game_settings); + game_settings->removeSecureSettings(); + + infostream << "Initializing world at " << final_path << std::endl; + + fs::CreateAllDirs(final_path); // Create world.mt if does not already exist - std::string worldmt_path = path + DIR_DELIM "world.mt"; + std::string worldmt_path = final_path + DIR_DELIM "world.mt"; if (!fs::PathExists(worldmt_path)) { Settings conf; + conf.set("world_name", name); conf.set("gameid", gamespec.id); conf.set("backend", "sqlite3"); conf.set("player_backend", "sqlite3"); @@ -316,16 +357,16 @@ bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamesp conf.setBool("creative_mode", g_settings->getBool("creative_mode")); conf.setBool("enable_damage", g_settings->getBool("enable_damage")); - if (!conf.updateConfigFile(worldmt_path.c_str())) - return false; + if (!conf.updateConfigFile(worldmt_path.c_str())) { + throw BaseException("Failed to update the config file"); + } } // Create map_meta.txt if does not already exist - std::string map_meta_path = path + DIR_DELIM + "map_meta.txt"; + std::string map_meta_path = final_path + DIR_DELIM + "map_meta.txt"; if (!fs::PathExists(map_meta_path)) { verbosestream << "Creating map_meta.txt (" << map_meta_path << ")" << std::endl; - fs::CreateAllDirs(path); std::ostringstream oss(std::ios_base::binary); Settings conf; @@ -338,5 +379,8 @@ bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamesp fs::safeWriteToFile(map_meta_path, oss.str()); } - return true; + + // The Settings object is no longer needed for created worlds + if (new_game_settings) + delete game_settings; } diff --git a/src/content/subgames.h b/src/content/subgames.h index 4198ea860..60392639b 100644 --- a/src/content/subgames.h +++ b/src/content/subgames.h @@ -53,9 +53,6 @@ struct SubgameSpec bool isValid() const { return (!id.empty() && !path.empty()); } }; -// minetest.conf -bool getGameMinetestConfig(const std::string &game_path, Settings &conf); - SubgameSpec findSubgame(const std::string &id); SubgameSpec findWorldSubgame(const std::string &world_path); @@ -63,6 +60,8 @@ std::set<std::string> getAvailableGameIds(); std::vector<SubgameSpec> getAvailableGames(); bool getWorldExists(const std::string &world_path); +//! Try to get the displayed name of a world +std::string getWorldName(const std::string &world_path, const std::string &default_name); std::string getWorldGameId(const std::string &world_path, bool can_be_legacy = false); struct WorldSpec @@ -88,4 +87,5 @@ std::vector<WorldSpec> getAvailableWorlds(); // loads the subgame's config and creates world directory // and world.mt if they don't exist -bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec); +void loadGameConfAndInitWorld(const std::string &path, const std::string &name, + const SubgameSpec &gamespec, bool create_world); diff --git a/src/content_nodemeta.cpp b/src/content_nodemeta.cpp index fc2859d27..39743c11f 100644 --- a/src/content_nodemeta.cpp +++ b/src/content_nodemeta.cpp @@ -43,26 +43,26 @@ static bool content_nodemeta_deserialize_legacy_body( if(id == NODEMETA_GENERIC) // GenericNodeMetadata (0.4-dev) { meta->getInventory()->deSerialize(is); - deSerializeLongString(is); // m_text - deSerializeString(is); // m_owner + deSerializeString32(is); // m_text + deSerializeString16(is); // m_owner - meta->setString("infotext",deSerializeString(is)); - meta->setString("formspec",deSerializeString(is)); + meta->setString("infotext",deSerializeString16(is)); + meta->setString("formspec",deSerializeString16(is)); readU8(is); // m_allow_text_input readU8(is); // m_allow_removal readU8(is); // m_enforce_owner int num_vars = readU32(is); for(int i=0; i<num_vars; i++){ - std::string name = deSerializeString(is); - std::string var = deSerializeLongString(is); + std::string name = deSerializeString16(is); + std::string var = deSerializeString32(is); meta->setString(name, var); } return false; } else if(id == NODEMETA_SIGN) // SignNodeMetadata { - meta->setString("text", deSerializeString(is)); + meta->setString("text", deSerializeString16(is)); //meta->setString("infotext","\"${text}\""); meta->setString("infotext", std::string("\"") + meta->getString("text") + "\""); @@ -87,7 +87,7 @@ static bool content_nodemeta_deserialize_legacy_body( } else if(id == NODEMETA_LOCKABLE_CHEST) // LockingChestNodeMetadata { - meta->setString("owner", deSerializeString(is)); + meta->setString("owner", deSerializeString16(is)); meta->getInventory()->deSerialize(is); // Rename inventory list "0" to "main" @@ -138,7 +138,7 @@ static bool content_nodemeta_deserialize_legacy_meta( s16 id = readS16(is); // Read data - std::string data = deSerializeString(is); + std::string data = deSerializeString16(is); std::istringstream tmp_is(data, std::ios::binary); return content_nodemeta_deserialize_legacy_body(tmp_is, id, meta); } diff --git a/src/database/database-dummy.cpp b/src/database/database-dummy.cpp index a3d8cd579..b56f341c5 100644 --- a/src/database/database-dummy.cpp +++ b/src/database/database-dummy.cpp @@ -22,6 +22,7 @@ Dummy database class */ #include "database-dummy.h" +#include "remoteplayer.h" bool Database_Dummy::saveBlock(const v3s16 &pos, const std::string &data) @@ -57,3 +58,25 @@ void Database_Dummy::listAllLoadableBlocks(std::vector<v3s16> &dst) } } +void Database_Dummy::savePlayer(RemotePlayer *player) +{ + m_player_database.insert(player->getName()); +} + +bool Database_Dummy::loadPlayer(RemotePlayer *player, PlayerSAO *sao) +{ + return m_player_database.find(player->getName()) != m_player_database.end(); +} + +bool Database_Dummy::removePlayer(const std::string &name) +{ + m_player_database.erase(name); + return true; +} + +void Database_Dummy::listPlayers(std::vector<std::string> &res) +{ + for (const auto &player : m_player_database) { + res.emplace_back(player); + } +} diff --git a/src/database/database-dummy.h b/src/database/database-dummy.h index 2d87d58f6..b69919f84 100644 --- a/src/database/database-dummy.h +++ b/src/database/database-dummy.h @@ -32,14 +32,15 @@ public: bool deleteBlock(const v3s16 &pos); void listAllLoadableBlocks(std::vector<v3s16> &dst); - void savePlayer(RemotePlayer *player) {} - bool loadPlayer(RemotePlayer *player, PlayerSAO *sao) { return true; } - bool removePlayer(const std::string &name) { return true; } - void listPlayers(std::vector<std::string> &res) {} + void savePlayer(RemotePlayer *player); + bool loadPlayer(RemotePlayer *player, PlayerSAO *sao); + bool removePlayer(const std::string &name); + void listPlayers(std::vector<std::string> &res); void beginSave() {} void endSave() {} private: std::map<s64, std::string> m_database; + std::set<std::string> m_player_database; }; 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 <cassert> #include <json/json.h> +#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<std::string> &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<std::string> &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/database/database-leveldb.cpp b/src/database/database-leveldb.cpp index 1976ae13d..73cd63f6d 100644 --- a/src/database/database-leveldb.cpp +++ b/src/database/database-leveldb.cpp @@ -145,8 +145,8 @@ void PlayerDatabaseLevelDB::savePlayer(RemotePlayer *player) StringMap stringvars = sao->getMeta().getStrings(); writeU32(os, stringvars.size()); for (const auto &it : stringvars) { - os << serializeString(it.first); - os << serializeLongString(it.second); + os << serializeString16(it.first); + os << serializeString32(it.second); } player->inventory.serialize(os); @@ -183,8 +183,8 @@ bool PlayerDatabaseLevelDB::loadPlayer(RemotePlayer *player, PlayerSAO *sao) u32 attribute_count = readU32(is); for (u32 i = 0; i < attribute_count; i++) { - std::string name = deSerializeString(is); - std::string value = deSerializeLongString(is); + std::string name = deSerializeString16(is); + std::string value = deSerializeString32(is); sao->getMeta().setString(name, value); } sao->getMeta().setModified(false); @@ -247,13 +247,13 @@ bool AuthDatabaseLevelDB::getAuth(const std::string &name, AuthEntry &res) res.id = 1; res.name = name; - res.password = deSerializeString(is); + res.password = deSerializeString16(is); u16 privilege_count = readU16(is); res.privileges.clear(); res.privileges.reserve(privilege_count); for (u16 i = 0; i < privilege_count; i++) { - res.privileges.push_back(deSerializeString(is)); + res.privileges.push_back(deSerializeString16(is)); } res.last_login = readS64(is); @@ -264,14 +264,14 @@ bool AuthDatabaseLevelDB::saveAuth(const AuthEntry &authEntry) { std::ostringstream os; writeU8(os, 1); - os << serializeString(authEntry.password); + os << serializeString16(authEntry.password); size_t privilege_count = authEntry.privileges.size(); FATAL_ERROR_IF(privilege_count > U16_MAX, "Unsupported number of privileges"); writeU16(os, privilege_count); for (const std::string &privilege : authEntry.privileges) { - os << serializeString(privilege); + os << serializeString16(privilege); } writeS64(os, authEntry.last_login); diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index abb6593b7..cda953082 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -27,8 +27,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "mapgen/mapgen.h" // Mapgen::setDefaultSettings #include "util/string.h" -void set_default_settings(Settings *settings) +void set_default_settings() { + Settings *settings = Settings::createLayer(SL_DEFAULTS); + // Client and server settings->setDefault("language", ""); settings->setDefault("name", ""); @@ -52,7 +54,7 @@ void set_default_settings(Settings *settings) settings->setDefault("screenshot_format", "png"); settings->setDefault("screenshot_quality", "0"); settings->setDefault("client_unload_unused_data_timeout", "600"); - settings->setDefault("client_mapblock_limit", "5000"); + settings->setDefault("client_mapblock_limit", "7500"); settings->setDefault("enable_build_where_you_stand", "false"); settings->setDefault("curl_timeout", "5000"); settings->setDefault("curl_parallel_limit", "8"); @@ -73,6 +75,8 @@ void set_default_settings(Settings *settings) settings->setDefault("keymap_right", "KEY_KEY_D"); settings->setDefault("keymap_jump", "KEY_SPACE"); settings->setDefault("keymap_sneak", "KEY_LSHIFT"); + settings->setDefault("keymap_dig", "KEY_LBUTTON"); + settings->setDefault("keymap_place", "KEY_RBUTTON"); settings->setDefault("keymap_drop", "KEY_KEY_Q"); settings->setDefault("keymap_zoom", "KEY_KEY_Z"); settings->setDefault("keymap_inventory", "KEY_KEY_I"); @@ -163,8 +167,8 @@ void set_default_settings(Settings *settings) settings->setDefault("tooltip_show_delay", "400"); settings->setDefault("tooltip_append_itemname", "false"); settings->setDefault("fps_max", "60"); - settings->setDefault("pause_fps_max", "20"); - settings->setDefault("viewing_range", "100"); + settings->setDefault("fps_max_unfocused", "20"); + settings->setDefault("viewing_range", "190"); #if ENABLE_GLES settings->setDefault("near_plane", "0.1"); #endif @@ -225,10 +229,10 @@ void set_default_settings(Settings *settings) settings->setDefault("desynchronize_mapblock_texture_animation", "true"); settings->setDefault("hud_hotbar_max_width", "1.0"); settings->setDefault("enable_local_map_saving", "false"); - settings->setDefault("show_entity_selectionbox", "true"); + settings->setDefault("show_entity_selectionbox", "false"); settings->setDefault("texture_clean_transparent", "false"); settings->setDefault("texture_min_size", "64"); - settings->setDefault("ambient_occlusion_gamma", "2.2"); + settings->setDefault("ambient_occlusion_gamma", "1.8"); #if ENABLE_GLES settings->setDefault("enable_shaders", "false"); #else @@ -236,6 +240,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", "true"); @@ -249,15 +254,6 @@ void set_default_settings(Settings *settings) settings->setDefault("bilinear_filter", "false"); settings->setDefault("trilinear_filter", "false"); settings->setDefault("tone_mapping", "false"); - settings->setDefault("enable_bumpmapping", "false"); - settings->setDefault("enable_parallax_occlusion", "false"); - settings->setDefault("generate_normalmaps", "false"); - settings->setDefault("normalmaps_strength", "0.6"); - settings->setDefault("normalmaps_smooth", "1"); - settings->setDefault("parallax_occlusion_mode", "1"); - settings->setDefault("parallax_occlusion_iterations", "4"); - settings->setDefault("parallax_occlusion_scale", "0.08"); - settings->setDefault("parallax_occlusion_bias", "0.04"); settings->setDefault("enable_waving_water", "false"); settings->setDefault("water_wave_height", "1.0"); settings->setDefault("water_wave_length", "20.0"); @@ -269,7 +265,7 @@ void set_default_settings(Settings *settings) // Input settings->setDefault("invert_mouse", "false"); settings->setDefault("mouse_sensitivity", "0.2"); - settings->setDefault("repeat_rightclick_time", "0.25"); + settings->setDefault("repeat_place_time", "0.25"); settings->setDefault("safe_dig_and_place", "false"); settings->setDefault("random_input", "false"); settings->setDefault("aux1_descends", "false"); @@ -286,11 +282,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_style", "full"); settings->setDefault("main_menu_path", ""); - settings->setDefault("serverlist_file", "favoriteservers.txt"); + settings->setDefault("serverlist_file", "favoriteservers.json"); #if USE_FREETYPE settings->setDefault("freetype", "true"); @@ -328,6 +324,8 @@ void set_default_settings(Settings *settings) // ContentDB settings->setDefault("contentdb_url", "https://content.minetest.net"); + settings->setDefault("contentdb_max_concurrent_downloads", "3"); + #ifdef __ANDROID__ settings->setDefault("contentdb_flag_blacklist", "nonfree, android_default"); #else @@ -364,11 +362,7 @@ void set_default_settings(Settings *settings) settings->setDefault("disallow_empty_password", "false"); settings->setDefault("disable_anticheat", "false"); settings->setDefault("enable_rollback_recording", "false"); -#ifdef NDEBUG - settings->setDefault("deprecated_lua_api_handling", "legacy"); -#else settings->setDefault("deprecated_lua_api_handling", "log"); -#endif settings->setDefault("kick_msg_shutdown", "Server shutting down."); settings->setDefault("kick_msg_crash", "This server has experienced an internal error. You will now be disconnected."); @@ -376,11 +370,11 @@ void set_default_settings(Settings *settings) settings->setDefault("chat_message_format", "<@name> @message"); settings->setDefault("profiler_print_interval", "0"); - settings->setDefault("active_object_send_range_blocks", "4"); - settings->setDefault("active_block_range", "3"); + settings->setDefault("active_object_send_range_blocks", "8"); + settings->setDefault("active_block_range", "4"); //settings->setDefault("max_simultaneous_block_sends_per_client", "1"); // This causes frametime jitter on client side, or does it? - settings->setDefault("max_block_send_distance", "10"); + settings->setDefault("max_block_send_distance", "12"); settings->setDefault("block_send_optimize_distance", "4"); settings->setDefault("server_side_occlusion_culling", "true"); settings->setDefault("csm_restriction_flags", "62"); @@ -395,19 +389,22 @@ 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"); settings->setDefault("abm_interval", "1.0"); + settings->setDefault("abm_time_budget", "0.2"); settings->setDefault("nodetimer_interval", "0.2"); settings->setDefault("ignore_world_load_errors", "false"); settings->setDefault("remote_media", ""); settings->setDefault("debug_log_level", "action"); settings->setDefault("debug_log_size_max", "50"); settings->setDefault("chat_log_level", "error"); - settings->setDefault("emergequeue_limit_total", "512"); - settings->setDefault("emergequeue_limit_diskonly", "64"); - settings->setDefault("emergequeue_limit_generate", "64"); + settings->setDefault("emergequeue_limit_total", "1024"); + settings->setDefault("emergequeue_limit_diskonly", "128"); + settings->setDefault("emergequeue_limit_generate", "128"); settings->setDefault("num_emerge_threads", "1"); settings->setDefault("secure.enable_security", "true"); settings->setDefault("secure.trusted_mods", ""); @@ -438,7 +435,7 @@ void set_default_settings(Settings *settings) settings->setDefault("mapgen_limit", "31000"); settings->setDefault("chunksize", "5"); settings->setDefault("fixed_map_seed", ""); - settings->setDefault("max_block_generate_distance", "8"); + settings->setDefault("max_block_generate_distance", "10"); settings->setDefault("enable_mapgen_debug_info", "false"); Mapgen::setDefaultSettings(settings); @@ -465,7 +462,6 @@ 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"); @@ -476,9 +472,11 @@ void set_default_settings(Settings *settings) settings->setDefault("max_block_generate_distance", "5"); settings->setDefault("enable_3d_clouds", "false"); settings->setDefault("fps_max", "30"); - settings->setDefault("pause_fps_max", "10"); + settings->setDefault("fps_max_unfocused", "10"); settings->setDefault("max_objects_per_block", "20"); settings->setDefault("sqlite_synchronous", "1"); + settings->setDefault("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 0ac26a682..e0dc5628e 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -396,14 +396,7 @@ int EmergeManager::getGroundLevelAtPoint(v2s16 p) // TODO(hmmmm): Move this to ServerMap bool EmergeManager::isBlockUnderground(v3s16 blockpos) { -#if 0 - v2s16 p = v2s16((blockpos.X * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2, - (blockpos.Y * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2); - int ground_level = getGroundLevelAtPoint(p); - return blockpos.Y * (MAP_BLOCKSIZE + 1) <= min(water_level, ground_level); -#endif - - // Use a simple heuristic; the above method is wildly inaccurate anyway. + // Use a simple heuristic return blockpos.Y * (MAP_BLOCKSIZE + 1) <= mgparams->water_level; } @@ -426,6 +419,10 @@ bool EmergeManager::pushBlockEmergeData( m_qlimit_generate : m_qlimit_diskonly; if (count_peer >= qlimit_peer) return false; + } else { + // limit block enqueue requests for active blocks to 1/2 of total + if (count_peer * 2 >= m_qlimit_total) + return false; } } diff --git a/src/emerge.h b/src/emerge.h index 6f204666d..da845e243 100644 --- a/src/emerge.h +++ b/src/emerge.h @@ -52,7 +52,6 @@ struct BlockMakeData { u64 seed = 0; v3s16 blockpos_min; v3s16 blockpos_max; - v3s16 blockpos_requested; UniqueQueue<v3s16> transforming_liquid; const NodeDefManager *nodedef = nullptr; diff --git a/src/environment.cpp b/src/environment.cpp index 6751f39e4..06f2b8bf9 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -36,6 +36,7 @@ Environment::Environment(IGameDef *gamedef): m_cache_active_block_mgmt_interval = g_settings->getFloat("active_block_mgmt_interval"); m_cache_abm_interval = g_settings->getFloat("abm_interval"); m_cache_nodetimer_interval = g_settings->getFloat("nodetimer_interval"); + m_cache_abm_time_budget = g_settings->getFloat("abm_time_budget"); m_time_of_day = g_settings->getU32("world_start_time"); m_time_of_day_f = (float)m_time_of_day / 24000.0f; diff --git a/src/environment.h b/src/environment.h index 91c33ba15..b4884fdb3 100644 --- a/src/environment.h +++ b/src/environment.h @@ -147,6 +147,7 @@ protected: float m_cache_active_block_mgmt_interval; float m_cache_abm_interval; float m_cache_nodetimer_interval; + float m_cache_abm_time_budget; IGameDef *m_gamedef; 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 0bc351669..5ffb4506e 100644 --- a/src/filesys.cpp +++ b/src/filesys.cpp @@ -27,9 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "config.h" #include "porting.h" -#ifdef __ANDROID__ -#include "settings.h" // For g_settings -#endif namespace fs { @@ -295,31 +292,26 @@ bool RecursiveDelete(const std::string &path) infostream<<"Removing \""<<path<<"\""<<std::endl; - //return false; - pid_t child_pid = fork(); if(child_pid == 0) { // Child - char argv_data[3][10000]; + const char *argv[4] = { #ifdef __ANDROID__ - strcpy(argv_data[0], "/system/bin/rm"); + "/system/bin/rm", #else - strcpy(argv_data[0], "/bin/rm"); + "/bin/rm", #endif - strcpy(argv_data[1], "-rf"); - strncpy(argv_data[2], path.c_str(), sizeof(argv_data[2]) - 1); - char *argv[4]; - argv[0] = argv_data[0]; - argv[1] = argv_data[1]; - argv[2] = argv_data[2]; - argv[3] = NULL; + "-rf", + path.c_str(), + NULL + }; verbosestream<<"Executing '"<<argv[0]<<"' '"<<argv[1]<<"' '" <<argv[2]<<"'"<<std::endl; - execv(argv[0], argv); + execv(argv[0], const_cast<char**>(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<std::string> &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 "<<path<<std::endl; - success = false; - } - } - return success; -} - bool RecursiveDeleteContent(const std::string &path) { infostream<<"Removing content of \""<<path<<"\""<<std::endl; @@ -750,6 +727,21 @@ bool safeWriteToFile(const std::string &path, const std::string &content) return true; } +bool ReadFile(const std::string &path, std::string &out) +{ + std::ifstream is(path, std::ios::binary | std::ios::ate); + if (!is.good()) { + return false; + } + + auto size = is.tellg(); + out.resize(size); + is.seekg(0); + is.read(&out[0], size); + + return true; +} + bool Rename(const std::string &from, const std::string &to) { return rename(from.c_str(), to.c_str()) == 0; diff --git a/src/filesys.h b/src/filesys.h index 09f129aa3..cfbfa02bf 100644 --- a/src/filesys.h +++ b/src/filesys.h @@ -85,9 +85,6 @@ void GetRecursiveSubPaths(const std::string &path, bool list_files, const std::set<char> &ignore = {}); -// Tries to delete all, returns false if any failed -bool DeletePaths(const std::vector<std::string> &paths); - // Only pass full paths to this one. True on success. bool RecursiveDeleteContent(const std::string &path); @@ -128,6 +125,8 @@ const char *GetFilenameFromPath(const char *path); bool safeWriteToFile(const std::string &path, const std::string &content); +bool ReadFile(const std::string &path, std::string &out); + bool Rename(const std::string &from, const std::string &to); } // namespace fs diff --git a/src/gameparams.h b/src/gameparams.h index 28794a649..70b0ffcde 100644 --- a/src/gameparams.h +++ b/src/gameparams.h @@ -23,10 +23,29 @@ with this program; if not, write to the Free Software Foundation, Inc., struct SubgameSpec; +// Information provided from "main" struct GameParams { + GameParams() = default; + u16 socket_port; std::string world_path; SubgameSpec game_spec; bool is_dedicated_server; }; + +// Information processed by main menu +struct GameStartData : GameParams +{ + GameStartData() = default; + + bool isSinglePlayer() const { return address.empty() && !local_server; } + + std::string name; + std::string password; + std::string address; + bool local_server; + + // "world_path" must be kept in sync! + WorldSpec world_spec; +}; diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 147f445f4..fdd36914a 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -7,6 +7,7 @@ set(gui_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/guiButtonItemImage.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiChatConsole.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiConfirmRegistration.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/guiEditBox.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiEditBoxWithScrollbar.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiEngine.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiFormSpecMenu.cpp @@ -15,6 +16,7 @@ set(gui_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/guiKeyChangeMenu.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiPasswordChange.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiPathSelectMenu.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/guiScene.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiScrollBar.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiScrollContainer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/guiSkin.cpp diff --git a/src/gui/StyleSpec.h b/src/gui/StyleSpec.h index 3e842e826..fc92a861b 100644 --- a/src/gui/StyleSpec.h +++ b/src/gui/StyleSpec.h @@ -18,10 +18,13 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #include "client/tile.h" // ITextureSource +#include "client/fontengine.h" #include "debug.h" #include "irrlichttypes_extrabloated.h" #include "util/string.h" +#include <algorithm> #include <array> +#include <vector> #pragma once @@ -46,6 +49,14 @@ public: ALPHA, CONTENT_OFFSET, PADDING, + FONT, + FONT_SIZE, + COLORS, + BORDERCOLORS, + BORDERWIDTHS, + SOUND, + SPACING, + SIZE, NUM_PROPERTIES, NONE }; @@ -98,6 +109,22 @@ public: return CONTENT_OFFSET; } else if (name == "padding") { return PADDING; + } else if (name == "font") { + return FONT; + } else if (name == "font_size") { + return FONT_SIZE; + } else if (name == "colors") { + return COLORS; + } else if (name == "bordercolors") { + return BORDERCOLORS; + } else if (name == "borderwidths") { + return BORDERWIDTHS; + } else if (name == "sound") { + return SOUND; + } else if (name == "spacing") { + return SPACING; + } else if (name == "size") { + return SIZE; } else { return NONE; } @@ -179,6 +206,42 @@ public: return color; } + std::array<video::SColor, 4> getColorArray(Property prop, + std::array<video::SColor, 4> def) const + { + const auto &val = properties[prop]; + if (val.empty()) + return def; + + std::vector<std::string> strs; + if (!parseArray(val, strs)) + return def; + + for (size_t i = 0; i <= 3; i++) { + video::SColor color; + if (parseColorString(strs[i], color, false, 0xff)) + def[i] = color; + } + + return def; + } + + std::array<s32, 4> getIntArray(Property prop, std::array<s32, 4> def) const + { + const auto &val = properties[prop]; + if (val.empty()) + return def; + + std::vector<std::string> strs; + if (!parseArray(val, strs)) + return def; + + for (size_t i = 0; i <= 3; i++) + def[i] = stoi(strs[i]); + + return def; + } + irr::core::rect<s32> getRect(Property prop, irr::core::rect<s32> def) const { const auto &val = properties[prop]; @@ -202,27 +265,81 @@ public: return rect; } - irr::core::vector2d<s32> getVector2i(Property prop, irr::core::vector2d<s32> def) const + v2f32 getVector2f(Property prop, v2f32 def) const { const auto &val = properties[prop]; if (val.empty()) return def; - irr::core::vector2d<s32> vec; - if (!parseVector2i(val, &vec)) + v2f32 vec; + if (!parseVector2f(val, &vec)) return def; return vec; } - irr::core::vector2d<s32> 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<s32> vec; - parseVector2i(val, &vec); - return vec; + v2f32 vec; + parseVector2f(val, &vec); + return v2s32(vec.X, vec.Y); + } + + gui::IGUIFont *getFont() const + { + FontSpec spec(FONT_SIZE_UNSPECIFIED, FM_Standard, false, false); + + const std::string &font = properties[FONT]; + const std::string &size = properties[FONT_SIZE]; + + if (font.empty() && size.empty()) + return nullptr; + + std::vector<std::string> modes = split(font, ','); + + for (size_t i = 0; i < modes.size(); i++) { + if (modes[i] == "normal") + spec.mode = FM_Standard; + else if (modes[i] == "mono") + spec.mode = FM_Mono; + else if (modes[i] == "bold") + spec.bold = true; + else if (modes[i] == "italic") + spec.italic = true; + } + + if (!size.empty()) { + int calc_size = 1; + + if (size[0] == '*') { + std::string new_size = size.substr(1); // Remove '*' (invalid for stof) + calc_size = stof(new_size) * g_fontengine->getFontSize(spec.mode); + } else if (size[0] == '+' || size[0] == '-') { + calc_size = stoi(size) + g_fontengine->getFontSize(spec.mode); + } else { + calc_size = stoi(size); + } + + spec.size = (unsigned)std::min(std::max(calc_size, 1), 999); + } + + return g_fontengine->getFont(spec); } video::ITexture *getTexture(Property prop, ISimpleTextureSource *tsrc, @@ -285,6 +402,24 @@ public: } private: + bool parseArray(const std::string &value, std::vector<std::string> &arr) const + { + std::vector<std::string> strs = split(value, ','); + + if (strs.size() == 1) { + arr = {strs[0], strs[0], strs[0], strs[0]}; + } else if (strs.size() == 2) { + arr = {strs[0], strs[1], strs[0], strs[1]}; + } else if (strs.size() == 4) { + arr = strs; + } else { + warningstream << "Invalid array size (" << strs.size() + << " arguments): \"" << value << "\"" << std::endl; + return false; + } + return true; + } + bool parseRect(const std::string &value, irr::core::rect<s32> *parsed_rect) const { irr::core::rect<s32> rect; @@ -316,22 +451,20 @@ private: return true; } - bool parseVector2i(const std::string &value, irr::core::vector2d<s32> *parsed_vec) const + bool parseVector2f(const std::string &value, v2f32 *parsed_vec) const { - irr::core::vector2d<s32> vec; + v2f32 vec; std::vector<std::string> 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/guiBox.cpp b/src/gui/guiBox.cpp index 7f329cc32..443f1064f 100644 --- a/src/gui/guiBox.cpp +++ b/src/gui/guiBox.cpp @@ -20,9 +20,14 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "guiBox.h" GUIBox::GUIBox(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id, - const core::rect<s32> &rectangle, const video::SColor &color) : + const core::rect<s32> &rectangle, + const std::array<video::SColor, 4> &colors, + const std::array<video::SColor, 4> &bordercolors, + const std::array<s32, 4> &borderwidths) : gui::IGUIElement(gui::EGUIET_ELEMENT, env, parent, id, rectangle), - m_color(color) + m_colors(colors), + m_bordercolors(bordercolors), + m_borderwidths(borderwidths) { } @@ -31,8 +36,82 @@ void GUIBox::draw() if (!IsVisible) return; - Environment->getVideoDriver()->draw2DRectangle(m_color, AbsoluteRect, - &AbsoluteClippingRect); + std::array<s32, 4> negative_borders = {0, 0, 0, 0}; + std::array<s32, 4> positive_borders = {0, 0, 0, 0}; + + for (size_t i = 0; i <= 3; i++) { + if (m_borderwidths[i] > 0) + positive_borders[i] = m_borderwidths[i]; + else + negative_borders[i] = m_borderwidths[i]; + } + + v2s32 upperleft = AbsoluteRect.UpperLeftCorner; + v2s32 lowerright = AbsoluteRect.LowerRightCorner; + + v2s32 topleft_border = { + upperleft.X - positive_borders[3], + upperleft.Y - positive_borders[0] + }; + v2s32 topleft_rect = { + upperleft.X - negative_borders[3], + upperleft.Y - negative_borders[0] + }; + + v2s32 lowerright_border = { + lowerright.X + positive_borders[1], + lowerright.Y + positive_borders[2] + }; + v2s32 lowerright_rect = { + lowerright.X + negative_borders[1], + lowerright.Y + negative_borders[2] + }; + + core::rect<s32> main_rect( + topleft_rect.X, + topleft_rect.Y, + lowerright_rect.X, + lowerright_rect.Y + ); + + std::array<core::rect<s32>, 4> border_rects; + + border_rects[0] = core::rect<s32>( + topleft_border.X, + topleft_border.Y, + lowerright_border.X, + topleft_rect.Y + ); + + border_rects[1] = core::rect<s32>( + lowerright_rect.X, + topleft_rect.Y, + lowerright_border.X, + lowerright_rect.Y + ); + + border_rects[2] = core::rect<s32>( + topleft_border.X, + lowerright_rect.Y, + lowerright_border.X, + lowerright_border.Y + ); + + border_rects[3] = core::rect<s32>( + topleft_border.X, + topleft_rect.Y, + topleft_rect.X, + lowerright_rect.Y + ); + + video::IVideoDriver *driver = Environment->getVideoDriver(); + + driver->draw2DRectangle(main_rect, m_colors[0], m_colors[1], m_colors[3], + m_colors[2], &AbsoluteClippingRect); + + for (size_t i = 0; i <= 3; i++) + driver->draw2DRectangle(m_bordercolors[i], border_rects[i], + &AbsoluteClippingRect); IGUIElement::draw(); } diff --git a/src/gui/guiBox.h b/src/gui/guiBox.h index 5306fdf65..ca8f83771 100644 --- a/src/gui/guiBox.h +++ b/src/gui/guiBox.h @@ -19,16 +19,23 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include <vector> +#include <array> #include "irrlichttypes_extrabloated.h" class GUIBox : public gui::IGUIElement { public: GUIBox(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id, - const core::rect<s32> &rectangle, const video::SColor &color); + const core::rect<s32> &rectangle, + const std::array<video::SColor, 4> &colors, + const std::array<video::SColor, 4> &bordercolors, + const std::array<s32, 4> &borderwidths); virtual void draw() override; private: - video::SColor m_color; + std::array<video::SColor, 4> m_colors; + std::array<video::SColor, 4> m_bordercolors; + std::array<s32, 4> m_borderwidths; }; diff --git a/src/gui/guiButton.cpp b/src/gui/guiButton.cpp index 6732a9233..b98e5de82 100644 --- a/src/gui/guiButton.cpp +++ b/src/gui/guiButton.cpp @@ -313,11 +313,12 @@ void GUIButton::draw() // PATCH
video::ITexture* texture = ButtonImages[(u32)imageState].Texture;
+ video::SColor image_colors[] = { BgColor, BgColor, BgColor, BgColor };
if (BgMiddle.getArea() == 0) {
driver->draw2DImage(texture,
ScaleImage? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),
sourceRect, &AbsoluteClippingRect,
- 0, UseAlphaChannel);
+ image_colors, UseAlphaChannel);
} else {
core::rect<s32> middle = BgMiddle;
// `-x` is interpreted as `w - x`
@@ -327,7 +328,7 @@ void GUIButton::draw() middle.LowerRightCorner.Y += texture->getOriginalSize().Height;
draw2DImage9Slice(driver, texture,
ScaleImage ? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),
- middle, &AbsoluteClippingRect);
+ middle, &AbsoluteClippingRect, image_colors);
}
// END PATCH
}
@@ -722,6 +723,8 @@ GUIButton* GUIButton::addButton(IGUIEnvironment *environment, void GUIButton::setColor(video::SColor color)
{
+ BgColor = color;
+
float d = 0.65f;
for (size_t i = 0; i < 4; i++) {
video::SColor base = Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
@@ -750,22 +753,26 @@ void GUIButton::setFromStyle(const StyleSpec& style) bool pressed = (style.getState() & StyleSpec::STATE_PRESSED) != 0;
if (style.isNotDefault(StyleSpec::BGCOLOR)) {
-
setColor(style.getColor(StyleSpec::BGCOLOR));
// If we have a propagated hover/press color, we need to automatically
// lighten/darken it
if (!Styles[style.getState()].isNotDefault(StyleSpec::BGCOLOR)) {
- for (size_t i = 0; i < 4; i++) {
if (pressed) {
- Colors[i] = multiplyColorValue(Colors[i], COLOR_PRESSED_MOD);
+ BgColor = multiplyColorValue(BgColor, COLOR_PRESSED_MOD);
+
+ for (size_t i = 0; i < 4; i++)
+ Colors[i] = multiplyColorValue(Colors[i], COLOR_PRESSED_MOD);
} else if (hovered) {
- Colors[i] = multiplyColorValue(Colors[i], COLOR_HOVERED_MOD);
+ BgColor = multiplyColorValue(BgColor, COLOR_HOVERED_MOD);
+
+ for (size_t i = 0; i < 4; i++)
+ Colors[i] = multiplyColorValue(Colors[i], COLOR_HOVERED_MOD);
}
- }
}
} else {
+ BgColor = video::SColor(255, 255, 255, 255);
for (size_t i = 0; i < 4; i++) {
video::SColor base =
Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
@@ -788,6 +795,7 @@ void GUIButton::setFromStyle(const StyleSpec& style) setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
setDrawBorder(style.getBool(StyleSpec::BORDER, true));
setUseAlphaChannel(style.getBool(StyleSpec::ALPHA, true));
+ setOverrideFont(style.getFont());
if (style.isNotDefault(StyleSpec::BGIMG)) {
video::ITexture *texture = style.getTexture(StyleSpec::BGIMG,
diff --git a/src/gui/guiButton.h b/src/gui/guiButton.h index 95fa1a2a1..4e1b04aac 100644 --- a/src/gui/guiButton.h +++ b/src/gui/guiButton.h @@ -338,5 +338,6 @@ private: core::rect<s32> BgMiddle;
core::rect<s32> Padding;
core::vector2d<s32> ContentOffset;
+ video::SColor BgColor;
// END PATCH
};
diff --git a/src/gui/guiButtonItemImage.cpp b/src/gui/guiButtonItemImage.cpp index d8b9042ac..39272fe37 100644 --- a/src/gui/guiButtonItemImage.cpp +++ b/src/gui/guiButtonItemImage.cpp @@ -39,7 +39,6 @@ GUIButtonItemImage::GUIButtonItemImage(gui::IGUIEnvironment *environment, item, getActiveFont(), client); sendToBack(m_image); - m_item_name = item; m_client = client; } diff --git a/src/gui/guiButtonItemImage.h b/src/gui/guiButtonItemImage.h index aad923bda..b90ac757e 100644 --- a/src/gui/guiButtonItemImage.h +++ b/src/gui/guiButtonItemImage.h @@ -42,7 +42,6 @@ public: Client *client); private: - std::string m_item_name; Client *m_client; GUIItemImage *m_image; }; diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp index 8de00c12f..ef471106d 100644 --- a/src/gui/guiChatConsole.cpp +++ b/src/gui/guiChatConsole.cpp @@ -136,11 +136,6 @@ void GUIChatConsole::closeConsoleAtOnce() recalculateConsolePosition(); } -f32 GUIChatConsole::getDesiredHeight() const -{ - return m_desired_height_fraction; -} - void GUIChatConsole::replaceAndAddToHistory(const std::wstring &line) { ChatPrompt& prompt = m_chat_backend->getPrompt(); @@ -545,7 +540,7 @@ bool GUIChatConsole::OnEvent(const SEvent& event) if (prompt.getCursorLength() <= 0) return true; std::wstring wselected = prompt.getSelection(); - std::string selected(wselected.begin(), wselected.end()); + std::string selected = wide_to_utf8(wselected); Environment->getOSOperator()->copyToClipboard(selected.c_str()); return true; } @@ -575,7 +570,7 @@ bool GUIChatConsole::OnEvent(const SEvent& event) if (prompt.getCursorLength() <= 0) return true; std::wstring wselected = prompt.getSelection(); - std::string selected(wselected.begin(), wselected.end()); + std::string selected = wide_to_utf8(wselected); Environment->getOSOperator()->copyToClipboard(selected.c_str()); prompt.cursorOperation( ChatPrompt::CURSOROP_DELETE, diff --git a/src/gui/guiChatConsole.h b/src/gui/guiChatConsole.h index 7be40e27c..896342ab0 100644 --- a/src/gui/guiChatConsole.h +++ b/src/gui/guiChatConsole.h @@ -55,10 +55,6 @@ public: // Set whether to close the console after the user presses enter. void setCloseOnEnter(bool close) { m_close_on_enter = close; } - // Return the desired height (fraction of screen size) - // Zero if the console is closed or getting closed - f32 getDesiredHeight() const; - // Replace actual line when adding the actual to the history (if there is any) void replaceAndAddToHistory(const std::wstring &line); @@ -72,8 +68,6 @@ public: // Irrlicht draw method virtual void draw(); - bool canTakeFocus(gui::IGUIElement* element) { return false; } - virtual bool OnEvent(const SEvent& event); virtual void setVisible(bool visible); diff --git a/src/gui/guiConfirmRegistration.cpp b/src/gui/guiConfirmRegistration.cpp index 58ac42740..4a798c39b 100644 --- a/src/gui/guiConfirmRegistration.cpp +++ b/src/gui/guiConfirmRegistration.cpp @@ -73,7 +73,11 @@ void GUIConfirmRegistration::regenerateGui(v2u32 screensize) /* Calculate new sizes and positions */ +#ifdef __ANDROID__ + const float s = m_gui_scale * porting::getDisplayDensity() / 2; +#else const float s = m_gui_scale; +#endif DesiredRect = core::rect<s32>( screensize.X / 2 - 600 * s / 2, screensize.Y / 2 - 360 * s / 2, @@ -188,8 +192,7 @@ void GUIConfirmRegistration::acceptInput() bool GUIConfirmRegistration::processInput() { - std::wstring m_password_ws = narrow_to_wide(m_password); - if (m_password_ws != m_pass_confirm) { + if (utf8_to_wide(m_password) != m_pass_confirm) { gui::IGUIElement *e = getElementFromId(ID_message); if (e) e->setVisible(true); @@ -222,7 +225,7 @@ bool GUIConfirmRegistration::OnEvent(const SEvent &event) if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST && isVisible()) { if (!canTakeFocus(event.GUIEvent.Element)) { - dstream << "GUIConfirmRegistration: Not allowing focus change." + infostream << "GUIConfirmRegistration: Not allowing focus change." << std::endl; // Returning true disables focus change return true; @@ -257,12 +260,19 @@ bool GUIConfirmRegistration::getAndroidUIInput() if (!hasAndroidUIInput() || m_jni_field_name != "password") return false; - std::string text = porting::getInputDialogValue(); - gui::IGUIElement *e = getElementFromId(ID_confirmPassword); - if (e) - e->setText(utf8_to_wide(text).c_str()); + // still waiting + if (porting::getInputDialogState() == -1) + return true; m_jni_field_name.clear(); + + gui::IGUIElement *e = getElementFromId(ID_confirmPassword); + + if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX) + return false; + + std::string text = porting::getInputDialogValue(); + e->setText(utf8_to_wide(text).c_str()); return false; } #endif diff --git a/src/gui/guiEditBox.cpp b/src/gui/guiEditBox.cpp new file mode 100644 index 000000000..79979dbc3 --- /dev/null +++ b/src/gui/guiEditBox.cpp @@ -0,0 +1,911 @@ +/* +Minetest +Copyright (C) 2021 Minetest + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "guiEditBox.h" + +#include "IGUISkin.h" +#include "IGUIEnvironment.h" +#include "IGUIFont.h" + +#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<s32> ret; + + setTextRect(0); + ret = m_current_text_rect; + + for (u32 i = 1; i < m_broken_text.size(); ++i) { + setTextRect(i); + ret.addInternalPoint(m_current_text_rect.UpperLeftCorner); + ret.addInternalPoint(m_current_text_rect.LowerRightCorner); + } + + return core::dimension2du(ret.getSize()); +} + +//! Turns the border on or off +void GUIEditBox::setDrawBorder(bool border) +{ + m_border = border; +} + +void GUIEditBox::setWritable(bool can_write_text) +{ + m_writable = can_write_text; +} + +//! set text markers +void GUIEditBox::setTextMarkers(s32 begin, s32 end) +{ + if (begin != m_mark_begin || end != m_mark_end) { + m_mark_begin = begin; + m_mark_end = end; + sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); + } +} + +//! send some gui event to parent +void GUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type) +{ + if (Parent) { + SEvent e; + e.EventType = EET_GUI_EVENT; + e.GUIEvent.Caller = this; + e.GUIEvent.Element = 0; + e.GUIEvent.EventType = type; + + Parent->OnEvent(e); + } +} + +//! called if an event happened. +bool GUIEditBox::OnEvent(const SEvent &event) +{ + if (isEnabled()) { + + switch (event.EventType) { + case EET_GUI_EVENT: + if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) { + if (event.GUIEvent.Caller == this) { + m_mouse_marking = false; + setTextMarkers(0, 0); + } + } + break; + case EET_KEY_INPUT_EVENT: { +#if (defined(__linux__) || defined(__FreeBSD__)) || defined(__DragonFly__) + // ################################################################ + // ValkaTR: + // This part is the difference from the original intlGUIEditBox + // It converts UTF-8 character into a UCS-2 (wchar_t) + wchar_t wc = L'_'; + mbtowc(&wc, (char *)&event.KeyInput.Char, + sizeof(event.KeyInput.Char)); + + // printf( "char: %lc (%u) \r\n", wc, wc ); + + SEvent irrevent(event); + irrevent.KeyInput.Char = wc; + // ################################################################ + + if (processKey(irrevent)) + return true; +#else + if (processKey(event)) + return true; +#endif // defined(linux) + + break; + } + case EET_MOUSE_INPUT_EVENT: + if (processMouse(event)) + return true; + break; + default: + break; + } + } + + return IGUIElement::OnEvent(event); +} + +bool GUIEditBox::processKey(const SEvent &event) +{ + if (!m_writable) { + return false; + } + + if (!event.KeyInput.PressedDown) + return false; + + bool text_changed = false; + s32 new_mark_begin = m_mark_begin; + s32 new_mark_end = m_mark_end; + + // control shortcut handling + if (event.KeyInput.Control) { + + // german backlash '\' entered with control + '?' + if (event.KeyInput.Char == '\\') { + inputChar(event.KeyInput.Char); + return true; + } + + switch (event.KeyInput.Key) { + case KEY_KEY_A: + // select all + new_mark_begin = 0; + new_mark_end = Text.size(); + break; + case KEY_KEY_C: + onKeyControlC(event); + break; + case KEY_KEY_X: + text_changed = onKeyControlX(event, new_mark_begin, new_mark_end); + break; + case KEY_KEY_V: + text_changed = onKeyControlV(event, new_mark_begin, new_mark_end); + break; + case KEY_HOME: + // move/highlight to start of text + if (event.KeyInput.Shift) { + new_mark_end = m_cursor_pos; + new_mark_begin = 0; + m_cursor_pos = 0; + } else { + m_cursor_pos = 0; + new_mark_begin = 0; + new_mark_end = 0; + } + break; + case KEY_END: + // move/highlight to end of text + if (event.KeyInput.Shift) { + new_mark_begin = m_cursor_pos; + new_mark_end = Text.size(); + m_cursor_pos = 0; + } else { + m_cursor_pos = Text.size(); + new_mark_begin = 0; + new_mark_end = 0; + } + break; + default: + return false; + } + } else { + switch (event.KeyInput.Key) { + case KEY_END: { + s32 p = Text.size(); + if (m_word_wrap || m_multiline) { + p = getLineFromPos(m_cursor_pos); + p = m_broken_text_positions[p] + + (s32)m_broken_text[p].size(); + if (p > 0 && (Text[p - 1] == L'\r' || + Text[p - 1] == L'\n')) + p -= 1; + } + + if (event.KeyInput.Shift) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = p; + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + m_cursor_pos = p; + m_blink_start_time = porting::getTimeMs(); + } break; + case KEY_HOME: { + + s32 p = 0; + if (m_word_wrap || m_multiline) { + p = getLineFromPos(m_cursor_pos); + p = m_broken_text_positions[p]; + } + + if (event.KeyInput.Shift) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + new_mark_end = p; + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + m_cursor_pos = p; + m_blink_start_time = porting::getTimeMs(); + } break; + case KEY_RETURN: + if (m_multiline) { + inputChar(L'\n'); + } else { + calculateScrollPos(); + sendGuiEvent(EGET_EDITBOX_ENTER); + } + return true; + case KEY_LEFT: + if (event.KeyInput.Shift) { + if (m_cursor_pos > 0) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = m_cursor_pos - 1; + } + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + + if (m_cursor_pos > 0) + m_cursor_pos--; + m_blink_start_time = porting::getTimeMs(); + break; + case KEY_RIGHT: + if (event.KeyInput.Shift) { + if (Text.size() > (u32)m_cursor_pos) { + if (m_mark_begin == m_mark_end) + new_mark_begin = m_cursor_pos; + + new_mark_end = m_cursor_pos + 1; + } + } else { + new_mark_begin = 0; + new_mark_end = 0; + } + + if (Text.size() > (u32)m_cursor_pos) + m_cursor_pos++; + m_blink_start_time = porting::getTimeMs(); + break; + case KEY_UP: + if (!onKeyUp(event, new_mark_begin, new_mark_end)) { + return false; + } + break; + case KEY_DOWN: + if (!onKeyDown(event, new_mark_begin, new_mark_end)) { + return false; + } + break; + case KEY_BACK: + text_changed = onKeyBack(event, new_mark_begin, new_mark_end); + break; + + case KEY_DELETE: + text_changed = onKeyDelete(event, new_mark_begin, new_mark_end); + break; + + case KEY_ESCAPE: + case KEY_TAB: + case KEY_SHIFT: + case KEY_F1: + case KEY_F2: + case KEY_F3: + case KEY_F4: + case KEY_F5: + case KEY_F6: + case KEY_F7: + case KEY_F8: + case KEY_F9: + case KEY_F10: + case KEY_F11: + case KEY_F12: + case KEY_F13: + case KEY_F14: + case KEY_F15: + case KEY_F16: + case KEY_F17: + case KEY_F18: + case KEY_F19: + case KEY_F20: + case KEY_F21: + case KEY_F22: + case KEY_F23: + case KEY_F24: + // ignore these keys + return false; + + default: + inputChar(event.KeyInput.Char); + return true; + } + } + + // Set new text markers + setTextMarkers(new_mark_begin, new_mark_end); + + // break the text if it has changed + if (text_changed) { + breakText(); + sendGuiEvent(EGET_EDITBOX_CHANGED); + } + + calculateScrollPos(); + + return true; +} + +bool GUIEditBox::onKeyUp(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // clang-format off + if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { + s32 lineNo = getLineFromPos(m_cursor_pos); + s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : + (m_mark_begin > m_mark_end ? m_mark_begin : m_mark_end); + if (lineNo > 0) { + s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; + if ((s32)m_broken_text[lineNo - 1].size() < cp) { + m_cursor_pos = m_broken_text_positions[lineNo - 1] + + core::max_((u32)1, m_broken_text[lineNo - 1].size()) - 1; + } + else + m_cursor_pos = m_broken_text_positions[lineNo - 1] + cp; + } + + if (event.KeyInput.Shift) { + mark_begin = mb; + mark_end = m_cursor_pos; + } else { + mark_begin = 0; + mark_end = 0; + } + + return true; + } + + // clang-format on + return false; +} + +bool GUIEditBox::onKeyDown(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // clang-format off + if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) { + s32 lineNo = getLineFromPos(m_cursor_pos); + s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : + (m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end); + if (lineNo < (s32)m_broken_text.size() - 1) { + s32 cp = m_cursor_pos - m_broken_text_positions[lineNo]; + if ((s32)m_broken_text[lineNo + 1].size() < cp) { + m_cursor_pos = m_broken_text_positions[lineNo + 1] + + core::max_((u32)1, m_broken_text[lineNo + 1].size()) - 1; + } + else + m_cursor_pos = m_broken_text_positions[lineNo + 1] + cp; + } + + if (event.KeyInput.Shift) { + mark_begin = mb; + mark_end = m_cursor_pos; + } else { + mark_begin = 0; + mark_end = 0; + } + + return true; + } + + // clang-format on + return false; +} + +void GUIEditBox::onKeyControlC(const SEvent &event) +{ + // copy to clipboard + if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end) + return; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + core::stringc s; + s = Text.subString(realmbgn, realmend - realmbgn).c_str(); + m_operator->copyToClipboard(s.c_str()); +} + +bool GUIEditBox::onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + // First copy to clipboard + onKeyControlC(event); + + if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end) + return false; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + // Now remove from box if enabled + if (isEnabled()) { + // delete + core::stringw s; + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + mark_begin = 0; + mark_end = 0; + return true; + } + + return false; +} + +bool GUIEditBox::onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled()) + return false; + + // paste from the clipboard + if (!m_operator) + return false; + + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + // add new character + if (const c8 *p = m_operator->getTextFromClipboard()) { + if (m_mark_begin == m_mark_end) { + // insert text + core::stringw s = Text.subString(0, m_cursor_pos); + s.append(p); + s.append(Text.subString( + m_cursor_pos, Text.size() - m_cursor_pos)); + + if (!m_max || s.size() <= m_max) { + Text = s; + s = p; + m_cursor_pos += s.size(); + } + } else { + // replace text + + core::stringw s = Text.subString(0, realmbgn); + s.append(p); + s.append(Text.subString(realmend, Text.size() - realmend)); + + if (!m_max || s.size() <= m_max) { + Text = s; + s = p; + m_cursor_pos = realmbgn + s.size(); + } + } + } + + mark_begin = 0; + mark_end = 0; + return true; +} + +bool GUIEditBox::onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled() || Text.empty()) + return false; + + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // delete marked text + const s32 realmbgn = + m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = + m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + } else { + // delete text behind cursor + if (m_cursor_pos > 0) + s = Text.subString(0, m_cursor_pos - 1); + else + s = L""; + s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos)); + Text = s; + --m_cursor_pos; + } + + if (m_cursor_pos < 0) + m_cursor_pos = 0; + m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); + mark_begin = 0; + mark_end = 0; + return true; +} + +bool GUIEditBox::onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end) +{ + if (!isEnabled() || Text.empty()) + return false; + + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // delete marked text + const s32 realmbgn = + m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = + m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, realmbgn); + s.append(Text.subString(realmend, Text.size() - realmend)); + Text = s; + + m_cursor_pos = realmbgn; + } else { + // delete text before cursor + s = Text.subString(0, m_cursor_pos); + s.append(Text.subString( + m_cursor_pos + 1, Text.size() - m_cursor_pos - 1)); + Text = s; + } + + if (m_cursor_pos > (s32)Text.size()) + m_cursor_pos = (s32)Text.size(); + + m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime(); + mark_begin = 0; + mark_end = 0; + return true; +} + +void GUIEditBox::inputChar(wchar_t c) +{ + if (!isEnabled() || !m_writable) + return; + + if (c != 0) { + if (Text.size() < m_max || m_max == 0) { + core::stringw s; + + if (m_mark_begin != m_mark_end) { + // clang-format off + // replace marked text + s32 real_begin = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + s32 real_end = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; + + s = Text.subString(0, real_begin); + s.append(c); + s.append(Text.subString(real_end, Text.size() - real_end)); + Text = s; + m_cursor_pos = real_begin + 1; + // clang-format on + } else { + // add new character + s = Text.subString(0, m_cursor_pos); + s.append(c); + s.append(Text.subString(m_cursor_pos, + Text.size() - m_cursor_pos)); + Text = s; + ++m_cursor_pos; + } + + m_blink_start_time = porting::getTimeMs(); + setTextMarkers(0, 0); + } + } + breakText(); + sendGuiEvent(EGET_EDITBOX_CHANGED); + calculateScrollPos(); +} + +bool GUIEditBox::processMouse(const SEvent &event) +{ + switch (event.MouseInput.Event) { + 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<s32>( + 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..c616d75d1 --- /dev/null +++ b/src/gui/guiEditBox.h @@ -0,0 +1,220 @@ +/* +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 <vector> + +using namespace irr; +using namespace irr::gui; + +class GUIEditBox : public IGUIEditBox +{ +public: + GUIEditBox(IGUIEnvironment *environment, IGUIElement *parent, s32 id, + core::rect<s32> 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); + +protected: + virtual void breakText() = 0; + + //! sets the area of the given line + virtual void setTextRect(s32 line) = 0; + + //! set text markers + void setTextMarkers(s32 begin, s32 end); + + //! send some gui event to parent + void sendGuiEvent(EGUI_EVENT_TYPE type); + + //! calculates the current scroll position + virtual void calculateScrollPos() = 0; + + virtual s32 getCursorPos(s32 x, s32 y) = 0; + + bool processKey(const SEvent &event); + virtual void inputChar(wchar_t c); + + //! 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<core::stringw> m_broken_text; + std::vector<s32> 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<s32> m_current_text_rect = core::rect<s32>(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<s32> 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 442406688..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<s32>& 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<s32> 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<s32>(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(); @@ -1028,7 +328,7 @@ void GUIEditBoxWithScrollBar::breakText() s32 last_line_start = 0; s32 size = Text.size(); s32 length = 0; - s32 el_width = RelativeRect.getWidth() - 6; + s32 el_width = RelativeRect.getWidth() - m_scrollbar_width - 10; wchar_t c; for (s32 i = 0; i < size; ++i) { @@ -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() { @@ -1399,8 +622,6 @@ void GUIEditBoxWithScrollBar::createVScrollBar() m_scrollbar_width = skin ? skin->getSize(gui::EGDS_SCROLLBAR_SIZE) : 16; - RelativeRect.LowerRightCorner.X -= m_scrollbar_width + 4; - irr::core::rect<s32> scrollbarrect = m_frame_rect; scrollbarrect.UpperLeftCorner.X += m_frame_rect.getWidth() - m_scrollbar_width; m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1, @@ -1411,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) @@ -1477,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 <vector> +#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<core::stringw> m_broken_text; - std::vector<s32> m_broken_text_positions; - - core::rect<s32> 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 b40707d01..93463ad70 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -75,8 +75,6 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id) if (name.empty()) return NULL; - m_to_delete.insert(name); - #if ENABLE_GLES video::ITexture *retval = m_driver->findTexture(name.c_str()); if (retval) @@ -88,6 +86,7 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id) image = Align2Npot2(image, m_driver); retval = m_driver->addTexture(name.c_str(), image); + m_to_delete.insert(name); image->drop(); return retval; #else @@ -170,6 +169,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, m_menumanager, NULL /* &client */, m_texture_source, + m_sound_manager, m_formspecgui, m_buttonhandler, "", @@ -297,10 +297,14 @@ void GUIEngine::run() driver->endScene(); + IrrlichtDevice *device = RenderingEngine::get_raw_device(); + u32 frametime_min = 1000 / (device->isWindowFocused() + ? g_settings->getFloat("fps_max") + : g_settings->getFloat("fps_max_unfocused")); if (m_clouds_enabled) - cloudPostProcess(); + cloudPostProcess(frametime_min, device); else - sleep_ms(25); + sleep_ms(frametime_min); m_script->step(); @@ -367,9 +371,8 @@ void GUIEngine::cloudPreProcess() } /******************************************************************************/ -void GUIEngine::cloudPostProcess() +void GUIEngine::cloudPostProcess(u32 frametime_min, IrrlichtDevice *device) { - float fps_max = g_settings->getFloat("pause_fps_max"); // Time of frame without fps limit u32 busytime_u32; @@ -380,12 +383,10 @@ void GUIEngine::cloudPostProcess() else busytime_u32 = 0; - // FPS limiter - u32 frametime_min = 1000./fps_max; - + // FPS limit if (busytime_u32 < frametime_min) { u32 sleeptime = frametime_min - busytime_u32; - RenderingEngine::get_raw_device()->sleep(sleeptime); + device->sleep(sleeptime); } } @@ -484,8 +485,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<s32>(core::position2d<s32>(0,0), core::dimension2di(texture->getOriginalSize())), diff --git a/src/gui/guiEngine.h b/src/gui/guiEngine.h index e55531bbc..eef1ad8aa 100644 --- a/src/gui/guiEngine.h +++ b/src/gui/guiEngine.h @@ -23,29 +23,28 @@ with this program; if not, write to the Free Software Foundation, Inc., /* Includes */ /******************************************************************************/ #include "irrlichttypes.h" -#include "modalMenu.h" #include "guiFormSpecMenu.h" #include "client/sound.h" #include "client/tile.h" #include "util/enriched_string.h" /******************************************************************************/ -/* Typedefs and macros */ +/* Structs and macros */ /******************************************************************************/ /** texture layer ids */ -typedef enum { +enum texture_layer { TEX_LAYER_BACKGROUND = 0, TEX_LAYER_OVERLAY, TEX_LAYER_HEADER, TEX_LAYER_FOOTER, TEX_LAYER_MAX -} texture_layer; +}; -typedef struct { +struct image_definition { video::ITexture *texture = nullptr; bool tile; unsigned int minsize; -} image_definition; +}; /******************************************************************************/ /* forward declarations */ @@ -278,7 +277,7 @@ private: /** do preprocessing for cloud subsystem */ void cloudPreProcess(); /** do postprocessing for cloud subsystem */ - void cloudPostProcess(); + void cloudPostProcess(u32 frametime_min, IrrlichtDevice *device); /** internam data required for drawing clouds */ struct clouddata { diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 37edf3c4b..5aa6dc9ae 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -19,13 +19,12 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <cstdlib> +#include <cmath> #include <algorithm> #include <iterator> #include <limits> #include <sstream> #include "guiFormSpecMenu.h" -#include "guiScrollBar.h" -#include "guiTable.h" #include "constants.h" #include "gamedef.h" #include "client/keycode.h" @@ -50,6 +49,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "settings.h" #include "client/client.h" #include "client/fontengine.h" +#include "client/sound.h" #include "util/hex.h" #include "util/numeric.h" #include "util/string.h" // for parseColorString() @@ -64,15 +64,14 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "guiEditBoxWithScrollbar.h" #include "guiInventoryList.h" #include "guiItemImage.h" -#include "guiScrollBar.h" #include "guiScrollContainer.h" -#include "guiTable.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; \ } @@ -80,7 +79,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; \ } /* @@ -98,30 +97,24 @@ inline u32 clamp_u8(s32 value) GUIFormSpecMenu::GUIFormSpecMenu(JoystickController *joystick, gui::IGUIElement *parent, s32 id, IMenuManager *menumgr, - Client *client, ISimpleTextureSource *tsrc, IFormSource *fsrc, TextDest *tdst, - const std::string &formspecPrepend, - bool remap_dbl_click): - GUIModalMenu(RenderingEngine::get_gui_env(), parent, id, menumgr), + Client *client, ISimpleTextureSource *tsrc, ISoundManager *sound_manager, + IFormSource *fsrc, TextDest *tdst, + const std::string &formspecPrepend, bool remap_dbl_click): + GUIModalMenu(RenderingEngine::get_gui_env(), parent, id, menumgr, remap_dbl_click), m_invmgr(client), m_tsrc(tsrc), + m_sound_manager(sound_manager), m_client(client), m_formspec_prepend(formspecPrepend), m_form_src(fsrc), m_text_dst(tdst), - m_joystick(joystick), - m_remap_dbl_click(remap_dbl_click) + m_joystick(joystick) { current_keys_pending.key_down = false; current_keys_pending.key_up = false; current_keys_pending.key_enter = false; current_keys_pending.key_escape = false; - m_doubleclickdetect[0].time = 0; - m_doubleclickdetect[1].time = 0; - - m_doubleclickdetect[0].pos = v2s32(0, 0); - m_doubleclickdetect[1].pos = v2s32(0, 0); - m_tooltip_show_delay = (u32)g_settings->getS32("tooltip_show_delay"); m_tooltip_append_itemname = g_settings->getBool("tooltip_append_itemname"); } @@ -154,11 +147,12 @@ GUIFormSpecMenu::~GUIFormSpecMenu() void GUIFormSpecMenu::create(GUIFormSpecMenu *&cur_formspec, Client *client, JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest, - const std::string &formspecPrepend) + const std::string &formspecPrepend, ISoundManager *sound_manager) { if (cur_formspec == nullptr) { cur_formspec = new GUIFormSpecMenu(joystick, guiroot, -1, &g_menumgr, - client, client->getTextureSource(), fs_src, txt_dest, formspecPrepend); + client, client->getTextureSource(), sound_manager, fs_src, + txt_dest, formspecPrepend); cur_formspec->doPause = false; /* @@ -504,19 +498,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); + + v2f32 slot_scale = style.getVector2f(StyleSpec::SIZE, v2f32(0, 0)); + v2f32 slot_size( + slot_scale.X <= 0 ? imgsize.X : std::max<f32>(slot_scale.X * imgsize.X, 1), + slot_scale.Y <= 0 ? imgsize.Y : std::max<f32>(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); + v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos) : + getElementBasePos(&v_pos); core::rect<s32> rect = core::rect<s32>(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); @@ -625,9 +639,12 @@ void GUIFormSpecMenu::parseCheckbox(parserData* data, const std::string &element data->current_parent, spec.fid, spec.flabel.c_str()); auto style = getDefaultStyleForElement("checkbox", name); + + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); - if (spec.fname == data->focused_fieldname) { + if (spec.fname == m_focused_element) { Environment->setFocus(e); } @@ -703,6 +720,10 @@ void GUIFormSpecMenu::parseScrollBar(parserData* data, const std::string &elemen e->setPageSize(scrollbar_size * (max - min + 1) / data->scrollbar_options.thumb_size); + if (spec.fname == m_focused_element) { + Environment->setFocus(e); + } + m_scrollbars.emplace_back(spec,e); m_fields.push_back(spec); return; @@ -907,7 +928,7 @@ void GUIFormSpecMenu::parseAnimatedImage(parserData *data, const std::string &el core::rect<s32> rect = core::rect<s32>(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) @@ -1027,9 +1048,12 @@ void GUIFormSpecMenu::parseButton(parserData* data, const std::string &element, data->current_parent, spec.fid, spec.flabel.c_str()); auto style = getStyleForElement(type, name, (type != "button") ? "button" : ""); + + spec.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, ""); + e->setStyles(style); - if (spec.fname == data->focused_fieldname) { + if (spec.fname == m_focused_element) { Environment->setFocus(e); } @@ -1218,7 +1242,7 @@ void GUIFormSpecMenu::parseTable(parserData* data, const std::string &element) GUITable *e = new GUITable(Environment, data->current_parent, spec.fid, rect, m_tsrc); - if (spec.fname == data->focused_fieldname) { + if (spec.fname == m_focused_element) { Environment->setFocus(e); } @@ -1233,6 +1257,7 @@ void GUIFormSpecMenu::parseTable(parserData* data, const std::string &element) auto style = getDefaultStyleForElement("table", name); e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); + e->setOverrideFont(style.getFont()); m_tables.emplace_back(spec, e); m_fields.push_back(spec); @@ -1295,7 +1320,7 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element GUITable *e = new GUITable(Environment, data->current_parent, spec.fid, rect, m_tsrc); - if (spec.fname == data->focused_fieldname) { + if (spec.fname == m_focused_element) { Environment->setFocus(e); } @@ -1310,6 +1335,7 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element auto style = getDefaultStyleForElement("textlist", name); e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); + e->setOverrideFont(style.getFont()); m_tables.emplace_back(spec, e); m_fields.push_back(spec); @@ -1318,19 +1344,20 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element errorstream<< "Invalid textlist element(" << parts.size() << "): '" << element << "'" << std::endl; } - void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element) { - std::vector<std::string> parts = split(element,';'); + std::vector<std::string> parts = split(element, ';'); - if ((parts.size() == 5) || - ((parts.size() > 5) && (m_formspec_version > FORMSPEC_API_VERSION))) + if (parts.size() == 5 || parts.size() == 6 || + (parts.size() > 6 && m_formspec_version > FORMSPEC_API_VERSION)) { - std::vector<std::string> v_pos = split(parts[0],','); + std::vector<std::string> v_pos = split(parts[0], ','); std::string name = parts[2]; - std::vector<std::string> items = split(parts[3],','); - std::string str_initial_selection; - str_initial_selection = parts[4]; + std::vector<std::string> items = split(parts[3], ','); + std::string str_initial_selection = parts[4]; + + if (parts.size() >= 6 && is_yes(parts[5])) + m_dropdown_index_event[name] = true; MY_CHECKPOS("dropdown",0); @@ -1372,7 +1399,7 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element gui::IGUIComboBox *e = Environment->addComboBox(rect, data->current_parent, spec.fid); - if (spec.fname == data->focused_fieldname) { + if (spec.fname == m_focused_element) { Environment->setFocus(e); } @@ -1385,6 +1412,9 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element e->setSelected(stoi(str_initial_selection)-1); auto style = getDefaultStyleForElement("dropdown", name); + + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); m_fields.push_back(spec); @@ -1397,8 +1427,8 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element return; } - errorstream << "Invalid dropdown element(" << parts.size() << "): '" - << element << "'" << std::endl; + errorstream << "Invalid dropdown element(" << parts.size() << "): '" << element + << "'" << std::endl; } void GUIFormSpecMenu::parseFieldCloseOnEnter(parserData *data, const std::string &element) @@ -1414,8 +1444,8 @@ void GUIFormSpecMenu::parsePwdField(parserData* data, const std::string &element { std::vector<std::string> parts = split(element,';'); - if ((parts.size() == 4) || - ((parts.size() > 4) && (m_formspec_version > FORMSPEC_API_VERSION))) + if (parts.size() == 4 || + (parts.size() > 4 && m_formspec_version > FORMSPEC_API_VERSION)) { std::vector<std::string> v_pos = split(parts[0],','); std::vector<std::string> v_geom = split(parts[1],','); @@ -1459,7 +1489,7 @@ void GUIFormSpecMenu::parsePwdField(parserData* data, const std::string &element gui::IGUIEditBox *e = Environment->addEditBox(0, rect, true, data->current_parent, spec.fid); - if (spec.fname == data->focused_fieldname) { + if (spec.fname == m_focused_element) { Environment->setFocus(e); } @@ -1477,6 +1507,7 @@ void GUIFormSpecMenu::parsePwdField(parserData* data, const std::string &element e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); e->setDrawBorder(style.getBool(StyleSpec::BORDER, true)); e->setOverrideColor(style.getColor(StyleSpec::TEXTCOLOR, video::SColor(0xFFFFFFFF))); + e->setOverrideFont(style.getFont()); irr::SEvent evt; evt.EventType = EET_KEY_INPUT_EVENT; @@ -1536,7 +1567,7 @@ void GUIFormSpecMenu::createTextField(parserData *data, FieldSpec &spec, auto style = getDefaultStyleForElement(is_multiline ? "textarea" : "field", spec.fname); if (e) { - if (is_editable && spec.fname == data->focused_fieldname) + if (is_editable && spec.fname == m_focused_element) Environment->setFocus(e); if (is_multiline) { @@ -1560,6 +1591,7 @@ void GUIFormSpecMenu::createTextField(parserData *data, FieldSpec &spec, if (style.get(StyleSpec::BGCOLOR, "") == "transparent") { e->setDrawBackground(false); } + e->setOverrideFont(style.getFont()); e->drop(); } @@ -1743,12 +1775,16 @@ void GUIFormSpecMenu::parseHyperText(parserData *data, const std::string &elemen FieldSpec spec( name, - utf8_to_wide(unescape_string(text)), + translate_string(utf8_to_wide(unescape_string(text))), L"", 258 + m_fields.size() ); spec.ftype = f_HyperText; + + auto style = getDefaultStyleForElement("hypertext", spec.fname); + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + GUIHyperText *e = new GUIHyperText(spec.flabel.c_str(), Environment, data->current_parent, spec.fid, rect, m_client, m_tsrc); e->drop(); @@ -1773,6 +1809,11 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element) std::vector<std::string> lines = split(text, '\n'); + auto style = getDefaultStyleForElement("label", ""); + gui::IGUIFont *font = style.getFont(); + if (!font) + font = m_font; + for (unsigned int i = 0; i != lines.size(); i++) { std::wstring wlabel_colors = translate_string( utf8_to_wide(unescape_string(lines[i]))); @@ -1794,7 +1835,7 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element) rect = core::rect<s32>( pos.X, pos.Y, - pos.X + m_font->getDimension(wlabel_plain.c_str()).Width, + pos.X + font->getDimension(wlabel_plain.c_str()).Width, pos.Y + imgsize.Y); } else { @@ -1816,7 +1857,7 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element) rect = core::rect<s32>( pos.X, pos.Y - m_btn_height, - pos.X + m_font->getDimension(wlabel_plain.c_str()).Width, + pos.X + font->getDimension(wlabel_plain.c_str()).Width, pos.Y + m_btn_height); } @@ -1832,9 +1873,9 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element) spec.fid); e->setTextAlignment(gui::EGUIA_UPPERLEFT, gui::EGUIA_CENTER); - auto style = getDefaultStyleForElement("label", spec.fname); e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); e->setOverrideColor(style.getColor(StyleSpec::TEXTCOLOR, video::SColor(0xFFFFFFFF))); + e->setOverrideFont(font); m_fields.push_back(spec); @@ -1862,6 +1903,11 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen MY_CHECKPOS("vertlabel",1); + auto style = getDefaultStyleForElement("vertlabel", "", "label"); + gui::IGUIFont *font = style.getFont(); + if (!font) + font = m_font; + v2s32 pos; core::rect<s32> rect; @@ -1875,7 +1921,7 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen // isn't quite tall enough and cuts off the text. rect = core::rect<s32>(pos.X, pos.Y, pos.X + imgsize.X, - pos.Y + font_line_height(m_font) * + pos.Y + font_line_height(font) * (text.length() + 1)); } else { @@ -1887,7 +1933,7 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen rect = core::rect<s32>( pos.X, pos.Y+((imgsize.Y/2) - m_btn_height), pos.X+15, pos.Y + - font_line_height(m_font) * + font_line_height(font) * (text.length() + 1) + ((imgsize.Y/2) - m_btn_height)); } @@ -1912,9 +1958,9 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen rect, false, false, data->current_parent, spec.fid); e->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER); - auto style = getDefaultStyleForElement("vertlabel", spec.fname, "label"); e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); e->setOverrideColor(style.getColor(StyleSpec::TEXTCOLOR, video::SColor(0xFFFFFFFF))); + e->setOverrideFont(font); m_fields.push_back(spec); @@ -1985,12 +2031,14 @@ void GUIFormSpecMenu::parseImageButton(parserData* data, const std::string &elem GUIButtonImage *e = GUIButtonImage::addButton(Environment, rect, m_tsrc, data->current_parent, spec.fid, spec.flabel.c_str()); - if (spec.fname == data->focused_fieldname) { + if (spec.fname == m_focused_element) { Environment->setFocus(e); } auto style = getStyleForElement("image_button", spec.fname); + spec.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, ""); + // Override style properties with values specified directly in the element if (!image_name.empty()) style[StyleSpec::STATE_DEFAULT].set(StyleSpec::FGIMG, image_name); @@ -2098,11 +2146,10 @@ void GUIFormSpecMenu::parseTabHeader(parserData* data, const std::string &elemen irr::gui::EGUIA_UPPERLEFT, irr::gui::EGUIA_LOWERRIGHT); e->setTabHeight(geom.Y); - if (spec.fname == data->focused_fieldname) { - Environment->setFocus(e); - } - auto style = getDefaultStyleForElement("tabheader", name); + + spec.sound = style.get(StyleSpec::Property::SOUND, ""); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, true)); for (const std::string &button : buttons) { @@ -2191,9 +2238,12 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data, const std::string & item_name, m_client); auto style = getStyleForElement("item_image_button", spec_btn.fname, "image_button"); + + spec_btn.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, ""); + e_btn->setStyles(style); - if (spec_btn.fname == data->focused_fieldname) { + if (spec_btn.fname == m_focused_element) { Environment->setFocus(e_btn); } @@ -2208,16 +2258,16 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data, const std::string & void GUIFormSpecMenu::parseBox(parserData* data, const std::string &element) { - std::vector<std::string> parts = split(element,';'); + std::vector<std::string> parts = split(element, ';'); if ((parts.size() == 3) || ((parts.size() > 3) && (m_formspec_version > FORMSPEC_API_VERSION))) { - std::vector<std::string> v_pos = split(parts[0],','); - std::vector<std::string> v_geom = split(parts[1],','); + std::vector<std::string> v_pos = split(parts[0], ','); + std::vector<std::string> v_geom = split(parts[1], ','); - MY_CHECKPOS("box",0); - MY_CHECKGEOM("box",1); + MY_CHECKPOS("box", 0); + MY_CHECKGEOM("box", 1); v2s32 pos; v2s32 geom; @@ -2231,36 +2281,43 @@ void GUIFormSpecMenu::parseBox(parserData* data, const std::string &element) geom.Y = stof(v_geom[1]) * spacing.Y; } - video::SColor tmp_color; - - if (parseColorString(parts[2], tmp_color, false, 0x8C)) { - FieldSpec spec( - "", - L"", - L"", - 258 + m_fields.size(), - -2 - ); - spec.ftype = f_Box; + FieldSpec spec( + "", + L"", + L"", + 258 + m_fields.size(), + -2 + ); + spec.ftype = f_Box; - core::rect<s32> rect(pos, pos + geom); + auto style = getDefaultStyleForElement("box", spec.fname); - GUIBox *e = new GUIBox(Environment, data->current_parent, spec.fid, - rect, tmp_color); + video::SColor tmp_color; + std::array<video::SColor, 4> colors; + std::array<video::SColor, 4> bordercolors = {0x0, 0x0, 0x0, 0x0}; + std::array<s32, 4> borderwidths = {0, 0, 0, 0}; - auto style = getDefaultStyleForElement("box", spec.fname); - e->setNotClipped(style.getBool(StyleSpec::NOCLIP, m_formspec_version < 3)); + if (parseColorString(parts[2], tmp_color, true, 0x8C)) { + colors = {tmp_color, tmp_color, tmp_color, tmp_color}; + } else { + colors = style.getColorArray(StyleSpec::COLORS, {0x0, 0x0, 0x0, 0x0}); + bordercolors = style.getColorArray(StyleSpec::BORDERCOLORS, + {0x0, 0x0, 0x0, 0x0}); + borderwidths = style.getIntArray(StyleSpec::BORDERWIDTHS, {0, 0, 0, 0}); + } - e->drop(); + core::rect<s32> rect(pos, pos + geom); - m_fields.push_back(spec); + GUIBox *e = new GUIBox(Environment, data->current_parent, spec.fid, rect, + colors, bordercolors, borderwidths); + e->setNotClipped(style.getBool(StyleSpec::NOCLIP, m_formspec_version < 3)); + e->drop(); - } else { - errorstream<< "Invalid Box element(" << parts.size() << "): '" << element << "' INVALID COLOR" << std::endl; - } + m_fields.push_back(spec); return; } - errorstream<< "Invalid Box element(" << parts.size() << "): '" << element << "'" << std::endl; + errorstream << "Invalid Box element(" << parts.size() << "): '" << element + << "'" << std::endl; } void GUIFormSpecMenu::parseBackgroundColor(parserData* data, const std::string &element) @@ -2664,6 +2721,118 @@ bool GUIFormSpecMenu::parseStyle(parserData *data, const std::string &element, b return true; } +void GUIFormSpecMenu::parseSetFocus(const std::string &element) +{ + std::vector<std::string> parts = split(element, ';'); + + if (parts.size() <= 2 || + (parts.size() > 2 && m_formspec_version > FORMSPEC_API_VERSION)) + { + if (m_is_form_regenerated) + return; // Never focus on resizing + + bool force_focus = parts.size() >= 2 && is_yes(parts[1]); + if (force_focus || m_text_dst->m_formname != m_last_formname) + setFocus(parts[0]); + + return; + } + + errorstream << "Invalid set_focus element (" << parts.size() << "): '" << element + << "'" << std::endl; +} + +void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element) +{ + std::vector<std::string> parts = split(element, ';'); + + if (parts.size() < 5 || (parts.size() > 9 && + m_formspec_version <= FORMSPEC_API_VERSION)) { + errorstream << "Invalid model element (" << parts.size() << "): '" << element + << "'" << std::endl; + return; + } + + // Avoid length checks by resizing + if (parts.size() < 9) + parts.resize(9); + + std::vector<std::string> v_pos = split(parts[0], ','); + std::vector<std::string> v_geom = split(parts[1], ','); + std::string name = unescape_string(parts[2]); + std::string meshstr = unescape_string(parts[3]); + std::vector<std::string> textures = split(parts[4], ','); + std::vector<std::string> 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<std::string> frame_loop = split(parts[8], ','); + + MY_CHECKPOS("model", 0); + MY_CHECKGEOM("model", 1); + + v2s32 pos; + v2s32 geom; + + if (data->real_coordinates) { + pos = getRealCoordinateBasePos(v_pos); + geom = getRealCoordinateGeometry(v_geom); + } else { + pos = getElementBasePos(&v_pos); + geom.X = stof(v_geom[0]) * (float)imgsize.X; + geom.Y = stof(v_geom[1]) * (float)imgsize.Y; + } + + if (!data->explicit_size) + warningstream << "invalid use of model without a size[] element" << std::endl; + + scene::IAnimatedMesh *mesh = m_client->getMesh(meshstr); + + if (!mesh) { + errorstream << "Invalid model element: Unable to load mesh:" + << std::endl << "\t" << meshstr << std::endl; + return; + } + + FieldSpec spec( + name, + L"", + L"", + 258 + m_fields.size() + ); + + core::rect<s32> rect(pos, pos + geom); + + GUIScene *e = new GUIScene(Environment, RenderingEngine::get_scene_manager(), + data->current_parent, rect, spec.fid); + + auto meshnode = e->setMesh(mesh); + + for (u32 i = 0; i < textures.size() && i < meshnode->getMaterialCount(); ++i) + e->setTexture(i, m_tsrc->getTexture(unescape_string(textures[i]))); + + if (vec_rot.size() >= 2) + e->setRotation(v2f(stof(vec_rot[0]), stof(vec_rot[1]))); + + e->enableContinuousRotation(inf_rotation); + e->enableMouseControl(mousectrl); + + s32 frame_loop_begin = 0; + s32 frame_loop_end = 0x7FFFFFFF; + + if (frame_loop.size() == 2) { + frame_loop_begin = stoi(frame_loop[0]); + frame_loop_end = stoi(frame_loop[1]); + } + + e->setFrameLoop(frame_loop_begin, frame_loop_end); + + auto style = getStyleForElement("model", spec.fname); + e->setStyles(style); + e->drop(); + + m_fields.push_back(spec); +} + void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element) { //some prechecks @@ -2855,6 +3024,16 @@ void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element) return; } + if (type == "set_focus") { + parseSetFocus(description); + return; + } + + if (type == "model") { + parseModel(data, description); + return; + } + // Ignore others infostream << "Unknown DrawSpec: type=" << type << ", data=\"" << description << "\"" << std::endl; @@ -2862,36 +3041,38 @@ void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element) void GUIFormSpecMenu::regenerateGui(v2u32 screensize) { - /* useless to regenerate without a screensize */ + // Useless to regenerate without a screensize if ((screensize.X <= 0) || (screensize.Y <= 0)) { return; } parserData mydata; - //preserve tables - for (auto &m_table : m_tables) { - std::string tablename = m_table.first.fname; - GUITable *table = m_table.second; - mydata.table_dyndata[tablename] = table->getDynamicData(); - } - - //set focus - if (!m_focused_element.empty()) - mydata.focused_fieldname = m_focused_element; + // Preserve stuff only on same form, not on a new form. + if (m_text_dst->m_formname == m_last_formname) { + // Preserve tables/textlists + for (auto &m_table : m_tables) { + std::string tablename = m_table.first.fname; + GUITable *table = m_table.second; + mydata.table_dyndata[tablename] = table->getDynamicData(); + } - //preserve focus - gui::IGUIElement *focused_element = Environment->getFocus(); - if (focused_element && focused_element->getParent() == this) { - s32 focused_id = focused_element->getID(); - if (focused_id > 257) { - for (const GUIFormSpecMenu::FieldSpec &field : m_fields) { - if (field.fid == focused_id) { - mydata.focused_fieldname = field.fname; - break; + // Preserve focus + gui::IGUIElement *focused_element = Environment->getFocus(); + if (focused_element && focused_element->getParent() == this) { + s32 focused_id = focused_element->getID(); + if (focused_id > 257) { + for (const GUIFormSpecMenu::FieldSpec &field : m_fields) { + if (field.fid == focused_id) { + m_focused_element = field.fname; + break; + } } } } + } else { + // Don't keep old focus value + m_focused_element = ""; } // Remove children @@ -2940,6 +3121,8 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) theme_by_name.clear(); theme_by_type.clear(); m_clickthrough_elements.clear(); + field_close_on_enter.clear(); + m_dropdown_index_event.clear(); m_bgnonfullscreen = true; m_bgfullscreen = false; @@ -3079,42 +3262,42 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) // and default scaling (1.00). use_imgsize = 0.5555 * screen_dpi * gui_scaling; } else { - // In variable-size mode, we prefer to make the - // inventory image size 1/15 of screen height, - // multiplied by the gui_scaling config parameter. - // If the preferred size won't fit the whole - // form on the screen, either horizontally or - // vertically, then we scale it down to fit. - // (The magic numbers in the computation of what - // fits arise from the scaling factors in the - // following stanza, including the form border, - // help text space, and 0.1 inventory slot spare.) - // However, a minimum size is also set, that - // the image size can't be less than 0.3 inch - // multiplied by gui_scaling, even if this means - // the form doesn't fit the screen. + // Variables for the maximum imgsize that can fit in the screen. + double fitx_imgsize; + double fity_imgsize; + + // Pad the screensize with 5% of the screensize on all sides to ensure + // that even the largest formspecs don't touch the screen borders. + v2f padded_screensize( + mydata.screensize.X * 0.9f, + mydata.screensize.Y * 0.9f + ); + + if (mydata.real_coordinates) { + fitx_imgsize = padded_screensize.X / mydata.invsize.X; + fity_imgsize = padded_screensize.Y / mydata.invsize.Y; + } else { + // The maximum imgsize in the old coordinate system also needs to + // factor in padding and spacing along with 0.1 inventory slot spare + // and help text space, hence the magic numbers. + fitx_imgsize = padded_screensize.X / + ((5.0 / 4.0) * (0.5 + mydata.invsize.X)); + fity_imgsize = padded_screensize.Y / + ((15.0 / 13.0) * (0.85 + mydata.invsize.Y)); + } + #ifdef __ANDROID__ - // For mobile devices these magic numbers are - // different and forms should always use the - // maximum screen space available. - double prefer_imgsize = mydata.screensize.Y / 10 * gui_scaling; - double fitx_imgsize = mydata.screensize.X / - ((12.0 / 8.0) * (0.5 + mydata.invsize.X)); - double fity_imgsize = mydata.screensize.Y / - ((15.0 / 11.0) * (0.85 + mydata.invsize.Y)); - use_imgsize = MYMIN(prefer_imgsize, - MYMIN(fitx_imgsize, fity_imgsize)); + // In Android, the preferred imgsize should be larger to accommodate the + // smaller screensize. + double prefer_imgsize = padded_screensize.Y / 10 * gui_scaling; #else - double prefer_imgsize = mydata.screensize.Y / 15 * gui_scaling; - double fitx_imgsize = mydata.screensize.X / - ((5.0 / 4.0) * (0.5 + mydata.invsize.X)); - double fity_imgsize = mydata.screensize.Y / - ((15.0 / 13.0) * (0.85 * mydata.invsize.Y)); - double screen_dpi = RenderingEngine::getDisplayDensity() * 96; - double min_imgsize = 0.3 * screen_dpi * gui_scaling; - use_imgsize = MYMAX(min_imgsize, MYMIN(prefer_imgsize, - MYMIN(fitx_imgsize, fity_imgsize))); + // Desktop computers have more space, so try to fit 15 coordinates. + double prefer_imgsize = padded_screensize.Y / 15 * gui_scaling; #endif + // Try to use the preferred imgsize, but if that's bigger than the maximum + // size, use the maximum size. + use_imgsize = std::min(prefer_imgsize, + std::min(fitx_imgsize, fity_imgsize)); } // Everything else is scaled in proportion to the @@ -3250,8 +3433,8 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) } } - //set initial focus if parser didn't set it - focused_element = Environment->getFocus(); + // Set initial focus if parser didn't set it + gui::IGUIElement *focused_element = Environment->getFocus(); if (!focused_element || !isMyChild(focused_element) || focused_element->getType() == gui::EGUIET_TAB_CONTROL) @@ -3262,6 +3445,13 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) // legacy sorting if (m_formspec_version < 3) legacySortElements(legacy_sort_start); + + // Formname and regeneration setting + if (!m_is_form_regenerated) { + // Only set previous form name if we purposefully showed a new formspec + m_last_formname = m_text_dst->m_formname; + m_is_form_regenerated = true; + } } void GUIFormSpecMenu::legacySortElements(core::list<IGUIElement *>::Iterator from) @@ -3336,8 +3526,6 @@ bool GUIFormSpecMenu::getAndroidUIInput() GUIInventoryList::ItemSpec GUIFormSpecMenu::getItemAtPos(v2s32 p) const { - core::rect<s32> imgrect(0, 0, imgsize.X, imgsize.Y); - for (const GUIInventoryList *e : m_inventorylists) { s32 item_index = e->getItemIndexAtPos(p); if (item_index != -1) @@ -3379,6 +3567,7 @@ void GUIFormSpecMenu::drawMenu() const std::string &newform = m_form_src->getForm(); if (newform != m_formspec_string) { m_formspec_string = newform; + m_is_form_regenerated = false; regenerateGui(m_screensize_old); } } @@ -3435,10 +3624,14 @@ void GUIFormSpecMenu::drawMenu() e->setVisible(true); /* - Call base class - (This is where all the drawing happens.) + This is where all the drawing happens. */ - gui::IGUIElement::draw(); + core::list<IGUIElement*>::Iterator it = Children.begin(); + for (; it != Children.end(); ++it) + if ((*it)->isNotClipped() || + AbsoluteClippingRect.isRectCollided( + (*it)->getAbsolutePosition())) + (*it)->draw(); for (gui::IGUIElement *e : m_clickthrough_elements) e->setVisible(false); @@ -3544,7 +3737,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); @@ -3662,7 +3856,7 @@ ItemStack GUIFormSpecMenu::verifySelectedItem() return ItemStack(); } -void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no) +void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode) { if(m_text_dst) { @@ -3727,10 +3921,14 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no) } s32 selected = e->getSelected(); if (selected >= 0) { - std::vector<std::string> *dropdown_values = - getDropDownValues(s.fname); - if (dropdown_values && selected < (s32)dropdown_values->size()) { - fields[name] = (*dropdown_values)[selected]; + if (m_dropdown_index_event.find(s.fname) != + m_dropdown_index_event.end()) { + fields[name] = std::to_string(selected + 1); + } else { + std::vector<std::string> *dropdown_values = + getDropDownValues(s.fname); + if (dropdown_values && selected < (s32)dropdown_values->size()) + fields[name] = (*dropdown_values)[selected]; } } } else if (s.ftype == f_TabHeader) { @@ -3800,17 +3998,6 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no) } } -static bool isChild(gui::IGUIElement *tocheck, gui::IGUIElement *parent) -{ - while (tocheck) { - if (tocheck == parent) { - return true; - } - tocheck = tocheck->getParent(); - } - return false; -} - bool GUIFormSpecMenu::preprocessEvent(const SEvent& event) { // The IGUITabControl renders visually using the skin's selected @@ -3871,22 +4058,6 @@ bool GUIFormSpecMenu::preprocessEvent(const SEvent& event) } } - if (event.EventType == EET_MOUSE_INPUT_EVENT) { - s32 x = event.MouseInput.X; - s32 y = event.MouseInput.Y; - gui::IGUIElement *hovered = - Environment->getRootGUIElement()->getElementFromPoint( - core::position2d<s32>(x, y)); - if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) { - m_old_tooltip_id = -1; - } - if (!isChild(hovered, this)) { - if (DoubleClickDetection(event)) { - return true; - } - } - } - if (event.EventType == irr::EET_JOYSTICK_INPUT_EVENT) { /* TODO add a check like: if (event.JoystickEvent != joystick_we_listen_for) @@ -3909,64 +4080,6 @@ bool GUIFormSpecMenu::preprocessEvent(const SEvent& event) return GUIModalMenu::preprocessEvent(event); } -/******************************************************************************/ -bool GUIFormSpecMenu::DoubleClickDetection(const SEvent event) -{ - /* The following code is for capturing double-clicks of the mouse button - * and translating the double-click into an EET_KEY_INPUT_EVENT event - * -- which closes the form -- under some circumstances. - * - * There have been many github issues reporting this as a bug even though it - * was an intended feature. For this reason, remapping the double-click as - * an ESC must be explicitly set when creating this class via the - * /p remap_dbl_click parameter of the constructor. - */ - - if (!m_remap_dbl_click) - return false; - - if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) { - m_doubleclickdetect[0].pos = m_doubleclickdetect[1].pos; - m_doubleclickdetect[0].time = m_doubleclickdetect[1].time; - - m_doubleclickdetect[1].pos = m_pointer; - m_doubleclickdetect[1].time = porting::getTimeMs(); - } - else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) { - u64 delta = porting::getDeltaMs(m_doubleclickdetect[0].time, porting::getTimeMs()); - if (delta > 400) { - return false; - } - - double squaredistance = - m_doubleclickdetect[0].pos - .getDistanceFromSQ(m_doubleclickdetect[1].pos); - - if (squaredistance > (30*30)) { - return false; - } - - SEvent* translated = new SEvent(); - assert(translated != 0); - //translate doubleclick to escape - memset(translated, 0, sizeof(SEvent)); - translated->EventType = irr::EET_KEY_INPUT_EVENT; - translated->KeyInput.Key = KEY_ESCAPE; - translated->KeyInput.Control = false; - translated->KeyInput.Shift = false; - translated->KeyInput.PressedDown = true; - translated->KeyInput.Char = 0; - OnEvent(*translated); - - // no need to send the key up event as we're already deleted - // and no one else did notice this event - delete translated; - return true; - } - - return false; -} - void GUIFormSpecMenu::tryClose() { if (m_allowclose) { @@ -4429,6 +4542,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) for (GUIFormSpecMenu::FieldSpec &s : m_fields) { if ((s.ftype == f_TabHeader) && (s.fid == event.GUIEvent.Caller->getID())) { + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); s.send = true; acceptInput(); s.send = false; @@ -4472,6 +4587,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) continue; if (s.ftype == f_Button || s.ftype == f_CheckBox) { + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); + s.send = true; if (s.is_exit) { if (m_allowclose) { @@ -4494,6 +4612,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) s2.send = false; } } + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); s.send = true; acceptInput(quit_mode_no); @@ -4510,6 +4630,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) acceptInput(quit_mode_no); s.fdefault = L""; } else if (s.ftype == f_Unknown || s.ftype == f_HyperText) { + if (!s.sound.empty() && m_sound_manager) + m_sound_manager->playSound(s.sound, false, 1.0f); s.send = true; acceptInput(); s.send = false; diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h index 28088416d..d658aba7b 100644 --- a/src/gui/guiFormSpecMenu.h +++ b/src/gui/guiFormSpecMenu.h @@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "inventorymanager.h" #include "modalMenu.h" #include "guiInventoryList.h" +#include "guiScrollBar.h" #include "guiTable.h" #include "network/networkprotocol.h" #include "client/joystick_controller.h" @@ -37,11 +38,10 @@ with this program; if not, write to the Free Software Foundation, Inc., class InventoryManager; class ISimpleTextureSource; class Client; -class GUIScrollBar; -class TexturePool; class GUIScrollContainer; +class ISoundManager; -typedef enum { +enum FormspecFieldType { f_Button, f_Table, f_TabHeader, @@ -53,13 +53,13 @@ typedef enum { f_HyperText, f_AnimatedImage, f_Unknown -} FormspecFieldType; +}; -typedef enum { +enum FormspecQuitMode { quit_mode_no, quit_mode_accept, quit_mode_cancel -} FormspecQuitMode; +}; struct TextDest { @@ -128,6 +128,7 @@ class GUIFormSpecMenu : public GUIModalMenu int priority; core::rect<s32> rect; gui::ECURSOR_ICON fcursor_icon; + std::string sound; }; struct TooltipSpec @@ -152,6 +153,7 @@ public: IMenuManager *menumgr, Client *client, ISimpleTextureSource *tsrc, + ISoundManager *sound_manager, IFormSource* fs_src, TextDest* txt_dst, const std::string &formspecPrepend, @@ -161,13 +163,14 @@ public: static void create(GUIFormSpecMenu *&cur_formspec, Client *client, JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest, - const std::string &formspecPrepend); + const std::string &formspecPrepend, ISoundManager *sound_manager); void setFormSpec(const std::string &formspec_string, const InventoryLocation ¤t_inventory_location) { m_formspec_string = formspec_string; m_current_inventory_location = current_inventory_location; + m_is_form_regenerated = false; regenerateGui(m_screensize_old); } @@ -250,7 +253,7 @@ public: void updateSelectedItem(); ItemStack verifySelectedItem(); - void acceptInput(FormspecQuitMode quitmode); + void acceptInput(FormspecQuitMode quitmode=quit_mode_no); bool preprocessEvent(const SEvent& event); bool OnEvent(const SEvent& event); bool doPause; @@ -293,16 +296,22 @@ protected: InventoryManager *m_invmgr; ISimpleTextureSource *m_tsrc; + ISoundManager *m_sound_manager; Client *m_client; std::string m_formspec_string; std::string m_formspec_prepend; InventoryLocation m_current_inventory_location; + // Default true because we can't control regeneration on resizing, but + // we can control cases when the formspec is shown intentionally. + bool m_is_form_regenerated = true; + std::vector<GUIInventoryList *> m_inventorylists; std::vector<ListRingSpec> m_inventory_rings; std::vector<gui::IGUIElement *> m_backgrounds; std::unordered_map<std::string, bool> field_close_on_enter; + std::unordered_map<std::string, bool> m_dropdown_index_event; std::vector<FieldSpec> m_fields; std::vector<std::pair<FieldSpec, GUITable *>> m_tables; std::vector<std::pair<FieldSpec, gui::IGUICheckBox *>> m_checkboxes; @@ -338,16 +347,16 @@ protected: video::SColor m_default_tooltip_bgcolor; video::SColor m_default_tooltip_color; - private: IFormSource *m_form_src; TextDest *m_text_dst; + std::string m_last_formname; u16 m_formspec_version = 1; std::string m_focused_element = ""; JoystickController *m_joystick; bool m_show_debug = false; - typedef struct { + struct parserData { bool explicit_size; bool real_coordinates; u8 simple_field_count; @@ -358,7 +367,6 @@ private: core::rect<s32> rect; v2s32 basepos; v2u32 screensize; - std::string focused_fieldname; GUITable::TableOptions table_options; GUITable::TableColumns table_columns; gui::IGUIElement *current_parent = nullptr; @@ -376,16 +384,16 @@ private: // used to restore table selection/scroll/treeview state std::unordered_map<std::string, GUITable::DynamicData> table_dyndata; - } parserData; + }; - typedef struct { + struct fs_key_pending { bool key_up; bool key_down; bool key_enter; bool key_escape; - } fs_key_pendig; + }; - fs_key_pendig current_keys_pending; + fs_key_pending current_keys_pending; std::string current_field_enter_pending = ""; std::vector<std::string> m_hovered_item_tooltips; @@ -438,6 +446,8 @@ private: bool parseAnchorDirect(parserData *data, const std::string &element); void parseAnchor(parserData *data, const std::string &element); bool parseStyle(parserData *data, const std::string &element, bool style_type); + void parseSetFocus(const std::string &element); + void parseModel(parserData *data, const std::string &element); void tryClose(); @@ -451,30 +461,8 @@ private: */ void legacySortElements(core::list<IGUIElement *>::Iterator from); - /** - * check if event is part of a double click - * @param event event to evaluate - * @return true/false if a doubleclick was detected - */ - bool DoubleClickDetection(const SEvent event); - - struct clickpos - { - v2s32 pos; - s64 time; - }; - clickpos m_doubleclickdetect[2]; - int m_btn_height; gui::IGUIFont *m_font = nullptr; - - /* If true, remap a double-click (or double-tap) action to ESC. This is so - * that, for example, Android users can double-tap to close a formspec. - * - * This value can (currently) only be set by the class constructor - * and the default value for the setting is true. - */ - bool m_remap_dbl_click; }; class FormspecFormSource: public IFormSource 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 dfdb60448..183d72165 100644 --- a/src/gui/guiInventoryList.cpp +++ b/src/gui/guiInventoryList.cpp @@ -104,8 +104,6 @@ void GUIInventoryList::draw() && m_invmgr->getInventory(selected_item->inventoryloc) == inv && selected_item->listname == m_listname && selected_item->i == item_i; - core::rect<s32> 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 da0e25c23..4dcb47779 100644 --- a/src/gui/guiKeyChangeMenu.cpp +++ b/src/gui/guiKeyChangeMenu.cpp @@ -248,7 +248,7 @@ bool GUIKeyChangeMenu::acceptInput() { for (key_setting *k : key_settings) { std::string default_key; - g_settings->getDefaultNoEx(k->setting_name, default_key); + Settings::getLayer(SL_DEFAULTS)->getNoEx(k->setting_name, default_key); if (k->key.sym() != default_key) g_settings->set(k->setting_name, k->key.sym()); @@ -360,7 +360,7 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) { if (!canTakeFocus(event.GUIEvent.Element)) { - dstream << "GUIMainMenu: Not allowing focus change." + infostream << "GUIKeyChangeMenu: Not allowing focus change." << std::endl; // Returning true disables focus change return true; diff --git a/src/gui/guiMainMenu.h b/src/gui/guiMainMenu.h index 43a3b1a33..1dca8bf2d 100644 --- a/src/gui/guiMainMenu.h +++ b/src/gui/guiMainMenu.h @@ -20,7 +20,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once #include "irrlichttypes_extrabloated.h" -#include "modalMenu.h" #include <string> #include <list> diff --git a/src/gui/guiPasswordChange.cpp b/src/gui/guiPasswordChange.cpp index 965a2d6f7..74cd62f5b 100644 --- a/src/gui/guiPasswordChange.cpp +++ b/src/gui/guiPasswordChange.cpp @@ -79,7 +79,11 @@ void GUIPasswordChange::regenerateGui(v2u32 screensize) /* Calculate new sizes and positions */ +#ifdef __ANDROID__ + const float s = m_gui_scale * porting::getDisplayDensity() / 2; +#else const float s = m_gui_scale; +#endif DesiredRect = core::rect<s32>( screensize.X / 2 - 580 * s / 2, screensize.Y / 2 - 300 * s / 2, @@ -236,7 +240,7 @@ bool GUIPasswordChange::OnEvent(const SEvent &event) if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST && isVisible()) { if (!canTakeFocus(event.GUIEvent.Element)) { - dstream << "GUIPasswordChange: Not allowing focus change." + infostream << "GUIPasswordChange: Not allowing focus change." << std::endl; // Returning true disables focus change return true; @@ -289,6 +293,10 @@ bool GUIPasswordChange::getAndroidUIInput() if (!hasAndroidUIInput()) return false; + // still waiting + if (porting::getInputDialogState() == -1) + return true; + gui::IGUIElement *e = nullptr; if (m_jni_field_name == "old_password") e = getElementFromId(ID_oldPassword); @@ -296,12 +304,13 @@ bool GUIPasswordChange::getAndroidUIInput() e = getElementFromId(ID_newPassword1); else if (m_jni_field_name == "new_password_2") e = getElementFromId(ID_newPassword2); - - if (e) { - std::string text = porting::getInputDialogValue(); - e->setText(utf8_to_wide(text).c_str()); - } m_jni_field_name.clear(); + + if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX) + return false; + + std::string text = porting::getInputDialogValue(); + e->setText(utf8_to_wide(text).c_str()); return false; } #endif diff --git a/src/gui/guiScene.cpp b/src/gui/guiScene.cpp new file mode 100644 index 000000000..5f4c50b91 --- /dev/null +++ b/src/gui/guiScene.cpp @@ -0,0 +1,266 @@ +/* +Minetest +Copyright (C) 2020 Jean-Patrick Guerrero <jeanpatrick.guerrero@gmail.com> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "guiScene.h" + +#include <SViewFrustum.h> +#include <IAnimatedMeshSceneNode.h> +#include <ILightSceneNode.h> +#include "porting.h" + +GUIScene::GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr, + gui::IGUIElement *parent, core::recti rect, s32 id) + : IGUIElement(gui::EGUIET_ELEMENT, env, parent, id, rect) +{ + m_driver = env->getVideoDriver(); + m_smgr = smgr->createNewSceneManager(false); + + m_cam = m_smgr->addCameraSceneNode(0, v3f(0.f, 0.f, -100.f), v3f(0.f)); + m_cam->setFOV(30.f * core::DEGTORAD); + + scene::ILightSceneNode *light = m_smgr->addLightSceneNode(m_cam); + light->setRadius(1000.f); + + m_smgr->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true); +} + +GUIScene::~GUIScene() +{ + setMesh(nullptr); + + m_smgr->drop(); +} + +scene::IAnimatedMeshSceneNode *GUIScene::setMesh(scene::IAnimatedMesh *mesh) +{ + if (m_mesh) { + m_mesh->remove(); + m_mesh = nullptr; + } + + if (!mesh) + return nullptr; + + m_mesh = m_smgr->addAnimatedMeshSceneNode(mesh); + m_mesh->setPosition(-m_mesh->getBoundingBox().getCenter()); + m_mesh->animateJoints(); + return m_mesh; +} + +void GUIScene::setTexture(u32 idx, video::ITexture *texture) +{ + video::SMaterial &material = m_mesh->getMaterial(idx); + material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL; + material.MaterialTypeParam = 0.5f; + material.TextureLayer[0].Texture = texture; + material.setFlag(video::EMF_LIGHTING, false); + material.setFlag(video::EMF_FOG_ENABLE, true); + material.setFlag(video::EMF_BILINEAR_FILTER, false); + material.setFlag(video::EMF_BACK_FACE_CULLING, false); +} + +void GUIScene::draw() +{ + // Control rotation speed based on time + u64 new_time = porting::getTimeMs(); + u64 dtime_ms = 0; + if (m_last_time != 0) + dtime_ms = porting::getDeltaMs(m_last_time, new_time); + m_last_time = new_time; + + core::rect<s32> oldViewPort = m_driver->getViewPort(); + m_driver->setViewPort(getAbsoluteClippingRect()); + core::recti borderRect = Environment->getRootGUIElement()->getAbsoluteClippingRect(); + + if (m_bgcolor != 0) { + Environment->getSkin()->draw3DSunkenPane( + this, m_bgcolor, false, true, borderRect, 0); + } + + core::dimension2d<s32> size = getAbsoluteClippingRect().getSize(); + m_smgr->getActiveCamera()->setAspectRatio((f32)size.Width / (f32)size.Height); + + if (!m_target) { + updateCamera(m_smgr->addEmptySceneNode()); + rotateCamera(v3f(0.f)); + m_cam->bindTargetAndRotation(true); + } + + cameraLoop(); + + // Continuous rotation + if (m_inf_rot) + rotateCamera(v3f(0.f, -0.03f * (float)dtime_ms, 0.f)); + + m_smgr->drawAll(); + + if (m_initial_rotation && m_mesh) { + rotateCamera(v3f(m_custom_rot.X, m_custom_rot.Y, 0.f)); + calcOptimalDistance(); + + m_initial_rotation = false; + } + + m_driver->setViewPort(oldViewPort); +} + +bool GUIScene::OnEvent(const SEvent &event) +{ + if (m_mouse_ctrl && event.EventType == EET_MOUSE_INPUT_EVENT) { + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) { + m_last_pos = v2f((f32)event.MouseInput.X, (f32)event.MouseInput.Y); + return true; + } else if (event.MouseInput.Event == EMIE_MOUSE_MOVED) { + if (event.MouseInput.isLeftPressed()) { + m_curr_pos = v2f((f32)event.MouseInput.X, (f32)event.MouseInput.Y); + + rotateCamera(v3f( + m_last_pos.Y - m_curr_pos.Y, + m_curr_pos.X - m_last_pos.X, 0.f)); + + m_last_pos = m_curr_pos; + return true; + } + } + } + + return gui::IGUIElement::OnEvent(event); +} + +void GUIScene::setStyles(const std::array<StyleSpec, StyleSpec::NUM_STATES> &styles) +{ + StyleSpec::State state = StyleSpec::STATE_DEFAULT; + StyleSpec style = StyleSpec::getStyleFromStatePropagation(styles, state); + + setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); + setBackgroundColor(style.getColor(StyleSpec::BGCOLOR, m_bgcolor)); +} + +/** + * Sets the frame loop range for the mesh + */ +void GUIScene::setFrameLoop(s32 begin, s32 end) +{ + if (m_mesh->getStartFrame() != begin || m_mesh->getEndFrame() != end) + m_mesh->setFrameLoop(begin, end); +} + +/* Camera control functions */ + +inline void GUIScene::calcOptimalDistance() +{ + core::aabbox3df box = m_mesh->getBoundingBox(); + f32 width = box.MaxEdge.X - box.MinEdge.X; + f32 height = box.MaxEdge.Y - box.MinEdge.Y; + f32 depth = box.MaxEdge.Z - box.MinEdge.Z; + f32 max_width = width > depth ? width : depth; + + const scene::SViewFrustum *f = m_cam->getViewFrustum(); + f32 cam_far = m_cam->getFarValue(); + f32 far_width = core::line3df(f->getFarLeftUp(), f->getFarRightUp()).getLength(); + f32 far_height = core::line3df(f->getFarLeftUp(), f->getFarLeftDown()).getLength(); + + core::recti rect = getAbsolutePosition(); + f32 zoomX = rect.getWidth() / max_width; + f32 zoomY = rect.getHeight() / height; + f32 dist; + + if (zoomX < zoomY) + dist = (max_width / (far_width / cam_far)) + (0.5f * max_width); + else + dist = (height / (far_height / cam_far)) + (0.5f * max_width); + + m_cam_distance = dist; + m_update_cam = true; +} + +void GUIScene::updateCamera(scene::ISceneNode *target) +{ + m_target = target; + updateTargetPos(); + + m_last_target_pos = m_target_pos; + updateCameraPos(); + + m_update_cam = true; +} + +void GUIScene::updateTargetPos() +{ + m_last_target_pos = m_target_pos; + m_target->updateAbsolutePosition(); + m_target_pos = m_target->getAbsolutePosition(); +} + +void GUIScene::setCameraRotation(v3f rot) +{ + correctBounds(rot); + + core::matrix4 mat; + mat.setRotationDegrees(rot); + + m_cam_pos = v3f(0.f, 0.f, m_cam_distance); + mat.rotateVect(m_cam_pos); + + m_cam_pos += m_target_pos; + m_cam->setPosition(m_cam_pos); + m_update_cam = false; +} + +bool GUIScene::correctBounds(v3f &rot) +{ + const float ROTATION_MAX_1 = 60.0f; + const float ROTATION_MAX_2 = 300.0f; + + // Limit and correct the rotation when needed + if (rot.X < 90.f) { + if (rot.X > ROTATION_MAX_1) { + rot.X = ROTATION_MAX_1; + return true; + } + } else if (rot.X < ROTATION_MAX_2) { + rot.X = ROTATION_MAX_2; + return true; + } + + // Not modified + return false; +} + +void GUIScene::cameraLoop() +{ + updateCameraPos(); + updateTargetPos(); + + if (m_target_pos != m_last_target_pos) + m_update_cam = true; + + if (m_update_cam) { + m_cam_pos = m_target_pos + (m_cam_pos - m_target_pos).normalize() * m_cam_distance; + + v3f rot = getCameraRotation(); + if (correctBounds(rot)) + setCameraRotation(rot); + + m_cam->setPosition(m_cam_pos); + m_cam->setTarget(m_target_pos); + + m_update_cam = false; + } +} diff --git a/src/gui/guiScene.h b/src/gui/guiScene.h new file mode 100644 index 000000000..08eb7f350 --- /dev/null +++ b/src/gui/guiScene.h @@ -0,0 +1,86 @@ +/* +Minetest +Copyright (C) 2020 Jean-Patrick Guerrero <jeanpatrick.guerrero@gmail.com> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#pragma once + +#include "irrlichttypes_extrabloated.h" +#include "ICameraSceneNode.h" +#include "StyleSpec.h" + +using namespace irr; + +class GUIScene : public gui::IGUIElement +{ +public: + GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr, + gui::IGUIElement *parent, core::recti rect, s32 id = -1); + + ~GUIScene(); + + scene::IAnimatedMeshSceneNode *setMesh(scene::IAnimatedMesh *mesh = nullptr); + void setTexture(u32 idx, video::ITexture *texture); + void setBackgroundColor(const video::SColor &color) noexcept { m_bgcolor = color; }; + void setFrameLoop(s32 begin, s32 end); + void enableMouseControl(bool enable) noexcept { m_mouse_ctrl = enable; }; + void setRotation(v2f rot) noexcept { m_custom_rot = rot; }; + void enableContinuousRotation(bool enable) noexcept { m_inf_rot = enable; }; + void setStyles(const std::array<StyleSpec, StyleSpec::NUM_STATES> &styles); + + virtual void draw(); + virtual bool OnEvent(const SEvent &event); + +private: + void calcOptimalDistance(); + void updateTargetPos(); + void updateCamera(scene::ISceneNode *target); + void setCameraRotation(v3f rot); + /// @return true indicates that the rotation was corrected + bool correctBounds(v3f &rot); + void cameraLoop(); + + void updateCameraPos() { m_cam_pos = m_cam->getPosition(); }; + v3f getCameraRotation() const { return (m_cam_pos - m_target_pos).getHorizontalAngle(); }; + void rotateCamera(const v3f &delta) { setCameraRotation(getCameraRotation() + delta); }; + + scene::ISceneManager *m_smgr; + video::IVideoDriver *m_driver; + scene::ICameraSceneNode *m_cam; + scene::ISceneNode *m_target = nullptr; + scene::IAnimatedMeshSceneNode *m_mesh = nullptr; + + f32 m_cam_distance = 50.f; + + u64 m_last_time = 0; + + v3f m_cam_pos; + v3f m_target_pos; + v3f m_last_target_pos; + // Cursor positions + v2f m_curr_pos; + v2f m_last_pos; + // Initial rotation + v2f m_custom_rot; + + bool m_mouse_ctrl = true; + bool m_update_cam = false; + bool m_inf_rot = false; + bool m_initial_rotation = true; + + video::SColor m_bgcolor = 0; +}; diff --git a/src/gui/guiScrollBar.cpp b/src/gui/guiScrollBar.cpp index b04ccb9d5..c6a03f3e4 100644 --- a/src/gui/guiScrollBar.cpp +++ b/src/gui/guiScrollBar.cpp @@ -21,7 +21,7 @@ GUIScrollBar::GUIScrollBar(IGUIEnvironment *environment, IGUIElement *parent, s3 is_horizontal(horizontal), is_auto_scaling(auto_scale), dragged_by_slider(false), tray_clicked(false), scroll_pos(0), draw_center(0), thumb_size(0), min_pos(0), max_pos(100), small_step(10), - large_step(50), last_change(0), drag_offset(0), page_size(100), border_size(0) + large_step(50), drag_offset(0), page_size(100), border_size(0) { refreshControls(); setNotClipped(false); diff --git a/src/gui/guiScrollBar.h b/src/gui/guiScrollBar.h index 29493bb99..d18f8e875 100644 --- a/src/gui/guiScrollBar.h +++ b/src/gui/guiScrollBar.h @@ -68,7 +68,6 @@ private: s32 max_pos; s32 small_step; s32 large_step; - u32 last_change; s32 drag_offset; s32 page_size; s32 border_size; diff --git a/src/gui/guiScrollContainer.cpp b/src/gui/guiScrollContainer.cpp index 88cdc7057..0fe4c41bd 100644 --- a/src/gui/guiScrollContainer.cpp +++ b/src/gui/guiScrollContainer.cpp @@ -56,6 +56,18 @@ bool GUIScrollContainer::OnEvent(const SEvent &event) return IGUIElement::OnEvent(event); } +void GUIScrollContainer::draw() +{ + if (isVisible()) { + core::list<IGUIElement *>::Iterator it = Children.begin(); + for (; it != Children.end(); ++it) + if ((*it)->isNotClipped() || + AbsoluteClippingRect.isRectCollided( + (*it)->getAbsolutePosition())) + (*it)->draw(); + } +} + void GUIScrollContainer::updateScrolling() { s32 pos = m_scrollbar->getPos(); diff --git a/src/gui/guiScrollContainer.h b/src/gui/guiScrollContainer.h index a0306291e..9e3ec6e93 100644 --- a/src/gui/guiScrollContainer.h +++ b/src/gui/guiScrollContainer.h @@ -32,6 +32,8 @@ public: virtual bool OnEvent(const SEvent &event) override; + virtual void draw() override; + inline void onScrollEvent(gui::IGUIElement *caller) { if (caller == m_scrollbar) diff --git a/src/gui/guiSkin.cpp b/src/gui/guiSkin.cpp index 8892a00b4..e09209bd9 100644 --- a/src/gui/guiSkin.cpp +++ b/src/gui/guiSkin.cpp @@ -29,7 +29,7 @@ GUISkin::GUISkin(EGUI_SKIN_TYPE type, video::IVideoDriver* driver) {
Colors[EGDC_3D_DARK_SHADOW] = video::SColor(101,50,50,50);
Colors[EGDC_3D_SHADOW] = video::SColor(101,130,130,130);
- Colors[EGDC_3D_FACE] = video::SColor(101,210,210,210);
+ Colors[EGDC_3D_FACE] = video::SColor(220,100,100,100);
Colors[EGDC_3D_HIGH_LIGHT] = video::SColor(101,255,255,255);
Colors[EGDC_3D_LIGHT] = video::SColor(101,210,210,210);
Colors[EGDC_ACTIVE_BORDER] = video::SColor(101,16,14,115);
diff --git a/src/gui/guiTable.cpp b/src/gui/guiTable.cpp index c705e17fb..cab2e19fd 100644 --- a/src/gui/guiTable.cpp +++ b/src/gui/guiTable.cpp @@ -56,7 +56,7 @@ GUITable::GUITable(gui::IGUIEnvironment *env, m_font = skin->getFont(); if (m_font) { m_font->grab(); - m_rowheight = m_font->getDimension(L"A").Height + 4; + m_rowheight = m_font->getDimension(L"Ay").Height + 4; m_rowheight = MYMAX(m_rowheight, 1); } @@ -586,6 +586,31 @@ void GUITable::setSelected(s32 index) } } +void GUITable::setOverrideFont(IGUIFont *font) +{ + if (m_font == font) + return; + + if (font == nullptr) + font = Environment->getSkin()->getFont(); + + if (m_font) + m_font->drop(); + + m_font = font; + m_font->grab(); + + m_rowheight = m_font->getDimension(L"Ay").Height + 4; + m_rowheight = MYMAX(m_rowheight, 1); + + updateScrollBar(); +} + +IGUIFont *GUITable::getOverrideFont() const +{ + return m_font; +} + GUITable::DynamicData GUITable::getDynamicData() const { DynamicData dyndata; diff --git a/src/gui/guiTable.h b/src/gui/guiTable.h index 11093ea72..76a0e94d0 100644 --- a/src/gui/guiTable.h +++ b/src/gui/guiTable.h @@ -123,6 +123,12 @@ public: // Autoscroll to make the selected row fully visible void setSelected(s32 index); + //! Sets another skin independent font. If this is set to zero, the button uses the font of the skin. + virtual void setOverrideFont(gui::IGUIFont *font = nullptr); + + //! Gets the override font (if any) + virtual gui::IGUIFont *getOverrideFont() const; + /* Get selection, scroll position and opened (sub)trees */ DynamicData getDynamicData() const; diff --git a/src/gui/guiVolumeChange.cpp b/src/gui/guiVolumeChange.cpp index 07b11248c..f17cfa986 100644 --- a/src/gui/guiVolumeChange.cpp +++ b/src/gui/guiVolumeChange.cpp @@ -171,7 +171,7 @@ bool GUIVolumeChange::OnEvent(const SEvent& event) if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST && isVisible()) { if (!canTakeFocus(event.GUIEvent.Element)) { - dstream << "GUIMainMenu: Not allowing focus change." + infostream << "GUIVolumeChange: Not allowing focus change." << std::endl; // Returning true disables focus change return true; diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp index 10395423c..0f09ea746 100644 --- a/src/gui/intlGUIEditBox.cpp +++ b/src/gui/intlGUIEditBox.cpp @@ -59,9 +59,7 @@ namespace gui intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, IGUIEnvironment* environment, IGUIElement* parent, s32 id, const core::rect<s32>& 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) + : GUIEditBox(environment, parent, id, rectangle, border, writable) { #ifdef _DEBUG setDebugName("intlintlGUIEditBox"); @@ -70,10 +68,10 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, Text = text; if (Environment) - Operator = Environment->getOSOperator(); + m_operator = Environment->getOSOperator(); - if (Operator) - Operator->grab(); + if (m_operator) + m_operator->grab(); // this element can be tabbed to setTabStop(true); @@ -82,12 +80,12 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, IGUISkin *skin = 0; if (Environment) skin = Environment->getSkin(); - if (Border && skin) + if (m_border && skin) { - FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; } if (skin && has_vscrollbar) { @@ -104,96 +102,11 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border, 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<s32> oldAbsoluteRect(AbsoluteRect); @@ -205,557 +118,6 @@ void intlGUIEditBox::updateAbsolutePosition() } -//! Checks if word wrap is enabled -bool intlGUIEditBox::isWordWrapEnabled() const -{ - return WordWrap; -} - - -//! Enables or disables newlines. -void intlGUIEditBox::setMultiLine(bool enable) -{ - MultiLine = enable; -} - - -//! Checks if multi line editing is enabled -bool intlGUIEditBox::isMultiLineEnabled() const -{ - return MultiLine; -} - - -void intlGUIEditBox::setPasswordBox(bool passwordBox, wchar_t passwordChar) -{ - PasswordBox = passwordBox; - 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() { @@ -768,31 +130,31 @@ void intlGUIEditBox::draw() if (!skin) return; - FrameRect = AbsoluteRect; + m_frame_rect = AbsoluteRect; // draw the border - if (Border) + if (m_border) { if (m_writable) { skin->draw3DSunkenPane(this, skin->getColor(EGDC_WINDOW), - false, true, FrameRect, &AbsoluteClippingRect); + false, true, m_frame_rect, &AbsoluteClippingRect); } - FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; - FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; - FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; + m_frame_rect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1; + m_frame_rect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1; } updateVScrollBar(); - core::rect<s32> localClipRect = FrameRect; + core::rect<s32> localClipRect = m_frame_rect; localClipRect.clipAgainst(AbsoluteClippingRect); // draw the text - IGUIFont* font = OverrideFont; - if (!OverrideFont) + IGUIFont* font = m_override_font; + if (!m_override_font) font = skin->getFont(); s32 cursorLine = 0; @@ -800,7 +162,7 @@ void intlGUIEditBox::draw() if (font) { - if (LastBreakFont != font) + if (m_last_break_font != font) { breakText(); } @@ -813,23 +175,23 @@ void intlGUIEditBox::draw() 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 bool ml = (!m_passwordbox && (m_word_wrap || m_multiline)); + const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end; + const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin; const s32 hlineStart = ml ? getLineFromPos(realmbgn) : 0; const s32 hlineCount = ml ? getLineFromPos(realmend) - hlineStart + 1 : 1; - const s32 lineCount = ml ? BrokenText.size() : 1; + const s32 lineCount = ml ? m_broken_text.size() : 1; // Save the override color information. // Then, alter it if the edit box is disabled. - const bool prevOver = OverrideColorEnabled; - const video::SColor prevColor = OverrideColor; + const bool prevOver = m_override_color_enabled; + const video::SColor prevColor = m_override_color; if (!Text.empty()) { - if (!IsEnabled && !OverrideColorEnabled) + if (!IsEnabled && !m_override_color_enabled) { - OverrideColorEnabled = true; - OverrideColor = skin->getColor(EGDC_GRAY_TEXT); + m_override_color_enabled = true; + m_override_color = skin->getColor(EGDC_GRAY_TEXT); } for (s32 i=0; i < lineCount; ++i) @@ -838,43 +200,43 @@ void intlGUIEditBox::draw() // clipping test - don't draw anything outside the visible area core::rect<s32> c = localClipRect; - c.clipAgainst(CurrentTextRect); + c.clipAgainst(m_current_text_rect); if (!c.isValid()) continue; // get current line - if (PasswordBox) + if (m_passwordbox) { - if (BrokenText.size() != 1) + if (m_broken_text.size() != 1) { - BrokenText.clear(); - BrokenText.push_back(core::stringw()); + m_broken_text.clear(); + m_broken_text.emplace_back(); } - if (BrokenText[0].size() != Text.size()) + if (m_broken_text[0].size() != Text.size()) { - BrokenText[0] = Text; + m_broken_text[0] = Text; for (u32 q = 0; q < Text.size(); ++q) { - BrokenText[0] [q] = PasswordChar; + m_broken_text[0] [q] = m_passwordchar; } } - txtLine = &BrokenText[0]; + txtLine = &m_broken_text[0]; startPos = 0; } else { - txtLine = ml ? &BrokenText[i] : &Text; - startPos = ml ? BrokenTextPositions[i] : 0; + txtLine = ml ? &m_broken_text[i] : &Text; + startPos = ml ? m_broken_text_positions[i] : 0; } // draw normal text - font->draw(txtLine->c_str(), CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT), + font->draw(txtLine->c_str(), m_current_text_rect, + m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT), false, true, &localClipRect); // draw mark and marked text - if (focus && MarkBegin != MarkEnd && i >= hlineStart && i < hlineStart + hlineCount) + if (focus && m_mark_begin != m_mark_end && i >= hlineStart && i < hlineStart + hlineCount) { s32 mbegin = 0, mend = 0; @@ -903,47 +265,47 @@ void intlGUIEditBox::draw() else mend = font->getDimension(txtLine->c_str()).Width; - CurrentTextRect.UpperLeftCorner.X += mbegin; - CurrentTextRect.LowerRightCorner.X = CurrentTextRect.UpperLeftCorner.X + mend - mbegin; + m_current_text_rect.UpperLeftCorner.X += mbegin; + m_current_text_rect.LowerRightCorner.X = m_current_text_rect.UpperLeftCorner.X + mend - mbegin; // draw mark - skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), CurrentTextRect, &localClipRect); + skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), m_current_text_rect, &localClipRect); // draw marked text s = txtLine->subString(lineStartPos, lineEndPos - lineStartPos); if (!s.empty()) - font->draw(s.c_str(), CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_HIGH_LIGHT_TEXT), + font->draw(s.c_str(), m_current_text_rect, + m_override_color_enabled ? m_override_color : skin->getColor(EGDC_HIGH_LIGHT_TEXT), false, true, &localClipRect); } } // Return the override color information to its previous settings. - OverrideColorEnabled = prevOver; - OverrideColor = prevColor; + m_override_color_enabled = prevOver; + m_override_color = prevColor; } // draw cursor - if (WordWrap || MultiLine) + if (m_word_wrap || m_multiline) { - cursorLine = getLineFromPos(CursorPos); - txtLine = &BrokenText[cursorLine]; - startPos = BrokenTextPositions[cursorLine]; + cursorLine = getLineFromPos(m_cursor_pos); + txtLine = &m_broken_text[cursorLine]; + startPos = m_broken_text_positions[cursorLine]; } - s = txtLine->subString(0,CursorPos-startPos); + s = txtLine->subString(0,m_cursor_pos-startPos); charcursorpos = font->getDimension(s.c_str()).Width + - font->getKerningWidth(L"_", CursorPos-startPos > 0 ? &((*txtLine)[CursorPos-startPos-1]) : 0); + font->getKerningWidth(L"_", m_cursor_pos-startPos > 0 ? &((*txtLine)[m_cursor_pos-startPos-1]) : 0); if (m_writable) { - if (focus && (porting::getTimeMs() - BlinkStartTime) % 700 < 350) { + if (focus && (porting::getTimeMs() - m_blink_start_time) % 700 < 350) { setTextRect(cursorLine); - CurrentTextRect.UpperLeftCorner.X += charcursorpos; + m_current_text_rect.UpperLeftCorner.X += charcursorpos; - font->draw(L"_", CurrentTextRect, - OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT), + font->draw(L"_", m_current_text_rect, + m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT), false, true, &localClipRect); } } @@ -954,154 +316,11 @@ void intlGUIEditBox::draw() } -//! Sets the new caption of this element. -void intlGUIEditBox::setText(const wchar_t* text) -{ - Text = text; - if (u32(CursorPos) > Text.size()) - CursorPos = Text.size(); - HScrollPos = 0; - breakText(); -} - - -//! 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<s32> 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<s32>(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(); + IGUIFont* font = getActiveFont(); - const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1; + const u32 lineCount = (m_word_wrap || m_multiline) ? m_broken_text.size() : 1; core::stringw *txtLine = NULL; s32 startPos = 0; @@ -1110,29 +329,29 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y) for (; curr_line_idx < lineCount; ++curr_line_idx) { setTextRect(curr_line_idx); - if (curr_line_idx == 0 && y < CurrentTextRect.UpperLeftCorner.Y) - y = CurrentTextRect.UpperLeftCorner.Y; - if (curr_line_idx == lineCount - 1 && y > CurrentTextRect.LowerRightCorner.Y) - y = CurrentTextRect.LowerRightCorner.Y; + if (curr_line_idx == 0 && y < m_current_text_rect.UpperLeftCorner.Y) + y = m_current_text_rect.UpperLeftCorner.Y; + if (curr_line_idx == lineCount - 1 && y > m_current_text_rect.LowerRightCorner.Y) + y = m_current_text_rect.LowerRightCorner.Y; // is it inside this region? - if (y >= CurrentTextRect.UpperLeftCorner.Y && y <= CurrentTextRect.LowerRightCorner.Y) { + if (y >= m_current_text_rect.UpperLeftCorner.Y && y <= m_current_text_rect.LowerRightCorner.Y) { // we've found the clicked line - txtLine = (WordWrap || MultiLine) ? &BrokenText[curr_line_idx] : &Text; - startPos = (WordWrap || MultiLine) ? BrokenTextPositions[curr_line_idx] : 0; + txtLine = (m_word_wrap || m_multiline) ? &m_broken_text[curr_line_idx] : &Text; + startPos = (m_word_wrap || m_multiline) ? m_broken_text_positions[curr_line_idx] : 0; break; } } - if (x < CurrentTextRect.UpperLeftCorner.X) - x = CurrentTextRect.UpperLeftCorner.X; - else if (x > CurrentTextRect.LowerRightCorner.X) - x = CurrentTextRect.LowerRightCorner.X; + if (x < m_current_text_rect.UpperLeftCorner.X) + x = m_current_text_rect.UpperLeftCorner.X; + else if (x > m_current_text_rect.LowerRightCorner.X) + x = m_current_text_rect.LowerRightCorner.X; - s32 idx = font->getCharacterFromPos(txtLine->c_str(), x - CurrentTextRect.UpperLeftCorner.X); + s32 idx = font->getCharacterFromPos(txtLine->c_str(), x - m_current_text_rect.UpperLeftCorner.X); // Special handling for last line, if we are on limits, add 1 extra shift because idx // will be the last char, not null char of the wstring - if (curr_line_idx == lineCount - 1 && x == CurrentTextRect.LowerRightCorner.X) + if (curr_line_idx == lineCount - 1 && x == m_current_text_rect.LowerRightCorner.X) idx++; return rangelim(idx + startPos, 0, S32_MAX); @@ -1144,20 +363,20 @@ void intlGUIEditBox::breakText() { IGUISkin* skin = Environment->getSkin(); - if ((!WordWrap && !MultiLine) || !skin) + if ((!m_word_wrap && !m_multiline) || !skin) return; - BrokenText.clear(); // need to reallocate :/ - BrokenTextPositions.set_used(0); + m_broken_text.clear(); // need to reallocate :/ + m_broken_text_positions.clear(); - IGUIFont* font = OverrideFont; - if (!OverrideFont) + IGUIFont* font = m_override_font; + if (!m_override_font) font = skin->getFont(); if (!font) return; - LastBreakFont = font; + m_last_break_font = font; core::stringw line; core::stringw word; @@ -1165,7 +384,7 @@ void intlGUIEditBox::breakText() s32 lastLineStart = 0; s32 size = Text.size(); s32 length = 0; - s32 elWidth = RelativeRect.getWidth() - 6; + s32 elWidth = RelativeRect.getWidth() - m_scrollbar_width - 10; wchar_t c; for (s32 i=0; i<size; ++i) @@ -1190,7 +409,7 @@ void intlGUIEditBox::breakText() } // don't break if we're not a multi-line edit box - if (!MultiLine) + if (!m_multiline) lineBreak = false; if (c == L' ' || c == 0 || i == (size-1)) @@ -1201,12 +420,12 @@ void intlGUIEditBox::breakText() s32 whitelgth = font->getDimension(whitespace.c_str()).Width; s32 worldlgth = font->getDimension(word.c_str()).Width; - if (WordWrap && length + worldlgth + whitelgth > elWidth) + if (m_word_wrap && length + worldlgth + whitelgth > elWidth) { // break to next line length = worldlgth; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); + m_broken_text.push_back(line); + m_broken_text_positions.push_back(lastLineStart); lastLineStart = i - (s32)word.size(); line = word; } @@ -1229,8 +448,8 @@ void intlGUIEditBox::breakText() { line += whitespace; line += word; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); + m_broken_text.push_back(line); + m_broken_text_positions.push_back(lastLineStart); lastLineStart = i+1; line = L""; word = L""; @@ -1247,8 +466,8 @@ void intlGUIEditBox::breakText() line += whitespace; line += word; - BrokenText.push_back(line); - BrokenTextPositions.push_back(lastLineStart); + m_broken_text.push_back(line); + m_broken_text_positions.push_back(lastLineStart); } @@ -1260,16 +479,16 @@ void intlGUIEditBox::setTextRect(s32 line) if (!skin) return; - IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont(); + IGUIFont* font = m_override_font ? m_override_font : skin->getFont(); if (!font) return; // get text dimension - const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1; - if (WordWrap || MultiLine) + const u32 lineCount = (m_word_wrap || m_multiline) ? m_broken_text.size() : 1; + if (m_word_wrap || m_multiline) { - d = font->getDimension(BrokenText[line].c_str()); + d = font->getDimension(m_broken_text[line].c_str()); } else { @@ -1279,197 +498,112 @@ void intlGUIEditBox::setTextRect(s32 line) d.Height += font->getKerningHeight(); // justification - switch (HAlign) + switch (m_halign) { case EGUIA_CENTER: // align to h centre - CurrentTextRect.UpperLeftCorner.X = (FrameRect.getWidth()/2) - (d.Width/2); - CurrentTextRect.LowerRightCorner.X = (FrameRect.getWidth()/2) + (d.Width/2); + m_current_text_rect.UpperLeftCorner.X = (m_frame_rect.getWidth()/2) - (d.Width/2); + m_current_text_rect.LowerRightCorner.X = (m_frame_rect.getWidth()/2) + (d.Width/2); break; case EGUIA_LOWERRIGHT: // align to right edge - CurrentTextRect.UpperLeftCorner.X = FrameRect.getWidth() - d.Width; - CurrentTextRect.LowerRightCorner.X = FrameRect.getWidth(); + m_current_text_rect.UpperLeftCorner.X = m_frame_rect.getWidth() - d.Width; + m_current_text_rect.LowerRightCorner.X = m_frame_rect.getWidth(); break; default: // align to left edge - CurrentTextRect.UpperLeftCorner.X = 0; - CurrentTextRect.LowerRightCorner.X = d.Width; + m_current_text_rect.UpperLeftCorner.X = 0; + m_current_text_rect.LowerRightCorner.X = d.Width; } - switch (VAlign) + switch (m_valign) { case EGUIA_CENTER: // align to v centre - CurrentTextRect.UpperLeftCorner.Y = - (FrameRect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line; + m_current_text_rect.UpperLeftCorner.Y = + (m_frame_rect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line; break; case EGUIA_LOWERRIGHT: // align to bottom edge - CurrentTextRect.UpperLeftCorner.Y = - FrameRect.getHeight() - lineCount*d.Height + d.Height*line; + m_current_text_rect.UpperLeftCorner.Y = + m_frame_rect.getHeight() - lineCount*d.Height + d.Height*line; break; default: // align to top edge - CurrentTextRect.UpperLeftCorner.Y = d.Height*line; + m_current_text_rect.UpperLeftCorner.Y = d.Height*line; break; } - CurrentTextRect.UpperLeftCorner.X -= HScrollPos; - CurrentTextRect.LowerRightCorner.X -= HScrollPos; - CurrentTextRect.UpperLeftCorner.Y -= VScrollPos; - CurrentTextRect.LowerRightCorner.Y = CurrentTextRect.UpperLeftCorner.Y + d.Height; - - 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; + m_current_text_rect.UpperLeftCorner.X -= m_hscroll_pos; + m_current_text_rect.LowerRightCorner.X -= m_hscroll_pos; + m_current_text_rect.UpperLeftCorner.Y -= m_vscroll_pos; + m_current_text_rect.LowerRightCorner.Y = m_current_text_rect.UpperLeftCorner.Y + d.Height; - 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; - } + m_current_text_rect += m_frame_rect.UpperLeftCorner; - BlinkStartTime = porting::getTimeMs(); - setTextMarkers(0, 0); - } - } - breakText(); - sendGuiEvent(EGET_EDITBOX_CHANGED); - calculateScrollPos(); } - void intlGUIEditBox::calculateScrollPos() { - if (!AutoScroll) + if (!m_autoscroll) return; // calculate horizontal scroll position - s32 cursLine = getLineFromPos(CursorPos); + s32 cursLine = getLineFromPos(m_cursor_pos); setTextRect(cursLine); // don't do horizontal scrolling when wordwrap is enabled. - if (!WordWrap) + if (!m_word_wrap) { // get cursor position IGUISkin* skin = Environment->getSkin(); if (!skin) return; - IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont(); + IGUIFont* font = m_override_font ? m_override_font : skin->getFont(); if (!font) return; - core::stringw *txtLine = MultiLine ? &BrokenText[cursLine] : &Text; - s32 cPos = MultiLine ? CursorPos - BrokenTextPositions[cursLine] : CursorPos; + core::stringw *txtLine = m_multiline ? &m_broken_text[cursLine] : &Text; + s32 cPos = m_multiline ? m_cursor_pos - m_broken_text_positions[cursLine] : m_cursor_pos; - s32 cStart = CurrentTextRect.UpperLeftCorner.X + HScrollPos + + s32 cStart = m_current_text_rect.UpperLeftCorner.X + m_hscroll_pos + font->getDimension(txtLine->subString(0, cPos).c_str()).Width; s32 cEnd = cStart + font->getDimension(L"_ ").Width; - if (FrameRect.LowerRightCorner.X < cEnd) - HScrollPos = cEnd - FrameRect.LowerRightCorner.X; - else if (FrameRect.UpperLeftCorner.X > cStart) - HScrollPos = cStart - FrameRect.UpperLeftCorner.X; + if (m_frame_rect.LowerRightCorner.X < cEnd) + m_hscroll_pos = cEnd - m_frame_rect.LowerRightCorner.X; + else if (m_frame_rect.UpperLeftCorner.X > cStart) + m_hscroll_pos = cStart - m_frame_rect.UpperLeftCorner.X; else - HScrollPos = 0; + m_hscroll_pos = 0; // todo: adjust scrollbar } - if (!WordWrap && !MultiLine) + if (!m_word_wrap && !m_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 + if (m_frame_rect.LowerRightCorner.Y < m_current_text_rect.LowerRightCorner.Y) + m_vscroll_pos += m_current_text_rect.LowerRightCorner.Y - m_frame_rect.LowerRightCorner.Y; // scrolling downwards + else if (m_frame_rect.UpperLeftCorner.Y > m_current_text_rect.UpperLeftCorner.Y) + m_vscroll_pos += m_current_text_rect.UpperLeftCorner.Y - m_frame_rect.UpperLeftCorner.Y; // scrolling upwards // todo: adjust scrollbar if (m_vscrollbar) - m_vscrollbar->setPos(VScrollPos); + m_vscrollbar->setPos(m_vscroll_pos); } -//! set text markers -void intlGUIEditBox::setTextMarkers(s32 begin, s32 end) -{ - if ( begin != MarkBegin || end != MarkEnd ) - { - MarkBegin = begin; - MarkEnd = end; - sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED); - } -} - -//! send some gui event to parent -void intlGUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type) -{ - if ( Parent ) - { - SEvent e; - e.EventType = EET_GUI_EVENT; - e.GUIEvent.Caller = this; - e.GUIEvent.Element = 0; - e.GUIEvent.EventType = type; - - Parent->OnEvent(e); - } -} //! Create a vertical scrollbar void intlGUIEditBox::createVScrollBar() { s32 fontHeight = 1; - if (OverrideFont) { - fontHeight = OverrideFont->getDimension(L"").Height; + if (m_override_font) { + fontHeight = m_override_font->getDimension(L"").Height; } else { if (IGUISkin* skin = Environment->getSkin()) { if (IGUIFont* font = skin->getFont()) { @@ -1478,10 +612,8 @@ void intlGUIEditBox::createVScrollBar() } } - RelativeRect.LowerRightCorner.X -= m_scrollbar_width + 4; - - irr::core::rect<s32> scrollbarrect = FrameRect; - scrollbarrect.UpperLeftCorner.X += FrameRect.getWidth() - m_scrollbar_width; + irr::core::rect<s32> scrollbarrect = m_frame_rect; + scrollbarrect.UpperLeftCorner.X += m_frame_rect.getWidth() - m_scrollbar_width; m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1, scrollbarrect, false, true); @@ -1490,110 +622,5 @@ void intlGUIEditBox::createVScrollBar() m_vscrollbar->setLargeStep(10 * fontHeight); } -//! Update the vertical scrollbar (visibilty & scroll position) -void intlGUIEditBox::updateVScrollBar() -{ - if (!m_vscrollbar) - return; - - // OnScrollBarChanged(...) - if (m_vscrollbar->getPos() != VScrollPos) { - s32 deltaScrollY = m_vscrollbar->getPos() - VScrollPos; - CurrentTextRect.UpperLeftCorner.Y -= deltaScrollY; - CurrentTextRect.LowerRightCorner.Y -= deltaScrollY; - - s32 scrollymax = getTextDimension().Height - FrameRect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - // manage a newline or a deleted line - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - calculateScrollPos(); - } else { - // manage a newline or a deleted line - VScrollPos = m_vscrollbar->getPos(); - } - } - - // check if a vertical scrollbar is needed ? - if (getTextDimension().Height > (u32) FrameRect.getHeight()) { - s32 scrollymax = getTextDimension().Height - FrameRect.getHeight(); - if (scrollymax != m_vscrollbar->getMax()) { - m_vscrollbar->setMax(scrollymax); - m_vscrollbar->setPageSize(s32(getTextDimension().Height)); - } - - if (!m_vscrollbar->isVisible() && 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 index 9d643495e..007fe1c93 100644 --- a/src/gui/intlGUIEditBox.h +++ b/src/gui/intlGUIEditBox.h @@ -7,16 +7,15 @@ #include "IrrCompileConfig.h" //#ifdef _IRR_COMPILE_WITH_GUI_ -#include <IGUIEditBox.h> +#include "guiEditBox.h" #include "irrArray.h" #include "IOSOperator.h" -#include "guiScrollBar.h" namespace irr { namespace gui { - class intlGUIEditBox : public IGUIEditBox + class intlGUIEditBox : public GUIEditBox { public: @@ -26,113 +25,19 @@ namespace gui 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; + virtual ~intlGUIEditBox() {} //! Sets whether to draw the background virtual void setDrawBackground(bool draw); virtual bool isDrawBackgroundEnabled() const { return true; } - //! Turns the border on or off - virtual void setDrawBorder(bool border); - - virtual bool isDrawBorderEnabled() const { return Border; } - - //! 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'|'; } @@ -143,64 +48,17 @@ namespace gui protected: //! Breaks the single text line. - void breakText(); + virtual void breakText(); //! sets the area of the given line - void setTextRect(s32 line); - //! returns the line number that the cursor is on - 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(); - //! 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<core::stringw> BrokenText; - core::array<s32> BrokenTextPositions; - - core::rect<s32> CurrentTextRect = core::rect<s32>(0,0,1,1); - core::rect<s32> FrameRect; // temporary values - u32 m_scrollbar_width; - GUIScrollBar *m_vscrollbar; - bool m_writable; - }; diff --git a/src/gui/modalMenu.cpp b/src/gui/modalMenu.cpp index a6fe7ebaf..0d3fb55f0 100644 --- a/src/gui/modalMenu.cpp +++ b/src/gui/modalMenu.cpp @@ -28,14 +28,16 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "touchscreengui.h" #endif -GUIModalMenu::GUIModalMenu(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id, - IMenuManager *menumgr) : +// clang-format off +GUIModalMenu::GUIModalMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, + s32 id, IMenuManager *menumgr, bool remap_dbl_click) : IGUIElement(gui::EGUIET_ELEMENT, env, parent, id, core::rect<s32>(0, 0, 100, 100)), #ifdef __ANDROID__ m_jni_field_name(""), #endif - m_menumgr(menumgr) + m_menumgr(menumgr), + m_remap_dbl_click(remap_dbl_click) { m_gui_scale = g_settings->getFloat("gui_scaling"); #ifdef __ANDROID__ @@ -45,6 +47,12 @@ GUIModalMenu::GUIModalMenu(gui::IGUIEnvironment *env, gui::IGUIElement *parent, setVisible(true); Environment->setFocus(this); m_menumgr->createdMenu(this); + + m_doubleclickdetect[0].time = 0; + m_doubleclickdetect[1].time = 0; + + m_doubleclickdetect[0].pos = v2s32(0, 0); + m_doubleclickdetect[1].pos = v2s32(0, 0); } // clang-format on @@ -112,6 +120,127 @@ void GUIModalMenu::removeChildren() } } +// clang-format off +bool GUIModalMenu::DoubleClickDetection(const SEvent &event) +{ + /* The following code is for capturing double-clicks of the mouse button + * and translating the double-click into an EET_KEY_INPUT_EVENT event + * -- which closes the form -- under some circumstances. + * + * There have been many github issues reporting this as a bug even though it + * was an intended feature. For this reason, remapping the double-click as + * an ESC must be explicitly set when creating this class via the + * /p remap_dbl_click parameter of the constructor. + */ + + if (!m_remap_dbl_click) + return false; + + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) { + m_doubleclickdetect[0].pos = m_doubleclickdetect[1].pos; + m_doubleclickdetect[0].time = m_doubleclickdetect[1].time; + + m_doubleclickdetect[1].pos = m_pointer; + m_doubleclickdetect[1].time = porting::getTimeMs(); + } else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) { + u64 delta = porting::getDeltaMs( + m_doubleclickdetect[0].time, porting::getTimeMs()); + if (delta > 400) + return false; + + double squaredistance = m_doubleclickdetect[0].pos. + getDistanceFromSQ(m_doubleclickdetect[1].pos); + + if (squaredistance > (30 * 30)) { + return false; + } + + SEvent translated{}; + // translate doubleclick to escape + translated.EventType = EET_KEY_INPUT_EVENT; + translated.KeyInput.Key = KEY_ESCAPE; + translated.KeyInput.Control = false; + translated.KeyInput.Shift = false; + translated.KeyInput.PressedDown = true; + translated.KeyInput.Char = 0; + OnEvent(translated); + + return true; + } + + return false; +} +// clang-format on + +static bool isChild(gui::IGUIElement *tocheck, gui::IGUIElement *parent) +{ + while (tocheck) { + if (tocheck == parent) { + return true; + } + tocheck = tocheck->getParent(); + } + 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__ @@ -159,92 +288,66 @@ 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(); - - if (!root) { - errorstream << "GUIModalMenu::preprocessEvent" - << " unable to get root element" << std::endl; - return false; - } - gui::IGUIElement *hovered = - root->getElementFromPoint(core::position2d<s32>( - event.TouchInput.X, event.TouchInput.Y)); + irr_ptr<GUIModalMenu> holder; + holder.grab(this); // keep this alive until return (it might be dropped downstream [?]) - 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<s32>(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 + + if (event.EventType == EET_MOUSE_INPUT_EVENT) { + s32 x = event.MouseInput.X; + s32 y = event.MouseInput.Y; + gui::IGUIElement *hovered = + Environment->getRootGUIElement()->getElementFromPoint( + core::position2d<s32>(x, y)); + if (!isChild(hovered, this)) { + if (DoubleClickDetection(event)) { + return true; + } + } + } return false; } diff --git a/src/gui/modalMenu.h b/src/gui/modalMenu.h index 5bd70bb84..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; @@ -39,7 +40,7 @@ class GUIModalMenu : public gui::IGUIElement { public: GUIModalMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, - IMenuManager *menumgr); + IMenuManager *menumgr, bool remap_dbl_click = true); virtual ~GUIModalMenu(); void allowFocusRemoval(bool allow); @@ -50,8 +51,8 @@ public: virtual void regenerateGui(v2u32 screensize) = 0; virtual void drawMenu() = 0; - virtual bool preprocessEvent(const SEvent& event); - virtual bool OnEvent(const SEvent& event) { return false; }; + virtual bool preprocessEvent(const SEvent &event); + virtual bool OnEvent(const SEvent &event) { return false; }; virtual bool pausesGame() { return false; } // Used for pause menu #ifdef __ANDROID__ virtual bool getAndroidUIInput() { return false; } @@ -62,6 +63,13 @@ protected: virtual std::wstring getLabelByID(s32 id) = 0; virtual std::string getNameByID(s32 id) = 0; + /** + * check if event is part of a double click + * @param event event to evaluate + * @return true/false if a doubleclick was detected + */ + bool DoubleClickDetection(const SEvent &event); + v2s32 m_pointer; v2s32 m_old_pointer; // Mouse position after previous mouse event v2u32 m_screensize_old; @@ -73,9 +81,32 @@ protected: #ifdef HAVE_TOUCHSCREENGUI bool m_touchscreen_visible = true; #endif + private: + struct clickpos + { + v2s32 pos; + s64 time; + }; + clickpos m_doubleclickdetect[2]; + IMenuManager *m_menumgr; + /* If true, remap a double-click (or double-tap) action to ESC. This is so + * that, for example, Android users can double-tap to close a formspec. + * + * This value can (currently) only be set by the class constructor + * and the default value for the setting is true. + */ + bool m_remap_dbl_click; // 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<gui::IGUIElement> 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..e1a971462 100644 --- a/src/gui/touchscreengui.cpp +++ b/src/gui/touchscreengui.cpp @@ -881,8 +881,7 @@ void TouchScreenGUI::translateEvent(const SEvent &event) s32 dyj = event.TouchInput.Y - m_screensize.Y + button_size * 5.0f / 2.0f; bool inside_joystick = (dxj * dxj + dyj * dyj <= button_size * button_size * 1.5 * 1.5); - if (m_joystick_has_really_moved || - (!m_joystick_has_really_moved && inside_joystick) || + if (m_joystick_has_really_moved || inside_joystick || (!m_fixed_joystick && distance_sq > m_touchscreen_threshold * m_touchscreen_threshold)) { m_joystick_has_really_moved = true; diff --git a/src/gui/touchscreengui.h b/src/gui/touchscreengui.h index 761d33207..0349624fa 100644 --- a/src/gui/touchscreengui.h +++ b/src/gui/touchscreengui.h @@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #pragma once +#include "irrlichttypes.h" #include <IEventReceiver.h> #include <IGUIButton.h> #include <IGUIEnvironment.h> diff --git a/src/httpfetch.cpp b/src/httpfetch.cpp index 326b5052f..65202ce3e 100644 --- a/src/httpfetch.cpp +++ b/src/httpfetch.cpp @@ -294,13 +294,11 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_, curl_easy_setopt(curl, CURLOPT_WRITEDATA, &oss); } - // Set POST (or GET) data - if (request.post_fields.empty() && request.post_data.empty()) { - curl_easy_setopt(curl, CURLOPT_HTTPGET, 1); - } else if (request.multipart) { + // Set data from fields or raw_data + if (request.multipart) { curl_httppost *last = NULL; - for (StringMap::iterator it = request.post_fields.begin(); - it != request.post_fields.end(); ++it) { + for (StringMap::iterator it = request.fields.begin(); + it != request.fields.end(); ++it) { curl_formadd(&post, &last, CURLFORM_NAMELENGTH, it->first.size(), CURLFORM_PTRNAME, it->first.c_str(), @@ -311,28 +309,42 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_, curl_easy_setopt(curl, CURLOPT_HTTPPOST, post); // request.post_fields must now *never* be // modified until CURLOPT_HTTPPOST is cleared - } else if (request.post_data.empty()) { - curl_easy_setopt(curl, CURLOPT_POST, 1); - std::string str; - for (auto &post_field : request.post_fields) { - if (!str.empty()) - str += "&"; - str += urlencode(post_field.first); - str += "="; - str += urlencode(post_field.second); - } - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, - str.size()); - curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, - str.c_str()); } else { - curl_easy_setopt(curl, CURLOPT_POST, 1); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, - request.post_data.size()); - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, - request.post_data.c_str()); - // request.post_data must now *never* be - // modified until CURLOPT_POSTFIELDS is cleared + switch (request.method) { + case HTTP_GET: + curl_easy_setopt(curl, CURLOPT_HTTPGET, 1); + break; + case HTTP_POST: + curl_easy_setopt(curl, CURLOPT_POST, 1); + break; + case HTTP_PUT: + curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT"); + break; + case HTTP_DELETE: + curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE"); + break; + } + if (request.method != HTTP_GET) { + if (!request.raw_data.empty()) { + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, + request.raw_data.size()); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, + request.raw_data.c_str()); + } else if (!request.fields.empty()) { + std::string str; + for (auto &field : request.fields) { + if (!str.empty()) + str += "&"; + str += urlencode(field.first); + str += "="; + str += urlencode(field.second); + } + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, + str.size()); + curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, + str.c_str()); + } + } } // Set additional HTTP headers for (const std::string &extra_header : request.extra_headers) { diff --git a/src/httpfetch.h b/src/httpfetch.h index ae8b5afb5..3b9f17f0a 100644 --- a/src/httpfetch.h +++ b/src/httpfetch.h @@ -28,6 +28,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #define HTTPFETCH_DISCARD 0 #define HTTPFETCH_SYNC 1 +// Methods +enum HttpMethod : u8 +{ + HTTP_GET, + HTTP_POST, + HTTP_PUT, + HTTP_DELETE, +}; + struct HTTPFetchRequest { std::string url = ""; @@ -50,12 +59,15 @@ struct HTTPFetchRequest // application/x-www-form-urlencoded. POST-only. bool multipart = false; - // POST fields. Fields are escaped properly. - // If this is empty a GET request is done instead. - StringMap post_fields; + // The Method to use default = GET + // Avaible methods GET, POST, PUT, DELETE + HttpMethod method = HTTP_GET; + + // Fields of the request + StringMap fields; - // Raw POST data, overrides post_fields. - std::string post_data; + // Raw data of the request overrides fields + std::string raw_data; // If not empty, should contain entries such as "Accept: text/html" std::vector<std::string> extra_headers; diff --git a/src/hud.cpp b/src/hud.cpp index 3079b5cd8..1791e04df 100644 --- a/src/hud.cpp +++ b/src/hud.cpp @@ -28,6 +28,8 @@ const struct EnumString es_HudElementType[] = {HUD_ELEM_INVENTORY, "inventory"}, {HUD_ELEM_WAYPOINT, "waypoint"}, {HUD_ELEM_IMAGE_WAYPOINT, "image_waypoint"}, + {HUD_ELEM_COMPASS, "compass"}, + {HUD_ELEM_MINIMAP, "minimap"}, {0, NULL}, }; @@ -40,6 +42,7 @@ const struct EnumString es_HudElementStat[] = {HUD_STAT_TEXT, "text"}, {HUD_STAT_NUMBER, "number"}, {HUD_STAT_ITEM, "item"}, + {HUD_STAT_ITEM, "precision"}, {HUD_STAT_DIR, "direction"}, {HUD_STAT_ALIGN, "alignment"}, {HUD_STAT_OFFSET, "offset"}, @@ -51,7 +51,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #define HUD_HOTBAR_ITEMCOUNT_DEFAULT 8 #define HUD_HOTBAR_ITEMCOUNT_MAX 32 - #define HOTBAR_IMAGE_SIZE 48 enum HudElementType { @@ -60,7 +59,9 @@ enum HudElementType { HUD_ELEM_STATBAR = 2, HUD_ELEM_INVENTORY = 3, HUD_ELEM_WAYPOINT = 4, - HUD_ELEM_IMAGE_WAYPOINT = 5 + HUD_ELEM_IMAGE_WAYPOINT = 5, + HUD_ELEM_COMPASS = 6, + HUD_ELEM_MINIMAP = 7 }; enum HudElementStat { @@ -79,6 +80,13 @@ enum HudElementStat { HUD_STAT_TEXT2, }; +enum HudCompassDir { + HUD_COMPASS_ROTATE = 0, + HUD_COMPASS_ROTATE_REVERSE, + HUD_COMPASS_TRANSLATE, + HUD_COMPASS_TRANSLATE_REVERSE, +}; + struct HudElement { HudElementType type; v2f pos; @@ -100,3 +108,12 @@ extern const EnumString es_HudElementType[]; extern const EnumString es_HudElementStat[]; extern const EnumString es_HudBuiltinElement[]; +// Minimap stuff + +enum MinimapType { + MINIMAP_TYPE_OFF, + MINIMAP_TYPE_SURFACE, + MINIMAP_TYPE_RADAR, + MINIMAP_TYPE_TEXTURE, +}; + diff --git a/src/inventory.cpp b/src/inventory.cpp index 349ee503d..1ef9b13cd 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -258,6 +258,20 @@ std::string ItemStack::getDescription(IItemDefManager *itemdef) const return desc.empty() ? name : desc; } +std::string ItemStack::getShortDescription(IItemDefManager *itemdef) const +{ + std::string desc = metadata.getString("short_description"); + if (desc.empty()) + desc = getDefinition(itemdef).short_description; + if (!desc.empty()) + return desc; + // no short_description because of old server version or modified builtin + // return first line of description + std::stringstream sstr(getDescription(itemdef)); + std::getline(sstr, desc, '\n'); + return desc; +} + ItemStack ItemStack::addItem(ItemStack newitem, IItemDefManager *itemdef) { @@ -732,17 +746,17 @@ void InventoryList::moveItemSomewhere(u32 i, InventoryList *dest, u32 count) u32 InventoryList::moveItem(u32 i, InventoryList *dest, u32 dest_i, u32 count, bool swap_if_needed, bool *did_swap) { - if(this == dest && i == dest_i) + if (this == dest && i == dest_i) return count; // Take item from source list ItemStack item1; - if(count == 0) + if (count == 0) item1 = changeItem(i, ItemStack()); else item1 = takeItem(i, count); - if(item1.empty()) + if (item1.empty()) return 0; // Try to add the item to destination list @@ -750,8 +764,7 @@ u32 InventoryList::moveItem(u32 i, InventoryList *dest, u32 dest_i, item1 = dest->addItem(dest_i, item1); // If something is returned, the item was not fully added - if(!item1.empty()) - { + if (!item1.empty()) { // If olditem is returned, nothing was added. bool nothing_added = (item1.count == oldcount); diff --git a/src/inventory.h b/src/inventory.h index 67a7859ed..f36bc57cf 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -49,6 +49,7 @@ struct ItemStack std::string getItemString(bool include_meta = true) const; // Returns the tooltip std::string getDescription(IItemDefManager *itemdef) const; + std::string getShortDescription(IItemDefManager *itemdef) const; /* Quantity methods diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp index b6f464901..1e81c1dbc 100644 --- a/src/inventorymanager.cpp +++ b/src/inventorymanager.cpp @@ -154,6 +154,93 @@ IMoveAction::IMoveAction(std::istream &is, bool somewhere) : } } +void IMoveAction::swapDirections() +{ + std::swap(from_inv, to_inv); + std::swap(from_list, to_list); + std::swap(from_i, to_i); +} + +void IMoveAction::onPutAndOnTake(const ItemStack &src_item, ServerActiveObject *player) const +{ + ServerScripting *sa = PLAYER_TO_SA(player); + if (to_inv.type == InventoryLocation::DETACHED) + sa->detached_inventory_OnPut(*this, src_item, player); + else if (to_inv.type == InventoryLocation::NODEMETA) + sa->nodemeta_inventory_OnPut(*this, src_item, player); + else if (to_inv.type == InventoryLocation::PLAYER) + sa->player_inventory_OnPut(*this, src_item, player); + else + assert(false); + + if (from_inv.type == InventoryLocation::DETACHED) + sa->detached_inventory_OnTake(*this, src_item, player); + else if (from_inv.type == InventoryLocation::NODEMETA) + sa->nodemeta_inventory_OnTake(*this, src_item, player); + else if (from_inv.type == InventoryLocation::PLAYER) + sa->player_inventory_OnTake(*this, src_item, player); + else + assert(false); +} + +void IMoveAction::onMove(int count, ServerActiveObject *player) const +{ + ServerScripting *sa = PLAYER_TO_SA(player); + if (from_inv.type == InventoryLocation::DETACHED) + sa->detached_inventory_OnMove(*this, count, player); + else if (from_inv.type == InventoryLocation::NODEMETA) + sa->nodemeta_inventory_OnMove(*this, count, player); + else if (from_inv.type == InventoryLocation::PLAYER) + sa->player_inventory_OnMove(*this, count, player); + else + assert(false); +} + +int IMoveAction::allowPut(const ItemStack &dst_item, ServerActiveObject *player) const +{ + ServerScripting *sa = PLAYER_TO_SA(player); + int dst_can_put_count = 0xffff; + if (to_inv.type == InventoryLocation::DETACHED) + dst_can_put_count = sa->detached_inventory_AllowPut(*this, dst_item, player); + else if (to_inv.type == InventoryLocation::NODEMETA) + dst_can_put_count = sa->nodemeta_inventory_AllowPut(*this, dst_item, player); + else if (to_inv.type == InventoryLocation::PLAYER) + dst_can_put_count = sa->player_inventory_AllowPut(*this, dst_item, player); + else + assert(false); + return dst_can_put_count; +} + +int IMoveAction::allowTake(const ItemStack &src_item, ServerActiveObject *player) const +{ + ServerScripting *sa = PLAYER_TO_SA(player); + int src_can_take_count = 0xffff; + if (from_inv.type == InventoryLocation::DETACHED) + src_can_take_count = sa->detached_inventory_AllowTake(*this, src_item, player); + else if (from_inv.type == InventoryLocation::NODEMETA) + src_can_take_count = sa->nodemeta_inventory_AllowTake(*this, src_item, player); + else if (from_inv.type == InventoryLocation::PLAYER) + src_can_take_count = sa->player_inventory_AllowTake(*this, src_item, player); + else + assert(false); + return src_can_take_count; +} + +int IMoveAction::allowMove(int try_take_count, ServerActiveObject *player) const +{ + ServerScripting *sa = PLAYER_TO_SA(player); + int src_can_take_count = 0xffff; + if (from_inv.type == InventoryLocation::DETACHED) + src_can_take_count = sa->detached_inventory_AllowMove(*this, try_take_count, player); + else if (from_inv.type == InventoryLocation::NODEMETA) + src_can_take_count = sa->nodemeta_inventory_AllowMove(*this, try_take_count, player); + else if (from_inv.type == InventoryLocation::PLAYER) + src_can_take_count = sa->player_inventory_AllowMove(*this, try_take_count, player); + else + assert(false); + return src_can_take_count; +} + void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGameDef *gamedef) { Inventory *inv_from = mgr->getInventory(from_inv); @@ -214,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; } } @@ -251,103 +339,104 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame Collect information of endpoints */ - int try_take_count = count; - if (try_take_count == 0) - try_take_count = list_from->getItem(from_i).count; + ItemStack src_item = list_from->getItem(from_i); + if (count > 0 && count < src_item.count) + src_item.count = count; + if (src_item.empty()) + return; int src_can_take_count = 0xffff; int dst_can_put_count = 0xffff; - /* Query detached inventories */ + // this is needed for swapping items inside one inventory to work + ItemStack restitem; + 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; - // Move occurs in the same detached inventory - if (from_inv.type == InventoryLocation::DETACHED && - from_inv == to_inv) { - src_can_take_count = PLAYER_TO_SA(player)->detached_inventory_AllowMove( - *this, try_take_count, player); - dst_can_put_count = src_can_take_count; - } else { - // Destination is detached - if (to_inv.type == InventoryLocation::DETACHED) { - ItemStack src_item = list_from->getItem(from_i); - src_item.count = try_take_count; - dst_can_put_count = PLAYER_TO_SA(player)->detached_inventory_AllowPut( - *this, src_item, player); - } - // Source is detached - if (from_inv.type == InventoryLocation::DETACHED) { - ItemStack src_item = list_from->getItem(from_i); - src_item.count = try_take_count; - src_can_take_count = PLAYER_TO_SA(player)->detached_inventory_AllowTake( - *this, src_item, player); - } + // Shift-click: Cannot fill this stack, proceed with next slot + if (caused_by_move_somewhere && move_count == 0) { + return; } - /* Query node metadata inventories */ - - // Both endpoints are nodemeta - // Move occurs in the same nodemeta inventory - if (from_inv.type == InventoryLocation::NODEMETA && - from_inv == to_inv) { - src_can_take_count = PLAYER_TO_SA(player)->nodemeta_inventory_AllowMove( - *this, try_take_count, player); - dst_can_put_count = src_can_take_count; - } else { - // Destination is nodemeta - if (to_inv.type == InventoryLocation::NODEMETA) { - ItemStack src_item = list_from->getItem(from_i); - src_item.count = try_take_count; - dst_can_put_count = PLAYER_TO_SA(player)->nodemeta_inventory_AllowPut( - *this, src_item, player); - } - // Source is nodemeta - if (from_inv.type == InventoryLocation::NODEMETA) { - ItemStack src_item = list_from->getItem(from_i); - src_item.count = try_take_count; - src_can_take_count = PLAYER_TO_SA(player)->nodemeta_inventory_AllowTake( - *this, src_item, player); + if (allow_swap) { + // Swap will affect the entire stack if it can performed. + src_item = list_from->getItem(from_i); + count = src_item.count; + } + + if (from_inv == to_inv) { + // Move action within the same inventory + src_can_take_count = allowMove(src_item.count, player); + + bool swap_expected = allow_swap; + allow_swap = allow_swap + && (src_can_take_count == -1 || src_can_take_count >= src_item.count); + if (allow_swap) { + int try_put_count = list_to->getItem(to_i).count; + swapDirections(); + dst_can_put_count = allowMove(try_put_count, player); + allow_swap = allow_swap + && (dst_can_put_count == -1 || dst_can_put_count >= try_put_count); + swapDirections(); + } else { + dst_can_put_count = src_can_take_count; } - } - - // Query player inventories - - // Move occurs in the same player inventory - if (from_inv.type == InventoryLocation::PLAYER && - from_inv == to_inv) { - src_can_take_count = PLAYER_TO_SA(player)->player_inventory_AllowMove( - *this, try_take_count, player); - dst_can_put_count = src_can_take_count; + if (swap_expected != allow_swap) + src_can_take_count = dst_can_put_count = 0; } else { - // Destination is a player - if (to_inv.type == InventoryLocation::PLAYER) { - ItemStack src_item = list_from->getItem(from_i); - src_item.count = try_take_count; - dst_can_put_count = PLAYER_TO_SA(player)->player_inventory_AllowPut( - *this, src_item, player); - } - // Source is a player - if (from_inv.type == InventoryLocation::PLAYER) { - ItemStack src_item = list_from->getItem(from_i); - src_item.count = try_take_count; - src_can_take_count = PLAYER_TO_SA(player)->player_inventory_AllowTake( - *this, src_item, player); + // 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) + && (dst_can_put_count == -1 || dst_can_put_count >= src_item.count); + // A swap is expected, which means that we have to + // run the "allow" callbacks a second time with swapped inventories + if (allow_swap) { + ItemStack dst_item = list_to->getItem(to_i); + swapDirections(); + + int src_can_take = allowPut(dst_item, player); + int dst_can_put = allowTake(dst_item, player); + allow_swap = allow_swap + && (src_can_take == -1 || src_can_take >= dst_item.count) + && (dst_can_put == -1 || dst_can_put >= dst_item.count); + swapDirections(); } + if (swap_expected != allow_swap) + src_can_take_count = dst_can_put_count = 0; } int old_count = count; /* Modify count according to collected data */ - count = try_take_count; + count = src_item.count; if (src_can_take_count != -1 && count > src_can_take_count) 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(); @@ -364,10 +453,11 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame <<" list=\""<<to_list<<"\"" <<" i="<<to_i <<std::endl; + return; } - ItemStack src_item = list_from->getItem(from_i); + src_item = list_from->getItem(from_i); src_item.count = count; ItemStack from_stack_was = list_from->getItem(from_i); ItemStack to_stack_was = list_to->getItem(to_i); @@ -380,7 +470,10 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame */ bool did_swap = false; move_count = list_from->moveItem(from_i, - list_to, to_i, count, !caused_by_move_somewhere, &did_swap); + list_to, to_i, count, allow_swap, &did_swap); + if (caused_by_move_somewhere) + count = old_count; + assert(allow_swap == did_swap); // If source is infinite, reset it's stack if (src_can_take_count == -1) { @@ -428,8 +521,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame << std::endl; // If we are inside the move somewhere loop, we don't need to report - // anything if nothing happened (perhaps we don't need to report - // anything for caused_by_move_somewhere == true, but this way its safer) + // anything if nothing happened if (caused_by_move_somewhere && move_count == 0) return; @@ -471,69 +563,37 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame Report move to endpoints */ - /* Detached inventories */ - - // Both endpoints are same detached - if (from_inv.type == InventoryLocation::DETACHED && - from_inv == to_inv) { - PLAYER_TO_SA(player)->detached_inventory_OnMove( - *this, count, player); - } else { - // Destination is detached - if (to_inv.type == InventoryLocation::DETACHED) { - PLAYER_TO_SA(player)->detached_inventory_OnPut( - *this, src_item, player); + // Source = destination => move + if (from_inv == to_inv) { + onMove(count, player); + if (did_swap) { + // Item is now placed in source list + src_item = list_from->getItem(from_i); + swapDirections(); + onMove(src_item.count, player); + swapDirections(); } - // Source is detached - if (from_inv.type == InventoryLocation::DETACHED) { - PLAYER_TO_SA(player)->detached_inventory_OnTake( - *this, src_item, player); - } - } - - /* Node metadata inventories */ - - // Both endpoints are same nodemeta - if (from_inv.type == InventoryLocation::NODEMETA && - from_inv == to_inv) { - PLAYER_TO_SA(player)->nodemeta_inventory_OnMove( - *this, count, player); - } else { - // Destination is nodemeta - if (to_inv.type == InventoryLocation::NODEMETA) { - PLAYER_TO_SA(player)->nodemeta_inventory_OnPut( - *this, src_item, player); - } - // Source is nodemeta - if (from_inv.type == InventoryLocation::NODEMETA) { - PLAYER_TO_SA(player)->nodemeta_inventory_OnTake( - *this, src_item, player); - } - } - - // Player inventories - - // Both endpoints are same player inventory - if (from_inv.type == InventoryLocation::PLAYER && - from_inv == to_inv) { - PLAYER_TO_SA(player)->player_inventory_OnMove( - *this, count, player); + mgr->setInventoryModified(from_inv); } else { - // Destination is player inventory - if (to_inv.type == InventoryLocation::PLAYER) { - PLAYER_TO_SA(player)->player_inventory_OnPut( - *this, src_item, player); - } - // Source is player inventory - if (from_inv.type == InventoryLocation::PLAYER) { - PLAYER_TO_SA(player)->player_inventory_OnTake( - *this, src_item, player); + 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; + onPutAndOnTake(src_item, player); + if (caused_by_move_somewhere) + // Reset source item count + src_item.count = src_item_count; + if (did_swap) { + // Item is now placed in source list + src_item = list_from->getItem(from_i); + swapDirections(); + onPutAndOnTake(src_item, player); + swapDirections(); } - } - - mgr->setInventoryModified(from_inv); - if (inv_from != inv_to) mgr->setInventoryModified(to_inv); + mgr->setInventoryModified(from_inv); + } } void IMoveAction::clientApply(InventoryManager *mgr, IGameDef *gamedef) diff --git a/src/inventorymanager.h b/src/inventorymanager.h index 69bf30169..4ad5d3f49 100644 --- a/src/inventorymanager.h +++ b/src/inventorymanager.h @@ -183,6 +183,18 @@ struct IMoveAction : public InventoryAction, public MoveAction void apply(InventoryManager *mgr, ServerActiveObject *player, IGameDef *gamedef); void clientApply(InventoryManager *mgr, IGameDef *gamedef); + + void swapDirections(); + + void onPutAndOnTake(const ItemStack &src_item, ServerActiveObject *player) const; + + void onMove(int count, ServerActiveObject *player) const; + + int allowPut(const ItemStack &dst_item, ServerActiveObject *player) const; + + int allowTake(const ItemStack &src_item, ServerActiveObject *player) const; + + int allowMove(int try_take_count, ServerActiveObject *player) const; }; struct IDropAction : public InventoryAction, public MoveAction diff --git a/src/irr_ptr.h b/src/irr_ptr.h index 5022adb9d..42b409676 100644 --- a/src/irr_ptr.h +++ b/src/irr_ptr.h @@ -27,9 +27,14 @@ with this program; if not, write to the Free Software Foundation, Inc., * It should only be used for user-managed objects, i.e. those created with * the @c new operator or @c create* functions, like: * `irr_ptr<scene::IMeshBuffer> buf{new scene::SMeshBuffer()};` + * The reference counting is *not* balanced as new objects have reference + * count set to one, and the @c irr_ptr constructor (and @c reset) assumes + * ownership of that reference. * - * It should *never* be used for engine-managed objects, including - * those created with @c addTexture and similar methods. + * It shouldn’t be used for engine-managed objects, including those created + * with @c addTexture and similar methods. Constructing @c irr_ptr directly + * from such object is a bug and may lead to a crash. Indirect construction + * is possible though; see the @c grab free function for details and use cases. */ template <class ReferenceCounted, class = typename std::enable_if<std::is_base_of<IReferenceCounted, @@ -38,16 +43,6 @@ class irr_ptr { ReferenceCounted *value = nullptr; - /** Drops stored pointer replacing it with the given one. - * @note Copy semantics: reference counter *is* increased. - */ - void grab(ReferenceCounted *object) - { - if (object) - object->grab(); - reset(object); - } - public: irr_ptr() {} @@ -71,8 +66,10 @@ public: reset(b.release()); } - /** Constructs a shared pointer out of a plain one + /** Constructs a shared pointer out of a plain one to control object lifetime. + * @param object The object, usually returned by some @c create* function. * @note Move semantics: reference counter is *not* increased. + * @warning Never wrap any @c add* function with this! */ explicit irr_ptr(ReferenceCounted *object) noexcept { reset(object); } @@ -134,4 +131,70 @@ public: value->drop(); value = object; } + + /** Drops stored pointer replacing it with the given one. + * @note Copy semantics: reference counter *is* increased. + */ + void grab(ReferenceCounted *object) noexcept + { + if (object) + object->grab(); + reset(object); + } }; + +// clang-format off +// ^ dislikes long lines + +/** Constructs a shared pointer as a *secondary* reference to an object + * + * This function is intended to make a temporary reference to an object which + * is owned elsewhere so that it is not destroyed too early. To acheive that + * it does balanced reference counting, i.e. reference count is increased + * in this function and decreased when the returned pointer is destroyed. + */ +template <class ReferenceCounted> +irr_ptr<ReferenceCounted> grab(ReferenceCounted *object) noexcept +{ + irr_ptr<ReferenceCounted> ptr; + ptr.grab(object); + return ptr; +} + +template <typename ReferenceCounted> +bool operator==(const irr_ptr<ReferenceCounted> &a, const irr_ptr<ReferenceCounted> &b) noexcept +{ + return a.get() == b.get(); +} + +template <typename ReferenceCounted> +bool operator==(const irr_ptr<ReferenceCounted> &a, const ReferenceCounted *b) noexcept +{ + return a.get() == b; +} + +template <typename ReferenceCounted> +bool operator==(const ReferenceCounted *a, const irr_ptr<ReferenceCounted> &b) noexcept +{ + return a == b.get(); +} + +template <typename ReferenceCounted> +bool operator!=(const irr_ptr<ReferenceCounted> &a, const irr_ptr<ReferenceCounted> &b) noexcept +{ + return a.get() != b.get(); +} + +template <typename ReferenceCounted> +bool operator!=(const irr_ptr<ReferenceCounted> &a, const ReferenceCounted *b) noexcept +{ + return a.get() != b; +} + +template <typename ReferenceCounted> +bool operator!=(const ReferenceCounted *a, const irr_ptr<ReferenceCounted> &b) noexcept +{ + return a != b.get(); +} + +// clang-format on diff --git a/src/irrlicht_changes/CGUITTFont.h b/src/irrlicht_changes/CGUITTFont.h index cf64934a2..310f74f67 100644 --- a/src/irrlicht_changes/CGUITTFont.h +++ b/src/irrlicht_changes/CGUITTFont.h @@ -356,7 +356,7 @@ namespace gui load_flags = FT_LOAD_DEFAULT | FT_LOAD_RENDER; if (!useHinting()) load_flags |= FT_LOAD_NO_HINTING; if (!useAutoHinting()) load_flags |= FT_LOAD_NO_AUTOHINT; - if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO | FT_RENDER_MODE_MONO; + if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO; else load_flags |= FT_LOAD_TARGET_NORMAL; } u32 getWidthFromCharacter(wchar_t c) const; diff --git a/src/irrlicht_changes/irrUString.h b/src/irrlicht_changes/irrUString.h index b628c092c..09172ee6d 100644 --- a/src/irrlicht_changes/irrUString.h +++ b/src/irrlicht_changes/irrUString.h @@ -1331,7 +1331,7 @@ public: { u32 i; const uchar16_t* oa = other.c_str(); - for(i=0; array[i] && oa[i] && i < n; ++i) + for(i=0; i < n && array[i] && oa[i]; ++i) if (array[i] != oa[i]) return false; @@ -1350,7 +1350,7 @@ public: if (!str) return false; u32 i; - for(i=0; array[i] && str[i] && i < n; ++i) + for(i=0; i < n && array[i] && str[i]; ++i) if (array[i] != str[i]) return false; diff --git a/src/itemdef.cpp b/src/itemdef.cpp index 8e0492827..5fb1e4c47 100644 --- a/src/itemdef.cpp +++ b/src/itemdef.cpp @@ -62,6 +62,7 @@ ItemDefinition& ItemDefinition::operator=(const ItemDefinition &def) type = def.type; name = def.name; description = def.description; + short_description = def.short_description; inventory_image = def.inventory_image; inventory_overlay = def.inventory_overlay; wield_image = def.wield_image; @@ -102,6 +103,7 @@ void ItemDefinition::reset() type = ITEM_NONE; name = ""; description = ""; + short_description = ""; inventory_image = ""; inventory_overlay = ""; wield_image = ""; @@ -128,10 +130,10 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const u8 version = 6; writeU8(os, version); writeU8(os, type); - os << serializeString(name); - os << serializeString(description); - os << serializeString(inventory_image); - os << serializeString(wield_image); + os << serializeString16(name); + os << serializeString16(description); + os << serializeString16(inventory_image); + os << serializeString16(wield_image); writeV3F32(os, wield_scale); writeS16(os, stack_max); writeU8(os, usable); @@ -143,25 +145,27 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const tool_capabilities->serialize(tmp_os, protocol_version); tool_capabilities_s = tmp_os.str(); } - os << serializeString(tool_capabilities_s); + os << serializeString16(tool_capabilities_s); writeU16(os, groups.size()); for (const auto &group : groups) { - os << serializeString(group.first); + os << serializeString16(group.first); writeS16(os, group.second); } - os << serializeString(node_placement_prediction); + os << serializeString16(node_placement_prediction); // Version from ContentFeatures::serialize to keep in sync sound_place.serialize(os, CONTENTFEATURES_VERSION); sound_place_failed.serialize(os, CONTENTFEATURES_VERSION); writeF32(os, range); - os << serializeString(palette_image); + os << serializeString16(palette_image); writeARGB8(os, color); - os << serializeString(inventory_overlay); - os << serializeString(wield_overlay); + os << serializeString16(inventory_overlay); + os << serializeString16(wield_overlay); + + os << serializeString16(short_description); } void ItemDefinition::deSerialize(std::istream &is) @@ -175,16 +179,16 @@ void ItemDefinition::deSerialize(std::istream &is) throw SerializationError("unsupported ItemDefinition version"); type = (enum ItemType)readU8(is); - name = deSerializeString(is); - description = deSerializeString(is); - inventory_image = deSerializeString(is); - wield_image = deSerializeString(is); + name = deSerializeString16(is); + description = deSerializeString16(is); + inventory_image = deSerializeString16(is); + wield_image = deSerializeString16(is); wield_scale = readV3F32(is); stack_max = readS16(is); usable = readU8(is); liquids_pointable = readU8(is); - std::string tool_capabilities_s = deSerializeString(is); + std::string tool_capabilities_s = deSerializeString16(is); if (!tool_capabilities_s.empty()) { std::istringstream tmp_is(tool_capabilities_s, std::ios::binary); tool_capabilities = new ToolCapabilities; @@ -194,27 +198,28 @@ void ItemDefinition::deSerialize(std::istream &is) groups.clear(); u32 groups_size = readU16(is); for(u32 i=0; i<groups_size; i++){ - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); int value = readS16(is); groups[name] = value; } - node_placement_prediction = deSerializeString(is); + node_placement_prediction = deSerializeString16(is); // Version from ContentFeatures::serialize to keep in sync sound_place.deSerialize(is, CONTENTFEATURES_VERSION); sound_place_failed.deSerialize(is, CONTENTFEATURES_VERSION); range = readF32(is); - palette_image = deSerializeString(is); + palette_image = deSerializeString16(is); color = readARGB8(is); - inventory_overlay = deSerializeString(is); - wield_overlay = deSerializeString(is); + inventory_overlay = deSerializeString16(is); + wield_overlay = deSerializeString16(is); // If you add anything here, insert it primarily inside the try-catch // block to not need to increase the version. - //try { - //} catch(SerializationError &e) {}; + try { + short_description = deSerializeString16(is); + } catch(SerializationError &e) {}; } @@ -521,14 +526,14 @@ public: // Serialize ItemDefinition and write wrapped in a string std::ostringstream tmp_os(std::ios::binary); def->serialize(tmp_os, protocol_version); - os << serializeString(tmp_os.str()); + os << serializeString16(tmp_os.str()); } writeU16(os, m_aliases.size()); for (const auto &it : m_aliases) { - os << serializeString(it.first); - os << serializeString(it.second); + os << serializeString16(it.first); + os << serializeString16(it.second); } } void deSerialize(std::istream &is) @@ -543,7 +548,7 @@ public: for(u16 i=0; i<count; i++) { // Deserialize a string and grab an ItemDefinition from it - std::istringstream tmp_is(deSerializeString(is), std::ios::binary); + std::istringstream tmp_is(deSerializeString16(is), std::ios::binary); ItemDefinition def; def.deSerialize(tmp_is); // Register @@ -552,8 +557,8 @@ public: u16 num_aliases = readU16(is); for(u16 i=0; i<num_aliases; i++) { - std::string name = deSerializeString(is); - std::string convert_to = deSerializeString(is); + std::string name = deSerializeString16(is); + std::string convert_to = deSerializeString16(is); registerAlias(name, convert_to); } } diff --git a/src/itemdef.h b/src/itemdef.h index f47e6cbe7..ebf0d3527 100644 --- a/src/itemdef.h +++ b/src/itemdef.h @@ -56,6 +56,7 @@ struct ItemDefinition ItemType type; std::string name; // "" = hand std::string description; // Shown in tooltip. + std::string short_description; /* Visual properties diff --git a/src/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 <algorithm> #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/light.cpp b/src/light.cpp index 8196fedff..d5389b450 100644 --- a/src/light.cpp +++ b/src/light.cpp @@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc., */ #include "light.h" +#include <algorithm> #include <cmath> #include "util/numeric.h" #include "settings.h" @@ -81,9 +82,11 @@ void set_light_table(float gamma) // Strictly speaking, rangelim is not necessary here—if the implementation // is conforming. But we don’t want problems in any case. light_LUT[i] = rangelim((s32)(255.0f * brightness), 0, 255); + // Ensure light brightens with each level - if (i > 1 && light_LUT[i] <= light_LUT[i - 1]) - light_LUT[i] = light_LUT[i - 1] + 1; + if (i > 0 && light_LUT[i] <= light_LUT[i - 1]) { + light_LUT[i] = std::min((u8)254, light_LUT[i - 1]) + 1; + } } } diff --git a/src/log.cpp b/src/log.cpp index 54442c39b..3c61414e9 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -97,16 +97,7 @@ LogBuffer verbose_buf(g_logger, LL_VERBOSE); std::ostream *dout_con_ptr = &null_stream; std::ostream *derr_con_ptr = &verbosestream; -// Server -std::ostream *dout_server_ptr = &infostream; -std::ostream *derr_server_ptr = &errorstream; - -#ifndef SERVER -// Client -std::ostream *dout_client_ptr = &infostream; -std::ostream *derr_client_ptr = &errorstream; -#endif - +// Common streams std::ostream rawstream(&raw_buf); std::ostream dstream(&none_buf); std::ostream errorstream(&error_buf); @@ -192,14 +192,8 @@ extern std::ostream null_stream; extern std::ostream *dout_con_ptr; extern std::ostream *derr_con_ptr; -extern std::ostream *dout_server_ptr; extern std::ostream *derr_server_ptr; -#ifndef SERVER -extern std::ostream *dout_client_ptr; -extern std::ostream *derr_client_ptr; -#endif - extern Logger g_logger; // Writes directly to all LL_NONE log outputs for g_logger with no prefix. @@ -222,8 +216,4 @@ extern std::ostream dstream; #define dout_con (*dout_con_ptr) #define derr_con (*derr_con_ptr) -#define dout_server (*dout_server_ptr) -#ifndef SERVER - #define dout_client (*dout_client_ptr) -#endif diff --git a/src/main.cpp b/src/main.cpp index b3b17c2d1..39b441d2c 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 <luajit.h> +#else + #include <lua.h> +#endif +} + #if !defined(SERVER) && \ (IRRLICHT_VERSION_MAJOR == 1) && \ (IRRLICHT_VERSION_MINOR == 8) && \ @@ -197,7 +205,7 @@ int main(int argc, char *argv[]) } #endif - GameParams game_params; + GameStartData game_params; #ifdef SERVER porting::attachOrCreateConsole(); game_params.is_dedicated_server = true; @@ -351,6 +359,11 @@ static void print_version() #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 +487,15 @@ static bool create_userdata_path() static bool init_common(const Settings &cmd_args, int argc, char *argv[]) { startup_message(); - set_default_settings(g_settings); + set_default_settings(); // Initialize sockets sockets_init(); atexit(sockets_cleanup); + // Initialize g_settings + Settings::createLayer(SL_GLOBAL); + if (!read_config_file(cmd_args)) return false; @@ -604,10 +620,14 @@ static bool game_configure(GameParams *game_params, const Settings &cmd_args) static void game_configure_port(GameParams *game_params, const Settings &cmd_args) { - if (cmd_args.exists("port")) + if (cmd_args.exists("port")) { game_params->socket_port = cmd_args.getU16("port"); - else - game_params->socket_port = g_settings->getU16("port"); + } else { + if (game_params->is_dedicated_server) + game_params->socket_port = g_settings->getU16("port"); + else + game_params->socket_port = g_settings->getU16("remote_port"); + } if (game_params->socket_port == 0) game_params->socket_port = DEFAULT_SERVER_PORT; diff --git a/src/map.cpp b/src/map.cpp index b9ab7c066..7c59edbaa 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -62,8 +62,7 @@ with this program; if not, write to the Free Software Foundation, Inc., Map */ -Map::Map(std::ostream &dout, IGameDef *gamedef): - m_dout(dout), +Map::Map(IGameDef *gamedef): m_gamedef(gamedef), m_nodedef(gamedef->ndef()) { @@ -531,23 +530,6 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &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 @@ -1201,8 +1183,8 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes) */ ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef, EmergeManager *emerge, MetricsBackend *mb): - Map(dout_server, gamedef), - settings_mgr(g_settings, savedir + DIR_DELIM + "map_meta.txt"), + Map(gamedef), + settings_mgr(savedir + DIR_DELIM + "map_meta.txt"), m_emerge(emerge) { verbosestream<<FUNCTION_NAME<<std::endl; @@ -1236,6 +1218,8 @@ ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef, m_save_time_counter = mb->addCounter("minetest_core_map_save_time", "Map save time (in nanoseconds)"); + m_map_compression_level = rangelim(g_settings->getS16("map_compression_level_disk"), -1, 9); + try { // If directory exists, check contents and load if possible if (fs::PathExists(m_savedir)) { @@ -1301,18 +1285,6 @@ ServerMap::~ServerMap() */ delete dbase; delete dbase_ro; - -#if 0 - /* - Free all MapChunks - */ - core::map<v2s16, MapChunk*>::Iterator i = m_chunks.getIterator(); - for(; i.atEnd() == false; i++) - { - MapChunk *chunk = i.getNode()->getValue(); - delete chunk; - } -#endif } MapgenParams *ServerMap::getMapgenParams() @@ -1327,11 +1299,6 @@ u64 ServerMap::getSeed() return getMapgenParams()->seed; } -s16 ServerMap::getWaterLevel() -{ - return getMapgenParams()->water_level; -} - bool ServerMap::blockpos_over_mapgen_limit(v3s16 p) { const s16 mapgen_limit_bp = rangelim( @@ -1351,6 +1318,9 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data) v3s16 bpmin = EmergeManager::getContainingChunk(blockpos, csize); v3s16 bpmax = bpmin + v3s16(1, 1, 1) * (csize - 1); + if (!m_chunks_in_progress.insert(bpmin).second) + return false; + bool enable_mapgen_debug_info = m_emerge->enable_mapgen_debug_info; EMERGE_DBG_OUT("initBlockMake(): " PP(bpmin) " - " PP(bpmax)); @@ -1366,7 +1336,6 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data) data->seed = getSeed(); data->blockpos_min = bpmin; data->blockpos_max = bpmax; - data->blockpos_requested = blockpos; data->nodedef = m_nodedef; /* @@ -1404,25 +1373,6 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data) data->vmanip = new MMVManip(this); data->vmanip->initialEmerge(full_bpmin, full_bpmax); - // Note: we may need this again at some point. -#if 0 - // Ensure none of the blocks to be generated were marked as - // containing CONTENT_IGNORE - for (s16 z = blockpos_min.Z; z <= blockpos_max.Z; z++) { - for (s16 y = blockpos_min.Y; y <= blockpos_max.Y; y++) { - for (s16 x = blockpos_min.X; x <= blockpos_max.X; x++) { - core::map<v3s16, u8>::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; } @@ -1433,8 +1383,6 @@ void ServerMap::finishBlockMake(BlockMakeData *data, v3s16 bpmin = data->blockpos_min; v3s16 bpmax = data->blockpos_max; - v3s16 extra_borders(1, 1, 1); - bool enable_mapgen_debug_info = m_emerge->enable_mapgen_debug_info; EMERGE_DBG_OUT("finishBlockMake(): " PP(bpmin) " - " PP(bpmax)); @@ -1488,6 +1436,7 @@ void ServerMap::finishBlockMake(BlockMakeData *data, NOTE: Will be saved later. */ //save(MOD_STATE_WRITE_AT_UNLOAD); + m_chunks_in_progress.erase(bpmin); } MapSector *ServerMap::createSector(v2s16 p2d) @@ -1526,116 +1475,6 @@ MapSector *ServerMap::createSector(v2s16 p2d) return sector; } -#if 0 -/* - This is a quick-hand function for calling makeBlock(). -*/ -MapBlock * ServerMap::generateBlock( - v3s16 p, - std::map<v3s16, MapBlock*> &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<<FUNCTION_NAME<<": Block position over limit"<<std::endl; - throw InvalidPositionException("generateBlock(): pos. over limit"); - } - - /* - Create block make data - */ - BlockMakeData data; - initBlockMake(&data, p); - - /* - Generate block - */ - { - TimeTaker t("mapgen::make_block()"); - mapgen->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; z0<MAP_BLOCKSIZE; z0++) - for(s16 y0=0; y0<MAP_BLOCKSIZE; y0++) - for(s16 x0=0; x0<MAP_BLOCKSIZE; x0++) - { - v3s16 p(x0,y0,z0); - MapNode n = block->getNode(p); - if(n.getContent() == CONTENT_IGNORE) - { - infostream<<"CONTENT_IGNORE at " - <<"("<<p.X<<","<<p.Y<<","<<p.Z<<")" - <<std::endl; - erroneus_content = true; - assert(0); - } - } - if(erroneus_content) - { - assert(0); - } - } -#endif - -#if 0 - /* - Generate a completely empty block - */ - if(block) - { - for(s16 z0=0; z0<MAP_BLOCKSIZE; z0++) - for(s16 x0=0; x0<MAP_BLOCKSIZE; x0++) - { - for(s16 y0=0; y0<MAP_BLOCKSIZE; y0++) - { - MapNode n; - n.setContent(CONTENT_AIR); - block->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) { /* @@ -1732,59 +1571,6 @@ void ServerMap::updateVManip(v3s16 pos) vm->m_is_dirty = true; } -s16 ServerMap::findGroundLevel(v2s16 p2d) -{ -#if 0 - /* - Uh, just do something random... - */ - // Find existing map from top to down - s16 max=63; - s16 min=-64; - v3s16 p(p2d.X, max, p2d.Y); - for(; p.Y>min; p.Y--) - { - MapNode n = getNodeNoEx(p); - if(n.getContent() != CONTENT_IGNORE) - break; - } - if(p.Y == min) - goto plan_b; - // If this node is not air, go to plan b - if(getNodeNoEx(p).getContent() != CONTENT_AIR) - goto plan_b; - // Search existing walkable and return it - for(; p.Y>min; p.Y--) - { - MapNode n = getNodeNoEx(p); - if(content_walkable(n.d) && n.getContent() != CONTENT_IGNORE) - return p.Y; - } - - // Move to plan b -plan_b: -#endif - - /* - Determine from map generator noise functions - */ - - s16 level = m_emerge->getGroundLevelAtPoint(p2d); - return level; - - //double level = base_rock_level_2d(m_seed, p2d) + AVERAGE_MUD_AMOUNT; - //return (s16)level; -} - -void ServerMap::createDirs(const std::string &path) -{ - if (!fs::CreateAllDirs(path)) { - m_dout<<"ServerMap: Failed to create directory " - <<"\""<<path<<"\""<<std::endl; - throw BaseException("ServerMap failed to create directory"); - } -} - void ServerMap::save(ModifiedState save_level) { if (!m_map_saving_enabled) { @@ -1919,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(); @@ -1942,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) { @@ -123,7 +123,7 @@ class Map /*: public NodeContainer*/ { public: - Map(std::ostream &dout, IGameDef *gamedef); + Map(IGameDef *gamedef); virtual ~Map(); DISABLE_CLASS_COPY(Map); @@ -149,8 +149,6 @@ public: MapSector * getSectorNoGenerateNoLock(v2s16 p2d); // Same as the above (there exists no lock anymore) MapSector * getSectorNoGenerate(v2s16 p2d); - // Gets an existing sector or creates an empty one - //MapSector * getSectorCreate(v2s16 p2d); /* This is overloaded by ClientMap and ServerMap to allow @@ -269,11 +267,6 @@ public: void removeNodeTimer(v3s16 p); /* - Misc. - */ - std::map<v2s16, MapSector*> *getSectorsPtr(){return &m_sectors;} - - /* Variables */ @@ -283,8 +276,6 @@ public: protected: friend class LuaVoxelManip; - std::ostream &m_dout; // A bit deprecated, could be removed - IGameDef *m_gamedef; std::set<MapEventReceiver*> m_event_receivers; @@ -374,15 +365,6 @@ public: */ MapBlock *getBlockOrEmerge(v3s16 p3d); - // Helper for placing objects on ground level - s16 findGroundLevel(v2s16 p2d); - - /* - Misc. helper functions for fiddling with directory and file - names when saving - */ - void createDirs(const std::string &path); - /* Database functions */ @@ -399,7 +381,7 @@ public: MapgenParams *getMapgenParams(); bool saveBlock(MapBlock *block); - static bool saveBlock(MapBlock *block, MapDatabase *db); + static bool saveBlock(MapBlock *block, MapDatabase *db, int compression_level = -1); MapBlock* loadBlock(v3s16 p); // Database version void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false); @@ -414,7 +396,6 @@ public: bool isSavingEnabled(){ return m_map_saving_enabled; } u64 getSeed(); - s16 getWaterLevel(); /*! * Fixes lighting in one map block. @@ -435,13 +416,9 @@ 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<v2s16, MapChunk*> m_chunks; -#endif + int m_map_compression_level; + + std::set<v3s16> m_chunks_in_progress; /* Metadata is re-written on disk only if this is true. diff --git a/src/map_settings_manager.cpp b/src/map_settings_manager.cpp index 4f070e910..99e3cb0e6 100644 --- a/src/map_settings_manager.cpp +++ b/src/map_settings_manager.cpp @@ -25,13 +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); + m_map_settings = Settings::createLayer(SL_MAP, "[end_of_params]"); + Mapgen::setDefaultSettings(Settings::getLayer(SL_DEFAULTS)); } @@ -45,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); } @@ -73,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; } @@ -85,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; } @@ -100,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; } @@ -112,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(&conf); - mapgen_params->writeParams(&conf); - conf.writeLines(oss); + mapgen_params->MapgenParams::writeParams(m_map_settings); + mapgen_params->writeParams(m_map_settings); - // 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; @@ -148,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 " << @@ -179,20 +175,8 @@ MapgenParams *MapSettingsManager::makeMapgenParams() params->mgtype = mgtype; - // Load the mapgen param defaults - /* FIXME: Why is it done like this? MapgenParams should just - * set the defaults in its constructor instead. */ - { - Settings default_settings; - Mapgen::setDefaultSettings(&default_settings); - params->MapgenParams::readParams(&default_settings); - params->readParams(&default_settings); - } - // Load the rest of the mapgen params from our active settings - params->MapgenParams::readParams(m_user_settings); params->MapgenParams::readParams(m_map_settings); - params->readParams(m_user_settings); params->readParams(m_map_settings); // Hold onto our params 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 5b755b7a6..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 @@ -533,7 +533,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk) // Timestamp TRACESTREAM(<<"MapBlock::deSerialize "<<PP(getPos()) <<": Timestamp"<<std::endl); - setTimestamp(readU32(is)); + setTimestampNoChangedFlag(readU32(is)); m_disk_timestamp = m_timestamp; // Dynamically re-set ids based on node names @@ -668,13 +668,13 @@ void MapBlock::deSerialize_pre22(std::istream &is, u8 version, bool disk) // Ignore errors try { if (version <= 15) { - std::string data = deSerializeString(is); + std::string data = deSerializeString16(is); std::istringstream iss(data, std::ios_base::binary); content_nodemeta_deserialize_legacy(iss, &m_node_metadata, &m_node_timers, m_gamedef->idef()); } else { - //std::string data = deSerializeLongString(is); + //std::string data = deSerializeString32(is); std::ostringstream oss(std::ios_base::binary); decompressZlib(is, oss); std::istringstream iss(oss.str(), std::ios_base::binary); @@ -716,10 +716,10 @@ void MapBlock::deSerialize_pre22(std::istream &is, u8 version, bool disk) // Timestamp if (version >= 17) { - setTimestamp(readU32(is)); + setTimestampNoChangedFlag(readU32(is)); m_disk_timestamp = m_timestamp; } else { - setTimestamp(BLOCK_TIMESTAMP_UNDEFINED); + setTimestampNoChangedFlag(BLOCK_TIMESTAMP_UNDEFINED); } // Dynamically re-set ids based on node names 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 f57529082..e0dfd2d71 100644 --- a/src/mapgen/mapgen.cpp +++ b/src/mapgen/mapgen.cpp @@ -58,6 +58,7 @@ FlagDesc flagdesc_mapgen[] = { {"light", MG_LIGHT}, {"decorations", MG_DECORATIONS}, {"biomes", MG_BIOMES}, + {"ores", MG_ORES}, {NULL, 0} }; @@ -217,7 +218,7 @@ void Mapgen::getMapgenNames(std::vector<const char *> *mgnames, bool include_hid void Mapgen::setDefaultSettings(Settings *settings) { settings->setDefault("mg_flags", flagdesc_mapgen, - MG_CAVES | MG_DUNGEONS | MG_LIGHT | MG_DECORATIONS | MG_BIOMES); + MG_CAVES | MG_DUNGEONS | MG_LIGHT | MG_DECORATIONS | MG_BIOMES | MG_ORES); for (int i = 0; i < (int)MAPGEN_INVALID; ++i) { MapgenParams *params = createMapgenParams((MapgenType)i); @@ -243,26 +244,6 @@ u32 Mapgen::getBlockSeed2(v3s16 p, s32 seed) } -// Returns Y one under area minimum if not found -s16 Mapgen::findGroundLevelFull(v2s16 p2d) -{ - const v3s16 &em = vm->m_area.getExtent(); - s16 y_nodes_max = vm->m_area.MaxEdge.Y; - s16 y_nodes_min = vm->m_area.MinEdge.Y; - u32 i = vm->m_area.index(p2d.X, y_nodes_max, p2d.Y); - s16 y; - - for (y = y_nodes_max; y >= y_nodes_min; y--) { - MapNode &n = vm->m_data[i]; - if (ndef->get(n).walkable) - break; - - VoxelArea::add_y(em, i, -1); - } - return (y >= y_nodes_min) ? y : y_nodes_min - 1; -} - - // Returns -MAX_MAP_GENERATION_LIMIT if not found s16 Mapgen::findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax) { @@ -983,19 +964,6 @@ GenerateNotifier::GenerateNotifier(u32 notify_on, } -void GenerateNotifier::setNotifyOn(u32 notify_on) -{ - m_notify_on = notify_on; -} - - -void GenerateNotifier::setNotifyOnDecoIds( - const std::set<u32> *notify_on_deco_ids) -{ - m_notify_on_deco_ids = notify_on_deco_ids; -} - - bool GenerateNotifier::addEvent(GenNotifyType type, v3s16 pos, u32 id) { if (!(m_notify_on & (1 << type))) diff --git a/src/mapgen/mapgen.h b/src/mapgen/mapgen.h index a92b3b0d0..61db4f3b9 100644 --- a/src/mapgen/mapgen.h +++ b/src/mapgen/mapgen.h @@ -30,13 +30,12 @@ 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 +#define MG_ORES 0x80 typedef u16 biome_t; // copy from mg_biome.h to avoid an unnecessary include @@ -87,19 +86,17 @@ struct GenNotifyEvent { class GenerateNotifier { public: + // Use only for temporary Mapgen objects with no map generation! GenerateNotifier() = default; GenerateNotifier(u32 notify_on, const std::set<u32> *notify_on_deco_ids); - void setNotifyOn(u32 notify_on); - void setNotifyOnDecoIds(const std::set<u32> *notify_on_deco_ids); - bool addEvent(GenNotifyType type, v3s16 pos, u32 id=0); void getEvents(std::map<std::string, std::vector<v3s16> > &event_map); void clearEvents(); private: u32 m_notify_on = 0; - const std::set<u32> *m_notify_on_deco_ids; + const std::set<u32> *m_notify_on_deco_ids = nullptr; std::list<GenNotifyEvent> m_notify_events; }; @@ -185,7 +182,6 @@ public: static u32 getBlockSeed(v3s16 p, s32 seed); static u32 getBlockSeed2(v3s16 p, s32 seed); - s16 findGroundLevelFull(v2s16 p2d); s16 findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax); s16 findLiquidSurface(v2s16 p2d, s16 ymin, s16 ymax); void updateHeightmap(v3s16 nmin, v3s16 nmax); diff --git a/src/mapgen/mapgen_carpathian.cpp b/src/mapgen/mapgen_carpathian.cpp index feb9b428c..b3a0bd270 100644 --- a/src/mapgen/mapgen_carpathian.cpp +++ b/src/mapgen/mapgen_carpathian.cpp @@ -260,12 +260,6 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; @@ -315,7 +309,8 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data) } // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + if (flags & MG_ORES) + m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); // Generate dungeons if (flags & MG_DUNGEONS) diff --git a/src/mapgen/mapgen_flat.cpp b/src/mapgen/mapgen_flat.cpp index 369777ad2..342455029 100644 --- a/src/mapgen/mapgen_flat.cpp +++ b/src/mapgen/mapgen_flat.cpp @@ -1,7 +1,7 @@ /* Minetest -Copyright (C) 2015-2018 paramat -Copyright (C) 2015-2018 kwolekr, Ryan Kwolek <kwolekr@minetest.net> +Copyright (C) 2015-2020 paramat +Copyright (C) 2015-2016 kwolekr, Ryan Kwolek <kwolekr@minetest.net> 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 @@ -39,8 +39,9 @@ with this program; if not, write to the Free Software Foundation, Inc., FlagDesc flagdesc_mapgen_flat[] = { - {"lakes", MGFLAT_LAKES}, - {"hills", MGFLAT_HILLS}, + {"lakes", MGFLAT_LAKES}, + {"hills", MGFLAT_HILLS}, + {"caverns", MGFLAT_CAVERNS}, {NULL, 0} }; @@ -52,17 +53,21 @@ MapgenFlat::MapgenFlat(MapgenFlatParams *params, EmergeParams *emerge) { spflags = params->spflags; ground_level = params->ground_level; - large_cave_depth = params->large_cave_depth; + lake_threshold = params->lake_threshold; + lake_steepness = params->lake_steepness; + hill_threshold = params->hill_threshold; + hill_steepness = params->hill_steepness; + + cave_width = params->cave_width; small_cave_num_min = params->small_cave_num_min; small_cave_num_max = params->small_cave_num_max; large_cave_num_min = params->large_cave_num_min; large_cave_num_max = params->large_cave_num_max; + large_cave_depth = params->large_cave_depth; large_cave_flooded = params->large_cave_flooded; - cave_width = params->cave_width; - lake_threshold = params->lake_threshold; - lake_steepness = params->lake_steepness; - hill_threshold = params->hill_threshold; - hill_steepness = params->hill_steepness; + cavern_limit = params->cavern_limit; + cavern_taper = params->cavern_taper; + cavern_threshold = params->cavern_threshold; dungeon_ymin = params->dungeon_ymin; dungeon_ymax = params->dungeon_ymax; @@ -71,9 +76,11 @@ MapgenFlat::MapgenFlat(MapgenFlatParams *params, EmergeParams *emerge) if ((spflags & MGFLAT_LAKES) || (spflags & MGFLAT_HILLS)) noise_terrain = new Noise(¶ms->np_terrain, seed, csize.X, csize.Z); + // 3D noise MapgenBasic::np_cave1 = params->np_cave1; MapgenBasic::np_cave2 = params->np_cave2; + MapgenBasic::np_cavern = params->np_cavern; MapgenBasic::np_dungeons = params->np_dungeons; } @@ -88,11 +95,12 @@ MapgenFlat::~MapgenFlat() MapgenFlatParams::MapgenFlatParams(): - np_terrain (0, 1, v3f(600, 600, 600), 7244, 5, 0.6, 2.0), - np_filler_depth (0, 1.2, v3f(150, 150, 150), 261, 3, 0.7, 2.0), - np_cave1 (0, 12, v3f(61, 61, 61), 52534, 3, 0.5, 2.0), - np_cave2 (0, 12, v3f(67, 67, 67), 10325, 3, 0.5, 2.0), - np_dungeons (0.9, 0.5, v3f(500, 500, 500), 0, 2, 0.8, 2.0) + np_terrain (0, 1, v3f(600, 600, 600), 7244, 5, 0.6, 2.0), + np_filler_depth (0, 1.2, v3f(150, 150, 150), 261, 3, 0.7, 2.0), + np_cavern (0.0, 1.0, v3f(384, 128, 384), 723, 5, 0.63, 2.0), + np_cave1 (0, 12, v3f(61, 61, 61), 52534, 3, 0.5, 2.0), + np_cave2 (0, 12, v3f(67, 67, 67), 10325, 3, 0.5, 2.0), + np_dungeons (0.9, 0.5, v3f(500, 500, 500), 0, 2, 0.8, 2.0) { } @@ -112,11 +120,15 @@ void MapgenFlatParams::readParams(const Settings *settings) settings->getFloatNoEx("mgflat_lake_steepness", lake_steepness); settings->getFloatNoEx("mgflat_hill_threshold", hill_threshold); settings->getFloatNoEx("mgflat_hill_steepness", hill_steepness); + settings->getS16NoEx("mgflat_cavern_limit", cavern_limit); + settings->getS16NoEx("mgflat_cavern_taper", cavern_taper); + settings->getFloatNoEx("mgflat_cavern_threshold", cavern_threshold); settings->getS16NoEx("mgflat_dungeon_ymin", dungeon_ymin); settings->getS16NoEx("mgflat_dungeon_ymax", dungeon_ymax); settings->getNoiseParams("mgflat_np_terrain", np_terrain); settings->getNoiseParams("mgflat_np_filler_depth", np_filler_depth); + settings->getNoiseParams("mgflat_np_cavern", np_cavern); settings->getNoiseParams("mgflat_np_cave1", np_cave1); settings->getNoiseParams("mgflat_np_cave2", np_cave2); settings->getNoiseParams("mgflat_np_dungeons", np_dungeons); @@ -138,11 +150,15 @@ void MapgenFlatParams::writeParams(Settings *settings) const settings->setFloat("mgflat_lake_steepness", lake_steepness); settings->setFloat("mgflat_hill_threshold", hill_threshold); settings->setFloat("mgflat_hill_steepness", hill_steepness); + settings->setS16("mgflat_cavern_limit", cavern_limit); + settings->setS16("mgflat_cavern_taper", cavern_taper); + settings->setFloat("mgflat_cavern_threshold", cavern_threshold); settings->setS16("mgflat_dungeon_ymin", dungeon_ymin); settings->setS16("mgflat_dungeon_ymax", dungeon_ymax); settings->setNoiseParams("mgflat_np_terrain", np_terrain); settings->setNoiseParams("mgflat_np_filler_depth", np_filler_depth); + settings->setNoiseParams("mgflat_np_cavern", np_cavern); settings->setNoiseParams("mgflat_np_cave1", np_cave1); settings->setNoiseParams("mgflat_np_cave2", np_cave2); settings->setNoiseParams("mgflat_np_dungeons", np_dungeons); @@ -193,12 +209,6 @@ void MapgenFlat::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; @@ -226,15 +236,30 @@ void MapgenFlat::makeChunk(BlockMakeData *data) generateBiomes(); } + // Generate tunnels, caverns and large randomwalk caves if (flags & MG_CAVES) { - // Generate tunnels + // Generate tunnels first as caverns confuse them generateCavesNoiseIntersection(stone_surface_max_y); + + // Generate caverns + bool near_cavern = false; + if (spflags & MGFLAT_CAVERNS) + near_cavern = generateCavernsNoise(stone_surface_max_y); + // Generate large randomwalk caves - generateCavesRandomWalk(stone_surface_max_y, large_cave_depth); + if (near_cavern) + // Disable large randomwalk caves in this mapchunk by setting + // 'large cave depth' to world base. Avoids excessive liquid in + // large caverns and floating blobs of overgenerated liquid. + generateCavesRandomWalk(stone_surface_max_y, + -MAX_MAP_GENERATION_LIMIT); + else + generateCavesRandomWalk(stone_surface_max_y, large_cave_depth); } // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + if (flags & MG_ORES) + m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); if (flags & MG_DUNGEONS) generateDungeons(stone_surface_max_y); diff --git a/src/mapgen/mapgen_flat.h b/src/mapgen/mapgen_flat.h index 4902a802c..4b46aff27 100644 --- a/src/mapgen/mapgen_flat.h +++ b/src/mapgen/mapgen_flat.h @@ -1,7 +1,7 @@ /* Minetest -Copyright (C) 2015-2018 paramat -Copyright (C) 2015-2018 kwolekr, Ryan Kwolek <kwolekr@minetest.net> +Copyright (C) 2015-2020 paramat +Copyright (C) 2015-2016 kwolekr, Ryan Kwolek <kwolekr@minetest.net> 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 @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., /////// Mapgen Flat flags #define MGFLAT_LAKES 0x01 #define MGFLAT_HILLS 0x02 +#define MGFLAT_CAVERNS 0x04 class BiomeManager; @@ -33,22 +34,27 @@ extern FlagDesc flagdesc_mapgen_flat[]; struct MapgenFlatParams : public MapgenParams { s16 ground_level = 8; - s16 large_cave_depth = -33; + float lake_threshold = -0.45f; + float lake_steepness = 48.0f; + float hill_threshold = 0.45f; + float hill_steepness = 64.0f; + + float cave_width = 0.09f; u16 small_cave_num_min = 0; u16 small_cave_num_max = 0; u16 large_cave_num_min = 0; u16 large_cave_num_max = 2; + s16 large_cave_depth = -33; float large_cave_flooded = 0.5f; - float cave_width = 0.09f; - float lake_threshold = -0.45f; - float lake_steepness = 48.0f; - float hill_threshold = 0.45f; - float hill_steepness = 64.0f; + s16 cavern_limit = -256; + s16 cavern_taper = 256; + float cavern_threshold = 0.7f; s16 dungeon_ymin = -31000; s16 dungeon_ymax = 31000; NoiseParams np_terrain; NoiseParams np_filler_depth; + NoiseParams np_cavern; NoiseParams np_cave1; NoiseParams np_cave2; NoiseParams np_dungeons; diff --git a/src/mapgen/mapgen_fractal.cpp b/src/mapgen/mapgen_fractal.cpp index cb55bc288..fabb1b2b1 100644 --- a/src/mapgen/mapgen_fractal.cpp +++ b/src/mapgen/mapgen_fractal.cpp @@ -209,12 +209,6 @@ void MapgenFractal::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); //TimeTaker t("makeChunk"); @@ -250,7 +244,8 @@ void MapgenFractal::makeChunk(BlockMakeData *data) } // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + if (flags & MG_ORES) + m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); // Generate dungeons if (flags & MG_DUNGEONS) diff --git a/src/mapgen/mapgen_singlenode.cpp b/src/mapgen/mapgen_singlenode.cpp index cade9e7a8..5382423fa 100644 --- a/src/mapgen/mapgen_singlenode.cpp +++ b/src/mapgen/mapgen_singlenode.cpp @@ -50,12 +50,6 @@ void MapgenSinglenode::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; diff --git a/src/mapgen/mapgen_v5.cpp b/src/mapgen/mapgen_v5.cpp index 124667e5d..87e54755f 100644 --- a/src/mapgen/mapgen_v5.cpp +++ b/src/mapgen/mapgen_v5.cpp @@ -201,12 +201,6 @@ void MapgenV5::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; @@ -257,7 +251,8 @@ void MapgenV5::makeChunk(BlockMakeData *data) } // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + if (flags & MG_ORES) + m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); // Generate dungeons and desert temples if (flags & MG_DUNGEONS) diff --git a/src/mapgen/mapgen_v6.cpp b/src/mapgen/mapgen_v6.cpp index e9692246c..bce9cee81 100644 --- a/src/mapgen/mapgen_v6.cpp +++ b/src/mapgen/mapgen_v6.cpp @@ -341,12 +341,6 @@ float MapgenV6::baseTerrainLevelFromMap(int index) } -s16 MapgenV6::find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision) -{ - return baseTerrainLevelFromNoise(p2d) + MGV6_AVERAGE_MUD_AMOUNT; -} - - int MapgenV6::getGroundLevelAtPoint(v2s16 p) { return baseTerrainLevelFromNoise(p) + MGV6_AVERAGE_MUD_AMOUNT; @@ -518,12 +512,6 @@ void MapgenV6::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); this->generating = true; this->vm = data->vmanip; @@ -652,7 +640,8 @@ void MapgenV6::makeChunk(BlockMakeData *data) m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max); // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + if (flags & MG_ORES) + m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); // Calculate lighting if (flags & MG_LIGHT) @@ -803,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++) @@ -1066,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_v6.h b/src/mapgen/mapgen_v6.h index ff565edec..a6e6da8c6 100644 --- a/src/mapgen/mapgen_v6.h +++ b/src/mapgen/mapgen_v6.h @@ -150,7 +150,6 @@ public: s16 find_stone_level(v2s16 p2d); bool block_is_underground(u64 seed, v3s16 blockpos); - s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision); float getHumidity(v2s16 p); float getTreeAmount(v2s16 p); diff --git a/src/mapgen/mapgen_v7.cpp b/src/mapgen/mapgen_v7.cpp index e93dc9140..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' @@ -317,12 +317,6 @@ void MapgenV7::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); //TimeTaker t("makeChunk"); @@ -342,10 +336,6 @@ void MapgenV7::makeChunk(BlockMakeData *data) // Generate base and mountain terrain s16 stone_surface_max_y = generateTerrain(); - // Generate rivers - if (spflags & MGV7_RIDGES) - generateRidgeTerrain(); - // Create heightmap updateHeightmap(node_min, node_max); @@ -377,7 +367,8 @@ void MapgenV7::makeChunk(BlockMakeData *data) } // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + if (flags & MG_ORES) + m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); // Generate dungeons if (flags & MG_DUNGEONS) @@ -466,6 +457,23 @@ bool MapgenV7::getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y) } +bool MapgenV7::getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y) +{ + // Maximum width of river channel. Creates the vertical canyon walls + float width = 0.2f; + float absuwatern = std::fabs(noise_ridge_uwater->result[idx_xz]) * 2.0f; + if (absuwatern > width) + return false; + + float altitude = y - water_level; + float height_mod = (altitude + 17.0f) / 2.5f; + float width_mod = width - absuwatern; + float nridge = noise_ridge->result[idx_xyz] * std::fmax(altitude, 0.0f) / 7.0f; + + return nridge + width_mod * height_mod >= 0.6f; +} + + bool MapgenV7::getFloatlandTerrainFromMap(int idx_xyz, float float_offset) { return noise_floatland->result[idx_xyz] + floatland_density - float_offset >= 0.0f; @@ -520,6 +528,15 @@ int MapgenV7::generateTerrain() } } + // 'Generate rivers in this mapchunk' bool for + // simplification of condition checks in y-loop. + bool gen_rivers = (spflags & MGV7_RIDGES) && node_max.Y >= water_level - 16 && + !gen_floatlands; + if (gen_rivers) { + noise_ridge->perlinMap3D(node_min.X, node_min.Y - 1, node_min.Z); + noise_ridge_uwater->perlinMap2D(node_min.X, node_min.Z); + } + //// Place nodes const v3s16 &em = vm->m_area.getExtent(); s16 stone_surface_max_y = -MAX_MAP_GENERATION_LIMIT; @@ -543,10 +560,13 @@ int MapgenV7::generateTerrain() if (vm->m_data[vi].getContent() != CONTENT_IGNORE) continue; - if (y <= surface_y) { + bool is_river_channel = gen_rivers && + getRiverChannelFromMap(index3d, index2d, y); + if (y <= surface_y && !is_river_channel) { vm->m_data[vi] = n_stone; // Base terrain } else if ((spflags & MGV7_MOUNTAINS) && - getMountainTerrainFromMap(index3d, index2d, y)) { + getMountainTerrainFromMap(index3d, index2d, y) && + !is_river_channel) { vm->m_data[vi] = n_stone; // Mountain terrain if (y > stone_surface_max_y) stone_surface_max_y = y; @@ -568,45 +588,3 @@ int MapgenV7::generateTerrain() return stone_surface_max_y; } - - -void MapgenV7::generateRidgeTerrain() -{ - if (node_max.Y < water_level - 16 || - (node_max.Y >= floatland_ymin && node_min.Y <= floatland_ymax)) - return; - - noise_ridge->perlinMap3D(node_min.X, node_min.Y - 1, node_min.Z); - noise_ridge_uwater->perlinMap2D(node_min.X, node_min.Z); - - MapNode n_water(c_water_source); - MapNode n_air(CONTENT_AIR); - u32 index3d = 0; - float width = 0.2f; - - for (s16 z = node_min.Z; z <= node_max.Z; z++) - for (s16 y = node_min.Y - 1; y <= node_max.Y + 1; y++) { - u32 vi = vm->m_area.index(node_min.X, y, z); - for (s16 x = node_min.X; x <= node_max.X; x++, index3d++, vi++) { - u32 index2d = (z - node_min.Z) * csize.X + (x - node_min.X); - float uwatern = noise_ridge_uwater->result[index2d] * 2.0f; - if (std::fabs(uwatern) > width) - continue; - // Optimises, but also avoids removing nodes placed by mods in - // 'on-generated', when generating outside mapchunk. - content_t c = vm->m_data[vi].getContent(); - if (c != c_stone) - continue; - - float altitude = y - water_level; - float height_mod = (altitude + 17.0f) / 2.5f; - float width_mod = width - std::fabs(uwatern); - float nridge = noise_ridge->result[index3d] * - std::fmax(altitude, 0.0f) / 7.0f; - if (nridge + width_mod * height_mod < 0.6f) - continue; - - vm->m_data[vi] = (y > water_level) ? n_air : n_water; - } - } -} diff --git a/src/mapgen/mapgen_v7.h b/src/mapgen/mapgen_v7.h index 4020cd935..5db10a304 100644 --- a/src/mapgen/mapgen_v7.h +++ b/src/mapgen/mapgen_v7.h @@ -94,10 +94,10 @@ public: float baseTerrainLevelFromMap(int index); bool getMountainTerrainAtPoint(s16 x, s16 y, s16 z); bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y); + bool getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y); bool getFloatlandTerrainFromMap(int idx_xyz, float float_offset); int generateTerrain(); - void generateRidgeTerrain(); private: s16 mount_zero_level; diff --git a/src/mapgen/mapgen_valleys.cpp b/src/mapgen/mapgen_valleys.cpp index efcc8ee85..c4234857e 100644 --- a/src/mapgen/mapgen_valleys.cpp +++ b/src/mapgen/mapgen_valleys.cpp @@ -210,12 +210,6 @@ void MapgenValleys::makeChunk(BlockMakeData *data) // Pre-conditions assert(data->vmanip); assert(data->nodedef); - assert(data->blockpos_requested.X >= data->blockpos_min.X && - data->blockpos_requested.Y >= data->blockpos_min.Y && - data->blockpos_requested.Z >= data->blockpos_min.Z); - assert(data->blockpos_requested.X <= data->blockpos_max.X && - data->blockpos_requested.Y <= data->blockpos_max.Y && - data->blockpos_requested.Z <= data->blockpos_max.Z); //TimeTaker t("makeChunk"); @@ -268,7 +262,8 @@ void MapgenValleys::makeChunk(BlockMakeData *data) } // Generate the registered ores - m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); + if (flags & MG_ORES) + m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max); // Dungeon creation if (flags & MG_DUNGEONS) diff --git a/src/mapgen/mg_ore.cpp b/src/mapgen/mg_ore.cpp index b50ed6a32..5814f433a 100644 --- a/src/mapgen/mg_ore.cpp +++ b/src/mapgen/mg_ore.cpp @@ -498,7 +498,11 @@ void OreVein::generate(MMVManip *vm, int mapseed, u32 blockseed, } // randval ranges from -1..1 - float randval = (float)pr.next() / (pr.RANDOM_RANGE / 2) - 1.f; + /* + Note: can generate values slightly larger than 1 + but this can't be changed as mapgen must be deterministic accross versions. + */ + float randval = (float)pr.next() / float(pr.RANDOM_RANGE / 2) - 1.f; float noiseval = contour(noise->result[index]); float noiseval2 = contour(noise2->result[index]); if (noiseval * noiseval2 + randval * random_factor < nthresh) diff --git a/src/mapgen/mg_ore.h b/src/mapgen/mg_ore.h index 76420fab4..a58fa9bfe 100644 --- a/src/mapgen/mg_ore.h +++ b/src/mapgen/mg_ore.h @@ -52,7 +52,7 @@ extern FlagDesc flagdesc_ore[]; class Ore : public ObjDef, public NodeResolver { public: - static const bool NEEDS_NOISE = false; + const bool needs_noise; content_t c_ore; // the node to place std::vector<content_t> c_wherein; // the nodes to be placed in @@ -68,7 +68,7 @@ public: Noise *noise = nullptr; std::unordered_set<biome_t> biomes; - Ore() = default;; + explicit Ore(bool needs_noise): needs_noise(needs_noise) {} virtual ~Ore(); virtual void resolveNodeNames(); @@ -83,17 +83,17 @@ protected: class OreScatter : public Ore { public: - static const bool NEEDS_NOISE = false; + OreScatter() : Ore(false) {} ObjDef *clone() const; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreSheet : public Ore { public: - static const bool NEEDS_NOISE = true; + OreSheet() : Ore(true) {} ObjDef *clone() const; @@ -101,14 +101,12 @@ public: u16 column_height_max; float column_midpoint_factor; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OrePuff : public Ore { public: - static const bool NEEDS_NOISE = true; - ObjDef *clone() const; NoiseParams np_puff_top; @@ -116,55 +114,50 @@ public: Noise *noise_puff_top = nullptr; Noise *noise_puff_bottom = nullptr; - OrePuff() = default; + OrePuff() : Ore(true) {} virtual ~OrePuff(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreBlob : public Ore { public: - static const bool NEEDS_NOISE = true; - ObjDef *clone() const; - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + OreBlob() : Ore(true) {} + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreVein : public Ore { public: - static const bool NEEDS_NOISE = true; - ObjDef *clone() const; float random_factor; Noise *noise2 = nullptr; int sizey_prev = 0; - OreVein() = default; + OreVein() : Ore(true) {} virtual ~OreVein(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreStratum : public Ore { public: - static const bool NEEDS_NOISE = false; - ObjDef *clone() const; NoiseParams np_stratum_thickness; Noise *noise_stratum_thickness = nullptr; u16 stratum_thickness; - OreStratum() = default; + OreStratum() : Ore(false) {} virtual ~OreStratum(); - virtual void generate(MMVManip *vm, int mapseed, u32 blockseed, - v3s16 nmin, v3s16 nmax, biome_t *biomemap); + void generate(MMVManip *vm, int mapseed, u32 blockseed, + v3s16 nmin, v3s16 nmax, biome_t *biomemap) override; }; class OreManager : public ObjDefManager { diff --git a/src/mapgen/mg_schematic.cpp b/src/mapgen/mg_schematic.cpp index ba102d997..e70e97e48 100644 --- a/src/mapgen/mg_schematic.cpp +++ b/src/mapgen/mg_schematic.cpp @@ -314,7 +314,7 @@ bool Schematic::deserializeFromMts(std::istream *is, //// Read node names u16 nidmapcount = readU16(ss); for (int i = 0; i != nidmapcount; i++) { - std::string name = deSerializeString(ss); + std::string name = deSerializeString16(ss); // Instances of "ignore" from v1 are converted to air (and instances // are fixed to have MTSCHEM_PROB_NEVER later on). @@ -334,7 +334,7 @@ bool Schematic::deserializeFromMts(std::istream *is, schemdata = new MapNode[nodecount]; MapNode::deSerializeBulk(ss, SER_FMT_VER_HIGHEST_READ, schemdata, - nodecount, 2, 2, true); + nodecount, 2, 2); // Fix probability values for nodes that were ignore; removed in v2 if (version < 2) { @@ -372,11 +372,11 @@ bool Schematic::serializeToMts(std::ostream *os, writeU16(ss, names.size()); // name count for (size_t i = 0; i != names.size(); i++) - ss << serializeString(names[i]); // node names + ss << serializeString16(names[i]); // node names // compressed bulk node data MapNode::serializeBulk(ss, SER_FMT_VER_HIGHEST_WRITE, - schemdata, size.X * size.Y * size.Z, 2, 2, true); + schemdata, size.X * size.Y * size.Z, 2, 2, -1); return true; } diff --git a/src/mapgen/treegen.cpp b/src/mapgen/treegen.cpp index e7e30c880..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++) @@ -527,19 +528,6 @@ treegen::error make_ltree(MMVManip &vmanip, v3s16 p0, } -void tree_node_placement(MMVManip &vmanip, v3f p0, MapNode node) -{ - v3s16 p1 = v3s16(myround(p0.X), myround(p0.Y), myround(p0.Z)); - if (!vmanip.m_area.contains(p1)) - return; - u32 vi = vmanip.m_area.index(p1); - if (vmanip.m_data[vi].getContent() != CONTENT_AIR - && vmanip.m_data[vi].getContent() != CONTENT_IGNORE) - return; - vmanip.m_data[vmanip.m_area.index(p1)] = node; -} - - void tree_trunk_placement(MMVManip &vmanip, v3f p0, TreeDef &tree_definition) { v3s16 p1 = v3s16(myround(p0.X), myround(p0.Y), myround(p0.Z)); diff --git a/src/mapgen/treegen.h b/src/mapgen/treegen.h index 447baabb3..59a418824 100644 --- a/src/mapgen/treegen.h +++ b/src/mapgen/treegen.h @@ -76,8 +76,6 @@ namespace treegen { const NodeDefManager *ndef, const TreeDef &tree_definition); // L-System tree gen helper functions - void tree_node_placement(MMVManip &vmanip, v3f p0, - MapNode node); void tree_trunk_placement(MMVManip &vmanip, v3f p0, TreeDef &tree_definition); void tree_leaves_placement(MMVManip &vmanip, v3f p0, diff --git a/src/mapnode.cpp b/src/mapnode.cpp index dcf1f6d6e..0551f3b6f 100644 --- a/src/mapnode.cpp +++ b/src/mapnode.cpp @@ -706,7 +706,7 @@ void MapNode::deSerialize(u8 *source, u8 version) } void MapNode::serializeBulk(std::ostream &os, int version, const MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed) + u8 content_width, u8 params_width, int compression_level) { if (!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); @@ -737,10 +737,7 @@ void MapNode::serializeBulk(std::ostream &os, int version, Compress data to output stream */ - if (compressed) - compressZlib(databuf, databuf_size, os); - else - os.write((const char*) &databuf[0], databuf_size); + compressZlib(databuf, databuf_size, os, compression_level); delete [] databuf; } @@ -748,7 +745,7 @@ void MapNode::serializeBulk(std::ostream &os, int version, // Deserialize bulk node data void MapNode::deSerializeBulk(std::istream &is, int version, MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed) + u8 content_width, u8 params_width) { if(!ser_ver_supported(version)) throw VersionMismatchException("ERROR: MapNode format not supported"); @@ -760,24 +757,13 @@ void MapNode::deSerializeBulk(std::istream &is, int version, // Uncompress or read data u32 len = nodecount * (content_width + params_width); - SharedBuffer<u8> 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<const u8*>(s.c_str()); // Deserialize content if(content_width == 1) diff --git a/src/mapnode.h b/src/mapnode.h index 32ac1b4f6..a9ae63ba3 100644 --- a/src/mapnode.h +++ b/src/mapnode.h @@ -292,10 +292,10 @@ struct MapNode // compressed = true to zlib-compress output static void serializeBulk(std::ostream &os, int version, const MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed); + u8 content_width, u8 params_width, int compression_level); static void deSerializeBulk(std::istream &is, int version, MapNode *nodes, u32 nodecount, - u8 content_width, u8 params_width, bool compressed); + u8 content_width, u8 params_width); private: // Deprecated serialization methods diff --git a/src/mapsector.h b/src/mapsector.h index dede364f6..ffd4cdd1d 100644 --- a/src/mapsector.h +++ b/src/mapsector.h @@ -62,6 +62,7 @@ public: bool empty() const { return m_blocks.empty(); } + int size() const { return m_blocks.size(); } protected: // The pile of MapBlocks diff --git a/src/event.h b/src/mtevent.h index 149f7eecd..149f7eecd 100644 --- a/src/event.h +++ b/src/mtevent.h diff --git a/src/nameidmapping.cpp b/src/nameidmapping.cpp index bd5bb1fc8..05cfae069 100644 --- a/src/nameidmapping.cpp +++ b/src/nameidmapping.cpp @@ -27,7 +27,7 @@ void NameIdMapping::serialize(std::ostream &os) const writeU16(os, m_id_to_name.size()); for (const auto &i : m_id_to_name) { writeU16(os, i.first); - os << serializeString(i.second); + os << serializeString16(i.second); } } @@ -41,7 +41,7 @@ void NameIdMapping::deSerialize(std::istream &is) m_name_to_id.clear(); for (u32 i = 0; i < count; i++) { u16 id = readU16(is); - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); m_id_to_name[id] = name; m_name_to_id[name] = id; } diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt index c6995ab22..d2e2f52e9 100644 --- a/src/network/CMakeLists.txt +++ b/src/network/CMakeLists.txt @@ -16,8 +16,3 @@ if (BUILD_CLIENT) PARENT_SCOPE ) endif() - -# Haiku networking support -if(HAIKU) - set(PLATFORM_LIBS -lnetwork ${PLATFORM_LIBS}) -endif() diff --git a/src/network/clientopcodes.cpp b/src/network/clientopcodes.cpp index f812a08a1..55cfdd4dc 100644 --- a/src/network/clientopcodes.cpp +++ b/src/network/clientopcodes.cpp @@ -122,6 +122,7 @@ const ToClientCommandHandler toClientCommandTable[TOCLIENT_NUM_MSG_TYPES] = null_command_handler, { "TOCLIENT_SRP_BYTES_S_B", TOCLIENT_STATE_NOT_CONNECTED, &Client::handleCommand_SrpBytesSandB }, // 0x60 { "TOCLIENT_FORMSPEC_PREPEND", TOCLIENT_STATE_CONNECTED, &Client::handleCommand_FormspecPrepend }, // 0x61, + { "TOCLIENT_MINIMAP_MODES", TOCLIENT_STATE_CONNECTED, &Client::handleCommand_MinimapModes }, // 0x62, }; const static ServerCommandFactory null_command_factory = { "TOSERVER_NULL", 0, false }; diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index 5934eaf8c..65db02300 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -208,6 +208,9 @@ void Client::handleCommand_AccessDenied(NetworkPacket* pkt) m_access_denied_reconnect = reconnect & 1; } else if (denyCode == SERVER_ACCESSDENIED_CUSTOM_STRING) { *pkt >> m_access_denied_reason; + } else if (denyCode == SERVER_ACCESSDENIED_TOO_MANY_USERS) { + m_access_denied_reason = accessDeniedStrings[denyCode]; + m_access_denied_reconnect = true; } else if (denyCode < SERVER_ACCESSDENIED_MAX) { m_access_denied_reason = accessDeniedStrings[denyCode]; } else { @@ -494,7 +497,7 @@ void Client::handleCommand_ActiveObjectMessages(NetworkPacket* pkt) if (!is.good()) break; - std::string message = deSerializeString(is); + std::string message = deSerializeString16(is); // Pass on to the environment m_env.processActiveObjectMessage(id, message); @@ -991,7 +994,7 @@ void Client::handleCommand_AddParticleSpawner(NetworkPacket* pkt) p.minsize = readF32(is); p.maxsize = readF32(is); p.collisiondetection = readU8(is); - p.texture = deSerializeLongString(is); + p.texture = deSerializeString32(is); server_id = readU32(is); @@ -1161,15 +1164,24 @@ void Client::handleCommand_HudSetFlags(NetworkPacket* pkt) m_minimap_disabled_by_server = !(player->hud_flags & HUD_FLAG_MINIMAP_VISIBLE); bool m_minimap_radar_disabled_by_server = !(player->hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE); + // Not so satisying code to keep compatibility with old fixed mode system + // --> + // Hide minimap if it has been disabled by the server if (m_minimap && m_minimap_disabled_by_server && was_minimap_visible) // defers a minimap update, therefore only call it if really // needed, by checking that minimap was visible before - m_minimap->setMinimapMode(MINIMAP_MODE_OFF); - - // Switch to surface mode if radar disabled by server - if (m_minimap && m_minimap_radar_disabled_by_server && was_minimap_radar_visible) - m_minimap->setMinimapMode(MINIMAP_MODE_SURFACEx1); + m_minimap->setModeIndex(0); + + // If radar has been disabled, try to find a non radar mode or fall back to 0 + if (m_minimap && m_minimap_radar_disabled_by_server + && was_minimap_radar_visible) { + while (m_minimap->getModeIndex() > 0 && + m_minimap->getModeDef().type == MINIMAP_TYPE_RADAR) + m_minimap->nextMode(); + } + // <-- + // End of 'not so satifying code' } void Client::handleCommand_HudSetParam(NetworkPacket* pkt) @@ -1204,11 +1216,11 @@ void Client::handleCommand_HudSetSky(NetworkPacket* pkt) SkyboxParams skybox; skybox.bgcolor = video::SColor(readARGB8(is)); - skybox.type = std::string(deSerializeString(is)); + skybox.type = std::string(deSerializeString16(is)); u16 count = readU16(is); for (size_t i = 0; i < count; i++) - skybox.textures.emplace_back(deSerializeString(is)); + skybox.textures.emplace_back(deSerializeString16(is)); skybox.clouds = true; try { @@ -1608,3 +1620,30 @@ void Client::handleCommand_ModChannelSignal(NetworkPacket *pkt) if (valid_signal) m_script->on_modchannel_signal(channel, signal); } + +void Client::handleCommand_MinimapModes(NetworkPacket *pkt) +{ + u16 count; // modes + u16 mode; // wanted current mode index after change + + *pkt >> count >> mode; + + if (m_minimap) + m_minimap->clearModes(); + + for (size_t index = 0; index < count; index++) { + u16 type; + std::string label; + u16 size; + std::string texture; + u16 scale; + + *pkt >> type >> label >> size >> texture >> scale; + + if (m_minimap) + m_minimap->addMode(MinimapType(type), size, label, texture, scale); + } + + if (m_minimap) + m_minimap->setModeIndex(mode); +} diff --git a/src/network/connection.cpp b/src/network/connection.cpp index 3692e45a9..0ba8c36b2 100644 --- a/src/network/connection.cpp +++ b/src/network/connection.cpp @@ -1269,7 +1269,8 @@ bool Connection::deletePeer(session_t peer_id, bool timeout) return false; peer = m_peers[peer_id]; m_peers.erase(peer_id); - m_peer_ids.remove(peer_id); + auto it = std::find(m_peer_ids.begin(), m_peer_ids.end(), peer_id); + m_peer_ids.erase(it); } Address peer_address; @@ -1565,7 +1566,7 @@ void Connection::sendAck(session_t peer_id, u8 channelnum, u16 seqnum) UDPPeer* Connection::createServerPeer(Address& address) { - if (getPeerNoEx(PEER_ID_SERVER) != 0) + if (ConnectedToServer()) { throw ConnectionException("Already connected to a server"); } diff --git a/src/network/connection.h b/src/network/connection.h index 47b0805ce..24cd4fe4a 100644 --- a/src/network/connection.h +++ b/src/network/connection.h @@ -30,7 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "networkprotocol.h" #include <iostream> #include <fstream> -#include <list> +#include <vector> #include <map> class NetworkPacket; @@ -795,7 +795,7 @@ protected: void PrintInfo(std::ostream &out); - std::list<session_t> getPeerIDs() + std::vector<session_t> getPeerIDs() { MutexAutoLock peerlock(m_peers_mutex); return m_peer_ids; @@ -809,6 +809,11 @@ protected: void putEvent(ConnectionEvent &e); void TriggerSend(); + + bool ConnectedToServer() + { + return getPeerNoEx(PEER_ID_SERVER) != nullptr; + } private: MutexedQueue<ConnectionEvent> m_event_queue; @@ -816,7 +821,7 @@ private: u32 m_protocol_id; std::map<session_t, Peer *> m_peers; - std::list<session_t> m_peer_ids; + std::vector<session_t> m_peer_ids; std::mutex m_peers_mutex; std::unique_ptr<ConnectionSendThread> m_sendThread; diff --git a/src/network/connectionthreads.cpp b/src/network/connectionthreads.cpp index 9a6617a1c..7b62bc792 100644 --- a/src/network/connectionthreads.cpp +++ b/src/network/connectionthreads.cpp @@ -144,7 +144,7 @@ void ConnectionSendThread::Trigger() bool ConnectionSendThread::packetsQueued() { - std::list<session_t> peerIds = m_connection->getPeerIDs(); + std::vector<session_t> peerIds = m_connection->getPeerIDs(); if (!m_outgoing_queue.empty() && !peerIds.empty()) return true; @@ -171,8 +171,8 @@ bool ConnectionSendThread::packetsQueued() void ConnectionSendThread::runTimeouts(float dtime) { - std::list<session_t> timeouted_peers; - std::list<session_t> peerIds = m_connection->getPeerIDs(); + std::vector<session_t> timeouted_peers; + std::vector<session_t> peerIds = m_connection->getPeerIDs(); for (session_t &peerId : peerIds) { PeerHelper peer = m_connection->getPeerNoEx(peerId); @@ -548,7 +548,7 @@ void ConnectionSendThread::disconnect() // Send to all - std::list<session_t> peerids = m_connection->getPeerIDs(); + std::vector<session_t> peerids = m_connection->getPeerIDs(); for (session_t peerid : peerids) { sendAsPacket(peerid, 0, data, false); @@ -620,7 +620,7 @@ void ConnectionSendThread::sendReliable(ConnectionCommand &c) void ConnectionSendThread::sendToAll(u8 channelnum, const SharedBuffer<u8> &data) { - std::list<session_t> peerids = m_connection->getPeerIDs(); + std::vector<session_t> peerids = m_connection->getPeerIDs(); for (session_t peerid : peerids) { send(peerid, channelnum, data); @@ -629,7 +629,7 @@ void ConnectionSendThread::sendToAll(u8 channelnum, const SharedBuffer<u8> &data void ConnectionSendThread::sendToAllReliable(ConnectionCommand &c) { - std::list<session_t> peerids = m_connection->getPeerIDs(); + std::vector<session_t> peerids = m_connection->getPeerIDs(); for (session_t peerid : peerids) { PeerHelper peer = m_connection->getPeerNoEx(peerid); @@ -643,8 +643,8 @@ void ConnectionSendThread::sendToAllReliable(ConnectionCommand &c) void ConnectionSendThread::sendPackets(float dtime) { - std::list<session_t> peerIds = m_connection->getPeerIDs(); - std::list<session_t> pendingDisconnect; + std::vector<session_t> peerIds = m_connection->getPeerIDs(); + std::vector<session_t> pendingDisconnect; std::map<session_t, bool> pending_unreliable; const unsigned int peer_packet_quota = m_iteration_packets_avaialble @@ -843,13 +843,11 @@ void *ConnectionReceiveThread::run() if (debug_print_timer > 20.0) { debug_print_timer -= 20.0; - std::list<session_t> peerids = m_connection->getPeerIDs(); + std::vector<session_t> peerids = m_connection->getPeerIDs(); - for (std::list<session_t>::iterator i = peerids.begin(); - i != peerids.end(); - i++) + for (auto id : peerids) { - PeerHelper peer = m_connection->getPeerNoEx(*i); + PeerHelper peer = m_connection->getPeerNoEx(id); if (!peer) continue; @@ -958,8 +956,11 @@ void ConnectionReceiveThread::receive(SharedBuffer<u8> &packetdata, // command was sent reliably. } - /* The peer was not found in our lists. Add it. */ if (peer_id == PEER_ID_INEXISTENT) { + /* Ignore it if we are a client */ + if (m_connection->ConnectedToServer()) + return; + /* The peer was not found in our lists. Add it. */ peer_id = m_connection->createPeer(sender, MTP_MINETEST_RELIABLE_UDP, 0); } @@ -1039,7 +1040,7 @@ void ConnectionReceiveThread::receive(SharedBuffer<u8> &packetdata, bool ConnectionReceiveThread::getFromBuffers(session_t &peer_id, SharedBuffer<u8> &dst) { - std::list<session_t> peerids = m_connection->getPeerIDs(); + std::vector<session_t> peerids = m_connection->getPeerIDs(); for (session_t peerid : peerids) { PeerHelper peer = m_connection->getPeerNoEx(peerid); 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 4d531b611..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<strLen; i++) { - wchar_t c16 = readU16(&m_data[m_read_offset]); - dst.append(&c16, 1); + for (u16 i = 0; i < strLen; i++) { + wchar_t c = readU16(&m_data[m_read_offset]); + if (NEED_SURROGATE_CODING && c >= 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<u16>(src.size()); + for (u16 i = 0; i < src.size(); i++) + *this << static_cast<u16>(src[i]); - *this << msgsize; + return *this; + } - // Write string - for (u16 i=0; i<msgsize; i++) { - *this << (u16) src[i]; + // write dummy value, to be overwritten later + const u32 len_offset = m_read_offset; + u32 written = 0; + *this << static_cast<u16>(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<u16>(0xD800 | (n >> 10)) + << static_cast<u16>(0xDC00 | (n & 0x3ff)); + written += 2; + } else { + *this << static_cast<u16>(c); + written++; + } } + if (written > WIDE_STRING_MAX_LEN) + throw PacketError("String too long"); + writeU16(&m_data[len_offset], written); + return *this; } @@ -223,13 +254,6 @@ NetworkPacket& NetworkPacket::operator>>(char& dst) return *this; } -char NetworkPacket::getChar(u32 offset) -{ - checkReadOffset(offset, 1); - - return readU8(&m_data[offset]); -} - NetworkPacket& NetworkPacket::operator<<(char src) { checkDataSize(1); diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h index fc8617651..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 @@ -64,7 +64,6 @@ public: std::string readLongString(); - char getChar(u32 offset); NetworkPacket &operator>>(char &dst); NetworkPacket &operator<<(char src); diff --git a/src/network/networkprotocol.h b/src/network/networkprotocol.h index fd683eac9..838bf0b2c 100644 --- a/src/network/networkprotocol.h +++ b/src/network/networkprotocol.h @@ -204,6 +204,7 @@ with this program; if not, write to the Free Software Foundation, Inc., PROTOCOL VERSION 39: Updated set_sky packet Adds new sun, moon and stars packets + Minimap modes */ #define LATEST_PROTOCOL_VERSION 39 @@ -225,21 +226,8 @@ 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[] -*/ -#define FORMSPEC_API_VERSION 3 +// See also: Formspec Version History in doc/lua_api.txt +#define FORMSPEC_API_VERSION 4 #define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-" @@ -762,7 +750,18 @@ enum ToClientCommand u8[len] formspec */ - TOCLIENT_NUM_MSG_TYPES = 0x62, + TOCLIENT_MINIMAP_MODES = 0x62, + /* + u16 count // modes + u16 mode // wanted current mode index after change + for each mode + u16 type + std::string label + u16 size + std::string extra + */ + + TOCLIENT_NUM_MSG_TYPES = 0x63, }; enum ToServerCommand @@ -1032,7 +1031,7 @@ const static std::string accessDeniedStrings[SERVER_ACCESSDENIED_MAX] = { "This server has experienced an internal error. You will now be disconnected." }; -enum PlayerListModifer: u8 +enum PlayerListModifer : u8 { PLAYER_LIST_INIT, PLAYER_LIST_ADD, diff --git a/src/network/serveropcodes.cpp b/src/network/serveropcodes.cpp index 2fc3197c2..aea5d7174 100644 --- a/src/network/serveropcodes.cpp +++ b/src/network/serveropcodes.cpp @@ -221,4 +221,5 @@ const ClientCommandFactory clientCommandFactoryTable[TOCLIENT_NUM_MSG_TYPES] = null_command_factory, // 0x5f { "TOSERVER_SRP_BYTES_S_B", 0, true }, // 0x60 { "TOCLIENT_FORMSPEC_PREPEND", 0, true }, // 0x61 + { "TOCLIENT_MINIMAP_MODES", 0, true }, // 0x62 }; diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp index b3008bb50..ddc6f4e47 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; @@ -316,7 +317,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 +438,20 @@ void Server::handleCommand_GotBlocks(NetworkPacket* pkt) u8 count; *pkt >> count; - RemoteClient *client = getClient(pkt->getPeerId()); - if ((s16)pkt->getSize() < 1 + (int)count * 6) { throw con::InvalidIncomingDataException ("GOTBLOCKS length is too short"); } + m_clients.lock(); + RemoteClient *client = m_clients.lockedGetClientNoEx(pkt->getPeerId()); + for (u16 i = 0; i < count; i++) { v3s16 p; *pkt >> p; client->GotBlock(p); } + m_clients.unlock(); } void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao, @@ -485,23 +488,28 @@ 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); playersao->setWantedRange(wanted_range); + player->keyPressed = keyPressed; - player->control.up = (keyPressed & 1); - player->control.down = (keyPressed & 2); - player->control.left = (keyPressed & 4); - player->control.right = (keyPressed & 8); - player->control.jump = (keyPressed & 16); - player->control.aux1 = (keyPressed & 32); - player->control.sneak = (keyPressed & 64); - player->control.LMB = (keyPressed & 128); - player->control.RMB = (keyPressed & 256); - player->control.zoom = (keyPressed & 512); + player->control.up = (keyPressed & (0x1 << 0)); + player->control.down = (keyPressed & (0x1 << 1)); + player->control.left = (keyPressed & (0x1 << 2)); + player->control.right = (keyPressed & (0x1 << 3)); + player->control.jump = (keyPressed & (0x1 << 4)); + player->control.aux1 = (keyPressed & (0x1 << 5)); + player->control.sneak = (keyPressed & (0x1 << 6)); + player->control.dig = (keyPressed & (0x1 << 7)); + player->control.place = (keyPressed & (0x1 << 8)); + player->control.zoom = (keyPressed & (0x1 << 9)); if (playersao->checkMovementCheat()) { // Call callbacks @@ -599,7 +607,7 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) << std::endl; std::istringstream is(datastring, std::ios_base::binary); // Create an action - InventoryAction *a = InventoryAction::deSerialize(is); + std::unique_ptr<InventoryAction> a(InventoryAction::deSerialize(is)); if (!a) { infostream << "TOSERVER_INVENTORY_ACTION: " << "InventoryAction::deSerialize() returned NULL" @@ -616,11 +624,30 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) where the client made a bad prediction. */ + const bool player_has_interact = checkPriv(player->getName(), "interact"); + + auto check_inv_access = [player, player_has_interact] ( + 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) { + infostream << "Cannot modify foreign inventory: " + << "No interact privilege" << std::endl; + return false; + } + return true; + }; + /* Handle restrictions and special cases of the move action */ if (a->getType() == IAction::Move) { - IMoveAction *ma = (IMoveAction*)a; + IMoveAction *ma = (IMoveAction*)a.get(); ma->from_inv.applyCurrentPlayer(player->getName()); ma->to_inv.applyCurrentPlayer(player->getName()); @@ -629,15 +656,11 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) if (ma->from_inv != ma->to_inv) m_inventory_mgr->setInventoryModified(ma->to_inv); - bool from_inv_is_current_player = - (ma->from_inv.type == InventoryLocation::PLAYER) && - (ma->from_inv.name == player->getName()); - - bool to_inv_is_current_player = - (ma->to_inv.type == InventoryLocation::PLAYER) && - (ma->to_inv.name == player->getName()); + if (!check_inv_access(ma->from_inv) || + !check_inv_access(ma->to_inv)) + return; - InventoryLocation *remote = from_inv_is_current_player ? + InventoryLocation *remote = ma->from_inv.type == InventoryLocation::PLAYER ? &ma->to_inv : &ma->from_inv; // Check for out-of-range interaction @@ -657,7 +680,6 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) << (ma->from_inv.dump()) << ":" << ma->from_list << " to " << (ma->to_inv.dump()) << ":" << ma->to_list << " because src is " << ma->from_list << std::endl; - delete a; return; } @@ -669,18 +691,6 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) << (ma->from_inv.dump()) << ":" << ma->from_list << " to " << (ma->to_inv.dump()) << ":" << ma->to_list << " because dst is " << ma->to_list << std::endl; - delete a; - return; - } - - // Disallow moving items in elsewhere than player's inventory - // if not allowed to interact - if (!checkPriv(player->getName(), "interact") && - (!from_inv_is_current_player || - !to_inv_is_current_player)) { - infostream << "Cannot move outside of player's inventory: " - << "No interact privilege" << std::endl; - delete a; return; } } @@ -688,7 +698,7 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) Handle restrictions and special cases of the drop action */ else if (a->getType() == IAction::Drop) { - IDropAction *da = (IDropAction*)a; + IDropAction *da = (IDropAction*)a.get(); da->from_inv.applyCurrentPlayer(player->getName()); @@ -701,22 +711,18 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) infostream << "Ignoring IDropAction from " << (da->from_inv.dump()) << ":" << da->from_list << " because src is " << da->from_list << std::endl; - delete a; return; } // Disallow dropping items if not allowed to interact - if (!checkPriv(player->getName(), "interact")) { - delete a; + if (!player_has_interact || !check_inv_access(da->from_inv)) return; - } // Disallow dropping items if dead if (playersao->isDead()) { infostream << "Ignoring IDropAction from " << (da->from_inv.dump()) << ":" << da->from_list << " because player is dead." << std::endl; - delete a; return; } } @@ -724,48 +730,34 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt) Handle restrictions and special cases of the craft action */ else if (a->getType() == IAction::Craft) { - ICraftAction *ca = (ICraftAction*)a; + ICraftAction *ca = (ICraftAction*)a.get(); ca->craft_inv.applyCurrentPlayer(player->getName()); m_inventory_mgr->setInventoryModified(ca->craft_inv); - //bool craft_inv_is_current_player = - // (ca->craft_inv.type == InventoryLocation::PLAYER) && - // (ca->craft_inv.name == player->getName()); - // Disallow crafting if not allowed to interact - if (!checkPriv(player->getName(), "interact")) { + if (!player_has_interact) { infostream << "Cannot craft: " << "No interact privilege" << std::endl; - delete a; return; } + + if (!check_inv_access(ca->craft_inv)) + return; + } else { + // Unknown action. Ignored. + return; } // Do the action a->apply(m_inventory_mgr.get(), playersao, this); - // Eat the action - delete a; } 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); @@ -777,15 +769,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)); } } @@ -862,6 +852,15 @@ void Server::handleCommand_PlayerItem(NetworkPacket* pkt) *pkt >> item; + if (item >= player->getHotbarItemcount()) { + actionstream << "Player: " << player->getName() + << " tried to access item=" << item + << " out of hotbar_itemcount=" + << player->getHotbarItemcount() + << "; ignoring." << std::endl; + return; + } + playersao->getPlayer()->setWieldIndex(item); } @@ -977,11 +976,17 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) v3f player_pos = playersao->getLastGoodPosition(); // Update wielded item - playersao->getPlayer()->setWieldIndex(item_i); - // Get pointed to node (undefined if not POINTEDTYPE_NODE) - v3s16 p_under = pointed.node_undersurface; - v3s16 p_above = pointed.node_abovesurface; + if (item_i >= player->getHotbarItemcount()) { + actionstream << "Player: " << player->getName() + << " tried to access item=" << item_i + << " out of hotbar_itemcount=" + << player->getHotbarItemcount() + << "; ignoring." << std::endl; + return; + } + + playersao->getPlayer()->setWieldIndex(item_i); // Get pointed to object (NULL if not POINTEDTYPE_OBJECT) ServerActiveObject *pointed_object = NULL; @@ -995,17 +1000,6 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) } - v3f pointed_pos_under = player_pos; - v3f pointed_pos_above = player_pos; - if (pointed.type == POINTEDTHING_NODE) { - pointed_pos_under = intToFloat(p_under, BS); - pointed_pos_above = intToFloat(p_above, BS); - } - else if (pointed.type == POINTEDTHING_OBJECT) { - pointed_pos_under = pointed_object->getBasePosition(); - pointed_pos_above = pointed_pos_under; - } - /* Make sure the player is allowed to do it */ @@ -1013,16 +1007,19 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) actionstream << player->getName() << " attempted to interact with " << pointed.dump() << " without 'interact' privilege" << std::endl; + if (pointed.type != POINTEDTHING_NODE) + return; + // Re-send block to revert change on client-side RemoteClient *client = getClient(peer_id); // Digging completed -> under if (action == INTERACT_DIGGING_COMPLETED) { - v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_under, BS)); + v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface); client->SetBlockNotSent(blockpos); } // Placement -> above else if (action == INTERACT_PLACE) { - v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_above, BS)); + v3s16 blockpos = getNodeBlockPos(pointed.node_abovesurface); client->SetBlockNotSent(blockpos); } return; @@ -1030,7 +1027,6 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) /* Check that target is reasonably close - (only when digging or placing things) */ static thread_local const bool enable_anticheat = !g_settings->getBool("disable_anticheat"); @@ -1038,13 +1034,21 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) if ((action == INTERACT_START_DIGGING || action == INTERACT_DIGGING_COMPLETED || action == INTERACT_PLACE || action == INTERACT_USE) && enable_anticheat && !isSingleplayer()) { - float d = playersao->getEyePosition().getDistanceFrom(pointed_pos_under); + v3f target_pos = player_pos; + if (pointed.type == POINTEDTHING_NODE) { + target_pos = intToFloat(pointed.node_undersurface, BS); + } else if (pointed.type == POINTEDTHING_OBJECT) { + target_pos = pointed_object->getBasePosition(); + } + float d = playersao->getEyePosition().getDistanceFrom(target_pos); if (!checkInteractDistance(player, d, pointed.dump())) { - // Re-send block to revert change on client-side - RemoteClient *client = getClient(peer_id); - v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_under, BS)); - client->SetBlockNotSent(blockpos); + if (pointed.type == POINTEDTHING_NODE) { + // Re-send block to revert change on client-side + RemoteClient *client = getClient(peer_id); + v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface); + client->SetBlockNotSent(blockpos); + } return; } } @@ -1055,20 +1059,20 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) RollbackScopeActor rollback_scope(m_rollback, std::string("player:")+player->getName()); - /* - 0: start digging or punch object - */ - if (action == INTERACT_START_DIGGING) { + switch (action) { + // Start digging or punch object + case INTERACT_START_DIGGING: { if (pointed.type == POINTEDTHING_NODE) { MapNode n(CONTENT_IGNORE); bool pos_ok; + v3s16 p_under = pointed.node_undersurface; n = m_env->getMap().getNode(p_under, &pos_ok); if (!pos_ok) { infostream << "Server: Not punching: Node not found. " "Adding block to emerge queue." << std::endl; - m_emerge->enqueueBlockEmerge(peer_id, getNodeBlockPos(p_above), - false); + m_emerge->enqueueBlockEmerge(peer_id, + getNodeBlockPos(pointed.node_abovesurface), false); } if (n.getContent() != CONTENT_IGNORE) @@ -1076,159 +1080,155 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) // Cheat prevention playersao->noCheatDigStart(p_under); + + return; } - else if (pointed.type == POINTEDTHING_OBJECT) { - // Skip if object can't be interacted with anymore - if (pointed_object->isGone()) - return; - ItemStack selected_item, hand_item; - ItemStack tool_item = playersao->getWieldedItem(&selected_item, &hand_item); - ToolCapabilities toolcap = - tool_item.getToolCapabilities(m_itemdef); - v3f dir = (pointed_object->getBasePosition() - - (playersao->getBasePosition() + playersao->getEyeOffset()) - ).normalize(); - float time_from_last_punch = - playersao->resetTimeFromLastPunch(); - - u16 src_original_hp = pointed_object->getHP(); - u16 dst_origin_hp = playersao->getHP(); - - u16 wear = pointed_object->punch(dir, &toolcap, playersao, - time_from_last_punch); - - // Callback may have changed item, so get it again - playersao->getWieldedItem(&selected_item); - bool changed = selected_item.addWear(wear, m_itemdef); - if (changed) - playersao->setWieldedItem(selected_item); - - // If the object is a player and its HP changed - if (src_original_hp != pointed_object->getHP() && - pointed_object->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - SendPlayerHPOrDie((PlayerSAO *)pointed_object, - PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, playersao)); - } + // Skip if the object can't be interacted with anymore + if (pointed.type != POINTEDTHING_OBJECT || pointed_object->isGone()) + return; - // If the puncher is a player and its HP changed - if (dst_origin_hp != playersao->getHP()) - SendPlayerHPOrDie(playersao, - PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, pointed_object)); + ItemStack selected_item, hand_item; + ItemStack tool_item = playersao->getWieldedItem(&selected_item, &hand_item); + ToolCapabilities toolcap = + tool_item.getToolCapabilities(m_itemdef); + v3f dir = (pointed_object->getBasePosition() - + (playersao->getBasePosition() + playersao->getEyeOffset()) + ).normalize(); + float time_from_last_punch = + playersao->resetTimeFromLastPunch(); + + u16 src_original_hp = pointed_object->getHP(); + u16 dst_origin_hp = playersao->getHP(); + + u16 wear = pointed_object->punch(dir, &toolcap, playersao, + time_from_last_punch); + + // Callback may have changed item, so get it again + playersao->getWieldedItem(&selected_item); + bool changed = selected_item.addWear(wear, m_itemdef); + if (changed) + playersao->setWieldedItem(selected_item); + + // If the object is a player and its HP changed + if (src_original_hp != pointed_object->getHP() && + pointed_object->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + SendPlayerHPOrDie((PlayerSAO *)pointed_object, + PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, playersao)); } + // If the puncher is a player and its HP changed + if (dst_origin_hp != playersao->getHP()) + SendPlayerHPOrDie(playersao, + PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, pointed_object)); + + return; } // action == INTERACT_START_DIGGING - /* - 1: stop digging - */ - else if (action == INTERACT_STOP_DIGGING) { - } // action == INTERACT_STOP_DIGGING + case INTERACT_STOP_DIGGING: + // Nothing to do + return; - /* - 2: Digging completed - */ - else if (action == INTERACT_DIGGING_COMPLETED) { + case INTERACT_DIGGING_COMPLETED: { // Only digging of nodes - if (pointed.type == POINTEDTHING_NODE) { - bool pos_ok; - MapNode n = m_env->getMap().getNode(p_under, &pos_ok); - if (!pos_ok) { - infostream << "Server: Not finishing digging: Node not found. " - "Adding block to emerge queue." << std::endl; - m_emerge->enqueueBlockEmerge(peer_id, getNodeBlockPos(p_above), - false); - } - - /* Cheat prevention */ - bool is_valid_dig = true; - if (enable_anticheat && !isSingleplayer()) { - v3s16 nocheat_p = playersao->getNoCheatDigPos(); - float nocheat_t = playersao->getNoCheatDigTime(); - playersao->noCheatDigEnd(); - // If player didn't start digging this, ignore dig - if (nocheat_p != p_under) { - infostream << "Server: " << player->getName() - << " started digging " - << PP(nocheat_p) << " and completed digging " - << PP(p_under) << "; not digging." << std::endl; - is_valid_dig = false; - // Call callbacks - m_script->on_cheat(playersao, "finished_unknown_dig"); - } + if (pointed.type != POINTEDTHING_NODE) + return; + bool pos_ok; + v3s16 p_under = pointed.node_undersurface; + MapNode n = m_env->getMap().getNode(p_under, &pos_ok); + if (!pos_ok) { + infostream << "Server: Not finishing digging: Node not found. " + "Adding block to emerge queue." << std::endl; + m_emerge->enqueueBlockEmerge(peer_id, + getNodeBlockPos(pointed.node_abovesurface), false); + } - // Get player's wielded item - // See also: Game::handleDigging - ItemStack selected_item, hand_item; - playersao->getPlayer()->getWieldedItem(&selected_item, &hand_item); - - // Get diggability and expected digging time - DigParams params = getDigParams(m_nodedef->get(n).groups, - &selected_item.getToolCapabilities(m_itemdef)); - // If can't dig, try hand - if (!params.diggable) { - params = getDigParams(m_nodedef->get(n).groups, - &hand_item.getToolCapabilities(m_itemdef)); - } - // If can't dig, ignore dig - if (!params.diggable) { - infostream << "Server: " << player->getName() - << " completed digging " << PP(p_under) - << ", which is not diggable with tool; not digging." - << std::endl; - is_valid_dig = false; - // Call callbacks - m_script->on_cheat(playersao, "dug_unbreakable"); - } - // Check digging time - // If already invalidated, we don't have to - if (!is_valid_dig) { - // Well not our problem then - } - // Clean and long dig - else if (params.time > 2.0 && nocheat_t * 1.2 > params.time) { - // All is good, but grab time from pool; don't care if - // it's actually available - playersao->getDigPool().grab(params.time); - } - // Short or laggy dig - // Try getting the time from pool - else if (playersao->getDigPool().grab(params.time)) { - // All is good - } - // Dig not possible - else { - infostream << "Server: " << player->getName() - << " completed digging " << PP(p_under) - << "too fast; not digging." << std::endl; - is_valid_dig = false; - // Call callbacks - m_script->on_cheat(playersao, "dug_too_fast"); - } + /* Cheat prevention */ + bool is_valid_dig = true; + if (enable_anticheat && !isSingleplayer()) { + v3s16 nocheat_p = playersao->getNoCheatDigPos(); + float nocheat_t = playersao->getNoCheatDigTime(); + playersao->noCheatDigEnd(); + // If player didn't start digging this, ignore dig + if (nocheat_p != p_under) { + infostream << "Server: " << player->getName() + << " started digging " + << PP(nocheat_p) << " and completed digging " + << PP(p_under) << "; not digging." << std::endl; + is_valid_dig = false; + // Call callbacks + m_script->on_cheat(playersao, "finished_unknown_dig"); } - /* Actually dig node */ - - if (is_valid_dig && n.getContent() != CONTENT_IGNORE) - m_script->node_on_dig(p_under, n, playersao); - - v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_under, BS)); - RemoteClient *client = getClient(peer_id); - // Send unusual result (that is, node not being removed) - if (m_env->getMap().getNode(p_under).getContent() != CONTENT_AIR) { - // Re-send block to revert change on client-side - client->SetBlockNotSent(blockpos); + // Get player's wielded item + // See also: Game::handleDigging + ItemStack selected_item, hand_item; + playersao->getPlayer()->getWieldedItem(&selected_item, &hand_item); + + // Get diggability and expected digging time + DigParams params = getDigParams(m_nodedef->get(n).groups, + &selected_item.getToolCapabilities(m_itemdef)); + // If can't dig, try hand + if (!params.diggable) { + params = getDigParams(m_nodedef->get(n).groups, + &hand_item.getToolCapabilities(m_itemdef)); + } + // If can't dig, ignore dig + if (!params.diggable) { + infostream << "Server: " << player->getName() + << " completed digging " << PP(p_under) + << ", which is not diggable with tool; not digging." + << std::endl; + is_valid_dig = false; + // Call callbacks + m_script->on_cheat(playersao, "dug_unbreakable"); + } + // Check digging time + // If already invalidated, we don't have to + if (!is_valid_dig) { + // Well not our problem then + } + // Clean and long dig + else if (params.time > 2.0 && nocheat_t * 1.2 > params.time) { + // All is good, but grab time from pool; don't care if + // it's actually available + playersao->getDigPool().grab(params.time); } + // Short or laggy dig + // Try getting the time from pool + else if (playersao->getDigPool().grab(params.time)) { + // All is good + } + // Dig not possible else { - client->ResendBlockIfOnWire(blockpos); + infostream << "Server: " << player->getName() + << " completed digging " << PP(p_under) + << "too fast; not digging." << std::endl; + is_valid_dig = false; + // Call callbacks + m_script->on_cheat(playersao, "dug_too_fast"); } } + + /* Actually dig node */ + + if (is_valid_dig && n.getContent() != CONTENT_IGNORE) + m_script->node_on_dig(p_under, n, playersao); + + v3s16 blockpos = getNodeBlockPos(p_under); + RemoteClient *client = getClient(peer_id); + // Send unusual result (that is, node not being removed) + if (m_env->getMap().getNode(p_under).getContent() != CONTENT_AIR) + // Re-send block to revert change on client-side + client->SetBlockNotSent(blockpos); + else + client->ResendBlockIfOnWire(blockpos); + + return; } // action == INTERACT_DIGGING_COMPLETED - /* - 3: place block or right-click object - */ - else if (action == INTERACT_PLACE) { + // Place block or right-click object + case INTERACT_PLACE: { ItemStack selected_item; playersao->getWieldedItem(&selected_item, nullptr); @@ -1257,59 +1257,54 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) } pointed_object->rightClick(playersao); - } else if (m_script->item_OnPlace( - selected_item, playersao, pointed)) { + } else if (m_script->item_OnPlace(selected_item, playersao, pointed)) { // Placement was handled in lua // Apply returned ItemStack - if (playersao->setWieldedItem(selected_item)) { + if (playersao->setWieldedItem(selected_item)) SendInventory(playersao, true); - } } + if (pointed.type != POINTEDTHING_NODE) + return; + // If item has node placement prediction, always send the // blocks to make sure the client knows what exactly happened RemoteClient *client = getClient(peer_id); - v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_above, BS)); - v3s16 blockpos2 = getNodeBlockPos(floatToInt(pointed_pos_under, BS)); - if (!selected_item.getDefinition(m_itemdef).node_placement_prediction.empty()) { + v3s16 blockpos = getNodeBlockPos(pointed.node_abovesurface); + v3s16 blockpos2 = getNodeBlockPos(pointed.node_undersurface); + if (!selected_item.getDefinition(m_itemdef + ).node_placement_prediction.empty()) { client->SetBlockNotSent(blockpos); - if (blockpos2 != blockpos) { + if (blockpos2 != blockpos) client->SetBlockNotSent(blockpos2); - } - } - else { + } else { client->ResendBlockIfOnWire(blockpos); - if (blockpos2 != blockpos) { + if (blockpos2 != blockpos) client->ResendBlockIfOnWire(blockpos2); - } } + + return; } // action == INTERACT_PLACE - /* - 4: use - */ - else if (action == INTERACT_USE) { + case INTERACT_USE: { ItemStack selected_item; playersao->getWieldedItem(&selected_item, nullptr); actionstream << player->getName() << " uses " << selected_item.name << ", pointing at " << pointed.dump() << std::endl; - if (m_script->item_OnUse( - selected_item, playersao, pointed)) { + if (m_script->item_OnUse(selected_item, playersao, pointed)) { // Apply returned ItemStack - if (playersao->setWieldedItem(selected_item)) { + if (playersao->setWieldedItem(selected_item)) SendInventory(playersao, true); - } } - } // action == INTERACT_USE + return; + } - /* - 5: rightclick air - */ - else if (action == INTERACT_ACTIVATE) { + // Rightclick air + case INTERACT_ACTIVATE: { ItemStack selected_item; playersao->getWieldedItem(&selected_item, nullptr); @@ -1318,21 +1313,17 @@ void Server::handleCommand_Interact(NetworkPacket *pkt) pointed.type = POINTEDTHING_NOTHING; // can only ever be NOTHING - if (m_script->item_OnSecondaryUse( - selected_item, playersao, pointed)) { - if (playersao->setWieldedItem(selected_item)) { + if (m_script->item_OnSecondaryUse(selected_item, playersao, pointed)) { + if (playersao->setWieldedItem(selected_item)) SendInventory(playersao, true); - } } - } // action == INTERACT_ACTIVATE + return; + } + + default: + warningstream << "Server: Invalid action " << action << std::endl; - /* - Catch invalid actions - */ - else { - warningstream << "Server: Invalid action " - << action << std::endl; } } @@ -1658,19 +1649,18 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt) bool wantSudo = (cstate == CS_Active); - verbosestream << "Server: Received TOCLIENT_SRP_BYTES_M." << std::endl; + verbosestream << "Server: Received TOSERVER_SRP_BYTES_M." << std::endl; if (!((cstate == CS_HelloSent) || (cstate == CS_Active))) { - actionstream << "Server: got SRP _M packet in wrong state " - << cstate << " from " << addr_s - << ". Ignoring." << std::endl; + warningstream << "Server: got SRP_M packet in wrong state " + << cstate << " from " << addr_s << ". Ignoring." << std::endl; return; } if (client->chosen_mech != AUTH_MECHANISM_SRP && client->chosen_mech != AUTH_MECHANISM_LEGACY_PASSWORD) { - actionstream << "Server: got SRP _M packet, while auth" - << "is going on with mech " << client->chosen_mech << " from " + warningstream << "Server: got SRP_M packet, while auth " + "is going on with mech " << client->chosen_mech << " from " << addr_s << " (wantSudo=" << wantSudo << "). Denying." << std::endl; if (wantSudo) { DenySudoAccess(peer_id); @@ -1718,7 +1708,7 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt) std::string checkpwd; // not used, but needed for passing something if (!m_script->getAuth(playername, &checkpwd, NULL)) { - actionstream << "Server: " << playername << + errorstream << "Server: " << playername << " cannot be authenticated (auth handler does not work?)" << std::endl; DenyAccess(peer_id, SERVER_ACCESSDENIED_SERVER_FAIL); diff --git a/src/nodedef.cpp b/src/nodedef.cpp index a84338752..57d4c008f 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -207,7 +207,7 @@ void TileDef::serialize(std::ostream &os, u16 protocol_version) const u8 version = 6; writeU8(os, version); - os << serializeString(name); + os << serializeString16(name); animation.serialize(os, version); bool has_scale = scale > 0; u16 flags = 0; @@ -241,7 +241,7 @@ void TileDef::deSerialize(std::istream &is, u8 contentfeatures_version, int version = readU8(is); if (version < 6) throw SerializationError("unsupported TileDef version"); - name = deSerializeString(is); + name = deSerializeString16(is); animation.deSerialize(is, version); u16 flags = readU16(is); backface_culling = flags & TILE_FLAG_BACKFACE_CULLING; @@ -266,9 +266,6 @@ void TextureSettings::readSettings() { connected_glass = g_settings->getBool("connected_glass"); opaque_water = g_settings->getBool("opaque_water"); - bool enable_shaders = g_settings->getBool("enable_shaders"); - bool enable_bumpmapping = g_settings->getBool("enable_bumpmapping"); - bool enable_parallax_occlusion = g_settings->getBool("enable_parallax_occlusion"); bool smooth_lighting = g_settings->getBool("smooth_lighting"); enable_mesh_cache = g_settings->getBool("enable_mesh_cache"); enable_minimap = g_settings->getBool("enable_minimap"); @@ -281,8 +278,6 @@ void TextureSettings::readSettings() if (smooth_lighting) enable_mesh_cache = false; - use_normal_texture = enable_shaders && - (enable_bumpmapping || enable_parallax_occlusion); if (leaves_style_str == "fancy") { leaves_style = LEAVES_FANCY; } else if (leaves_style_str == "simple") { @@ -317,6 +312,18 @@ ContentFeatures::ContentFeatures() reset(); } +ContentFeatures::~ContentFeatures() +{ +#ifndef SERVER + for (u16 j = 0; j < 6; j++) { + delete tiles[j].layers[0].frames; + delete tiles[j].layers[1].frames; + } + for (u16 j = 0; j < CF_SPECIAL_COUNT; j++) + delete special_tiles[j].layers[0].frames; +#endif +} + void ContentFeatures::reset() { /* @@ -353,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; @@ -398,16 +405,41 @@ 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; writeU8(os, version); // general - os << serializeString(name); + os << serializeString16(name); writeU16(os, groups.size()); for (const auto &group : groups) { - os << serializeString(group.first); + os << serializeString16(group.first); writeS16(os, group.second); } writeU8(os, param_type); @@ -415,7 +447,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const // visual writeU8(os, drawtype); - os << serializeString(mesh); + os << serializeString16(mesh); writeF32(os, visual_scale); writeU8(os, 6); for (const TileDef &td : tiledef) @@ -426,11 +458,11 @@ 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()); - os << serializeString(palette_name); + os << serializeString16(palette_name); writeU8(os, waving); writeU8(os, connect_sides); writeU16(os, connects_to_ids.size()); @@ -458,8 +490,8 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const // liquid writeU8(os, liquid_type); - os << serializeString(liquid_alternative_flowing); - os << serializeString(liquid_alternative_source); + os << serializeString16(liquid_alternative_flowing); + os << serializeString16(liquid_alternative_source); writeU8(os, liquid_viscosity); writeU8(os, liquid_renewable); writeU8(os, liquid_range); @@ -480,23 +512,9 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const writeU8(os, legacy_facedir_simple); writeU8(os, legacy_wallmounted); - os << serializeString(node_dig_prediction); + os << serializeString16(node_dig_prediction); writeU8(os, leveled_max); -} - -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) @@ -507,11 +525,11 @@ void ContentFeatures::deSerialize(std::istream &is) throw SerializationError("unsupported ContentFeatures version"); // general - name = deSerializeString(is); + name = deSerializeString16(is); groups.clear(); u32 groups_size = readU16(is); for (u32 i = 0; i < groups_size; i++) { - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); int value = readS16(is); groups[name] = value; } @@ -520,7 +538,7 @@ void ContentFeatures::deSerialize(std::istream &is) // visual drawtype = (enum NodeDrawType) readU8(is); - mesh = deSerializeString(is); + mesh = deSerializeString16(is); visual_scale = readF32(is); if (readU8(is) != 6) throw SerializationError("unsupported tile count"); @@ -532,11 +550,11 @@ 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)); - palette_name = deSerializeString(is); + palette_name = deSerializeString16(is); waving = readU8(is); connect_sides = readU8(is); u16 connects_to_size = readU16(is); @@ -566,8 +584,8 @@ void ContentFeatures::deSerialize(std::istream &is) // liquid liquid_type = (enum LiquidType) readU8(is); - liquid_alternative_flowing = deSerializeString(is); - liquid_alternative_source = deSerializeString(is); + liquid_alternative_flowing = deSerializeString16(is); + liquid_alternative_source = deSerializeString16(is); liquid_viscosity = readU8(is); liquid_renewable = readU8(is); liquid_range = readU8(is); @@ -589,11 +607,17 @@ void ContentFeatures::deSerialize(std::istream &is) legacy_wallmounted = readU8(is); try { - node_dig_prediction = deSerializeString(is); - u8 tmp_leveled_max = readU8(is); + node_dig_prediction = deSerializeString16(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<enum AlphaMode>(tmp); } catch(SerializationError &e) {}; } @@ -610,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); @@ -623,10 +647,6 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer, if (!tile.world_aligned) layer->scale = 1; - // Normal texture and shader flags texture - if (tsettings.use_normal_texture) { - layer->normal_texture = tsrc->getNormalTexture(tiledef.name); - } layer->flags_texture = tsrc->getShaderFlagsTexture(layer->normal_texture ? true : false); // Material flags @@ -662,7 +682,7 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer, } else { std::ostringstream os(std::ios::binary); if (!layer->frames) { - layer->frames = std::make_shared<std::vector<FrameSpec>>(); + layer->frames = new std::vector<FrameSpec>(); } layer->frames->resize(frame_count); @@ -683,9 +703,56 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer, } } } -#endif -#ifndef SERVER +bool ContentFeatures::textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles, int length) +{ + video::IVideoDriver *driver = RenderingEngine::get_video_driver(); + static thread_local bool long_warning_printed = false; + std::set<std::string> seen; + + for (int i = 0; i < length; i++) { + if (seen.find(tiles[i].name) != seen.end()) + continue; + seen.insert(tiles[i].name); + + // Load the texture and see if there's any transparent pixels + video::ITexture *texture = tsrc->getTexture(tiles[i].name); + video::IImage *image = driver->createImage(texture, + core::position2d<s32>(0, 0), texture->getOriginalSize()); + if (!image) + continue; + core::dimension2d<u32> dim = image->getDimension(); + bool ok = true; + for (u16 x = 0; x < dim.Width; x++) { + for (u16 y = 0; y < dim.Height; y++) { + if (image->getPixel(x, y).getAlpha() < 255) { + ok = false; + goto break_loop; + } + } + } + +break_loop: + image->drop(); + 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; +} + bool isWorldAligned(AlignStyle style, WorldAlignMode mode, NodeDrawType drawtype) { if (style == ALIGN_STYLE_WORLD) @@ -726,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: @@ -803,12 +872,15 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc case NDT_MESH: case NDT_NODEBOX: 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 = TILE_MATERIAL_WAVING_LIQUID_BASIC; + } 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: @@ -822,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) @@ -859,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; @@ -1325,6 +1393,7 @@ void NodeDefManager::applyTextureOverrides(const std::vector<TextureOverride> &o ContentFeatures &nodedef = m_content_features[id]; + // Override tiles if (texture_override.hasTarget(OverrideTarget::TOP)) nodedef.tiledef[0].name = texture_override.texture; @@ -1342,6 +1411,26 @@ void NodeDefManager::applyTextureOverrides(const std::vector<TextureOverride> &o if (texture_override.hasTarget(OverrideTarget::FRONT)) nodedef.tiledef[5].name = texture_override.texture; + + + // Override special tiles, if applicable + if (texture_override.hasTarget(OverrideTarget::SPECIAL_1)) + nodedef.tiledef_special[0].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_2)) + nodedef.tiledef_special[1].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_3)) + nodedef.tiledef_special[2].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_4)) + nodedef.tiledef_special[3].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_5)) + nodedef.tiledef_special[4].name = texture_override.texture; + + if (texture_override.hasTarget(OverrideTarget::SPECIAL_6)) + nodedef.tiledef_special[5].name = texture_override.texture; } } @@ -1388,7 +1477,7 @@ void NodeDefManager::serialize(std::ostream &os, u16 protocol_version) const // strict version incompatibilities std::ostringstream wrapper_os(std::ios::binary); f->serialize(wrapper_os, protocol_version); - os2<<serializeString(wrapper_os.str()); + os2<<serializeString16(wrapper_os.str()); // must not overflow u16 next = count + 1; @@ -1396,7 +1485,7 @@ void NodeDefManager::serialize(std::ostream &os, u16 protocol_version) const count++; } writeU16(os, count); - os << serializeLongString(os2.str()); + os << serializeString32(os2.str()); } @@ -1407,13 +1496,13 @@ void NodeDefManager::deSerialize(std::istream &is) if (version != 1) throw SerializationError("unsupported NodeDefinitionManager version"); u16 count = readU16(is); - std::istringstream is2(deSerializeLongString(is), std::ios::binary); + std::istringstream is2(deSerializeString32(is), std::ios::binary); ContentFeatures f; for (u16 n = 0; n < count; n++) { u16 i = readU16(is2); // Read it from the string wrapper - std::string wrapper = deSerializeString(is2); + std::string wrapper = deSerializeString16(is2); std::istringstream wrapper_is(wrapper, std::ios::binary); f.deSerialize(wrapper_is); @@ -1521,7 +1610,7 @@ static void removeDupes(std::vector<content_t> &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; diff --git a/src/nodedef.h b/src/nodedef.h index 0992001e1..6fc20518d 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -158,7 +158,6 @@ public: int node_texture_size; bool opaque_water; bool connected_glass; - bool use_normal_texture; bool enable_mesh_cache; bool enable_minimap; @@ -232,6 +231,14 @@ enum AlignStyle : u8 { ALIGN_STYLE_USER_DEFINED, }; +enum AlphaMode : u8 { + ALPHAMODE_BLEND, + ALPHAMODE_CLIP, + ALPHAMODE_OPAQUE, + ALPHAMODE_LEGACY_COMPAT, /* means either opaque or clip */ +}; + + /* Stand-alone definition of a TileSpec (basically a server-side TileSpec) */ @@ -261,6 +268,11 @@ struct TileDef NodeDrawType drawtype); }; +// Defines the number of special tiles per nodedef +// +// NOTE: When changing this value, the enum entries of OverrideTarget and +// parser in TextureOverrideSource must be updated so that all special +// tiles can be overridden. #define CF_SPECIAL_COUNT 6 struct ContentFeatures @@ -311,9 +323,7 @@ struct ContentFeatures // These will be drawn over the base tiles. TileDef tiledef_overlay[6]; TileDef tiledef_special[CF_SPECIAL_COUNT]; // eg. flowing liquid - // If 255, the node is opaque. - // Otherwise it uses texture alpha. - u8 alpha; + AlphaMode alpha; // The color of the node. video::SColor color; std::string palette_name; @@ -409,22 +419,48 @@ struct ContentFeatures */ ContentFeatures(); - ~ContentFeatures() = default; + ~ContentFeatures(); void reset(); 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); /* 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) { + case NDT_TORCHLIKE: + case NDT_SIGNLIKE: + case NDT_FIRELIKE: + case NDT_RAILLIKE: + case NDT_PLANTLIKE: + case NDT_PLANTLIKE_ROOTED: + case NDT_MESH: + return false; + default: + return true; + } + } + bool isLiquid() const{ return (liquid_type != LIQUID_NONE); } @@ -442,6 +478,21 @@ struct ContentFeatures void updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc, scene::IMeshManipulator *meshmanip, Client *client, const TextureSettings &tsettings); #endif + +private: +#ifndef SERVER + /* + * Checks if any tile texture has any transparent pixels. + * Prints a warning and returns true if that is the case, false otherwise. + * This is supposed to be used for use_texture_alpha backwards compatibility. + */ + bool textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles, + int length); +#endif + + void setAlphaFromLegacy(u8 legacy_alpha); + + u8 getAlphaForLegacy() const; }; /*! diff --git a/src/nodemetadata.cpp b/src/nodemetadata.cpp index b84ffc8cb..6447c8785 100644 --- a/src/nodemetadata.cpp +++ b/src/nodemetadata.cpp @@ -49,8 +49,8 @@ void NodeMetadata::serialize(std::ostream &os, u8 version, bool disk) const if (!disk && priv) continue; - os << serializeString(sv.first); - os << serializeLongString(sv.second); + os << serializeString16(sv.first); + os << serializeString32(sv.second); if (version >= 2) writeU8(os, (priv) ? 1 : 0); } @@ -63,8 +63,8 @@ void NodeMetadata::deSerialize(std::istream &is, u8 version) clear(); int num_vars = readU32(is); for(int i=0; i<num_vars; i++){ - std::string name = deSerializeString(is); - std::string var = deSerializeLongString(is); + std::string name = deSerializeString16(is); + std::string var = deSerializeString32(is); m_stringvars[name] = var; if (version >= 2) { if (readU8(is) == 1) diff --git a/src/noise.cpp b/src/noise.cpp index 5a1d989cb..e16564b05 100644 --- a/src/noise.cpp +++ b/src/noise.cpp @@ -424,7 +424,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) { - memcpy(&np, np_, sizeof(np)); + np = *np_; this->seed = seed; this->sx = sx; this->sy = sy; diff --git a/src/noise.h b/src/noise.h index 7b5e83251..613879890 100644 --- a/src/noise.h +++ b/src/noise.h @@ -29,6 +29,13 @@ #include "exceptions.h" #include "util/string.h" +#if defined(RANDOM_MIN) +#undef RANDOM_MIN +#endif +#if defined(RANDOM_MAX) +#undef RANDOM_MAX +#endif + extern FlagDesc flagdesc_noiseparams[]; // Note: this class is not polymorphic so that its high level of diff --git a/src/object_properties.cpp b/src/object_properties.cpp index 8d51bcbfa..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 <sstream> +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; @@ -70,6 +79,7 @@ std::string ObjectProperties::dump() os << ", use_texture_alpha=" << use_texture_alpha; os << ", damage_texture_modifier=" << damage_texture_modifier; os << ", shaded=" << shaded; + os << ", show_on_minimap=" << show_on_minimap; return os.str(); } @@ -84,11 +94,11 @@ void ObjectProperties::serialize(std::ostream &os) const writeV3F32(os, selectionbox.MinEdge); writeV3F32(os, selectionbox.MaxEdge); writeU8(os, pointable); - os << serializeString(visual); + os << serializeString16(visual); writeV3F32(os, visual_size); writeU16(os, textures.size()); for (const std::string &texture : textures) { - os << serializeString(texture); + os << serializeString16(texture); } writeV2S16(os, spritediv); writeV2S16(os, initial_sprite_basepos); @@ -96,7 +106,7 @@ void ObjectProperties::serialize(std::ostream &os) const writeU8(os, makes_footstep_sound); writeF32(os, automatic_rotate); // Added in protocol version 14 - os << serializeString(mesh); + os << serializeString16(mesh); writeU16(os, colors.size()); for (video::SColor color : colors) { writeARGB8(os, color); @@ -106,18 +116,26 @@ void ObjectProperties::serialize(std::ostream &os) const writeU8(os, automatic_face_movement_dir); writeF32(os, automatic_face_movement_dir_offset); writeU8(os, backface_culling); - os << serializeString(nametag); + os << serializeString16(nametag); writeARGB8(os, nametag_color); writeF32(os, automatic_face_movement_max_rotation_per_sec); - os << serializeString(infotext); - os << serializeString(wield_item); + os << serializeString16(infotext); + os << serializeString16(wield_item); writeS8(os, glow); writeU16(os, breath_max); writeF32(os, eye_height); writeF32(os, zoom_fov); writeU8(os, use_texture_alpha); - os << serializeString(damage_texture_modifier); + os << serializeString16(damage_texture_modifier); writeU8(os, shaded); + 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 @@ -137,19 +155,19 @@ void ObjectProperties::deSerialize(std::istream &is) selectionbox.MinEdge = readV3F32(is); selectionbox.MaxEdge = readV3F32(is); pointable = readU8(is); - visual = deSerializeString(is); + visual = deSerializeString16(is); visual_size = readV3F32(is); textures.clear(); u32 texture_count = readU16(is); for (u32 i = 0; i < texture_count; i++){ - textures.push_back(deSerializeString(is)); + textures.push_back(deSerializeString16(is)); } spritediv = readV2S16(is); initial_sprite_basepos = readV2S16(is); is_visible = readU8(is); makes_footstep_sound = readU8(is); automatic_rotate = readF32(is); - mesh = deSerializeString(is); + mesh = deSerializeString16(is); colors.clear(); u32 color_count = readU16(is); for (u32 i = 0; i < color_count; i++){ @@ -160,21 +178,31 @@ void ObjectProperties::deSerialize(std::istream &is) automatic_face_movement_dir = readU8(is); automatic_face_movement_dir_offset = readF32(is); backface_culling = readU8(is); - nametag = deSerializeString(is); + nametag = deSerializeString16(is); nametag_color = readARGB8(is); automatic_face_movement_max_rotation_per_sec = readF32(is); - infotext = deSerializeString(is); - wield_item = deSerializeString(is); + infotext = deSerializeString16(is); + wield_item = deSerializeString16(is); glow = readS8(is); breath_max = readU16(is); eye_height = readF32(is); zoom_fov = readF32(is); use_texture_alpha = readU8(is); try { - damage_texture_modifier = deSerializeString(is); + damage_texture_modifier = deSerializeString16(is); u8 tmp = readU8(is); if (is.eof()) - throw SerializationError(""); + return; shaded = tmp; + tmp = readU8(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 f010c1daf..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 <iostream> #include <map> #include <vector> +#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<video::SColor> nametag_bgcolor = nullopt; f32 automatic_face_movement_max_rotation_per_sec = -1.0f; std::string infotext; //! For dropped items, this contains item information. @@ -62,6 +64,7 @@ struct ObjectProperties float zoom_fov = 0.0f; bool use_texture_alpha = false; bool shaded = true; + bool show_on_minimap = false; ObjectProperties(); std::string dump(); diff --git a/src/particles.cpp b/src/particles.cpp index fd81238dc..14c987958 100644 --- a/src/particles.cpp +++ b/src/particles.cpp @@ -28,7 +28,7 @@ void ParticleParameters::serialize(std::ostream &os, u16 protocol_ver) const writeF32(os, expirationtime); writeF32(os, size); writeU8(os, collisiondetection); - os << serializeLongString(texture); + os << serializeString32(texture); writeU8(os, vertical); writeU8(os, collision_removal); animation.serialize(os, 6); /* NOT the protocol ver */ @@ -47,7 +47,7 @@ void ParticleParameters::deSerialize(std::istream &is, u16 protocol_ver) expirationtime = readF32(is); size = readF32(is); collisiondetection = readU8(is); - texture = deSerializeLongString(is); + texture = deSerializeString32(is); vertical = readU8(is); collision_removal = readU8(is); animation.deSerialize(is, 6); /* NOT the protocol ver */ diff --git a/src/pathfinder.cpp b/src/pathfinder.cpp index 3f0b98c10..1cb84997a 100644 --- a/src/pathfinder.cpp +++ b/src/pathfinder.cpp @@ -157,9 +157,8 @@ public: ArrayGridNodeContainer(Pathfinder *pathf, v3s16 dimensions); virtual PathGridnode &access(v3s16 p); -private: - v3s16 m_dimensions; +private: int m_x_stride; int m_y_stride; std::vector<PathGridnode> 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<v3s16> Pathfinder::getPath(v3s16 source, std::vector<v3s16> retval; //initialization - m_searchdistance = searchdistance; m_maxjump = max_jump; m_maxdrop = max_drop; m_start = source; diff --git a/src/player.h b/src/player.h index 3bc7762fa..ec068a8b1 100644 --- a/src/player.h +++ b/src/player.h @@ -57,8 +57,8 @@ struct PlayerControl bool a_aux1, bool a_sneak, bool a_zoom, - bool a_LMB, - bool a_RMB, + bool a_dig, + bool a_place, float a_pitch, float a_yaw, float a_sidew_move_joystick_axis, @@ -73,8 +73,8 @@ struct PlayerControl aux1 = a_aux1; sneak = a_sneak; zoom = a_zoom; - LMB = a_LMB; - RMB = a_RMB; + dig = a_dig; + place = a_place; pitch = a_pitch; yaw = a_yaw; sidew_move_joystick_axis = a_sidew_move_joystick_axis; @@ -88,8 +88,8 @@ struct PlayerControl bool aux1 = false; bool sneak = false; bool zoom = false; - bool LMB = false; - bool RMB = false; + bool dig = false; + bool place = false; float pitch = 0.0f; float yaw = 0.0f; float sidew_move_joystick_axis = 0.0f; diff --git a/src/porting.cpp b/src/porting.cpp index d902d3737..4c87bddee 100644 --- a/src/porting.cpp +++ b/src/porting.cpp @@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "porting.h" -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) #include <sys/types.h> #include <sys/sysctl.h> extern char **environ; @@ -56,6 +56,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <crt_externs.h> #endif +#if defined(__HAIKU__) + #include <FindDirectory.h> +#endif + #include "config.h" #include "debug.h" #include "filesys.h" @@ -321,6 +325,12 @@ bool getCurrentExecPath(char *buf, size_t len) return true; } +#elif defined(__HAIKU__) + +bool getCurrentExecPath(char *buf, size_t len) +{ + return find_path(B_APP_IMAGE_SYMBOL, B_FIND_PATH_IMAGE_PATH, NULL, buf, len) == B_OK; +} //// Solaris #elif defined(__sun) || defined(sun) @@ -709,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 f50f0a950..e4ebe36fd 100644 --- a/src/porting.h +++ b/src/porting.h @@ -309,6 +309,8 @@ inline const char *getPlatformName() #else "SunOS" #endif +#elif defined(__HAIKU__) + "Haiku" #elif defined(__CYGWIN__) "Cygwin" #elif defined(__unix__) || defined(__unix) @@ -330,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 3dfd7ce61..6995f6b61 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -56,6 +56,7 @@ void read_item_definition(lua_State* L, int index, es_ItemType, ITEM_NONE); getstringfield(L, index, "name", def.name); getstringfield(L, index, "description", def.description); + getstringfield(L, index, "short_description", def.short_description); getstringfield(L, index, "inventory_image", def.inventory_image); getstringfield(L, index, "inventory_overlay", def.inventory_overlay); getstringfield(L, index, "wield_image", def.wield_image); @@ -82,9 +83,6 @@ void read_item_definition(lua_State* L, int index, getboolfield(L, index, "liquids_pointable", def.liquids_pointable); - warn_if_field_exists(L, index, "tool_digging_properties", - "Obsolete; use tool_capabilities"); - lua_getfield(L, index, "tool_capabilities"); if(lua_istable(L, -1)){ def.tool_capabilities = new ToolCapabilities( @@ -142,6 +140,10 @@ void push_item_definition_full(lua_State *L, const ItemDefinition &i) lua_setfield(L, -2, "name"); lua_pushstring(L, i.description.c_str()); lua_setfield(L, -2, "description"); + 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()); @@ -310,6 +312,17 @@ void read_object_properties(lua_State *L, int index, prop->nametag_color = color; } lua_pop(L, 1); + lua_getfield(L, -1, "nametag_bgcolor"); + if (!lua_isnil(L, -1)) { + if (lua_toboolean(L, -1)) { + video::SColor color; + if (read_color(L, -1, &color)) + prop->nametag_bgcolor = color; + } else { + prop->nametag_bgcolor = nullopt; + } + } + lua_pop(L, 1); lua_getfield(L, -1, "automatic_face_movement_max_rotation_per_sec"); if (lua_isnumber(L, -1)) { @@ -328,6 +341,7 @@ void read_object_properties(lua_State *L, int index, getfloatfield(L, -1, "zoom_fov", prop->zoom_fov); getboolfield(L, -1, "use_texture_alpha", prop->use_texture_alpha); getboolfield(L, -1, "shaded", prop->shaded); + getboolfield(L, -1, "show_on_minimap", prop->show_on_minimap); getstringfield(L, -1, "damage_texture_modifier", prop->damage_texture_modifier); } @@ -400,6 +414,13 @@ void push_object_properties(lua_State *L, ObjectProperties *prop) lua_setfield(L, -2, "nametag"); push_ARGB8(L, prop->nametag_color); lua_setfield(L, -2, "nametag_color"); + if (prop->nametag_bgcolor) { + push_ARGB8(L, prop->nametag_bgcolor.value()); + lua_setfield(L, -2, "nametag_bgcolor"); + } else { + lua_pushboolean(L, false); + lua_setfield(L, -2, "nametag_bgcolor"); + } lua_pushnumber(L, prop->automatic_face_movement_max_rotation_per_sec); lua_setfield(L, -2, "automatic_face_movement_max_rotation_per_sec"); lua_pushlstring(L, prop->infotext.c_str(), prop->infotext.size()); @@ -416,6 +437,8 @@ void push_object_properties(lua_State *L, ObjectProperties *prop) lua_setfield(L, -2, "shaded"); lua_pushlstring(L, prop->damage_texture_modifier.c_str(), prop->damage_texture_modifier.size()); lua_setfield(L, -2, "damage_texture_modifier"); + lua_pushboolean(L, prop->show_on_minimap); + lua_setfield(L, -2, "show_on_minimap"); } /******************************************************************************/ @@ -488,13 +511,11 @@ TileDef read_tiledef(lua_State *L, int index, u8 drawtype) } /******************************************************************************/ -ContentFeatures read_content_features(lua_State *L, int index) +void read_content_features(lua_State *L, ContentFeatures &f, int index) { if(index < 0) index = lua_gettop(L) + 1 + index; - ContentFeatures f; - /* Cache existence of some callbacks */ lua_getfield(L, index, "on_construct"); if(!lua_isnil(L, -1)) f.has_on_construct = true; @@ -617,22 +638,39 @@ ContentFeatures read_content_features(lua_State *L, 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 + + 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<enum AlphaMode>(result); + } + lua_pop(L, 1); - bool usealpha = getboolfield_default(L, index, - "use_texture_alpha", false); - if (usealpha) - f.alpha = 0; + /* 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); @@ -649,20 +687,6 @@ ContentFeatures read_content_features(lua_State *L, int index) warningstream << "Node " << f.name.c_str() << " has a palette, but not a suitable paramtype2." << std::endl; - // Warn about some obsolete fields - warn_if_field_exists(L, index, "wall_mounted", - "Obsolete; use paramtype2 = 'wallmounted'"); - warn_if_field_exists(L, index, "light_propagates", - "Obsolete; determined from paramtype"); - warn_if_field_exists(L, index, "dug_item", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "extra_dug_item", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "extra_dug_item_rarity", - "Obsolete; use 'drop' field"); - warn_if_field_exists(L, index, "metadata_name", - "Obsolete; use on_add and metadata callbacks"); - // True for all ground-like things like stone and mud, false for eg. trees getboolfield(L, index, "is_ground_content", f.is_ground_content); f.light_propagates = (f.param_type == CPT_LIGHT); @@ -797,7 +821,6 @@ ContentFeatures read_content_features(lua_State *L, int index) getstringfield(L, index, "node_dig_prediction", f.node_dig_prediction); - return f; } void push_content_features(lua_State *L, const ContentFeatures &c) @@ -1959,9 +1982,10 @@ void push_hud_element(lua_State *L, HudElement *elem) HudElementStat read_hud_change(lua_State *L, HudElement *elem, void **value) { HudElementStat stat = HUD_STAT_NUMBER; + std::string statstr; if (lua_isstring(L, 3)) { int statint; - std::string statstr = lua_tostring(L, 3); + statstr = lua_tostring(L, 3); stat = string_to_enum(es_HudElementStat, statint, statstr) ? (HudElementStat)statint : stat; } @@ -1989,6 +2013,8 @@ HudElementStat read_hud_change(lua_State *L, HudElement *elem, void **value) break; case HUD_STAT_ITEM: elem->item = luaL_checknumber(L, 4); + if (elem->type == HUD_ELEM_WAYPOINT && statstr == "precision") + elem->item++; *value = &elem->item; break; case HUD_STAT_DIR: diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h index 8f32e58eb..29d576355 100644 --- a/src/script/common/c_content.h +++ b/src/script/common/c_content.h @@ -67,7 +67,8 @@ struct collisionMoveResult; extern struct EnumString es_TileAnimationType[]; -ContentFeatures read_content_features (lua_State *L, int index); +void read_content_features (lua_State *L, ContentFeatures &f, + int index); void push_content_features (lua_State *L, const ContentFeatures &c); diff --git a/src/script/common/c_converter.cpp b/src/script/common/c_converter.cpp index eb6ab5331..c00401b58 100644 --- a/src/script/common/c_converter.cpp +++ b/src/script/common/c_converter.cpp @@ -679,48 +679,3 @@ size_t write_array_slice_float( return elem_index - 1; } - - -size_t write_array_slice_u16( - lua_State *L, - int table_index, - u16 *data, - v3u16 data_size, - v3u16 slice_offset, - v3u16 slice_size) -{ - v3u16 pmin, pmax(data_size); - - if (slice_offset.X > 0) { - slice_offset.X--; - pmin.X = slice_offset.X; - pmax.X = MYMIN(slice_offset.X + slice_size.X, data_size.X); - } - - if (slice_offset.Y > 0) { - slice_offset.Y--; - pmin.Y = slice_offset.Y; - pmax.Y = MYMIN(slice_offset.Y + slice_size.Y, data_size.Y); - } - - if (slice_offset.Z > 0) { - slice_offset.Z--; - pmin.Z = slice_offset.Z; - pmax.Z = MYMIN(slice_offset.Z + slice_size.Z, data_size.Z); - } - - const u32 ystride = data_size.X; - const u32 zstride = data_size.X * data_size.Y; - - u32 elem_index = 1; - for (u32 z = pmin.Z; z != pmax.Z; z++) - for (u32 y = pmin.Y; y != pmax.Y; y++) - for (u32 x = pmin.X; x != pmax.X; x++) { - u32 i = z * zstride + y * ystride + x; - lua_pushinteger(L, data[i]); - lua_rawseti(L, table_index, elem_index); - elem_index++; - } - - return elem_index - 1; -} diff --git a/src/script/common/c_converter.h b/src/script/common/c_converter.h index a4a7079fd..6ad6f3212 100644 --- a/src/script/common/c_converter.h +++ b/src/script/common/c_converter.h @@ -136,5 +136,3 @@ void warn_if_field_exists(lua_State *L, int table, size_t write_array_slice_float(lua_State *L, int table_index, float *data, v3u16 data_size, v3u16 slice_offset, v3u16 slice_size); -size_t write_array_slice_u16(lua_State *L, int table_index, u16 *data, - v3u16 data_size, v3u16 slice_offset, v3u16 slice_size); diff --git a/src/script/common/c_internal.cpp b/src/script/common/c_internal.cpp index 6df1f8b7b..ad5f836c5 100644 --- a/src/script/common/c_internal.cpp +++ b/src/script/common/c_internal.cpp @@ -155,24 +155,28 @@ static void script_log(lua_State *L, const std::string &message, infostream << script_get_backtrace(L) << std::endl; } -void log_deprecated(lua_State *L, const std::string &message, int stack_depth) +DeprecatedHandlingMode get_deprecated_handling_mode() { static thread_local bool configured = false; - static thread_local bool do_log = false; - static thread_local bool do_error = false; + static thread_local DeprecatedHandlingMode ret = DeprecatedHandlingMode::Ignore; // Only read settings on first call if (!configured) { std::string value = g_settings->get("deprecated_lua_api_handling"); if (value == "log") { - do_log = true; + ret = DeprecatedHandlingMode::Log; } else if (value == "error") { - do_log = true; - do_error = true; + ret = DeprecatedHandlingMode::Error; } configured = true; } - if (do_log) - script_log(L, message, warningstream, do_error, stack_depth); + return ret; +} + +void log_deprecated(lua_State *L, const std::string &message, int stack_depth) +{ + DeprecatedHandlingMode mode = get_deprecated_handling_mode(); + if (mode != DeprecatedHandlingMode::Ignore) + script_log(L, message, warningstream, mode == DeprecatedHandlingMode::Error, stack_depth); } diff --git a/src/script/common/c_internal.h b/src/script/common/c_internal.h index 442546332..452c2dd5e 100644 --- a/src/script/common/c_internal.h +++ b/src/script/common/c_internal.h @@ -114,5 +114,25 @@ void script_error(lua_State *L, int pcall_result, const char *mod, const char *f void script_run_callbacks_f(lua_State *L, int nargs, RunCallbacksMode mode, const char *fxn); +enum class DeprecatedHandlingMode { + Ignore, + Log, + Error +}; + +/** + * Reads `deprecated_lua_api_handling` in settings, returns cached value. + * + * @return DeprecatedHandlingMode + */ +DeprecatedHandlingMode get_deprecated_handling_mode(); + +/** + * Handles a deprecation warning based on user settings + * + * @param L Lua State + * @param message The deprecation method + * @param stack_depth How far on the stack to the first user function (ie: not builtin or core) + */ void log_deprecated(lua_State *L, const std::string &message, int stack_depth=1); diff --git a/src/script/common/helper.cpp b/src/script/common/helper.cpp index f53a2b7e8..fbf24e1b7 100644 --- a/src/script/common/helper.cpp +++ b/src/script/common/helper.cpp @@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <cmath> #include <sstream> #include <irr_v2d.h> +#include <irr_v3d.h> #include "c_types.h" #include "c_internal.h" @@ -49,25 +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 <> bool LuaHelper::readParam(lua_State *L, int index, const bool &default_value) +template <> +s16 LuaHelper::readParam(lua_State *L, int index) { - if (lua_isnil(L, index)) - return default_value; - - return lua_toboolean(L, index) != 0; + return lua_tonumber(L, index); } -template <> s16 LuaHelper::readParam(lua_State *L, int index) +template <> +int LuaHelper::readParam(lua_State *L, int index) { - return lua_tonumber(L, 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."); @@ -75,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); @@ -90,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); @@ -105,24 +109,32 @@ template <> v2f LuaHelper::readParam(lua_State *L, int index) return p; } -template <> std::string LuaHelper::readParam(lua_State *L, int index) +template <> +v3f LuaHelper::readParam(lua_State *L, int index) { - size_t length; - std::string result; - const char *str = luaL_checklstring(L, index, &length); - result.assign(str, length); - return result; + v3f p; + CHECK_POS_TAB(index); + lua_getfield(L, index, "x"); + CHECK_POS_COORD("x"); + p.X = readParam<float>(L, -1); + lua_pop(L, 1); + lua_getfield(L, index, "y"); + CHECK_POS_COORD("y"); + p.Y = readParam<float>(L, -1); + lua_pop(L, 1); + lua_getfield(L, index, "z"); + CHECK_POS_COORD("z"); + p.Z = readParam<float>(L, -1); + lua_pop(L, 1); + return p; } template <> -std::string LuaHelper::readParam( - lua_State *L, int index, const std::string &default_value) +std::string LuaHelper::readParam(lua_State *L, int index) { + size_t length; std::string result; - const char *str = lua_tostring(L, index); - if (str) - result.append(str); - else - result = default_value; + const char *str = luaL_checklstring(L, index, &length); + result.assign(str, length); return result; } diff --git a/src/script/common/helper.h b/src/script/common/helper.h index d639d6e16..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 <typename T> static T readParam(lua_State *L, int index); + template <typename T> + static T readParam(lua_State *L, int index); /** * Read a value using a template type T from Lua State L and index @@ -50,5 +51,8 @@ protected: * @return read value from Lua or default value if nil */ template <typename T> - static T readParam(lua_State *L, int index, const T &default_value); + static inline T readParam(lua_State *L, int index, const T &default_value) + { + return lua_isnoneornil(L, index) ? default_value : readParam<T>(L, 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 @@ -158,35 +158,6 @@ void AsyncEngine::step(lua_State *L) } /******************************************************************************/ -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) { for (StateInitializer &stateInitializer : stateInitializers) { 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_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..f23fbfbde 100644 --- a/src/script/cpp_api/s_node.cpp +++ b/src/script/cpp_api/s_node.cpp @@ -93,6 +93,14 @@ struct EnumString ScriptApiNode::es_NodeBoxType[] = {0, NULL}, }; +struct EnumString ScriptApiNode::es_TextureAlphaMode[] = + { + {ALPHAMODE_OPAQUE, "opaque"}, + {ALPHAMODE_CLIP, "clip"}, + {ALPHAMODE_BLEND, "blend"}, + {0, NULL}, + }; + bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node, ServerActiveObject *puncher, const PointedThing &pointed) { @@ -133,9 +141,14 @@ bool ScriptApiNode::node_on_dig(v3s16 p, MapNode node, push_v3s16(L, p); pushnode(L, node, ndef); objectrefGetOrCreate(L, digger); - PCALL_RES(lua_pcall(L, 3, 0, error_handler)); - lua_pop(L, 1); // Pop error handler - return true; + PCALL_RES(lua_pcall(L, 3, 1, error_handler)); + + // nil is treated as true for backwards compat + bool result = lua_isnil(L, -1) || lua_toboolean(L, -1); + + lua_pop(L, 2); // Pop error handler and result + + return result; } void ScriptApiNode::node_on_construct(v3s16 p, MapNode node) 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<bool>(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 2afa3a191..63058d7c3 100644 --- a/src/script/cpp_api/s_security.cpp +++ b/src/script/cpp_api/s_security.cpp @@ -398,10 +398,9 @@ bool ScriptApiSecurity::safeLoadFile(lua_State *L, const char *path, const char lua_pushfstring(L, "%s: %s", path, strerror(errno)); return false; } - chunk_name = new char[strlen(display_name) + 2]; - chunk_name[0] = '@'; - chunk_name[1] = '\0'; - strcat(chunk_name, display_name); + size_t len = strlen(display_name) + 2; + chunk_name = new char[len]; + snprintf(chunk_name, len, "@%s", display_name); } size_t start = 0; @@ -629,7 +628,11 @@ int ScriptApiSecurity::sl_g_loadfile(lua_State *L) { #ifndef SERVER lua_rawgeti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_SCRIPTAPI); +#if INDIRECT_SCRIPTAPI_RIDX + ScriptApiBase *script = (ScriptApiBase *) *(void**)(lua_touserdata(L, -1)); +#else ScriptApiBase *script = (ScriptApiBase *) lua_touserdata(L, -1); +#endif lua_pop(L, 1); // Client implementation diff --git a/src/script/lua_api/l_base.cpp b/src/script/lua_api/l_base.cpp index 2bee09436..f842671b8 100644 --- a/src/script/lua_api/l_base.cpp +++ b/src/script/lua_api/l_base.cpp @@ -100,32 +100,21 @@ bool ModApiBase::registerFunction(lua_State *L, const char *name, return true; } -std::unordered_map<std::string, luaL_Reg> ModApiBase::m_deprecated_wrappers; -bool ModApiBase::m_error_deprecated_calls = false; - -int ModApiBase::l_deprecated_function(lua_State *L) +int ModApiBase::l_deprecated_function(lua_State *L, const char *good, const char *bad, lua_CFunction func) { thread_local std::vector<u64> deprecated_logged; + DeprecatedHandlingMode dep_mode = get_deprecated_handling_mode(); + if (dep_mode == DeprecatedHandlingMode::Ignore) + return func(L); + u64 start_time = porting::getTimeUs(); lua_Debug ar; - // Get function name for lookup - FATAL_ERROR_IF(!lua_getstack(L, 0, &ar), "lua_getstack() failed"); - FATAL_ERROR_IF(!lua_getinfo(L, "n", &ar), "lua_getinfo() failed"); - - // Combine name with line and script backtrace + // Get caller name with line and script backtrace FATAL_ERROR_IF(!lua_getstack(L, 1, &ar), "lua_getstack() failed"); FATAL_ERROR_IF(!lua_getinfo(L, "Sl", &ar), "lua_getinfo() failed"); - // Get parent class to get the wrappers map - luaL_checktype(L, 1, LUA_TUSERDATA); - void *ud = lua_touserdata(L, 1); - ModApiBase *o = *(ModApiBase**)ud; - - // New function and new function name - auto it = o->m_deprecated_wrappers.find(ar.name); - // Get backtrace and hash it to reduce the warning flood std::string backtrace = ar.short_src; backtrace.append(":").append(std::to_string(ar.currentline)); @@ -135,45 +124,16 @@ int ModApiBase::l_deprecated_function(lua_State *L) == deprecated_logged.end()) { deprecated_logged.emplace_back(hash); - warningstream << "Call to deprecated function '" << ar.name << "', please use '" - << it->second.name << "' at " << backtrace << std::endl; + warningstream << "Call to deprecated function '" << bad << "', please use '" + << good << "' at " << backtrace << std::endl; - if (m_error_deprecated_calls) + if (dep_mode == DeprecatedHandlingMode::Error) script_error(L, LUA_ERRRUN, NULL, NULL); } u64 end_time = porting::getTimeUs(); g_profiler->avg("l_deprecated_function", end_time - start_time); - return it->second.func(L); + return func(L); } -void ModApiBase::markAliasDeprecated(luaL_Reg *reg) -{ - std::string value = g_settings->get("deprecated_lua_api_handling"); - m_error_deprecated_calls = value == "error"; - - if (!m_error_deprecated_calls && value != "log") - return; - - const char *last_name = nullptr; - lua_CFunction last_func = nullptr; - - // ! Null termination ! - while (reg->func) { - if (last_func == reg->func) { - // Duplicate found - luaL_Reg original_reg; - // Do not inline struct. Breaks MSVC or is error-prone - original_reg.name = last_name; - original_reg.func = reg->func; - m_deprecated_wrappers.emplace( - std::pair<std::string, luaL_Reg>(reg->name, original_reg)); - reg->func = l_deprecated_function; - } - - last_func = reg->func; - last_name = reg->name; - ++reg; - } -} diff --git a/src/script/lua_api/l_base.h b/src/script/lua_api/l_base.h index 65fce8481..aa5905d26 100644 --- a/src/script/lua_api/l_base.h +++ b/src/script/lua_api/l_base.h @@ -41,7 +41,6 @@ class Environment; class ServerInventoryManager; class ModApiBase : protected LuaHelper { - public: static ScriptApiBase* getScriptApiBase(lua_State *L); static Server* getServer(lua_State *L); @@ -75,10 +74,18 @@ public: lua_CFunction func, int top); - static int l_deprecated_function(lua_State *L); - static void markAliasDeprecated(luaL_Reg *reg); -private: - // <old_name> = { <new_name>, <new_function> } - static std::unordered_map<std::string, luaL_Reg> m_deprecated_wrappers; - static bool m_error_deprecated_calls; + /** + * A wrapper for deprecated functions. + * + * When called, handles the deprecation according to user settings and then calls `func`. + * + * @throws Lua Error if required by the user settings. + * + * @param L Lua state + * @param good Name of good function/method + * @param bad Name of deprecated function/method + * @param func Actual implementation of function + * @return value from `func` + */ + static int l_deprecated_function(lua_State *L, const char *good, const char *bad, lua_CFunction func); }; diff --git a/src/script/lua_api/l_camera.cpp b/src/script/lua_api/l_camera.cpp index bfa60be67..40251154c 100644 --- a/src/script/lua_api/l_camera.cpp +++ b/src/script/lua_api/l_camera.cpp @@ -63,7 +63,8 @@ int LuaCamera::l_set_camera_mode(lua_State *L) return 0; camera->setCameraMode((CameraMode)((int)lua_tonumber(L, 2))); - playercao->setVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); + // Make the player visible depending on camera mode. + playercao->updateMeshCulling(); playercao->setChildrenVisible(camera->getCameraMode() > CAMERA_MODE_FIRST); return 0; } diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 89ec9dc7e..c75fc8dc7 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -407,6 +407,46 @@ int ModApiEnvMod::l_get_node_light(lua_State *L) return 1; } + +// get_natural_light(pos, timeofday) +// pos = {x=num, y=num, z=num} +// timeofday: nil = current time, 0 = night, 0.5 = day +int ModApiEnvMod::l_get_natural_light(lua_State *L) +{ + GET_ENV_PTR; + + v3s16 pos = read_v3s16(L, 1); + + bool is_position_ok; + MapNode n = env->getMap().getNode(pos, &is_position_ok); + if (!is_position_ok) + return 0; + + // If the daylight is 0, nothing needs to be calculated + u8 daylight = n.param1 & 0x0f; + if (daylight == 0) { + lua_pushinteger(L, 0); + return 1; + } + + u32 time_of_day; + if (lua_isnumber(L, 2)) { + time_of_day = 24000.0 * lua_tonumber(L, 2); + time_of_day %= 24000; + } else { + time_of_day = env->getTimeOfDay(); + } + u32 dnr = time_to_daynight_ratio(time_of_day, true); + + // If it's the same as the artificial light, the sunlight needs to be + // searched for because the value may not emanate from the sun + if (daylight == n.param1 >> 4) + daylight = env->findSunlight(pos); + + lua_pushinteger(L, dnr * daylight / 1000); + return 1; +} + // place_node(pos, node) // pos = {x=num, y=num, z=num} int ModApiEnvMod::l_place_node(lua_State *L) @@ -703,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<ServerActiveObject *> 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) @@ -711,8 +776,9 @@ int ModApiEnvMod::l_set_timeofday(lua_State *L) // Do it float timeofday_f = readParam<float>(L, 1); - sanity_check(timeofday_f >= 0.0 && timeofday_f <= 1.0); - int timeofday_mh = (int)(timeofday_f * 24000.0); + luaL_argcheck(L, timeofday_f >= 0.0f && timeofday_f <= 1.0f, 1, + "value must be between 0 and 1"); + int timeofday_mh = (int)(timeofday_f * 24000.0f); // This should be set directly in the environment but currently // such changes aren't immediately sent to the clients, so call // the server instead. @@ -752,29 +818,36 @@ int ModApiEnvMod::l_get_gametime(lua_State *L) return 1; } - -// find_node_near(pos, radius, nodenames, search_center) -> pos or nil -// nodenames: eg. {"ignore", "group:tree"} or "default:dirt" -int ModApiEnvMod::l_find_node_near(lua_State *L) +void ModApiEnvMod::collectNodeIds(lua_State *L, int idx, const NodeDefManager *ndef, + std::vector<content_t> &filter) { - GET_PLAIN_ENV_PTR; - - const NodeDefManager *ndef = env->getGameDef()->ndef(); - v3s16 pos = read_v3s16(L, 1); - int radius = luaL_checkinteger(L, 2); - std::vector<content_t> filter; - if (lua_istable(L, 3)) { + if (lua_istable(L, idx)) { lua_pushnil(L); - while (lua_next(L, 3) != 0) { + while (lua_next(L, idx) != 0) { // key at index -2 and value at index -1 luaL_checktype(L, -1, LUA_TSTRING); ndef->getIds(readParam<std::string>(L, -1), filter); // removes value, keeps key for next iteration lua_pop(L, 1); } - } else if (lua_isstring(L, 3)) { + } else if (lua_isstring(L, idx)) { ndef->getIds(readParam<std::string>(L, 3), filter); } +} + +// find_node_near(pos, radius, nodenames, [search_center]) -> pos or nil +// nodenames: eg. {"ignore", "group:tree"} or "default:dirt" +int ModApiEnvMod::l_find_node_near(lua_State *L) +{ + GET_PLAIN_ENV_PTR; + + const NodeDefManager *ndef = env->getGameDef()->ndef(); + Map &map = env->getMap(); + + v3s16 pos = read_v3s16(L, 1); + int radius = luaL_checkinteger(L, 2); + std::vector<content_t> filter; + collectNodeIds(L, 3, ndef, filter); int start_radius = (lua_isboolean(L, 4) && readParam<bool>(L, 4)) ? 0 : 1; @@ -785,10 +858,10 @@ int ModApiEnvMod::l_find_node_near(lua_State *L) #endif for (int d = start_radius; d <= radius; d++) { - std::vector<v3s16> list = FacePositionCache::getFacePositions(d); + const std::vector<v3s16> &list = FacePositionCache::getFacePositions(d); for (const v3s16 &i : list) { v3s16 p = pos + i; - content_t c = env->getMap().getNode(p).getContent(); + content_t c = map.getNode(p).getContent(); if (CONTAINS(filter, c)) { push_v3s16(L, p); return 1; @@ -798,8 +871,7 @@ int ModApiEnvMod::l_find_node_near(lua_State *L) return 0; } -// find_nodes_in_area(minp, maxp, nodenames) -> list of positions -// nodenames: eg. {"ignore", "group:tree"} or "default:dirt" +// find_nodes_in_area(minp, maxp, nodenames, [grouped]) int ModApiEnvMod::l_find_nodes_in_area(lua_State *L) { GET_PLAIN_ENV_PTR; @@ -809,6 +881,7 @@ int ModApiEnvMod::l_find_nodes_in_area(lua_State *L) sortBoxVerticies(minp, maxp); const NodeDefManager *ndef = env->getGameDef()->ndef(); + Map &map = env->getMap(); #ifndef SERVER if (Client *client = getClient(L)) { @@ -826,45 +899,79 @@ int ModApiEnvMod::l_find_nodes_in_area(lua_State *L) } std::vector<content_t> filter; - if (lua_istable(L, 3)) { - lua_pushnil(L); - while (lua_next(L, 3) != 0) { - // key at index -2 and value at index -1 - luaL_checktype(L, -1, LUA_TSTRING); - ndef->getIds(readParam<std::string>(L, -1), filter); - // removes value, keeps key for next iteration - lua_pop(L, 1); + collectNodeIds(L, 3, ndef, filter); + + bool grouped = lua_isboolean(L, 4) && readParam<bool>(L, 4); + + if (grouped) { + // create the table we will be returning + lua_createtable(L, 0, filter.size()); + int base = lua_gettop(L); + + // create one table for each filter + std::vector<u32> idx; + idx.resize(filter.size()); + for (u32 i = 0; i < filter.size(); i++) + lua_newtable(L); + + v3s16 p; + for (p.X = minp.X; p.X <= maxp.X; p.X++) + for (p.Y = minp.Y; p.Y <= maxp.Y; p.Y++) + for (p.Z = minp.Z; p.Z <= maxp.Z; p.Z++) { + content_t c = map.getNode(p).getContent(); + + auto it = std::find(filter.begin(), filter.end(), c); + if (it != filter.end()) { + // Calculate index of the table and append the position + u32 filt_index = it - filter.begin(); + push_v3s16(L, p); + lua_rawseti(L, base + 1 + filt_index, ++idx[filt_index]); + } } - } else if (lua_isstring(L, 3)) { - ndef->getIds(readParam<std::string>(L, 3), filter); - } - std::vector<u32> individual_count; - individual_count.resize(filter.size()); + // last filter table is at top of stack + u32 i = filter.size() - 1; + do { + if (idx[i] == 0) { + // No such node found -> drop the empty table + lua_pop(L, 1); + } else { + // This node was found -> put table into the return table + lua_setfield(L, base, ndef->get(filter[i]).name.c_str()); + } + } while (i-- != 0); - lua_newtable(L); - u64 i = 0; - for (s16 x = minp.X; x <= maxp.X; x++) - for (s16 y = minp.Y; y <= maxp.Y; y++) - for (s16 z = minp.Z; z <= maxp.Z; z++) { - v3s16 p(x, y, z); - content_t c = env->getMap().getNode(p).getContent(); - - std::vector<content_t>::iterator it = std::find(filter.begin(), filter.end(), c); - if (it != filter.end()) { - push_v3s16(L, p); - lua_rawseti(L, -2, ++i); + assert(lua_gettop(L) == base); + return 1; + } else { + std::vector<u32> individual_count; + individual_count.resize(filter.size()); + + lua_newtable(L); + u32 i = 0; + v3s16 p; + for (p.X = minp.X; p.X <= maxp.X; p.X++) + for (p.Y = minp.Y; p.Y <= maxp.Y; p.Y++) + for (p.Z = minp.Z; p.Z <= maxp.Z; p.Z++) { + content_t c = env->getMap().getNode(p).getContent(); - u32 filt_index = it - filter.begin(); - individual_count[filt_index]++; + auto it = std::find(filter.begin(), filter.end(), c); + if (it != filter.end()) { + push_v3s16(L, p); + lua_rawseti(L, -2, ++i); + + u32 filt_index = it - filter.begin(); + individual_count[filt_index]++; + } } + + lua_createtable(L, 0, filter.size()); + for (u32 i = 0; i < filter.size(); i++) { + lua_pushinteger(L, individual_count[i]); + lua_setfield(L, -2, ndef->get(filter[i]).name.c_str()); + } + return 2; } - lua_newtable(L); - for (u32 i = 0; i < filter.size(); i++) { - lua_pushnumber(L, individual_count[i]); - lua_setfield(L, -2, ndef->get(filter[i]).name.c_str()); - } - return 2; } // find_nodes_in_area_under_air(minp, maxp, nodenames) -> list of positions @@ -885,6 +992,7 @@ int ModApiEnvMod::l_find_nodes_in_area_under_air(lua_State *L) sortBoxVerticies(minp, maxp); const NodeDefManager *ndef = env->getGameDef()->ndef(); + Map &map = env->getMap(); #ifndef SERVER if (Client *client = getClient(L)) { @@ -902,33 +1010,21 @@ int ModApiEnvMod::l_find_nodes_in_area_under_air(lua_State *L) } std::vector<content_t> filter; - - if (lua_istable(L, 3)) { - lua_pushnil(L); - while (lua_next(L, 3) != 0) { - // key at index -2 and value at index -1 - luaL_checktype(L, -1, LUA_TSTRING); - ndef->getIds(readParam<std::string>(L, -1), filter); - // removes value, keeps key for next iteration - lua_pop(L, 1); - } - } else if (lua_isstring(L, 3)) { - ndef->getIds(readParam<std::string>(L, 3), filter); - } + collectNodeIds(L, 3, ndef, filter); lua_newtable(L); - u64 i = 0; - for (s16 x = minp.X; x <= maxp.X; x++) - for (s16 z = minp.Z; z <= maxp.Z; z++) { - s16 y = minp.Y; - v3s16 p(x, y, z); - content_t c = env->getMap().getNode(p).getContent(); - for (; y <= maxp.Y; y++) { - v3s16 psurf(x, y + 1, z); - content_t csurf = env->getMap().getNode(psurf).getContent(); + u32 i = 0; + v3s16 p; + for (p.X = minp.X; p.X <= maxp.X; p.X++) + for (p.Z = minp.Z; p.Z <= maxp.Z; p.Z++) { + p.Y = minp.Y; + content_t c = map.getNode(p).getContent(); + for (; p.Y <= maxp.Y; p.Y++) { + v3s16 psurf(p.X, p.Y + 1, p.Z); + content_t csurf = map.getNode(psurf).getContent(); if (c != CONTENT_AIR && csurf == CONTENT_AIR && CONTAINS(filter, c)) { - push_v3s16(L, v3s16(x, y, z)); + push_v3s16(L, p); lua_rawseti(L, -2, ++i); } c = csurf; @@ -1310,9 +1406,9 @@ int ModApiEnvMod::l_get_translated_string(lua_State * L) GET_ENV_PTR; std::string lang_code = luaL_checkstring(L, 1); std::string string = luaL_checkstring(L, 2); - getServer(L)->loadTranslationLanguage(lang_code); - string = wide_to_utf8(translate_string(utf8_to_wide(string), - &(*g_server_translations)[lang_code])); + + auto *translations = getServer(L)->getTranslationLanguage(lang_code); + string = wide_to_utf8(translate_string(utf8_to_wide(string), translations)); lua_pushstring(L, string.c_str()); return 1; } @@ -1328,6 +1424,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top) API_FCT(get_node); API_FCT(get_node_or_nil); API_FCT(get_node_light); + API_FCT(get_natural_light); API_FCT(place_node); API_FCT(dig_node); API_FCT(punch_node); @@ -1341,6 +1438,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top) API_FCT(get_node_timer); API_FCT(get_connected_players); API_FCT(get_player_by_name); + API_FCT(get_objects_in_area); API_FCT(get_objects_inside_radius); API_FCT(set_timeofday); API_FCT(get_timeofday); diff --git a/src/script/lua_api/l_env.h b/src/script/lua_api/l_env.h index 9050b4306..42c2d64f8 100644 --- a/src/script/lua_api/l_env.h +++ b/src/script/lua_api/l_env.h @@ -56,6 +56,11 @@ private: // timeofday: nil = current time, 0 = night, 0.5 = day static int l_get_node_light(lua_State *L); + // get_natural_light(pos, timeofday) + // pos = {x=num, y=num, z=num} + // timeofday: nil = current time, 0 = night, 0.5 = day + static int l_get_natural_light(lua_State *L); + // place_node(pos, node) // pos = {x=num, y=num, z=num} static int l_place_node(lua_State *L); @@ -109,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 @@ -190,6 +198,11 @@ private: // Get a string translated server side static int l_get_translated_string(lua_State * L); + /* Helpers */ + + static void collectNodeIds(lua_State *L, int idx, + const NodeDefManager *ndef, std::vector<content_t> &filter); + public: static void Initialize(lua_State *L, int top); static void InitializeClient(lua_State *L, int top); diff --git a/src/script/lua_api/l_http.cpp b/src/script/lua_api/l_http.cpp index ec43bf174..5ea3b3f99 100644 --- a/src/script/lua_api/l_http.cpp +++ b/src/script/lua_api/l_http.cpp @@ -49,17 +49,40 @@ void ModApiHttp::read_http_fetch_request(lua_State *L, HTTPFetchRequest &req) req.multipart = getboolfield_default(L, 1, "multipart", false); req.timeout = getintfield_default(L, 1, "timeout", 3) * 1000; - // post_data: if table, post form data, otherwise raw data + lua_getfield(L, 1, "method"); + if (lua_isstring(L, -1)) { + std::string mth = getstringfield_default(L, 1, "method", ""); + if (mth == "GET") + req.method = HTTP_GET; + else if (mth == "POST") + req.method = HTTP_POST; + else if (mth == "PUT") + req.method = HTTP_PUT; + else if (mth == "DELETE") + req.method = HTTP_DELETE; + } + lua_pop(L, 1); + + // post_data: if table, post form data, otherwise raw data DEPRECATED use data and method instead lua_getfield(L, 1, "post_data"); + if (lua_isnil(L, 2)) { + lua_pop(L, 1); + lua_getfield(L, 1, "data"); + } + else { + req.method = HTTP_POST; + } + if (lua_istable(L, 2)) { lua_pushnil(L); while (lua_next(L, 2) != 0) { - req.post_fields[readParam<std::string>(L, -2)] = readParam<std::string>(L, -1); + req.fields[readParam<std::string>(L, -2)] = readParam<std::string>(L, -1); lua_pop(L, 1); } } else if (lua_isstring(L, 2)) { - req.post_data = readParam<std::string>(L, 2); + req.raw_data = readParam<std::string>(L, 2); } + lua_pop(L, 1); lua_getfield(L, 1, "extra_headers"); diff --git a/src/script/lua_api/l_http.h b/src/script/lua_api/l_http.h index de6e51b37..c3a2a5276 100644 --- a/src/script/lua_api/l_http.h +++ b/src/script/lua_api/l_http.h @@ -32,10 +32,10 @@ private: static void read_http_fetch_request(lua_State *L, HTTPFetchRequest &req); static void push_http_fetch_result(lua_State *L, HTTPFetchResult &res, bool completed = true); - // http_fetch_sync({url=, timeout=, post_data=}) + // http_fetch_sync({url=, timeout=, data=}) static int l_http_fetch_sync(lua_State *L); - // http_fetch_async({url=, timeout=, post_data=}) + // http_fetch_async({url=, timeout=, data=}) static int l_http_fetch_async(lua_State *L); // http_fetch_async_get(handle) diff --git a/src/script/lua_api/l_internal.h b/src/script/lua_api/l_internal.h index a86eeaf79..672e535ca 100644 --- a/src/script/lua_api/l_internal.h +++ b/src/script/lua_api/l_internal.h @@ -29,7 +29,16 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "common/c_internal.h" #define luamethod(class, name) {#name, class::l_##name} -#define luamethod_aliased(class, name, alias) {#name, class::l_##name}, {#alias, class::l_##name} + +#define luamethod_dep(class, good, bad) \ + {#bad, [](lua_State *L) -> int { \ + return l_deprecated_function(L, #good, #bad, &class::l_##good); \ + }} + +#define luamethod_aliased(class, good, bad) \ + luamethod(class, good), \ + luamethod_dep(class, good, bad) + #define API_FCT(name) registerFunction(L, #name, l_##name, top) // For future use diff --git a/src/script/lua_api/l_inventory.cpp b/src/script/lua_api/l_inventory.cpp index e41b5cb41..434d0a76c 100644 --- a/src/script/lua_api/l_inventory.cpp +++ b/src/script/lua_api/l_inventory.cpp @@ -280,6 +280,7 @@ int InvRef::l_set_lists(lua_State *L) Server *server = getServer(L); lua_pushnil(L); + luaL_checktype(L, 2, LUA_TTABLE); while (lua_next(L, 2)) { const char *listname = lua_tostring(L, -2); read_inventory_list(L, -1, tempInv, listname, server); diff --git a/src/script/lua_api/l_item.cpp b/src/script/lua_api/l_item.cpp index d67cab76f..9e0da4034 100644 --- a/src/script/lua_api/l_item.cpp +++ b/src/script/lua_api/l_item.cpp @@ -193,6 +193,16 @@ int LuaItemStack::l_get_description(lua_State *L) return 1; } +// get_short_description(self) +int LuaItemStack::l_get_short_description(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + LuaItemStack *o = checkobject(L, 1); + std::string desc = o->m_stack.getShortDescription(getGameDef(L)->idef()); + lua_pushstring(L, desc.c_str()); + return 1; +} + // clear(self) -> true int LuaItemStack::l_clear(lua_State *L) { @@ -493,6 +503,7 @@ const luaL_Reg LuaItemStack::methods[] = { luamethod(LuaItemStack, get_metadata), luamethod(LuaItemStack, set_metadata), luamethod(LuaItemStack, get_description), + luamethod(LuaItemStack, get_short_description), luamethod(LuaItemStack, clear), luamethod(LuaItemStack, replace), luamethod(LuaItemStack, to_string), @@ -559,7 +570,8 @@ int ModApiItemMod::l_register_item_raw(lua_State *L) // Read the node definition (content features) and register it if (def.type == ITEM_NODE) { - ContentFeatures f = read_content_features(L, table); + ContentFeatures f; + read_content_features(L, f, table); // when a mod reregisters ignore, only texture changes and such should // be done if (f.name == "ignore") diff --git a/src/script/lua_api/l_item.h b/src/script/lua_api/l_item.h index 98744c071..16878c101 100644 --- a/src/script/lua_api/l_item.h +++ b/src/script/lua_api/l_item.h @@ -72,6 +72,9 @@ private: // get_description(self) static int l_get_description(lua_State *L); + // get_short_description(self) + static int l_get_short_description(lua_State *L); + // clear(self) -> true static int l_clear(lua_State *L); diff --git a/src/script/lua_api/l_localplayer.cpp b/src/script/lua_api/l_localplayer.cpp index 851ede535..33fa27c8b 100644 --- a/src/script/lua_api/l_localplayer.cpp +++ b/src/script/lua_api/l_localplayer.cpp @@ -231,8 +231,8 @@ int LuaLocalPlayer::l_get_control(lua_State *L) set("aux1", c.aux1); set("sneak", c.sneak); set("zoom", c.zoom); - set("LMB", c.LMB); - set("RMB", c.RMB); + set("dig", c.dig); + set("place", c.place); return 1; } diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp index f32c477c2..ba7f708a4 100644 --- a/src/script/lua_api/l_mainmenu.cpp +++ b/src/script/lua_api/l_mainmenu.cpp @@ -29,7 +29,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "porting.h" #include "filesys.h" #include "convert_json.h" -#include "content/packages.h" #include "content/content.h" #include "content/subgames.h" #include "serverlist.h" @@ -276,207 +275,6 @@ int ModApiMainMenu::l_get_worlds(lua_State *L) } /******************************************************************************/ -int ModApiMainMenu::l_get_favorites(lua_State *L) -{ - std::string listtype = "local"; - - if (!lua_isnone(L, 1)) { - listtype = luaL_checkstring(L, 1); - } - - std::vector<ServerListSpec> 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<ServerListSpec> 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) { std::vector<SubgameSpec> games = getAvailableGames(); @@ -618,7 +416,7 @@ int ModApiMainMenu::l_create_world(lua_State *L) std::string path = porting::path_user + DIR_DELIM "worlds" + DIR_DELIM - + name; + + sanitizeDirName(name, "world_"); std::vector<SubgameSpec> games = getAvailableGames(); @@ -626,10 +424,11 @@ int ModApiMainMenu::l_create_world(lua_State *L) (gameidx < (int) games.size())) { // Create world if it doesn't exist - if (!loadGameConfAndInitWorld(path, games[gameidx])) { - lua_pushstring(L, "Failed to initialize world"); - } else { + try { + loadGameConfAndInitWorld(path, name, games[gameidx], true); lua_pushnil(L); + } catch (const BaseException &e) { + lua_pushstring(L, (std::string("Failed to initialize world: ") + e.what()).c_str()); } } else { lua_pushstring(L, "Invalid game index"); @@ -687,6 +486,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) { std::string modpath = fs::RemoveRelativePathComponents( @@ -722,6 +529,7 @@ int ModApiMainMenu::l_get_texturepath(lua_State *L) return 1; } +/******************************************************************************/ int ModApiMainMenu::l_get_texturepath_share(lua_State *L) { std::string gamepath = fs::RemoveRelativePathComponents( @@ -730,6 +538,7 @@ 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()); @@ -737,6 +546,13 @@ int ModApiMainMenu::l_get_cache_path(lua_State *L) } /******************************************************************************/ +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); @@ -796,6 +612,15 @@ int ModApiMainMenu::l_copy_dir(lua_State *L) } /******************************************************************************/ +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) { const char *zipfile = luaL_checkstring(L, 1); @@ -1067,7 +892,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; } @@ -1105,23 +938,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); @@ -1134,6 +968,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); } @@ -1142,19 +977,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..49ce7c251 100644 --- a/src/script/lua_api/l_mainmenu.h +++ b/src/script/lua_api/l_mainmenu.h @@ -74,10 +74,6 @@ private: static int l_get_mapgen_names(lua_State *L); - static int l_get_favorites(lua_State *L); - - static int l_delete_favorite(lua_State *L); - static int l_gettext(lua_State *L); //packages @@ -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..12a497b1e 100644 --- a/src/script/lua_api/l_mapgen.cpp +++ b/src/script/lua_api/l_mapgen.cpp @@ -873,9 +873,6 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L) if (lua_isnumber(L, -1)) settingsmgr->setMapSetting("chunksize", readParam<std::string>(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<std::string>(L, -1), true); @@ -985,7 +982,7 @@ int ModApiMapgen::l_set_noiseparams(lua_State *L) bool set_default = !lua_isboolean(L, 3) || readParam<bool>(L, 3); - g_settings->setNoiseParams(name, np, set_default); + Settings::getLayer(set_default ? SL_DEFAULTS : SL_GLOBAL)->setNoiseParams(name, np); return 0; } @@ -1338,11 +1335,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); diff --git a/src/script/lua_api/l_metadata.cpp b/src/script/lua_api/l_metadata.cpp index 61a25a761..21002e6a7 100644 --- a/src/script/lua_api/l_metadata.cpp +++ b/src/script/lua_api/l_metadata.cpp @@ -153,9 +153,7 @@ int MetaDataRef::l_set_int(lua_State *L) MetaDataRef *ref = checkobject(L, 1); std::string name = luaL_checkstring(L, 2); int a = luaL_checkint(L, 3); - std::string str; - if (a != 0) - str = itos(a); + std::string str = itos(a); Metadata *meta = ref->getmeta(true); if (meta == NULL || str == meta->getString(name)) @@ -193,9 +191,7 @@ int MetaDataRef::l_set_float(lua_State *L) MetaDataRef *ref = checkobject(L, 1); std::string name = luaL_checkstring(L, 2); float a = readParam<float>(L, 3); - std::string str; - if (a != 0) - str = ftos(a); + std::string str = ftos(a); Metadata *meta = ref->getmeta(true); if (meta == NULL || str == meta->getString(name)) diff --git a/src/script/lua_api/l_minimap.cpp b/src/script/lua_api/l_minimap.cpp index 5fba76eb8..3bbb6e5e3 100644 --- a/src/script/lua_api/l_minimap.cpp +++ b/src/script/lua_api/l_minimap.cpp @@ -89,7 +89,7 @@ int LuaMinimap::l_get_mode(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - lua_pushinteger(L, m->getMinimapMode()); + lua_pushinteger(L, m->getModeIndex()); return 1; } @@ -98,13 +98,11 @@ int LuaMinimap::l_set_mode(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - s32 mode = lua_tointeger(L, 2); - if (mode < MINIMAP_MODE_OFF || - mode >= MINIMAP_MODE_COUNT) { + u32 mode = lua_tointeger(L, 2); + if (mode >= m->getMaxModeIndex()) return 0; - } - m->setMinimapMode((MinimapMode) mode); + m->setModeIndex(mode); return 1; } @@ -140,8 +138,11 @@ int LuaMinimap::l_show(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - if (m->getMinimapMode() == MINIMAP_MODE_OFF) - m->setMinimapMode(MINIMAP_MODE_SURFACEx1); + // This is not very adapted to new minimap mode management. Btw, tried + // to do something compatible. + + if (m->getModeIndex() == 0 && m->getMaxModeIndex() > 0) + m->setModeIndex(1); client->showMinimap(true); return 1; @@ -155,8 +156,11 @@ int LuaMinimap::l_hide(lua_State *L) LuaMinimap *ref = checkobject(L, 1); Minimap *m = getobject(ref); - if (m->getMinimapMode() != MINIMAP_MODE_OFF) - m->setMinimapMode(MINIMAP_MODE_OFF); + // This is not very adapted to new minimap mode management. Btw, tried + // to do something compatible. + + if (m->getModeIndex() != 0) + m->setModeIndex(0); client->showMinimap(false); return 1; diff --git a/src/script/lua_api/l_noise.cpp b/src/script/lua_api/l_noise.cpp index 9aeb15709..e0861126a 100644 --- a/src/script/lua_api/l_noise.cpp +++ b/src/script/lua_api/l_noise.cpp @@ -122,7 +122,6 @@ void LuaPerlinNoise::Register(lua_State *L) lua_pop(L, 1); - markAliasDeprecated(methods); luaL_openlib(L, 0, methods, 0); lua_pop(L, 1); @@ -381,7 +380,6 @@ void LuaPerlinNoiseMap::Register(lua_State *L) lua_pop(L, 1); - markAliasDeprecated(methods); luaL_openlib(L, 0, methods, 0); lua_pop(L, 1); diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index e7394133a..8ae99b929 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -44,43 +44,44 @@ ObjectRef* ObjectRef::checkobject(lua_State *L, int narg) { luaL_checktype(L, narg, LUA_TUSERDATA); void *ud = luaL_checkudata(L, narg, className); - if (!ud) luaL_typerror(L, narg, className); + if (ud == nullptr) + luaL_typerror(L, narg, className); return *(ObjectRef**)ud; // unbox pointer } ServerActiveObject* ObjectRef::getobject(ObjectRef *ref) { - ServerActiveObject *co = ref->m_object; - if (co && co->isGone()) - return NULL; - return co; + ServerActiveObject *sao = ref->m_object; + if (sao && sao->isGone()) + return nullptr; + return sao; } LuaEntitySAO* ObjectRef::getluaobject(ObjectRef *ref) { - ServerActiveObject *obj = getobject(ref); - if (obj == NULL) - return NULL; - if (obj->getType() != ACTIVEOBJECT_TYPE_LUAENTITY) - return NULL; - return (LuaEntitySAO*)obj; + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return nullptr; + if (sao->getType() != ACTIVEOBJECT_TYPE_LUAENTITY) + return nullptr; + return (LuaEntitySAO*)sao; } PlayerSAO* ObjectRef::getplayersao(ObjectRef *ref) { - ServerActiveObject *obj = getobject(ref); - if (obj == NULL) - return NULL; - if (obj->getType() != ACTIVEOBJECT_TYPE_PLAYER) - return NULL; - return (PlayerSAO*)obj; + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return nullptr; + if (sao->getType() != ACTIVEOBJECT_TYPE_PLAYER) + return nullptr; + return (PlayerSAO*)sao; } RemotePlayer *ObjectRef::getplayer(ObjectRef *ref) { PlayerSAO *playersao = getplayersao(ref); - if (playersao == NULL) - return NULL; + if (playersao == nullptr) + return nullptr; return playersao->getPlayer(); } @@ -88,9 +89,8 @@ RemotePlayer *ObjectRef::getplayer(ObjectRef *ref) // garbage collector int ObjectRef::gc_object(lua_State *L) { - ObjectRef *o = *(ObjectRef **)(lua_touserdata(L, 1)); - //infostream<<"ObjectRef::gc_object: o="<<o<<std::endl; - delete o; + ObjectRef *obj = *(ObjectRef **)(lua_touserdata(L, 1)); + delete obj; return 0; } @@ -100,29 +100,30 @@ int ObjectRef::l_remove(lua_State *L) GET_ENV_PTR; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER) + if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) return 0; - co->clearChildAttachments(); - co->clearParentAttachment(); + sao->clearChildAttachments(); + sao->clearParentAttachment(); - verbosestream << "ObjectRef::l_remove(): id=" << co->getId() << std::endl; - co->m_pending_removal = true; + verbosestream << "ObjectRef::l_remove(): id=" << sao->getId() << std::endl; + sao->markForRemoval(); return 0; } // get_pos(self) -// returns: {x=num, y=num, z=num} int ObjectRef::l_get_pos(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - push_v3f(L, co->getBasePosition() / BS); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + push_v3f(L, sao->getBasePosition() / BS); return 1; } @@ -131,28 +132,29 @@ int ObjectRef::l_set_pos(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // pos + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + v3f pos = checkFloatPos(L, 2); - // Do it - co->setPos(pos); + + sao->setPos(pos); return 0; } -// move_to(self, pos, continuous=false) +// move_to(self, pos, continuous) int ObjectRef::l_move_to(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // pos + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + v3f pos = checkFloatPos(L, 2); - // continuous bool continuous = readParam<bool>(L, 3); - // Do it - co->moveTo(pos, continuous); + + sao->moveTo(pos, continuous); return 0; } @@ -162,32 +164,26 @@ int ObjectRef::l_punch(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ObjectRef *puncher_ref = checkobject(L, 2); - ServerActiveObject *co = getobject(ref); + ServerActiveObject *sao = getobject(ref); ServerActiveObject *puncher = getobject(puncher_ref); - if (!co || !puncher) + if (sao == nullptr || puncher == nullptr) return 0; - v3f dir; - if (lua_type(L, 5) != LUA_TTABLE) - dir = co->getBasePosition() - puncher->getBasePosition(); - else - dir = read_v3f(L, 5); - float time_from_last_punch = 1000000; - if (lua_isnumber(L, 3)) - time_from_last_punch = lua_tonumber(L, 3); + + float time_from_last_punch = readParam<float>(L, 3, 1000000.0f); ToolCapabilities toolcap = read_tool_capabilities(L, 4); - dir.normalize(); + v3f dir = readParam<v3f>(L, 5, sao->getBasePosition() - puncher->getBasePosition()); - u16 src_original_hp = co->getHP(); + dir.normalize(); + u16 src_original_hp = sao->getHP(); u16 dst_origin_hp = puncher->getHP(); - // Do it - u16 wear = co->punch(dir, &toolcap, puncher, time_from_last_punch); + u16 wear = sao->punch(dir, &toolcap, puncher, time_from_last_punch); lua_pushnumber(L, wear); // If the punched is a player, and its HP changed - if (src_original_hp != co->getHP() && - co->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, + if (src_original_hp != sao->getHP() && + sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + getServer(L)->SendPlayerHPOrDie((PlayerSAO *)sao, PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, puncher)); } @@ -195,45 +191,38 @@ int ObjectRef::l_punch(lua_State *L) if (dst_origin_hp != puncher->getHP() && puncher->getType() == ACTIVEOBJECT_TYPE_PLAYER) { getServer(L)->SendPlayerHPOrDie((PlayerSAO *)puncher, - PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, co)); + PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, sao)); } return 1; } -// right_click(self, clicker); clicker = an another ObjectRef +// right_click(self, clicker) int ObjectRef::l_right_click(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); ObjectRef *ref2 = checkobject(L, 2); - ServerActiveObject *co = getobject(ref); - ServerActiveObject *co2 = getobject(ref2); - if (co == NULL) return 0; - if (co2 == NULL) return 0; - // Do it - co->rightClick(co2); + ServerActiveObject *sao = getobject(ref); + ServerActiveObject *sao2 = getobject(ref2); + if (sao == nullptr || sao2 == nullptr) + return 0; + + sao->rightClick(sao2); return 0; } -// set_hp(self, hp) -// hp = number of hitpoints (2 * number of hearts) -// returns: nil +// set_hp(self, hp, reason) int ObjectRef::l_set_hp(lua_State *L) { NO_MAP_LOCK_REQUIRED; - - // Get Object ObjectRef *ref = checkobject(L, 1); - luaL_checknumber(L, 2); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Get HP - int hp = lua_tonumber(L, 2); - - // Get Reason + int hp = readParam<float>(L, 2); PlayerHPChangeReason reason(PlayerHPChangeReason::SET_HP); + reason.from_mod = true; if (lua_istable(L, 3)) { lua_pushvalue(L, 3); @@ -248,35 +237,28 @@ int ObjectRef::l_set_hp(lua_State *L) reason.lua_reference = luaL_ref(L, LUA_REGISTRYINDEX); } - // Do it - co->setHP(hp, reason); - if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER) - getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, reason); - + sao->setHP(hp, reason); + if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) + getServer(L)->SendPlayerHPOrDie((PlayerSAO *)sao, reason); if (reason.hasLuaReference()) luaL_unref(L, LUA_REGISTRYINDEX, reason.lua_reference); - - // Return return 0; } // get_hp(self) -// returns: number of hitpoints (2 * number of hearts) -// 0 if not applicable to this type of object int ObjectRef::l_get_hp(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) { + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) { // Default hp is 1 lua_pushnumber(L, 1); return 1; } - int hp = co->getHP(); - /*infostream<<"ObjectRef::l_get_hp(): id="<<co->getId() - <<" hp="<<hp<<std::endl;*/ - // Return + + int hp = sao->getHP(); + lua_pushnumber(L, hp); return 1; } @@ -286,11 +268,12 @@ int ObjectRef::l_get_inventory(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it - InventoryLocation loc = co->getInventoryLocation(); - if (getServerInventoryMgr(L)->getInventory(loc) != NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + InventoryLocation loc = sao->getInventoryLocation(); + if (getServerInventoryMgr(L)->getInventory(loc) != nullptr) InvRef::create(L, loc); else lua_pushnil(L); // An object may have no inventory (nil) @@ -302,11 +285,11 @@ int ObjectRef::l_get_wield_list(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - lua_pushstring(L, co->getWieldList().c_str()); + lua_pushstring(L, sao->getWieldList().c_str()); return 1; } @@ -315,11 +298,11 @@ int ObjectRef::l_get_wield_index(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - lua_pushinteger(L, co->getWieldIndex() + 1); + lua_pushinteger(L, sao->getWieldIndex() + 1); return 1; } @@ -328,31 +311,33 @@ int ObjectRef::l_get_wielded_item(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) { + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) { // Empty ItemStack LuaItemStack::create(L, ItemStack()); return 1; } ItemStack selected_item; - co->getWieldedItem(&selected_item, nullptr); + sao->getWieldedItem(&selected_item, nullptr); LuaItemStack::create(L, selected_item); return 1; } -// set_wielded_item(self, itemstack or itemstring or table or nil) +// set_wielded_item(self, item) int ObjectRef::l_set_wielded_item(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + ItemStack item = read_item(L, 2, getServer(L)->idef()); - bool success = co->setWieldedItem(item); - if (success && co->getType() == ACTIVEOBJECT_TYPE_PLAYER) { - getServer(L)->SendInventory((PlayerSAO *)co, true); + + bool success = sao->setWieldedItem(item); + if (success && sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + getServer(L)->SendInventory((PlayerSAO *)sao, true); } lua_pushboolean(L, success); return 1; @@ -363,12 +348,23 @@ int ObjectRef::l_set_armor_groups(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + ItemGroupList groups; + read_groups(L, 2, groups); - co->setArmorGroups(groups); + 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; } @@ -377,77 +373,11 @@ int ObjectRef::l_get_armor_groups(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it - push_groups(L, co->getArmorGroups()); - return 1; -} - -// set_physics_override(self, physics_override_speed, physics_override_jump, -// physics_override_gravity, sneak, sneak_glitch, new_move) -int ObjectRef::l_set_physics_override(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = (PlayerSAO *) getobject(ref); - if (co == NULL) return 0; - // Do it - if (lua_istable(L, 2)) { - co->m_physics_override_speed = getfloatfield_default( - L, 2, "speed", co->m_physics_override_speed); - co->m_physics_override_jump = getfloatfield_default( - L, 2, "jump", co->m_physics_override_jump); - co->m_physics_override_gravity = getfloatfield_default( - L, 2, "gravity", co->m_physics_override_gravity); - co->m_physics_override_sneak = getboolfield_default( - L, 2, "sneak", co->m_physics_override_sneak); - co->m_physics_override_sneak_glitch = getboolfield_default( - L, 2, "sneak_glitch", co->m_physics_override_sneak_glitch); - co->m_physics_override_new_move = getboolfield_default( - L, 2, "new_move", co->m_physics_override_new_move); - co->m_physics_override_sent = false; - } else { - // old, non-table format - if (!lua_isnil(L, 2)) { - co->m_physics_override_speed = lua_tonumber(L, 2); - co->m_physics_override_sent = false; - } - if (!lua_isnil(L, 3)) { - co->m_physics_override_jump = lua_tonumber(L, 3); - co->m_physics_override_sent = false; - } - if (!lua_isnil(L, 4)) { - co->m_physics_override_gravity = lua_tonumber(L, 4); - co->m_physics_override_sent = false; - } - } - return 0; -} -// get_physics_override(self) -int ObjectRef::l_get_physics_override(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = (PlayerSAO *)getobject(ref); - if (co == NULL) - return 0; - // Do it - lua_newtable(L); - lua_pushnumber(L, co->m_physics_override_speed); - lua_setfield(L, -2, "speed"); - lua_pushnumber(L, co->m_physics_override_jump); - lua_setfield(L, -2, "jump"); - lua_pushnumber(L, co->m_physics_override_gravity); - lua_setfield(L, -2, "gravity"); - lua_pushboolean(L, co->m_physics_override_sneak); - lua_setfield(L, -2, "sneak"); - lua_pushboolean(L, co->m_physics_override_sneak_glitch); - lua_setfield(L, -2, "sneak_glitch"); - lua_pushboolean(L, co->m_physics_override_new_move); - lua_setfield(L, -2, "new_move"); + push_groups(L, sao->getArmorGroups()); return 1; } @@ -456,22 +386,16 @@ int ObjectRef::l_set_animation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it - v2f frames = v2f(1, 1); - if (!lua_isnil(L, 2)) - frames = readParam<v2f>(L, 2); - float frame_speed = 15; - if (!lua_isnil(L, 3)) - frame_speed = lua_tonumber(L, 3); - float frame_blend = 0; - if (!lua_isnil(L, 4)) - frame_blend = lua_tonumber(L, 4); - bool frame_loop = true; - if (lua_isboolean(L, 5)) - frame_loop = readParam<bool>(L, 5); - co->setAnimation(frames, frame_speed, frame_blend, frame_loop); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + v2f frame_range = readParam<v2f>(L, 2, v2f(1, 1)); + float frame_speed = readParam<float>(L, 3, 15.0f); + float frame_blend = readParam<float>(L, 4, 0.0f); + bool frame_loop = readParam<bool>(L, 5, true); + + sao->setAnimation(frame_range, frame_speed, frame_blend, frame_loop); return 0; } @@ -480,16 +404,16 @@ int ObjectRef::l_get_animation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it - v2f frames = v2f(1,1); + + v2f frames = v2f(1, 1); float frame_speed = 15; float frame_blend = 0; bool frame_loop = true; - co->getAnimation(&frames, &frame_speed, &frame_blend, &frame_loop); + sao->getAnimation(&frames, &frame_speed, &frame_blend, &frame_loop); push_v2f(L, frames); lua_pushnumber(L, frame_speed); lua_pushnumber(L, frame_blend); @@ -497,23 +421,21 @@ int ObjectRef::l_get_animation(lua_State *L) return 4; } -// set_local_animation(self, {stand/idle}, {walk}, {dig}, {walk+dig}, frame_speed) +// set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed) int ObjectRef::l_set_local_animation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - // Do it + v2s32 frames[4]; for (int i=0;i<4;i++) { if (!lua_isnil(L, 2+1)) frames[i] = read_v2s32(L, 2+i); } - float frame_speed = 30; - if (!lua_isnil(L, 6)) - frame_speed = lua_tonumber(L, 6); + float frame_speed = readParam<float>(L, 6, 30.0f); getServer(L)->setLocalPlayerAnimations(player, frames, frame_speed); lua_pushboolean(L, true); @@ -526,7 +448,7 @@ int ObjectRef::l_get_local_animation(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; v2s32 frames[4]; @@ -541,27 +463,22 @@ int ObjectRef::l_get_local_animation(lua_State *L) return 5; } -// set_eye_offset(self, v3f first pv, v3f third pv) +// set_eye_offset(self, firstperson, thirdperson) int ObjectRef::l_set_eye_offset(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - // Do it - v3f offset_first = v3f(0, 0, 0); - v3f offset_third = v3f(0, 0, 0); - if (!lua_isnil(L, 2)) - offset_first = read_v3f(L, 2); - if (!lua_isnil(L, 3)) - offset_third = read_v3f(L, 3); + v3f offset_first = readParam<v3f>(L, 2, v3f(0, 0, 0)); + v3f offset_third = readParam<v3f>(L, 3, v3f(0, 0, 0)); // Prevent abuse of offset values (keep player always visible) offset_third.X = rangelim(offset_third.X,-10,10); offset_third.Z = rangelim(offset_third.Z,-5,5); - /* TODO: if possible: improve the camera colision detetion to allow Y <= -1.5) */ + /* TODO: if possible: improve the camera collision detection to allow Y <= -1.5) */ offset_third.Y = rangelim(offset_third.Y,-10,15); //1.5*BS getServer(L)->setPlayerEyeOffset(player, offset_first, offset_third); @@ -575,9 +492,9 @@ int ObjectRef::l_get_eye_offset(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - // Do it + push_v3f(L, player->eye_offset_first); push_v3f(L, player->eye_offset_third); return 2; @@ -588,14 +505,14 @@ int ObjectRef::l_send_mapblock(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; - v3s16 p = read_v3s16(L, 2); + + v3s16 pos = read_v3s16(L, 2); session_t peer_id = player->getPeerId(); - bool r = getServer(L)->SendBlock(peer_id, p); + bool r = getServer(L)->SendBlock(peer_id, pos); lua_pushboolean(L, r); return 1; @@ -606,14 +523,13 @@ int ObjectRef::l_set_animation_frame_speed(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it if (!lua_isnil(L, 2)) { - float frame_speed = lua_tonumber(L, 2); - co->setAnimationSpeed(frame_speed); + float frame_speed = readParam<float>(L, 2); + sao->setAnimationSpeed(frame_speed); lua_pushboolean(L, true); } else { lua_pushboolean(L, false); @@ -621,24 +537,20 @@ int ObjectRef::l_set_animation_frame_speed(lua_State *L) return 1; } -// set_bone_position(self, std::string bone, v3f position, v3f rotation) +// set_bone_position(self, bone, position, rotation) int ObjectRef::l_set_bone_position(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) return 0; - // Do it - std::string bone; - if (!lua_isnil(L, 2)) - bone = readParam<std::string>(L, 2); - v3f position = v3f(0, 0, 0); - if (!lua_isnil(L, 3)) - position = check_v3f(L, 3); - v3f rotation = v3f(0, 0, 0); - if (!lua_isnil(L, 4)) - rotation = check_v3f(L, 4); - co->setBonePosition(bone, position, rotation); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + std::string bone = readParam<std::string>(L, 2, ""); + v3f position = readParam<v3f>(L, 3, v3f(0, 0, 0)); + v3f rotation = readParam<v3f>(L, 4, v3f(0, 0, 0)); + + sao->setBonePosition(bone, position, rotation); return 0; } @@ -647,63 +559,53 @@ int ObjectRef::l_get_bone_position(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it - std::string bone; - if (!lua_isnil(L, 2)) - bone = readParam<std::string>(L, 2); + + std::string bone = readParam<std::string>(L, 2, ""); v3f position = v3f(0, 0, 0); v3f rotation = v3f(0, 0, 0); - co->getBonePosition(bone, &position, &rotation); + sao->getBonePosition(bone, &position, &rotation); push_v3f(L, position); push_v3f(L, rotation); return 2; } -// set_attach(self, parent, bone, position, rotation) +// set_attach(self, parent, bone, position, rotation, force_visible) int ObjectRef::l_set_attach(lua_State *L) { GET_ENV_PTR; - ObjectRef *ref = checkobject(L, 1); ObjectRef *parent_ref = checkobject(L, 2); - ServerActiveObject *co = getobject(ref); + ServerActiveObject *sao = getobject(ref); ServerActiveObject *parent = getobject(parent_ref); - if (co == NULL) - return 0; - - if (parent == NULL) + if (sao == nullptr || parent == nullptr) return 0; - - if (co == parent) + if (sao == parent) throw LuaError("ObjectRef::set_attach: attaching object to itself is not allowed."); - // Do it - int parent_id = 0; + int parent_id; std::string bone; - v3f position = v3f(0, 0, 0); - v3f rotation = v3f(0, 0, 0); - co->getAttachment(&parent_id, &bone, &position, &rotation); + v3f position; + v3f rotation; + bool force_visible; + + sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); if (parent_id) { ServerActiveObject *old_parent = env->getActiveObject(parent_id); - old_parent->removeAttachmentChild(co->getId()); + old_parent->removeAttachmentChild(sao->getId()); } - bone = ""; - if (!lua_isnil(L, 3)) - bone = readParam<std::string>(L, 3); - position = v3f(0, 0, 0); - if (!lua_isnil(L, 4)) - position = read_v3f(L, 4); - rotation = v3f(0, 0, 0); - if (!lua_isnil(L, 5)) - rotation = read_v3f(L, 5); - co->setAttachment(parent->getId(), bone, position, rotation); - parent->addAttachmentChild(co->getId()); + bone = readParam<std::string>(L, 3, ""); + position = readParam<v3f>(L, 4, v3f(0, 0, 0)); + rotation = readParam<v3f>(L, 5, v3f(0, 0, 0)); + force_visible = readParam<bool>(L, 6, false); + + sao->setAttachment(parent->getId(), bone, position, rotation, force_visible); + parent->addAttachmentChild(sao->getId()); return 0; } @@ -711,40 +613,61 @@ int ObjectRef::l_set_attach(lua_State *L) int ObjectRef::l_get_attach(lua_State *L) { GET_ENV_PTR; - ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - // Do it - int parent_id = 0; + int parent_id; std::string bone; - v3f position = v3f(0, 0, 0); - v3f rotation = v3f(0, 0, 0); - co->getAttachment(&parent_id, &bone, &position, &rotation); - if (!parent_id) + v3f position; + v3f rotation; + bool force_visible; + + sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible); + if (parent_id == 0) return 0; - ServerActiveObject *parent = env->getActiveObject(parent_id); + ServerActiveObject *parent = env->getActiveObject(parent_id); getScriptApiBase(L)->objectrefGetOrCreate(L, parent); lua_pushlstring(L, bone.c_str(), bone.size()); push_v3f(L, position); push_v3f(L, rotation); - return 4; + lua_pushboolean(L, force_visible); + return 5; +} + +// get_children(self) +int ObjectRef::l_get_children(lua_State *L) +{ + GET_ENV_PTR; + ObjectRef *ref = checkobject(L, 1); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + const std::unordered_set<int> child_ids = sao->getAttachmentChildIds(); + int i = 0; + + lua_createtable(L, child_ids.size(), 0); + for (const int id : child_ids) { + ServerActiveObject *child = env->getActiveObject(id); + getScriptApiBase(L)->objectrefGetOrCreate(L, child); + lua_rawseti(L, -2, ++i); + } + return 1; } // set_detach(self) int ObjectRef::l_set_detach(lua_State *L) { GET_ENV_PTR; - ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - co->clearParentAttachment(); + sao->clearParentAttachment(); return 0; } @@ -753,16 +676,16 @@ int ObjectRef::l_set_properties(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (!co) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); - if (!prop) + ObjectProperties *prop = sao->accessObjectProperties(); + if (prop == nullptr) return 0; - read_object_properties(L, 2, co, prop, getServer(L)->idef()); - co->notifyObjectPropertiesModified(); + read_object_properties(L, 2, sao, prop, getServer(L)->idef()); + sao->notifyObjectPropertiesModified(); return 0; } @@ -771,12 +694,14 @@ int ObjectRef::l_get_properties(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); - if (!prop) + + ObjectProperties *prop = sao->accessObjectProperties(); + if (prop == nullptr) return 0; + push_object_properties(L, prop); return 1; } @@ -787,7 +712,7 @@ int ObjectRef::l_is_player(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - lua_pushboolean(L, (player != NULL)); + lua_pushboolean(L, (player != nullptr)); return 1; } @@ -796,12 +721,12 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); - if (!prop) + + ObjectProperties *prop = sao->accessObjectProperties(); + if (prop == nullptr) return 0; lua_getfield(L, 2, "color"); @@ -812,10 +737,22 @@ 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; - co->notifyObjectPropertiesModified(); + sao->notifyObjectPropertiesModified(); lua_pushboolean(L, true); return 1; } @@ -825,50 +762,72 @@ int ObjectRef::l_get_nametag_attributes(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - ServerActiveObject *co = getobject(ref); - - if (co == NULL) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - ObjectProperties *prop = co->accessObjectProperties(); + + ObjectProperties *prop = sao->accessObjectProperties(); if (!prop) return 0; - 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; } /* LuaEntitySAO-only */ -// set_velocity(self, {x=num, y=num, z=num}) +// set_velocity(self, velocity) int ObjectRef::l_set_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - v3f pos = checkFloatPos(L, 2); - // Do it - co->setVelocity(pos); + LuaEntitySAO *sao = getluaobject(ref); + if (sao == nullptr) + return 0; + + v3f vel = checkFloatPos(L, 2); + + sao->setVelocity(vel); return 0; } -// add_velocity(self, {x=num, y=num, z=num}) +// add_velocity(self, velocity) int ObjectRef::l_add_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) return 0; - v3f pos = checkFloatPos(L, 2); - // Do it - co->addVelocity(pos); + + v3f vel = checkFloatPos(L, 2); + + if (sao->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { + LuaEntitySAO *entitysao = dynamic_cast<LuaEntitySAO*>(sao); + entitysao->addVelocity(vel); + } else if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + PlayerSAO *playersao = dynamic_cast<PlayerSAO*>(sao); + playersao->setMaxSpeedOverride(vel); + getServer(L)->SendPlayerSpeed(playersao->getPeerID(), vel); + } + return 0; } @@ -877,25 +836,37 @@ int ObjectRef::l_get_velocity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - v3f v = co->getVelocity(); - pushFloatPos(L, v); + ServerActiveObject *sao = getobject(ref); + if (sao == nullptr) + return 0; + + if (sao->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) { + LuaEntitySAO *entitysao = dynamic_cast<LuaEntitySAO*>(sao); + v3f vel = entitysao->getVelocity(); + pushFloatPos(L, vel); + return 1; + } else if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) { + RemotePlayer *player = dynamic_cast<PlayerSAO*>(sao)->getPlayer(); + push_v3f(L, player->getSpeed() / BS); + return 1; + } + + lua_pushnil(L); return 1; } -// set_acceleration(self, {x=num, y=num, z=num}) +// set_acceleration(self, acceleration) int ObjectRef::l_set_acceleration(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // pos - v3f pos = checkFloatPos(L, 2); - // Do it - co->setAcceleration(pos); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + v3f acceleration = checkFloatPos(L, 2); + + entitysao->setAcceleration(acceleration); return 0; } @@ -904,59 +875,58 @@ int ObjectRef::l_get_acceleration(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - v3f v = co->getAcceleration(); - pushFloatPos(L, v); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + v3f acceleration = entitysao->getAcceleration(); + pushFloatPos(L, acceleration); return 1; } -// set_rotation(self, {x=num, y=num, z=num}) -// Each 'num' is in radians +// set_rotation(self, rotation) int ObjectRef::l_set_rotation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) return 0; v3f rotation = check_v3f(L, 2) * core::RADTODEG; - co->setRotation(rotation); + + entitysao->setRotation(rotation); return 0; } // get_rotation(self) -// returns: {x=num, y=num, z=num} -// Each 'num' is in radians int ObjectRef::l_get_rotation(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) return 0; + v3f rotation = entitysao->getRotation() * core::DEGTORAD; + lua_newtable(L); - v3f rotation = co->getRotation() * core::DEGTORAD; push_v3f(L, rotation); return 1; } -// set_yaw(self, radians) +// set_yaw(self, yaw) int ObjectRef::l_set_yaw(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - - if (co == NULL) return 0; - if (isNaN(L, 2)) - throw LuaError("ObjectRef::set_yaw: NaN value is not allowed."); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; float yaw = readParam<float>(L, 2) * core::RADTODEG; - co->setRotation(v3f(0, yaw, 0)); + + entitysao->setRotation(v3f(0, yaw, 0)); return 0; } @@ -965,11 +935,12 @@ int ObjectRef::l_get_yaw(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (!co) + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) return 0; - float yaw = co->getRotation().Y * core::DEGTORAD; + float yaw = entitysao->getRotation().Y * core::DEGTORAD; + lua_pushnumber(L, yaw); return 1; } @@ -979,11 +950,13 @@ int ObjectRef::l_set_texture_mod(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - std::string mod = luaL_checkstring(L, 2); - co->setTextureMod(mod); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + std::string mod = readParam<std::string>(L, 2); + + entitysao->setTextureMod(mod); return 0; } @@ -992,36 +965,31 @@ int ObjectRef::l_get_texture_mod(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - std::string mod = co->getTextureMod(); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + std::string mod = entitysao->getTextureMod(); + lua_pushstring(L, mod.c_str()); return 1; } -// set_sprite(self, p={x=0,y=0}, num_frames=1, framelength=0.2, -// select_horiz_by_yawpitch=false) +// set_sprite(self, start_frame, num_frames, framelength, select_x_by_camera) int ObjectRef::l_set_sprite(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - v2s16 p(0,0); - if (!lua_isnil(L, 2)) - p = readParam<v2s16>(L, 2); - int num_frames = 1; - if (!lua_isnil(L, 3)) - num_frames = lua_tonumber(L, 3); - float framelength = 0.2; - if (!lua_isnil(L, 4)) - framelength = lua_tonumber(L, 4); - bool select_horiz_by_yawpitch = false; - if (!lua_isnil(L, 5)) - select_horiz_by_yawpitch = readParam<bool>(L, 5); - co->setSprite(p, num_frames, framelength, select_horiz_by_yawpitch); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + v2s16 start_frame = readParam<v2s16>(L, 2, v2s16(0,0)); + int num_frames = readParam<int>(L, 3, 1); + float framelength = readParam<float>(L, 4, 0.2f); + bool select_x_by_camera = readParam<bool>(L, 5, false); + + entitysao->setSprite(start_frame, num_frames, framelength, select_x_by_camera); return 0; } @@ -1031,11 +999,13 @@ int ObjectRef::l_get_entity_name(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); + LuaEntitySAO *entitysao = getluaobject(ref); log_deprecated(L,"Deprecated call to \"get_entity_name"); - if (co == NULL) return 0; - // Do it - std::string name = co->getName(); + if (entitysao == nullptr) + return 0; + + std::string name = entitysao->getName(); + lua_pushstring(L, name.c_str()); return 1; } @@ -1045,87 +1015,45 @@ int ObjectRef::l_get_luaentity(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - LuaEntitySAO *co = getluaobject(ref); - if (co == NULL) return 0; - // Do it - luaentity_get(L, co->getId()); + LuaEntitySAO *entitysao = getluaobject(ref); + if (entitysao == nullptr) + return 0; + + luaentity_get(L, entitysao->getId()); return 1; } /* Player-only */ -// is_player_connected(self) -int ObjectRef::l_is_player_connected(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - // This method was once added for a bugfix, but never documented - log_deprecated(L, "is_player_connected is undocumented and " - "will be removed in a future release"); - ObjectRef *ref = checkobject(L, 1); - RemotePlayer *player = getplayer(ref); - lua_pushboolean(L, (player != NULL && player->getPeerId() != PEER_ID_INEXISTENT)); - return 1; -} - // get_player_name(self) int ObjectRef::l_get_player_name(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) { + if (player == nullptr) { lua_pushlstring(L, "", 0); return 1; } - // Do it - lua_pushstring(L, player->getName()); - return 1; -} -// get_player_velocity(self) -int ObjectRef::l_get_player_velocity(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - RemotePlayer *player = getplayer(ref); - if (player == NULL) { - lua_pushnil(L); - return 1; - } - // Do it - push_v3f(L, player->getSpeed() / BS); + lua_pushstring(L, player->getName()); return 1; } -// add_player_velocity(self, {x=num, y=num, z=num}) -int ObjectRef::l_add_player_velocity(lua_State *L) -{ - NO_MAP_LOCK_REQUIRED; - ObjectRef *ref = checkobject(L, 1); - v3f vel = checkFloatPos(L, 2); - - PlayerSAO *co = getplayersao(ref); - if (!co) - return 0; - - // Do it - co->setMaxSpeedOverride(vel); - getServer(L)->SendPlayerSpeed(co->getPeerID(), vel); - return 0; -} - // get_look_dir(self) int ObjectRef::l_get_look_dir(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - float pitch = co->getRadLookPitchDep(); - float yaw = co->getRadYawDep(); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + float pitch = playersao->getRadLookPitchDep(); + float yaw = playersao->getRadYawDep(); v3f v(std::cos(pitch) * std::cos(yaw), std::sin(pitch), std::cos(pitch) * std::sin(yaw)); + push_v3f(L, v); return 1; } @@ -1140,10 +1068,11 @@ int ObjectRef::l_get_look_pitch(lua_State *L) "Deprecated call to get_look_pitch, use get_look_vertical instead"); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadLookPitchDep()); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadLookPitchDep()); return 1; } @@ -1157,34 +1086,37 @@ int ObjectRef::l_get_look_yaw(lua_State *L) "Deprecated call to get_look_yaw, use get_look_horizontal instead"); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadYawDep()); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadYawDep()); return 1; } -// get_look_pitch2(self) +// get_look_vertical(self) int ObjectRef::l_get_look_vertical(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadLookPitch()); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadLookPitch()); return 1; } -// get_look_yaw2(self) +// get_look_horizontal(self) int ObjectRef::l_get_look_horizontal(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - lua_pushnumber(L, co->getRadRotation().Y); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_pushnumber(L, playersao->getRadRotation().Y); return 1; } @@ -1193,11 +1125,13 @@ int ObjectRef::l_set_look_vertical(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float pitch = readParam<float>(L, 2) * core::RADTODEG; - // Do it - co->setLookPitchAndSend(pitch); + + playersao->setLookPitchAndSend(pitch); return 1; } @@ -1206,11 +1140,13 @@ int ObjectRef::l_set_look_horizontal(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float yaw = readParam<float>(L, 2) * core::RADTODEG; - // Do it - co->setPlayerYawAndSend(yaw); + + playersao->setPlayerYawAndSend(yaw); return 1; } @@ -1224,11 +1160,13 @@ int ObjectRef::l_set_look_pitch(lua_State *L) "Deprecated call to set_look_pitch, use set_look_vertical instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float pitch = readParam<float>(L, 2) * core::RADTODEG; - // Do it - co->setLookPitchAndSend(pitch); + + playersao->setLookPitchAndSend(pitch); return 1; } @@ -1242,30 +1180,32 @@ int ObjectRef::l_set_look_yaw(lua_State *L) "Deprecated call to set_look_yaw, use set_look_horizontal instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + float yaw = readParam<float>(L, 2) * core::RADTODEG; - // Do it - co->setPlayerYawAndSend(yaw); + + playersao->setPlayerYawAndSend(yaw); return 1; } -// set_fov(self, degrees[, is_multiplier, transition_time]) +// set_fov(self, degrees, is_multiplier, transition_time) int ObjectRef::l_set_fov(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; - player->setFov({ - static_cast<f32>(luaL_checknumber(L, 2)), - readParam<bool>(L, 3, false), - lua_isnumber(L, 4) ? static_cast<f32>(luaL_checknumber(L, 4)) : 0.0f - }); - getServer(L)->SendPlayerFov(player->getPeerId()); + float degrees = static_cast<f32>(luaL_checknumber(L, 2)); + bool is_multiplier = readParam<bool>(L, 3, false); + float transition_time = lua_isnumber(L, 4) ? + static_cast<f32>(luaL_checknumber(L, 4)) : 0.0f; + player->setFov({degrees, is_multiplier, transition_time}); + getServer(L)->SendPlayerFov(player->getPeerId()); return 0; } @@ -1275,14 +1215,14 @@ int ObjectRef::l_get_fov(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; PlayerFovSpec fov_spec = player->getFov(); + lua_pushnumber(L, fov_spec.fov); lua_pushboolean(L, fov_spec.is_multiplier); lua_pushnumber(L, fov_spec.transition_time); - return 3; } @@ -1291,11 +1231,13 @@ int ObjectRef::l_set_breath(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + u16 breath = luaL_checknumber(L, 2); - co->setBreath(breath); + playersao->setBreath(breath); return 0; } @@ -1304,11 +1246,13 @@ int ObjectRef::l_get_breath(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) return 0; - // Do it - u16 breath = co->getBreath(); - lua_pushinteger (L, breath); + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + u16 breath = playersao->getBreath(); + + lua_pushinteger(L, breath); return 1; } @@ -1319,16 +1263,16 @@ int ObjectRef::l_set_attribute(lua_State *L) "Deprecated call to set_attribute, use MetaDataRef methods instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) return 0; std::string attr = luaL_checkstring(L, 2); if (lua_isnil(L, 3)) { - co->getMeta().removeString(attr); + playersao->getMeta().removeString(attr); } else { std::string value = luaL_checkstring(L, 3); - co->getMeta().setString(attr, value); + playersao->getMeta().setString(attr, value); } return 1; } @@ -1340,14 +1284,14 @@ int ObjectRef::l_get_attribute(lua_State *L) "Deprecated call to get_attribute, use MetaDataRef methods instead."); ObjectRef *ref = checkobject(L, 1); - PlayerSAO* co = getplayersao(ref); - if (co == NULL) + PlayerSAO* playersao = getplayersao(ref); + if (playersao == nullptr) return 0; std::string attr = luaL_checkstring(L, 2); std::string value; - if (co->getMeta().getStringToRef(attr, value)) { + if (playersao->getMeta().getStringToRef(attr, value)) { lua_pushstring(L, value.c_str()); return 1; } @@ -1360,11 +1304,11 @@ int ObjectRef::l_get_attribute(lua_State *L) int ObjectRef::l_get_meta(lua_State *L) { ObjectRef *ref = checkobject(L, 1); - PlayerSAO *co = getplayersao(ref); - if (co == NULL) + PlayerSAO *playersao = getplayersao(ref); + if (playersao == nullptr) return 0; - PlayerMetaRef::create(L, &co->getMeta()); + PlayerMetaRef::create(L, &playersao->getMeta()); return 1; } @@ -1375,7 +1319,9 @@ int ObjectRef::l_set_inventory_formspec(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) return 0; + if (player == nullptr) + return 0; + std::string formspec = luaL_checkstring(L, 2); player->inventory_formspec = formspec; @@ -1390,9 +1336,11 @@ int ObjectRef::l_get_inventory_formspec(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) return 0; + if (player == nullptr) + return 0; std::string formspec = player->inventory_formspec; + lua_pushlstring(L, formspec.c_str(), formspec.size()); return 1; } @@ -1403,7 +1351,7 @@ int ObjectRef::l_set_formspec_prepend(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string formspec = luaL_checkstring(L, 2); @@ -1414,16 +1362,17 @@ int ObjectRef::l_set_formspec_prepend(lua_State *L) return 1; } -// get_formspec_prepend(self) -> formspec +// get_formspec_prepend(self) int ObjectRef::l_get_formspec_prepend(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string formspec = player->formspec_prepend; + lua_pushlstring(L, formspec.c_str(), formspec.size()); return 1; } @@ -1434,7 +1383,7 @@ int ObjectRef::l_get_player_control(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) { + if (player == nullptr) { lua_pushlstring(L, "", 0); return 1; } @@ -1455,9 +1404,14 @@ int ObjectRef::l_get_player_control(lua_State *L) lua_setfield(L, -2, "aux1"); lua_pushboolean(L, control.sneak); lua_setfield(L, -2, "sneak"); - lua_pushboolean(L, control.LMB); + lua_pushboolean(L, control.dig); + lua_setfield(L, -2, "dig"); + lua_pushboolean(L, control.place); + lua_setfield(L, -2, "place"); + // Legacy fields to ensure mod compatibility + lua_pushboolean(L, control.dig); lua_setfield(L, -2, "LMB"); - lua_pushboolean(L, control.RMB); + lua_pushboolean(L, control.place); lua_setfield(L, -2, "RMB"); lua_pushboolean(L, control.zoom); lua_setfield(L, -2, "zoom"); @@ -1470,22 +1424,87 @@ int ObjectRef::l_get_player_control_bits(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) { + if (player == nullptr) { lua_pushlstring(L, "", 0); return 1; } - // Do it + lua_pushnumber(L, player->keyPressed); return 1; } -// hud_add(self, form) +// set_physics_override(self, override_table) +int ObjectRef::l_set_physics_override(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + ObjectRef *ref = checkobject(L, 1); + PlayerSAO *playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + if (lua_istable(L, 2)) { + bool modified = false; + modified |= getfloatfield(L, 2, "speed", playersao->m_physics_override_speed); + modified |= getfloatfield(L, 2, "jump", playersao->m_physics_override_jump); + modified |= getfloatfield(L, 2, "gravity", playersao->m_physics_override_gravity); + modified |= getboolfield(L, 2, "sneak", playersao->m_physics_override_sneak); + modified |= getboolfield(L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch); + modified |= getboolfield(L, 2, "new_move", playersao->m_physics_override_new_move); + if (modified) + playersao->m_physics_override_sent = false; + } else { + // old, non-table format + // TODO: Remove this code after version 5.4.0 + log_deprecated(L, "Deprecated use of set_physics_override(num, num, num)"); + + if (!lua_isnil(L, 2)) { + playersao->m_physics_override_speed = lua_tonumber(L, 2); + playersao->m_physics_override_sent = false; + } + if (!lua_isnil(L, 3)) { + playersao->m_physics_override_jump = lua_tonumber(L, 3); + playersao->m_physics_override_sent = false; + } + if (!lua_isnil(L, 4)) { + playersao->m_physics_override_gravity = lua_tonumber(L, 4); + playersao->m_physics_override_sent = false; + } + } + return 0; +} + +// get_physics_override(self) +int ObjectRef::l_get_physics_override(lua_State *L) +{ + NO_MAP_LOCK_REQUIRED; + ObjectRef *ref = checkobject(L, 1); + PlayerSAO *playersao = getplayersao(ref); + if (playersao == nullptr) + return 0; + + lua_newtable(L); + lua_pushnumber(L, playersao->m_physics_override_speed); + lua_setfield(L, -2, "speed"); + lua_pushnumber(L, playersao->m_physics_override_jump); + lua_setfield(L, -2, "jump"); + lua_pushnumber(L, playersao->m_physics_override_gravity); + lua_setfield(L, -2, "gravity"); + lua_pushboolean(L, playersao->m_physics_override_sneak); + lua_setfield(L, -2, "sneak"); + lua_pushboolean(L, playersao->m_physics_override_sneak_glitch); + lua_setfield(L, -2, "sneak_glitch"); + lua_pushboolean(L, playersao->m_physics_override_new_move); + lua_setfield(L, -2, "new_move"); + return 1; +} + +// hud_add(self, hud) int ObjectRef::l_hud_add(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; HudElement *elem = new HudElement; @@ -1507,12 +1526,10 @@ int ObjectRef::l_hud_remove(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - u32 id = -1; - if (!lua_isnil(L, 2)) - id = lua_tonumber(L, 2); + u32 id = luaL_checkint(L, 2); if (!getServer(L)->hudRemove(player, id)) return 0; @@ -1527,17 +1544,17 @@ int ObjectRef::l_hud_change(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - u32 id = lua_isnumber(L, 2) ? lua_tonumber(L, 2) : -1; + u32 id = luaL_checkint(L, 2); - HudElement *e = player->getHud(id); - if (!e) + HudElement *elem = player->getHud(id); + if (elem == nullptr) return 0; - void *value = NULL; - HudElementStat stat = read_hud_change(L, e, &value); + void *value = nullptr; + HudElementStat stat = read_hud_change(L, elem, &value); getServer(L)->hudChange(player, id, stat, value); @@ -1551,15 +1568,16 @@ int ObjectRef::l_hud_get(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - u32 id = lua_tonumber(L, -1); + u32 id = luaL_checkint(L, 2); - HudElement *e = player->getHud(id); - if (!e) + HudElement *elem = player->getHud(id); + if (elem == nullptr) return 0; - push_hud_element(L, e); + + push_hud_element(L, elem); return 1; } @@ -1569,7 +1587,7 @@ int ObjectRef::l_hud_set_flags(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; u32 flags = 0; @@ -1590,12 +1608,13 @@ int ObjectRef::l_hud_set_flags(lua_State *L) return 1; } +// hud_get_flags(self) int ObjectRef::l_hud_get_flags(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; lua_newtable(L); @@ -1613,7 +1632,6 @@ int ObjectRef::l_hud_get_flags(lua_State *L) lua_setfield(L, -2, "minimap"); lua_pushboolean(L, player->hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE); lua_setfield(L, -2, "minimap_radar"); - return 1; } @@ -1623,10 +1641,10 @@ int ObjectRef::l_hud_set_hotbar_itemcount(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; - s32 hotbar_itemcount = lua_tonumber(L, 2); + s32 hotbar_itemcount = luaL_checkint(L, 2); if (!getServer(L)->hudSetHotbarItemcount(player, hotbar_itemcount)) return 0; @@ -1641,7 +1659,7 @@ int ObjectRef::l_hud_get_hotbar_itemcount(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; lua_pushnumber(L, player->getHotbarItemcount()); @@ -1654,7 +1672,7 @@ int ObjectRef::l_hud_set_hotbar_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string name = readParam<std::string>(L, 2); @@ -1669,10 +1687,11 @@ int ObjectRef::l_hud_get_hotbar_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; const std::string &name = player->getHotbarImage(); + lua_pushlstring(L, name.c_str(), name.size()); return 1; } @@ -1683,7 +1702,7 @@ int ObjectRef::l_hud_set_hotbar_selected_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; std::string name = readParam<std::string>(L, 2); @@ -1698,44 +1717,45 @@ int ObjectRef::l_hud_get_hotbar_selected_image(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; const std::string &name = player->getHotbarSelectedImage(); + lua_pushlstring(L, name.c_str(), name.size()); return 1; } -// set_sky(self, {base_color=, type=, textures=, clouds=, sky_colors={}}) +// set_sky(self, sky_parameters) int ObjectRef::l_set_sky(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + SkyboxParams sky_params = player->getSkyParams(); bool is_colorspec = is_color_table(L, 2); - SkyboxParams skybox_params = player->getSkyParams(); if (lua_istable(L, 2) && !is_colorspec) { lua_getfield(L, 2, "base_color"); if (!lua_isnil(L, -1)) - read_color(L, -1, &skybox_params.bgcolor); + read_color(L, -1, &sky_params.bgcolor); lua_pop(L, 1); lua_getfield(L, 2, "type"); if (!lua_isnil(L, -1)) - skybox_params.type = luaL_checkstring(L, -1); + sky_params.type = luaL_checkstring(L, -1); lua_pop(L, 1); lua_getfield(L, 2, "textures"); - skybox_params.textures.clear(); - if (lua_istable(L, -1) && skybox_params.type == "skybox") { + sky_params.textures.clear(); + if (lua_istable(L, -1) && sky_params.type == "skybox") { lua_pushnil(L); while (lua_next(L, -2) != 0) { // Key is at index -2 and value at index -1 - skybox_params.textures.emplace_back(readParam<std::string>(L, -1)); + sky_params.textures.emplace_back(readParam<std::string>(L, -1)); // Removes the value, but keeps the key for iteration lua_pop(L, 1); } @@ -1748,56 +1768,56 @@ int ObjectRef::l_set_sky(lua_State *L) using "regular" or "plain" skybox modes as textures aren't needed. */ - if (skybox_params.textures.size() != 6 && skybox_params.textures.size() > 0) + if (sky_params.textures.size() != 6 && sky_params.textures.size() > 0) throw LuaError("Skybox expects 6 textures!"); - skybox_params.clouds = getboolfield_default(L, 2, - "clouds", skybox_params.clouds); + sky_params.clouds = getboolfield_default(L, 2, + "clouds", sky_params.clouds); lua_getfield(L, 2, "sky_color"); if (lua_istable(L, -1)) { lua_getfield(L, -1, "day_sky"); - read_color(L, -1, &skybox_params.sky_color.day_sky); + read_color(L, -1, &sky_params.sky_color.day_sky); lua_pop(L, 1); lua_getfield(L, -1, "day_horizon"); - read_color(L, -1, &skybox_params.sky_color.day_horizon); + read_color(L, -1, &sky_params.sky_color.day_horizon); lua_pop(L, 1); lua_getfield(L, -1, "dawn_sky"); - read_color(L, -1, &skybox_params.sky_color.dawn_sky); + read_color(L, -1, &sky_params.sky_color.dawn_sky); lua_pop(L, 1); lua_getfield(L, -1, "dawn_horizon"); - read_color(L, -1, &skybox_params.sky_color.dawn_horizon); + read_color(L, -1, &sky_params.sky_color.dawn_horizon); lua_pop(L, 1); lua_getfield(L, -1, "night_sky"); - read_color(L, -1, &skybox_params.sky_color.night_sky); + read_color(L, -1, &sky_params.sky_color.night_sky); lua_pop(L, 1); lua_getfield(L, -1, "night_horizon"); - read_color(L, -1, &skybox_params.sky_color.night_horizon); + read_color(L, -1, &sky_params.sky_color.night_horizon); lua_pop(L, 1); lua_getfield(L, -1, "indoors"); - read_color(L, -1, &skybox_params.sky_color.indoors); + read_color(L, -1, &sky_params.sky_color.indoors); lua_pop(L, 1); // Prevent flickering clouds at dawn/dusk: - skybox_params.fog_sun_tint = video::SColor(255, 255, 255, 255); + sky_params.fog_sun_tint = video::SColor(255, 255, 255, 255); lua_getfield(L, -1, "fog_sun_tint"); - read_color(L, -1, &skybox_params.fog_sun_tint); + read_color(L, -1, &sky_params.fog_sun_tint); lua_pop(L, 1); - skybox_params.fog_moon_tint = video::SColor(255, 255, 255, 255); + sky_params.fog_moon_tint = video::SColor(255, 255, 255, 255); lua_getfield(L, -1, "fog_moon_tint"); - read_color(L, -1, &skybox_params.fog_moon_tint); + read_color(L, -1, &sky_params.fog_moon_tint); lua_pop(L, 1); lua_getfield(L, -1, "fog_tint_type"); if (!lua_isnil(L, -1)) - skybox_params.fog_tint_type = luaL_checkstring(L, -1); + sky_params.fog_tint_type = luaL_checkstring(L, -1); lua_pop(L, 1); // Because we need to leave the "sky_color" table. @@ -1813,14 +1833,14 @@ int ObjectRef::l_set_sky(lua_State *L) StarParams star_params = player->getStarParams(); // Prevent erroneous background colors - skybox_params.bgcolor = video::SColor(255, 255, 255, 255); - read_color(L, 2, &skybox_params.bgcolor); + sky_params.bgcolor = video::SColor(255, 255, 255, 255); + read_color(L, 2, &sky_params.bgcolor); - skybox_params.type = luaL_checkstring(L, 3); + sky_params.type = luaL_checkstring(L, 3); // Preserve old behaviour of the sun, moon and stars // when using the old set_sky call. - if (skybox_params.type == "regular") { + if (sky_params.type == "regular") { sun_params.visible = true; sun_params.sunrise_visible = true; moon_params.visible = true; @@ -1832,31 +1852,31 @@ int ObjectRef::l_set_sky(lua_State *L) star_params.visible = false; } - skybox_params.textures.clear(); + sky_params.textures.clear(); if (lua_istable(L, 4)) { lua_pushnil(L); while (lua_next(L, 4) != 0) { // Key at index -2, and value at index -1 if (lua_isstring(L, -1)) - skybox_params.textures.emplace_back(readParam<std::string>(L, -1)); + sky_params.textures.emplace_back(readParam<std::string>(L, -1)); else - skybox_params.textures.emplace_back(""); + sky_params.textures.emplace_back(""); // Remove the value, keep the key for the next iteration lua_pop(L, 1); } } - if (skybox_params.type == "skybox" && skybox_params.textures.size() != 6) + if (sky_params.type == "skybox" && sky_params.textures.size() != 6) throw LuaError("Skybox expects 6 textures."); - skybox_params.clouds = true; + sky_params.clouds = true; if (lua_isboolean(L, 5)) - skybox_params.clouds = readParam<bool>(L, 5); + sky_params.clouds = readParam<bool>(L, 5); getServer(L)->setSun(player, sun_params); getServer(L)->setMoon(player, moon_params); getServer(L)->setStars(player, star_params); } - getServer(L)->setSky(player, skybox_params); + getServer(L)->setSky(player, sky_params); lua_pushboolean(L, true); return 1; } @@ -1867,18 +1887,17 @@ int ObjectRef::l_get_sky(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - - if (!player) + if (player == nullptr) return 0; - SkyboxParams skybox_params; - skybox_params = player->getSkyParams(); + + SkyboxParams skybox_params = player->getSkyParams(); push_ARGB8(L, skybox_params.bgcolor); lua_pushlstring(L, skybox_params.type.c_str(), skybox_params.type.size()); lua_newtable(L); s16 i = 1; - for (const std::string& texture : skybox_params.textures) { + for (const std::string &texture : skybox_params.textures) { lua_pushlstring(L, texture.c_str(), texture.size()); lua_rawseti(L, -2, i++); } @@ -1892,11 +1911,10 @@ int ObjectRef::l_get_sky_color(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - - if (!player) + if (player == nullptr) return 0; - const SkyboxParams& skybox_params = player->getSkyParams(); + const SkyboxParams &skybox_params = player->getSkyParams(); lua_newtable(L); if (skybox_params.type == "regular") { @@ -1924,18 +1942,16 @@ int ObjectRef::l_get_sky_color(lua_State *L) return 1; } -// set_sun(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=}) +// set_sun(self, sun_parameters) int ObjectRef::l_set_sun(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); SunParams sun_params = player->getSunParams(); sun_params.visible = getboolfield_default(L, 2, @@ -1962,8 +1978,9 @@ int ObjectRef::l_get_sun(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const SunParams &sun_params = player->getSunParams(); lua_newtable(L); @@ -1979,21 +1996,19 @@ int ObjectRef::l_get_sun(lua_State *L) lua_setfield(L, -2, "sunrise_visible"); lua_pushnumber(L, sun_params.scale); lua_setfield(L, -2, "scale"); - return 1; } -// set_moon(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=}) +// set_moon(self, moon_parameters) int ObjectRef::l_set_moon(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); MoonParams moon_params = player->getMoonParams(); moon_params.visible = getboolfield_default(L, 2, @@ -2016,8 +2031,9 @@ int ObjectRef::l_get_moon(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const MoonParams &moon_params = player->getMoonParams(); lua_newtable(L); @@ -2029,21 +2045,19 @@ int ObjectRef::l_get_moon(lua_State *L) lua_setfield(L, -2, "tonemap"); lua_pushnumber(L, moon_params.scale); lua_setfield(L, -2, "scale"); - return 1; } -// set_stars(self, {visible, count=, starcolor=, rotation=, scale=}) +// set_stars(self, star_parameters) int ObjectRef::l_set_stars(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); StarParams star_params = player->getStarParams(); star_params.visible = getboolfield_default(L, 2, @@ -2070,8 +2084,9 @@ int ObjectRef::l_get_stars(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const StarParams &star_params = player->getStarParams(); lua_newtable(L); @@ -2083,21 +2098,19 @@ int ObjectRef::l_get_stars(lua_State *L) lua_setfield(L, -2, "star_color"); lua_pushnumber(L, star_params.scale); lua_setfield(L, -2, "scale"); - return 1; } -// set_clouds(self, {density=, color=, ambient=, height=, thickness=, speed=}) +// set_clouds(self, cloud_parameters) int ObjectRef::l_set_clouds(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) - return 0; - if (!lua_istable(L, 2)) + if (player == nullptr) return 0; + luaL_checktype(L, 2, LUA_TTABLE); CloudParams cloud_params = player->getCloudParams(); cloud_params.density = getfloatfield_default(L, 2, "density", cloud_params.density); @@ -2133,8 +2146,9 @@ int ObjectRef::l_get_clouds(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (!player) + if (player == nullptr) return 0; + const CloudParams &cloud_params = player->getCloudParams(); lua_newtable(L); @@ -2154,25 +2168,27 @@ int ObjectRef::l_get_clouds(lua_State *L) lua_pushnumber(L, cloud_params.speed.Y); lua_setfield(L, -2, "y"); lua_setfield(L, -2, "speed"); - return 1; } -// override_day_night_ratio(self, brightness=0...1) +// override_day_night_ratio(self, ratio) int ObjectRef::l_override_day_night_ratio(lua_State *L) { NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; bool do_override = false; float ratio = 0.0f; + if (!lua_isnil(L, 2)) { do_override = true; ratio = readParam<float>(L, 2); + luaL_argcheck(L, ratio >= 0.0f && ratio <= 1.0f, 1, + "value must be between 0 and 1"); } getServer(L)->overrideDayNightRatio(player, do_override, ratio); @@ -2186,7 +2202,7 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L) NO_MAP_LOCK_REQUIRED; ObjectRef *ref = checkobject(L, 1); RemotePlayer *player = getplayer(ref); - if (player == NULL) + if (player == nullptr) return 0; bool do_override; @@ -2201,27 +2217,77 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L) return 1; } -ObjectRef::ObjectRef(ServerActiveObject *object): - m_object(object) +// set_minimap_modes(self, modes, selected_mode) +int ObjectRef::l_set_minimap_modes(lua_State *L) { - //infostream<<"ObjectRef created for id="<<m_object->getId()<<std::endl; + NO_MAP_LOCK_REQUIRED; + ObjectRef *ref = checkobject(L, 1); + RemotePlayer *player = getplayer(ref); + if (player == nullptr) + return 0; + + luaL_checktype(L, 2, LUA_TTABLE); + std::vector<MinimapMode> modes; + s16 selected_mode = readParam<s16>(L, 3); + + lua_pushnil(L); + while (lua_next(L, 2) != 0) { + /* key is at index -2, value is at index -1 */ + if (lua_istable(L, -1)) { + bool ok = true; + MinimapMode mode; + std::string type = getstringfield_default(L, -1, "type", ""); + if (type == "off") + mode.type = MINIMAP_TYPE_OFF; + else if (type == "surface") + mode.type = MINIMAP_TYPE_SURFACE; + else if (type == "radar") + mode.type = MINIMAP_TYPE_RADAR; + else if (type == "texture") { + mode.type = MINIMAP_TYPE_TEXTURE; + mode.texture = getstringfield_default(L, -1, "texture", ""); + mode.scale = getintfield_default(L, -1, "scale", 1); + } else { + warningstream << "Minimap mode of unknown type \"" << type.c_str() + << "\" ignored.\n" << std::endl; + ok = false; + } + + if (ok) { + mode.label = getstringfield_default(L, -1, "label", ""); + // Size is limited to 512. Performance gets poor if size too large, and + // segfaults have been experienced. + mode.size = rangelim(getintfield_default(L, -1, "size", 0), 1, 512); + modes.push_back(mode); + } + } + /* removes 'value'; keeps 'key' for next iteration */ + lua_pop(L, 1); + } + lua_pop(L, 1); // Remove key + + getServer(L)->SendMinimapModes(player->getPeerId(), modes, selected_mode); + return 0; } +ObjectRef::ObjectRef(ServerActiveObject *object): + m_object(object) +{} + // Creates an ObjectRef and leaves it on top of stack // Not callable from Lua; all references are created on the C side. void ObjectRef::create(lua_State *L, ServerActiveObject *object) { - ObjectRef *o = new ObjectRef(object); - //infostream<<"ObjectRef::create: o="<<o<<std::endl; - *(void **)(lua_newuserdata(L, sizeof(void *))) = o; + ObjectRef *obj = new ObjectRef(object); + *(void **)(lua_newuserdata(L, sizeof(void *))) = obj; luaL_getmetatable(L, className); lua_setmetatable(L, -2); } void ObjectRef::set_null(lua_State *L) { - ObjectRef *o = checkobject(L, -1); - o->m_object = NULL; + ObjectRef *obj = checkobject(L, -1); + obj->m_object = nullptr; } void ObjectRef::Register(lua_State *L) @@ -2245,12 +2311,8 @@ void ObjectRef::Register(lua_State *L) lua_pop(L, 1); // drop metatable - markAliasDeprecated(methods); luaL_openlib(L, 0, methods, 0); // fill methodtable lua_pop(L, 1); // drop methodtable - - // Cannot be created from Lua - //lua_register(L, className, create_object); } const char ObjectRef::className[] = "ObjectRef"; @@ -2278,15 +2340,19 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, get_bone_position), luamethod(ObjectRef, set_attach), luamethod(ObjectRef, get_attach), + luamethod(ObjectRef, get_children), luamethod(ObjectRef, set_detach), luamethod(ObjectRef, set_properties), luamethod(ObjectRef, get_properties), luamethod(ObjectRef, set_nametag_attributes), luamethod(ObjectRef, get_nametag_attributes), - // LuaEntitySAO-only + luamethod_aliased(ObjectRef, set_velocity, setvelocity), - luamethod(ObjectRef, add_velocity), + luamethod_aliased(ObjectRef, add_velocity, add_player_velocity), luamethod_aliased(ObjectRef, get_velocity, getvelocity), + luamethod_dep(ObjectRef, get_velocity, get_player_velocity), + + // LuaEntitySAO-only luamethod_aliased(ObjectRef, set_acceleration, setacceleration), luamethod_aliased(ObjectRef, get_acceleration, getacceleration), luamethod_aliased(ObjectRef, set_yaw, setyaw), @@ -2294,15 +2360,14 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, set_rotation), luamethod(ObjectRef, get_rotation), luamethod_aliased(ObjectRef, set_texture_mod, settexturemod), + luamethod(ObjectRef, get_texture_mod), luamethod_aliased(ObjectRef, set_sprite, setsprite), luamethod(ObjectRef, get_entity_name), luamethod(ObjectRef, get_luaentity), + // Player-only luamethod(ObjectRef, is_player), - luamethod(ObjectRef, is_player_connected), luamethod(ObjectRef, get_player_name), - luamethod(ObjectRef, get_player_velocity), - luamethod(ObjectRef, add_player_velocity), luamethod(ObjectRef, get_look_dir), luamethod(ObjectRef, get_look_pitch), luamethod(ObjectRef, get_look_yaw), @@ -2357,5 +2422,6 @@ luaL_Reg ObjectRef::methods[] = { luamethod(ObjectRef, set_eye_offset), luamethod(ObjectRef, get_eye_offset), luamethod(ObjectRef, send_mapblock), + luamethod(ObjectRef, set_minimap_modes), {0,0} }; diff --git a/src/script/lua_api/l_object.h b/src/script/lua_api/l_object.h index a75c59fd9..db3a3a7cf 100644 --- a/src/script/lua_api/l_object.h +++ b/src/script/lua_api/l_object.h @@ -69,29 +69,24 @@ private: static int l_remove(lua_State *L); // get_pos(self) - // returns: {x=num, y=num, z=num} static int l_get_pos(lua_State *L); // set_pos(self, pos) static int l_set_pos(lua_State *L); - // move_to(self, pos, continuous=false) + // move_to(self, pos, continuous) static int l_move_to(lua_State *L); // punch(self, puncher, time_from_last_punch, tool_capabilities, dir) static int l_punch(lua_State *L); - // right_click(self, clicker); clicker = an another ObjectRef + // right_click(self, clicker) static int l_right_click(lua_State *L); - // set_hp(self, hp) - // hp = number of hitpoints (2 * number of hearts) - // returns: nil + // set_hp(self, hp, reason) static int l_set_hp(lua_State *L); // get_hp(self) - // returns: number of hitpoints (2 * number of hearts) - // 0 if not applicable to this type of object static int l_get_hp(lua_State *L); // get_inventory(self) @@ -106,7 +101,7 @@ private: // get_wielded_item(self) static int l_get_wielded_item(lua_State *L); - // set_wielded_item(self, itemstack or itemstring or table or nil) + // set_wielded_item(self, item) static int l_set_wielded_item(lua_State *L); // set_armor_groups(self, groups) @@ -115,8 +110,7 @@ private: // get_armor_groups(self) static int l_get_armor_groups(lua_State *L); - // set_physics_override(self, physics_override_speed, physics_override_jump, - // physics_override_gravity, sneak, sneak_glitch, new_move) + // set_physics_override(self, override_table) static int l_set_physics_override(lua_State *L); // get_physics_override(self) @@ -131,7 +125,7 @@ private: // get_animation(self) static int l_get_animation(lua_State *L); - // set_bone_position(self, std::string bone, v3f position, v3f rotation) + // set_bone_position(self, bone, position, rotation) static int l_set_bone_position(lua_State *L); // get_bone_position(self, bone) @@ -143,6 +137,9 @@ private: // get_attach(self) static int l_get_attach(lua_State *L); + // get_children(self) + static int l_get_children(lua_State *L); + // set_detach(self) static int l_set_detach(lua_State *L); @@ -157,28 +154,28 @@ private: /* LuaEntitySAO-only */ - // set_velocity(self, {x=num, y=num, z=num}) + // set_velocity(self, velocity) static int l_set_velocity(lua_State *L); - // add_velocity(self, {x=num, y=num, z=num}) + // add_velocity(self, velocity) static int l_add_velocity(lua_State *L); // get_velocity(self) static int l_get_velocity(lua_State *L); - // set_acceleration(self, {x=num, y=num, z=num}) + // set_acceleration(self, acceleration) static int l_set_acceleration(lua_State *L); // get_acceleration(self) static int l_get_acceleration(lua_State *L); - // set_rotation(self, {x=num, y=num, z=num}) + // set_rotation(self, rotation) static int l_set_rotation(lua_State *L); // get_rotation(self) static int l_get_rotation(lua_State *L); - // set_yaw(self, radians) + // set_yaw(self, yaw) static int l_set_yaw(lua_State *L); // get_yaw(self) @@ -190,8 +187,7 @@ private: // l_get_texture_mod(self) static int l_get_texture_mod(lua_State *L); - // set_sprite(self, p={x=0,y=0}, num_frames=1, framelength=0.2, - // select_horiz_by_yawpitch=false) + // set_sprite(self, start_frame, num_frames, framelength, select_x_by_camera) static int l_set_sprite(lua_State *L); // DEPRECATED @@ -203,18 +199,9 @@ private: /* Player-only */ - // is_player_connected(self) - static int l_is_player_connected(lua_State *L); - // get_player_name(self) static int l_get_player_name(lua_State *L); - // get_player_velocity(self) - static int l_get_player_velocity(lua_State *L); - - // add_player_velocity(self, {x=num, y=num, z=num}) - static int l_add_player_velocity(lua_State *L); - // get_fov(self) static int l_get_fov(lua_State *L); @@ -235,7 +222,7 @@ private: // get_look_yaw2(self) static int l_get_look_horizontal(lua_State *L); - // set_fov(self, degrees, is_multiplier) + // set_fov(self, degrees, is_multiplier, transition_time) static int l_set_fov(lua_State *L); // set_look_vertical(self, radians) @@ -258,9 +245,11 @@ private: // get_breath(self, breath) static int l_get_breath(lua_State *L); + // DEPRECATED // set_attribute(self, attribute, value) static int l_set_attribute(lua_State *L); + // DEPRECATED // get_attribute(self, attribute) static int l_get_attribute(lua_State *L); @@ -270,13 +259,13 @@ private: // set_inventory_formspec(self, formspec) static int l_set_inventory_formspec(lua_State *L); - // get_inventory_formspec(self) -> formspec + // get_inventory_formspec(self) static int l_get_inventory_formspec(lua_State *L); // set_formspec_prepend(self, formspec) static int l_set_formspec_prepend(lua_State *L); - // get_formspec_prepend(self) -> formspec + // get_formspec_prepend(self) static int l_get_formspec_prepend(lua_State *L); // get_player_control(self) @@ -324,7 +313,7 @@ private: // hud_get_hotbar_selected_image(self) static int l_hud_get_hotbar_selected_image(lua_State *L); - // set_sky({base_color=, type=, textures=, clouds=, sky_colors={}}) + // set_sky(self, sky_parameters) static int l_set_sky(lua_State *L); // get_sky(self) @@ -333,25 +322,25 @@ private: // get_sky_color(self) static int l_get_sky_color(lua_State* L); - // set_sun(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=}) + // set_sun(self, sun_parameters) static int l_set_sun(lua_State *L); // get_sun(self) static int l_get_sun(lua_State *L); - // set_moon(self, {visible, texture=, tonemap=, rotation, scale=}) + // set_moon(self, moon_parameters) static int l_set_moon(lua_State *L); // get_moon(self) static int l_get_moon(lua_State *L); - // set_stars(self, {visible, count=, starcolor=, rotation, scale=}) + // set_stars(self, star_parameters) static int l_set_stars(lua_State *L); // get_stars(self) static int l_get_stars(lua_State *L); - // set_clouds(self, {density=, color=, ambient=, height=, thickness=, speed=}) + // set_clouds(self, cloud_parameters) static int l_set_clouds(lua_State *L); // get_clouds(self) @@ -363,13 +352,13 @@ private: // get_day_night_ratio(self) static int l_get_day_night_ratio(lua_State *L); - // set_local_animation(self, {stand/idle}, {walk}, {dig}, {walk+dig}, frame_speed) + // set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed) static int l_set_local_animation(lua_State *L); // get_local_animation(self) static int l_get_local_animation(lua_State *L); - // set_eye_offset(self, v3f first pv, v3f third pv) + // set_eye_offset(self, firstperson, thirdperson) static int l_set_eye_offset(lua_State *L); // get_eye_offset(self) @@ -383,4 +372,7 @@ private: // send_mapblock(pos) static int l_send_mapblock(lua_State *L); + + // set_minimap_modes(self, modes, wanted_mode) + static int l_set_minimap_modes(lua_State *L); }; diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp index 6f934bb9d..bf5292521 100644 --- a/src/script/lua_api/l_server.cpp +++ b/src/script/lua_api/l_server.cpp @@ -44,7 +44,7 @@ int ModApiServer::l_request_shutdown(lua_State *L) int ModApiServer::l_get_server_status(lua_State *L) { NO_MAP_LOCK_REQUIRED; - lua_pushstring(L, wide_to_narrow(getServer(L)->getStatusString()).c_str()); + lua_pushstring(L, getServer(L)->getStatusString().c_str()); return 1; } @@ -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<ServerEnvironment *>(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<ServerEnvironment *>(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<ServerEnvironment *>(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; } @@ -473,19 +452,30 @@ int ModApiServer::l_sound_fade(lua_State *L) } // dynamic_add_media(filepath) -int ModApiServer::l_dynamic_add_media(lua_State *L) +int ModApiServer::l_dynamic_add_media_raw(lua_State *L) { NO_MAP_LOCK_REQUIRED; - // Reject adding media before the server has started up if (!getEnv(L)) throw LuaError("Dynamic media cannot be added before server has started up"); std::string filepath = readParam<std::string>(L, 1); CHECK_SECURE_PATH(L, filepath.c_str(), false); - bool ok = getServer(L)->dynamicAddMedia(filepath); - lua_pushboolean(L, ok); + std::vector<RemotePlayer*> 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; } @@ -553,7 +543,7 @@ void ModApiServer::Initialize(lua_State *L, int top) API_FCT(sound_play); API_FCT(sound_stop); API_FCT(sound_fade); - API_FCT(dynamic_add_media); + API_FCT(dynamic_add_media_raw); API_FCT(get_player_information); API_FCT(get_player_privs); diff --git a/src/script/lua_api/l_server.h b/src/script/lua_api/l_server.h index 938bfa8ef..2df180b17 100644 --- a/src/script/lua_api/l_server.h +++ b/src/script/lua_api/l_server.h @@ -71,7 +71,7 @@ private: static int l_sound_fade(lua_State *L); // dynamic_add_media(filepath) - static int l_dynamic_add_media(lua_State *L); + static int l_dynamic_add_media_raw(lua_State *L); // get_player_privs(name, text) static int l_get_player_privs(lua_State *L); diff --git a/src/script/lua_api/l_settings.cpp b/src/script/lua_api/l_settings.cpp index 33eb02392..bcbaf15fa 100644 --- a/src/script/lua_api/l_settings.cpp +++ b/src/script/lua_api/l_settings.cpp @@ -197,7 +197,7 @@ int LuaSettings::l_set_np_group(lua_State *L) SET_SECURITY_CHECK(L, key); - o->m_settings->setNoiseParams(key, value, false); + o->m_settings->setNoiseParams(key, value); return 0; } diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp index cd63e20c2..203a0dd28 100644 --- a/src/script/lua_api/l_util.cpp +++ b/src/script/lua_api/l_util.cpp @@ -239,21 +239,23 @@ int ModApiUtil::l_is_yes(lua_State *L) return 1; } -// is_nan(arg) -int ModApiUtil::l_is_nan(lua_State *L) +// get_builtin_path() +int ModApiUtil::l_get_builtin_path(lua_State *L) { NO_MAP_LOCK_REQUIRED; - lua_pushboolean(L, isNaN(L, 1)); + std::string path = porting::path_share + DIR_DELIM + "builtin" + DIR_DELIM; + lua_pushstring(L, path.c_str()); + return 1; } -// get_builtin_path() -int ModApiUtil::l_get_builtin_path(lua_State *L) +// get_user_path() +int ModApiUtil::l_get_user_path(lua_State *L) { NO_MAP_LOCK_REQUIRED; - std::string path = porting::path_share + DIR_DELIM + "builtin" + DIR_DELIM; + std::string path = porting::path_user; lua_pushstring(L, path.c_str()); return 1; @@ -493,9 +495,9 @@ void ModApiUtil::Initialize(lua_State *L, int top) API_FCT(get_password_hash); API_FCT(is_yes); - API_FCT(is_nan); API_FCT(get_builtin_path); + API_FCT(get_user_path); API_FCT(compress); API_FCT(decompress); @@ -526,7 +528,6 @@ void ModApiUtil::InitializeClient(lua_State *L, int top) API_FCT(write_json); API_FCT(is_yes); - API_FCT(is_nan); API_FCT(compress); API_FCT(decompress); @@ -550,6 +551,7 @@ void ModApiUtil::InitializeAsync(lua_State *L, int top) API_FCT(is_yes); API_FCT(get_builtin_path); + API_FCT(get_user_path); API_FCT(compress); API_FCT(decompress); diff --git a/src/script/lua_api/l_util.h b/src/script/lua_api/l_util.h index 9ff91bb53..dbdd62b99 100644 --- a/src/script/lua_api/l_util.h +++ b/src/script/lua_api/l_util.h @@ -65,12 +65,12 @@ private: // is_yes(arg) static int l_is_yes(lua_State *L); - // is_nan(arg) - static int l_is_nan(lua_State *L); - // get_builtin_path() static int l_get_builtin_path(lua_State *L); + // get_user_path() + static int l_get_user_path(lua_State *L); + // compress(data, method, ...) static int l_compress(lua_State *L); diff --git a/src/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 fe2bb3840..81cdd1f8d 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -213,7 +213,8 @@ Server::Server( bool simple_singleplayer_mode, Address bind_addr, bool dedicated, - ChatInterface *iface + ChatInterface *iface, + std::string *on_shutdown_errmsg ): m_bind_addr(bind_addr), m_path_world(path_world), @@ -232,6 +233,7 @@ Server::Server( m_thread(new ServerThread(this)), m_clients(m_con), m_admin_chat(iface), + m_on_shutdown_errmsg(on_shutdown_errmsg), m_modchannel_mgr(new ModChannelMgr()) { if (m_path_world.empty()) @@ -314,7 +316,18 @@ Server::~Server() // Execute script shutdown hooks infostream << "Executing shutdown hooks" << std::endl; - m_script->on_shutdown(); + try { + m_script->on_shutdown(); + } catch (ModError &e) { + errorstream << "ModError: " << e.what() << std::endl; + if (m_on_shutdown_errmsg) { + if (m_on_shutdown_errmsg->empty()) { + *m_on_shutdown_errmsg = std::string("ModError: ") + e.what(); + } else { + *m_on_shutdown_errmsg += std::string("\nModError: ") + e.what(); + } + } + } infostream << "Server: Saving environment metadata" << std::endl; m_env->saveMeta(); @@ -338,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(); @@ -355,9 +370,16 @@ 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 - if (!loadGameConfAndInitWorld(m_path_world, m_gamespec)) - throw ServerError("Failed to initialize world"); + try { + loadGameConfAndInitWorld(m_path_world, + fs::GetFilenameFromPath(m_path_world.c_str()), + m_gamespec, false); + } catch (const BaseException &e) { + throw ServerError(std::string("Failed to initialize world: ") + e.what()); + } // Create emerge manager m_emerge = new EmergeManager(this); @@ -378,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; @@ -419,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); @@ -635,7 +659,12 @@ void Server::AsyncRunStep(bool initial_step) } m_clients.step(dtime); - m_lag_gauge->increment((m_lag_gauge->get() > dtime ? -1 : 1) * dtime/100); + // increase/decrease lag gauge gradually + if (m_lag_gauge->get() > dtime) { + m_lag_gauge->decrement(dtime/100); + } else { + m_lag_gauge->increment(dtime/100); + } #if USE_CURL // send masterserver announce { @@ -779,7 +808,7 @@ void Server::AsyncRunStep(bool initial_step) // u16 id // std::string data buffer.append(idbuf, sizeof(idbuf)); - buffer.append(serializeString(aom.datastring)); + buffer.append(serializeString16(aom.datastring)); } } /* @@ -1216,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 - ) -{ - *state = m_clients.getClientState(peer_id); +bool Server::getClientInfo(session_t peer_id, ClientInfo &ret) +{ m_clients.lock(); RemoteClient* client = m_clients.lockedGetClientNoEx(peer_id, CS_Invalid); @@ -1238,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(); @@ -1332,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); @@ -1465,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<u64>(message.timestamp); if (peer_id != PEER_ID_INEXISTENT) { RemotePlayer *player = m_env->getPlayer(peer_id); @@ -1800,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; @@ -1970,7 +1994,7 @@ void Server::SendActiveObjectRemoveAdd(RemoteClient *client, PlayerSAO *playersa writeU8((u8*)buf, type); data.append(buf, 1); - data.append(serializeLongString( + data.append(serializeString32( obj->getClientInitializationData(client->net_proto_version))); // Add to known objects @@ -2309,13 +2333,13 @@ 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(); - NetworkPacket pkt(TOCLIENT_BLOCKDATA, 2 + 2 + 2 + 2 + s.size(), peer_id); + NetworkPacket pkt(TOCLIENT_BLOCKDATA, 2 + 2 + 2 + s.size(), peer_id); pkt << block->getPos(); pkt.putRawString(s.c_str(), s.size()); @@ -2433,31 +2457,14 @@ bool Server::addMediaFile(const std::string &filename, // Ok, attempt to load the file and add to cache // Read data - std::ifstream fis(filepath.c_str(), std::ios_base::binary); - if (!fis.good()) { - errorstream << "Server::addMediaFile(): Could not open \"" - << filename << "\" for reading" << std::endl; - return false; - } std::string filedata; - bool bad = false; - for (;;) { - char buf[1024]; - fis.read(buf, sizeof(buf)); - std::streamsize len = fis.gcount(); - filedata.append(buf, len); - if (fis.eof()) - break; - if (!fis.good()) { - bad = true; - break; - } - } - if (bad) { - errorstream << "Server::addMediaFile(): Failed to read \"" - << filename << "\"" << std::endl; + if (!fs::ReadFile(filepath, filedata)) { + errorstream << "Server::addMediaFile(): Failed to open \"" + << filename << "\" for reading" << std::endl; return false; - } else if (filedata.empty()) { + } + + if (filedata.empty()) { errorstream << "Server::addMediaFile(): Empty file \"" << filepath << "\"" << std::endl; return false; @@ -2489,19 +2496,25 @@ void Server::fillMediaCache() // Collect all media file paths std::vector<std::string> paths; - m_modmgr->getModsMediaPaths(paths); - fs::GetRecursiveDirs(paths, m_gamespec.path + DIR_DELIM + "textures"); + // The paths are ordered in descending priority 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); // Collect media file information from paths into cache for (const std::string &mediapath : paths) { std::vector<fs::DirListNode> dirlist = fs::GetDirListing(mediapath); for (const fs::DirListNode &dln : dirlist) { - if (dln.dir) // Ignore dirs + if (dln.dir) // Ignore dirs (already in paths) continue; + + const std::string &filename = dln.name; + if (m_media.find(filename) != m_media.end()) // Do not override + continue; + std::string filepath = mediapath; - filepath.append(DIR_DELIM).append(dln.name); - addMediaFile(dln.name, filepath); + filepath.append(DIR_DELIM).append(filename); + addMediaFile(filename, filepath); } } @@ -2650,6 +2663,23 @@ void Server::sendRequestedMedia(session_t peer_id, } } +void Server::SendMinimapModes(session_t peer_id, + std::vector<MinimapMode> &modes, size_t wanted_mode) +{ + RemotePlayer *player = m_env->getPlayer(peer_id); + assert(player); + if (player->getPeerId() == PEER_ID_INEXISTENT) + return; + + NetworkPacket pkt(TOCLIENT_MINIMAP_MODES, 0, peer_id); + pkt << (u16)modes.size() << (u16)wanted_mode; + + for (auto &mode : modes) + pkt << (u16)mode.type << mode.label << mode.size << mode.texture << mode.scale; + + Send(&pkt); +} + void Server::sendDetachedInventory(Inventory *inventory, const std::string &name, session_t peer_id) { NetworkPacket pkt(TOCLIENT_DETACHED_INVENTORY, 0, peer_id); @@ -2932,7 +2962,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 @@ -2970,7 +3000,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 @@ -2991,10 +3021,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 } @@ -3007,35 +3037,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; - - std::vector<session_t> clients = m_clients.getClientIDs(); - - /* - Send the message back to the inital sender - if they are using protocol version >= 29 - */ + actionstream << "CHAT: " << wide_to_utf8(unescape_enriched(line)) << std::endl; - session_t peer_id_to_avoid_sending = - (player ? player->getPeerId() : PEER_ID_INEXISTENT); + ChatMessage chatmsg(line); - if (player && player->protocol_version >= 29) - peer_id_to_avoid_sending = PEER_ID_INEXISTENT; + std::vector<session_t> clients = m_clients.getClientIDs(); + for (u16 cid : clients) + SendChatMessage(cid, chatmsg); - 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()) { @@ -3072,46 +3090,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<session_t> 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() : "<unknown>"; // 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(); } @@ -3307,7 +3322,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, @@ -3441,7 +3457,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<RemotePlayer*> &sent_to) { std::string filename = fs::GetFilenameFromPath(filepath.c_str()); if (m_media.find(filename) != m_media.end()) { @@ -3461,9 +3478,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 @@ -3472,9 +3497,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; } @@ -3866,19 +3892,27 @@ void Server::broadcastModChannelMessage(const std::string &channel, } } -void Server::loadTranslationLanguage(const std::string &lang_code) +Translations *Server::getTranslationLanguage(const std::string &lang_code) { - if (g_server_translations->count(lang_code)) - return; // Already loaded + if (lang_code.empty()) + return nullptr; + + auto it = server_translations.find(lang_code); + if (it != server_translations.end()) + return &it->second; // Already loaded + + // [] will create an entry + auto *translations = &server_translations[lang_code]; std::string suffix = "." + lang_code + ".tr"; for (const auto &i : m_media) { if (str_ends_with(i.first, suffix)) { - std::ifstream t(i.second.path); - std::string data((std::istreambuf_iterator<char>(t)), - std::istreambuf_iterator<char>()); - - (*g_server_translations)[lang_code].loadTranslation(data); + std::string data; + if (fs::ReadFile(i.second.path, data)) { + translations->loadTranslation(data); + } } } + + return translations; } diff --git a/src/server.h b/src/server.h index f44716531..9857215d0 100644 --- a/src/server.h +++ b/src/server.h @@ -38,6 +38,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serverenvironment.h" #include "clientiface.h" #include "chatmessage.h" +#include "translation.h" #include <string> #include <list> #include <map> @@ -117,6 +118,25 @@ struct ServerPlayingSound std::unordered_set<session_t> clients; // peer ids }; +struct MinimapMode { + MinimapType type = MINIMAP_TYPE_OFF; + std::string label; + u16 size = 0; + std::string texture; + 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 { @@ -131,7 +151,8 @@ public: bool simple_singleplayer_mode, Address bind_addr, bool dedicated, - ChatInterface *iface = nullptr + ChatInterface *iface = nullptr, + std::string *on_shutdown_errmsg = nullptr ); ~Server(); DISABLE_CLASS_COPY(Server); @@ -198,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 @@ -236,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<RemotePlayer*> &sent_to); ServerInventoryManager *getInventoryMgr() const { return m_inventory_mgr.get(); } void sendDetachedInventory(Inventory *inventory, const std::string &name, session_t peer_id); @@ -316,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); @@ -329,6 +348,10 @@ public: void SendPlayerSpeed(session_t peer_id, const v3f &added_vel); void SendPlayerFov(session_t peer_id); + void SendMinimapModes(session_t peer_id, + std::vector<MinimapMode> &modes, + size_t wanted_mode); + void sendDetachedInventories(session_t peer_id, bool incremental); virtual bool registerModStorage(ModMetadata *storage); @@ -342,8 +365,8 @@ public: // Send block to specific player only bool SendBlock(session_t peer_id, const v3s16 &blockpos); - // Load translations for a language - void loadTranslationLanguage(const std::string &lang_code); + // Get or load translations for a language + Translations *getTranslationLanguage(const std::string &lang_code); // Bind address Address m_bind_addr; @@ -472,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 @@ -510,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<std::string> m_async_fatal_error; @@ -525,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<con::Connection> m_con; @@ -550,12 +576,11 @@ private: // Craft definition manager IWritableCraftDefManager *m_craftdef; - // Event manager - EventManager *m_event; - // Mods std::unique_ptr<ServerModManager> m_modmgr; + std::unordered_map<std::string, Translations> server_translations; + /* Threads */ @@ -596,6 +621,10 @@ private: ChatInterface *m_admin_chat; std::string m_admin_nick; + // if a mod-error occurs in the on_shutdown callback, the error message will + // be written into this + std::string *const m_on_shutdown_errmsg; + /* Map edit event queue. Automatically receives all map edits. The constructor of this class registers us to receive them through 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<ServerActiveObject *> &result, + std::function<bool(ServerActiveObject *obj)> 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<u16> ¤t_objects, std::queue<u16> &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<ServerActiveObject *> &result, std::function<bool(ServerActiveObject *obj)> include_obj_cb); + void getObjectsInArea(const aabb3f &box, + std::vector<ServerActiveObject *> &result, + std::function<bool(ServerActiveObject *obj)> include_obj_cb); void getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 radius, f32 player_radius, std::set<u16> ¤t_objects, diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp index d504c42ca..3bcbe107b 100644 --- a/src/server/luaentity_sao.cpp +++ b/src/server/luaentity_sao.cpp @@ -42,8 +42,8 @@ LuaEntitySAO::LuaEntitySAO(ServerEnvironment *env, v3f pos, const std::string &d u8 version2 = 0; u8 version = readU8(is); - name = deSerializeString(is); - state = deSerializeLongString(is); + name = deSerializeString16(is); + state = deSerializeString32(is); if (version < 1) break; @@ -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; @@ -225,7 +230,7 @@ std::string LuaEntitySAO::getClientInitializationData(u16 protocol_version) // PROTOCOL_VERSION >= 37 writeU8(os, 1); // version - os << serializeString(""); // name + os << serializeString16(""); // name writeU8(os, 0); // is_player writeU16(os, getId()); //id writeV3F32(os, m_base_position); @@ -233,26 +238,26 @@ std::string LuaEntitySAO::getClientInitializationData(u16 protocol_version) writeU16(os, m_hp); std::ostringstream msg_os(std::ios::binary); - msg_os << serializeLongString(getPropertyPacket()); // message 1 - msg_os << serializeLongString(generateUpdateArmorGroupsCommand()); // 2 - msg_os << serializeLongString(generateUpdateAnimationCommand()); // 3 + msg_os << serializeString32(getPropertyPacket()); // message 1 + msg_os << serializeString32(generateUpdateArmorGroupsCommand()); // 2 + msg_os << serializeString32(generateUpdateAnimationCommand()); // 3 for (const auto &bone_pos : m_bone_position) { - msg_os << serializeLongString(generateUpdateBonePositionCommand( - bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size + msg_os << serializeString32(generateUpdateBonePositionCommand( + bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // 3 + N } - msg_os << serializeLongString(generateUpdateAttachmentCommand()); // 4 + msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + m_bone_position.size int message_count = 4 + m_bone_position.size(); for (const auto &id : getAttachmentChildIds()) { if (ServerActiveObject *obj = m_env->getActiveObject(id)) { message_count++; - msg_os << serializeLongString(obj->generateUpdateInfantCommand( + msg_os << serializeString32(obj->generateUpdateInfantCommand( id, protocol_version)); } } - msg_os << serializeLongString(generateSetTextureModCommand()); + msg_os << serializeString32(generateSetTextureModCommand()); message_count++; writeU8(os, message_count); @@ -270,14 +275,14 @@ void LuaEntitySAO::getStaticData(std::string *result) const // version must be 1 to keep backwards-compatibility. See version2 writeU8(os, 1); // name - os<<serializeString(m_init_name); + os<<serializeString16(m_init_name); // state if(m_registered){ std::string state = m_env->getScriptIface()-> luaentity_GetStaticdata(m_id); - os<<serializeLongString(state); + os<<serializeString32(state); } else { - os<<serializeLongString(m_init_state); + os<<serializeString32(m_init_state); } writeU16(os, m_hp); writeV3F1000(os, m_velocity); @@ -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() << @@ -436,7 +441,7 @@ std::string LuaEntitySAO::generateSetTextureModCommand() const // command writeU8(os, AO_CMD_SET_TEXTURE_MOD); // parameters - os << serializeString(m_current_texture_modifier); + os << serializeString16(m_current_texture_modifier); return os.str(); } @@ -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 2520c8f5d..6883ae1b9 100644 --- a/src/server/luaentity_sao.h +++ b/src/server/luaentity_sao.h @@ -42,6 +42,7 @@ public: void step(float dtime, bool send_recommended); std::string getClientInitializationData(u16 protocol_version); bool isStaticAllowed() const { return m_prop.static_save; } + bool shouldUnload() const { return true; } void getStaticData(std::string *result) const; u16 punch(v3f dir, const ToolCapabilities *toolcap = nullptr, ServerActiveObject *puncher = nullptr, @@ -70,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 6ac530739..83fa12da9 100644 --- a/src/server/mods.cpp +++ b/src/server/mods.cpp @@ -98,11 +98,12 @@ void ServerModManager::getModNames(std::vector<std::string> &modlist) const void ServerModManager::getModsMediaPaths(std::vector<std::string> &paths) const { - for (const ModSpec &spec : m_sorted_mods) { - paths.push_back(spec.path + DIR_DELIM + "textures"); - paths.push_back(spec.path + DIR_DELIM + "sounds"); - paths.push_back(spec.path + DIR_DELIM + "media"); - paths.push_back(spec.path + DIR_DELIM + "models"); - paths.push_back(spec.path + DIR_DELIM + "locale"); + 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"); + fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "models"); + fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "locale"); } } 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<std::string> &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<std::string> &paths) const; }; diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index 67efed210..0d31f2e0b 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -55,6 +55,7 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, RemotePlayer *player_, session_t p m_prop.backface_culling = false; m_prop.makes_footstep_sound = true; m_prop.stepheight = PLAYER_DEFAULT_STEPHEIGHT * BS; + m_prop.show_on_minimap = true; m_hp = m_prop.hp_max; m_breath = m_prop.breath_max; // Disable zoom in survival mode using a value of 0 @@ -109,7 +110,7 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version) // Protocol >= 15 writeU8(os, 1); // version - os << serializeString(m_player->getName()); // name + os << serializeString16(m_player->getName()); // name writeU8(os, 1); // is_player writeS16(os, getId()); // id writeV3F32(os, m_base_position); @@ -117,22 +118,22 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version) writeU16(os, getHP()); std::ostringstream msg_os(std::ios::binary); - msg_os << serializeLongString(getPropertyPacket()); // message 1 - msg_os << serializeLongString(generateUpdateArmorGroupsCommand()); // 2 - msg_os << serializeLongString(generateUpdateAnimationCommand()); // 3 + msg_os << serializeString32(getPropertyPacket()); // message 1 + msg_os << serializeString32(generateUpdateArmorGroupsCommand()); // 2 + msg_os << serializeString32(generateUpdateAnimationCommand()); // 3 for (const auto &bone_pos : m_bone_position) { - msg_os << serializeLongString(generateUpdateBonePositionCommand( - bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size + msg_os << serializeString32(generateUpdateBonePositionCommand( + bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // 3 + N } - msg_os << serializeLongString(generateUpdateAttachmentCommand()); // 4 - msg_os << serializeLongString(generateUpdatePhysicsOverrideCommand()); // 5 + msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + m_bone_position.size + msg_os << serializeString32(generateUpdatePhysicsOverrideCommand()); // 5 + m_bone_position.size int message_count = 5 + m_bone_position.size(); for (const auto &id : getAttachmentChildIds()) { if (ServerActiveObject *obj = m_env->getActiveObject(id)) { message_count++; - msg_os << serializeLongString(obj->generateUpdateInfantCommand( + msg_os << serializeString32(obj->generateUpdateInfantCommand( id, protocol_version)); } } @@ -147,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) @@ -259,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) @@ -455,22 +459,32 @@ 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) { - s32 oldhp = m_hp; + if (hp == (s32)m_hp) + return; // Nothing to do - hp = rangelim(hp, 0, m_prop.hp_max); + if (m_hp <= 0 && hp < (s32)m_hp) + return; // Cannot take more damage - if (oldhp != hp) { - s32 hp_change = m_env->getScriptIface()->on_player_hpchange(this, hp - oldhp, reason); + { + s32 hp_change = m_env->getScriptIface()->on_player_hpchange(this, hp - m_hp, reason); if (hp_change == 0) return; - hp = rangelim(oldhp + hp_change, 0, m_prop.hp_max); + hp = m_hp + hp_change; } + s32 oldhp = m_hp; + hp = rangelim(hp, 0, m_prop.hp_max); + if (hp < oldhp && isImmortal()) - return; + return; // Do not allow immortal players to be damaged m_hp = hp; @@ -525,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() @@ -558,7 +572,8 @@ void PlayerSAO::setMaxSpeedOverride(const v3f &vel) bool PlayerSAO::checkMovementCheat() { - if (isAttached() || m_is_singleplayer || + if (m_is_singleplayer || + isAttached() || g_settings->getBool("disable_anticheat")) { m_last_good_position = m_base_position; return false; diff --git a/src/server/player_sao.h b/src/server/player_sao.h index 8571bd4f9..8e2d8803f 100644 --- a/src/server/player_sao.h +++ b/src/server/player_sao.h @@ -83,6 +83,7 @@ public: void addedToEnvironment(u32 dtime_s); void removingFromEnvironment(); bool isStaticAllowed() const { return false; } + bool shouldUnload() const { return false; } std::string getClientInitializationData(u16 protocol_version); void getStaticData(std::string *result) const; void step(float dtime, bool send_recommended); @@ -110,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 3341dc008..96b433d1d 100644 --- a/src/server/serveractiveobject.cpp +++ b/src/server/serveractiveobject.cpp @@ -61,7 +61,7 @@ std::string ServerActiveObject::generateUpdateInfantCommand(u16 infant_id, u16 p // Clients since 4aa9a66 so no longer need this data // Version 38 is the first bump after that commit. // See also: ClientEnvironment::addActiveObject - os << serializeLongString(getClientInitializationData(protocol_version)); + os << serializeString32(getClientInitializationData(protocol_version)); } return os.str(); } @@ -73,3 +73,19 @@ void ServerActiveObject::dumpAOMessagesToQueue(std::queue<ActiveObjectMessage> & 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 927009aef..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, @@ -125,6 +129,7 @@ public: assert(isStaticAllowed()); *result = ""; } + /* Return false in here to never save and instead remove object on unload. getStaticData() will not be called in that case. @@ -132,6 +137,14 @@ public: virtual bool isStaticAllowed() const {return true;} + /* + Return false here to never unload the object. + isStaticAllowed && shouldUnload -> unload when out of active block range + !isStaticAllowed && shouldUnload -> unload when block is unloaded + */ + virtual bool shouldUnload() const + { return true; } + // Returns tool wear virtual u16 punch(v3f dir, const ToolCapabilities *toolcap = nullptr, @@ -149,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) @@ -193,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<ActiveObjectMessage> &queue); @@ -205,31 +215,15 @@ 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?" */ 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 */ @@ -241,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) {} @@ -249,6 +246,27 @@ protected: std::unordered_set<u32> 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 */ std::queue<ActiveObjectMessage> m_messages_out; diff --git a/src/server/unit_sao.cpp b/src/server/unit_sao.cpp index ef0e87f2c..2371640ca 100644 --- a/src/server/unit_sao.cpp +++ b/src/server/unit_sao.cpp @@ -121,8 +121,8 @@ void UnitSAO::sendOutdatedData() } // clang-format on -void UnitSAO::setAttachment( - int parent_id, const std::string &bone, v3f position, v3f rotation) +void UnitSAO::setAttachment(int parent_id, const std::string &bone, v3f position, + v3f rotation, bool force_visible) { // Attachments need to be handled on both the server and client. // If we just attach on the server, we can only copy the position of the parent. @@ -137,6 +137,7 @@ void UnitSAO::setAttachment( m_attachment_bone = bone; m_attachment_position = position; m_attachment_rotation = rotation; + m_force_visible = force_visible; m_attachment_sent = false; if (parent_id != old_parent) { @@ -145,13 +146,14 @@ void UnitSAO::setAttachment( } } -void UnitSAO::getAttachment( - int *parent_id, std::string *bone, v3f *position, v3f *rotation) const +void UnitSAO::getAttachment(int *parent_id, std::string *bone, v3f *position, + v3f *rotation, bool *force_visible) const { *parent_id = m_attachment_parent_id; *bone = m_attachment_bone; *position = m_attachment_position; *rotation = m_attachment_rotation; + *force_visible = m_force_visible; } void UnitSAO::clearChildAttachments() @@ -159,7 +161,7 @@ void UnitSAO::clearChildAttachments() for (int child_id : m_attachment_child_ids) { // Child can be NULL if it was deleted earlier if (ServerActiveObject *child = m_env->getActiveObject(child_id)) - child->setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0)); + child->setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0), false); } m_attachment_child_ids.clear(); } @@ -169,9 +171,9 @@ void UnitSAO::clearParentAttachment() ServerActiveObject *parent = nullptr; if (m_attachment_parent_id) { parent = m_env->getActiveObject(m_attachment_parent_id); - setAttachment(0, "", m_attachment_position, m_attachment_rotation); + setAttachment(0, "", m_attachment_position, m_attachment_rotation, false); } else { - setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0)); + setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0), false); } // Do it if (parent) @@ -242,9 +244,10 @@ std::string UnitSAO::generateUpdateAttachmentCommand() const writeU8(os, AO_CMD_ATTACH_TO); // parameters writeS16(os, m_attachment_parent_id); - os << serializeString(m_attachment_bone); + os << serializeString16(m_attachment_bone); writeV3F32(os, m_attachment_position); writeV3F32(os, m_attachment_rotation); + writeU8(os, m_force_visible); return os.str(); } @@ -255,7 +258,7 @@ std::string UnitSAO::generateUpdateBonePositionCommand( // command writeU8(os, AO_CMD_SET_BONE_POSITION); // parameters - os << serializeString(bone); + os << serializeString16(bone); writeV3F32(os, position); writeV3F32(os, rotation); return os.str(); @@ -291,7 +294,7 @@ std::string UnitSAO::generateUpdateArmorGroupsCommand() const writeU8(os, AO_CMD_UPDATE_ARMOR_GROUPS); writeU16(os, m_armor_groups.size()); for (const auto &armor_group : m_armor_groups) { - os << serializeString(armor_group.first); + os << serializeString16(armor_group.first); writeS16(os, armor_group.second); } return os.str(); diff --git a/src/server/unit_sao.h b/src/server/unit_sao.h index 3cb7f0ad5..a21e055c5 100644 --- a/src/server/unit_sao.h +++ b/src/server/unit_sao.h @@ -64,9 +64,9 @@ public: ServerActiveObject *getParent() const; inline bool isAttached() const { return getParent(); } void setAttachment(int parent_id, const std::string &bone, v3f position, - v3f rotation); + v3f rotation, bool force_visible); void getAttachment(int *parent_id, std::string *bone, v3f *position, - v3f *rotation) const; + v3f *rotation, bool *force_visible) const; void clearChildAttachments(); void clearParentAttachment(); void addAttachmentChild(int child_id); @@ -133,4 +133,5 @@ private: v3f m_attachment_position; v3f m_attachment_rotation; bool m_attachment_sent = false; + bool m_force_visible = false; }; diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index ad2ffc9a4..3d9ba132b 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -632,7 +632,7 @@ void ServerEnvironment::saveMeta() // Open file and serialize std::ostringstream ss(std::ios_base::binary); - Settings args; + Settings args("EnvArgsEnd"); args.setU64("game_time", m_game_time); args.setU64("time_of_day", getTimeOfDay()); args.setU64("last_clear_objects_time", m_last_clear_objects_time); @@ -641,7 +641,6 @@ void ServerEnvironment::saveMeta() m_lbm_mgr.createIntroductionTimesString()); args.setU64("day_count", m_day_count); args.writeLines(ss); - ss<<"EnvArgsEnd\n"; if(!fs::safeWriteToFile(path, ss.str())) { @@ -676,9 +675,9 @@ void ServerEnvironment::loadMeta() throw SerializationError("Couldn't load env meta"); } - Settings args; + Settings args("EnvArgsEnd"); - if (!args.parseConfigLines(is, "EnvArgsEnd")) { + if (!args.parseConfigLines(is)) { throw SerializationError("ServerEnvironment::loadMeta(): " "EnvArgsEnd not found!"); } @@ -1066,6 +1065,91 @@ bool ServerEnvironment::swapNode(v3s16 p, const MapNode &n) return true; } +u8 ServerEnvironment::findSunlight(v3s16 pos) const +{ + // Directions for neighbouring nodes with specified order + static const v3s16 dirs[] = { + v3s16(-1, 0, 0), v3s16(1, 0, 0), v3s16(0, 0, -1), v3s16(0, 0, 1), + v3s16(0, -1, 0), v3s16(0, 1, 0) + }; + + const NodeDefManager *ndef = m_server->ndef(); + + // found_light remembers the highest known sunlight value at pos + u8 found_light = 0; + + struct stack_entry { + v3s16 pos; + s16 dist; + }; + std::stack<stack_entry> stack; + stack.push({pos, 0}); + + std::unordered_map<s64, s8> dists; + dists[MapDatabase::getBlockAsInteger(pos)] = 0; + + while (!stack.empty()) { + struct stack_entry e = stack.top(); + stack.pop(); + + v3s16 currentPos = e.pos; + s8 dist = e.dist + 1; + + for (const v3s16& off : dirs) { + v3s16 neighborPos = currentPos + off; + s64 neighborHash = MapDatabase::getBlockAsInteger(neighborPos); + + // Do not walk neighborPos multiple times unless the distance to the start + // position is shorter + auto it = dists.find(neighborHash); + if (it != dists.end() && dist >= it->second) + continue; + + // Position to walk + bool is_position_ok; + MapNode node = m_map->getNode(neighborPos, &is_position_ok); + if (!is_position_ok) { + // This happens very rarely because the map at currentPos is loaded + m_map->emergeBlock(neighborPos, false); + node = m_map->getNode(neighborPos, &is_position_ok); + if (!is_position_ok) + continue; // not generated + } + + const ContentFeatures &def = ndef->get(node); + if (!def.sunlight_propagates) { + // Do not test propagation here again + dists[neighborHash] = -1; + continue; + } + + // Sunlight could have come from here + dists[neighborHash] = dist; + u8 daylight = node.param1 & 0x0f; + + // In the special case where sunlight shines from above and thus + // does not decrease with upwards distance, daylight is always + // bigger than nightlight, which never reaches 15 + int possible_finlight = daylight - dist; + if (possible_finlight <= found_light) { + // Light from here cannot make a brighter light at currentPos than + // found_light + continue; + } + + u8 nightlight = node.param1 >> 4; + if (daylight > nightlight) { + // Found a valid daylight + found_light = possible_finlight; + } else { + // Sunlight may be darker, so walk the neighbours + stack.push({neighborPos, dist}); + } + } + } + return found_light; +} + void ServerEnvironment::clearObjects(ClearObjectsMode mode) { infostream << "ServerEnvironment::clearObjects(): " @@ -1079,7 +1163,7 @@ void ServerEnvironment::clearObjects(ClearObjectsMode mode) // If known by some client, don't delete immediately if (obj->m_known_by_count > 0) { - obj->m_pending_removal = true; + obj->markForRemoval(); return false; } @@ -1354,8 +1438,8 @@ void ServerEnvironment::step(float dtime) std::shuffle(output.begin(), output.end(), m_rgen); int i = 0; - // The time budget for ABMs is 20%. - u32 max_time_ms = m_cache_abm_interval * 1000 / 5; + // determine the time budget for ABMs + u32 max_time_ms = m_cache_abm_interval * 1000 * m_cache_abm_time_budget; for (const v3s16 &p : output) { MapBlock *block = m_map->getBlockNoCreateNoEx(p); if (!block) @@ -1707,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 @@ -1718,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); @@ -1887,8 +1971,8 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) // force_delete might be overriden per object bool force_delete = _force_delete; - // Do not deactivate if static data creation not allowed - if (!force_delete && !obj->isStaticAllowed()) + // Do not deactivate if disallowed + if (!force_delete && !obj->shouldUnload()) return false; // removeRemovedObjects() is responsible for these @@ -1906,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); @@ -1917,7 +2002,10 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete) } // If block is still active, don't remove - if (!force_delete && m_active_blocks.contains(blockpos_o)) + bool still_active = obj->isStaticAllowed() ? + m_active_blocks.contains(blockpos_o) : + getMap().getBlockNoCreateNoEx(blockpos_o) != nullptr; + if (!force_delete && still_active) return false; verbosestream << "ServerEnvironment::deactivateFarObjects(): " @@ -1980,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. @@ -1989,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; } diff --git a/src/serverenvironment.h b/src/serverenvironment.h index af742e290..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<u16, ServerActiveObject *> ServerActiveObjectMap; - class ServerEnvironment : public Environment { public: @@ -322,6 +314,9 @@ public: bool removeNode(v3s16 p); bool swapNode(v3s16 p, const MapNode &n); + // Find the daylight value at pos with a Depth First Search + u8 findSunlight(v3s16 pos) const; + // Find all active objects inside a radius around a point void getObjectsInsideRadius(std::vector<ServerActiveObject *> &objects, const v3f &pos, float radius, std::function<bool(ServerActiveObject *obj)> include_obj_cb) @@ -329,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<ServerActiveObject *> &objects, const aabb3f &box, + std::function<bool(ServerActiveObject *obj)> 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 18264e933..3bcab3d58 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -17,189 +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 <fstream> #include <iostream> -#include <sstream> -#include <algorithm> - #include "version.h" #include "settings.h" #include "serverlist.h" #include "filesys.h" -#include "porting.h" #include "log.h" #include "network/networkprotocol.h" #include <json/json.h> #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<ServerListSpec> getLocal() -{ - std::string path = ServerList::getFilePath(); - std::string liststring; - if (fs::PathExists(path)) { - std::ifstream istream(path.c_str()); - if (istream.is_open()) { - std::ostringstream ostream; - ostream << istream.rdbuf(); - liststring = ostream.str(); - istream.close(); - } - } - - return deSerialize(liststring); -} - - -std::vector<ServerListSpec> 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<ServerListSpec> 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<ServerListSpec> serverlist = ServerList::getLocal(); - for (std::vector<ServerListSpec>::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<ServerListSpec> 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<ServerListSpec> deSerialize(const std::string &liststring) -{ - std::vector<ServerListSpec> 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<ServerListSpec> &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<ServerListSpec> &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, @@ -253,19 +83,26 @@ void sendAnnounce(AnnounceAction action, for (const ModSpec &mod : mods) { server["mods"].append(mod.name); } - actionstream << "Announcing to " << g_settings->get("serverlist_url") << std::endl; } else if (action == AA_UPDATE) { if (lag) server["lag"] = lag; } + if (action == AA_START) { + actionstream << "Announcing " << aa_names[action] << " to " << + g_settings->get("serverlist_url") << std::endl; + } else { + infostream << "Announcing " << aa_names[action] << " to " << + g_settings->get("serverlist_url") << std::endl; + } + HTTPFetchRequest fetch_request; fetch_request.url = g_settings->get("serverlist_url") + std::string("/announce"); - fetch_request.post_fields["json"] = fastWriteJson(server); + fetch_request.method = HTTP_POST; + fetch_request.fields["json"] = fastWriteJson(server); fetch_request.multipart = true; httpfetch_async(fetch_request); } #endif } // namespace ServerList - 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<ServerListSpec> getLocal(); -std::vector<ServerListSpec> getOnline(); - -bool deleteEntry(const ServerListSpec &server); -bool insert(const ServerListSpec &server); - -std::vector<ServerListSpec> deSerialize(const std::string &liststring); -const std::string serialize(const std::vector<ServerListSpec> &serverlist); -std::vector<ServerListSpec> deSerializeJson(const std::string &liststring); -const std::string serializeJson(const std::vector<ServerListSpec> &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 55404319e..3415ff818 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -33,21 +33,50 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <cctype> #include <algorithm> -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<std::string, const FlagDesc *> Settings::s_flags; + + +Settings *Settings::createLayer(SettingsLayer sl, const std::string &end_tag) { - clear(); + if ((int)sl < 0 || sl >= SL_TOTAL_COUNT) + throw new BaseException("Invalid settings layer"); + + Settings *&pos = s_layers[(size_t)sl]; + if (pos) + throw new BaseException("Setting layer " + std::to_string(sl) + " already exists"); + + pos = new Settings(end_tag); + pos->m_settingslayer = sl; + + if (sl == SL_GLOBAL) + g_settings = pos; + return pos; } -Settings & Settings::operator += (const Settings &other) +Settings *Settings::getLayer(SettingsLayer sl) { - update(other); + sanity_check((int)sl >= 0 && sl < SL_TOTAL_COUNT); + return s_layers[(size_t)sl]; +} - return *this; + +Settings::~Settings() +{ + MutexAutoLock lock(m_mutex); + + if (m_settingslayer < SL_TOTAL_COUNT) + s_layers[(size_t)m_settingslayer] = nullptr; + + // Compatibility + if (m_settingslayer == SL_GLOBAL) + g_settings = nullptr; + + clearNoLock(); } @@ -56,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; } @@ -124,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); @@ -136,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: @@ -149,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; } @@ -163,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(); } @@ -173,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"; + } } @@ -187,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 << " = "; @@ -201,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<std::string> present_entries; @@ -214,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: @@ -246,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); @@ -267,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()) @@ -276,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; } @@ -287,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) @@ -360,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."); } @@ -404,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)); @@ -485,56 +532,38 @@ 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); - - flags &= ~mask_user; - flags |= flags_user; - - if (flagmask) - *flagmask = mask_default | mask_user; - - return flags; -} - -// N.B. if getStruct() is used to read a non-POD aggregate type, -// the behavior is undefined. -bool Settings::getStruct(const std::string &name, const std::string &format, - void *out, size_t olen) const -{ - std::string valstr; - - try { - valstr = get(name); - } catch (SettingNotFoundException &e) { - return false; + if (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_user; } - if (!deSerializeStringToStruct(valstr, format, out, olen)) - return false; - - return true; + return flags; } 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; } @@ -546,6 +575,7 @@ bool Settings::getNoiseParamsFromValue(const std::string &name, if (!getNoEx(name, value)) return false; + // Format: f32,f32,(f32,f32,f32),s32,s32,f32[,f32] Strfnd f(value); np.offset = stof(f.next(",")); @@ -595,13 +625,18 @@ bool Settings::exists(const std::string &name) const { MutexAutoLock lock(m_mutex); - return (m_settings.find(name) != m_settings.end() || - m_defaults.find(name) != m_defaults.end()); + if (m_settings.find(name) != m_settings.end()) + return true; + if (auto parent = getParent()) + return parent->exists(name); + return false; } std::vector<std::string> Settings::getNames() const { + MutexAutoLock lock(m_mutex); + std::vector<std::string> names; for (const auto &settings_it : m_settings) { names.push_back(settings_it.first); @@ -615,28 +650,6 @@ std::vector<std::string> Settings::getNames() const * Getters that don't throw exceptions * ***************************************/ -bool Settings::getEntryNoEx(const std::string &name, SettingsEntry &val) const -{ - try { - val = getEntry(name); - return true; - } catch (SettingNotFoundException &e) { - return false; - } -} - - -bool Settings::getEntryDefaultNoEx(const std::string &name, SettingsEntry &val) const -{ - try { - val = getEntryDefault(name); - return true; - } catch (SettingNotFoundException &e) { - return false; - } -} - - bool Settings::getGroupNoEx(const std::string &name, Settings *&val) const { try { @@ -659,17 +672,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 { @@ -780,24 +782,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; @@ -808,7 +811,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); @@ -816,21 +819,20 @@ 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); -} - - -bool Settings::setGroup(const std::string &name, Settings *group) -{ - return setEntry(name, &group, true, false); + return getLayer(SL_DEFAULTS)->set(name, value); } -bool Settings::setGroupDefault(const std::string &name, Settings *group) +bool Settings::setGroup(const std::string &name, const Settings &group) { - return setEntry(name, &group, true, true); + // Settings must own the group pointer + // avoid double-free by copying the source + Settings *copy = new Settings(); + *copy = group; + return setEntry(name, ©, true); } @@ -900,19 +902,7 @@ bool Settings::setFlagStr(const std::string &name, u32 flags, } -bool Settings::setStruct(const std::string &name, const std::string &format, - void *value) -{ - std::string structstr; - if (!serializeStructToString(&structstr, format, value)) - return false; - - return set(name, structstr); -} - - -bool Settings::setNoiseParams(const std::string &name, - const NoiseParams &np, bool set_default) +bool Settings::setNoiseParams(const std::string &name, const NoiseParams &np) { Settings *group = new Settings; @@ -925,7 +915,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); } @@ -949,46 +939,8 @@ bool Settings::remove(const std::string &name) } -void Settings::clear() -{ - MutexAutoLock lock(m_mutex); - clearNoLock(); -} - -void Settings::clearDefaults() -{ - MutexAutoLock lock(m_mutex); - clearDefaultsNoLock(); -} - -void Settings::updateValue(const Settings &other, const std::string &name) -{ - if (&other == this) - return; - - MutexAutoLock lock(m_mutex); - - try { - m_settings[name] = other.get(name); - } catch (SettingNotFoundException &e) { - } -} - - -void Settings::update(const Settings &other) -{ - if (&other == this) - return; - - MutexAutoLock lock(m_mutex); - MutexAutoLock lock2(other.m_mutex); - - updateNoLock(other); -} - - SettingsParseEvent Settings::parseConfigObject(const std::string &line, - const std::string &end, std::string &name, std::string &value) + std::string &name, std::string &value) { std::string trimmed_line = trim(line); @@ -996,7 +948,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('='); @@ -1015,67 +967,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, @@ -1102,6 +1013,19 @@ void Settings::deregisterChangedCallback(const std::string &name, } } +void Settings::removeSecureSettings() +{ + for (const auto &name : getNames()) { + if (name.compare(0, 7, "secure.") != 0) + continue; + + errorstream << "Secure setting " << name + << " isn't allowed, so was ignored." + << std::endl; + remove(name); + } +} + void Settings::doCallbacks(const std::string &name) const { MutexAutoLock lock(m_callback_mutex); diff --git a/src/settings.h b/src/settings.h index 0c9a155db..b5e859ee0 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<std::string, SettingsEntry> 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,29 +123,15 @@ public: // NOTE: Types of allowed_options are ignored. Returns success. bool parseCommandLine(int argc, char *argv[], std::map<std::string, ValueSpec> &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; - SettingsParseEvent parseConfigObject(const std::string &line, - const std::string &end, std::string &name, std::string &value); - bool updateConfigObject(std::istream &is, std::ostream &os, - const std::string &end, u32 tab_depth=0); - - static bool checkNameValid(const std::string &name); - static bool checkValueValid(const std::string &value); - static std::string getMultiline(std::istream &is, size_t *num_lines=NULL); - static void printEntry(std::ostream &os, const std::string &name, - const SettingsEntry &entry, u32 tab_depth=0); - /*********** * Getters * ***********/ - const SettingsEntry &getEntry(const std::string &name) const; - const SettingsEntry &getEntryDefault(const std::string &name) const; Settings *getGroup(const std::string &name) const; const std::string &get(const std::string &name) const; - const std::string &getDefault(const std::string &name) const; bool getBool(const std::string &name) const; u16 getU16(const std::string &name) const; s16 getS16(const std::string &name) const; @@ -144,10 +143,6 @@ public: v3f getV3F(const std::string &name) const; u32 getFlagStr(const std::string &name, const FlagDesc *flagdesc, u32 *flagmask) const; - // N.B. if getStruct() is used to read a non-POD aggregate type, - // the behavior is undefined. - bool getStruct(const std::string &name, const std::string &format, - void *out, size_t olen) const; bool getNoiseParams(const std::string &name, NoiseParams &np) const; bool getNoiseParamsFromValue(const std::string &name, NoiseParams &np) const; bool getNoiseParamsFromGroup(const std::string &name, NoiseParams &np) const; @@ -161,11 +156,8 @@ public: * Getters that don't throw exceptions * ***************************************/ - bool getEntryNoEx(const std::string &name, SettingsEntry &val) const; - bool getEntryDefaultNoEx(const std::string &name, SettingsEntry &val) const; bool getGroupNoEx(const std::string &name, Settings *&val) const; bool getNoEx(const std::string &name, std::string &val) const; - bool getDefaultNoEx(const std::string &name, std::string &val) const; 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; @@ -189,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, Settings *group); - bool setGroupDefault(const std::string &name, Settings *group); + bool setGroup(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); @@ -204,26 +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); - // N.B. if setStruct() is used to write a non-POD aggregate type, - // the behavior is undefined. - bool setStruct(const std::string &name, const std::string &format, void *value); + bool setNoiseParams(const std::string &name, const NoiseParams &np); // remove a setting bool remove(const std::string &name); - void clear(); - void clearDefaults(); - void updateValue(const Settings &other, const std::string &name); - void update(const Settings &other); /************** * Miscellany * **************/ 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, @@ -231,7 +212,34 @@ public: void deregisterChangedCallback(const std::string &name, SettingsChangedCallback cbf, void *userdata = NULL); + void removeSecureSettings(); + private: + /*********************** + * Reading and writing * + ***********************/ + + SettingsParseEvent parseConfigObject(const std::string &line, + std::string &name, std::string &value); + bool updateConfigObject(std::istream &is, std::ostream &os, + u32 tab_depth=0); + + static bool checkNameValid(const std::string &name); + static bool checkValueValid(const std::string &value); + static std::string getMultiline(std::istream &is, size_t *num_lines=NULL); + static void printEntry(std::ostream &os, const std::string &name, + const SettingsEntry &entry, u32 tab_depth=0); + + /*********** + * Getters * + ***********/ + Settings *getParent() const; + + const SettingsEntry &getEntry(const std::string &name) const; + + // Allow TestSettings to run sanity checks using private functions. + friend class TestSettings; + void updateNoLock(const Settings &other); void clearNoLock(); void clearDefaultsNoLock(); @@ -239,14 +247,15 @@ private: void doCallbacks(const std::string &name) const; SettingEntries m_settings; - SettingEntries m_defaults; - std::unordered_map<std::string, const FlagDesc *> 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<std::string, const FlagDesc *> s_flags; }; diff --git a/src/settings_translation_file.cpp b/src/settings_translation_file.cpp index febfbb9d3..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,26 +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\nor need to be auto-generated.\nRequires shaders to be enabled."); - gettext("Generate normalmaps"); - gettext("Enables on the fly normalmap generation (Emboss effect).\nRequires bumpmapping to be enabled."); - gettext("Normalmaps strength"); - gettext("Strength of generated normalmaps."); - gettext("Normalmaps sampling"); - gettext("Defines sampling step of texture.\nA higher value results in smoother normal maps."); - 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."); @@ -278,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"); @@ -315,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"); @@ -345,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"); @@ -383,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."); @@ -509,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."); @@ -525,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"); @@ -607,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"); @@ -616,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"); @@ -693,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"); @@ -964,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"); @@ -977,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"); @@ -1103,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/sound.h b/src/sound.h index 6cbd55e8f..6f7b0a1af 100644 --- a/src/sound.h +++ b/src/sound.h @@ -39,7 +39,7 @@ struct SimpleSoundSpec // keep in sync with item definitions void serialize(std::ostream &os, u8 cf_version) const { - os << serializeString(name); + os << serializeString16(name); writeF32(os, gain); writeF32(os, pitch); writeF32(os, fade); @@ -49,7 +49,7 @@ struct SimpleSoundSpec void deSerialize(std::istream &is, u8 cf_version) { - name = deSerializeString(is); + name = deSerializeString16(is); gain = readF32(is); pitch = readF32(is); fade = readF32(is); diff --git a/src/staticobject.cpp b/src/staticobject.cpp index 5ccb7baf5..86e455b9f 100644 --- a/src/staticobject.cpp +++ b/src/staticobject.cpp @@ -35,7 +35,7 @@ void StaticObject::serialize(std::ostream &os) // pos writeV3F1000(os, pos); // data - os<<serializeString(data); + os<<serializeString16(data); } void StaticObject::deSerialize(std::istream &is, u8 version) { @@ -44,7 +44,7 @@ void StaticObject::deSerialize(std::istream &is, u8 version) // pos pos = readV3F1000(is); // data - data = deSerializeString(is); + data = deSerializeString16(is); } void StaticObjectList::serialize(std::ostream &os) diff --git a/src/texture_override.cpp b/src/texture_override.cpp index 10d129b87..effdb0efd 100644 --- a/src/texture_override.cpp +++ b/src/texture_override.cpp @@ -24,6 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <algorithm> #include <fstream> +#define override_cast static_cast<override_t> + TextureOverrideSource::TextureOverrideSource(std::string filepath) { std::ifstream infile(filepath.c_str()); @@ -56,25 +58,37 @@ TextureOverrideSource::TextureOverrideSource(std::string filepath) std::vector<std::string> targets = str_split(splitted[1], ','); for (const std::string &target : targets) { if (target == "top") - texture_override.target |= static_cast<u8>(OverrideTarget::TOP); + texture_override.target |= override_cast(OverrideTarget::TOP); else if (target == "bottom") - texture_override.target |= static_cast<u8>(OverrideTarget::BOTTOM); + texture_override.target |= override_cast(OverrideTarget::BOTTOM); else if (target == "left") - texture_override.target |= static_cast<u8>(OverrideTarget::LEFT); + texture_override.target |= override_cast(OverrideTarget::LEFT); else if (target == "right") - texture_override.target |= static_cast<u8>(OverrideTarget::RIGHT); + texture_override.target |= override_cast(OverrideTarget::RIGHT); else if (target == "front") - texture_override.target |= static_cast<u8>(OverrideTarget::FRONT); + texture_override.target |= override_cast(OverrideTarget::FRONT); else if (target == "back") - texture_override.target |= static_cast<u8>(OverrideTarget::BACK); + texture_override.target |= override_cast(OverrideTarget::BACK); else if (target == "inventory") - texture_override.target |= static_cast<u8>(OverrideTarget::INVENTORY); + texture_override.target |= override_cast(OverrideTarget::INVENTORY); else if (target == "wield") - texture_override.target |= static_cast<u8>(OverrideTarget::WIELD); + texture_override.target |= override_cast(OverrideTarget::WIELD); + else if (target == "special1") + texture_override.target |= override_cast(OverrideTarget::SPECIAL_1); + else if (target == "special2") + texture_override.target |= override_cast(OverrideTarget::SPECIAL_2); + else if (target == "special3") + texture_override.target |= override_cast(OverrideTarget::SPECIAL_3); + else if (target == "special4") + texture_override.target |= override_cast(OverrideTarget::SPECIAL_4); + else if (target == "special5") + texture_override.target |= override_cast(OverrideTarget::SPECIAL_5); + else if (target == "special6") + texture_override.target |= override_cast(OverrideTarget::SPECIAL_6); else if (target == "sides") - texture_override.target |= static_cast<u8>(OverrideTarget::SIDES); + texture_override.target |= override_cast(OverrideTarget::SIDES); else if (target == "all" || target == "*") - texture_override.target |= static_cast<u8>(OverrideTarget::ALL_FACES); + texture_override.target |= override_cast(OverrideTarget::ALL_FACES); else { // Report invalid target warningstream << filepath << ":" << line_index @@ -85,7 +99,7 @@ TextureOverrideSource::TextureOverrideSource(std::string filepath) } // If there are no valid targets, skip adding this override - if (texture_override.target == static_cast<u8>(OverrideTarget::INVALID)) { + if (texture_override.target == override_cast(OverrideTarget::INVALID)) { continue; } @@ -112,7 +126,7 @@ std::vector<TextureOverride> TextureOverrideSource::getNodeTileOverrides() std::vector<TextureOverride> found_overrides; for (const TextureOverride &texture_override : m_overrides) { - if (texture_override.hasTarget(OverrideTarget::ALL_FACES)) + if (texture_override.hasTarget(OverrideTarget::NODE_TARGETS)) found_overrides.push_back(texture_override); } diff --git a/src/texture_override.h b/src/texture_override.h index db03bd014..bdc95e732 100644 --- a/src/texture_override.h +++ b/src/texture_override.h @@ -23,8 +23,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <string> #include <vector> +typedef u16 override_t; + //! Bitmask enum specifying what a texture override should apply to -enum class OverrideTarget : u8 +enum class OverrideTarget : override_t { INVALID = 0, TOP = 1 << 0, @@ -35,23 +37,33 @@ enum class OverrideTarget : u8 BACK = 1 << 5, INVENTORY = 1 << 6, WIELD = 1 << 7, + SPECIAL_1 = 1 << 8, + SPECIAL_2 = 1 << 9, + SPECIAL_3 = 1 << 10, + SPECIAL_4 = 1 << 11, + SPECIAL_5 = 1 << 12, + SPECIAL_6 = 1 << 13, + // clang-format off SIDES = LEFT | RIGHT | FRONT | BACK, ALL_FACES = TOP | BOTTOM | SIDES, + ALL_SPECIAL = SPECIAL_1 | SPECIAL_2 | SPECIAL_3 | SPECIAL_4 | SPECIAL_5 | SPECIAL_6, + NODE_TARGETS = ALL_FACES | ALL_SPECIAL, ITEM_TARGETS = INVENTORY | WIELD, + // clang-format on }; struct TextureOverride { std::string id; std::string texture; - u8 target; + override_t target; // Helper function for checking if an OverrideTarget is found in // a TextureOverride without casting inline bool hasTarget(OverrideTarget overrideTarget) const { - return (target & static_cast<u8>(overrideTarget)) != 0; + return (target & static_cast<override_t>(overrideTarget)) != 0; } }; diff --git a/src/threading/thread.cpp b/src/threading/thread.cpp index e0f808c4d..5cfc60995 100644 --- a/src/threading/thread.cpp +++ b/src/threading/thread.cpp @@ -33,6 +33,8 @@ DEALINGS IN THE SOFTWARE. #include <sys/prctl.h> #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) #include <pthread_np.h> +#elif defined(__NetBSD__) + #include <sched.h> #elif defined(_MSC_VER) struct THREADNAME_INFO { DWORD dwType; // Must be 0x1000 @@ -71,7 +73,28 @@ Thread::Thread(const std::string &name) : Thread::~Thread() { - kill(); + // kill the thread if running + if (!m_running) { + wait(); + } else { + + m_running = false; + +#if defined(_WIN32) + // See https://msdn.microsoft.com/en-us/library/hh920601.aspx#thread__native_handle_method + TerminateThread((HANDLE) m_thread_obj->native_handle(), 0); + CloseHandle((HANDLE) m_thread_obj->native_handle()); +#else + // We need to pthread_kill instead on Android since NDKv5's pthread + // implementation is incomplete. +# ifdef __ANDROID__ + pthread_kill(getThreadHandle(), SIGKILL); +# else + pthread_cancel(getThreadHandle()); +# endif + wait(); +#endif + } // Make sure start finished mutex is unlocked before it's destroyed if (m_start_finished_mutex.try_lock()) @@ -136,37 +159,6 @@ bool Thread::wait() } -bool Thread::kill() -{ - if (!m_running) { - wait(); - return false; - } - - m_running = false; - -#if defined(_WIN32) - // See https://msdn.microsoft.com/en-us/library/hh920601.aspx#thread__native_handle_method - TerminateThread((HANDLE) m_thread_obj->native_handle(), 0); - CloseHandle((HANDLE) m_thread_obj->native_handle()); -#else - // We need to pthread_kill instead on Android since NDKv5's pthread - // implementation is incomplete. -# ifdef __ANDROID__ - pthread_kill(getThreadHandle(), SIGKILL); -# else - pthread_cancel(getThreadHandle()); -# endif - wait(); -#endif - - m_retval = nullptr; - m_joinable = false; - m_request_stop = false; - - return true; -} - bool Thread::getReturnValue(void **ret) { @@ -219,12 +211,16 @@ void Thread::setName(const std::string &name) #elif defined(__NetBSD__) - pthread_setname_np(pthread_self(), name.c_str()); + pthread_setname_np(pthread_self(), "%s", const_cast<char*>(name.c_str())); #elif defined(__APPLE__) pthread_setname_np(name.c_str()); +#elif defined(__HAIKU__) + + rename_thread(find_thread(NULL), name.c_str()); + #elif defined(_MSC_VER) // Windows itself doesn't support thread names, @@ -281,7 +277,14 @@ bool Thread::bindToProcessor(unsigned int proc_number) CPU_SET(proc_number, &cpuset); return pthread_setaffinity_np(getThreadHandle(), sizeof(cpuset), &cpuset) == 0; +#elif defined(__NetBSD__) + cpuset_t *cpuset = cpuset_create(); + if (cpuset == NULL) + return false; + int r = pthread_setaffinity_np(getThreadHandle(), cpuset_size(cpuset), cpuset); + cpuset_destroy(cpuset); + return r == 0; #elif defined(__sun) || defined(sun) return processor_bind(P_LWPID, P_MYID, proc_number, NULL) == 0 diff --git a/src/threading/thread.h b/src/threading/thread.h index cea92226f..45fb171da 100644 --- a/src/threading/thread.h +++ b/src/threading/thread.h @@ -36,6 +36,10 @@ DEALINGS IN THE SOFTWARE. #include <sys/thread.h> // for tid_t #endif +#ifdef __HAIKU__ + #include <kernel/OS.h> +#endif + /* * On platforms using pthreads, these five priority classes correlate to * even divisions between the minimum and maximum reported thread priority. @@ -71,14 +75,6 @@ public: bool stop(); /* - * Immediately terminates the thread. - * This should be used with extreme caution, as the thread will not have - * any opportunity to release resources it may be holding (such as memory - * or locks). - */ - bool kill(); - - /* * Waits for thread to finish. * Note: This does not stop a thread, you have to do this on your own. * Returns false immediately if the thread is not started or has been waited diff --git a/src/tool.cpp b/src/tool.cpp index 22e41d28e..90f4f9c12 100644 --- a/src/tool.cpp +++ b/src/tool.cpp @@ -66,7 +66,7 @@ void ToolCapabilities::serialize(std::ostream &os, u16 protocol_version) const for (const auto &groupcap : groupcaps) { const std::string *name = &groupcap.first; const ToolGroupCap *cap = &groupcap.second; - os << serializeString(*name); + os << serializeString16(*name); writeS16(os, cap->uses); writeS16(os, cap->maxlevel); writeU32(os, cap->times.size()); @@ -79,7 +79,7 @@ void ToolCapabilities::serialize(std::ostream &os, u16 protocol_version) const writeU32(os, damageGroups.size()); for (const auto &damageGroup : damageGroups) { - os << serializeString(damageGroup.first); + os << serializeString16(damageGroup.first); writeS16(os, damageGroup.second); } @@ -98,7 +98,7 @@ void ToolCapabilities::deSerialize(std::istream &is) groupcaps.clear(); u32 groupcaps_size = readU32(is); for (u32 i = 0; i < groupcaps_size; i++) { - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); ToolGroupCap cap; cap.uses = readS16(is); cap.maxlevel = readS16(is); @@ -113,7 +113,7 @@ void ToolCapabilities::deSerialize(std::istream &is) u32 damage_groups_size = readU32(is); for (u32 i = 0; i < damage_groups_size; i++) { - std::string name = deSerializeString(is); + std::string name = deSerializeString16(is); s16 rating = readS16(is); damageGroups[name] = rating; } diff --git a/src/translation.cpp b/src/translation.cpp index 8bbaee0a3..55c958fa2 100644 --- a/src/translation.cpp +++ b/src/translation.cpp @@ -29,14 +29,6 @@ Translations client_translations; Translations *g_client_translations = &client_translations; #endif -// Per language server translations -std::unordered_map<std::string,Translations> server_translations; -std::unordered_map<std::string,Translations> *g_server_translations = &server_translations; - -Translations::~Translations() -{ - clear(); -} void Translations::clear() { @@ -152,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/translation.h b/src/translation.h index 71423b15e..f1a336fca 100644 --- a/src/translation.h +++ b/src/translation.h @@ -23,7 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include <string> class Translations; -extern std::unordered_map<std::string, Translations> *g_server_translations; #ifndef SERVER extern Translations *g_client_translations; #endif @@ -31,10 +30,6 @@ extern Translations *g_client_translations; class Translations { public: - Translations() = default; - - ~Translations(); - void loadTranslation(const std::string &data); void clear(); const std::wstring &getTranslation( diff --git a/src/unittest/test.cpp b/src/unittest/test.cpp index a783ccd32..af324e1b1 100644 --- a/src/unittest/test.cpp +++ b/src/unittest/test.cpp @@ -180,7 +180,7 @@ void TestGameDef::defineSomeNodes() "{default_water.png"; f = ContentFeatures(); f.name = itemdef.name; - f.alpha = 128; + f.alpha = ALPHAMODE_BLEND; f.liquid_type = LIQUID_SOURCE; f.liquid_viscosity = 4; f.is_ground_content = true; @@ -201,7 +201,7 @@ void TestGameDef::defineSomeNodes() "{default_lava.png"; f = ContentFeatures(); f.name = itemdef.name; - f.alpha = 128; + f.alpha = ALPHAMODE_OPAQUE; f.liquid_type = LIQUID_SOURCE; f.liquid_viscosity = 7; f.light_source = LIGHT_MAX-1; 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<u8> 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 0a5c971b9..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,33 +65,11 @@ void check_noise_params(const NoiseParams *np1, const NoiseParams *np2) } -std::string read_file_to_string(const std::string &filepath) +void TestMapSettingsManager::makeUserConfig() { - std::string buf; - FILE *f = fopen(filepath.c_str(), "rb"); - if (!f) - return ""; + delete Settings::getLayer(SL_GLOBAL); + Settings *conf = Settings::createLayer(SL_GLOBAL); - fseek(f, 0, SEEK_END); - - long filesize = ftell(f); - if (filesize == -1) { - fclose(f); - return ""; - } - rewind(f); - - buf.resize(filesize); - - UASSERTEQ(size_t, fread(&buf[0], 1, filesize, f), 1); - - fclose(f); - return buf; -} - - -void TestMapSettingsManager::makeUserConfig(Settings *conf) -{ conf->set("mg_name", "v7"); conf->set("seed", "5678"); conf->set("water_level", "20"); @@ -128,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)); @@ -165,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); @@ -199,7 +182,8 @@ void TestMapSettingsManager::testMapSettingsManager() }; SHA1 ctx; - std::string metafile_contents = read_file_to_string(test_mapmeta_path); + std::string metafile_contents; + UASSERT(fs::ReadFile(test_mapmeta_path, metafile_contents)); ctx.addBytes(&metafile_contents[0], metafile_contents.size()); unsigned char *sha1_result = ctx.getDigest(); int resultdiff = memcmp(sha1_result, expected_contents_hash, 20); @@ -212,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_serialization.cpp b/src/unittest/test_serialization.cpp index 51e28f144..660d77d02 100644 --- a/src/unittest/test_serialization.cpp +++ b/src/unittest/test_serialization.cpp @@ -32,25 +32,19 @@ public: void buildTestStrings(); void testSerializeString(); - void testSerializeWideString(); void testSerializeLongString(); void testSerializeJsonString(); - void testSerializeHex(); void testDeSerializeString(); - void testDeSerializeWideString(); void testDeSerializeLongString(); void testStreamRead(); void testStreamWrite(); - void testVecPut(); - void testStringLengthLimits(); - void testBufReader(); void testFloatFormat(); std::string teststring2; std::wstring teststring2_w; std::string teststring2_w_encoded; - static const u8 test_serialized_data[12 * 13 - 8]; + static const u8 test_serialized_data[12 * 11 - 2]; }; static TestSerialization g_test_instance; @@ -61,17 +55,11 @@ void TestSerialization::runTests(IGameDef *gamedef) TEST(testSerializeString); TEST(testDeSerializeString); - TEST(testSerializeWideString); - TEST(testDeSerializeWideString); TEST(testSerializeLongString); TEST(testDeSerializeLongString); TEST(testSerializeJsonString); - TEST(testSerializeHex); TEST(testStreamRead); TEST(testStreamWrite); - TEST(testVecPut); - TEST(testStringLengthLimits); - TEST(testBufReader); TEST(testFloatFormat); } @@ -103,21 +91,21 @@ void TestSerialization::buildTestStrings() void TestSerialization::testSerializeString() { // Test blank string - UASSERT(serializeString("") == mkstr("\0\0")); + UASSERT(serializeString16("") == mkstr("\0\0")); // Test basic string - UASSERT(serializeString("Hello world!") == mkstr("\0\14Hello world!")); + UASSERT(serializeString16("Hello world!") == mkstr("\0\14Hello world!")); // Test character range - UASSERT(serializeString(teststring2) == mkstr("\1\0") + teststring2); + UASSERT(serializeString16(teststring2) == mkstr("\1\0") + teststring2); } void TestSerialization::testDeSerializeString() { // Test deserialize { - std::istringstream is(serializeString(teststring2), std::ios::binary); - UASSERT(deSerializeString(is) == teststring2); + std::istringstream is(serializeString16(teststring2), std::ios::binary); + UASSERT(deSerializeString16(is) == teststring2); UASSERT(!is.eof()); is.get(); UASSERT(is.eof()); @@ -126,78 +114,34 @@ void TestSerialization::testDeSerializeString() // Test deserialize an incomplete length specifier { std::istringstream is(mkstr("\x53"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString16(is)); } // Test deserialize a string with incomplete data { std::istringstream is(mkstr("\x00\x55 abcdefg"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeString(is)); - } -} - -void TestSerialization::testSerializeWideString() -{ - // Test blank string - UASSERT(serializeWideString(L"") == mkstr("\0\0")); - - // Test basic string - UASSERT(serializeWideString(utf8_to_wide("Hello world!")) == - mkstr("\0\14\0H\0e\0l\0l\0o\0 \0w\0o\0r\0l\0d\0!")); - - // Test character range - UASSERT(serializeWideString(teststring2_w) == - mkstr("\1\0") + teststring2_w_encoded); -} - -void TestSerialization::testDeSerializeWideString() -{ - // Test deserialize - { - std::istringstream is(serializeWideString(teststring2_w), std::ios::binary); - UASSERT(deSerializeWideString(is) == teststring2_w); - UASSERT(!is.eof()); - is.get(); - UASSERT(is.eof()); - } - - // Test deserialize an incomplete length specifier - { - std::istringstream is(mkstr("\x53"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeWideString(is)); - } - - // Test deserialize a string with an incomplete character - { - std::istringstream is(mkstr("\x00\x07\0a\0b\0c\0d\0e\0f\0"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeWideString(is)); - } - - // Test deserialize a string with incomplete data - { - std::istringstream is(mkstr("\x00\x08\0a\0b\0c\0d\0e\0f"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeWideString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString16(is)); } } void TestSerialization::testSerializeLongString() { // Test blank string - UASSERT(serializeLongString("") == mkstr("\0\0\0\0")); + UASSERT(serializeString32("") == mkstr("\0\0\0\0")); // Test basic string - UASSERT(serializeLongString("Hello world!") == mkstr("\0\0\0\14Hello world!")); + UASSERT(serializeString32("Hello world!") == mkstr("\0\0\0\14Hello world!")); // Test character range - UASSERT(serializeLongString(teststring2) == mkstr("\0\0\1\0") + teststring2); + UASSERT(serializeString32(teststring2) == mkstr("\0\0\1\0") + teststring2); } void TestSerialization::testDeSerializeLongString() { // Test deserialize { - std::istringstream is(serializeLongString(teststring2), std::ios::binary); - UASSERT(deSerializeLongString(is) == teststring2); + std::istringstream is(serializeString32(teststring2), std::ios::binary); + UASSERT(deSerializeString32(is) == teststring2); UASSERT(!is.eof()); is.get(); UASSERT(is.eof()); @@ -206,19 +150,19 @@ void TestSerialization::testDeSerializeLongString() // Test deserialize an incomplete length specifier { std::istringstream is(mkstr("\x53"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeLongString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString32(is)); } // Test deserialize a string with incomplete data { std::istringstream is(mkstr("\x00\x00\x00\x05 abc"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeLongString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString32(is)); } // Test deserialize a string with a length too large { std::istringstream is(mkstr("\xFF\xFF\xFF\xFF blah"), std::ios::binary); - EXCEPTION_CHECK(SerializationError, deSerializeLongString(is)); + EXCEPTION_CHECK(SerializationError, deSerializeString32(is)); } } @@ -268,25 +212,6 @@ void TestSerialization::testSerializeJsonString() UASSERT(is.eof()); } -void TestSerialization::testSerializeHex() -{ - // Test blank string - UASSERT(serializeHexString("") == ""); - UASSERT(serializeHexString("", true) == ""); - - // Test basic string - UASSERT(serializeHexString("Hello world!") == - "48656c6c6f20776f726c6421"); - UASSERT(serializeHexString("Hello world!", true) == - "48 65 6c 6c 6f 20 77 6f 72 6c 64 21"); - - // Test binary string - UASSERT(serializeHexString(mkstr("\x00\x0a\xb0\x63\x1f\x00\xff")) == - "000ab0631f00ff"); - UASSERT(serializeHexString(mkstr("\x00\x0a\xb0\x63\x1f\x00\xff"), true) == - "00 0a b0 63 1f 00 ff"); -} - void TestSerialization::testStreamRead() { @@ -310,19 +235,17 @@ void TestSerialization::testStreamRead() UASSERT(readF1000(is) == F1000_MIN); UASSERT(readF1000(is) == F1000_MAX); - UASSERT(deSerializeString(is) == "foobar!"); + UASSERT(deSerializeString16(is) == "foobar!"); UASSERT(readV2S16(is) == v2s16(500, 500)); UASSERT(readV3S16(is) == v3s16(4207, 604, -30)); UASSERT(readV2S32(is) == v2s32(1920, 1080)); UASSERT(readV3S32(is) == v3s32(-400, 6400054, 290549855)); - UASSERT(deSerializeWideString(is) == L"\x02~woof~\x5455"); - UASSERT(readV3F1000(is) == v3f(500, 10024.2f, -192.54f)); UASSERT(readARGB8(is) == video::SColor(255, 128, 50, 128)); - UASSERT(deSerializeLongString(is) == "some longer string here"); + UASSERT(deSerializeString32(is) == "some longer string here"); UASSERT(is.rdbuf()->in_avail() == 2); UASSERT(readU16(is) == 0xF00D); @@ -350,7 +273,7 @@ void TestSerialization::testStreamWrite() writeF1000(os, F1000_MIN); writeF1000(os, F1000_MAX); - os << serializeString("foobar!"); + os << serializeString16("foobar!"); data = os.str(); UASSERT(data.size() < sizeof(test_serialized_data)); @@ -361,12 +284,10 @@ void TestSerialization::testStreamWrite() writeV2S32(os, v2s32(1920, 1080)); writeV3S32(os, v3s32(-400, 6400054, 290549855)); - os << serializeWideString(L"\x02~woof~\x5455"); - writeV3F1000(os, v3f(500, 10024.2f, -192.54f)); writeARGB8(os, video::SColor(255, 128, 50, 128)); - os << serializeLongString("some longer string here"); + os << serializeString32("some longer string here"); writeU16(os, 0xF00D); @@ -376,255 +297,6 @@ void TestSerialization::testStreamWrite() } -void TestSerialization::testVecPut() -{ - std::vector<u8> buf; - - putU8(&buf, 0x11); - putU16(&buf, 0x2233); - putU32(&buf, 0x44556677); - putU64(&buf, 0x8899AABBCCDDEEFFLL); - - putS8(&buf, -128); - putS16(&buf, 30000); - putS32(&buf, -6); - putS64(&buf, -43); - - putF1000(&buf, 53.53467f); - putF1000(&buf, -300000.32f); - putF1000(&buf, F1000_MIN); - putF1000(&buf, F1000_MAX); - - putString(&buf, "foobar!"); - - putV2S16(&buf, v2s16(500, 500)); - putV3S16(&buf, v3s16(4207, 604, -30)); - putV2S32(&buf, v2s32(1920, 1080)); - putV3S32(&buf, v3s32(-400, 6400054, 290549855)); - - putWideString(&buf, L"\x02~woof~\x5455"); - - putV3F1000(&buf, v3f(500, 10024.2f, -192.54f)); - putARGB8(&buf, video::SColor(255, 128, 50, 128)); - - putLongString(&buf, "some longer string here"); - - putU16(&buf, 0xF00D); - - UASSERT(buf.size() == sizeof(test_serialized_data)); - UASSERT(!memcmp(&buf[0], test_serialized_data, sizeof(test_serialized_data))); -} - - -void TestSerialization::testStringLengthLimits() -{ - std::vector<u8> buf; - std::string too_long(STRING_MAX_LEN + 1, 'A'); - std::string way_too_large(LONG_STRING_MAX_LEN + 1, 'B'); - std::wstring too_long_wide(WIDE_STRING_MAX_LEN + 1, L'C'); - - EXCEPTION_CHECK(SerializationError, putString(&buf, too_long)); - - putLongString(&buf, too_long); - too_long.resize(too_long.size() - 1); - putString(&buf, too_long); - - EXCEPTION_CHECK(SerializationError, putWideString(&buf, too_long_wide)); - too_long_wide.resize(too_long_wide.size() - 1); - putWideString(&buf, too_long_wide); -} - - -void TestSerialization::testBufReader() -{ - u8 u8_data; - u16 u16_data; - u32 u32_data; - u64 u64_data; - s8 s8_data; - s16 s16_data; - s32 s32_data; - s64 s64_data; - f32 f32_data, f32_data2, f32_data3, f32_data4; - video::SColor scolor_data; - v2s16 v2s16_data; - v3s16 v3s16_data; - v2s32 v2s32_data; - v3s32 v3s32_data; - v3f v3f_data; - std::string string_data; - std::wstring widestring_data; - std::string longstring_data; - u8 raw_data[10] = {0}; - - BufReader buf(test_serialized_data, sizeof(test_serialized_data)); - - // Try reading data like normal - UASSERT(buf.getU8() == 0x11); - UASSERT(buf.getU16() == 0x2233); - UASSERT(buf.getU32() == 0x44556677); - UASSERT(buf.getU64() == 0x8899AABBCCDDEEFFLL); - UASSERT(buf.getS8() == -128); - UASSERT(buf.getS16() == 30000); - UASSERT(buf.getS32() == -6); - UASSERT(buf.getS64() == -43); - UASSERT(buf.getF1000() == 53.534f); - UASSERT(buf.getF1000() == -300000.32f); - UASSERT(buf.getF1000() == F1000_MIN); - UASSERT(buf.getF1000() == F1000_MAX); - UASSERT(buf.getString() == "foobar!"); - UASSERT(buf.getV2S16() == v2s16(500, 500)); - UASSERT(buf.getV3S16() == v3s16(4207, 604, -30)); - UASSERT(buf.getV2S32() == v2s32(1920, 1080)); - UASSERT(buf.getV3S32() == v3s32(-400, 6400054, 290549855)); - UASSERT(buf.getWideString() == L"\x02~woof~\x5455"); - UASSERT(buf.getV3F1000() == v3f(500, 10024.2f, -192.54f)); - UASSERT(buf.getARGB8() == video::SColor(255, 128, 50, 128)); - UASSERT(buf.getLongString() == "some longer string here"); - - // Verify the offset and data is unchanged after a failed read - size_t orig_pos = buf.pos; - u32_data = 0; - UASSERT(buf.getU32NoEx(&u32_data) == false); - UASSERT(buf.pos == orig_pos); - UASSERT(u32_data == 0); - - // Now try the same for a failed string read - UASSERT(buf.getStringNoEx(&string_data) == false); - UASSERT(buf.pos == orig_pos); - UASSERT(string_data == ""); - - // Now try the same for a failed string read - UASSERT(buf.getWideStringNoEx(&widestring_data) == false); - UASSERT(buf.pos == orig_pos); - UASSERT(widestring_data == L""); - - UASSERT(buf.getU16() == 0xF00D); - - UASSERT(buf.remaining() == 0); - - // Check to make sure these each blow exceptions as they're supposed to - EXCEPTION_CHECK(SerializationError, buf.getU8()); - EXCEPTION_CHECK(SerializationError, buf.getU16()); - EXCEPTION_CHECK(SerializationError, buf.getU32()); - EXCEPTION_CHECK(SerializationError, buf.getU64()); - - EXCEPTION_CHECK(SerializationError, buf.getS8()); - EXCEPTION_CHECK(SerializationError, buf.getS16()); - EXCEPTION_CHECK(SerializationError, buf.getS32()); - EXCEPTION_CHECK(SerializationError, buf.getS64()); - - EXCEPTION_CHECK(SerializationError, buf.getF1000()); - EXCEPTION_CHECK(SerializationError, buf.getARGB8()); - - EXCEPTION_CHECK(SerializationError, buf.getV2S16()); - EXCEPTION_CHECK(SerializationError, buf.getV3S16()); - EXCEPTION_CHECK(SerializationError, buf.getV2S32()); - EXCEPTION_CHECK(SerializationError, buf.getV3S32()); - EXCEPTION_CHECK(SerializationError, buf.getV3F1000()); - - EXCEPTION_CHECK(SerializationError, buf.getString()); - EXCEPTION_CHECK(SerializationError, buf.getWideString()); - EXCEPTION_CHECK(SerializationError, buf.getLongString()); - EXCEPTION_CHECK(SerializationError, - buf.getRawData(raw_data, sizeof(raw_data))); - - // See if we can skip backwards - buf.pos = 5; - UASSERT(buf.getRawDataNoEx(raw_data, 3) == true); - UASSERT(raw_data[0] == 0x66); - UASSERT(raw_data[1] == 0x77); - UASSERT(raw_data[2] == 0x88); - - UASSERT(buf.getU32() == 0x99AABBCC); - UASSERT(buf.pos == 12); - - // Now let's try it all over again using the NoEx variants - buf.pos = 0; - - UASSERT(buf.getU8NoEx(&u8_data)); - UASSERT(buf.getU16NoEx(&u16_data)); - UASSERT(buf.getU32NoEx(&u32_data)); - UASSERT(buf.getU64NoEx(&u64_data)); - - UASSERT(buf.getS8NoEx(&s8_data)); - UASSERT(buf.getS16NoEx(&s16_data)); - UASSERT(buf.getS32NoEx(&s32_data)); - UASSERT(buf.getS64NoEx(&s64_data)); - - UASSERT(buf.getF1000NoEx(&f32_data)); - UASSERT(buf.getF1000NoEx(&f32_data2)); - UASSERT(buf.getF1000NoEx(&f32_data3)); - UASSERT(buf.getF1000NoEx(&f32_data4)); - - UASSERT(buf.getStringNoEx(&string_data)); - UASSERT(buf.getV2S16NoEx(&v2s16_data)); - UASSERT(buf.getV3S16NoEx(&v3s16_data)); - UASSERT(buf.getV2S32NoEx(&v2s32_data)); - UASSERT(buf.getV3S32NoEx(&v3s32_data)); - UASSERT(buf.getWideStringNoEx(&widestring_data)); - UASSERT(buf.getV3F1000NoEx(&v3f_data)); - UASSERT(buf.getARGB8NoEx(&scolor_data)); - - UASSERT(buf.getLongStringNoEx(&longstring_data)); - - // and make sure we got the correct data - UASSERT(u8_data == 0x11); - UASSERT(u16_data == 0x2233); - UASSERT(u32_data == 0x44556677); - UASSERT(u64_data == 0x8899AABBCCDDEEFFLL); - UASSERT(s8_data == -128); - UASSERT(s16_data == 30000); - UASSERT(s32_data == -6); - UASSERT(s64_data == -43); - UASSERT(f32_data == 53.534f); - UASSERT(f32_data2 == -300000.32f); - UASSERT(f32_data3 == F1000_MIN); - UASSERT(f32_data4 == F1000_MAX); - UASSERT(string_data == "foobar!"); - UASSERT(v2s16_data == v2s16(500, 500)); - UASSERT(v3s16_data == v3s16(4207, 604, -30)); - UASSERT(v2s32_data == v2s32(1920, 1080)); - UASSERT(v3s32_data == v3s32(-400, 6400054, 290549855)); - UASSERT(widestring_data == L"\x02~woof~\x5455"); - UASSERT(v3f_data == v3f(500, 10024.2f, -192.54f)); - UASSERT(scolor_data == video::SColor(255, 128, 50, 128)); - UASSERT(longstring_data == "some longer string here"); - - UASSERT(buf.remaining() == 2); - UASSERT(buf.getRawDataNoEx(raw_data, 3) == false); - UASSERT(buf.remaining() == 2); - UASSERT(buf.getRawDataNoEx(raw_data, 2) == true); - UASSERT(raw_data[0] == 0xF0); - UASSERT(raw_data[1] == 0x0D); - UASSERT(buf.remaining() == 0); - - // Make sure no more available data causes a failure - UASSERT(!buf.getU8NoEx(&u8_data)); - UASSERT(!buf.getU16NoEx(&u16_data)); - UASSERT(!buf.getU32NoEx(&u32_data)); - UASSERT(!buf.getU64NoEx(&u64_data)); - - UASSERT(!buf.getS8NoEx(&s8_data)); - UASSERT(!buf.getS16NoEx(&s16_data)); - UASSERT(!buf.getS32NoEx(&s32_data)); - UASSERT(!buf.getS64NoEx(&s64_data)); - - UASSERT(!buf.getF1000NoEx(&f32_data)); - UASSERT(!buf.getARGB8NoEx(&scolor_data)); - - UASSERT(!buf.getV2S16NoEx(&v2s16_data)); - UASSERT(!buf.getV3S16NoEx(&v3s16_data)); - UASSERT(!buf.getV2S32NoEx(&v2s32_data)); - UASSERT(!buf.getV3S32NoEx(&v3s32_data)); - UASSERT(!buf.getV3F1000NoEx(&v3f_data)); - - UASSERT(!buf.getStringNoEx(&string_data)); - UASSERT(!buf.getWideStringNoEx(&widestring_data)); - UASSERT(!buf.getLongStringNoEx(&longstring_data)); - UASSERT(!buf.getRawDataNoEx(raw_data, sizeof(raw_data))); -} - void TestSerialization::testFloatFormat() { FloatType type = getFloatSerializationType(); @@ -708,7 +380,7 @@ void TestSerialization::testFloatFormat() UASSERT(test_single(i)); } -const u8 TestSerialization::test_serialized_data[12 * 13 - 8] = { +const u8 TestSerialization::test_serialized_data[12 * 11 - 2] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x80, 0x75, 0x30, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x00, 0x00, 0xd1, 0x1e, 0xee, 0x1e, @@ -716,9 +388,7 @@ const u8 TestSerialization::test_serialized_data[12 * 13 - 8] = { 0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x21, 0x01, 0xf4, 0x01, 0xf4, 0x10, 0x6f, 0x02, 0x5c, 0xff, 0xe2, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x04, 0x38, 0xff, 0xff, 0xfe, 0x70, 0x00, 0x61, 0xa8, 0x36, 0x11, 0x51, 0x70, - 0x5f, 0x00, 0x08, 0x00, - 0x02, 0x00, 0x7e, 0x00, 'w', 0x00, 'o', 0x00, 'o', 0x00, 'f', 0x00, // \x02~woof~\x5455 - 0x7e, 0x54, 0x55, 0x00, 0x07, 0xa1, 0x20, 0x00, 0x98, 0xf5, 0x08, 0xff, + 0x5f, 0x00, 0x07, 0xa1, 0x20, 0x00, 0x98, 0xf5, 0x08, 0xff, 0xfd, 0x0f, 0xe4, 0xff, 0x80, 0x32, 0x80, 0x00, 0x00, 0x00, 0x17, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x65, 0x72, 0x65, 0xF0, 0x0D, diff --git a/src/unittest/test_servermodmanager.cpp b/src/unittest/test_servermodmanager.cpp index 799936757..e3edb0c32 100644 --- a/src/unittest/test_servermodmanager.cpp +++ b/src/unittest/test_servermodmanager.cpp @@ -169,6 +169,4 @@ void TestServerModManager::testGetModMediaPaths() std::vector<std::string> result; sm.getModsMediaPaths(result); UASSERTEQ(bool, result.empty(), false); - // We should have 5 folders for each mod (textures, media, locale, model, sounds) - UASSERTEQ(unsigned long, result.size() % 5, 0); } diff --git a/src/unittest/test_settings.cpp b/src/unittest/test_settings.cpp index aa56f3e06..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 <cmath> #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); @@ -149,15 +175,15 @@ void TestSettings::testAllSettings() UASSERT(group->getS16("a") == 5); UASSERT(fabs(group->getFloat("bb") - 2.5) < 0.001); - Settings *group3 = new Settings; - group3->set("cat", "meow"); - group3->set("dog", "woof"); + Settings group3; + group3.set("cat", "meow"); + group3.set("dog", "woof"); - Settings *group2 = new Settings; - group2->setS16("num_apples", 4); - group2->setS16("num_oranges", 53); - group2->setGroup("animals", group3); - group2->set("animals", "cute"); //destroys group 3 + Settings group2; + group2.setS16("num_apples", 4); + group2.setS16("num_oranges", 53); + group2.setGroup("animals", group3); + group2.set("animals", "cute"); //destroys group 3 s.setGroup("groupy_thing", group2); // Test set failure conditions @@ -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_threading.cpp b/src/unittest/test_threading.cpp index 8d4d814fd..65ef7c02d 100644 --- a/src/unittest/test_threading.cpp +++ b/src/unittest/test_threading.cpp @@ -31,7 +31,6 @@ public: void runTests(IGameDef *gamedef); void testStartStopWait(); - void testThreadKill(); void testAtomicSemaphoreThread(); }; @@ -40,7 +39,6 @@ static TestThreading g_test_instance; void TestThreading::runTests(IGameDef *gamedef) { TEST(testStartStopWait); - TEST(testThreadKill); TEST(testAtomicSemaphoreThread); } @@ -111,29 +109,6 @@ void TestThreading::testStartStopWait() } -void TestThreading::testThreadKill() -{ - SimpleTestThread *thread = new SimpleTestThread(300); - - UASSERT(thread->start() == true); - - // kill()ing is quite violent, so let's make sure our victim is sleeping - // before we do this... so we don't corrupt the rest of the program's state - sleep_ms(100); - UASSERT(thread->kill() == true); - - // The state of the thread object should be reset if all went well - UASSERT(thread->isRunning() == false); - UASSERT(thread->start() == true); - UASSERT(thread->stop() == true); - UASSERT(thread->wait() == true); - - // kill() after already waiting should fail. - UASSERT(thread->kill() == false); - - delete thread; -} - class AtomicTestThread : public Thread { public: 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 <typename T> +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<T> &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<T> &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/base64.cpp b/src/util/base64.cpp index c75f98598..6e1584410 100644 --- a/src/util/base64.cpp +++ b/src/util/base64.cpp @@ -34,8 +34,9 @@ static const std::string base64_chars = "0123456789+/"; -static inline bool is_base64(unsigned char c) { - return (isalnum(c) || (c == '+') || (c == '/')); +static inline bool is_base64(unsigned char c) +{ + return isalnum(c) || c == '+' || c == '/' || c == '='; } bool base64_is_valid(std::string const& s) diff --git a/src/util/md32_common.h b/src/util/md32_common.h index a4c2099c9..2c050b72a 100644 --- a/src/util/md32_common.h +++ b/src/util/md32_common.h @@ -301,7 +301,7 @@ int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len) { - const unsigned char *data = data_; + const unsigned char *data = (const unsigned char *)data_; unsigned char *p; HASH_LONG l; size_t n; diff --git a/src/util/serialize.cpp b/src/util/serialize.cpp index 5b276668d..d770101f2 100644 --- a/src/util/serialize.cpp +++ b/src/util/serialize.cpp @@ -30,86 +30,18 @@ with this program; if not, write to the Free Software Foundation, Inc., FloatType g_serialize_f32_type = FLOATTYPE_UNKNOWN; -//// -//// BufReader -//// - -bool BufReader::getStringNoEx(std::string *val) -{ - u16 num_chars; - if (!getU16NoEx(&num_chars)) - return false; - - if (pos + num_chars > size) { - pos -= sizeof(num_chars); - return false; - } - - val->assign((const char *)data + pos, num_chars); - pos += num_chars; - - return true; -} - -bool BufReader::getWideStringNoEx(std::wstring *val) -{ - u16 num_chars; - if (!getU16NoEx(&num_chars)) - return false; - - if (pos + num_chars * 2 > size) { - pos -= sizeof(num_chars); - return false; - } - - for (size_t i = 0; i != num_chars; i++) { - val->push_back(readU16(data + pos)); - pos += 2; - } - - return true; -} - -bool BufReader::getLongStringNoEx(std::string *val) -{ - u32 num_chars; - if (!getU32NoEx(&num_chars)) - return false; - - if (pos + num_chars > size) { - pos -= sizeof(num_chars); - return false; - } - - val->assign((const char *)data + pos, num_chars); - pos += num_chars; - - return true; -} - -bool BufReader::getRawDataNoEx(void *val, size_t len) -{ - if (pos + len > size) - return false; - - memcpy(val, data + pos, len); - pos += len; - - return true; -} - //// //// String //// -std::string serializeString(const std::string &plain) +std::string serializeString16(const std::string &plain) { std::string s; char buf[2]; if (plain.size() > STRING_MAX_LEN) - throw SerializationError("String too long for serializeString"); + throw SerializationError("String too long for serializeString16"); s.reserve(2 + plain.size()); writeU16((u8 *)&buf[0], plain.size()); @@ -119,14 +51,14 @@ std::string serializeString(const std::string &plain) return s; } -std::string deSerializeString(std::istream &is) +std::string deSerializeString16(std::istream &is) { std::string s; char buf[2]; is.read(buf, 2); if (is.gcount() != 2) - throw SerializationError("deSerializeString: size not read"); + throw SerializationError("deSerializeString16: size not read"); u16 s_size = readU16((u8 *)buf); if (s_size == 0) @@ -135,66 +67,17 @@ std::string deSerializeString(std::istream &is) s.resize(s_size); is.read(&s[0], s_size); if (is.gcount() != s_size) - throw SerializationError("deSerializeString: couldn't read all chars"); + throw SerializationError("deSerializeString16: couldn't read all chars"); return s; } -//// -//// Wide String -//// - -std::string serializeWideString(const std::wstring &plain) -{ - std::string s; - char buf[2]; - - if (plain.size() > WIDE_STRING_MAX_LEN) - throw SerializationError("String too long for serializeWideString"); - s.reserve(2 + 2 * plain.size()); - - writeU16((u8 *)buf, plain.size()); - s.append(buf, 2); - - for (wchar_t i : plain) { - writeU16((u8 *)buf, i); - s.append(buf, 2); - } - return s; -} - -std::wstring deSerializeWideString(std::istream &is) -{ - std::wstring s; - char buf[2]; - - is.read(buf, 2); - if (is.gcount() != 2) - throw SerializationError("deSerializeWideString: size not read"); - - u16 s_size = readU16((u8 *)buf); - if (s_size == 0) - return s; - - s.reserve(s_size); - for (u32 i = 0; i < s_size; i++) { - is.read(&buf[0], 2); - if (is.gcount() != 2) { - throw SerializationError( - "deSerializeWideString: couldn't read all chars"); - } - - wchar_t c16 = readU16((u8 *)buf); - s.append(&c16, 1); - } - return s; -} //// //// Long String //// -std::string serializeLongString(const std::string &plain) +std::string serializeString32(const std::string &plain) { std::string s; char buf[4]; @@ -209,7 +92,7 @@ std::string serializeLongString(const std::string &plain) return s; } -std::string deSerializeLongString(std::istream &is) +std::string deSerializeString32(std::istream &is) { std::string s; char buf[4]; @@ -404,284 +287,3 @@ std::string deSerializeJsonStringIfNeeded(std::istream &is) return tmp_os.str(); } -//// -//// String/Struct conversions -//// - -bool deSerializeStringToStruct(std::string valstr, - std::string format, void *out, size_t olen) -{ - size_t len = olen; - std::vector<std::string *> strs_alloced; - std::string *str; - char *f, *snext; - size_t pos; - - char *s = &valstr[0]; - char *buf = new char[len]; - char *bufpos = buf; - - char *fmtpos, *fmt = &format[0]; - while ((f = strtok_r(fmt, ",", &fmtpos)) && s) { - fmt = nullptr; - - bool is_unsigned = false; - int width = 0; - char valtype = *f; - - width = (int)strtol(f + 1, &f, 10); - if (width && valtype == 's') - valtype = 'i'; - - switch (valtype) { - case 'u': - is_unsigned = true; - /* FALLTHROUGH */ - case 'i': - if (width == 16) { - bufpos += PADDING(bufpos, u16); - if ((bufpos - buf) + sizeof(u16) <= len) { - if (is_unsigned) - *(u16 *)bufpos = (u16)strtoul(s, &s, 10); - else - *(s16 *)bufpos = (s16)strtol(s, &s, 10); - } - bufpos += sizeof(u16); - } else if (width == 32) { - bufpos += PADDING(bufpos, u32); - if ((bufpos - buf) + sizeof(u32) <= len) { - if (is_unsigned) - *(u32 *)bufpos = (u32)strtoul(s, &s, 10); - else - *(s32 *)bufpos = (s32)strtol(s, &s, 10); - } - bufpos += sizeof(u32); - } else if (width == 64) { - bufpos += PADDING(bufpos, u64); - if ((bufpos - buf) + sizeof(u64) <= len) { - if (is_unsigned) - *(u64 *)bufpos = (u64)strtoull(s, &s, 10); - else - *(s64 *)bufpos = (s64)strtoll(s, &s, 10); - } - bufpos += sizeof(u64); - } - s = strchr(s, ','); - break; - case 'b': - snext = strchr(s, ','); - if (snext) - *snext++ = 0; - - bufpos += PADDING(bufpos, bool); - if ((bufpos - buf) + sizeof(bool) <= len) - *(bool *)bufpos = is_yes(std::string(s)); - bufpos += sizeof(bool); - - s = snext; - break; - case 'f': - bufpos += PADDING(bufpos, float); - if ((bufpos - buf) + sizeof(float) <= len) - *(float *)bufpos = strtof(s, &s); - bufpos += sizeof(float); - - s = strchr(s, ','); - break; - case 's': - while (*s == ' ' || *s == '\t') - s++; - if (*s++ != '"') //error, expected string - goto fail; - snext = s; - - while (snext[0] && !(snext[-1] != '\\' && snext[0] == '"')) - snext++; - *snext++ = 0; - - bufpos += PADDING(bufpos, std::string *); - - str = new std::string(s); - pos = 0; - while ((pos = str->find("\\\"", pos)) != std::string::npos) - str->erase(pos, 1); - - if ((bufpos - buf) + sizeof(std::string *) <= len) - *(std::string **)bufpos = str; - bufpos += sizeof(std::string *); - strs_alloced.push_back(str); - - s = *snext ? snext + 1 : nullptr; - break; - case 'v': - while (*s == ' ' || *s == '\t') - s++; - if (*s++ != '(') //error, expected vector - goto fail; - - if (width == 2) { - bufpos += PADDING(bufpos, v2f); - - if ((bufpos - buf) + sizeof(v2f) <= len) { - v2f *v = (v2f *)bufpos; - v->X = strtof(s, &s); - s++; - v->Y = strtof(s, &s); - } - - bufpos += sizeof(v2f); - } else if (width == 3) { - bufpos += PADDING(bufpos, v3f); - if ((bufpos - buf) + sizeof(v3f) <= len) { - v3f *v = (v3f *)bufpos; - v->X = strtof(s, &s); - s++; - v->Y = strtof(s, &s); - s++; - v->Z = strtof(s, &s); - } - - bufpos += sizeof(v3f); - } - s = strchr(s, ','); - break; - default: //error, invalid format specifier - goto fail; - } - - if (s && *s == ',') - s++; - - if ((size_t)(bufpos - buf) > len) //error, buffer too small - goto fail; - } - - if (f && *f) { //error, mismatched number of fields and values -fail: - for (size_t i = 0; i != strs_alloced.size(); i++) - delete strs_alloced[i]; - delete[] buf; - return false; - } - - memcpy(out, buf, olen); - delete[] buf; - return true; -} - -// Casts *buf to a signed or unsigned fixed-width integer of 'w' width -#define SIGN_CAST(w, buf) (is_unsigned ? *((u##w *) buf) : *((s##w *) buf)) - -bool serializeStructToString(std::string *out, - std::string format, void *value) -{ - std::ostringstream os; - std::string str; - char *f; - size_t strpos; - - char *bufpos = (char *) value; - char *fmtpos, *fmt = &format[0]; - while ((f = strtok_r(fmt, ",", &fmtpos))) { - fmt = nullptr; - bool is_unsigned = false; - int width = 0; - char valtype = *f; - - width = (int)strtol(f + 1, &f, 10); - if (width && valtype == 's') - valtype = 'i'; - - switch (valtype) { - case 'u': - is_unsigned = true; - /* FALLTHROUGH */ - case 'i': - if (width == 16) { - bufpos += PADDING(bufpos, u16); - os << SIGN_CAST(16, bufpos); - bufpos += sizeof(u16); - } else if (width == 32) { - bufpos += PADDING(bufpos, u32); - os << SIGN_CAST(32, bufpos); - bufpos += sizeof(u32); - } else if (width == 64) { - bufpos += PADDING(bufpos, u64); - os << SIGN_CAST(64, bufpos); - bufpos += sizeof(u64); - } - break; - case 'b': - bufpos += PADDING(bufpos, bool); - os << std::boolalpha << *((bool *) bufpos); - bufpos += sizeof(bool); - break; - case 'f': - bufpos += PADDING(bufpos, float); - os << *((float *) bufpos); - bufpos += sizeof(float); - break; - case 's': - bufpos += PADDING(bufpos, std::string *); - str = **((std::string **) bufpos); - - strpos = 0; - while ((strpos = str.find('"', strpos)) != std::string::npos) { - str.insert(strpos, 1, '\\'); - strpos += 2; - } - - os << str; - bufpos += sizeof(std::string *); - break; - case 'v': - if (width == 2) { - bufpos += PADDING(bufpos, v2f); - v2f *v = (v2f *) bufpos; - os << '(' << v->X << ", " << v->Y << ')'; - bufpos += sizeof(v2f); - } else { - bufpos += PADDING(bufpos, v3f); - v3f *v = (v3f *) bufpos; - os << '(' << v->X << ", " << v->Y << ", " << v->Z << ')'; - bufpos += sizeof(v3f); - } - break; - default: - return false; - } - os << ", "; - } - *out = os.str(); - - // Trim off the trailing comma and space - if (out->size() >= 2) - out->resize(out->size() - 2); - - return true; -} - -#undef SIGN_CAST - -//// -//// Other -//// - -std::string serializeHexString(const std::string &data, bool insert_spaces) -{ - std::string result; - result.reserve(data.size() * (2 + insert_spaces)); - - static const char hex_chars[] = "0123456789abcdef"; - - const size_t len = data.size(); - for (size_t i = 0; i != len; i++) { - u8 byte = data[i]; - result.push_back(hex_chars[(byte >> 4) & 0x0F]); - result.push_back(hex_chars[(byte >> 0) & 0x0F]); - if (insert_spaces && i != len - 1) - result.push_back(' '); - } - - return result; -} diff --git a/src/util/serialize.h b/src/util/serialize.h index a4b5a234a..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) @@ -440,22 +440,16 @@ MAKE_STREAM_WRITE_FXN(video::SColor, ARGB8, 4); //// // Creates a string with the length as the first two bytes -std::string serializeString(const std::string &plain); - -// Creates a string with the length as the first two bytes from wide string -std::string serializeWideString(const std::wstring &plain); +std::string serializeString16(const std::string &plain); // Reads a string with the length as the first two bytes -std::string deSerializeString(std::istream &is); - -// Reads a wide string with the length as the first two bytes -std::wstring deSerializeWideString(std::istream &is); +std::string deSerializeString16(std::istream &is); // Creates a string with the length as the first four bytes -std::string serializeLongString(const std::string &plain); +std::string serializeString32(const std::string &plain); // Reads a string with the length as the first four bytes -std::string deSerializeLongString(std::istream &is); +std::string deSerializeString32(std::istream &is); // Creates a string encoded in JSON format (almost equivalent to a C string literal) std::string serializeJsonString(const std::string &plain); @@ -469,239 +463,3 @@ std::string serializeJsonStringIfNeeded(const std::string &s); // Parses a string serialized by serializeJsonStringIfNeeded. std::string deSerializeJsonStringIfNeeded(std::istream &is); - -// Creates a string consisting of the hexadecimal representation of `data` -std::string serializeHexString(const std::string &data, bool insert_spaces=false); - -// Creates a string containing comma delimited values of a struct whose layout is -// described by the parameter format -bool serializeStructToString(std::string *out, - std::string format, void *value); - -// Reads a comma delimited string of values into a struct whose layout is -// decribed by the parameter format -bool deSerializeStringToStruct(std::string valstr, - std::string format, void *out, size_t olen); - -//// -//// BufReader -//// - -#define MAKE_BUFREADER_GETNOEX_FXN(T, N, S) \ - inline bool get ## N ## NoEx(T *val) \ - { \ - if (pos + S > size) \ - return false; \ - *val = read ## N(data + pos); \ - pos += S; \ - return true; \ - } - -#define MAKE_BUFREADER_GET_FXN(T, N) \ - inline T get ## N() \ - { \ - T val; \ - if (!get ## N ## NoEx(&val)) \ - throw SerializationError("Attempted read past end of data"); \ - return val; \ - } - -class BufReader { -public: - BufReader(const u8 *data_, size_t size_) : - data(data_), - size(size_) - { - } - - MAKE_BUFREADER_GETNOEX_FXN(u8, U8, 1); - MAKE_BUFREADER_GETNOEX_FXN(u16, U16, 2); - MAKE_BUFREADER_GETNOEX_FXN(u32, U32, 4); - MAKE_BUFREADER_GETNOEX_FXN(u64, U64, 8); - MAKE_BUFREADER_GETNOEX_FXN(s8, S8, 1); - MAKE_BUFREADER_GETNOEX_FXN(s16, S16, 2); - MAKE_BUFREADER_GETNOEX_FXN(s32, S32, 4); - MAKE_BUFREADER_GETNOEX_FXN(s64, S64, 8); - MAKE_BUFREADER_GETNOEX_FXN(f32, F1000, 4); - MAKE_BUFREADER_GETNOEX_FXN(v2s16, V2S16, 4); - MAKE_BUFREADER_GETNOEX_FXN(v3s16, V3S16, 6); - MAKE_BUFREADER_GETNOEX_FXN(v2s32, V2S32, 8); - MAKE_BUFREADER_GETNOEX_FXN(v3s32, V3S32, 12); - MAKE_BUFREADER_GETNOEX_FXN(v3f, V3F1000, 12); - MAKE_BUFREADER_GETNOEX_FXN(video::SColor, ARGB8, 4); - - bool getStringNoEx(std::string *val); - bool getWideStringNoEx(std::wstring *val); - bool getLongStringNoEx(std::string *val); - bool getRawDataNoEx(void *data, size_t len); - - MAKE_BUFREADER_GET_FXN(u8, U8); - MAKE_BUFREADER_GET_FXN(u16, U16); - MAKE_BUFREADER_GET_FXN(u32, U32); - MAKE_BUFREADER_GET_FXN(u64, U64); - MAKE_BUFREADER_GET_FXN(s8, S8); - MAKE_BUFREADER_GET_FXN(s16, S16); - MAKE_BUFREADER_GET_FXN(s32, S32); - MAKE_BUFREADER_GET_FXN(s64, S64); - MAKE_BUFREADER_GET_FXN(f32, F1000); - MAKE_BUFREADER_GET_FXN(v2s16, V2S16); - MAKE_BUFREADER_GET_FXN(v3s16, V3S16); - MAKE_BUFREADER_GET_FXN(v2s32, V2S32); - MAKE_BUFREADER_GET_FXN(v3s32, V3S32); - MAKE_BUFREADER_GET_FXN(v3f, V3F1000); - MAKE_BUFREADER_GET_FXN(video::SColor, ARGB8); - MAKE_BUFREADER_GET_FXN(std::string, String); - MAKE_BUFREADER_GET_FXN(std::wstring, WideString); - MAKE_BUFREADER_GET_FXN(std::string, LongString); - - inline void getRawData(void *val, size_t len) - { - if (!getRawDataNoEx(val, len)) - throw SerializationError("Attempted read past end of data"); - } - - inline size_t remaining() - { - assert(pos <= size); - return size - pos; - } - - const u8 *data; - size_t size; - size_t pos = 0; -}; - -#undef MAKE_BUFREADER_GET_FXN -#undef MAKE_BUFREADER_GETNOEX_FXN - - -//// -//// Vector-based write routines -//// - -inline void putU8(std::vector<u8> *dest, u8 val) -{ - dest->push_back((val >> 0) & 0xFF); -} - -inline void putU16(std::vector<u8> *dest, u16 val) -{ - dest->push_back((val >> 8) & 0xFF); - dest->push_back((val >> 0) & 0xFF); -} - -inline void putU32(std::vector<u8> *dest, u32 val) -{ - dest->push_back((val >> 24) & 0xFF); - dest->push_back((val >> 16) & 0xFF); - dest->push_back((val >> 8) & 0xFF); - dest->push_back((val >> 0) & 0xFF); -} - -inline void putU64(std::vector<u8> *dest, u64 val) -{ - dest->push_back((val >> 56) & 0xFF); - dest->push_back((val >> 48) & 0xFF); - dest->push_back((val >> 40) & 0xFF); - dest->push_back((val >> 32) & 0xFF); - dest->push_back((val >> 24) & 0xFF); - dest->push_back((val >> 16) & 0xFF); - dest->push_back((val >> 8) & 0xFF); - dest->push_back((val >> 0) & 0xFF); -} - -inline void putS8(std::vector<u8> *dest, s8 val) -{ - putU8(dest, val); -} - -inline void putS16(std::vector<u8> *dest, s16 val) -{ - putU16(dest, val); -} - -inline void putS32(std::vector<u8> *dest, s32 val) -{ - putU32(dest, val); -} - -inline void putS64(std::vector<u8> *dest, s64 val) -{ - putU64(dest, val); -} - -inline void putF1000(std::vector<u8> *dest, f32 val) -{ - putS32(dest, val * FIXEDPOINT_FACTOR); -} - -inline void putV2S16(std::vector<u8> *dest, v2s16 val) -{ - putS16(dest, val.X); - putS16(dest, val.Y); -} - -inline void putV3S16(std::vector<u8> *dest, v3s16 val) -{ - putS16(dest, val.X); - putS16(dest, val.Y); - putS16(dest, val.Z); -} - -inline void putV2S32(std::vector<u8> *dest, v2s32 val) -{ - putS32(dest, val.X); - putS32(dest, val.Y); -} - -inline void putV3S32(std::vector<u8> *dest, v3s32 val) -{ - putS32(dest, val.X); - putS32(dest, val.Y); - putS32(dest, val.Z); -} - -inline void putV3F1000(std::vector<u8> *dest, v3f val) -{ - putF1000(dest, val.X); - putF1000(dest, val.Y); - putF1000(dest, val.Z); -} - -inline void putARGB8(std::vector<u8> *dest, video::SColor val) -{ - putU32(dest, val.color); -} - -inline void putString(std::vector<u8> *dest, const std::string &val) -{ - if (val.size() > STRING_MAX_LEN) - throw SerializationError("String too long"); - - putU16(dest, val.size()); - dest->insert(dest->end(), val.begin(), val.end()); -} - -inline void putWideString(std::vector<u8> *dest, const std::wstring &val) -{ - if (val.size() > WIDE_STRING_MAX_LEN) - throw SerializationError("String too long"); - - putU16(dest, val.size()); - for (size_t i = 0; i != val.size(); i++) - putU16(dest, val[i]); -} - -inline void putLongString(std::vector<u8> *dest, const std::string &val) -{ - if (val.size() > LONG_STRING_MAX_LEN) - throw SerializationError("String too long"); - - putU32(dest, val.size()); - dest->insert(dest->end(), val.begin(), val.end()); -} - -inline void putRawData(std::vector<u8> *dest, const void *src, size_t len) -{ - dest->insert(dest->end(), (u8 *)src, (u8 *)src + len); -} diff --git a/src/util/sha256.c b/src/util/sha256.c index 4241f31f3..5c8266f9a 100644 --- a/src/util/sha256.c +++ b/src/util/sha256.c @@ -18,13 +18,13 @@ const char SHA256_version[] = "SHA-256" OPENSSL_VERSION_PTEXT; unsigned static char cleanse_ctr = 0; static void OPENSSL_cleanse(void *ptr, size_t len) { - unsigned char *p = ptr; + unsigned char *p = (unsigned char *)ptr; size_t loop = len, ctr = cleanse_ctr; while (loop--) { *(p++) = (unsigned char)ctr; ctr += (17 + ((size_t)p & 0xF)); } - p = memchr(ptr, (unsigned char)ctr, len); + p = (unsigned char *)memchr(ptr, (unsigned char)ctr, len); if (p) ctr += (63 + (size_t)p); cleanse_ctr = (unsigned char)ctr; @@ -262,7 +262,7 @@ static void sha256_block_data_order(SHA256_CTX *ctx, const void *in, unsigned MD32_REG_T a, b, c, d, e, f, g, h, s0, s1, T1; SHA_LONG X[16]; int i; - const unsigned char *data = in; + const unsigned char *data = (const unsigned char *)in; const union { long one; char little; 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 6e1db798c..611ad35cb 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "translation.h" #include <algorithm> +#include <array> #include <sstream> #include <iomanip> #include <map> @@ -49,8 +50,8 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color #ifndef _WIN32 -bool convert(const char *to, const char *from, char *outbuf, - size_t outbuf_size, char *inbuf, size_t inbuf_size) +static bool convert(const char *to, const char *from, char *outbuf, + size_t *outbuf_size, char *inbuf, size_t inbuf_size) { iconv_t cd = iconv_open(to, from); @@ -59,15 +60,14 @@ bool convert(const char *to, const char *from, char *outbuf, #else char *inbuf_ptr = inbuf; #endif - char *outbuf_ptr = outbuf; size_t *inbuf_left_ptr = &inbuf_size; - size_t *outbuf_left_ptr = &outbuf_size; + const size_t old_outbuf_size = *outbuf_size; size_t old_size = inbuf_size; while (inbuf_size > 0) { - iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_left_ptr); + iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_size); if (inbuf_size == old_size) { iconv_close(cd); return false; @@ -76,11 +76,12 @@ bool convert(const char *to, const char *from, char *outbuf, } iconv_close(cd); + *outbuf_size = old_outbuf_size - *outbuf_size; return true; } #ifdef __ANDROID__ -// Android need manual caring to support the full character set possible with wchar_t +// On Android iconv disagrees how big a wchar_t is for whatever reason const char *DEFAULT_ENCODING = "UTF-32LE"; #else const char *DEFAULT_ENCODING = "WCHAR_T"; @@ -88,58 +89,52 @@ const char *DEFAULT_ENCODING = "WCHAR_T"; std::wstring utf8_to_wide(const std::string &input) { - size_t inbuf_size = input.length() + 1; + const size_t inbuf_size = input.length(); // maximum possible size, every character is sizeof(wchar_t) bytes - size_t outbuf_size = (input.length() + 1) * sizeof(wchar_t); + size_t outbuf_size = input.length() * sizeof(wchar_t); - char *inbuf = new char[inbuf_size]; + char *inbuf = new char[inbuf_size]; // intentionally NOT null-terminated memcpy(inbuf, input.c_str(), inbuf_size); - char *outbuf = new char[outbuf_size]; - memset(outbuf, 0, outbuf_size); + std::wstring out; + out.resize(outbuf_size / sizeof(wchar_t)); #ifdef __ANDROID__ - // Android need manual caring to support the full character set possible with wchar_t SANITY_CHECK(sizeof(wchar_t) == 4); #endif - if (!convert(DEFAULT_ENCODING, "UTF-8", outbuf, outbuf_size, inbuf, inbuf_size)) { + char *outbuf = reinterpret_cast<char*>(&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"<invalid UTF-8 string>"; } - 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 "<invalid wstring>"; + return "<invalid wide string>"; } - std::string out(outbuf); - delete[] inbuf; - delete[] outbuf; + out.resize(outbuf_size); return out; } @@ -171,74 +166,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"<<std::endl; - } else { - nstr = new wchar_t[nResult]; - MultiByteToWideChar(CP_UTF8, 0, (LPCSTR) str, -1, (WCHAR *) nstr, nResult); - } -#else - size_t len = strlen(str); - nstr = new wchar_t[len + 1]; - - std::wstring intermediate = narrow_to_wide(str); - memset(nstr, 0, (len + 1) * sizeof(wchar_t)); - memcpy(nstr, intermediate.c_str(), len * sizeof(wchar_t)); -#endif - - return nstr; -} - -std::wstring narrow_to_wide(const std::string &mbs) { -#ifdef __ANDROID__ - return utf8_to_wide(mbs); -#else - size_t wcl = mbs.size(); - Buffer<wchar_t> wcs(wcl + 1); - size_t len = mbstowcs(*wcs, mbs.c_str(), wcl); - if (len == (size_t)(-1)) - return L"<invalid multibyte string>"; - 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<char> 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) { @@ -632,7 +568,7 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color color_name = value; } - color_name = lowercase(value); + color_name = lowercase(color_name); std::map<const std::string, unsigned>::const_iterator it; it = named_colors.colors.find(color_name); @@ -765,7 +701,8 @@ void translate_string(const std::wstring &s, Translations *translations, } else { // This is an escape sequence *inside* the template string to translate itself. // This should not happen, show an error message. - errorstream << "Ignoring escape sequence '" << wide_to_narrow(escape_sequence) << "' in translation" << std::endl; + errorstream << "Ignoring escape sequence '" + << wide_to_utf8(escape_sequence) << "' in translation" << std::endl; } } @@ -889,3 +826,70 @@ std::wstring translate_string(const std::wstring &s) return translate_string(s, g_client_translations); #endif } + +static const std::array<std::wstring, 22> disallowed_dir_names = { + // Problematic filenames from here: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#file-and-directory-names + L"CON", + L"PRN", + L"AUX", + L"NUL", + L"COM1", + L"COM2", + L"COM3", + L"COM4", + L"COM5", + L"COM6", + L"COM7", + L"COM8", + L"COM9", + L"LPT1", + L"LPT2", + L"LPT3", + L"LPT4", + L"LPT5", + L"LPT6", + L"LPT7", + L"LPT8", + L"LPT9", +}; + +/** + * List of characters that are blacklisted from created directories + */ +static const std::wstring disallowed_path_chars = L"<>:\"/\\|?*."; + +/** + * Sanitize the name of a new directory. This consists of two stages: + * 1. Check for 'reserved filenames' that can't be used on some filesystems + * and add a prefix to them + * 2. Remove 'unsafe' characters from the name by replacing them with '_' + */ +std::string sanitizeDirName(const std::string &str, const std::string &optional_prefix) +{ + std::wstring safe_name = utf8_to_wide(str); + + for (std::wstring disallowed_name : disallowed_dir_names) { + if (str_equal(safe_name, disallowed_name, true)) { + safe_name = utf8_to_wide(optional_prefix) + safe_name; + break; + } + } + + for (unsigned long i = 0; i < safe_name.length(); i++) { + bool is_valid = true; + + // Unlikely, but control characters should always be blacklisted + if (safe_name[i] < 32) { + is_valid = false; + } else if (safe_name[i] < 128) { + is_valid = disallowed_path_chars.find_first_of(safe_name[i]) + == std::wstring::npos; + } + + if (!is_valid) + safe_name[i] = '_'; + } + + return wide_to_utf8(safe_name); +} diff --git a/src/util/string.h b/src/util/string.h index 185fb55e2..d4afcaec8 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 @@ -746,3 +720,11 @@ inline irr::core::stringw utf8_to_stringw(const std::string &input) std::wstring str = utf8_to_wide(input); return irr::core::stringw(str.c_str()); } + +/** + * Sanitize the name of a new directory. This consists of two stages: + * 1. Check for 'reserved filenames' that can't be used on some filesystems + * and prefix them + * 2. Remove 'unsafe' characters from the name by replacing them with '_' + */ +std::string sanitizeDirName(const std::string &str, const std::string &optional_prefix); 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/textures/base/pack/cdb_add.png b/textures/base/pack/cdb_add.png Binary files differnew file mode 100644 index 000000000..3e3d067e3 --- /dev/null +++ b/textures/base/pack/cdb_add.png diff --git a/textures/base/pack/cdb_clear.png b/textures/base/pack/cdb_clear.png Binary files differnew file mode 100644 index 000000000..4490d41cb --- /dev/null +++ b/textures/base/pack/cdb_clear.png diff --git a/textures/base/pack/cdb_downloading.png b/textures/base/pack/cdb_downloading.png Binary files differnew file mode 100644 index 000000000..8cba383cc --- /dev/null +++ b/textures/base/pack/cdb_downloading.png diff --git a/textures/base/pack/cdb_queued.png b/textures/base/pack/cdb_queued.png Binary files differnew file mode 100644 index 000000000..6972f7fb8 --- /dev/null +++ b/textures/base/pack/cdb_queued.png diff --git a/textures/base/pack/cdb_update.png b/textures/base/pack/cdb_update.png Binary files differnew file mode 100644 index 000000000..262e42d3b --- /dev/null +++ b/textures/base/pack/cdb_update.png diff --git a/textures/base/pack/cdb_viewonline.png b/textures/base/pack/cdb_viewonline.png Binary files differnew file mode 100644 index 000000000..ae2a146b8 --- /dev/null +++ b/textures/base/pack/cdb_viewonline.png diff --git a/textures/base/pack/clear.png b/textures/base/pack/clear.png Binary files differnew file mode 100644 index 000000000..9244264ad --- /dev/null +++ b/textures/base/pack/clear.png diff --git a/textures/base/pack/no_texture_airlike.png b/textures/base/pack/no_texture_airlike.png Binary files differnew file mode 100644 index 000000000..634ee8ca5 --- /dev/null +++ b/textures/base/pack/no_texture_airlike.png diff --git a/textures/base/pack/search.png b/textures/base/pack/search.png Binary files differnew file mode 100644 index 000000000..aace8044a --- /dev/null +++ b/textures/base/pack/search.png 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 '/\<release/s/\(version\)="[^"]*"/\1="'"$RELEASE_VERSION"'"/' misc/net.minetest.minetest.appdata.xml - - RELEASE_DATE=`date +%Y-%m-%d` - sed -i 's/\(<release date\)="[^"]*"/\1="'"$RELEASE_DATE"'"/' misc/net.minetest.minetest.appdata.xml git add -f CMakeLists.txt build/android/build.gradle misc/net.minetest.minetest.appdata.xml @@ -47,20 +47,24 @@ perform_release() { back_to_devel() { echo 'Creating "return back to development" commit' + # Update CMakeList.txt versions sed -i -re 's/^set\(DEVELOPMENT_BUILD FALSE\)$/set(DEVELOPMENT_BUILD TRUE)/' CMakeLists.txt - sed -i -re "s/^set\(VERSION_MAJOR [0-9]+\)$/set(VERSION_MAJOR $NEXT_VERSION_MAJOR)/" CMakeLists.txt - sed -i -re "s/^set\(VERSION_MINOR [0-9]+\)$/set(VERSION_MINOR $NEXT_VERSION_MINOR)/" CMakeLists.txt - sed -i -re "s/^set\(VERSION_PATCH [0-9]+\)$/set(VERSION_PATCH $NEXT_VERSION_PATCH)/" CMakeLists.txt - sed -i -re "1s/[0-9]+\.[0-9]+\.[0-9]+/$NEXT_VERSION/g" doc/menu_lua_api.txt + # Update Android versions + sed -i 's/set("versionExtra", "")/set("versionExtra", "-dev")/' build/android/build.gradle + sed -i -re "s/set\(\"versionMajor\", [0-9]+\)/set(\"versionMajor\", $NEXT_VERSION_MAJOR)/" build/android/build.gradle + sed -i -re "s/set\(\"versionMinor\", [0-9]+\)/set(\"versionMinor\", $NEXT_VERSION_MINOR)/" build/android/build.gradle + sed -i -re "s/set\(\"versionPatch\", [0-9]+\)/set(\"versionPatch\", $NEXT_VERSION_PATCH)/" build/android/build.gradle + # Update doc versions + sed -i -re "1s/[0-9]+\.[0-9]+\.[0-9]+/$NEXT_VERSION/g" doc/menu_lua_api.txt sed -i -re "1s/[0-9]+\.[0-9]+\.[0-9]+/$NEXT_VERSION/g" doc/client_lua_api.txt - git add -f CMakeLists.txt doc/menu_lua_api.txt doc/client_lua_api.txt - + # Commit + git add -f CMakeLists.txt build/android/build.gradle doc/menu_lua_api.txt doc/client_lua_api.txt git commit -m "Continue with $NEXT_VERSION-dev" } ################################## diff --git a/util/ci/clang-format-whitelist.txt b/util/ci/clang-format-whitelist.txt index 3334257ae..75d99f4cd 100644 --- a/util/ci/clang-format-whitelist.txt +++ b/util/ci/clang-format-whitelist.txt @@ -183,6 +183,8 @@ src/gui/guiMainMenu.h src/gui/guiPasswordChange.cpp src/gui/guiPathSelectMenu.cpp src/gui/guiPathSelectMenu.h +src/gui/guiScene.cpp +src/gui/guiScene.h src/gui/guiScrollBar.cpp src/gui/guiSkin.cpp src/gui/guiSkin.h diff --git a/util/ci/common.sh b/util/ci/common.sh index a2e4beac9..7523fa7ff 100644 --- a/util/ci/common.sh +++ b/util/ci/common.sh @@ -7,13 +7,9 @@ install_linux_deps() { libhiredis-dev libogg-dev libgmp-dev libvorbis-dev libopenal-dev \ gettext libpq-dev postgresql-server-dev-all libleveldb-dev \ libcurl4-openssl-dev) - # for better coverage, build some jobs with luajit - if [ -n "$WITH_LUAJIT" ]; then - pkgs+=(libluajit-5.1-dev) - fi sudo apt-get update - sudo apt-get install -y --no-install-recommends ${pkgs[@]} + sudo apt-get install -y --no-install-recommends ${pkgs[@]} "$@" } # Mac OSX build only diff --git a/util/ci/lint.sh b/util/ci/lint.sh index 395445ca7..395445ca7 100644..100755 --- a/util/ci/lint.sh +++ b/util/ci/lint.sh diff --git a/util/gather_git_credits.py b/util/gather_git_credits.py new file mode 100755 index 000000000..1b2865182 --- /dev/null +++ b/util/gather_git_credits.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +import subprocess +import re +from collections import defaultdict + +codefiles = r"(\.[ch](pp)?|\.lua|\.md|\.cmake|\.java|\.gradle|Makefile|CMakeLists\.txt)$" + +# two minor versions back, for "Active Contributors" +REVS_ACTIVE = "5.2.0..HEAD" +# all time, for "Previous Contributors" +REVS_PREVIOUS = "HEAD" + +CUTOFF_ACTIVE = 3 +CUTOFF_PREVIOUS = 21 + +# For a description of the points system see: +# https://github.com/minetest/minetest/pull/9593#issue-398677198 + +def load(revs): + points = defaultdict(int) + p = subprocess.Popen(["git", "log", "--mailmap", "--pretty=format:%h %aN <%aE>", revs], + stdout=subprocess.PIPE, universal_newlines=True) + for line in p.stdout: + hash, author = line.strip().split(" ", 1) + n = 0 + + p2 = subprocess.Popen(["git", "show", "--numstat", "--pretty=format:", hash], + stdout=subprocess.PIPE, universal_newlines=True) + for line in p2.stdout: + added, deleted, filename = re.split(r"\s+", line.strip(), 2) + if re.search(codefiles, filename) and added != "-": + n += int(added) + p2.wait() + + if n == 0: + continue + if n > 1200: + n = 8 + elif n > 700: + n = 4 + elif n > 100: + n = 2 + else: + n = 1 + points[author] += n + p.wait() + + # Some authors duplicate? Don't add manual workarounds here, edit the .mailmap! + for author in ("updatepo.sh <script@mt>", "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/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 |