Compare commits
176 Commits
5.11.0-rc1
...
5.4.2-andr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25a56f11c8 | ||
|
|
8271c6481f | ||
|
|
83e26f839d | ||
|
|
c3f7905d82 | ||
|
|
05b54a8d18 | ||
|
|
e5cfdd369e | ||
|
|
c61d8cfb85 | ||
|
|
27f4195471 | ||
|
|
b2596eda32 | ||
|
|
9379440fcb | ||
|
|
b7c502c8d1 | ||
|
|
3c16d2d9b4 | ||
|
|
6cbc03a418 | ||
|
|
15ecc0fa65 | ||
|
|
7f2f8cdad1 | ||
|
|
a64646cb7b | ||
|
|
05f531c538 | ||
|
|
7ca335446b | ||
|
|
99e96a6581 | ||
|
|
7200d8f90e | ||
|
|
7038837aca | ||
|
|
541dcc0e5a | ||
|
|
1060b5aabf | ||
|
|
6ea73c4982 | ||
|
|
cff847273a | ||
|
|
e669f8db9b | ||
|
|
461cc30842 | ||
|
|
13d7cb957c | ||
|
|
47a439a905 | ||
|
|
053fb96694 | ||
|
|
b72c1f7367 | ||
|
|
e90738575f | ||
|
|
35718eec9c | ||
|
|
8285a53152 | ||
|
|
116fe7815b | ||
|
|
4c2efd7da3 | ||
|
|
1a433e3185 | ||
|
|
fa98a00916 | ||
|
|
f4dd46ad60 | ||
|
|
41825ccfbb | ||
|
|
4d1a5f12c0 | ||
|
|
cc58d56c6d | ||
|
|
683ef07312 | ||
|
|
c77c78cef5 | ||
|
|
88517030a4 | ||
|
|
45471e8e63 | ||
|
|
4e620beb75 | ||
|
|
e7ab875b47 | ||
|
|
be74ed9ab6 | ||
|
|
52b2eacd37 | ||
|
|
6b4210a2ea | ||
|
|
740d0da5ee | ||
|
|
34883d356e | ||
|
|
aeafcce314 | ||
|
|
ae1d82c325 | ||
|
|
1c89a07226 | ||
|
|
43e262f13e | ||
|
|
e5f802ab5c | ||
|
|
847860fc5c | ||
|
|
77e936445f | ||
|
|
41beb74ef7 | ||
|
|
67be50b706 | ||
|
|
cd840b7c9d | ||
|
|
07903949ec | ||
|
|
d2156ddaad | ||
|
|
a84ff4b3ff | ||
|
|
c02f13d33f | ||
|
|
f6490859fd | ||
|
|
4b7816dbf4 | ||
|
|
86ffbc3ec5 | ||
|
|
67257f44a5 | ||
|
|
3086f5567a | ||
|
|
bb8acb095d | ||
|
|
24be3cbb5f | ||
|
|
9773191103 | ||
|
|
ddc703c3ec | ||
|
|
09ec204e4b | ||
|
|
8b6cafa0e0 | ||
|
|
1ee8be9d43 | ||
|
|
91bc190d21 | ||
|
|
4dc833b642 | ||
|
|
895e9f8d5c | ||
|
|
12906ff631 | ||
|
|
9c9bcff107 | ||
|
|
443ca5c63b | ||
|
|
1102b1fc4c | ||
|
|
0d089eab21 | ||
|
|
b44fada29e | ||
|
|
859ea160e6 | ||
|
|
1c49e2ffc0 | ||
|
|
140245c58d | ||
|
|
47adcced60 | ||
|
|
a2054deb12 | ||
|
|
30fdfd9ded | ||
|
|
a87a86eb92 | ||
|
|
49dfbcfbc8 | ||
|
|
c558a4f4f6 | ||
|
|
4f49a2248f | ||
|
|
4e57da42c1 | ||
|
|
4f6c9e206c | ||
|
|
699e1d4b77 | ||
|
|
fa2978b3b9 | ||
|
|
ffcdf741fc | ||
|
|
429d7f33d4 | ||
|
|
b6a229775e | ||
|
|
0a4580368a | ||
|
|
e5b191e1f1 | ||
|
|
a07acc067b | ||
|
|
01e763f879 | ||
|
|
a95e75261a | ||
|
|
dcaa7ac609 | ||
|
|
7d2ae10849 | ||
|
|
642cac3759 | ||
|
|
662af2edba | ||
|
|
6f97e15a8f | ||
|
|
ab2fa2ca9d | ||
|
|
4666c99b27 | ||
|
|
e38415c56d | ||
|
|
3f3fce4664 | ||
|
|
1407a7bc8a | ||
|
|
1d268f4b83 | ||
|
|
92aab79d27 | ||
|
|
0823bb1276 | ||
|
|
18e42efa01 | ||
|
|
0ea16328df | ||
|
|
b037efc5c6 | ||
|
|
839bb71389 | ||
|
|
2ef7df5cfe | ||
|
|
f5d2d79f75 | ||
|
|
8e5fa96ffc | ||
|
|
6dbbe07d50 | ||
|
|
3c23410753 | ||
|
|
8e35ab78b4 | ||
|
|
7f2911b7f0 | ||
|
|
d877e90301 | ||
|
|
93db4be726 | ||
|
|
1f419ad19f | ||
|
|
3c7f6508ad | ||
|
|
39449d4b63 | ||
|
|
28e05295fa | ||
|
|
60c18d3550 | ||
|
|
482ab186a2 | ||
|
|
4814195dc4 | ||
|
|
d215b7a10e | ||
|
|
0e52b78590 | ||
|
|
b3a9d607c4 | ||
|
|
c00081b62c | ||
|
|
5e4739b460 | ||
|
|
0d8f598df2 | ||
|
|
2ef04cc308 | ||
|
|
7a0884e2cd | ||
|
|
fa858530cc | ||
|
|
1c61fe5ed9 | ||
|
|
57409ef382 | ||
|
|
06ba826803 | ||
|
|
6e6ef9489f | ||
|
|
45bbe39d1f | ||
|
|
6c9fc13083 | ||
|
|
4c8a642388 | ||
|
|
6208c9d64f | ||
|
|
76325d0ba9 | ||
|
|
cf1802a6de | ||
|
|
538a7b12bd | ||
|
|
57e0f52aaa | ||
|
|
1ae0335b62 | ||
|
|
ca1bff6b66 | ||
|
|
10cc62d2ca | ||
|
|
dd451a8a00 | ||
|
|
444ec1e412 | ||
|
|
82739f4d7d | ||
|
|
19825d853e | ||
|
|
d8ece2e3e9 | ||
|
|
bf4deb0ce6 | ||
|
|
da4739a26c | ||
|
|
fc24bf0915 | ||
|
|
9329b99cba |
@@ -1,6 +1,7 @@
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 8
|
||||
IndentWidth: 4
|
||||
UseTab: Always
|
||||
TabWidth: 4
|
||||
BreakBeforeBraces: Custom
|
||||
Standard: Cpp11
|
||||
BraceWrapping:
|
||||
@@ -16,7 +17,7 @@ BraceWrapping:
|
||||
FixNamespaceComments: false
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
IndentCaseLabels: false
|
||||
AccessModifierOffset: -8
|
||||
AccessModifierOffset: -4
|
||||
ColumnLimit: 90
|
||||
AllowShortFunctionsOnASingleLine: InlineOnly
|
||||
SortIncludes: false
|
||||
@@ -26,7 +27,7 @@ IncludeCategories:
|
||||
- Regex: '^<.*'
|
||||
Priority: 1
|
||||
AlignAfterOpenBracket: DontAlign
|
||||
ContinuationIndentWidth: 16
|
||||
ConstructorInitializerIndentWidth: 16
|
||||
ContinuationIndentWidth: 8
|
||||
ConstructorInitializerIndentWidth: 8
|
||||
BreakConstructorInitializers: AfterColon
|
||||
AlwaysBreakTemplateDeclarations: Yes
|
||||
|
||||
10
.github/workflows/android.yml
vendored
@@ -8,7 +8,7 @@ on:
|
||||
- 'lib/**.cpp'
|
||||
- 'src/**.[ch]'
|
||||
- 'src/**.cpp'
|
||||
- 'build/android/**'
|
||||
- 'android/**'
|
||||
- '.github/workflows/android.yml'
|
||||
pull_request:
|
||||
paths:
|
||||
@@ -16,7 +16,7 @@ on:
|
||||
- 'lib/**.cpp'
|
||||
- 'src/**.[ch]'
|
||||
- 'src/**.cpp'
|
||||
- 'build/android/**'
|
||||
- 'android/**'
|
||||
- '.github/workflows/android.yml'
|
||||
|
||||
jobs:
|
||||
@@ -29,14 +29,14 @@ jobs:
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Build with Gradle
|
||||
run: cd build/android; ./gradlew assemblerelease
|
||||
run: cd 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
|
||||
path: 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
|
||||
path: android/app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk
|
||||
|
||||
1
.gitignore
vendored
@@ -76,6 +76,7 @@ doc/mkdocs/docs/*.md
|
||||
doc/mkdocs/mkdocs.yml
|
||||
|
||||
## Build files
|
||||
build/
|
||||
CMakeFiles
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
|
||||
@@ -13,7 +13,7 @@ set(CLANG_MINIMUM_VERSION "3.4")
|
||||
# Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing
|
||||
set(VERSION_MAJOR 5)
|
||||
set(VERSION_MINOR 4)
|
||||
set(VERSION_PATCH 0)
|
||||
set(VERSION_PATCH 2)
|
||||
set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
|
||||
|
||||
# Change to false for releases
|
||||
|
||||
@@ -52,7 +52,7 @@ android {
|
||||
|
||||
task prepareAssets() {
|
||||
def assetsFolder = "build/assets"
|
||||
def projRoot = "../../.."
|
||||
def projRoot = "../.."
|
||||
def gameToCopy = "minetest_game"
|
||||
|
||||
copy {
|
||||
@@ -19,6 +19,8 @@
|
||||
android:label="@string/label"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:resizeableActivity="false"
|
||||
android:hasFragileUserData="true"
|
||||
android:isGame="true"
|
||||
tools:ignore="UnusedAttribute">
|
||||
|
||||
<meta-data
|
||||
@@ -146,4 +146,12 @@ public class GameActivity extends NativeActivity {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
|
||||
startActivity(browserIntent);
|
||||
}
|
||||
|
||||
public String getUserDataPath() {
|
||||
return Utils.getUserDataDirectory(this).getAbsolutePath();
|
||||
}
|
||||
|
||||
public String getCachePath() {
|
||||
return Utils.getCacheDirectory(this).getAbsolutePath();
|
||||
}
|
||||
}
|
||||
@@ -29,12 +29,14 @@ import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.view.View;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
@@ -43,11 +45,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static net.minetest.minetest.UnzipService.ACTION_FAILURE;
|
||||
import static net.minetest.minetest.UnzipService.ACTION_PROGRESS;
|
||||
import static net.minetest.minetest.UnzipService.ACTION_UPDATE;
|
||||
import static net.minetest.minetest.UnzipService.FAILURE;
|
||||
import static net.minetest.minetest.UnzipService.SUCCESS;
|
||||
import static net.minetest.minetest.UnzipService.*;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
private final static int versionCode = BuildConfig.VERSION_CODE;
|
||||
@@ -56,26 +54,40 @@ public class MainActivity extends AppCompatActivity {
|
||||
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
private static final String SETTINGS = "MinetestSettings";
|
||||
private static final String TAG_VERSION_CODE = "versionCode";
|
||||
|
||||
private ProgressBar mProgressBar;
|
||||
private TextView mTextView;
|
||||
private SharedPreferences sharedPreferences;
|
||||
|
||||
private final BroadcastReceiver myReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
int progress = 0;
|
||||
if (intent != null)
|
||||
@StringRes int message = 0;
|
||||
if (intent != null) {
|
||||
progress = intent.getIntExtra(ACTION_PROGRESS, 0);
|
||||
if (progress >= 0) {
|
||||
if (mProgressBar != null) {
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
mProgressBar.setProgress(progress);
|
||||
}
|
||||
mTextView.setVisibility(View.VISIBLE);
|
||||
} else if (progress == FAILURE) {
|
||||
message = intent.getIntExtra(ACTION_PROGRESS_MESSAGE, 0);
|
||||
}
|
||||
|
||||
if (progress == FAILURE) {
|
||||
Toast.makeText(MainActivity.this, intent.getStringExtra(ACTION_FAILURE), Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
} else if (progress == SUCCESS)
|
||||
} else if (progress == SUCCESS) {
|
||||
startNative();
|
||||
} else {
|
||||
if (mProgressBar != null) {
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
if (progress == INDETERMINATE) {
|
||||
mProgressBar.setIndeterminate(true);
|
||||
} else {
|
||||
mProgressBar.setIndeterminate(false);
|
||||
mProgressBar.setProgress(progress);
|
||||
}
|
||||
}
|
||||
mTextView.setVisibility(View.VISIBLE);
|
||||
if (message != 0)
|
||||
mTextView.setText(message);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -88,6 +100,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
mProgressBar = findViewById(R.id.progressBar);
|
||||
mTextView = findViewById(R.id.textView);
|
||||
sharedPreferences = getSharedPreferences(SETTINGS, Context.MODE_PRIVATE);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
||||
checkPermission();
|
||||
else
|
||||
@@ -120,6 +133,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
if (grantResult != PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(this, R.string.not_granted, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
}
|
||||
checkAppVersion();
|
||||
@@ -127,10 +141,27 @@ public class MainActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void checkAppVersion() {
|
||||
if (sharedPreferences.getInt(TAG_VERSION_CODE, 0) == versionCode)
|
||||
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
|
||||
Toast.makeText(this, R.string.no_external_storage, Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if (UnzipService.getIsRunning()) {
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
mProgressBar.setIndeterminate(true);
|
||||
mTextView.setVisibility(View.VISIBLE);
|
||||
} else if (sharedPreferences.getInt(TAG_VERSION_CODE, 0) == versionCode &&
|
||||
Utils.isInstallValid(this)) {
|
||||
startNative();
|
||||
else
|
||||
new CopyZipTask(this).execute(getCacheDir() + "/Minetest.zip");
|
||||
} else {
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
mProgressBar.setIndeterminate(true);
|
||||
mTextView.setVisibility(View.VISIBLE);
|
||||
|
||||
Intent intent = new Intent(this, UnzipService.class);
|
||||
startService(intent);
|
||||
}
|
||||
}
|
||||
|
||||
private void startNative() {
|
||||
@@ -0,0 +1,254 @@
|
||||
/*
|
||||
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.IntentService;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
import java.util.zip.ZipInputStream;
|
||||
|
||||
public class UnzipService extends IntentService {
|
||||
public static final String ACTION_UPDATE = "net.minetest.minetest.UPDATE";
|
||||
public static final String ACTION_PROGRESS = "net.minetest.minetest.PROGRESS";
|
||||
public static final String ACTION_PROGRESS_MESSAGE = "net.minetest.minetest.PROGRESS_MESSAGE";
|
||||
public static final String ACTION_FAILURE = "net.minetest.minetest.FAILURE";
|
||||
public static final int SUCCESS = -1;
|
||||
public static final int FAILURE = -2;
|
||||
public static final int INDETERMINATE = -3;
|
||||
private final int id = 1;
|
||||
private NotificationManager mNotifyManager;
|
||||
private boolean isSuccess = true;
|
||||
private String failureMessage;
|
||||
|
||||
private static boolean isRunning = false;
|
||||
public static synchronized boolean getIsRunning() {
|
||||
return isRunning;
|
||||
}
|
||||
private static synchronized void setIsRunning(boolean v) {
|
||||
isRunning = v;
|
||||
}
|
||||
|
||||
public UnzipService() {
|
||||
super("net.minetest.minetest.UnzipService");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onHandleIntent(Intent intent) {
|
||||
Notification.Builder notificationBuilder = createNotification();
|
||||
final File zipFile = new File(getCacheDir(), "Minetest.zip");
|
||||
try {
|
||||
setIsRunning(true);
|
||||
File userDataDirectory = Utils.getUserDataDirectory(this);
|
||||
if (userDataDirectory == null) {
|
||||
throw new IOException("Unable to find user data directory");
|
||||
}
|
||||
|
||||
try (InputStream in = this.getAssets().open(zipFile.getName())) {
|
||||
try (OutputStream out = new FileOutputStream(zipFile)) {
|
||||
int readLen;
|
||||
byte[] readBuffer = new byte[16384];
|
||||
while ((readLen = in.read(readBuffer)) != -1) {
|
||||
out.write(readBuffer, 0, readLen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
migrate(notificationBuilder, userDataDirectory);
|
||||
unzip(notificationBuilder, zipFile, userDataDirectory);
|
||||
} catch (IOException e) {
|
||||
isSuccess = false;
|
||||
failureMessage = e.getLocalizedMessage();
|
||||
} finally {
|
||||
setIsRunning(false);
|
||||
zipFile.delete();
|
||||
}
|
||||
}
|
||||
|
||||
private Notification.Builder createNotification() {
|
||||
String name = "net.minetest.minetest";
|
||||
String channelId = "Minetest channel";
|
||||
String description = "notifications from Minetest";
|
||||
Notification.Builder builder;
|
||||
if (mNotifyManager == null)
|
||||
mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
int importance = NotificationManager.IMPORTANCE_LOW;
|
||||
NotificationChannel mChannel = null;
|
||||
if (mNotifyManager != null)
|
||||
mChannel = mNotifyManager.getNotificationChannel(channelId);
|
||||
if (mChannel == null) {
|
||||
mChannel = new NotificationChannel(channelId, name, importance);
|
||||
mChannel.setDescription(description);
|
||||
// Configure the notification channel, NO SOUND
|
||||
mChannel.setSound(null, null);
|
||||
mChannel.enableLights(false);
|
||||
mChannel.enableVibration(false);
|
||||
mNotifyManager.createNotificationChannel(mChannel);
|
||||
}
|
||||
builder = new Notification.Builder(this, channelId);
|
||||
} else {
|
||||
builder = new Notification.Builder(this);
|
||||
}
|
||||
|
||||
Intent notificationIntent = new Intent(this, MainActivity.class);
|
||||
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
|
||||
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
PendingIntent intent = PendingIntent.getActivity(this, 0,
|
||||
notificationIntent, 0);
|
||||
|
||||
builder.setContentTitle(getString(R.string.notification_title))
|
||||
.setSmallIcon(R.mipmap.ic_launcher)
|
||||
.setContentText(getString(R.string.notification_description))
|
||||
.setContentIntent(intent)
|
||||
.setOngoing(true)
|
||||
.setProgress(0, 0, true);
|
||||
|
||||
mNotifyManager.notify(id, builder.build());
|
||||
return builder;
|
||||
}
|
||||
|
||||
private void unzip(Notification.Builder notificationBuilder, File zipFile, File userDataDirectory) throws IOException {
|
||||
int per = 0;
|
||||
|
||||
int size;
|
||||
try (ZipFile zipSize = new ZipFile(zipFile)) {
|
||||
size = zipSize.size();
|
||||
}
|
||||
|
||||
int readLen;
|
||||
byte[] readBuffer = new byte[16384];
|
||||
try (FileInputStream fileInputStream = new FileInputStream(zipFile);
|
||||
ZipInputStream zipInputStream = new ZipInputStream(fileInputStream)) {
|
||||
ZipEntry ze;
|
||||
while ((ze = zipInputStream.getNextEntry()) != null) {
|
||||
if (ze.isDirectory()) {
|
||||
++per;
|
||||
Utils.createDirs(userDataDirectory, ze.getName());
|
||||
continue;
|
||||
}
|
||||
publishProgress(notificationBuilder, R.string.loading, 100 * ++per / size);
|
||||
try (OutputStream outputStream = new FileOutputStream(
|
||||
new File(userDataDirectory, ze.getName()))) {
|
||||
while ((readLen = zipInputStream.read(readBuffer)) != -1) {
|
||||
outputStream.write(readBuffer, 0, readLen);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void moveFileOrDir(@NonNull File src, @NonNull File dst) throws IOException {
|
||||
try {
|
||||
Process p = new ProcessBuilder("/system/bin/mv",
|
||||
src.getAbsolutePath(), dst.getAbsolutePath()).start();
|
||||
int exitcode = p.waitFor();
|
||||
if (exitcode != 0)
|
||||
throw new IOException("Move failed with exit code " + exitcode);
|
||||
} catch (InterruptedException e) {
|
||||
throw new IOException("Move operation interrupted");
|
||||
}
|
||||
}
|
||||
|
||||
boolean recursivelyDeleteDirectory(@NonNull File loc) {
|
||||
try {
|
||||
Process p = new ProcessBuilder("/system/bin/rm", "-rf",
|
||||
loc.getAbsolutePath()).start();
|
||||
return p.waitFor() == 0;
|
||||
} catch (IOException | InterruptedException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Migrates user data from deprecated external storage to app scoped storage
|
||||
*/
|
||||
private void migrate(Notification.Builder notificationBuilder, File newLocation) throws IOException {
|
||||
File oldLocation = new File(Environment.getExternalStorageDirectory(), "Minetest");
|
||||
if (!oldLocation.isDirectory())
|
||||
return;
|
||||
|
||||
publishProgress(notificationBuilder, R.string.migrating, 0);
|
||||
newLocation.mkdir();
|
||||
|
||||
String[] dirs = new String[] { "worlds", "games", "mods", "textures", "client" };
|
||||
for (int i = 0; i < dirs.length; i++) {
|
||||
publishProgress(notificationBuilder, R.string.migrating, 100 * i / dirs.length);
|
||||
File dir = new File(oldLocation, dirs[i]), dir2 = new File(newLocation, dirs[i]);
|
||||
if (dir.isDirectory() && !dir2.isDirectory()) {
|
||||
moveFileOrDir(dir, dir2);
|
||||
}
|
||||
}
|
||||
|
||||
for (String filename : new String[] { "minetest.conf" }) {
|
||||
File file = new File(oldLocation, filename), file2 = new File(newLocation, filename);
|
||||
if (file.isFile() && !file2.isFile()) {
|
||||
moveFileOrDir(file, file2);
|
||||
}
|
||||
}
|
||||
|
||||
recursivelyDeleteDirectory(oldLocation);
|
||||
}
|
||||
|
||||
private void publishProgress(@Nullable Notification.Builder notificationBuilder, @StringRes int message, int progress) {
|
||||
Intent intentUpdate = new Intent(ACTION_UPDATE);
|
||||
intentUpdate.putExtra(ACTION_PROGRESS, progress);
|
||||
intentUpdate.putExtra(ACTION_PROGRESS_MESSAGE, message);
|
||||
if (!isSuccess)
|
||||
intentUpdate.putExtra(ACTION_FAILURE, failureMessage);
|
||||
sendBroadcast(intentUpdate);
|
||||
|
||||
if (notificationBuilder != null) {
|
||||
notificationBuilder.setContentText(getString(message));
|
||||
if (progress == INDETERMINATE) {
|
||||
notificationBuilder.setProgress(100, 50, true);
|
||||
} else {
|
||||
notificationBuilder.setProgress(100, progress, false);
|
||||
}
|
||||
mNotifyManager.notify(id, notificationBuilder.build());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
mNotifyManager.cancel(id);
|
||||
publishProgress(null, R.string.loading, isSuccess ? SUCCESS : FAILURE);
|
||||
}
|
||||
}
|
||||
39
android/app/src/main/java/net/minetest/minetest/Utils.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package net.minetest.minetest;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import java.io.File;
|
||||
|
||||
public class Utils {
|
||||
public static @NonNull File createDirs(File root, String dir) {
|
||||
File f = new File(root, dir);
|
||||
if (!f.isDirectory())
|
||||
f.mkdirs();
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
public static @Nullable File getUserDataDirectory(Context context) {
|
||||
File extDir = context.getExternalFilesDir(null);
|
||||
if (extDir == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return createDirs(extDir, "Minetest");
|
||||
}
|
||||
|
||||
public static @Nullable File getCacheDirectory(Context context) {
|
||||
return context.getCacheDir();
|
||||
}
|
||||
|
||||
public static boolean isInstallValid(Context context) {
|
||||
File userDataDirectory = getUserDataDirectory(context);
|
||||
return userDataDirectory != null && userDataDirectory.isDirectory() &&
|
||||
new File(userDataDirectory, "games").isDirectory() &&
|
||||
new File(userDataDirectory, "builtin").isDirectory() &&
|
||||
new File(userDataDirectory, "client").isDirectory() &&
|
||||
new File(userDataDirectory, "textures").isDirectory();
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 83 B After Width: | Height: | Size: 83 B |
@@ -1,4 +1,5 @@
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/activity_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
@@ -14,7 +15,8 @@
|
||||
android:layout_marginRight="90dp"
|
||||
android:indeterminate="false"
|
||||
android:max="100"
|
||||
android:visibility="gone" />
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
@@ -25,6 +27,7 @@
|
||||
android:background="@android:color/transparent"
|
||||
android:text="@string/loading"
|
||||
android:textColor="#FEFEFE"
|
||||
android:visibility="gone" />
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
@@ -3,8 +3,11 @@
|
||||
|
||||
<string name="label">Minetest</string>
|
||||
<string name="loading">Loading…</string>
|
||||
<string name="migrating">Migrating save data from old install… (this may take a while)</string>
|
||||
<string name="not_granted">Required permission wasn\'t granted, Minetest can\'t run without it</string>
|
||||
<string name="notification_title">Loading Minetest</string>
|
||||
<string name="notification_description">Less than 1 minute…</string>
|
||||
<string name="ime_dialog_done">Done</string>
|
||||
<string name="no_external_storage">External storage isn\'t available. If you use an SDCard, please reinsert it. Otherwise, try restarting your phone or contacting the Minetest developers</string>
|
||||
|
||||
</resources>
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
project.ext.set("versionMajor", 5) // Version Major
|
||||
project.ext.set("versionMinor", 4) // Version Minor
|
||||
project.ext.set("versionPatch", 0) // Version Patch
|
||||
project.ext.set("versionPatch", 2) // Version Patch
|
||||
project.ext.set("versionExtra", "") // Version Extra
|
||||
project.ext.set("versionCode", 32) // Android Version Code
|
||||
project.ext.set("versionCode", 36) // 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
|
||||
0
build/android/gradlew → android/gradlew
vendored
143
android/icons/aux1_btn.svg
Normal file
@@ -0,0 +1,143 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:export-ydpi="24.000002"
|
||||
inkscape:export-xdpi="24.000002"
|
||||
inkscape:export-filename="/home/stu/Desktop/icons/png/aux_btn.png"
|
||||
sodipodi:docname="aux_btn.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 135.46666 135.46667"
|
||||
height="512"
|
||||
width="512">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:snap-others="true"
|
||||
inkscape:snap-object-midpoints="false"
|
||||
inkscape:snap-to-guides="true"
|
||||
inkscape:snap-bbox="true"
|
||||
showguides="true"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:snap-grids="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="31"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-height="1024"
|
||||
inkscape:window-width="1920"
|
||||
units="px"
|
||||
showgrid="true"
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="212.91276"
|
||||
inkscape:cx="201.43176"
|
||||
inkscape:zoom="1.4633894"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#404040"
|
||||
id="base">
|
||||
<inkscape:grid
|
||||
empopacity="0.25098039"
|
||||
empcolor="#40ff40"
|
||||
opacity="0.1254902"
|
||||
color="#40ff40"
|
||||
empspacing="4"
|
||||
spacingy="0.26458333"
|
||||
spacingx="0.26458333"
|
||||
id="grid16"
|
||||
type="xygrid" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:inline"
|
||||
inkscape:label="Layer 2"
|
||||
id="layer2"
|
||||
inkscape:groupmode="layer">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7055"
|
||||
d=""
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7035"
|
||||
d=""
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7005"
|
||||
d=""
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5127"
|
||||
d=""
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<text
|
||||
transform="scale(1.0078883,0.99217343)"
|
||||
id="text4716"
|
||||
y="85.59491"
|
||||
x="67.78315"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48.4785px;line-height:1.25;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#d9d9d9;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
style="fill:#d9d9d9;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
y="85.59491"
|
||||
x="67.78315"
|
||||
id="tspan4714"
|
||||
sodipodi:role="line">Aux1</tspan></text>
|
||||
<flowRoot
|
||||
transform="scale(0.26458333)"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
|
||||
id="flowRoot4718"
|
||||
xml:space="preserve"><flowRegion
|
||||
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
|
||||
id="flowRegion4720"><rect
|
||||
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"
|
||||
y="124.10143"
|
||||
x="264.65997"
|
||||
height="136.37059"
|
||||
width="157.5838"
|
||||
id="rect4722" /></flowRegion><flowPara
|
||||
id="flowPara4724" /></flowRoot>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
@@ -41,22 +41,27 @@ android {
|
||||
arguments 'NDEBUG=1'
|
||||
}
|
||||
}
|
||||
|
||||
ndk {
|
||||
debugSymbolLevel 'SYMBOL_TABLE'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// get precompiled deps
|
||||
def folder = 'minetest_android_deps_binaries'
|
||||
def deps_ref = "342eb18b7512462585a33bc9eef0b68298087151"
|
||||
|
||||
task downloadDeps(type: Download) {
|
||||
src 'https://github.com/minetest/' + folder + '/archive/master.zip'
|
||||
src 'https://github.com/minetest/' + folder + '/archive/' + deps_ref + '.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")
|
||||
def f = file("$buildDir/" + folder + "-" + deps_ref)
|
||||
|
||||
if (!deps.exists() && !f.exists()) {
|
||||
from zipTree(downloadDeps.dest)
|
||||
219
android/native/jni/Android.mk
Normal file
@@ -0,0 +1,219 @@
|
||||
LOCAL_PATH := $(call my-dir)/..
|
||||
|
||||
#LOCAL_ADDRESS_SANITIZER:=true
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Curl
|
||||
LOCAL_SRC_FILES := deps/Android/Curl/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcurl.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Freetype
|
||||
LOCAL_SRC_FILES := deps/Android/Freetype/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libfreetype.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Irrlicht
|
||||
LOCAL_SRC_FILES := deps/Android/Irrlicht/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libIrrlicht.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
#include $(CLEAR_VARS)
|
||||
#LOCAL_MODULE := LevelDB
|
||||
#LOCAL_SRC_FILES := deps/Android/LevelDB/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libleveldb.a
|
||||
#include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := LuaJIT
|
||||
LOCAL_SRC_FILES := deps/Android/LuaJIT/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libluajit.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := mbedTLS
|
||||
LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedtls.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := mbedx509
|
||||
LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedx509.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := mbedcrypto
|
||||
LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedcrypto.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := OpenAL
|
||||
LOCAL_SRC_FILES := deps/Android/OpenAL-Soft/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libopenal.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
# You can use `OpenSSL and Crypto` instead `mbedTLS mbedx509 mbedcrypto`,
|
||||
#but it increase APK size on ~0.7MB
|
||||
#include $(CLEAR_VARS)
|
||||
#LOCAL_MODULE := OpenSSL
|
||||
#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libssl.a
|
||||
#include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
#include $(CLEAR_VARS)
|
||||
#LOCAL_MODULE := Crypto
|
||||
#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcrypto.a
|
||||
#include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Vorbis
|
||||
LOCAL_SRC_FILES := deps/Android/Vorbis/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libvorbis.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Minetest
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-DJSONCPP_NO_LOCALE_SUPPORT \
|
||||
-DHAVE_TOUCHSCREENGUI \
|
||||
-DENABLE_GLES=1 \
|
||||
-DUSE_CURL=1 \
|
||||
-DUSE_SOUND=1 \
|
||||
-DUSE_FREETYPE=1 \
|
||||
-DUSE_LEVELDB=0 \
|
||||
-DUSE_LUAJIT=1 \
|
||||
-DVERSION_MAJOR=${versionMajor} \
|
||||
-DVERSION_MINOR=${versionMinor} \
|
||||
-DVERSION_PATCH=${versionPatch} \
|
||||
-DVERSION_EXTRA=${versionExtra} \
|
||||
$(GPROF_DEF)
|
||||
|
||||
ifdef NDEBUG
|
||||
LOCAL_CFLAGS += -DNDEBUG=1
|
||||
endif
|
||||
|
||||
ifdef GPROF
|
||||
GPROF_DEF := -DGPROF
|
||||
PROFILER_LIBS := android-ndk-profiler
|
||||
LOCAL_CFLAGS += -pg
|
||||
endif
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
../../src \
|
||||
../../src/script \
|
||||
../../lib/gmp \
|
||||
../../lib/jsoncpp \
|
||||
deps/Android/Curl/include \
|
||||
deps/Android/Freetype/include \
|
||||
deps/Android/Irrlicht/include \
|
||||
deps/Android/LevelDB/include \
|
||||
deps/Android/libiconv/include \
|
||||
deps/Android/libiconv/libcharset/include \
|
||||
deps/Android/LuaJIT/src \
|
||||
deps/Android/OpenAL-Soft/include \
|
||||
deps/Android/sqlite \
|
||||
deps/Android/Vorbis/include
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(wildcard ../../src/client/*.cpp) \
|
||||
$(wildcard ../../src/client/*/*.cpp) \
|
||||
$(wildcard ../../src/content/*.cpp) \
|
||||
../../src/database/database.cpp \
|
||||
../../src/database/database-dummy.cpp \
|
||||
../../src/database/database-files.cpp \
|
||||
../../src/database/database-sqlite3.cpp \
|
||||
$(wildcard ../../src/gui/*.cpp) \
|
||||
$(wildcard ../../src/irrlicht_changes/*.cpp) \
|
||||
$(wildcard ../../src/mapgen/*.cpp) \
|
||||
$(wildcard ../../src/network/*.cpp) \
|
||||
$(wildcard ../../src/script/*.cpp) \
|
||||
$(wildcard ../../src/script/*/*.cpp) \
|
||||
$(wildcard ../../src/server/*.cpp) \
|
||||
$(wildcard ../../src/threading/*.cpp) \
|
||||
$(wildcard ../../src/util/*.c) \
|
||||
$(wildcard ../../src/util/*.cpp) \
|
||||
../../src/ban.cpp \
|
||||
../../src/chat.cpp \
|
||||
../../src/clientiface.cpp \
|
||||
../../src/collision.cpp \
|
||||
../../src/content_mapnode.cpp \
|
||||
../../src/content_nodemeta.cpp \
|
||||
../../src/convert_json.cpp \
|
||||
../../src/craftdef.cpp \
|
||||
../../src/debug.cpp \
|
||||
../../src/defaultsettings.cpp \
|
||||
../../src/emerge.cpp \
|
||||
../../src/environment.cpp \
|
||||
../../src/face_position_cache.cpp \
|
||||
../../src/filesys.cpp \
|
||||
../../src/gettext.cpp \
|
||||
../../src/httpfetch.cpp \
|
||||
../../src/hud.cpp \
|
||||
../../src/inventory.cpp \
|
||||
../../src/inventorymanager.cpp \
|
||||
../../src/itemdef.cpp \
|
||||
../../src/itemstackmetadata.cpp \
|
||||
../../src/light.cpp \
|
||||
../../src/log.cpp \
|
||||
../../src/main.cpp \
|
||||
../../src/map.cpp \
|
||||
../../src/map_settings_manager.cpp \
|
||||
../../src/mapblock.cpp \
|
||||
../../src/mapnode.cpp \
|
||||
../../src/mapsector.cpp \
|
||||
../../src/metadata.cpp \
|
||||
../../src/modchannels.cpp \
|
||||
../../src/nameidmapping.cpp \
|
||||
../../src/nodedef.cpp \
|
||||
../../src/nodemetadata.cpp \
|
||||
../../src/nodetimer.cpp \
|
||||
../../src/noise.cpp \
|
||||
../../src/objdef.cpp \
|
||||
../../src/object_properties.cpp \
|
||||
../../src/particles.cpp \
|
||||
../../src/pathfinder.cpp \
|
||||
../../src/player.cpp \
|
||||
../../src/porting.cpp \
|
||||
../../src/porting_android.cpp \
|
||||
../../src/profiler.cpp \
|
||||
../../src/raycast.cpp \
|
||||
../../src/reflowscan.cpp \
|
||||
../../src/remoteplayer.cpp \
|
||||
../../src/rollback.cpp \
|
||||
../../src/rollback_interface.cpp \
|
||||
../../src/serialization.cpp \
|
||||
../../src/server.cpp \
|
||||
../../src/serverenvironment.cpp \
|
||||
../../src/serverlist.cpp \
|
||||
../../src/settings.cpp \
|
||||
../../src/staticobject.cpp \
|
||||
../../src/texture_override.cpp \
|
||||
../../src/tileanimation.cpp \
|
||||
../../src/tool.cpp \
|
||||
../../src/translation.cpp \
|
||||
../../src/version.cpp \
|
||||
../../src/voxel.cpp \
|
||||
../../src/voxelalgorithms.cpp
|
||||
|
||||
# LevelDB backend is disabled
|
||||
# ../../src/database/database-leveldb.cpp
|
||||
|
||||
# GMP
|
||||
LOCAL_SRC_FILES += ../../lib/gmp/mini-gmp.c
|
||||
|
||||
# JSONCPP
|
||||
LOCAL_SRC_FILES += ../../lib/jsoncpp/jsoncpp.cpp
|
||||
|
||||
# iconv
|
||||
LOCAL_SRC_FILES += \
|
||||
deps/Android/libiconv/lib/iconv.c \
|
||||
deps/Android/libiconv/libcharset/lib/localcharset.c
|
||||
|
||||
# SQLite3
|
||||
LOCAL_SRC_FILES += deps/Android/sqlite/sqlite3.c
|
||||
|
||||
LOCAL_STATIC_LIBRARIES += Curl Freetype Irrlicht OpenAL mbedTLS mbedx509 mbedcrypto Vorbis LuaJIT android_native_app_glue $(PROFILER_LIBS) #LevelDB
|
||||
#OpenSSL Crypto
|
||||
|
||||
LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
ifdef GPROF
|
||||
$(call import-module,android-ndk-profiler)
|
||||
endif
|
||||
$(call import-module,android/native_app_glue)
|
||||
@@ -1,82 +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.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
public class CopyZipTask extends AsyncTask<String, Void, String> {
|
||||
|
||||
private final WeakReference<AppCompatActivity> activityRef;
|
||||
|
||||
CopyZipTask(AppCompatActivity activity) {
|
||||
activityRef = new WeakReference<>(activity);
|
||||
}
|
||||
|
||||
protected String doInBackground(String... params) {
|
||||
copyAsset(params[0]);
|
||||
return params[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
startUnzipService(result);
|
||||
}
|
||||
|
||||
private void copyAsset(String zipName) {
|
||||
String filename = zipName.substring(zipName.lastIndexOf("/") + 1);
|
||||
try (InputStream in = activityRef.get().getAssets().open(filename);
|
||||
OutputStream out = new FileOutputStream(zipName)) {
|
||||
copyFile(in, out);
|
||||
} catch (IOException e) {
|
||||
AppCompatActivity activity = activityRef.get();
|
||||
if (activity != null) {
|
||||
activity.runOnUiThread(() -> Toast.makeText(activityRef.get(), e.getLocalizedMessage(), Toast.LENGTH_LONG).show());
|
||||
}
|
||||
cancel(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void copyFile(InputStream in, OutputStream out) throws IOException {
|
||||
byte[] buffer = new byte[1024];
|
||||
int read;
|
||||
while ((read = in.read(buffer)) != -1)
|
||||
out.write(buffer, 0, read);
|
||||
}
|
||||
|
||||
private void startUnzipService(String file) {
|
||||
Intent intent = new Intent(activityRef.get(), UnzipService.class);
|
||||
intent.putExtra(UnzipService.EXTRA_KEY_IN_FILE, file);
|
||||
AppCompatActivity activity = activityRef.get();
|
||||
if (activity != null) {
|
||||
activity.startService(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,157 +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.IntentService;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
import java.util.zip.ZipInputStream;
|
||||
|
||||
public class UnzipService extends IntentService {
|
||||
public static final String ACTION_UPDATE = "net.minetest.minetest.UPDATE";
|
||||
public static final String ACTION_PROGRESS = "net.minetest.minetest.PROGRESS";
|
||||
public static final String ACTION_FAILURE = "net.minetest.minetest.FAILURE";
|
||||
public static final String EXTRA_KEY_IN_FILE = "file";
|
||||
public static final int SUCCESS = -1;
|
||||
public static final int FAILURE = -2;
|
||||
private final int id = 1;
|
||||
private NotificationManager mNotifyManager;
|
||||
private boolean isSuccess = true;
|
||||
private String failureMessage;
|
||||
|
||||
public UnzipService() {
|
||||
super("net.minetest.minetest.UnzipService");
|
||||
}
|
||||
|
||||
private void isDir(String dir, String location) {
|
||||
File f = new File(location, dir);
|
||||
if (!f.isDirectory())
|
||||
f.mkdirs();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onHandleIntent(Intent intent) {
|
||||
createNotification();
|
||||
unzip(intent);
|
||||
}
|
||||
|
||||
private void createNotification() {
|
||||
String name = "net.minetest.minetest";
|
||||
String channelId = "Minetest channel";
|
||||
String description = "notifications from Minetest";
|
||||
Notification.Builder builder;
|
||||
if (mNotifyManager == null)
|
||||
mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
int importance = NotificationManager.IMPORTANCE_LOW;
|
||||
NotificationChannel mChannel = null;
|
||||
if (mNotifyManager != null)
|
||||
mChannel = mNotifyManager.getNotificationChannel(channelId);
|
||||
if (mChannel == null) {
|
||||
mChannel = new NotificationChannel(channelId, name, importance);
|
||||
mChannel.setDescription(description);
|
||||
// Configure the notification channel, NO SOUND
|
||||
mChannel.setSound(null, null);
|
||||
mChannel.enableLights(false);
|
||||
mChannel.enableVibration(false);
|
||||
mNotifyManager.createNotificationChannel(mChannel);
|
||||
}
|
||||
builder = new Notification.Builder(this, channelId);
|
||||
} else {
|
||||
builder = new Notification.Builder(this);
|
||||
}
|
||||
builder.setContentTitle(getString(R.string.notification_title))
|
||||
.setSmallIcon(R.mipmap.ic_launcher)
|
||||
.setContentText(getString(R.string.notification_description));
|
||||
mNotifyManager.notify(id, builder.build());
|
||||
}
|
||||
|
||||
private void unzip(Intent intent) {
|
||||
String zip = intent.getStringExtra(EXTRA_KEY_IN_FILE);
|
||||
isDir("Minetest", Environment.getExternalStorageDirectory().toString());
|
||||
String location = Environment.getExternalStorageDirectory() + File.separator + "Minetest" + File.separator;
|
||||
int per = 0;
|
||||
int size = getSummarySize(zip);
|
||||
File zipFile = new File(zip);
|
||||
int readLen;
|
||||
byte[] readBuffer = new byte[8192];
|
||||
try (FileInputStream fileInputStream = new FileInputStream(zipFile);
|
||||
ZipInputStream zipInputStream = new ZipInputStream(fileInputStream)) {
|
||||
ZipEntry ze;
|
||||
while ((ze = zipInputStream.getNextEntry()) != null) {
|
||||
if (ze.isDirectory()) {
|
||||
++per;
|
||||
isDir(ze.getName(), location);
|
||||
} else {
|
||||
publishProgress(100 * ++per / size);
|
||||
try (OutputStream outputStream = new FileOutputStream(location + ze.getName())) {
|
||||
while ((readLen = zipInputStream.read(readBuffer)) != -1) {
|
||||
outputStream.write(readBuffer, 0, readLen);
|
||||
}
|
||||
}
|
||||
}
|
||||
zipFile.delete();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
isSuccess = false;
|
||||
failureMessage = e.getLocalizedMessage();
|
||||
}
|
||||
}
|
||||
|
||||
private void publishProgress(int progress) {
|
||||
Intent intentUpdate = new Intent(ACTION_UPDATE);
|
||||
intentUpdate.putExtra(ACTION_PROGRESS, progress);
|
||||
if (!isSuccess) intentUpdate.putExtra(ACTION_FAILURE, failureMessage);
|
||||
sendBroadcast(intentUpdate);
|
||||
}
|
||||
|
||||
private int getSummarySize(String zip) {
|
||||
int size = 0;
|
||||
try {
|
||||
ZipFile zipSize = new ZipFile(zip);
|
||||
size += zipSize.size();
|
||||
} catch (IOException e) {
|
||||
Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
mNotifyManager.cancel(id);
|
||||
publishProgress(isSuccess ? SUCCESS : FAILURE);
|
||||
}
|
||||
}
|
||||
@@ -1,219 +0,0 @@
|
||||
LOCAL_PATH := $(call my-dir)/..
|
||||
|
||||
#LOCAL_ADDRESS_SANITIZER:=true
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Curl
|
||||
LOCAL_SRC_FILES := deps/Android/Curl/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcurl.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Freetype
|
||||
LOCAL_SRC_FILES := deps/Android/Freetype/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libfreetype.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Irrlicht
|
||||
LOCAL_SRC_FILES := deps/Android/Irrlicht/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libIrrlicht.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
#include $(CLEAR_VARS)
|
||||
#LOCAL_MODULE := LevelDB
|
||||
#LOCAL_SRC_FILES := deps/Android/LevelDB/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libleveldb.a
|
||||
#include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := LuaJIT
|
||||
LOCAL_SRC_FILES := deps/Android/LuaJIT/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libluajit.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := mbedTLS
|
||||
LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedtls.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := mbedx509
|
||||
LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedx509.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := mbedcrypto
|
||||
LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedcrypto.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := OpenAL
|
||||
LOCAL_SRC_FILES := deps/Android/OpenAL-Soft/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libopenal.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
# You can use `OpenSSL and Crypto` instead `mbedTLS mbedx509 mbedcrypto`,
|
||||
#but it increase APK size on ~0.7MB
|
||||
#include $(CLEAR_VARS)
|
||||
#LOCAL_MODULE := OpenSSL
|
||||
#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libssl.a
|
||||
#include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
#include $(CLEAR_VARS)
|
||||
#LOCAL_MODULE := Crypto
|
||||
#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcrypto.a
|
||||
#include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Vorbis
|
||||
LOCAL_SRC_FILES := deps/Android/Vorbis/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libvorbis.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := Minetest
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-DJSONCPP_NO_LOCALE_SUPPORT \
|
||||
-DHAVE_TOUCHSCREENGUI \
|
||||
-DENABLE_GLES=1 \
|
||||
-DUSE_CURL=1 \
|
||||
-DUSE_SOUND=1 \
|
||||
-DUSE_FREETYPE=1 \
|
||||
-DUSE_LEVELDB=0 \
|
||||
-DUSE_LUAJIT=1 \
|
||||
-DVERSION_MAJOR=${versionMajor} \
|
||||
-DVERSION_MINOR=${versionMinor} \
|
||||
-DVERSION_PATCH=${versionPatch} \
|
||||
-DVERSION_EXTRA=${versionExtra} \
|
||||
$(GPROF_DEF)
|
||||
|
||||
ifdef NDEBUG
|
||||
LOCAL_CFLAGS += -DNDEBUG=1
|
||||
endif
|
||||
|
||||
ifdef GPROF
|
||||
GPROF_DEF := -DGPROF
|
||||
PROFILER_LIBS := android-ndk-profiler
|
||||
LOCAL_CFLAGS += -pg
|
||||
endif
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
../../../src \
|
||||
../../../src/script \
|
||||
../../../lib/gmp \
|
||||
../../../lib/jsoncpp \
|
||||
deps/Android/Curl/include \
|
||||
deps/Android/Freetype/include \
|
||||
deps/Android/Irrlicht/include \
|
||||
deps/Android/LevelDB/include \
|
||||
deps/Android/libiconv/include \
|
||||
deps/Android/libiconv/libcharset/include \
|
||||
deps/Android/LuaJIT/src \
|
||||
deps/Android/OpenAL-Soft/include \
|
||||
deps/Android/sqlite \
|
||||
deps/Android/Vorbis/include
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(wildcard ../../../src/client/*.cpp) \
|
||||
$(wildcard ../../../src/client/*/*.cpp) \
|
||||
$(wildcard ../../../src/content/*.cpp) \
|
||||
../../../src/database/database.cpp \
|
||||
../../../src/database/database-dummy.cpp \
|
||||
../../../src/database/database-files.cpp \
|
||||
../../../src/database/database-sqlite3.cpp \
|
||||
$(wildcard ../../../src/gui/*.cpp) \
|
||||
$(wildcard ../../../src/irrlicht_changes/*.cpp) \
|
||||
$(wildcard ../../../src/mapgen/*.cpp) \
|
||||
$(wildcard ../../../src/network/*.cpp) \
|
||||
$(wildcard ../../../src/script/*.cpp) \
|
||||
$(wildcard ../../../src/script/*/*.cpp) \
|
||||
$(wildcard ../../../src/server/*.cpp) \
|
||||
$(wildcard ../../../src/threading/*.cpp) \
|
||||
$(wildcard ../../../src/util/*.c) \
|
||||
$(wildcard ../../../src/util/*.cpp) \
|
||||
../../../src/ban.cpp \
|
||||
../../../src/chat.cpp \
|
||||
../../../src/clientiface.cpp \
|
||||
../../../src/collision.cpp \
|
||||
../../../src/content_mapnode.cpp \
|
||||
../../../src/content_nodemeta.cpp \
|
||||
../../../src/convert_json.cpp \
|
||||
../../../src/craftdef.cpp \
|
||||
../../../src/debug.cpp \
|
||||
../../../src/defaultsettings.cpp \
|
||||
../../../src/emerge.cpp \
|
||||
../../../src/environment.cpp \
|
||||
../../../src/face_position_cache.cpp \
|
||||
../../../src/filesys.cpp \
|
||||
../../../src/gettext.cpp \
|
||||
../../../src/httpfetch.cpp \
|
||||
../../../src/hud.cpp \
|
||||
../../../src/inventory.cpp \
|
||||
../../../src/inventorymanager.cpp \
|
||||
../../../src/itemdef.cpp \
|
||||
../../../src/itemstackmetadata.cpp \
|
||||
../../../src/light.cpp \
|
||||
../../../src/log.cpp \
|
||||
../../../src/main.cpp \
|
||||
../../../src/map.cpp \
|
||||
../../../src/map_settings_manager.cpp \
|
||||
../../../src/mapblock.cpp \
|
||||
../../../src/mapnode.cpp \
|
||||
../../../src/mapsector.cpp \
|
||||
../../../src/metadata.cpp \
|
||||
../../../src/modchannels.cpp \
|
||||
../../../src/nameidmapping.cpp \
|
||||
../../../src/nodedef.cpp \
|
||||
../../../src/nodemetadata.cpp \
|
||||
../../../src/nodetimer.cpp \
|
||||
../../../src/noise.cpp \
|
||||
../../../src/objdef.cpp \
|
||||
../../../src/object_properties.cpp \
|
||||
../../../src/particles.cpp \
|
||||
../../../src/pathfinder.cpp \
|
||||
../../../src/player.cpp \
|
||||
../../../src/porting.cpp \
|
||||
../../../src/porting_android.cpp \
|
||||
../../../src/profiler.cpp \
|
||||
../../../src/raycast.cpp \
|
||||
../../../src/reflowscan.cpp \
|
||||
../../../src/remoteplayer.cpp \
|
||||
../../../src/rollback.cpp \
|
||||
../../../src/rollback_interface.cpp \
|
||||
../../../src/serialization.cpp \
|
||||
../../../src/server.cpp \
|
||||
../../../src/serverenvironment.cpp \
|
||||
../../../src/serverlist.cpp \
|
||||
../../../src/settings.cpp \
|
||||
../../../src/staticobject.cpp \
|
||||
../../../src/texture_override.cpp \
|
||||
../../../src/tileanimation.cpp \
|
||||
../../../src/tool.cpp \
|
||||
../../../src/translation.cpp \
|
||||
../../../src/version.cpp \
|
||||
../../../src/voxel.cpp \
|
||||
../../../src/voxelalgorithms.cpp
|
||||
|
||||
# LevelDB backend is disabled
|
||||
# ../../../src/database/database-leveldb.cpp
|
||||
|
||||
# GMP
|
||||
LOCAL_SRC_FILES += ../../../lib/gmp/mini-gmp.c
|
||||
|
||||
# JSONCPP
|
||||
LOCAL_SRC_FILES += ../../../lib/jsoncpp/jsoncpp.cpp
|
||||
|
||||
# iconv
|
||||
LOCAL_SRC_FILES += \
|
||||
deps/Android/libiconv/lib/iconv.c \
|
||||
deps/Android/libiconv/libcharset/lib/localcharset.c
|
||||
|
||||
# SQLite3
|
||||
LOCAL_SRC_FILES += deps/Android/sqlite/sqlite3.c
|
||||
|
||||
LOCAL_STATIC_LIBRARIES += Curl Freetype Irrlicht OpenAL mbedTLS mbedx509 mbedcrypto Vorbis LuaJIT android_native_app_glue $(PROFILER_LIBS) #LevelDB
|
||||
#OpenSSL Crypto
|
||||
|
||||
LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
ifdef GPROF
|
||||
$(call import-module,android-ndk-profiler)
|
||||
endif
|
||||
$(call import-module,android/native_app_glue)
|
||||
@@ -90,7 +90,7 @@ local function load_texture_packs(txtpath, retval)
|
||||
retval[#retval + 1] = {
|
||||
name = item,
|
||||
author = conf:get("author"),
|
||||
release = tonumber(conf:get("release") or "0"),
|
||||
release = tonumber(conf:get("release")) or 0,
|
||||
list_name = name,
|
||||
type = "txp",
|
||||
path = path,
|
||||
@@ -135,7 +135,7 @@ function get_mods(path,retval,modpack)
|
||||
-- Read from config
|
||||
toadd.name = name
|
||||
toadd.author = mod_conf.author
|
||||
toadd.release = tonumber(mod_conf.release or "0")
|
||||
toadd.release = tonumber(mod_conf.release) or 0
|
||||
toadd.path = prefix
|
||||
toadd.type = "mod"
|
||||
|
||||
@@ -413,18 +413,7 @@ function pkgmgr.is_modpack_entirely_enabled(data, name)
|
||||
end
|
||||
|
||||
---------- toggles or en/disables a mod or modpack and its dependencies --------
|
||||
function pkgmgr.enable_mod(this, toset)
|
||||
local list = this.data.list:get_list()
|
||||
local mod = list[this.data.selected_mod]
|
||||
|
||||
-- Game mods can't be enabled or disabled
|
||||
if mod.is_game_content then
|
||||
return
|
||||
end
|
||||
|
||||
local toggled_mods = {}
|
||||
|
||||
local enabled_mods = {}
|
||||
local function toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, mod)
|
||||
if not mod.is_modpack then
|
||||
-- Toggle or en/disable the mod
|
||||
if toset == nil then
|
||||
@@ -443,19 +432,25 @@ function pkgmgr.enable_mod(this, toset)
|
||||
-- interleaved unsupported
|
||||
for i = 1, #list do
|
||||
if list[i].modpack == mod.name then
|
||||
if toset == nil then
|
||||
toset = not list[i].enabled
|
||||
end
|
||||
if list[i].enabled ~= toset then
|
||||
list[i].enabled = toset
|
||||
toggled_mods[#toggled_mods+1] = list[i].name
|
||||
end
|
||||
if toset then
|
||||
enabled_mods[list[i].name] = true
|
||||
end
|
||||
toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, list[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function pkgmgr.enable_mod(this, toset)
|
||||
local list = this.data.list:get_list()
|
||||
local mod = list[this.data.selected_mod]
|
||||
|
||||
-- Game mods can't be enabled or disabled
|
||||
if mod.is_game_content then
|
||||
return
|
||||
end
|
||||
|
||||
local toggled_mods = {}
|
||||
local enabled_mods = {}
|
||||
toggle_mod_or_modpack(list, toggled_mods, enabled_mods, toset, mod)
|
||||
|
||||
if not toset then
|
||||
-- Mod(s) were disabled, so no dependencies need to be enabled
|
||||
table.sort(toggled_mods)
|
||||
|
||||
@@ -90,8 +90,11 @@ function serverlistmgr.sync()
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
local function get_favorites_path()
|
||||
local function get_favorites_path(folder)
|
||||
local base = core.get_user_path() .. DIR_DELIM .. "client" .. DIR_DELIM .. "serverlist" .. DIR_DELIM
|
||||
if folder then
|
||||
return base
|
||||
end
|
||||
return base .. core.settings:get("serverlist_file")
|
||||
end
|
||||
|
||||
@@ -103,9 +106,8 @@ local function save_favorites(favorites)
|
||||
core.settings:set("serverlist_file", filename:sub(1, #filename - 4) .. ".json")
|
||||
end
|
||||
|
||||
local path = get_favorites_path()
|
||||
core.create_dir(path)
|
||||
core.safe_file_write(path, core.write_json(favorites))
|
||||
assert(core.create_dir(get_favorites_path(true)))
|
||||
core.safe_file_write(get_favorites_path(), core.write_json(favorites))
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@@ -74,7 +74,7 @@ automatically. Or you can create a `local.properties` file and specify
|
||||
are different tutorials on the web explaining how to do it
|
||||
- choose one yourself.
|
||||
|
||||
* Once your keystore is setup, enter build/android subdirectory and create a new
|
||||
* Once your keystore is setup, enter the android subdirectory and create a new
|
||||
file "ant.properties" there. Add following lines to that file:
|
||||
|
||||
> key.store=<path to your keystore>
|
||||
|
||||
@@ -4654,6 +4654,7 @@ Call these functions only at load time!
|
||||
* `cheat`: `{type=<cheat_type>}`, where `<cheat_type>` is one of:
|
||||
* `moved_too_fast`
|
||||
* `interacted_too_far`
|
||||
* `interacted_with_self`
|
||||
* `interacted_while_dead`
|
||||
* `finished_unknown_dig`
|
||||
* `dug_unbreakable`
|
||||
|
||||
@@ -62,6 +62,6 @@
|
||||
<translation type="gettext">minetest</translation>
|
||||
<update_contact>sfan5@live.de</update_contact>
|
||||
<releases>
|
||||
<release date="2021-02-23" version="5.4.0"/>
|
||||
<release date="2021-10-23" version="5.4.2"/>
|
||||
</releases>
|
||||
</component>
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2020-10-29 16:26+0000\n"
|
||||
"PO-Revision-Date: 2021-03-19 20:18+0000\n"
|
||||
"Last-Translator: abidin toumi <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.3.2-dev\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -159,11 +159,11 @@ msgstr "مُفعل"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "\"$1\" already exists. Would you like to overwrite it?"
|
||||
msgstr ""
|
||||
msgstr "\"$1\" موجود مسبقًا. هل تريد الكتابة عليه؟"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 and $2 dependencies will be installed."
|
||||
msgstr ""
|
||||
msgstr "الاعتماديتان \"$1\" و $2 ستثبتان."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 by $2"
|
||||
@@ -174,15 +174,16 @@ msgid ""
|
||||
"$1 downloading,\n"
|
||||
"$2 queued"
|
||||
msgstr ""
|
||||
"يُنزل $1،\n"
|
||||
"$2 في الطابور"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 downloading..."
|
||||
msgstr "يحمل..."
|
||||
msgstr "ينزل $1..."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 required dependencies could not be found."
|
||||
msgstr ""
|
||||
msgstr "يحتاج $1 لكن لم يُعثر عليها."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 will be installed, and $2 dependencies will be skipped."
|
||||
@@ -193,18 +194,16 @@ msgid "All packages"
|
||||
msgstr "كل الحزم"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Already installed"
|
||||
msgstr "المفتاح مستخدم مسبقا"
|
||||
msgstr "مثبت مسبقا"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Back to Main Menu"
|
||||
msgstr "عُد للقائمة الرئيسة"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Base Game:"
|
||||
msgstr "استضف لعبة"
|
||||
msgstr "اللعبة القاعدية"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "ContentDB is not available when Minetest was compiled without cURL"
|
||||
@@ -228,14 +227,12 @@ msgid "Install"
|
||||
msgstr "ثبت"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install $1"
|
||||
msgstr "ثبت"
|
||||
msgstr "ثبت $1"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install missing dependencies"
|
||||
msgstr "الإعتماديات الإختيارية:"
|
||||
msgstr "ثبت الإعتماديات المفقودة"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
@@ -251,25 +248,24 @@ msgid "No results"
|
||||
msgstr "بدون نتائج"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "No updates"
|
||||
msgstr "حدِث"
|
||||
msgstr "لا توجد تحديثات"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Not found"
|
||||
msgstr ""
|
||||
msgstr "لم يُعثر عليه"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Overwrite"
|
||||
msgstr ""
|
||||
msgstr "اكتب عليه"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Please check that the base game is correct."
|
||||
msgstr ""
|
||||
msgstr "تحقق من صحة اللعبة القاعدية."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
msgstr "في الطابور"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Texture packs"
|
||||
@@ -285,7 +281,7 @@ msgstr "حدِث"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update All [$1]"
|
||||
msgstr ""
|
||||
msgstr "حدِّث الكل [$1]"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "View more information in a web browser"
|
||||
@@ -444,7 +440,7 @@ msgstr "المنشآت السطحية (لا تأثر على الأشجار وا
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Structures appearing on the terrain, typically trees and plants"
|
||||
msgstr ""
|
||||
msgstr "الهياكل التي تظهر على التضاريس ، عادة الأشجار والنباتات"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Temperate, Desert"
|
||||
@@ -564,8 +560,9 @@ msgid "Offset"
|
||||
msgstr "المُعادل"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
#, fuzzy
|
||||
msgid "Persistance"
|
||||
msgstr ""
|
||||
msgstr "استمرار"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Please enter a valid integer."
|
||||
@@ -613,23 +610,24 @@ msgstr "X"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "X spread"
|
||||
msgstr ""
|
||||
msgstr "التوزع على محور X"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Y"
|
||||
msgstr ""
|
||||
msgstr "Y"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
#, fuzzy
|
||||
msgid "Y spread"
|
||||
msgstr ""
|
||||
msgstr "التوزع على محور Y"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Z"
|
||||
msgstr ""
|
||||
msgstr "Z"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Z spread"
|
||||
msgstr ""
|
||||
msgstr "التوزع على محور Z"
|
||||
|
||||
#. ~ "absvalue" is a noise parameter flag.
|
||||
#. It is short for "absolute value".
|
||||
@@ -707,9 +705,8 @@ msgid "Loading..."
|
||||
msgstr "يحمل..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "البرمجة النصية للعميل معطلة"
|
||||
msgstr "قائمة الخوادم العمومية معطلة"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -768,15 +765,16 @@ msgid "Credits"
|
||||
msgstr "إشادات"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
#, fuzzy
|
||||
msgid "Open User Data Directory"
|
||||
msgstr "إختر الدليل"
|
||||
msgstr "افتح دليل بيانات المستخدم"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid ""
|
||||
"Opens the directory that contains user-provided worlds, games, mods,\n"
|
||||
"and texture packs in a file manager / explorer."
|
||||
msgstr ""
|
||||
"يفتح الدليل الذي يحوي العوالم والألعاب والتعديلات \n"
|
||||
"وحزم الإكساء في مدير الملفات."
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid "Previous Contributors"
|
||||
@@ -817,7 +815,7 @@ msgstr "ثبت العابا من ContentDB"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "الاسم"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "New"
|
||||
@@ -828,9 +826,8 @@ msgid "No world created or selected!"
|
||||
msgstr "لم تنشئ او تحدد عالما!"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Password"
|
||||
msgstr "كلمة مرور جديدة"
|
||||
msgstr "كلمة المرور"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Play Game"
|
||||
@@ -841,9 +838,8 @@ msgid "Port"
|
||||
msgstr "المنفذ"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Select Mods"
|
||||
msgstr "حدد العالم:"
|
||||
msgstr "اختر التعديلات"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select World:"
|
||||
@@ -963,9 +959,8 @@ msgid "Node Highlighting"
|
||||
msgstr "إبراز العقد"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
#, fuzzy
|
||||
msgid "Node Outlining"
|
||||
msgstr "عدم إبراز العقد"
|
||||
msgstr "اقتضاب العقد"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "None"
|
||||
@@ -996,9 +991,8 @@ msgid "Shaders"
|
||||
msgstr "مُظللات"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
#, fuzzy
|
||||
msgid "Shaders (experimental)"
|
||||
msgstr "أراضيٌ عائمة (تجريبية)"
|
||||
msgstr "المظللات (تجريبية)"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Shaders (unavailable)"
|
||||
@@ -1186,9 +1180,8 @@ msgid "Cinematic mode enabled"
|
||||
msgstr "الوضع السينمائي مفعل"
|
||||
|
||||
#: src/client/game.cpp
|
||||
#, fuzzy
|
||||
msgid "Client side scripting is disabled"
|
||||
msgstr "البرمجة النصية للعميل معطلة"
|
||||
msgstr "البرمجة النصية معطلة من جانب العميل"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Connecting to server..."
|
||||
@@ -1199,7 +1192,7 @@ msgid "Continue"
|
||||
msgstr "تابع"
|
||||
|
||||
#: src/client/game.cpp
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Controls:\n"
|
||||
"- %s: move forwards\n"
|
||||
@@ -1222,12 +1215,12 @@ msgstr ""
|
||||
"- %s: سر يسارا\n"
|
||||
"- %s: سر يمينا\n"
|
||||
"- %s: اقفز/تسلق\n"
|
||||
"- %s: احفر/الكم\n"
|
||||
"- %s: ضع/استخدم\n"
|
||||
"- %s: ازحف/انزل\n"
|
||||
"- %s: ارمي عنصر\n"
|
||||
"- %s: افتح المخزن\n"
|
||||
"- تحريك الفأرة: دوران\n"
|
||||
"- زر الفأرة الأيمن: احفر/الكم\n"
|
||||
"- زر الفأرة الأيسر: ضع/استخدم\n"
|
||||
"- عجلة الفأرة: غيير العنصر\n"
|
||||
"- -%s: دردشة\n"
|
||||
|
||||
@@ -1361,11 +1354,11 @@ msgstr "الخريطة المصغرة معطلة من قبل لعبة أو تع
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Noclip mode disabled"
|
||||
msgstr ""
|
||||
msgstr "وضع العقبات مفعل"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Noclip mode enabled"
|
||||
msgstr ""
|
||||
msgstr "وضع القبات معطل"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Noclip mode enabled (note: no 'noclip' privilege)"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: German (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"PO-Revision-Date: 2021-03-02 15:50+0000\n"
|
||||
"Last-Translator: Wuzzy <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.5-dev\n"
|
||||
"X-Generator: Weblate 4.5\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -707,9 +707,8 @@ msgid "Loading..."
|
||||
msgstr "Lädt …"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "Clientseitige Skripte sind deaktiviert"
|
||||
msgstr "Öffentliche Serverliste ist deaktiviert"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -1286,7 +1285,7 @@ msgstr "Unbegrenzte Sichtweite aktiviert"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Zum Hauptmenü"
|
||||
msgstr "Hauptmenü"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Exit to OS"
|
||||
@@ -3038,9 +3037,8 @@ msgid "Enable console window"
|
||||
msgstr "Konsolenfenster aktivieren"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Kreativmodus für neu erstellte Karten aktivieren."
|
||||
msgstr "Kreativmodus für alle Spieler aktivieren"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -6390,9 +6388,8 @@ msgstr ""
|
||||
"Nach Änderung ist ein Neustart erforderlich."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Show nametag backgrounds by default"
|
||||
msgstr "Schrift standardmäßig fett"
|
||||
msgstr "Namensschildhintergründe standardmäßig anzeigen"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -7260,6 +7257,8 @@ msgid ""
|
||||
"Whether nametag backgrounds should be shown by default.\n"
|
||||
"Mods may still set a background."
|
||||
msgstr ""
|
||||
"Ob Namensschildhintergründe standardmäßig angezeigt werden sollen.\n"
|
||||
"Mods können immer noch einen Hintergrund setzen."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Whether node texture animations should be desynchronized per mapblock."
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Greek (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"PO-Revision-Date: 2021-03-22 18:29+0000\n"
|
||||
"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
|
||||
"Language-Team: Greek <https://hosted.weblate.org/projects/minetest/minetest/"
|
||||
"el/>\n"
|
||||
@@ -12,7 +12,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.5-dev\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -24,7 +24,7 @@ msgstr "Πέθανες"
|
||||
|
||||
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
msgstr "Εντάξει"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "An error occurred in a Lua script:"
|
||||
@@ -139,15 +139,15 @@ msgstr ""
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
msgstr "Αποθήκευση"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "World:"
|
||||
msgstr ""
|
||||
msgstr "Κόσμος:"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
msgstr "ενεργοποιήθηκε"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "\"$1\" already exists. Would you like to overwrite it?"
|
||||
@@ -182,15 +182,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "All packages"
|
||||
msgstr ""
|
||||
msgstr "Όλα τα Πακέτα"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Already installed"
|
||||
msgstr ""
|
||||
msgstr "Ήδη εγκαταστημένο"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Back to Main Menu"
|
||||
msgstr ""
|
||||
msgstr "Πίσω στο Κύριο Μενού"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Base Game:"
|
||||
@@ -211,11 +211,11 @@ msgstr ""
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Games"
|
||||
msgstr ""
|
||||
msgstr "Παιχνίδια"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
msgstr "Εγκατάσταση"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Install $1"
|
||||
@@ -236,7 +236,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "No results"
|
||||
msgstr ""
|
||||
msgstr "Χωρίς αποτελέσματα"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "No updates"
|
||||
@@ -244,7 +244,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Not found"
|
||||
msgstr ""
|
||||
msgstr "Δε βρέθηκε"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Overwrite"
|
||||
@@ -264,15 +264,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
msgstr "Απεγκατάσταση"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
msgstr "Ενημέρωση"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update All [$1]"
|
||||
msgstr ""
|
||||
msgstr "Ενημέρωση Όλων [$1]"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "View more information in a web browser"
|
||||
@@ -312,7 +312,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
msgstr "Δημιουργία"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Decorations"
|
||||
@@ -344,7 +344,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
|
||||
msgid "Game"
|
||||
msgstr ""
|
||||
msgstr "Παιχνίδι"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Generate non-fractal terrain: Oceans and underground"
|
||||
@@ -352,7 +352,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Hills"
|
||||
msgstr ""
|
||||
msgstr "Λόφοι"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Humid rivers"
|
||||
@@ -364,7 +364,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Lakes"
|
||||
msgstr ""
|
||||
msgstr "Λίμνες"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Low humidity and high heat causes shallow or dry rivers"
|
||||
@@ -384,7 +384,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Mountains"
|
||||
msgstr ""
|
||||
msgstr "Βουνά"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Mud flow"
|
||||
@@ -396,7 +396,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "No game selected"
|
||||
msgstr ""
|
||||
msgstr "Κανένα παιχνίδι επιλεγμένο"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Reduces heat with altitude"
|
||||
@@ -408,7 +408,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Rivers"
|
||||
msgstr ""
|
||||
msgstr "Ποτάμια"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Sea level rivers"
|
||||
@@ -417,7 +417,7 @@ msgstr ""
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Seed"
|
||||
msgstr ""
|
||||
msgstr "Σπόρος"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Smooth transition between biomes"
|
||||
@@ -467,7 +467,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "World name"
|
||||
msgstr ""
|
||||
msgstr "Όνομα κόσμου"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "You have no games installed."
|
||||
@@ -481,7 +481,7 @@ msgstr ""
|
||||
#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
msgstr "Διαγραφή"
|
||||
|
||||
#: builtin/mainmenu/dlg_delete_content.lua
|
||||
msgid "pkgmgr: failed to delete \"$1\""
|
||||
@@ -497,7 +497,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_rename_modpack.lua
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
msgstr "Αποδοχή"
|
||||
|
||||
#: builtin/mainmenu/dlg_rename_modpack.lua
|
||||
msgid "Rename Modpack:"
|
||||
@@ -523,7 +523,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Browse"
|
||||
msgstr ""
|
||||
msgstr "Περιήγηση"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Disabled"
|
||||
@@ -531,7 +531,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Επεξεργασία"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Enabled"
|
||||
@@ -571,15 +571,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
msgstr "Αναζήτηση"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Select directory"
|
||||
msgstr ""
|
||||
msgstr "Επιλογή φακέλου"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Select file"
|
||||
msgstr ""
|
||||
msgstr "Επιλογή αρχείου"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Show technical names"
|
||||
@@ -666,7 +666,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/pkgmgr.lua
|
||||
msgid "Install: file: \"$1\""
|
||||
msgstr ""
|
||||
msgstr "Εγκατάσταση: αρχείο: \"$1\""
|
||||
|
||||
#: builtin/mainmenu/pkgmgr.lua
|
||||
msgid "Unable to find a valid mod or modpack"
|
||||
@@ -704,11 +704,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Browse online content"
|
||||
msgstr ""
|
||||
msgstr "Περιήγηση διαδικτυακού περιεχομένου"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
msgstr "Περιεχόμενο"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Disable Texture Pack"
|
||||
@@ -716,11 +716,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Information:"
|
||||
msgstr ""
|
||||
msgstr "Πληροφορίες:"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Installed Packages:"
|
||||
msgstr ""
|
||||
msgstr "Εγκαταστημένα Πακέτα:"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "No dependencies."
|
||||
@@ -732,7 +732,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Rename"
|
||||
msgstr ""
|
||||
msgstr "Μετονομασία"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Uninstall Package"
|
||||
@@ -752,7 +752,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid "Credits"
|
||||
msgstr ""
|
||||
msgstr "Μνείες"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid "Open User Data Directory"
|
||||
@@ -802,11 +802,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "Όνομα"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
msgstr "Νέο"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "No world created or selected!"
|
||||
@@ -814,7 +814,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
msgstr "Κωδικός"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Play Game"
|
||||
@@ -822,7 +822,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
msgstr "Θήρα"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select Mods"
|
||||
@@ -830,23 +830,23 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select World:"
|
||||
msgstr ""
|
||||
msgstr "Επιλογή Κόσμου:"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Server Port"
|
||||
msgstr ""
|
||||
msgstr "Θήρα Διακομιστή"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Start Game"
|
||||
msgstr ""
|
||||
msgstr "Εκκίνηση Παιχνιδιού"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Address / Port"
|
||||
msgstr ""
|
||||
msgstr "Διεύθυνση Αποθετηρίου"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
msgstr "Σύνδεση"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Creative mode"
|
||||
@@ -870,7 +870,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Name / Password"
|
||||
msgstr ""
|
||||
msgstr "Όνομα / Κωδικός"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Ping"
|
||||
@@ -899,7 +899,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "All Settings"
|
||||
msgstr ""
|
||||
msgstr "Όλες οι ρυθμίσεις"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Antialiasing:"
|
||||
@@ -915,7 +915,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
|
||||
msgid "Change Keys"
|
||||
msgstr ""
|
||||
msgstr "Αλλαγή πλήκτρων"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Connected Glass"
|
||||
@@ -951,7 +951,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
msgstr "Κανένα"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Opaque Leaves"
|
||||
@@ -971,7 +971,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
msgstr "Ρυθμίσεις"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
|
||||
msgid "Shaders"
|
||||
@@ -1031,7 +1031,7 @@ msgstr ""
|
||||
|
||||
#: src/client/client.cpp
|
||||
msgid "Done!"
|
||||
msgstr ""
|
||||
msgstr "Έτοιμο!"
|
||||
|
||||
#: src/client/client.cpp
|
||||
msgid "Initializing nodes"
|
||||
@@ -1063,7 +1063,7 @@ msgstr ""
|
||||
|
||||
#: src/client/clientlauncher.cpp
|
||||
msgid "Main Menu"
|
||||
msgstr ""
|
||||
msgstr "Κύριο μενού"
|
||||
|
||||
#: src/client/clientlauncher.cpp
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
@@ -1075,7 +1075,7 @@ msgstr ""
|
||||
|
||||
#: src/client/clientlauncher.cpp
|
||||
msgid "Please choose a name!"
|
||||
msgstr ""
|
||||
msgstr "Παρακαλώ επιλέξτε ένα όνομα!"
|
||||
|
||||
#: src/client/clientlauncher.cpp
|
||||
msgid "Provided password file failed to open: "
|
||||
@@ -1095,7 +1095,7 @@ msgstr ""
|
||||
#. When in doubt, test your translation.
|
||||
#: src/client/fontengine.cpp
|
||||
msgid "needs_fallback_font"
|
||||
msgstr "no"
|
||||
msgstr "needs_fallback_font"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid ""
|
||||
@@ -1105,7 +1105,7 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "- Address: "
|
||||
msgstr ""
|
||||
msgstr "- Διεύθυνση: "
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "- Creative Mode: "
|
||||
@@ -1121,7 +1121,7 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "- Port: "
|
||||
msgstr ""
|
||||
msgstr "- Θήρα: "
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "- Public: "
|
||||
@@ -1134,7 +1134,7 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "- Server Name: "
|
||||
msgstr ""
|
||||
msgstr "- Όνομα Διακομιστή: "
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Automatic forward disabled"
|
||||
@@ -1174,7 +1174,7 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
msgstr "Συνέχεια"
|
||||
|
||||
#: src/client/game.cpp
|
||||
#, c-format
|
||||
@@ -1241,11 +1241,11 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Exit to Menu"
|
||||
msgstr ""
|
||||
msgstr "Έξοδος στο Μενού"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
msgstr "Έξοδος στο ΛΣ"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Fast mode disabled"
|
||||
@@ -1281,7 +1281,7 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Game info:"
|
||||
msgstr ""
|
||||
msgstr "Πληροφορίες Παιχνιδιού:"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Game paused"
|
||||
@@ -1365,11 +1365,11 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Sound Volume"
|
||||
msgstr ""
|
||||
msgstr "Ένταση Ήχου"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Sound muted"
|
||||
msgstr ""
|
||||
msgstr "Σίγαση Ήχου"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Sound system is disabled"
|
||||
@@ -1454,7 +1454,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
msgstr "Εκκαθάριση"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Control"
|
||||
@@ -1462,7 +1462,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
msgstr "Κάτω"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "End"
|
||||
@@ -1478,7 +1478,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
msgstr "Βοήθεια"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Home"
|
||||
@@ -1510,7 +1510,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
msgstr "Αριστερά"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Left Button"
|
||||
@@ -1535,7 +1535,7 @@ msgstr ""
|
||||
#. ~ Key name, common on Windows keyboards
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
msgstr "Μενού"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Middle Button"
|
||||
@@ -1619,16 +1619,16 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
msgstr "Παύση"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
msgstr "Αναπαραγωγή"
|
||||
|
||||
#. ~ "Print screen" key
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
msgstr "Εκτύπωση"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Return"
|
||||
@@ -1636,7 +1636,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
msgstr "Δεξιά"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Right Button"
|
||||
@@ -1673,7 +1673,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Sleep"
|
||||
msgstr ""
|
||||
msgstr "Ύπνος"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Snapshot"
|
||||
@@ -1689,7 +1689,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
msgstr "Πάνω"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "X Button 1"
|
||||
@@ -1701,7 +1701,7 @@ msgstr ""
|
||||
|
||||
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
msgstr "Μεγέθυνση"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
msgid "Minimap hidden"
|
||||
@@ -1769,7 +1769,7 @@ msgstr ""
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
msgstr "Εντολή"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Console"
|
||||
@@ -1813,7 +1813,7 @@ msgstr ""
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Key already in use"
|
||||
msgstr ""
|
||||
msgstr "Το πλήκτρο ήδη χρησιμοποιείται"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
@@ -1825,11 +1825,11 @@ msgstr ""
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
msgstr "Σίγαση"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Next item"
|
||||
msgstr ""
|
||||
msgstr "Επόμενο αντικείμενο"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Prev. item"
|
||||
@@ -1841,7 +1841,7 @@ msgstr ""
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
|
||||
msgid "Screenshot"
|
||||
msgstr ""
|
||||
msgstr "Στιγμιότυπο οθόνης"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Sneak"
|
||||
@@ -1889,27 +1889,27 @@ msgstr ""
|
||||
|
||||
#: src/gui/guiPasswordChange.cpp
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
msgstr "Αλλαγή"
|
||||
|
||||
#: src/gui/guiPasswordChange.cpp
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
msgstr "Επιβεβαίωση Κωδικού"
|
||||
|
||||
#: src/gui/guiPasswordChange.cpp
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
msgstr "Νέος Κωδικός"
|
||||
|
||||
#: src/gui/guiPasswordChange.cpp
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
msgstr "Παλιός Κωδικός"
|
||||
|
||||
#: src/gui/guiVolumeChange.cpp
|
||||
msgid "Exit"
|
||||
msgstr ""
|
||||
msgstr "Έξοδος"
|
||||
|
||||
#: src/gui/guiVolumeChange.cpp
|
||||
msgid "Muted"
|
||||
msgstr ""
|
||||
msgstr "Σε σίγαση"
|
||||
|
||||
#: src/gui/guiVolumeChange.cpp
|
||||
msgid "Sound Volume: "
|
||||
@@ -2131,7 +2131,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
msgstr "Για προχωρημένους"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -2245,7 +2245,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Basic"
|
||||
msgstr ""
|
||||
msgstr "Βασικό"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Basic privileges"
|
||||
@@ -2459,7 +2459,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Clouds"
|
||||
msgstr ""
|
||||
msgstr "Σύννεφα"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Clouds are a client side effect."
|
||||
@@ -3103,7 +3103,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Fog"
|
||||
msgstr ""
|
||||
msgstr "Ομίχλη"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Fog start"
|
||||
@@ -3131,7 +3131,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
msgstr "Μέγεθος γραμματοσειράς"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Font size of the default font in point (pt)."
|
||||
@@ -3236,7 +3236,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Full screen"
|
||||
msgstr ""
|
||||
msgstr "Πλήρης οθόνη"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Full screen BPP"
|
||||
@@ -3287,7 +3287,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Gravity"
|
||||
msgstr ""
|
||||
msgstr "Βαρύτητα"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Ground level"
|
||||
@@ -4362,7 +4362,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
msgstr "Γλώσσα"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Large cave depth"
|
||||
@@ -4941,7 +4941,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Mute sound"
|
||||
msgstr ""
|
||||
msgstr "Σίγαση ήχου"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -4969,7 +4969,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
msgstr "Δίκτυο"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -5132,7 +5132,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Player name"
|
||||
msgstr ""
|
||||
msgstr "Όνομα παίκτη"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Player transfer distance"
|
||||
@@ -5389,7 +5389,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
msgstr "Ασφάλεια"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Esperanto (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2020-07-17 08:41+0000\n"
|
||||
"PO-Revision-Date: 2021-03-07 07:10+0000\n"
|
||||
"Last-Translator: Tirifto <tirifto@posteo.cz>\n"
|
||||
"Language-Team: Esperanto <https://hosted.weblate.org/projects/minetest/"
|
||||
"minetest/eo/>\n"
|
||||
@@ -12,7 +12,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.2-dev\n"
|
||||
"X-Generator: Weblate 4.5.1\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -299,9 +299,8 @@ msgid "Altitude chill"
|
||||
msgstr "Alteca malvarmiĝo"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#, fuzzy
|
||||
msgid "Altitude dry"
|
||||
msgstr "Alteca malvarmiĝo"
|
||||
msgstr "Alteca sekeco"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Biome blending"
|
||||
@@ -458,9 +457,8 @@ msgid "Temperate, Desert, Jungle, Tundra, Taiga"
|
||||
msgstr "Milda, Dezerto, Ĝangalo, Tundro, Tajgo"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#, fuzzy
|
||||
msgid "Terrain surface erosion"
|
||||
msgstr "Bruo de terena bazo"
|
||||
msgstr "Terensurfaca forfrotiĝo"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Trees and jungle grass"
|
||||
|
||||
@@ -3,8 +3,8 @@ msgstr ""
|
||||
"Project-Id-Version: Spanish (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-05 09:40+0000\n"
|
||||
"Last-Translator: j45 minetest <j45minetest@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-04-08 18:26+0000\n"
|
||||
"Last-Translator: David Leal <halfpacho@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.5-dev\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -706,9 +706,8 @@ msgid "Loading..."
|
||||
msgstr "Cargando..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "El Scripting en el lado del cliente está desactivado"
|
||||
msgstr "La lista de servidores públicos está desactivada"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -1451,7 +1450,7 @@ msgstr "Volumen cambiado a %d%%"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Wireframe shown"
|
||||
msgstr "Líneas 3D mostradas"
|
||||
msgstr "Lineas 3D mostradas"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Zoom currently disabled by game or mod"
|
||||
@@ -1540,7 +1539,7 @@ msgstr "Convertir IME"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "IME Escape"
|
||||
msgstr "Escapada de IME"
|
||||
msgstr "Escape IME"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "IME Mode Change"
|
||||
@@ -2687,7 +2686,7 @@ msgstr "Altura de consola"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "ContentDB Flag Blacklist"
|
||||
msgstr "Lista negra de banderas de ContentDB"
|
||||
msgstr "Lista negra de Contenido de la Base de Datos"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "ContentDB Max Concurrent Downloads"
|
||||
@@ -2766,7 +2765,7 @@ msgid ""
|
||||
"Also controls the object crosshair color"
|
||||
msgstr ""
|
||||
"Alfa del punto de mira (opacidad, entre 0 y 255).\n"
|
||||
"También controla el color del objeto punto de mira."
|
||||
"También controla el color del objeto punto de mira"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Crosshair color"
|
||||
@@ -3032,9 +3031,8 @@ msgid "Enable console window"
|
||||
msgstr "Habilitar la ventana de la consola"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Habilitar el modo creativo para los nuevos mapas creados."
|
||||
msgstr "Activar el modo creativo para todos los jugadores"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -3181,11 +3179,19 @@ msgid ""
|
||||
"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
|
||||
"flatter lowlands, suitable for a solid floatland layer."
|
||||
msgstr ""
|
||||
"Exponente de la estrechez de tierra flotante. Altera el comportamiento de la "
|
||||
"estrechez.\n"
|
||||
"Valor = 1.0 crea una estrechez uniforme y lineal.\n"
|
||||
"Valores > 1.0 crea una estrechez suave apropiada para las tierras flotantes "
|
||||
"separadas\n"
|
||||
"por defecto.\n"
|
||||
"Valores < 1.0 (0.25, por ejemplo) crea un nivel de superficie más definida "
|
||||
"con \n"
|
||||
"tierras bajas más planas, apropiada para una capa de tierra flotante sólida."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "FPS when unfocused or paused"
|
||||
msgstr "FPS máximos cuando el juego está pausado."
|
||||
msgstr "FPS cuando está en segundo plano o pausado"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "FSAA"
|
||||
@@ -3304,39 +3310,32 @@ msgid "Fixed virtual joystick"
|
||||
msgstr "Joystick virtual fijo"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland density"
|
||||
msgstr "Densidad de las montañas en tierras flotantes"
|
||||
msgstr "Densidad de las tierras flotantes"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland maximum Y"
|
||||
msgstr "Mazmorras, máx. Y"
|
||||
msgstr "Máximo valor de Y de las tierras flotantes"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland minimum Y"
|
||||
msgstr "Mazmorras, mín. Y"
|
||||
msgstr "Mínimo valor de Y de las tierras flotantes"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland noise"
|
||||
msgstr "Ruido base para tierra flotante"
|
||||
msgstr "Ruido de la tierra flotante"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland taper exponent"
|
||||
msgstr "Exponente de las montañas en tierras flotantes"
|
||||
msgstr "Exponente de la cónica de las tierras flotantes"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland tapering distance"
|
||||
msgstr "Ruido base para tierra flotante"
|
||||
msgstr "Distancia de cónico de la tierra flotante"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland water level"
|
||||
msgstr "Nivel de tierra flotante"
|
||||
msgstr "Nivel de agua de la tierra flotante"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Fly key"
|
||||
@@ -3582,7 +3581,6 @@ msgid "HUD toggle key"
|
||||
msgstr "Tecla de cambio del HUD"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Handling for deprecated Lua API calls:\n"
|
||||
"- none: Do not log deprecated calls\n"
|
||||
@@ -3590,10 +3588,9 @@ msgid ""
|
||||
"- error: abort on usage of deprecated call (suggested for mod developers)."
|
||||
msgstr ""
|
||||
"Manejo de llamadas a la API de Lua en desuso:\n"
|
||||
"- legacy: (intentar) imitar el comportamiento antiguo (por defecto para la "
|
||||
"liberación).\n"
|
||||
"- log: imitar y registrar la pista de seguimiento de la llamada en desuso "
|
||||
"(predeterminado para la depuración).\n"
|
||||
"- none: no registrar llamadas en desuso.\n"
|
||||
"- log: imitar y registrar la pista de seguimiento de la llamada en desuso ("
|
||||
"predeterminado para la depuración).\n"
|
||||
"- error: abortar el uso de la llamada en desuso (sugerido para "
|
||||
"desarrolladores de mods)."
|
||||
|
||||
@@ -4021,9 +4018,8 @@ msgstr ""
|
||||
"Altura de la consola de chat en el juego, entre 0.1 (10%) y 1.0 (100%)."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Inc. volume key"
|
||||
msgstr "Tecla de la consola"
|
||||
msgstr "Tecla para subir volumen"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Initial vertical speed when jumping, in nodes per second."
|
||||
@@ -4097,9 +4093,8 @@ msgid "Invert vertical mouse movement."
|
||||
msgstr "Invertir movimiento vertical del ratón."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Italic font path"
|
||||
msgstr "Ruta de fuentes"
|
||||
msgstr "Ruta de fuente cursiva"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Italic monospace font path"
|
||||
@@ -4134,9 +4129,8 @@ msgid "Joystick button repetition interval"
|
||||
msgstr "Intervalo de repetición del botón del Joystick"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Joystick deadzone"
|
||||
msgstr "Tipo de Joystick"
|
||||
msgstr "Zona muerta del joystick"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Joystick frustum sensitivity"
|
||||
@@ -4241,13 +4235,12 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for digging.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para saltar.\n"
|
||||
"Tecla para cavar.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -4395,299 +4388,274 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for placing.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para saltar.\n"
|
||||
"Tecla para colocar.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 11th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 11 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 12th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 12 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 13th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 13 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 14th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el decimocuarto elemento en la barra de acceso "
|
||||
"directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 15th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el decimoquinto elemento en la barra de acceso "
|
||||
"directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 16th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 16 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 17th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 17 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 18th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 18 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 19th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 19 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 20th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 20 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 21st hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 21 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 22nd hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 22 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 23rd hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 23 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 24th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 24 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 25th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 25 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 26th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 26 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 27th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 27 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 28th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 28 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 29th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 29 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 30th hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 30 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 31st hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 31 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the 32nd hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el elemento 32 en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the eighth hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el octavo elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the fifth hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el quinto elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the first hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el primer elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the fourth hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el cuarto elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -4702,13 +4670,12 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the ninth hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el noveno elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -4723,57 +4690,52 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the second hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el segundo elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the seventh hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el septimo elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the sixth hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el sexto elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the tenth hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el decimo elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for selecting the third hotbar slot.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para seleccionar el siguiente elemento en la barra de acceso directo.\n"
|
||||
"Tecla para seleccionar el tercer elemento en la barra de acceso directo.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -4812,13 +4774,12 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for toggling autoforward.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para mover el jugador hacia delante.\n"
|
||||
"Tecla activar/desactivar el avance automatico.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -4873,13 +4834,12 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for toggling pitch move mode.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para silenciar el juego.\n"
|
||||
"Tecla activar/desactivar el modo de inclinacion.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -4895,13 +4855,12 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for toggling the display of chat.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para desplazar el jugador hacia la izquierda.\n"
|
||||
"Tecla para activar/desactivar el chat.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -4917,13 +4876,12 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for toggling the display of fog.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tecla para desplazar el jugador hacia la izquierda.\n"
|
||||
"Tecla para activar/desactivar visualización de niebla.\n"
|
||||
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -5011,9 +4969,8 @@ msgid "Large cave proportion flooded"
|
||||
msgstr "Proporción de cuevas grandes inundadas"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Large chat console key"
|
||||
msgstr "Tecla de la consola"
|
||||
msgstr "Tecla de la consola del chat grande"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Leaves style"
|
||||
@@ -5092,34 +5049,34 @@ msgstr "Aumento medio del centro de la curva de luz"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Light curve boost center"
|
||||
msgstr ""
|
||||
msgstr "Centro de impulso de curva de luz"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Light curve boost spread"
|
||||
msgstr ""
|
||||
msgstr "Dispersión de impulso de curva de luz"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Light curve gamma"
|
||||
msgstr ""
|
||||
msgstr "Gamma de la curva de luz"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Light curve high gradient"
|
||||
msgstr ""
|
||||
msgstr "Curva de luz de alto gradiente"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Light curve low gradient"
|
||||
msgstr ""
|
||||
msgstr "Curva de luz de bajo gradiente"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
|
||||
"Only mapchunks completely within the mapgen limit are generated.\n"
|
||||
"Value is stored per-world."
|
||||
msgstr ""
|
||||
"Límite de la generación de mapa, en nodos, en todas las 6 direcciones desde "
|
||||
"(0, 0, 0).\n"
|
||||
"Solo las porciones de terreno dentro de los límites son generadas.\n"
|
||||
"Límite de la generación de mapa, en nodos, en todas las 6 direcciones desde ("
|
||||
"0, 0, 0).\n"
|
||||
"Solo se generan fragmentos de mapa completamente dentro del límite de "
|
||||
"generación de mapas.\n"
|
||||
"Los valores se guardan por mundo."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
@@ -5130,6 +5087,11 @@ msgid ""
|
||||
"- Downloads performed by main menu (e.g. mod manager).\n"
|
||||
"Only has an effect if compiled with cURL."
|
||||
msgstr ""
|
||||
"Limita el número de solicitudes HTTP paralelas. Afecta:\n"
|
||||
"- Recuperación de medios si el servidor utiliza remote_media setting.\n"
|
||||
"- Descarga de la lista de servidores y anuncio del servidor.\n"
|
||||
"- Descargas realizadas por el menú principal (por ejemplo, gestor de mods).\n"
|
||||
"Sólo tiene un efecto si se compila con cURL."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Liquid fluidity"
|
||||
@@ -5141,28 +5103,27 @@ msgstr "Suavizado de la fluidez líquida"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Liquid loop max"
|
||||
msgstr ""
|
||||
msgstr "Bucle de máximo líquido"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Liquid queue purge time"
|
||||
msgstr ""
|
||||
msgstr "Tiempo de purga de colas de líquidos"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Liquid sinking"
|
||||
msgstr "Velocidad de descenso"
|
||||
msgstr "Hundimiento del líquido"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Liquid update interval in seconds."
|
||||
msgstr ""
|
||||
msgstr "Intervalo de actualización del líquido en segundos."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Liquid update tick"
|
||||
msgstr ""
|
||||
msgstr "Tick de actualización de los líquidos"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Load the game profiler"
|
||||
msgstr ""
|
||||
msgstr "Cargar el generador de perfiles del juego"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -5170,11 +5131,14 @@ msgid ""
|
||||
"Provides a /profiler command to access the compiled profile.\n"
|
||||
"Useful for mod developers and server operators."
|
||||
msgstr ""
|
||||
"Cargue el generador de perfiles de juego para recopilar datos de generación "
|
||||
"de perfiles de juegos.\n"
|
||||
"Proporciona un comando /profiler para tener acceso al perfil compilado.\n"
|
||||
"Útil para desarrolladores de mods y operadores de servidores."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Loading Block Modifiers"
|
||||
msgstr "Intervalo de modificador de bloques activos"
|
||||
msgstr "Carga de modificadores de bloque"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Lower Y limit of dungeons."
|
||||
@@ -5206,11 +5170,11 @@ msgstr "Vuelve opacos a todos los líquidos"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map Compression Level for Disk Storage"
|
||||
msgstr ""
|
||||
msgstr "Nivel de comprensión del mapa para almacenamiento de disco"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map Compression Level for Network Transfer"
|
||||
msgstr ""
|
||||
msgstr "Nivel de comprensión del mapa para transferencias por la red"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map directory"
|
||||
@@ -5218,7 +5182,7 @@ msgstr "Directorio de mapas"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map generation attributes specific to Mapgen Carpathian."
|
||||
msgstr ""
|
||||
msgstr "Atributos de generación de mapas específicos de Mapgen Carpathian."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -5234,6 +5198,9 @@ msgid ""
|
||||
"'terrain' enables the generation of non-fractal terrain:\n"
|
||||
"ocean, islands and underground."
|
||||
msgstr ""
|
||||
"Atributos de generación de mapas específicos de Mapgen Fractal.\n"
|
||||
"'terreno' permite la generación de terrenos no fractales:\n"
|
||||
"océanos, islas y subterráneo."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -5244,10 +5211,17 @@ msgid ""
|
||||
"to become shallower and occasionally dry.\n"
|
||||
"'altitude_dry': Reduces humidity with altitude."
|
||||
msgstr ""
|
||||
"Atributos de generación de mapas específicos del generador de mapas Valleys."
|
||||
"\n"
|
||||
"'altitude_chill': Reduce el calor con la altitud.\n"
|
||||
"'humid_rivers': Aumenta la humedad alrededor de ríos.\n"
|
||||
"'vary_river_depth': Si está activo, la baja humedad y alto calor causan que "
|
||||
"los ríos sean poco profundos y ocasionalmente secos.\n"
|
||||
"'altitude_dry': Reduce la humedad con la altitud."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map generation attributes specific to Mapgen v5."
|
||||
msgstr ""
|
||||
msgstr "Atributos de generación de mapas específicos al generador de mapas v5."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -7115,7 +7089,7 @@ msgstr "Tiempo de espera de descarga por cURL"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "cURL parallel limit"
|
||||
msgstr ""
|
||||
msgstr "Límite de cURL en paralelo"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "cURL timeout"
|
||||
|
||||
@@ -3,8 +3,8 @@ msgstr ""
|
||||
"Project-Id-Version: Estonian (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2020-12-05 15:29+0000\n"
|
||||
"Last-Translator: Janar Leas <janar.leas@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-03-02 15:50+0000\n"
|
||||
"Last-Translator: Ayes <andris.sass@gmail.com>\n"
|
||||
"Language-Team: Estonian <https://hosted.weblate.org/projects/minetest/"
|
||||
"minetest/et/>\n"
|
||||
"Language: et\n"
|
||||
@@ -12,7 +12,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.4-dev\n"
|
||||
"X-Generator: Weblate 4.5\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -153,7 +153,7 @@ msgstr "Sisse lülitatud"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "\"$1\" already exists. Would you like to overwrite it?"
|
||||
msgstr ""
|
||||
msgstr "\"$1\" on juba olemas. Kas sa tahad seda üle kirjutada?"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 and $2 dependencies will be installed."
|
||||
@@ -170,9 +170,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 downloading..."
|
||||
msgstr "Allalaadimine..."
|
||||
msgstr "$1 allalaadimine..."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 required dependencies could not be found."
|
||||
@@ -180,29 +179,27 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 will be installed, and $2 dependencies will be skipped."
|
||||
msgstr ""
|
||||
msgstr "Installitakse $1 ja $2 sõltuvus jäetakse vahele."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "All packages"
|
||||
msgstr "Kõik pakid"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Already installed"
|
||||
msgstr "Nupp juba kasutuses"
|
||||
msgstr "Juba installeeritud"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Back to Main Menu"
|
||||
msgstr "Tagasi peamenüüsse"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Base Game:"
|
||||
msgstr "Võõrusta"
|
||||
msgstr "Põhi Mäng:"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "ContentDB is not available when Minetest was compiled without cURL"
|
||||
msgstr ""
|
||||
msgstr "ContentDB ei ole olemas kui Minetest on kompileeritud ilma cURL'ita"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Downloading..."
|
||||
@@ -222,14 +219,13 @@ msgid "Install"
|
||||
msgstr "Paigalda"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install $1"
|
||||
msgstr "Paigalda"
|
||||
msgstr "Paigalda $1"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install missing dependencies"
|
||||
msgstr "Valikulised sõltuvused:"
|
||||
msgstr "Paigalda valikulised sõltuvused"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
@@ -245,21 +241,21 @@ msgid "No results"
|
||||
msgstr "Tulemused puuduvad"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "No updates"
|
||||
msgstr "Uuenda"
|
||||
msgstr "Värskendusi pole"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Not found"
|
||||
msgstr ""
|
||||
msgstr "Ei leitud"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Overwrite"
|
||||
msgstr ""
|
||||
msgstr "Ümber kirjuta"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Please check that the base game is correct."
|
||||
msgstr ""
|
||||
msgstr "Palun tee kindlaks et põhi mäng on õige."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Queued"
|
||||
@@ -279,11 +275,11 @@ msgstr "Uuenda"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update All [$1]"
|
||||
msgstr ""
|
||||
msgstr "Uuenda kõiki [$1]"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "View more information in a web browser"
|
||||
msgstr ""
|
||||
msgstr "Vaata rohkem infot veebibrauseris"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "A world named \"$1\" already exists"
|
||||
@@ -705,9 +701,8 @@ msgid "Loading..."
|
||||
msgstr "Laadimine..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "Kliendipoolne skriptimine on keelatud"
|
||||
msgstr "Avalike serverite loend on keelatud"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -768,9 +763,8 @@ msgid "Credits"
|
||||
msgstr "Tegijad"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
#, fuzzy
|
||||
msgid "Open User Data Directory"
|
||||
msgstr "Vali kataloog"
|
||||
msgstr "Avalik Kasutaja Andmete Kaust"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid ""
|
||||
@@ -816,7 +810,7 @@ msgstr "Lisa mänge sisuvaramust"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "Nimi"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "New"
|
||||
@@ -840,9 +834,8 @@ msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Select Mods"
|
||||
msgstr "Vali maailm:"
|
||||
msgstr "Vali mod"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select World:"
|
||||
@@ -996,7 +989,7 @@ msgstr "Varjutajad"
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
#, fuzzy
|
||||
msgid "Shaders (experimental)"
|
||||
msgstr "Lendsaared (katseline)"
|
||||
msgstr "Shaderid (eksperimentaalsed)"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Shaders (unavailable)"
|
||||
@@ -1196,7 +1189,7 @@ msgid "Continue"
|
||||
msgstr "Jätka"
|
||||
|
||||
#: src/client/game.cpp
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Controls:\n"
|
||||
"- %s: move forwards\n"
|
||||
@@ -1219,12 +1212,12 @@ msgstr ""
|
||||
"- %s: liigu vasakule\n"
|
||||
"- %s: liigu paremale\n"
|
||||
"- %s: hüppa/roni\n"
|
||||
"- %s: kaeva/viruta\n"
|
||||
"- %s: paigalda/kasuta\n"
|
||||
"- %s: hiili/mine alla\n"
|
||||
"- %s: viska ese\n"
|
||||
"- %s: seljakott\n"
|
||||
"- Hiir: keera/vaata\n"
|
||||
"- Hiire vasakklõps: kaeva/viruta\n"
|
||||
"- Hiire paremklõps: paigalda/kasuta\n"
|
||||
"- Hiireratas: vali ese\n"
|
||||
"- %s: vestlus\n"
|
||||
|
||||
@@ -1341,16 +1334,18 @@ msgid "Item definitions..."
|
||||
msgstr "Esemete määratlused..."
|
||||
|
||||
#: src/client/game.cpp
|
||||
#, fuzzy
|
||||
msgid "KiB/s"
|
||||
msgstr ""
|
||||
msgstr "KiB/s"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Media..."
|
||||
msgstr "Meedia..."
|
||||
|
||||
#: src/client/game.cpp
|
||||
#, fuzzy
|
||||
msgid "MiB/s"
|
||||
msgstr ""
|
||||
msgstr "MiB/s"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Minimap currently disabled by game or mod"
|
||||
@@ -1444,9 +1439,9 @@ msgid "Viewing range is at minimum: %d"
|
||||
msgstr "Vaate kaugus on vähim võimalik: %d"
|
||||
|
||||
#: src/client/game.cpp
|
||||
#, c-format
|
||||
#, c-format, fuzzy
|
||||
msgid "Volume changed to %d%%"
|
||||
msgstr ""
|
||||
msgstr "helitugevus muutetud %d%%-ks"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Wireframe shown"
|
||||
@@ -1454,11 +1449,11 @@ msgstr ""
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "Zoom currently disabled by game or mod"
|
||||
msgstr ""
|
||||
msgstr "Suumimine on praegu mängu või modi tõttu keelatud"
|
||||
|
||||
#: src/client/game.cpp
|
||||
msgid "ok"
|
||||
msgstr ""
|
||||
msgstr "sobib"
|
||||
|
||||
#: src/client/gameui.cpp
|
||||
msgid "Chat hidden"
|
||||
@@ -1495,7 +1490,7 @@ msgstr "Tagasinihe"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Caps Lock"
|
||||
msgstr ""
|
||||
msgstr "Suurtähelukk"
|
||||
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Clear"
|
||||
@@ -1753,14 +1748,14 @@ msgid "Minimap hidden"
|
||||
msgstr "Pisikaart peidetud"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Minimap in radar mode, Zoom x%d"
|
||||
msgstr "Radarkaart, Suurendus ×1"
|
||||
msgstr "Radarkaart, Suurendus ×%d"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Minimap in surface mode, Zoom x%d"
|
||||
msgstr "Pinnakaart, Suurendus ×1"
|
||||
msgstr "Pinnakaart, Suurendus ×%d"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy
|
||||
@@ -1773,7 +1768,7 @@ msgstr "Paroolid ei ole samad!"
|
||||
|
||||
#: src/gui/guiConfirmRegistration.cpp
|
||||
msgid "Register and Join"
|
||||
msgstr ""
|
||||
msgstr "Registreeru ja liitu"
|
||||
|
||||
#: src/gui/guiConfirmRegistration.cpp
|
||||
#, c-format
|
||||
@@ -1799,7 +1794,7 @@ msgstr "Iseastuja"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
|
||||
msgid "Automatic jumping"
|
||||
msgstr ""
|
||||
msgstr "Automaatne hüppamine"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Backward"
|
||||
@@ -1872,16 +1867,18 @@ msgid "Local command"
|
||||
msgstr "Kohalik käsk"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
#, fuzzy
|
||||
msgid "Mute"
|
||||
msgstr ""
|
||||
msgstr "Summuta"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Next item"
|
||||
msgstr "Järgmine üksus"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
#, fuzzy
|
||||
msgid "Prev. item"
|
||||
msgstr ""
|
||||
msgstr "Eelmine asi"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Range select"
|
||||
@@ -1966,8 +1963,9 @@ msgstr "Hääle Volüüm: "
|
||||
#. ~ Imperative, as in "Enter/type in text".
|
||||
#. Don't forget the space.
|
||||
#: src/gui/modalMenu.cpp
|
||||
#, fuzzy
|
||||
msgid "Enter "
|
||||
msgstr ""
|
||||
msgstr "Sisesta "
|
||||
|
||||
#. ~ DO NOT TRANSLATE THIS LITERALLY!
|
||||
#. This is a special string which needs to contain the translation's
|
||||
@@ -2046,7 +2044,7 @@ msgstr "3D pilved"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "3D mode"
|
||||
msgstr ""
|
||||
msgstr "3D-režiim"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "3D mode parallax strength"
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-01 05:52+0000\n"
|
||||
"Last-Translator: Tviljan <virallinen@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-04-10 15:49+0000\n"
|
||||
"Last-Translator: Markus Mikkonen <markus.mikkonen@outlook.com>\n"
|
||||
"Language-Team: Finnish <https://hosted.weblate.org/projects/minetest/"
|
||||
"minetest/fi/>\n"
|
||||
"Language: fi\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.5-dev\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -33,7 +33,7 @@ msgstr "OK"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "An error occurred in a Lua script:"
|
||||
msgstr ""
|
||||
msgstr "Lua-skriptissä tapahtui virhe:"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "An error occurred:"
|
||||
@@ -41,7 +41,7 @@ msgstr "Tapahtui virhe:"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "Main menu"
|
||||
msgstr ""
|
||||
msgstr "Päävalikko"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "Reconnect"
|
||||
@@ -49,27 +49,27 @@ msgstr "Yhdistä uudelleen"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "The server has requested a reconnect:"
|
||||
msgstr ""
|
||||
msgstr "Palvelin pyysi yhteyden muodostamista uudelleen:"
|
||||
|
||||
#: builtin/mainmenu/common.lua
|
||||
msgid "Protocol version mismatch. "
|
||||
msgstr ""
|
||||
msgstr "Protokollaversiot epäyhteensopivat. "
|
||||
|
||||
#: builtin/mainmenu/common.lua
|
||||
msgid "Server enforces protocol version $1. "
|
||||
msgstr ""
|
||||
msgstr "Palvelin vaatii protokollaversion $1. "
|
||||
|
||||
#: builtin/mainmenu/common.lua
|
||||
msgid "Server supports protocol versions between $1 and $2. "
|
||||
msgstr ""
|
||||
msgstr "Palvelin tukee protokollaversioita välillä $1 ja $2. "
|
||||
|
||||
#: builtin/mainmenu/common.lua
|
||||
msgid "We only support protocol version $1."
|
||||
msgstr ""
|
||||
msgstr "Tuemme vain protokollaversiota $1."
|
||||
|
||||
#: builtin/mainmenu/common.lua
|
||||
msgid "We support protocol versions between version $1 and $2."
|
||||
msgstr ""
|
||||
msgstr "Tuemme protokollaversioita välillä $1 ja $2."
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
@@ -80,50 +80,52 @@ msgstr ""
|
||||
#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
|
||||
#: src/gui/guiPasswordChange.cpp
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Peruuta"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Dependencies:"
|
||||
msgstr ""
|
||||
msgstr "Riippuvuudet:"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "Disable all"
|
||||
msgstr ""
|
||||
msgstr "Poista kaikki käytöstä"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "Disable modpack"
|
||||
msgstr ""
|
||||
msgstr "Poista modipaketti käytöstä"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "Enable all"
|
||||
msgstr ""
|
||||
msgstr "Ota kaikki käyttöön"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "Enable modpack"
|
||||
msgstr ""
|
||||
msgstr "Ota modipaketti käyttöön"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid ""
|
||||
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
|
||||
"characters [a-z0-9_] are allowed."
|
||||
msgstr ""
|
||||
"Modin \"$1\" käyttöönotto epäonnistui, koska se sisälsi sallimattomia "
|
||||
"merkkejä. Vain merkit [a-z0-9_] ovat sallittuja."
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "Find More Mods"
|
||||
msgstr ""
|
||||
msgstr "Löydä lisää modeja"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "Mod:"
|
||||
msgstr ""
|
||||
msgstr "Modi:"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "No (optional) dependencies"
|
||||
msgstr ""
|
||||
msgstr "Ei (valinnaisia) riippuvuuksia"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "No game description provided."
|
||||
msgstr ""
|
||||
msgstr "Pelin kuvausta ei ole annettu."
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "No hard dependencies"
|
||||
@@ -131,15 +133,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "No modpack description provided."
|
||||
msgstr ""
|
||||
msgstr "Modipaketin kuvausta ei annettu."
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "No optional dependencies"
|
||||
msgstr ""
|
||||
msgstr "Ei valinnaisia riippuvuuksia"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
|
||||
msgid "Optional dependencies:"
|
||||
msgstr ""
|
||||
msgstr "Valinnaiset riippuvuudet:"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
|
||||
@@ -152,7 +154,7 @@ msgstr "Maailma:"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
msgstr "käytössä"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "\"$1\" already exists. Would you like to overwrite it?"
|
||||
@@ -173,9 +175,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 downloading..."
|
||||
msgstr "Ladataan..."
|
||||
msgstr "$1 latautuu..."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 required dependencies could not be found."
|
||||
@@ -187,15 +188,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "All packages"
|
||||
msgstr ""
|
||||
msgstr "Kaikki paketit"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Already installed"
|
||||
msgstr ""
|
||||
msgstr "Asennettu jo"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Back to Main Menu"
|
||||
msgstr ""
|
||||
msgstr "Takaisin päävalikkoon"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Base Game:"
|
||||
@@ -203,37 +204,37 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "ContentDB is not available when Minetest was compiled without cURL"
|
||||
msgstr ""
|
||||
msgstr "ContentDB ei ole saatavilla, jos Minetest on koottu ilman cURLia"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Downloading..."
|
||||
msgstr ""
|
||||
msgstr "Ladataan..."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Failed to download $1"
|
||||
msgstr ""
|
||||
msgstr "Epäonnistui ladata $1"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Games"
|
||||
msgstr ""
|
||||
msgstr "Pelit"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
msgstr "Asenna"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Install $1"
|
||||
msgstr ""
|
||||
msgstr "Asenna $1"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Install missing dependencies"
|
||||
msgstr ""
|
||||
msgstr "Asenna puuttuvat riippuvuudet"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Mods"
|
||||
msgstr ""
|
||||
msgstr "Modit"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "No packages could be retrieved"
|
||||
@@ -241,11 +242,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "No results"
|
||||
msgstr ""
|
||||
msgstr "Ei tuloksia"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "No updates"
|
||||
msgstr ""
|
||||
msgstr "Ei päivityksiä"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Not found"
|
||||
@@ -253,7 +254,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Overwrite"
|
||||
msgstr ""
|
||||
msgstr "Ylikirjoita"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Please check that the base game is correct."
|
||||
@@ -265,19 +266,19 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Texture packs"
|
||||
msgstr ""
|
||||
msgstr "Tekstuuripaketit"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
msgstr "Poista"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
msgstr "Päivitä"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update All [$1]"
|
||||
msgstr ""
|
||||
msgstr "Päivitä kaikki [$1]"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "View more information in a web browser"
|
||||
@@ -285,7 +286,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "A world named \"$1\" already exists"
|
||||
msgstr ""
|
||||
msgstr "Maailma nimellä \"$1\" on jo olemassa"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Additional terrain"
|
||||
@@ -305,7 +306,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Biomes"
|
||||
msgstr ""
|
||||
msgstr "Biomit"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Caverns"
|
||||
@@ -313,11 +314,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Caves"
|
||||
msgstr ""
|
||||
msgstr "Luolat"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
msgstr "Luo"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Decorations"
|
||||
@@ -325,11 +326,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Download a game, such as Minetest Game, from minetest.net"
|
||||
msgstr ""
|
||||
msgstr "Lataa peli, kuten Minetest Game, minetest.netistä"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Download one from minetest.net"
|
||||
msgstr ""
|
||||
msgstr "Lataa yksi minetest.netistä"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Dungeons"
|
||||
@@ -337,7 +338,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Flat terrain"
|
||||
msgstr ""
|
||||
msgstr "Tasainen maasto"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Floating landmasses in the sky"
|
||||
@@ -349,7 +350,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
|
||||
msgid "Game"
|
||||
msgstr ""
|
||||
msgstr "Peli"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Generate non-fractal terrain: Oceans and underground"
|
||||
@@ -357,7 +358,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Hills"
|
||||
msgstr ""
|
||||
msgstr "Mäet"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Humid rivers"
|
||||
@@ -389,7 +390,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Mountains"
|
||||
msgstr ""
|
||||
msgstr "Vuoret"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Mud flow"
|
||||
@@ -401,7 +402,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "No game selected"
|
||||
msgstr ""
|
||||
msgstr "Ei peliä valittu"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Reduces heat with altitude"
|
||||
@@ -422,7 +423,7 @@ msgstr ""
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Seed"
|
||||
msgstr ""
|
||||
msgstr "Siemen"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Smooth transition between biomes"
|
||||
@@ -472,21 +473,21 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "World name"
|
||||
msgstr ""
|
||||
msgstr "Maailman nimi"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "You have no games installed."
|
||||
msgstr ""
|
||||
msgstr "Sinulla ei ole pelejä asennettuna."
|
||||
|
||||
#: builtin/mainmenu/dlg_delete_content.lua
|
||||
msgid "Are you sure you want to delete \"$1\"?"
|
||||
msgstr ""
|
||||
msgstr "Oletko varma että haluat poistaa \"$1\":n?"
|
||||
|
||||
#: builtin/mainmenu/dlg_delete_content.lua
|
||||
#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua
|
||||
#: src/client/keycode.cpp
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
msgstr "Poista"
|
||||
|
||||
#: builtin/mainmenu/dlg_delete_content.lua
|
||||
msgid "pkgmgr: failed to delete \"$1\""
|
||||
@@ -498,11 +499,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_delete_world.lua
|
||||
msgid "Delete World \"$1\"?"
|
||||
msgstr ""
|
||||
msgstr "Poista maailma \"$1\"?"
|
||||
|
||||
#: builtin/mainmenu/dlg_rename_modpack.lua
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
msgstr "Hyväksy"
|
||||
|
||||
#: builtin/mainmenu/dlg_rename_modpack.lua
|
||||
msgid "Rename Modpack:"
|
||||
@@ -524,23 +525,23 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "< Back to Settings page"
|
||||
msgstr ""
|
||||
msgstr "< Takaisin asetussivulle"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Browse"
|
||||
msgstr ""
|
||||
msgstr "Selaa"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
msgstr "Poistettu käytöstä"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Muokkaa"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
msgstr "Otettu käyttöön"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Lacunarity"
|
||||
@@ -576,19 +577,19 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
msgstr "Etsi"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Select directory"
|
||||
msgstr ""
|
||||
msgstr "Valitse hakemisto"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Select file"
|
||||
msgstr ""
|
||||
msgstr "Valitse tiedosto"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Show technical names"
|
||||
msgstr ""
|
||||
msgstr "Näytä tekniset nimet"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "The value must be at least $1."
|
||||
@@ -600,7 +601,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "X"
|
||||
msgstr ""
|
||||
msgstr "X"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "X spread"
|
||||
@@ -608,7 +609,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Y"
|
||||
msgstr ""
|
||||
msgstr "Y"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Y spread"
|
||||
@@ -616,7 +617,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Z"
|
||||
msgstr ""
|
||||
msgstr "Z"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Z spread"
|
||||
@@ -647,7 +648,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/pkgmgr.lua
|
||||
msgid "$1 (Enabled)"
|
||||
msgstr ""
|
||||
msgstr "$1 (Käytössä)"
|
||||
|
||||
#: builtin/mainmenu/pkgmgr.lua
|
||||
msgid "$1 mods"
|
||||
@@ -704,6 +705,8 @@ msgstr ""
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
msgstr ""
|
||||
"Kokeile ottaa julkinen palvelinlista uudelleen käyttöön ja tarkista "
|
||||
"internetyhteytesi."
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Browse online content"
|
||||
@@ -715,7 +718,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Disable Texture Pack"
|
||||
msgstr ""
|
||||
msgstr "Poista tekstuuripaketti käytöstä"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Information:"
|
||||
@@ -723,27 +726,27 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Installed Packages:"
|
||||
msgstr ""
|
||||
msgstr "Asennetut paketit:"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "No dependencies."
|
||||
msgstr ""
|
||||
msgstr "Ei riippuvuuksia."
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "No package description available"
|
||||
msgstr ""
|
||||
msgstr "Ei paketin kuvausta saatavilla"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Rename"
|
||||
msgstr ""
|
||||
msgstr "Nimeä uudelleen"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Uninstall Package"
|
||||
msgstr ""
|
||||
msgstr "Poista paketti"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Use Texture Pack"
|
||||
msgstr ""
|
||||
msgstr "Käytä tekstuuripakettia"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid "Active Contributors"
|
||||
@@ -785,7 +788,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
msgstr "Luova tila"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Enable Damage"
|
||||
@@ -809,7 +812,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
msgstr "Uusi"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "No world created or selected!"
|
||||
@@ -821,11 +824,11 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Play Game"
|
||||
msgstr ""
|
||||
msgstr "Pelaa peliä"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
msgstr "Portti"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select Mods"
|
||||
@@ -833,7 +836,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select World:"
|
||||
msgstr ""
|
||||
msgstr "Valitse maailma:"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Server Port"
|
||||
@@ -845,15 +848,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Address / Port"
|
||||
msgstr ""
|
||||
msgstr "Osoite / Portti"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
msgstr "Yhdistä"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Creative mode"
|
||||
msgstr ""
|
||||
msgstr "Luova tila"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Damage enabled"
|
||||
@@ -865,19 +868,19 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Favorite"
|
||||
msgstr ""
|
||||
msgstr "Suosikki"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Join Game"
|
||||
msgstr ""
|
||||
msgstr "Liity peliin"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Name / Password"
|
||||
msgstr ""
|
||||
msgstr "Nimi / Salasana"
|
||||
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
msgid "Ping"
|
||||
msgstr ""
|
||||
msgstr "Viive"
|
||||
|
||||
#. ~ PvP = Player versus Player
|
||||
#: builtin/mainmenu/tab_online.lua
|
||||
@@ -886,7 +889,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "2x"
|
||||
msgstr ""
|
||||
msgstr "2x"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "3D Clouds"
|
||||
@@ -894,15 +897,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "4x"
|
||||
msgstr ""
|
||||
msgstr "4x"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "8x"
|
||||
msgstr ""
|
||||
msgstr "8x"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "All Settings"
|
||||
msgstr ""
|
||||
msgstr "Kaikki asetukset"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Antialiasing:"
|
||||
@@ -926,7 +929,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Fancy Leaves"
|
||||
msgstr ""
|
||||
msgstr "Hienot lehdet"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Mipmap"
|
||||
@@ -966,7 +969,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Particles"
|
||||
msgstr ""
|
||||
msgstr "Partikkelit"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Screen:"
|
||||
@@ -974,7 +977,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
msgstr "Asetukset"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
|
||||
msgid "Shaders"
|
||||
@@ -1046,7 +1049,7 @@ msgstr ""
|
||||
|
||||
#: src/client/client.cpp
|
||||
msgid "Loading textures..."
|
||||
msgstr ""
|
||||
msgstr "Ladataan tekstuureja..."
|
||||
|
||||
#: src/client/client.cpp
|
||||
msgid "Rebuilding shaders..."
|
||||
|
||||
@@ -3,8 +3,8 @@ msgstr ""
|
||||
"Project-Id-Version: Hungarian (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"Last-Translator: Ács Zoltán <acszoltan111@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-03-28 20:29+0000\n"
|
||||
"Last-Translator: Hatlábú Farkas <hatlabufarkas@gmail.com>\n"
|
||||
"Language-Team: Hungarian <https://hosted.weblate.org/projects/minetest/"
|
||||
"minetest/hu/>\n"
|
||||
"Language: hu\n"
|
||||
@@ -12,7 +12,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.5-dev\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -24,7 +24,7 @@ msgstr "Meghaltál"
|
||||
|
||||
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
msgstr "OKÉ"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "An error occurred in a Lua script:"
|
||||
@@ -153,7 +153,7 @@ msgstr "engedélyezve"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "\"$1\" already exists. Would you like to overwrite it?"
|
||||
msgstr ""
|
||||
msgstr "\"$1\" már létezik. Szeretné felülírni?"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 and $2 dependencies will be installed."
|
||||
@@ -172,9 +172,8 @@ msgstr ""
|
||||
"$2 sorba állítva"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 downloading..."
|
||||
msgstr "Letöltés…"
|
||||
msgstr "$1 Letöltése…"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 required dependencies could not be found."
|
||||
@@ -189,18 +188,16 @@ msgid "All packages"
|
||||
msgstr "Minden csomag"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Already installed"
|
||||
msgstr "A gomb már használatban van"
|
||||
msgstr "Már telepítve"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Back to Main Menu"
|
||||
msgstr "Vissza a főmenübe"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Base Game:"
|
||||
msgstr "Játék létrehozása"
|
||||
msgstr "Alapjáték:"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "ContentDB is not available when Minetest was compiled without cURL"
|
||||
@@ -224,14 +221,12 @@ msgid "Install"
|
||||
msgstr "Telepítés"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install $1"
|
||||
msgstr "Telepítés"
|
||||
msgstr "$1 telepítése"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install missing dependencies"
|
||||
msgstr "Választható függőségek:"
|
||||
msgstr "hiányzó függőségek telepitése"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
@@ -247,22 +242,20 @@ msgid "No results"
|
||||
msgstr "Nincs találat"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "No updates"
|
||||
msgstr "Frissítés"
|
||||
msgstr "nincs Frissiteni való"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Not found"
|
||||
msgstr "Hang némítása"
|
||||
msgstr "nem található"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Overwrite"
|
||||
msgstr "Felülírás"
|
||||
msgstr "Felülír"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Please check that the base game is correct."
|
||||
msgstr ""
|
||||
msgstr "az alapjáték ellenörzése szükséges ."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Queued"
|
||||
@@ -357,7 +350,6 @@ msgid "Game"
|
||||
msgstr "Játék"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#, fuzzy
|
||||
msgid "Generate non-fractal terrain: Oceans and underground"
|
||||
msgstr "Nem-fraktál terep generálása: Óceánok és földalatti rész"
|
||||
|
||||
@@ -437,7 +429,6 @@ msgid "Smooth transition between biomes"
|
||||
msgstr "Sima átmenet a biomok között"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Structures appearing on the terrain (no effect on trees and jungle grass "
|
||||
"created by v6)"
|
||||
@@ -462,7 +453,6 @@ msgid "Temperate, Desert, Jungle, Tundra, Taiga"
|
||||
msgstr "Mérsékelt, Sivatag, Dzsungel, Tundra, Tajga"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#, fuzzy
|
||||
msgid "Terrain surface erosion"
|
||||
msgstr "Terepfelület erózió"
|
||||
|
||||
@@ -713,9 +703,8 @@ msgid "Loading..."
|
||||
msgstr "Betöltés…"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "Kliens oldali szkriptek letiltva"
|
||||
msgstr "A nyilvános kiszolgálólista le van tiltva"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -776,9 +765,8 @@ msgid "Credits"
|
||||
msgstr "Köszönetnyilvánítás"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
#, fuzzy
|
||||
msgid "Open User Data Directory"
|
||||
msgstr "Útvonal kiválasztása"
|
||||
msgstr "Felhasználói adatkönyvtár megnyitása"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid ""
|
||||
@@ -838,9 +826,8 @@ msgid "No world created or selected!"
|
||||
msgstr "Nincs létrehozott vagy kiválasztott világ!"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Password"
|
||||
msgstr "Új jelszó"
|
||||
msgstr "Jelszó"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Play Game"
|
||||
@@ -851,9 +838,8 @@ msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Select Mods"
|
||||
msgstr "Világ kiválasztása:"
|
||||
msgstr "Modok kiválasztása"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select World:"
|
||||
@@ -1005,9 +991,8 @@ msgid "Shaders"
|
||||
msgstr "Árnyalók"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
#, fuzzy
|
||||
msgid "Shaders (experimental)"
|
||||
msgstr "Lebegő földek"
|
||||
msgstr "Shaderek (kísérleti)"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Shaders (unavailable)"
|
||||
@@ -1764,19 +1749,18 @@ msgid "Minimap hidden"
|
||||
msgstr "Kistérkép letiltva"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Minimap in radar mode, Zoom x%d"
|
||||
msgstr "Kistérkép radar módban x1"
|
||||
msgstr "Minimap radar módban, Nagyítás x%d"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Minimap in surface mode, Zoom x%d"
|
||||
msgstr "Kistérkép terület módban x1"
|
||||
msgstr "kistérkép terület módban x%d"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy
|
||||
msgid "Minimap in texture mode"
|
||||
msgstr "Minimum textúra méret"
|
||||
msgstr "Minimap textúra módban"
|
||||
|
||||
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
|
||||
msgid "Passwords do not match!"
|
||||
@@ -2263,9 +2247,8 @@ msgid "Announce to this serverlist."
|
||||
msgstr "Szerver kihirdetése erre a szerverlistára."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Append item name"
|
||||
msgstr "Elem nevének hozzáadása"
|
||||
msgstr "Elemnév hozzáadása"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Append item name to tooltip."
|
||||
@@ -2482,23 +2465,20 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Chat font size"
|
||||
msgstr "Betűtípus mérete"
|
||||
msgstr "Chat betűméret"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Chat key"
|
||||
msgstr "Csevegés gomb"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Chat log level"
|
||||
msgstr "Hibakereső naplózás szintje"
|
||||
msgstr "Chat napló szintje"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Chat message count limit"
|
||||
msgstr "Chat üzenetek maximális száma"
|
||||
msgstr "Csevegőüzenetek számának korlátozása"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
|
||||
@@ -3,8 +3,8 @@ msgstr ""
|
||||
"Project-Id-Version: Italian (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"Last-Translator: Jacques Lagrange <Jacques.Reads@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-03-25 17:29+0000\n"
|
||||
"Last-Translator: Alessandro Mandelli <mandelli.alessandro@ngi.it>\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.5-dev\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -703,9 +703,8 @@ msgid "Loading..."
|
||||
msgstr "Caricamento..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "Scripting su lato client disabilitato"
|
||||
msgstr "La lista dei server pubblici è disabilitata"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -747,7 +746,7 @@ msgstr "Rinomina"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Uninstall Package"
|
||||
msgstr "Disinstalla la raccolta"
|
||||
msgstr "Disinstalla pacchetto"
|
||||
|
||||
#: builtin/mainmenu/tab_content.lua
|
||||
msgid "Use Texture Pack"
|
||||
@@ -1888,7 +1887,7 @@ msgstr "Selezione raggio"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
|
||||
msgid "Screenshot"
|
||||
msgstr "Schermata"
|
||||
msgstr "Screenshot"
|
||||
|
||||
#: src/gui/guiKeyChangeMenu.cpp
|
||||
msgid "Sneak"
|
||||
@@ -3022,9 +3021,8 @@ msgid "Enable console window"
|
||||
msgstr "Attivare la finestra della console"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Abilitare la modalità creativa per le nuove mappe create."
|
||||
msgstr "Abilitare la modalità creativa per tutti i giocatori"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -3409,7 +3407,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Format of screenshots."
|
||||
msgstr "Formato delle schermate."
|
||||
msgstr "Formato degli screenshot."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Formspec Default Background Color"
|
||||
@@ -4764,7 +4762,7 @@ msgid ""
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Tasto per scattare schermate.\n"
|
||||
"Tasto per scattare gli screenshot.\n"
|
||||
"Si veda http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -5784,7 +5782,7 @@ msgid ""
|
||||
"Path to save screenshots at. Can be an absolute or relative path.\n"
|
||||
"The folder will be created if it doesn't already exist."
|
||||
msgstr ""
|
||||
"Percorso dove salvare le schermate. Può essere un percorso assoluto o "
|
||||
"Percorso dove salvare gli screenshot. Può essere un percorso assoluto o "
|
||||
"relativo.\n"
|
||||
"La cartella sarà create se non esiste già."
|
||||
|
||||
@@ -6141,15 +6139,15 @@ msgstr "Larghezza dello schermo"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Screenshot folder"
|
||||
msgstr "Cartella delle schermate"
|
||||
msgstr "Cartella degli screenshot"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Screenshot format"
|
||||
msgstr "Formato delle schermate"
|
||||
msgstr "Formato degli screenshot"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Screenshot quality"
|
||||
msgstr "Qualità delle schermate"
|
||||
msgstr "Qualità degli screenshot"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6157,8 +6155,8 @@ msgid ""
|
||||
"1 means worst quality; 100 means best quality.\n"
|
||||
"Use 0 for default quality."
|
||||
msgstr ""
|
||||
"Qualità delle schermate. Usata solo per il formato JPEG.\n"
|
||||
"1 significa qualità peggiore, 100 significa qualità migliore.\n"
|
||||
"Qualità degli screenshot. Usata solo per il formato JPEG.\n"
|
||||
"1 significa la qualità peggiore, 100 quella migliore.\n"
|
||||
"Usa 0 per la qualità predefinita."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
@@ -6365,9 +6363,8 @@ msgstr ""
|
||||
"È necessario riavviare dopo aver cambiato questo."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Show nametag backgrounds by default"
|
||||
msgstr "Carattere grassetto per impostazione predefinita"
|
||||
msgstr "Mostra lo sfondo del nome per impostazione predefinita"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -7234,6 +7231,8 @@ msgid ""
|
||||
"Whether nametag backgrounds should be shown by default.\n"
|
||||
"Mods may still set a background."
|
||||
msgstr ""
|
||||
"Se lo sfondo del nome deve essere mostrato per impostazione predefinita.\n"
|
||||
"I moderatori possono comunque impostare uno sfondo."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Whether node texture animations should be desynchronized per mapblock."
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Japanese (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"PO-Revision-Date: 2021-04-08 18:26+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.5-dev\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -699,9 +699,8 @@ msgid "Loading..."
|
||||
msgstr "読み込み中..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "クライアント側のスクリプトは無効"
|
||||
msgstr "公開サーバ一覧は無効"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -2982,9 +2981,8 @@ msgid "Enable console window"
|
||||
msgstr "コンソールウィンドウを有効化"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "新しく作成されたマップでクリエイティブモードを有効にします。"
|
||||
msgstr "すべてのプレイヤーにクリエイティブモードを有効化"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -6234,9 +6232,8 @@ msgstr ""
|
||||
"変更後は再起動が必要です。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Show nametag backgrounds by default"
|
||||
msgstr "既定で太字のフォント"
|
||||
msgstr "既定でネームタグの背景を表示"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -7055,6 +7052,8 @@ msgid ""
|
||||
"Whether nametag backgrounds should be shown by default.\n"
|
||||
"Mods may still set a background."
|
||||
msgstr ""
|
||||
"既定でネームタグの背景を表示するかどうかです。\n"
|
||||
"Modで背景を設定することもできます。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Whether node texture animations should be desynchronized per mapblock."
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2020-07-12 17:41+0000\n"
|
||||
"Last-Translator: Uko Koknevics <TheZeus121@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-04-02 10:26+0000\n"
|
||||
"Last-Translator: Dainis <dainis.skuja@gmail.com>\n"
|
||||
"Language-Team: Latvian <https://hosted.weblate.org/projects/minetest/"
|
||||
"minetest/lv/>\n"
|
||||
"Language: lv\n"
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= "
|
||||
"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 4.2-dev\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -34,7 +34,7 @@ msgstr ""
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "An error occurred in a Lua script:"
|
||||
msgstr "Radās kļūme Lua skriptā:"
|
||||
msgstr "Lua skriptā radās kļūme:"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "An error occurred:"
|
||||
@@ -249,7 +249,7 @@ msgstr "Nevarēja iegūt papildinājumus"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "No results"
|
||||
msgstr "Nav resultātu"
|
||||
msgstr "Nav rezultātu"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
@@ -282,7 +282,7 @@ msgstr "Atinstalēt"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update"
|
||||
msgstr "Atjaunot"
|
||||
msgstr "Atjaunināt"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update All [$1]"
|
||||
@@ -294,7 +294,7 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "A world named \"$1\" already exists"
|
||||
msgstr "Pasaule ar nosaukumu “$1” jau eksistē"
|
||||
msgstr "Pasaule ar nosaukumu “$1” jau pastāv"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Additional terrain"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Malay (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-01 05:52+0000\n"
|
||||
"PO-Revision-Date: 2021-03-10 17:02+0000\n"
|
||||
"Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat "
|
||||
"Yasuyoshi <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.5-dev\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -701,9 +701,8 @@ msgid "Loading..."
|
||||
msgstr "Sedang memuatkan..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "Skrip pihak klien dilumpuhkan"
|
||||
msgstr "Senarai pelayan awam dilumpuhkan"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -3008,9 +3007,8 @@ msgid "Enable console window"
|
||||
msgstr "Membolehkan tetingkap konsol"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Membolehkan mod kreatif untuk peta baru dicipta."
|
||||
msgstr "Membolehkan mod kreatif untuk semua pemain"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -6308,9 +6306,8 @@ msgstr ""
|
||||
"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"
|
||||
msgstr "Tunjuk latar belakang tag nama secara lalainya"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -6588,7 +6585,7 @@ msgstr ""
|
||||
"pelayan lama,\n"
|
||||
"pilihan ini membolehkan pemaksaan ia untuk jenis nod tertentu. Ambil "
|
||||
"perhatian\n"
|
||||
"bahawa ianya dianggap DALAM UJIKAJI dan mungkin tidak berfungsi dengan betul."
|
||||
"bahawa ia dianggap DALAM UJIKAJI dan mungkin tidak berfungsi dengan betul."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "The URL for the content repository"
|
||||
@@ -6793,8 +6790,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Untuk mengurangkan lembapnya tindak balas, pemindahan blok diperlahankan "
|
||||
"apabila pemain membina sesuatu.\n"
|
||||
"Tetapan ini menetapkan berapa lama ianya diperlahankan setelah meletakkan "
|
||||
"atau mengalihkan sesebuah nod."
|
||||
"Tetapan ini menetapkan berapa lama ia diperlahankan setelah meletakkan atau "
|
||||
"mengalihkan sesebuah nod."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Toggle camera mode key"
|
||||
@@ -7165,6 +7162,8 @@ msgid ""
|
||||
"Whether nametag backgrounds should be shown by default.\n"
|
||||
"Mods may still set a background."
|
||||
msgstr ""
|
||||
"Sama ada latar belakang tag nama patut ditunjukkan secara lalainya.\n"
|
||||
"Mods masih boleh tetapkan latar belakang."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Whether node texture animations should be desynchronized per mapblock."
|
||||
|
||||
@@ -3,8 +3,8 @@ msgstr ""
|
||||
"Project-Id-Version: Polish (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2020-12-27 00:29+0000\n"
|
||||
"Last-Translator: Atrate <Atrate@protonmail.com>\n"
|
||||
"PO-Revision-Date: 2021-03-28 20:29+0000\n"
|
||||
"Last-Translator: ResuUman <aparat2@wp.pl>\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.4.1-dev\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -108,8 +108,9 @@ msgstr ""
|
||||
"znaki. Tylko znaki od [a-z, 0-9 i _] są dozwolone."
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
#, fuzzy
|
||||
msgid "Find More Mods"
|
||||
msgstr ""
|
||||
msgstr "Znajdź więcej modów"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "Mod:"
|
||||
@@ -133,7 +134,7 @@ msgstr "Brak dostępnych informacji o modzie."
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua
|
||||
msgid "No optional dependencies"
|
||||
msgstr "Brak dodatkowych zależności."
|
||||
msgstr "Brak dodatkowych zależności"
|
||||
|
||||
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
|
||||
msgid "Optional dependencies:"
|
||||
@@ -154,21 +155,26 @@ msgstr "włączone"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "\"$1\" already exists. Would you like to overwrite it?"
|
||||
msgstr ""
|
||||
msgstr "\"$1\" aktualnie istnieje. Czy chcesz go nadpisać?"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 and $2 dependencies will be installed."
|
||||
msgstr ""
|
||||
msgstr "Zależności $1 i $2 będą zainstalowane."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 by $2"
|
||||
msgstr ""
|
||||
msgstr "$1 przez $2"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"$1 downloading,\n"
|
||||
"$2 queued"
|
||||
msgstr ""
|
||||
"$1 pobierany,\n"
|
||||
"$2 w kolejce"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
@@ -176,12 +182,13 @@ msgid "$1 downloading..."
|
||||
msgstr "Ładowanie..."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 required dependencies could not be found."
|
||||
msgstr ""
|
||||
msgstr "$1 wymaga zależności, których nie można znaleźć."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 will be installed, and $2 dependencies will be skipped."
|
||||
msgstr ""
|
||||
msgstr "$1 zostanie zainstalowany, a zależności $2 zostaną pominięte."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "All packages"
|
||||
@@ -197,9 +204,8 @@ msgid "Back to Main Menu"
|
||||
msgstr "Powrót do menu głównego"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Base Game:"
|
||||
msgstr "Utwórz grę"
|
||||
msgstr "Gra podstawowa:"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "ContentDB is not available when Minetest was compiled without cURL"
|
||||
@@ -229,9 +235,8 @@ msgid "Install $1"
|
||||
msgstr "Instaluj"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install missing dependencies"
|
||||
msgstr "Dodatkowe zależności:"
|
||||
msgstr "Zainstaluj brakujące zależności"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
@@ -258,15 +263,15 @@ msgstr "Wycisz dźwięk"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Overwrite"
|
||||
msgstr ""
|
||||
msgstr "Nadpisz"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Please check that the base game is correct."
|
||||
msgstr ""
|
||||
msgstr "Proszę sprawdzić, czy gra podstawowa jest poprawnie zainstalowana."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
msgstr "W kolejce"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Texture packs"
|
||||
@@ -282,11 +287,11 @@ msgstr "Aktualizacja"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update All [$1]"
|
||||
msgstr ""
|
||||
msgstr "Zaktualizuj wszystko [$1]"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "View more information in a web browser"
|
||||
msgstr ""
|
||||
msgstr "Pokaż więcej informacji w przeglądarce"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "A world named \"$1\" already exists"
|
||||
@@ -303,7 +308,7 @@ msgstr "Wysokość mrozu"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Altitude dry"
|
||||
msgstr ""
|
||||
msgstr "Wysokość suchości"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#, fuzzy
|
||||
@@ -364,7 +369,7 @@ msgstr "Gra"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Generate non-fractal terrain: Oceans and underground"
|
||||
msgstr ""
|
||||
msgstr "Generuj niefraktalny teren: oceany i podziemia"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Hills"
|
||||
@@ -412,16 +417,15 @@ msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Network of tunnels and caves"
|
||||
msgstr "Sieć jaskiń i korytarzy."
|
||||
msgstr "Sieć jaskiń i korytarzy"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "No game selected"
|
||||
msgstr "Nie wybrano gry"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
#, fuzzy
|
||||
msgid "Reduces heat with altitude"
|
||||
msgstr "Spadek temperatury wraz z wysokością"
|
||||
msgstr "Redukuje ciepło wraz z wysokością"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Reduces humidity with altitude"
|
||||
@@ -443,13 +447,15 @@ msgstr "Ziarno losowości"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Smooth transition between biomes"
|
||||
msgstr ""
|
||||
msgstr "Płynne przejście między biomami"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid ""
|
||||
"Structures appearing on the terrain (no effect on trees and jungle grass "
|
||||
"created by v6)"
|
||||
msgstr ""
|
||||
"Struktury pojawiające się na terenie (brak wpływu na drzewa i trawę w "
|
||||
"dżungli stworzone przez v6)"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "Structures appearing on the terrain, typically trees and plants"
|
||||
@@ -857,9 +863,8 @@ msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Select Mods"
|
||||
msgstr "Wybierz świat:"
|
||||
msgstr "Wybierz Mody"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select World:"
|
||||
@@ -1772,12 +1777,12 @@ msgstr "Minimapa ukryta"
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy, c-format
|
||||
msgid "Minimap in radar mode, Zoom x%d"
|
||||
msgstr "Minimapa w trybie radaru, Zoom x1"
|
||||
msgstr "Minimapa w trybie radaru, Zoom x%d"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy, c-format
|
||||
msgid "Minimap in surface mode, Zoom x%d"
|
||||
msgstr "Minimapa w trybie powierzchniowym, powiększenie x1"
|
||||
msgstr "Minimapa w trybie powierzchniowym, powiększenie x%d"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy
|
||||
@@ -2019,7 +2024,6 @@ msgstr ""
|
||||
"znajduje się poza głównym okręgiem."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
|
||||
"Can be used to move a desired point to (0, 0) to create a\n"
|
||||
@@ -2031,7 +2035,7 @@ msgid ""
|
||||
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
|
||||
msgstr ""
|
||||
"(X, Y, Z) margines fraktalu od centrum świata w jednostkach \"skali\".\n"
|
||||
"Używany by przesunąć odpowiednie miejsce do punktu spawnu podłoża blisko "
|
||||
"Używany by przesunąć odpowiednie miejsce do punktu spawnu podłoża blisko "
|
||||
"punktu (0, 0).\n"
|
||||
"Domyślny jest odpowiedni dla zbiorów Mandelbrota, lecz wymaga edycji dla "
|
||||
"zbiorów Julii.\n"
|
||||
@@ -2198,9 +2202,8 @@ msgid "Acceleration in air"
|
||||
msgstr "Przyspieszenie w powietrzu"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Acceleration of gravity, in nodes per second per second."
|
||||
msgstr "Przyśpieszenie grawitacyjne, w blokach na sekundę."
|
||||
msgstr "Przyśpieszenie grawitacyjne, w blokach na sekundę do kwadratu."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Active Block Modifiers"
|
||||
@@ -2355,11 +2358,8 @@ msgid "Automatic forward key"
|
||||
msgstr "Klawisz automatycznego poruszania się do przodu"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Automatically jump up single-node obstacles."
|
||||
msgstr ""
|
||||
"Automatycznie przeskakuj jedno-blokowe przeszkody.\n"
|
||||
"type: bool"
|
||||
msgstr "Automatycznie przeskakuj jedno-blokowe przeszkody."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Automatically report to the serverlist."
|
||||
@@ -2436,9 +2436,8 @@ msgid "Bold and italic monospace font path"
|
||||
msgstr "Ścieżka czcionki typu Monospace"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Bold font path"
|
||||
msgstr "Ścieżka fontu pogrubionego."
|
||||
msgstr "Ścieżka fontu pogrubionego"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -2688,7 +2687,6 @@ msgid "Console height"
|
||||
msgstr "Wysokość konsoli"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "ContentDB Flag Blacklist"
|
||||
msgstr "Flaga czarnej listy ContentDB"
|
||||
|
||||
@@ -2731,7 +2729,6 @@ msgstr ""
|
||||
"zostaje niezmienione."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Controls sinking speed in liquid."
|
||||
msgstr "Wpływa na prędkość zanurzania w płynie."
|
||||
|
||||
@@ -2767,7 +2764,9 @@ msgstr "Kanał alfa celownika"
|
||||
msgid ""
|
||||
"Crosshair alpha (opaqueness, between 0 and 255).\n"
|
||||
"Also controls the object crosshair color"
|
||||
msgstr "Kanał alfa celownika (pomiędzy 0 a 255)."
|
||||
msgstr ""
|
||||
"Kanał alfa celownika (pomiędzy 0 a 255).\n"
|
||||
"Wpływa również na kolor celownika obiektów"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Crosshair color"
|
||||
@@ -3017,11 +3016,12 @@ msgid "Dungeon noise"
|
||||
msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Enable IPv6 support (for both client and server).\n"
|
||||
"Required for IPv6 connections to work at all."
|
||||
msgstr "Włącz protokół sieciowy IPv6 (dla gry oraz dla jej serwera)."
|
||||
msgstr ""
|
||||
"Włącz protokół sieciowy IPv6 (dla gry oraz dla jej serwera).\n"
|
||||
"Wymagane dla połączeń z protokołem sieciowym IPv6."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -3038,7 +3038,7 @@ msgstr "Odblokuj okno konsoli"
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Zezwól na tryb kreatywny dla nowo powstałych map."
|
||||
msgstr "Zezwól na tryb kreatywny dla wszystkich graczy"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -3111,8 +3111,8 @@ msgid ""
|
||||
"Enable vertex buffer objects.\n"
|
||||
"This should greatly improve graphics performance."
|
||||
msgstr ""
|
||||
"Uaktywnij \"vertex buffer objects\" aby zmniejszyć wymagania wobec karty "
|
||||
"grafiki."
|
||||
"Uaktywnij \"vertex buffer objects\". \n"
|
||||
"Powinno to znacznie polepszyć wydajność karty graficznej."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -3182,7 +3182,7 @@ msgstr ""
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "FPS when unfocused or paused"
|
||||
msgstr "Maksymalny FPS gdy gra spauzowana."
|
||||
msgstr "Maksymalny FPS gdy gra spauzowana"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "FSAA"
|
||||
@@ -3235,7 +3235,7 @@ msgid ""
|
||||
"This requires the \"fast\" privilege on the server."
|
||||
msgstr ""
|
||||
"Szybki ruch (za pomocą przycisku „specjalnego”).\n"
|
||||
"Wymaga to uprawnienia „fast” na serwerze."
|
||||
"Wymaga to uprawnienia „fast” na serwerze."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Field of view"
|
||||
@@ -3246,13 +3246,15 @@ msgid "Field of view in degrees."
|
||||
msgstr "Pole widzenia w stopniach."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"File in client/serverlist/ that contains your favorite servers displayed in "
|
||||
"the\n"
|
||||
"Multiplayer Tab."
|
||||
msgstr ""
|
||||
"Plik w kliencie (lista serwerów) który zawiera ulubione ulubione serwery "
|
||||
"wyświetlane w zakładce Multiplayer."
|
||||
"Plik w kliencie (lista serwerów), który zawiera ulubione serwery wyświetlane "
|
||||
"\n"
|
||||
"w zakładce Trybu wieloosobowego."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Filler depth"
|
||||
@@ -3279,6 +3281,7 @@ msgstr ""
|
||||
"które optymalizatory PNG najczęściej odrzucają, co czasem powoduje "
|
||||
"ciemniejsze lub jaśniejsze\n"
|
||||
"krawędzie w przeźroczystych teksturach. Zastosuj ten filtr aby wyczyścić to "
|
||||
"\n"
|
||||
"w czasie ładowania tekstur."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
@@ -3522,33 +3525,34 @@ msgid "Global callbacks"
|
||||
msgstr "Globalne wywołania zwrotne"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Global map generation attributes.\n"
|
||||
"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
|
||||
"and junglegrass, in all other mapgens this flag controls all decorations."
|
||||
msgstr ""
|
||||
"Globalne właściwości generowania map.\n"
|
||||
"W generatorze map v6 flaga \"decorations\" kontroluje wszystkie dekoracje\n"
|
||||
"z wyjątkiem drzew i trawy dżungli. we wszystkich innych generatorach flaga\n"
|
||||
"ta kontroluje wszystkie dekoracje.\n"
|
||||
"Flagi, które nie są wymienione w ciągu flagi nie są modyfikowane z "
|
||||
"domyślnych.\n"
|
||||
"Flagi rozpoczynające się od \"no\" są stosowane aby jawnie ją wyłączyć."
|
||||
"W generatorze map v6 flaga \"decorations\" kontroluje wszystkie dekoracje z "
|
||||
"wyjątkiem drzew \n"
|
||||
"i trawy dżungli. we wszystkich innych generatorach flaga ta kontroluje "
|
||||
"wszystkie dekoracje."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Gradient of light curve at maximum light level.\n"
|
||||
"Controls the contrast of the highest light levels."
|
||||
msgstr "Gradient krzywej światła w maksymalnej pozycji."
|
||||
msgstr ""
|
||||
"Gradient krzywej światła w maksymalnej pozycji.\n"
|
||||
"Wpływa na kontrast najwyższych poziomów jasności."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Gradient of light curve at minimum light level.\n"
|
||||
"Controls the contrast of the lowest light levels."
|
||||
msgstr "Gradient krzywej światła w minimalnej pozycji."
|
||||
msgstr ""
|
||||
"Gradient krzywej światła w minimalnej pozycji.\n"
|
||||
"Wpływa na kontrast najniższych poziomów jasności."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Graphics"
|
||||
@@ -3671,7 +3675,7 @@ msgid ""
|
||||
"in nodes per second per second."
|
||||
msgstr ""
|
||||
"Przyśpieszenie poziome podczas skoku lub upadku,\n"
|
||||
"w blokach na sekundę."
|
||||
"w blokach na sekundę do kwadratu."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -3680,7 +3684,7 @@ msgid ""
|
||||
"in nodes per second per second."
|
||||
msgstr ""
|
||||
"Poziome i pionowe przyśpieszenie w trybie szybkim,\n"
|
||||
"w blokach na sekundę."
|
||||
"w blokach na sekundę do kwadratu."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -3689,7 +3693,7 @@ msgid ""
|
||||
"in nodes per second per second."
|
||||
msgstr ""
|
||||
"Poziome i pionowe przyśpieszenie na ziemi lub podczas wchodzenia,\n"
|
||||
"w blokach na sekunde."
|
||||
"w blokach na sekundę do kwadratu."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Hotbar next key"
|
||||
@@ -3862,7 +3866,7 @@ msgstr "Następny klawisz paska działań"
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "How deep to make rivers."
|
||||
msgstr "Jak głębokie robić rzeki"
|
||||
msgstr "Jak głębokie tworzyć rzeki."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -3882,7 +3886,7 @@ msgstr ""
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "How wide to make rivers."
|
||||
msgstr "Jak szerokie są rzeki"
|
||||
msgstr "Jak szerokie są rzeki."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Humidity blend noise"
|
||||
@@ -3920,9 +3924,10 @@ msgid ""
|
||||
"enabled."
|
||||
msgstr ""
|
||||
"Jeśli wyłączone to klawisz \"używania\" jest wykorzystany aby latać szybko "
|
||||
"oraz przy włączonym trybie szybkiego poruszania."
|
||||
"jeśli tryb szybkiego poruszania oraz latania jest włączony."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"If enabled the server will perform map block occlusion culling based on\n"
|
||||
"on the eye position of the player. This can reduce the number of blocks\n"
|
||||
@@ -3931,10 +3936,11 @@ msgid ""
|
||||
"so that the utility of noclip mode is reduced."
|
||||
msgstr ""
|
||||
"Jeśli opcja jest włączona to serwer spowoduje zamknięcie usuwania bloków "
|
||||
"mapy na podstawie pozycji gracza.\n"
|
||||
"Zredukuje to o 50-80% liczbę bloków wysyłanych na serwer.\n"
|
||||
"Klient już nie będzie widział większości ukrytych bloków, tak więc zostanie "
|
||||
"ograniczona przydatność trybu noclip."
|
||||
"mapy na podstawie \n"
|
||||
"pozycji gracza. Zredukuje to o 50-80% liczbę bloków \n"
|
||||
"wysyłanych na serwer. Klient już nie będzie widział większości ukrytych "
|
||||
"bloków, \n"
|
||||
"tak więc zostanie ograniczona przydatność trybu noclip."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -3953,8 +3959,9 @@ msgid ""
|
||||
"down and\n"
|
||||
"descending."
|
||||
msgstr ""
|
||||
"Jeżeli włączone, klawisz \"użycia\" zamiast klawiszu \"skradania\" będzie "
|
||||
"użyty do schodzenia w dół i opadania."
|
||||
"Jeżeli włączone, klawisz \"użycia\" zamiast klawisza \"skradania\" będzie "
|
||||
"użyty do schodzenia w dół i \n"
|
||||
"opadania."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -4045,7 +4052,8 @@ msgstr "Klawisz zwiększania głośności"
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Initial vertical speed when jumping, in nodes per second."
|
||||
msgstr "Początkowa prędkość pionowa podczas skoku, w blokach na sekundę."
|
||||
msgstr ""
|
||||
"Początkowa prędkość pionowa podczas skoku, w blokach na sekundę do kwadratu."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -4061,12 +4069,13 @@ msgid "Instrument chatcommands on registration."
|
||||
msgstr "Instrument poleceń czatu przy rejestracji."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Instrument global callback functions on registration.\n"
|
||||
"(anything you pass to a minetest.register_*() function)"
|
||||
msgstr ""
|
||||
"Poinstruuj globalne funkcje zwrotne przy rejestracji (wszystko co prześlesz "
|
||||
"do funkcji minetest.register_*() )"
|
||||
"Poinstruuj globalne funkcje zwrotne przy rejestracji \n"
|
||||
"(wszystko co prześlesz do funkcji minetest.register_*() )"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -4170,8 +4179,9 @@ msgid ""
|
||||
"Has no effect on 3D fractals.\n"
|
||||
"Range roughly -2 to 2."
|
||||
msgstr ""
|
||||
"Wyłącznie dla Zbioru Julii: komponent W stałej hiperzespolonej, która "
|
||||
"determinuje kształt Julii.\n"
|
||||
"Wyłącznie dla Zbioru Julii: \n"
|
||||
"komponent W stałej hiperzespolonej, \n"
|
||||
"która determinuje fraktali.\n"
|
||||
"Nie ma wpływu na fraktale trójwymiarowe.\n"
|
||||
"Zakres to w przybliżeniu -2 do 2."
|
||||
|
||||
@@ -4183,8 +4193,9 @@ msgid ""
|
||||
"Alters the shape of the fractal.\n"
|
||||
"Range roughly -2 to 2."
|
||||
msgstr ""
|
||||
"Wyłącznie dla Zbioru Julii: komponent X stałej hiperzespolonej, która "
|
||||
"determinuje kształt Julii.\n"
|
||||
"Wyłącznie dla Zbioru Julii: \n"
|
||||
"komponent X stałej hiperzespolonej, \n"
|
||||
"która determinuje kształt fraktali.\n"
|
||||
"Zakres to w przybliżeniu -2 do 2."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
@@ -4195,8 +4206,8 @@ msgid ""
|
||||
"Alters the shape of the fractal.\n"
|
||||
"Range roughly -2 to 2."
|
||||
msgstr ""
|
||||
"Wyłącznie dla Zbioru Julii: komponent Y stałej hiperzespolonej, która "
|
||||
"determinuje kształt Julii.\n"
|
||||
"Wyłącznie dla Zbioru Julii: komponent Y stałej hiperzespolonej, \n"
|
||||
"która determinuje kształt fraktali.\n"
|
||||
"Zakres to w przybliżeniu -2 do 2."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
@@ -4207,8 +4218,9 @@ msgid ""
|
||||
"Alters the shape of the fractal.\n"
|
||||
"Range roughly -2 to 2."
|
||||
msgstr ""
|
||||
"Wyłącznie dla Zbioru Julii: komponent Z stałej hiperzespolonej, która "
|
||||
"determinuje kształt Julii.\n"
|
||||
"Wyłącznie dla Zbioru Julii: \n"
|
||||
"komponent Z stałej hiperzespolonej, \n"
|
||||
"która determinuje kształt fraktali.\n"
|
||||
"Zakres to w przybliżeniu -2 do 2."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
@@ -4325,6 +4337,7 @@ msgid ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Klawisz poruszania się wstecz.\n"
|
||||
"Gdy jest aktywny to wyłącza również automatyczne chodzenie do przodu.\n"
|
||||
"Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -5050,14 +5063,14 @@ msgid "Left key"
|
||||
msgstr "W lewo"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Length of a server tick and the interval at which objects are generally "
|
||||
"updated over\n"
|
||||
"network."
|
||||
msgstr ""
|
||||
"Długość interwału czasowego serwera w trakcie którego obiekty są ogólnie "
|
||||
"aktualizowane przez sieć."
|
||||
"aktualizowane \n"
|
||||
"przez sieć."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -5078,9 +5091,8 @@ msgid "Length of time between NodeTimer execution cycles"
|
||||
msgstr "Długość czasu pomiędzy wykonywanymi cyklami NodeTimer"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Length of time between active block management cycles"
|
||||
msgstr "Czas pomiędzy cyklami zarządzania aktywnymi blokami."
|
||||
msgstr "Czas pomiędzy cyklami zarządzania aktywnymi blokami"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -5109,9 +5121,8 @@ msgid "Light curve boost"
|
||||
msgstr "Przyśpieszenie środkowe krzywej światła"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Light curve boost center"
|
||||
msgstr "Centrum środkowego przyśpieszenia krzywej światła"
|
||||
msgstr "Centrum środkowego przyśpieszenia krzywej światła"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -5129,9 +5140,8 @@ msgid "Light curve high gradient"
|
||||
msgstr "Przyśpieszenie środkowe krzywej światła"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Light curve low gradient"
|
||||
msgstr "Centrum środkowego przyśpieszenia krzywej światła"
|
||||
msgstr "Centrum środkowego przyśpieszenia krzywej światła"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -5251,16 +5261,12 @@ msgid "Map generation attributes specific to Mapgen Carpathian."
|
||||
msgstr "Właściwości generowania mapy określające Mapgen Carpathian."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Map generation attributes specific to Mapgen Flat.\n"
|
||||
"Occasional lakes and hills can be added to the flat world."
|
||||
msgstr ""
|
||||
"Specyficzne cechy dla Mapgen płaskiego terenu.\n"
|
||||
"Do płaskiego świata mogą być dodane przypadkowe jeziora i wzgórza.\n"
|
||||
"Oznakowania nie będące określonymi w ciągu oznakowań nie są zmieniane z "
|
||||
"domyślnych.\n"
|
||||
"Oznakowania zaczynające się od 'no' używane są do ich blokowania."
|
||||
"Do płaskiego świata mogą być dodane przypadkowe jeziora i wzgórza."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -5270,7 +5276,8 @@ msgid ""
|
||||
"ocean, islands and underground."
|
||||
msgstr ""
|
||||
"Właściwości generowania mapy określające Mapgen v7.\n"
|
||||
"\"grzbiety\" aktywują rzeki."
|
||||
"\"grzbiety\" aktywują tworzenie niefraktalnego terenu:\n"
|
||||
"oceanu, wysp oraz podziemi."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Portuguese (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-23 15:50+0000\n"
|
||||
"PO-Revision-Date: 2021-04-08 18:26+0000\n"
|
||||
"Last-Translator: ssantos <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.5\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -704,9 +704,8 @@ msgid "Loading..."
|
||||
msgstr "A carregar..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "O scripting de cliente está desativado"
|
||||
msgstr "A lista de servidores públicos está desativada"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -2941,9 +2940,8 @@ msgid "Desynchronize block animation"
|
||||
msgstr "Dessincroniza animação de blocos"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Dig key"
|
||||
msgstr "Tecla para a direita"
|
||||
msgstr "Tecla para escavar"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Digging particles"
|
||||
@@ -3010,9 +3008,8 @@ msgid "Enable console window"
|
||||
msgstr "Ativar janela de console"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Ativar modo criativo para mundos novos."
|
||||
msgstr "Ativar modo criativo para todos os jogadores"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -3172,9 +3169,8 @@ msgstr ""
|
||||
"terrenos flutuantes."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "FPS when unfocused or paused"
|
||||
msgstr "Máximo FPS quando o jogo é pausado."
|
||||
msgstr "FPS quando desfocado ou pausado"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "FSAA"
|
||||
@@ -3307,9 +3303,8 @@ msgid "Floatland noise"
|
||||
msgstr "Ruído no terreno flutuante"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland taper exponent"
|
||||
msgstr "Expoente de terras flutuantes montanhosas"
|
||||
msgstr "Expoente de conicidade de terrenos flutuantes"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
@@ -3317,9 +3312,8 @@ msgid "Floatland tapering distance"
|
||||
msgstr "Ruído base de terra flutuante"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Floatland water level"
|
||||
msgstr "Nível de água"
|
||||
msgstr "Nível da água em terreno flutuante"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Fly key"
|
||||
|
||||
@@ -3,8 +3,8 @@ msgstr ""
|
||||
"Project-Id-Version: Russian (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"Last-Translator: Ertu (Er2, Err) <er2official@outlook.com>\n"
|
||||
"PO-Revision-Date: 2021-04-08 18:26+0000\n"
|
||||
"Last-Translator: Edward <solarcore@yandex.ru>\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.5-dev\n"
|
||||
"X-Generator: Weblate 4.6-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -705,9 +705,8 @@ msgid "Loading..."
|
||||
msgstr "Загрузка..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "Клиентские моды отключены"
|
||||
msgstr "Публичный список серверов отключён"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -1216,12 +1215,12 @@ msgstr ""
|
||||
"- %s: влево\n"
|
||||
"- %s: вправо\n"
|
||||
"- %s: прыжок/подъём\n"
|
||||
"- %s: копать/удар\n"
|
||||
"- %s: разместить/использовать\n"
|
||||
"- %s: красться/спуск\n"
|
||||
"- %s: бросить предмет\n"
|
||||
"- %s: инвентарь\n"
|
||||
"- Мышь: поворот/обзор\n"
|
||||
"- ЛКМ: копать/удар\n"
|
||||
"- ПКМ: положить/использовать\n"
|
||||
"- Колесо мыши: выбор предмета\n"
|
||||
"- %s: чат\n"
|
||||
|
||||
@@ -2168,7 +2167,7 @@ msgstr "ABM интервал"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "ABM time budget"
|
||||
msgstr ""
|
||||
msgstr "Бюджет времени ABM"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Absolute limit of queued blocks to emerge"
|
||||
@@ -2249,13 +2248,11 @@ msgid ""
|
||||
"This only has significant effect on daylight and artificial\n"
|
||||
"light, it has very little effect on natural night light."
|
||||
msgstr ""
|
||||
"Изменяет кривую блеска, применяя к ней «гамма-\n"
|
||||
"коррекцию». Более высокие значения делают средний \n"
|
||||
"и нижний уровни света ярче. Значение «1.0» оставляет\n"
|
||||
"кривую блеска без изменений. Это оказывает \n"
|
||||
"существенное влияние только на дневной и \n"
|
||||
"искусственный свет, он очень мало влияет на \n"
|
||||
"естественный ночной свет."
|
||||
"Изменяет кривую света, применяя к ней \"гамма-коррекцию\".\n"
|
||||
"Более высокие значения делают средний и слабый свет ярче.\n"
|
||||
"Значение \"1.0\" оставляет кривую света без изменений.\n"
|
||||
"Значительный эффект виден только на дневном и искусственном\n"
|
||||
"освещении, почти не влияет на естественный ночной свет."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Always fly and fast"
|
||||
@@ -2307,7 +2304,9 @@ msgstr "Инерция руки"
|
||||
msgid ""
|
||||
"Arm inertia, gives a more realistic movement of\n"
|
||||
"the arm when the camera moves."
|
||||
msgstr "Делает более реалистичным движение руки персонажа при движении камеры."
|
||||
msgstr ""
|
||||
"Делает более реалистичным движение руки\n"
|
||||
"персонажа при движении камеры."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Ask to reconnect after crash"
|
||||
@@ -2618,7 +2617,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Разделённый запятыми список меток, которые можно скрывать в репозитории.\n"
|
||||
"\"nonfree\" можно использовать, чтобы скрыть пакеты, которые не являются "
|
||||
"свободным программным обеспечением по определению Free Software Foundation.\n"
|
||||
"'свободным программным обеспечением'\n"
|
||||
" по определению Free Software Foundation.\n"
|
||||
"Также вы можете назначить рейтинг.\n"
|
||||
"Метки не зависят от версии Minetest,\n"
|
||||
"узнать полный список можно на https://content.minetest.net/help/"
|
||||
@@ -2629,15 +2629,15 @@ msgid ""
|
||||
"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
|
||||
"allow them to upload and download data to/from the internet."
|
||||
msgstr ""
|
||||
"Разделенный запятыми список модов, которые позволяют получить доступ к API "
|
||||
"для HTTP, что позволить им загружать и скачивать данные из интернета."
|
||||
"Разделенный запятыми список модов, которые позволяют получить доступ к HTTP "
|
||||
"APIs, что позволит им загружать и скачивать данные в/из интернета."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
"Comma-separated list of trusted mods that are allowed to access insecure\n"
|
||||
"functions even when mod security is on (via request_insecure_environment())."
|
||||
msgstr ""
|
||||
"Список доверенных модов через запятую, которым разрешён доступ к "
|
||||
"Список доверенных модов разделённых через запятую, которым разрешён доступ к "
|
||||
"небезопасным функциям даже когда включена защита модов (через "
|
||||
"request_insecure_environment())."
|
||||
|
||||
@@ -3015,9 +3015,8 @@ msgid "Enable console window"
|
||||
msgstr "Включить окно консоли"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Включить творческий режим для вновь созданных карт."
|
||||
msgstr "Включить творческий режим для всех игроков"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -4341,13 +4340,12 @@ msgstr ""
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Key for placing.\n"
|
||||
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
msgstr ""
|
||||
"Клавиша прыжка.\n"
|
||||
"Клавиша размещения.\n"
|
||||
"См. http://irrlicht.sourceforge.net/docu/namespaceirr."
|
||||
"html#a54da2a0e231901735e3da1b0edf72eb3"
|
||||
|
||||
@@ -5789,14 +5787,12 @@ msgid "Pitch move mode"
|
||||
msgstr "Режим движения вниз/вверх по направлению взгляда"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Place key"
|
||||
msgstr "Клавиша полёта"
|
||||
msgstr "Клавиша «Разместить»"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Place repetition interval"
|
||||
msgstr "Интервал повторного клика правой кнопкой"
|
||||
msgstr "Интервал повторного размещения"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6282,18 +6278,16 @@ msgid "Show entity selection boxes"
|
||||
msgstr "Показывать область выделения объектов"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Show entity selection boxes\n"
|
||||
"A restart is required after changing this."
|
||||
msgstr ""
|
||||
"Установка языка. Оставьте пустым для использования системного языка.\n"
|
||||
"Показывать область выделения объектов\n"
|
||||
"Требует перезапуска после изменения."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Show nametag backgrounds by default"
|
||||
msgstr "Стандартный жирный шрифт"
|
||||
msgstr "Отображать фон у табличек с именами"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -6655,7 +6649,6 @@ msgstr ""
|
||||
"Это должно быть настроено вместе с active_object_send_range_blocks."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The rendering back-end for Irrlicht.\n"
|
||||
"A restart is required after changing this.\n"
|
||||
@@ -6668,7 +6661,8 @@ msgstr ""
|
||||
"После изменения этого параметра потребуется перезапуск.\n"
|
||||
"Примечание: Если не уверены, используйте OGLES1 для Android, иначе\n"
|
||||
"приложение может не запуститься. На других платформах рекомендуется\n"
|
||||
"OpenGL, так как сейчас это единственный драйвер с поддержкой шейдеров."
|
||||
"OpenGL. Шейдеры поддерживаются OpenGL (только на десктопах) и OGLES2 "
|
||||
"(экспериментально)"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6706,6 +6700,8 @@ msgid ""
|
||||
"The time budget allowed for ABMs to execute on each step\n"
|
||||
"(as a fraction of the ABM Interval)"
|
||||
msgstr ""
|
||||
"Бюджет времени для выполнения ABM на каждом шаге\n"
|
||||
"(как часть ABM-интервала)"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6716,11 +6712,12 @@ msgstr ""
|
||||
"когда зажата комбинация кнопок на джойстике."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The time in seconds it takes between repeated node placements when holding\n"
|
||||
"the place button."
|
||||
msgstr "Задержка в секундах между кликами при зажатой правой кнопке мыши."
|
||||
msgstr ""
|
||||
"Задержка перед повторным размещением блока в секундах\n"
|
||||
"при удержании клавиши размещения"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "The type of joystick"
|
||||
@@ -7144,6 +7141,8 @@ msgid ""
|
||||
"Whether nametag backgrounds should be shown by default.\n"
|
||||
"Mods may still set a background."
|
||||
msgstr ""
|
||||
"Должен ли отображаться фон бирки по умолчанию.\n"
|
||||
"Моды в любом случае могут задать фон."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Whether node texture animations should be desynchronized per mapblock."
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"PO-Revision-Date: 2021-03-14 11:02+0000\n"
|
||||
"Last-Translator: Marian <daretmavi@gmail.com>\n"
|
||||
"Language-Team: Slovak <https://hosted.weblate.org/projects/minetest/minetest/"
|
||||
"sk/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.5-dev\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -190,7 +190,7 @@ msgstr "$1 bude nainštalovaný, a $2 závislosti budú preskočené."
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "All packages"
|
||||
msgstr "Všetky balíčky"
|
||||
msgstr "Všetko"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Already installed"
|
||||
@@ -198,7 +198,7 @@ msgstr "Už je nainštalované"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Back to Main Menu"
|
||||
msgstr "Naspäť do hlavného menu"
|
||||
msgstr "Hlavné menu"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Base Game:"
|
||||
@@ -268,7 +268,7 @@ msgstr "Čaká v rade"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Texture packs"
|
||||
msgstr "Balíčky textúr"
|
||||
msgstr "Textúry"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Uninstall"
|
||||
@@ -577,7 +577,7 @@ msgstr "Prosím vlož platné číslo."
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Restore Default"
|
||||
msgstr "Obnov štandardné hodnoty"
|
||||
msgstr "Obnov štand. hodnoty"
|
||||
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
|
||||
msgid "Scale"
|
||||
@@ -710,9 +710,8 @@ msgid "Loading..."
|
||||
msgstr "Nahrávam..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "Skriptovanie na strane klienta je zakázané"
|
||||
msgstr "Zoznam verejných serverov je zakázaný"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -1023,7 +1022,7 @@ msgstr "Aby mohli byť aktivované shadery, musí sa použiť OpenGL."
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
|
||||
msgid "Tone Mapping"
|
||||
msgstr "Tone Mapping (Optim. farieb)"
|
||||
msgstr "Optim. farieb"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Touchthreshold: (px)"
|
||||
@@ -3005,9 +3004,8 @@ msgid "Enable console window"
|
||||
msgstr "Aktivuj okno konzoly"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Aktivuj kreatívny režim pre novo vytvorené mapy."
|
||||
msgstr "Aktivuj kreatívny režim pre všetkých hráčov"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -4987,13 +4985,13 @@ msgid ""
|
||||
"- verbose"
|
||||
msgstr ""
|
||||
"Úroveň ladiacich informácií, ktoré budú zapísané do debug.txt:\n"
|
||||
"- <nič> (bez logovania)\n"
|
||||
"- žiadna (správy bez úrovne)\n"
|
||||
"- chyby\n"
|
||||
"- varovania\n"
|
||||
"- akcie\n"
|
||||
"- informácie\n"
|
||||
"- všetko"
|
||||
"- <nič> (bez logovania)\n"
|
||||
"- none - žiadna (správy bez úrovne)\n"
|
||||
"- error - chyby\n"
|
||||
"- warning - varovania\n"
|
||||
"- akcie\n"
|
||||
"- info - informácie\n"
|
||||
"- verbose - všetko"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Light curve boost"
|
||||
@@ -6276,9 +6274,8 @@ msgstr ""
|
||||
"Po zmene je požadovaný reštart."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Show nametag backgrounds by default"
|
||||
msgstr "Štandardne tučné písmo"
|
||||
msgstr "Pri mene zobraz štandardne pozadie"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -7107,6 +7104,8 @@ msgid ""
|
||||
"Whether nametag backgrounds should be shown by default.\n"
|
||||
"Mods may still set a background."
|
||||
msgstr ""
|
||||
"Či sa má pri mene zobraziť pozadie.\n"
|
||||
"Rozšírenia stále môžu pozadie nastaviť."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Whether node texture animations should be desynchronized per mapblock."
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Turkish (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-02-13 08:50+0000\n"
|
||||
"PO-Revision-Date: 2021-03-07 07:10+0000\n"
|
||||
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
|
||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/minetest/"
|
||||
"minetest/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.5-dev\n"
|
||||
"X-Generator: Weblate 4.5.1\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -700,9 +700,8 @@ msgid "Loading..."
|
||||
msgstr "Yükleniyor..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "İstemci tarafı betik devre dışı"
|
||||
msgstr "Açık sunucu listesi devre dışı"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -2999,9 +2998,8 @@ msgid "Enable console window"
|
||||
msgstr "Konsol penceresini etkinleştir"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "Yeni yaratılan haritalar için yaratıcı kipi etkinleştir."
|
||||
msgstr "Tüm oyuncular için yaratıcı kipi etkinleştir"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -6264,9 +6262,8 @@ msgstr ""
|
||||
"Bunu değiştirdikten sonra yeniden başlatma gerekir."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Show nametag backgrounds by default"
|
||||
msgstr "Öntanımlı kalın yazı tipi"
|
||||
msgstr "Ad etiketi arka planlarını öntanımlı olarak göster"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -7105,6 +7102,8 @@ msgid ""
|
||||
"Whether nametag backgrounds should be shown by default.\n"
|
||||
"Mods may still set a background."
|
||||
msgstr ""
|
||||
"Ad etiketi arka planlarının öntanımlı olarak gösterilip gösterilmeyileceği.\n"
|
||||
"Modlar yine de bir arka plan ayarlayabilir."
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Whether node texture animations should be desynchronized per mapblock."
|
||||
|
||||
@@ -3,8 +3,8 @@ msgstr ""
|
||||
"Project-Id-Version: Chinese (Simplified) (Minetest)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-23 19:03+0100\n"
|
||||
"PO-Revision-Date: 2021-01-20 15:10+0000\n"
|
||||
"Last-Translator: ZhiZe-ZG <qi_wang_zz@outlook.com>\n"
|
||||
"PO-Revision-Date: 2021-03-22 18:29+0000\n"
|
||||
"Last-Translator: Yangjun Wang <yangjunw50@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.5-dev\n"
|
||||
"X-Generator: Weblate 4.5.2-dev\n"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "Respawn"
|
||||
@@ -20,7 +20,7 @@ msgstr "重生"
|
||||
|
||||
#: builtin/client/death_formspec.lua src/client/game.cpp
|
||||
msgid "You died"
|
||||
msgstr "您已死亡"
|
||||
msgstr "您已经死亡"
|
||||
|
||||
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
|
||||
msgid "OK"
|
||||
@@ -36,7 +36,7 @@ msgstr "发生了错误:"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "Main menu"
|
||||
msgstr "主菜单"
|
||||
msgstr "主单"
|
||||
|
||||
#: builtin/fstk/ui.lua
|
||||
msgid "Reconnect"
|
||||
@@ -151,7 +151,7 @@ msgstr "启用"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "\"$1\" already exists. Would you like to overwrite it?"
|
||||
msgstr ""
|
||||
msgstr "\"$1\"已经存在,你想覆写吗?"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 and $2 dependencies will be installed."
|
||||
@@ -168,9 +168,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "$1 downloading..."
|
||||
msgstr "下载中..."
|
||||
msgstr "正在下载 $1 ……"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "$1 required dependencies could not be found."
|
||||
@@ -185,18 +184,16 @@ msgid "All packages"
|
||||
msgstr "所有包"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Already installed"
|
||||
msgstr "按键已被占用"
|
||||
msgstr "已安装"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Back to Main Menu"
|
||||
msgstr "返回主菜单"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Base Game:"
|
||||
msgstr "主持游戏"
|
||||
msgstr "基础游戏:"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "ContentDB is not available when Minetest was compiled without cURL"
|
||||
@@ -213,21 +210,19 @@ msgstr "下载 $1 失败"
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
msgid "Games"
|
||||
msgstr "子游戏"
|
||||
msgstr "游戏"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Install"
|
||||
msgstr "安装"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install $1"
|
||||
msgstr "安装"
|
||||
msgstr "安装$1"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Install missing dependencies"
|
||||
msgstr "可选依赖项:"
|
||||
msgstr "安装缺失的依赖项"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#: builtin/mainmenu/dlg_settings_advanced.lua
|
||||
@@ -243,26 +238,25 @@ msgid "No results"
|
||||
msgstr "无结果"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "No updates"
|
||||
msgstr "更新"
|
||||
msgstr "没有更新"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Not found"
|
||||
msgstr "静音"
|
||||
msgstr "未找到"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Overwrite"
|
||||
msgstr ""
|
||||
msgstr "覆写"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Please check that the base game is correct."
|
||||
msgstr ""
|
||||
msgstr "请查看游戏是否正确。"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
#, fuzzy
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
msgstr "已加入队列"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Texture packs"
|
||||
@@ -278,11 +272,11 @@ msgstr "更新"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "Update All [$1]"
|
||||
msgstr ""
|
||||
msgstr "更新所有 [$1]"
|
||||
|
||||
#: builtin/mainmenu/dlg_contentstore.lua
|
||||
msgid "View more information in a web browser"
|
||||
msgstr ""
|
||||
msgstr "在网络浏览器中查看更多信息"
|
||||
|
||||
#: builtin/mainmenu/dlg_create_world.lua
|
||||
msgid "A world named \"$1\" already exists"
|
||||
@@ -700,9 +694,8 @@ msgid "Loading..."
|
||||
msgstr "载入中..."
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
#, fuzzy
|
||||
msgid "Public server list is disabled"
|
||||
msgstr "客户端脚本已禁用"
|
||||
msgstr "已禁用公共服务器列表"
|
||||
|
||||
#: builtin/mainmenu/serverlistmgr.lua
|
||||
msgid "Try reenabling public serverlist and check your internet connection."
|
||||
@@ -761,9 +754,8 @@ msgid "Credits"
|
||||
msgstr "贡献者"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
#, fuzzy
|
||||
msgid "Open User Data Directory"
|
||||
msgstr "选择目录"
|
||||
msgstr "打开用户数据目录"
|
||||
|
||||
#: builtin/mainmenu/tab_credits.lua
|
||||
msgid ""
|
||||
@@ -809,7 +801,7 @@ msgstr "从 ContentDB 安装游戏"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "名称"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "New"
|
||||
@@ -820,9 +812,8 @@ msgid "No world created or selected!"
|
||||
msgstr "未创建或选择世界!"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Password"
|
||||
msgstr "新密码"
|
||||
msgstr "密码"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Play Game"
|
||||
@@ -833,9 +824,8 @@ msgid "Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
#, fuzzy
|
||||
msgid "Select Mods"
|
||||
msgstr "选择世界:"
|
||||
msgstr "选择模组"
|
||||
|
||||
#: builtin/mainmenu/tab_local.lua
|
||||
msgid "Select World:"
|
||||
@@ -987,9 +977,8 @@ msgid "Shaders"
|
||||
msgstr "着色器"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
#, fuzzy
|
||||
msgid "Shaders (experimental)"
|
||||
msgstr "悬空岛(实验性)"
|
||||
msgstr "着色器(实验性)"
|
||||
|
||||
#: builtin/mainmenu/tab_settings.lua
|
||||
msgid "Shaders (unavailable)"
|
||||
@@ -1756,9 +1745,8 @@ msgid "Minimap in surface mode, Zoom x%d"
|
||||
msgstr "地表模式小地图, 放大至一倍"
|
||||
|
||||
#: src/client/minimap.cpp
|
||||
#, fuzzy
|
||||
msgid "Minimap in texture mode"
|
||||
msgstr "最小材质大小"
|
||||
msgstr "材质模式小地图"
|
||||
|
||||
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
|
||||
msgid "Passwords do not match!"
|
||||
@@ -2151,7 +2139,7 @@ msgstr "ABM间隔"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "ABM time budget"
|
||||
msgstr ""
|
||||
msgstr "ABM 时间预算"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Absolute limit of queued blocks to emerge"
|
||||
@@ -2648,7 +2636,7 @@ msgstr "ContentDB标签黑名单"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "ContentDB Max Concurrent Downloads"
|
||||
msgstr ""
|
||||
msgstr "ContentDB 最大并发下载量"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "ContentDB URL"
|
||||
@@ -2975,9 +2963,8 @@ msgid "Enable console window"
|
||||
msgstr "启用控制台窗口"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Enable creative mode for all players"
|
||||
msgstr "为新建地图启用创造模式。"
|
||||
msgstr "为所有玩家启用创造模式"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Enable joysticks"
|
||||
@@ -3128,9 +3115,8 @@ msgstr ""
|
||||
"适用于固体悬空岛层。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "FPS when unfocused or paused"
|
||||
msgstr "游戏暂停时最高 FPS。"
|
||||
msgstr "游戏暂停时最高 FPS"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "FSAA"
|
||||
@@ -4028,9 +4014,8 @@ msgid "Joystick button repetition interval"
|
||||
msgstr "摇杆按钮重复间隔"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Joystick deadzone"
|
||||
msgstr "摇杆类型"
|
||||
msgstr "摇杆无效区"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Joystick frustum sensitivity"
|
||||
@@ -5057,11 +5042,11 @@ msgstr "使所有液体不透明"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map Compression Level for Disk Storage"
|
||||
msgstr ""
|
||||
msgstr "磁盘存储的映射压缩级别"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map Compression Level for Network Transfer"
|
||||
msgstr ""
|
||||
msgstr "网络传输的地图压缩级别"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Map directory"
|
||||
@@ -5246,9 +5231,8 @@ msgid "Maximum FPS"
|
||||
msgstr "最大 FPS"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Maximum FPS when the window is not focused, or when the game is paused."
|
||||
msgstr "游戏暂停时最高 FPS。"
|
||||
msgstr "窗口未聚焦或游戏暂停时的最大 FPS。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Maximum forceloaded blocks"
|
||||
@@ -5710,9 +5694,8 @@ msgid "Place key"
|
||||
msgstr "飞行键"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Place repetition interval"
|
||||
msgstr "右击重复间隔"
|
||||
msgstr "放置重复间隔"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6194,9 +6177,8 @@ msgstr ""
|
||||
"变更后须重新启动。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Show nametag backgrounds by default"
|
||||
msgstr "默认粗体"
|
||||
msgstr "默认显示名称标签背景"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Shutdown message"
|
||||
@@ -6456,13 +6438,12 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "The URL for the content repository"
|
||||
msgstr "内容存储库的 URL"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "The deadzone of the joystick"
|
||||
msgstr ""
|
||||
msgstr "摇杆的无效区"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6485,7 +6466,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "The length in pixels it takes for touch screen interaction to start."
|
||||
msgstr ""
|
||||
msgstr "开始触摸屏交互所需的长度(以像素为单位)。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6570,7 +6551,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "The type of joystick"
|
||||
msgstr ""
|
||||
msgstr "摇杆类型"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6658,7 +6639,6 @@ msgid "URL to the server list displayed in the Multiplayer Tab."
|
||||
msgstr "显示在“多人游戏”选项卡中的服务器列表的URL。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Undersampling"
|
||||
msgstr "欠采样"
|
||||
|
||||
@@ -6692,7 +6672,6 @@ msgid "Use 3D cloud look instead of flat."
|
||||
msgstr "使用 3D 云彩,而不是看起来是平面的。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "Use a cloud animation for the main menu background."
|
||||
msgstr "主菜单背景使用云动画。"
|
||||
|
||||
@@ -6702,7 +6681,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Use bilinear filtering when scaling textures."
|
||||
msgstr ""
|
||||
msgstr "缩放材质时使用双线过滤。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid ""
|
||||
@@ -6724,7 +6703,7 @@ msgstr ""
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "Use trilinear filtering when scaling textures."
|
||||
msgstr ""
|
||||
msgstr "缩放材质时使用三线过滤。"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "VBO"
|
||||
@@ -6797,9 +6776,8 @@ msgid "Video driver"
|
||||
msgstr "视频驱动程序"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
#, fuzzy
|
||||
msgid "View bobbing factor"
|
||||
msgstr "范围摇动"
|
||||
msgstr "视野晃动系数"
|
||||
|
||||
#: src/settings_translation_file.cpp
|
||||
msgid "View distance in nodes."
|
||||
|
||||
@@ -415,11 +415,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
return m_csm_restriction_flags & flag;
|
||||
}
|
||||
|
||||
inline std::unordered_map<u32, u32> &getHUDTranslationMap()
|
||||
{
|
||||
return m_hud_server_to_client;
|
||||
}
|
||||
|
||||
bool joinModChannel(const std::string &channel) override;
|
||||
bool leaveModChannel(const std::string &channel) override;
|
||||
bool sendModChannelMessage(const std::string &channel,
|
||||
@@ -556,9 +551,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
// Relation of client id to object id
|
||||
std::unordered_map<int, u16> m_sounds_to_objects;
|
||||
|
||||
// Map server hud ids to client hud ids
|
||||
std::unordered_map<u32, u32> m_hud_server_to_client;
|
||||
|
||||
// Privileges
|
||||
std::unordered_set<std::string> m_privileges;
|
||||
|
||||
|
||||
@@ -496,12 +496,12 @@ int ClientMap::getBackgroundBrightness(float max_d, u32 daylight_factor,
|
||||
static v3f z_directions[50] = {
|
||||
v3f(-100, 0, 0)
|
||||
};
|
||||
static f32 z_offsets[sizeof(z_directions)/sizeof(*z_directions)] = {
|
||||
static f32 z_offsets[50] = {
|
||||
-1000,
|
||||
};
|
||||
|
||||
if(z_directions[0].X < -99){
|
||||
for(u32 i=0; i<sizeof(z_directions)/sizeof(*z_directions); i++){
|
||||
if (z_directions[0].X < -99) {
|
||||
for (u32 i = 0; i < ARRLEN(z_directions); i++) {
|
||||
// Assumes FOV of 72 and 16/9 aspect ratio
|
||||
z_directions[i] = v3f(
|
||||
0.02 * myrand_range(-100, 100),
|
||||
@@ -517,7 +517,8 @@ int ClientMap::getBackgroundBrightness(float max_d, u32 daylight_factor,
|
||||
if(sunlight_min_d > 35*BS)
|
||||
sunlight_min_d = 35*BS;
|
||||
std::vector<int> values;
|
||||
for(u32 i=0; i<sizeof(z_directions)/sizeof(*z_directions); i++){
|
||||
values.reserve(ARRLEN(z_directions));
|
||||
for (u32 i = 0; i < ARRLEN(z_directions); i++) {
|
||||
v3f z_dir = z_directions[i];
|
||||
core::CMatrix4<f32> a;
|
||||
a.buildRotateFromTo(v3f(0,1,0), z_dir);
|
||||
|
||||
@@ -170,7 +170,7 @@ void Clouds::render()
|
||||
|
||||
// Read noise
|
||||
|
||||
std::vector<char> grid(m_cloud_radius_i * 2 * m_cloud_radius_i * 2); // vector<bool> is broken
|
||||
std::vector<bool> grid(m_cloud_radius_i * 2 * m_cloud_radius_i * 2);
|
||||
std::vector<video::S3DVertex> vertices;
|
||||
vertices.reserve(16 * m_cloud_radius_i * m_cloud_radius_i);
|
||||
|
||||
|
||||
@@ -425,6 +425,7 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter
|
||||
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;
|
||||
Client *m_client;
|
||||
|
||||
public:
|
||||
@@ -458,6 +459,7 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter
|
||||
m_camera_offset_pixel("cameraOffset"),
|
||||
m_camera_offset_vertex("cameraOffset"),
|
||||
m_base_texture("baseTexture"),
|
||||
m_normal_texture("normalTexture"),
|
||||
m_client(client)
|
||||
{
|
||||
g_settings->registerChangedCallback("enable_fog", settingsCallback, this);
|
||||
@@ -545,8 +547,9 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter
|
||||
m_camera_offset_pixel.set(camera_offset_array, services);
|
||||
m_camera_offset_vertex.set(camera_offset_array, services);
|
||||
|
||||
SamplerLayer_t base_tex = 0;
|
||||
SamplerLayer_t base_tex = 0, normal_tex = 1;
|
||||
m_base_texture.set(&base_tex, services);
|
||||
m_normal_texture.set(&normal_tex, services);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -856,6 +859,9 @@ class Game {
|
||||
Hud *hud = nullptr;
|
||||
Minimap *mapper = nullptr;
|
||||
|
||||
// Map server hud ids to client hud ids
|
||||
std::unordered_map<u32, u32> m_hud_server_to_client;
|
||||
|
||||
GameRunData runData;
|
||||
Flags m_flags;
|
||||
|
||||
@@ -1532,7 +1538,7 @@ bool Game::connectToServer(const GameStartData &start_data,
|
||||
} else {
|
||||
wait_time += dtime;
|
||||
// Only time out if we aren't waiting for the server we started
|
||||
if (!start_data.isSinglePlayer() && wait_time > 10) {
|
||||
if (!start_data.address.empty() && wait_time > 10) {
|
||||
*error_message = "Connection timed out.";
|
||||
errorstream << *error_message << std::endl;
|
||||
break;
|
||||
@@ -2602,12 +2608,11 @@ void Game::handleClientEvent_HandleParticleEvent(ClientEvent *event,
|
||||
void Game::handleClientEvent_HudAdd(ClientEvent *event, CameraOrientation *cam)
|
||||
{
|
||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||
auto &hud_server_to_client = client->getHUDTranslationMap();
|
||||
|
||||
u32 server_id = event->hudadd.server_id;
|
||||
// ignore if we already have a HUD with that ID
|
||||
auto i = hud_server_to_client.find(server_id);
|
||||
if (i != hud_server_to_client.end()) {
|
||||
auto i = m_hud_server_to_client.find(server_id);
|
||||
if (i != m_hud_server_to_client.end()) {
|
||||
delete event->hudadd.pos;
|
||||
delete event->hudadd.name;
|
||||
delete event->hudadd.scale;
|
||||
@@ -2635,7 +2640,7 @@ void Game::handleClientEvent_HudAdd(ClientEvent *event, CameraOrientation *cam)
|
||||
e->size = *event->hudadd.size;
|
||||
e->z_index = event->hudadd.z_index;
|
||||
e->text2 = *event->hudadd.text2;
|
||||
hud_server_to_client[server_id] = player->addHud(e);
|
||||
m_hud_server_to_client[server_id] = player->addHud(e);
|
||||
|
||||
delete event->hudadd.pos;
|
||||
delete event->hudadd.name;
|
||||
@@ -2651,18 +2656,28 @@ void Game::handleClientEvent_HudAdd(ClientEvent *event, CameraOrientation *cam)
|
||||
void Game::handleClientEvent_HudRemove(ClientEvent *event, CameraOrientation *cam)
|
||||
{
|
||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||
HudElement *e = player->removeHud(event->hudrm.id);
|
||||
delete e;
|
||||
|
||||
auto i = m_hud_server_to_client.find(event->hudrm.id);
|
||||
if (i != m_hud_server_to_client.end()) {
|
||||
HudElement *e = player->removeHud(i->second);
|
||||
delete e;
|
||||
m_hud_server_to_client.erase(i);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Game::handleClientEvent_HudChange(ClientEvent *event, CameraOrientation *cam)
|
||||
{
|
||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||
|
||||
u32 id = event->hudchange.id;
|
||||
HudElement *e = player->getHud(id);
|
||||
HudElement *e = nullptr;
|
||||
|
||||
if (e == NULL) {
|
||||
auto i = m_hud_server_to_client.find(event->hudchange.id);
|
||||
if (i != m_hud_server_to_client.end()) {
|
||||
e = player->getHud(i->second);
|
||||
}
|
||||
|
||||
if (e == nullptr) {
|
||||
delete event->hudchange.v3fdata;
|
||||
delete event->hudchange.v2fdata;
|
||||
delete event->hudchange.sdata;
|
||||
|
||||
@@ -336,22 +336,22 @@ void Hud::drawLuaElements(const v3s16 &camera_offset)
|
||||
irr::gui::IGUIFont* font = g_fontengine->getFont();
|
||||
|
||||
// Reorder elements by z_index
|
||||
std::vector<size_t> ids;
|
||||
std::vector<HudElement*> elems;
|
||||
elems.reserve(player->maxHudId());
|
||||
|
||||
for (size_t i = 0; i != player->maxHudId(); i++) {
|
||||
HudElement *e = player->getHud(i);
|
||||
if (!e)
|
||||
continue;
|
||||
|
||||
auto it = ids.begin();
|
||||
while (it != ids.end() && player->getHud(*it)->z_index <= e->z_index)
|
||||
auto it = elems.begin();
|
||||
while (it != elems.end() && (*it)->z_index <= e->z_index)
|
||||
++it;
|
||||
|
||||
ids.insert(it, i);
|
||||
elems.insert(it, e);
|
||||
}
|
||||
|
||||
for (size_t i : ids) {
|
||||
HudElement *e = player->getHud(i);
|
||||
for (HudElement *e : elems) {
|
||||
|
||||
v2s32 pos(floor(e->pos.X * (float) m_screensize.X + 0.5),
|
||||
floor(e->pos.Y * (float) m_screensize.Y + 0.5));
|
||||
@@ -522,8 +522,8 @@ void Hud::drawLuaElements(const v3s16 &camera_offset)
|
||||
client->getMinimap()->drawMinimap(rect);
|
||||
break; }
|
||||
default:
|
||||
infostream << "Hud::drawLuaElements: ignoring drawform " << e->type <<
|
||||
" of hud element ID " << i << " due to unrecognized type" << std::endl;
|
||||
infostream << "Hud::drawLuaElements: ignoring drawform " << e->type
|
||||
<< " due to unrecognized type" << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,13 +81,13 @@ Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) :
|
||||
// Ensures that sun and moon textures and tonemaps are correct.
|
||||
setSkyDefaults();
|
||||
m_sun_texture = tsrc->isKnownSourceImage(m_sun_params.texture) ?
|
||||
tsrc->getTextureForMesh(m_sun_params.texture) : NULL;
|
||||
tsrc->getTextureForMesh(m_sun_params.texture) : nullptr;
|
||||
m_moon_texture = tsrc->isKnownSourceImage(m_moon_params.texture) ?
|
||||
tsrc->getTextureForMesh(m_moon_params.texture) : NULL;
|
||||
tsrc->getTextureForMesh(m_moon_params.texture) : nullptr;
|
||||
m_sun_tonemap = tsrc->isKnownSourceImage(m_sun_params.tonemap) ?
|
||||
tsrc->getTexture(m_sun_params.tonemap) : NULL;
|
||||
tsrc->getTexture(m_sun_params.tonemap) : nullptr;
|
||||
m_moon_tonemap = tsrc->isKnownSourceImage(m_moon_params.tonemap) ?
|
||||
tsrc->getTexture(m_moon_params.tonemap) : NULL;
|
||||
tsrc->getTexture(m_moon_params.tonemap) : nullptr;
|
||||
|
||||
if (m_sun_texture) {
|
||||
m_materials[3] = baseMaterial();
|
||||
@@ -743,14 +743,14 @@ void Sky::place_sky_body(
|
||||
}
|
||||
}
|
||||
|
||||
void Sky::setSunTexture(std::string sun_texture,
|
||||
std::string sun_tonemap, ITextureSource *tsrc)
|
||||
void Sky::setSunTexture(const std::string &sun_texture,
|
||||
const std::string &sun_tonemap, ITextureSource *tsrc)
|
||||
{
|
||||
// Ignore matching textures (with modifiers) entirely,
|
||||
// but lets at least update the tonemap before hand.
|
||||
m_sun_params.tonemap = sun_tonemap;
|
||||
m_sun_tonemap = tsrc->isKnownSourceImage(m_sun_params.tonemap) ?
|
||||
tsrc->getTexture(m_sun_params.tonemap) : NULL;
|
||||
tsrc->getTexture(m_sun_params.tonemap) : nullptr;
|
||||
m_materials[3].Lighting = !!m_sun_tonemap;
|
||||
|
||||
if (m_sun_params.texture == sun_texture)
|
||||
@@ -779,7 +779,7 @@ void Sky::setSunTexture(std::string sun_texture,
|
||||
}
|
||||
}
|
||||
|
||||
void Sky::setSunriseTexture(std::string sunglow_texture,
|
||||
void Sky::setSunriseTexture(const std::string &sunglow_texture,
|
||||
ITextureSource* tsrc)
|
||||
{
|
||||
// Ignore matching textures (with modifiers) entirely.
|
||||
@@ -791,14 +791,14 @@ void Sky::setSunriseTexture(std::string sunglow_texture,
|
||||
);
|
||||
}
|
||||
|
||||
void Sky::setMoonTexture(std::string moon_texture,
|
||||
std::string moon_tonemap, ITextureSource *tsrc)
|
||||
void Sky::setMoonTexture(const std::string &moon_texture,
|
||||
const std::string &moon_tonemap, ITextureSource *tsrc)
|
||||
{
|
||||
// Ignore matching textures (with modifiers) entirely,
|
||||
// but lets at least update the tonemap before hand.
|
||||
m_moon_params.tonemap = moon_tonemap;
|
||||
m_moon_tonemap = tsrc->isKnownSourceImage(m_moon_params.tonemap) ?
|
||||
tsrc->getTexture(m_moon_params.tonemap) : NULL;
|
||||
tsrc->getTexture(m_moon_params.tonemap) : nullptr;
|
||||
m_materials[4].Lighting = !!m_moon_tonemap;
|
||||
|
||||
if (m_moon_params.texture == moon_texture)
|
||||
@@ -892,7 +892,7 @@ void Sky::setSkyColors(const SkyColor &sky_color)
|
||||
}
|
||||
|
||||
void Sky::setHorizonTint(video::SColor sun_tint, video::SColor moon_tint,
|
||||
std::string use_sun_tint)
|
||||
const std::string &use_sun_tint)
|
||||
{
|
||||
// Change sun and moon tinting:
|
||||
m_sky_params.fog_sun_tint = sun_tint;
|
||||
@@ -906,7 +906,7 @@ void Sky::setHorizonTint(video::SColor sun_tint, video::SColor moon_tint,
|
||||
m_default_tint = true;
|
||||
}
|
||||
|
||||
void Sky::addTextureToSkybox(std::string texture, int material_id,
|
||||
void Sky::addTextureToSkybox(const std::string &texture, int material_id,
|
||||
ITextureSource *tsrc)
|
||||
{
|
||||
// Sanity check for more than six textures.
|
||||
|
||||
@@ -65,15 +65,15 @@ class Sky : public scene::ISceneNode
|
||||
}
|
||||
|
||||
void setSunVisible(bool sun_visible) { m_sun_params.visible = sun_visible; }
|
||||
void setSunTexture(std::string sun_texture,
|
||||
std::string sun_tonemap, ITextureSource *tsrc);
|
||||
void setSunTexture(const std::string &sun_texture,
|
||||
const std::string &sun_tonemap, ITextureSource *tsrc);
|
||||
void setSunScale(f32 sun_scale) { m_sun_params.scale = sun_scale; }
|
||||
void setSunriseVisible(bool glow_visible) { m_sun_params.sunrise_visible = glow_visible; }
|
||||
void setSunriseTexture(std::string sunglow_texture, ITextureSource* tsrc);
|
||||
void setSunriseTexture(const std::string &sunglow_texture, ITextureSource* tsrc);
|
||||
|
||||
void setMoonVisible(bool moon_visible) { m_moon_params.visible = moon_visible; }
|
||||
void setMoonTexture(std::string moon_texture,
|
||||
std::string moon_tonemap, ITextureSource *tsrc);
|
||||
void setMoonTexture(const std::string &moon_texture,
|
||||
const std::string &moon_tonemap, ITextureSource *tsrc);
|
||||
void setMoonScale(f32 moon_scale) { m_moon_params.scale = moon_scale; }
|
||||
|
||||
void setStarsVisible(bool stars_visible) { m_star_params.visible = stars_visible; }
|
||||
@@ -87,21 +87,21 @@ class Sky : public scene::ISceneNode
|
||||
void setVisible(bool visible) { m_visible = visible; }
|
||||
// Set only from set_sky API
|
||||
void setCloudsEnabled(bool clouds_enabled) { m_clouds_enabled = clouds_enabled; }
|
||||
void setFallbackBgColor(const video::SColor &fallback_bg_color)
|
||||
void setFallbackBgColor(video::SColor fallback_bg_color)
|
||||
{
|
||||
m_fallback_bg_color = fallback_bg_color;
|
||||
}
|
||||
void overrideColors(const video::SColor &bgcolor, const video::SColor &skycolor)
|
||||
void overrideColors(video::SColor bgcolor, video::SColor skycolor)
|
||||
{
|
||||
m_bgcolor = bgcolor;
|
||||
m_skycolor = skycolor;
|
||||
}
|
||||
void setSkyColors(const SkyColor &sky_color);
|
||||
void setHorizonTint(video::SColor sun_tint, video::SColor moon_tint,
|
||||
std::string use_sun_tint);
|
||||
const std::string &use_sun_tint);
|
||||
void setInClouds(bool clouds) { m_in_clouds = clouds; }
|
||||
void clearSkyboxTextures() { m_sky_params.textures.clear(); }
|
||||
void addTextureToSkybox(std::string texture, int material_id,
|
||||
void addTextureToSkybox(const std::string &texture, int material_id,
|
||||
ITextureSource *tsrc);
|
||||
const video::SColorf &getCurrentStarColor() const { return m_star_color; }
|
||||
|
||||
@@ -126,7 +126,7 @@ class Sky : public scene::ISceneNode
|
||||
}
|
||||
|
||||
// Mix two colors by a given amount
|
||||
video::SColor m_mix_scolor(video::SColor col1, video::SColor col2, f32 factor)
|
||||
static video::SColor m_mix_scolor(video::SColor col1, video::SColor col2, f32 factor)
|
||||
{
|
||||
video::SColor result = video::SColor(
|
||||
col1.getAlpha() * (1 - factor) + col2.getAlpha() * factor,
|
||||
@@ -135,7 +135,7 @@ class Sky : public scene::ISceneNode
|
||||
col1.getBlue() * (1 - factor) + col2.getBlue() * factor);
|
||||
return result;
|
||||
}
|
||||
video::SColorf m_mix_scolorf(video::SColorf col1, video::SColorf col2, f32 factor)
|
||||
static video::SColorf m_mix_scolorf(video::SColorf col1, video::SColorf col2, f32 factor)
|
||||
{
|
||||
video::SColorf result =
|
||||
video::SColorf(col1.r * (1 - factor) + col2.r * factor,
|
||||
|
||||
@@ -671,7 +671,6 @@ void ClientInterface::UpdatePlayerList()
|
||||
std::vector<session_t> clients = getClientIDs();
|
||||
m_clients_names.clear();
|
||||
|
||||
|
||||
if (!clients.empty())
|
||||
infostream<<"Players:"<<std::endl;
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ using namespace gui;
|
||||
|
||||
GUIButtonItemImage::GUIButtonItemImage(gui::IGUIEnvironment *environment,
|
||||
gui::IGUIElement *parent, s32 id, core::rect<s32> rectangle,
|
||||
ISimpleTextureSource *tsrc, std::string item, Client *client,
|
||||
ISimpleTextureSource *tsrc, const std::string &item, Client *client,
|
||||
bool noclip)
|
||||
: GUIButton (environment, parent, id, rectangle, tsrc, noclip)
|
||||
{
|
||||
@@ -44,7 +44,7 @@ GUIButtonItemImage::GUIButtonItemImage(gui::IGUIEnvironment *environment,
|
||||
|
||||
GUIButtonItemImage *GUIButtonItemImage::addButton(IGUIEnvironment *environment,
|
||||
const core::rect<s32> &rectangle, ISimpleTextureSource *tsrc,
|
||||
IGUIElement *parent, s32 id, const wchar_t *text, std::string item,
|
||||
IGUIElement *parent, s32 id, const wchar_t *text, const std::string &item,
|
||||
Client *client)
|
||||
{
|
||||
GUIButtonItemImage *button = new GUIButtonItemImage(environment,
|
||||
|
||||
@@ -33,13 +33,13 @@ class GUIButtonItemImage : public GUIButton
|
||||
//! constructor
|
||||
GUIButtonItemImage(gui::IGUIEnvironment *environment, gui::IGUIElement *parent,
|
||||
s32 id, core::rect<s32> rectangle, ISimpleTextureSource *tsrc,
|
||||
std::string item, Client *client, bool noclip = false);
|
||||
const std::string &item, Client *client, bool noclip = false);
|
||||
|
||||
//! Do not drop returned handle
|
||||
static GUIButtonItemImage *addButton(gui::IGUIEnvironment *environment,
|
||||
const core::rect<s32> &rectangle, ISimpleTextureSource *tsrc,
|
||||
IGUIElement *parent, s32 id, const wchar_t *text, std::string item,
|
||||
Client *client);
|
||||
IGUIElement *parent, s32 id, const wchar_t *text,
|
||||
const std::string &item, Client *client);
|
||||
|
||||
private:
|
||||
Client *m_client;
|
||||
|
||||
@@ -965,13 +965,14 @@ InventoryList * Inventory::getList(const std::string &name)
|
||||
{
|
||||
s32 i = getListIndex(name);
|
||||
if(i == -1)
|
||||
return NULL;
|
||||
return nullptr;
|
||||
return m_lists[i];
|
||||
}
|
||||
|
||||
std::vector<const InventoryList*> Inventory::getLists()
|
||||
{
|
||||
std::vector<const InventoryList*> lists;
|
||||
lists.reserve(m_lists.size());
|
||||
for (auto list : m_lists) {
|
||||
lists.push_back(list);
|
||||
}
|
||||
@@ -990,11 +991,11 @@ bool Inventory::deleteList(const std::string &name)
|
||||
return true;
|
||||
}
|
||||
|
||||
const InventoryList * Inventory::getList(const std::string &name) const
|
||||
const InventoryList *Inventory::getList(const std::string &name) const
|
||||
{
|
||||
s32 i = getListIndex(name);
|
||||
if(i == -1)
|
||||
return NULL;
|
||||
return nullptr;
|
||||
return m_lists[i];
|
||||
}
|
||||
|
||||
|
||||
@@ -1095,16 +1095,10 @@ void Client::handleCommand_HudRemove(NetworkPacket* pkt)
|
||||
|
||||
*pkt >> server_id;
|
||||
|
||||
auto i = m_hud_server_to_client.find(server_id);
|
||||
if (i != m_hud_server_to_client.end()) {
|
||||
int client_id = i->second;
|
||||
m_hud_server_to_client.erase(i);
|
||||
|
||||
ClientEvent *event = new ClientEvent();
|
||||
event->type = CE_HUDRM;
|
||||
event->hudrm.id = client_id;
|
||||
m_client_event_queue.push(event);
|
||||
}
|
||||
ClientEvent *event = new ClientEvent();
|
||||
event->type = CE_HUDRM;
|
||||
event->hudrm.id = server_id;
|
||||
m_client_event_queue.push(event);
|
||||
}
|
||||
|
||||
void Client::handleCommand_HudChange(NetworkPacket* pkt)
|
||||
@@ -1131,19 +1125,16 @@ void Client::handleCommand_HudChange(NetworkPacket* pkt)
|
||||
else
|
||||
*pkt >> intdata;
|
||||
|
||||
std::unordered_map<u32, u32>::const_iterator i = m_hud_server_to_client.find(server_id);
|
||||
if (i != m_hud_server_to_client.end()) {
|
||||
ClientEvent *event = new ClientEvent();
|
||||
event->type = CE_HUDCHANGE;
|
||||
event->hudchange.id = i->second;
|
||||
event->hudchange.stat = (HudElementStat)stat;
|
||||
event->hudchange.v2fdata = new v2f(v2fdata);
|
||||
event->hudchange.v3fdata = new v3f(v3fdata);
|
||||
event->hudchange.sdata = new std::string(sdata);
|
||||
event->hudchange.data = intdata;
|
||||
event->hudchange.v2s32data = new v2s32(v2s32data);
|
||||
m_client_event_queue.push(event);
|
||||
}
|
||||
ClientEvent *event = new ClientEvent();
|
||||
event->type = CE_HUDCHANGE;
|
||||
event->hudchange.id = server_id;
|
||||
event->hudchange.stat = (HudElementStat)stat;
|
||||
event->hudchange.v2fdata = new v2f(v2fdata);
|
||||
event->hudchange.v3fdata = new v3f(v3fdata);
|
||||
event->hudchange.sdata = new std::string(sdata);
|
||||
event->hudchange.data = intdata;
|
||||
event->hudchange.v2s32data = new v2s32(v2s32data);
|
||||
m_client_event_queue.push(event);
|
||||
}
|
||||
|
||||
void Client::handleCommand_HudSetFlags(NetworkPacket* pkt)
|
||||
|
||||
@@ -200,17 +200,12 @@ RPBSearchResult ReliablePacketBuffer::findPacket(u16 seqnum)
|
||||
return i;
|
||||
}
|
||||
|
||||
RPBSearchResult ReliablePacketBuffer::notFound()
|
||||
{
|
||||
return m_list.end();
|
||||
}
|
||||
|
||||
bool ReliablePacketBuffer::getFirstSeqnum(u16& result)
|
||||
{
|
||||
MutexAutoLock listlock(m_list_mutex);
|
||||
if (m_list.empty())
|
||||
return false;
|
||||
const BufferedPacket &p = *m_list.begin();
|
||||
const BufferedPacket &p = m_list.front();
|
||||
result = readU16(&p.data[BASE_HEADER_SIZE + 1]);
|
||||
return true;
|
||||
}
|
||||
@@ -220,14 +215,14 @@ BufferedPacket ReliablePacketBuffer::popFirst()
|
||||
MutexAutoLock listlock(m_list_mutex);
|
||||
if (m_list.empty())
|
||||
throw NotFoundException("Buffer is empty");
|
||||
BufferedPacket p = *m_list.begin();
|
||||
m_list.erase(m_list.begin());
|
||||
BufferedPacket p = std::move(m_list.front());
|
||||
m_list.pop_front();
|
||||
|
||||
if (m_list.empty()) {
|
||||
m_oldest_non_answered_ack = 0;
|
||||
} else {
|
||||
m_oldest_non_answered_ack =
|
||||
readU16(&m_list.begin()->data[BASE_HEADER_SIZE + 1]);
|
||||
readU16(&m_list.front().data[BASE_HEADER_SIZE + 1]);
|
||||
}
|
||||
return p;
|
||||
}
|
||||
@@ -241,15 +236,7 @@ BufferedPacket ReliablePacketBuffer::popSeqnum(u16 seqnum)
|
||||
<< " not found in reliable buffer"<<std::endl);
|
||||
throw NotFoundException("seqnum not found in buffer");
|
||||
}
|
||||
BufferedPacket p = *r;
|
||||
|
||||
|
||||
RPBSearchResult next = r;
|
||||
++next;
|
||||
if (next != notFound()) {
|
||||
u16 s = readU16(&(next->data[BASE_HEADER_SIZE+1]));
|
||||
m_oldest_non_answered_ack = s;
|
||||
}
|
||||
BufferedPacket p = std::move(*r);
|
||||
|
||||
m_list.erase(r);
|
||||
|
||||
@@ -257,12 +244,12 @@ BufferedPacket ReliablePacketBuffer::popSeqnum(u16 seqnum)
|
||||
m_oldest_non_answered_ack = 0;
|
||||
} else {
|
||||
m_oldest_non_answered_ack =
|
||||
readU16(&m_list.begin()->data[BASE_HEADER_SIZE + 1]);
|
||||
readU16(&m_list.front().data[BASE_HEADER_SIZE + 1]);
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
void ReliablePacketBuffer::insert(BufferedPacket &p, u16 next_expected)
|
||||
void ReliablePacketBuffer::insert(const BufferedPacket &p, u16 next_expected)
|
||||
{
|
||||
MutexAutoLock listlock(m_list_mutex);
|
||||
if (p.data.getSize() < BASE_HEADER_SIZE + 3) {
|
||||
@@ -355,7 +342,7 @@ void ReliablePacketBuffer::insert(BufferedPacket &p, u16 next_expected)
|
||||
}
|
||||
|
||||
/* update last packet number */
|
||||
m_oldest_non_answered_ack = readU16(&(*m_list.begin()).data[BASE_HEADER_SIZE+1]);
|
||||
m_oldest_non_answered_ack = readU16(&m_list.front().data[BASE_HEADER_SIZE+1]);
|
||||
}
|
||||
|
||||
void ReliablePacketBuffer::incrementTimeouts(float dtime)
|
||||
@@ -367,17 +354,19 @@ void ReliablePacketBuffer::incrementTimeouts(float dtime)
|
||||
}
|
||||
}
|
||||
|
||||
std::list<BufferedPacket> ReliablePacketBuffer::getTimedOuts(float timeout,
|
||||
unsigned int max_packets)
|
||||
std::list<BufferedPacket>
|
||||
ReliablePacketBuffer::getTimedOuts(float timeout, u32 max_packets)
|
||||
{
|
||||
MutexAutoLock listlock(m_list_mutex);
|
||||
std::list<BufferedPacket> timed_outs;
|
||||
for (BufferedPacket &bufferedPacket : m_list) {
|
||||
if (bufferedPacket.time >= timeout) {
|
||||
// caller will resend packet so reset time and increase counter
|
||||
bufferedPacket.time = 0.0f;
|
||||
bufferedPacket.resend_count++;
|
||||
|
||||
timed_outs.push_back(bufferedPacket);
|
||||
|
||||
//this packet will be sent right afterwards reset timeout here
|
||||
bufferedPacket.time = 0.0f;
|
||||
if (timed_outs.size() >= max_packets)
|
||||
break;
|
||||
}
|
||||
@@ -1051,20 +1040,20 @@ bool UDPPeer::processReliableSendCommand(
|
||||
m_connection->GetProtocolID(), m_connection->GetPeerID(),
|
||||
c.channelnum);
|
||||
|
||||
toadd.push(p);
|
||||
toadd.push(std::move(p));
|
||||
}
|
||||
|
||||
if (have_sequence_number) {
|
||||
volatile u16 pcount = 0;
|
||||
while (!toadd.empty()) {
|
||||
BufferedPacket p = toadd.front();
|
||||
BufferedPacket p = std::move(toadd.front());
|
||||
toadd.pop();
|
||||
// LOG(dout_con<<connection->getDesc()
|
||||
// << " queuing reliable packet for peer_id: " << c.peer_id
|
||||
// << " channel: " << (c.channelnum&0xFF)
|
||||
// << " seqnum: " << readU16(&p.data[BASE_HEADER_SIZE+1])
|
||||
// << std::endl)
|
||||
chan.queued_reliables.push(p);
|
||||
chan.queued_reliables.push(std::move(p));
|
||||
pcount++;
|
||||
}
|
||||
sanity_check(chan.queued_reliables.size() < 0xFFFF);
|
||||
@@ -1208,12 +1197,19 @@ Connection::~Connection()
|
||||
}
|
||||
|
||||
/* Internal stuff */
|
||||
void Connection::putEvent(ConnectionEvent &e)
|
||||
|
||||
void Connection::putEvent(const ConnectionEvent &e)
|
||||
{
|
||||
assert(e.type != CONNEVENT_NONE); // Pre-condition
|
||||
m_event_queue.push_back(e);
|
||||
}
|
||||
|
||||
void Connection::putEvent(ConnectionEvent &&e)
|
||||
{
|
||||
assert(e.type != CONNEVENT_NONE); // Pre-condition
|
||||
m_event_queue.push_back(std::move(e));
|
||||
}
|
||||
|
||||
void Connection::TriggerSend()
|
||||
{
|
||||
m_sendThread->Trigger();
|
||||
@@ -1299,7 +1295,7 @@ ConnectionEvent Connection::waitEvent(u32 timeout_ms)
|
||||
}
|
||||
}
|
||||
|
||||
void Connection::putCommand(ConnectionCommand &c)
|
||||
void Connection::putCommand(const ConnectionCommand &c)
|
||||
{
|
||||
if (!m_shutting_down) {
|
||||
m_command_queue.push_back(c);
|
||||
@@ -1307,6 +1303,14 @@ void Connection::putCommand(ConnectionCommand &c)
|
||||
}
|
||||
}
|
||||
|
||||
void Connection::putCommand(ConnectionCommand &&c)
|
||||
{
|
||||
if (!m_shutting_down) {
|
||||
m_command_queue.push_back(std::move(c));
|
||||
m_sendThread->Trigger();
|
||||
}
|
||||
}
|
||||
|
||||
void Connection::Serve(Address bind_addr)
|
||||
{
|
||||
ConnectionCommand c;
|
||||
@@ -1408,7 +1412,7 @@ void Connection::Send(session_t peer_id, u8 channelnum,
|
||||
ConnectionCommand c;
|
||||
|
||||
c.send(peer_id, channelnum, pkt, reliable);
|
||||
putCommand(c);
|
||||
putCommand(std::move(c));
|
||||
}
|
||||
|
||||
Address Connection::GetPeerAddress(session_t peer_id)
|
||||
@@ -1508,12 +1512,12 @@ u16 Connection::createPeer(Address& sender, MTProtocols protocol, int fd)
|
||||
<< "createPeer(): giving peer_id=" << peer_id_new << std::endl);
|
||||
|
||||
ConnectionCommand cmd;
|
||||
SharedBuffer<u8> reply(4);
|
||||
Buffer<u8> reply(4);
|
||||
writeU8(&reply[0], PACKET_TYPE_CONTROL);
|
||||
writeU8(&reply[1], CONTROLTYPE_SET_PEER_ID);
|
||||
writeU16(&reply[2], peer_id_new);
|
||||
cmd.createPeer(peer_id_new,reply);
|
||||
putCommand(cmd);
|
||||
putCommand(std::move(cmd));
|
||||
|
||||
// Create peer addition event
|
||||
ConnectionEvent e;
|
||||
@@ -1560,7 +1564,7 @@ void Connection::sendAck(session_t peer_id, u8 channelnum, u16 seqnum)
|
||||
writeU16(&ack[2], seqnum);
|
||||
|
||||
c.ack(peer_id, channelnum, ack);
|
||||
putCommand(c);
|
||||
putCommand(std::move(c));
|
||||
m_sendThread->Trigger();
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "irrlichttypes_bloated.h"
|
||||
#include "irrlichttypes.h"
|
||||
#include "peerhandler.h"
|
||||
#include "socket.h"
|
||||
#include "constants.h"
|
||||
@@ -29,7 +29,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "util/numeric.h"
|
||||
#include "networkprotocol.h"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
@@ -242,20 +241,19 @@ class ReliablePacketBuffer
|
||||
|
||||
BufferedPacket popFirst();
|
||||
BufferedPacket popSeqnum(u16 seqnum);
|
||||
void insert(BufferedPacket &p, u16 next_expected);
|
||||
void insert(const BufferedPacket &p, u16 next_expected);
|
||||
|
||||
void incrementTimeouts(float dtime);
|
||||
std::list<BufferedPacket> getTimedOuts(float timeout,
|
||||
unsigned int max_packets);
|
||||
std::list<BufferedPacket> getTimedOuts(float timeout, u32 max_packets);
|
||||
|
||||
void print();
|
||||
bool empty();
|
||||
RPBSearchResult notFound();
|
||||
u32 size();
|
||||
|
||||
|
||||
private:
|
||||
RPBSearchResult findPacket(u16 seqnum); // does not perform locking
|
||||
inline RPBSearchResult notFound() { return m_list.end(); }
|
||||
|
||||
std::list<BufferedPacket> m_list;
|
||||
|
||||
@@ -329,18 +327,6 @@ struct ConnectionCommand
|
||||
bool raw = false;
|
||||
|
||||
ConnectionCommand() = default;
|
||||
ConnectionCommand &operator=(const ConnectionCommand &other)
|
||||
{
|
||||
type = other.type;
|
||||
address = other.address;
|
||||
peer_id = other.peer_id;
|
||||
channelnum = other.channelnum;
|
||||
// We must copy the buffer here to prevent race condition
|
||||
data = SharedBuffer<u8>(*other.data, other.data.getSize());
|
||||
reliable = other.reliable;
|
||||
raw = other.raw;
|
||||
return *this;
|
||||
}
|
||||
|
||||
void serve(Address address_)
|
||||
{
|
||||
@@ -364,7 +350,7 @@ struct ConnectionCommand
|
||||
|
||||
void send(session_t peer_id_, u8 channelnum_, NetworkPacket *pkt, bool reliable_);
|
||||
|
||||
void ack(session_t peer_id_, u8 channelnum_, const SharedBuffer<u8> &data_)
|
||||
void ack(session_t peer_id_, u8 channelnum_, const Buffer<u8> &data_)
|
||||
{
|
||||
type = CONCMD_ACK;
|
||||
peer_id = peer_id_;
|
||||
@@ -373,7 +359,7 @@ struct ConnectionCommand
|
||||
reliable = false;
|
||||
}
|
||||
|
||||
void createPeer(session_t peer_id_, const SharedBuffer<u8> &data_)
|
||||
void createPeer(session_t peer_id_, const Buffer<u8> &data_)
|
||||
{
|
||||
type = CONCMD_CREATE_PEER;
|
||||
peer_id = peer_id_;
|
||||
@@ -707,7 +693,7 @@ struct ConnectionEvent
|
||||
|
||||
ConnectionEvent() = default;
|
||||
|
||||
std::string describe()
|
||||
const char *describe() const
|
||||
{
|
||||
switch(type) {
|
||||
case CONNEVENT_NONE:
|
||||
@@ -724,7 +710,7 @@ struct ConnectionEvent
|
||||
return "Invalid ConnectionEvent";
|
||||
}
|
||||
|
||||
void dataReceived(session_t peer_id_, const SharedBuffer<u8> &data_)
|
||||
void dataReceived(session_t peer_id_, const Buffer<u8> &data_)
|
||||
{
|
||||
type = CONNEVENT_DATA_RECEIVED;
|
||||
peer_id = peer_id_;
|
||||
@@ -763,7 +749,9 @@ class Connection
|
||||
|
||||
/* Interface */
|
||||
ConnectionEvent waitEvent(u32 timeout_ms);
|
||||
void putCommand(ConnectionCommand &c);
|
||||
// Warning: creates an unnecessary copy, prefer putCommand(T&&) if possible
|
||||
void putCommand(const ConnectionCommand &c);
|
||||
void putCommand(ConnectionCommand &&c);
|
||||
|
||||
void SetTimeoutMs(u32 timeout) { m_bc_receive_timeout = timeout; }
|
||||
void Serve(Address bind_addr);
|
||||
@@ -802,11 +790,14 @@ class Connection
|
||||
}
|
||||
|
||||
UDPSocket m_udpSocket;
|
||||
// Command queue: user -> SendThread
|
||||
MutexedQueue<ConnectionCommand> m_command_queue;
|
||||
|
||||
bool Receive(NetworkPacket *pkt, u32 timeout);
|
||||
|
||||
void putEvent(ConnectionEvent &e);
|
||||
// Warning: creates an unnecessary copy, prefer putEvent(T&&) if possible
|
||||
void putEvent(const ConnectionEvent &e);
|
||||
void putEvent(ConnectionEvent &&e);
|
||||
|
||||
void TriggerSend();
|
||||
|
||||
@@ -815,6 +806,7 @@ class Connection
|
||||
return getPeerNoEx(PEER_ID_SERVER) != nullptr;
|
||||
}
|
||||
private:
|
||||
// Event queue: ReceiveThread -> user
|
||||
MutexedQueue<ConnectionEvent> m_event_queue;
|
||||
|
||||
session_t m_peer_id = 0;
|
||||
|
||||
@@ -48,9 +48,6 @@ std::mutex log_conthread_mutex;
|
||||
#undef DEBUG_CONNECTION_KBPS
|
||||
#endif
|
||||
|
||||
/* maximum number of retries for reliable packets */
|
||||
#define MAX_RELIABLE_RETRY 5
|
||||
|
||||
#define WINDOW_SIZE 5
|
||||
|
||||
static session_t readPeerId(u8 *packetdata)
|
||||
@@ -174,6 +171,11 @@ void ConnectionSendThread::runTimeouts(float dtime)
|
||||
std::vector<session_t> timeouted_peers;
|
||||
std::vector<session_t> peerIds = m_connection->getPeerIDs();
|
||||
|
||||
const u32 numpeers = m_connection->m_peers.size();
|
||||
|
||||
if (numpeers == 0)
|
||||
return;
|
||||
|
||||
for (session_t &peerId : peerIds) {
|
||||
PeerHelper peer = m_connection->getPeerNoEx(peerId);
|
||||
|
||||
@@ -207,9 +209,7 @@ void ConnectionSendThread::runTimeouts(float dtime)
|
||||
}
|
||||
|
||||
float resend_timeout = udpPeer->getResendTimeout();
|
||||
bool retry_count_exceeded = false;
|
||||
for (Channel &channel : udpPeer->channels) {
|
||||
std::list<BufferedPacket> timed_outs;
|
||||
|
||||
// Remove timed out incomplete unreliable split packets
|
||||
channel.incoming_splits.removeUnreliableTimedOuts(dtime, m_timeout);
|
||||
@@ -217,13 +217,8 @@ void ConnectionSendThread::runTimeouts(float dtime)
|
||||
// Increment reliable packet times
|
||||
channel.outgoing_reliables_sent.incrementTimeouts(dtime);
|
||||
|
||||
unsigned int numpeers = m_connection->m_peers.size();
|
||||
|
||||
if (numpeers == 0)
|
||||
return;
|
||||
|
||||
// Re-send timed out outgoing reliables
|
||||
timed_outs = channel.outgoing_reliables_sent.getTimedOuts(resend_timeout,
|
||||
auto timed_outs = channel.outgoing_reliables_sent.getTimedOuts(resend_timeout,
|
||||
(m_max_data_packets_per_iteration / numpeers));
|
||||
|
||||
channel.UpdatePacketLossCounter(timed_outs.size());
|
||||
@@ -231,48 +226,30 @@ void ConnectionSendThread::runTimeouts(float dtime)
|
||||
|
||||
m_iteration_packets_avaialble -= timed_outs.size();
|
||||
|
||||
for (std::list<BufferedPacket>::iterator k = timed_outs.begin();
|
||||
k != timed_outs.end(); ++k) {
|
||||
session_t peer_id = readPeerId(*(k->data));
|
||||
u8 channelnum = readChannel(*(k->data));
|
||||
u16 seqnum = readU16(&(k->data[BASE_HEADER_SIZE + 1]));
|
||||
for (const auto &k : timed_outs) {
|
||||
u8 channelnum = readChannel(*k.data);
|
||||
u16 seqnum = readU16(&(k.data[BASE_HEADER_SIZE + 1]));
|
||||
|
||||
channel.UpdateBytesLost(k->data.getSize());
|
||||
k->resend_count++;
|
||||
|
||||
if (k->resend_count > MAX_RELIABLE_RETRY) {
|
||||
retry_count_exceeded = true;
|
||||
timeouted_peers.push_back(peer->id);
|
||||
/* no need to check additional packets if a single one did timeout*/
|
||||
break;
|
||||
}
|
||||
channel.UpdateBytesLost(k.data.getSize());
|
||||
|
||||
LOG(derr_con << m_connection->getDesc()
|
||||
<< "RE-SENDING timed-out RELIABLE to "
|
||||
<< k->address.serializeString()
|
||||
<< k.address.serializeString()
|
||||
<< "(t/o=" << resend_timeout << "): "
|
||||
<< "from_peer_id=" << peer_id
|
||||
<< "count=" << k.resend_count
|
||||
<< ", channel=" << ((int) channelnum & 0xff)
|
||||
<< ", seqnum=" << seqnum
|
||||
<< std::endl);
|
||||
|
||||
rawSend(*k);
|
||||
rawSend(k);
|
||||
|
||||
// do not handle rtt here as we can't decide if this packet was
|
||||
// lost or really takes more time to transmit
|
||||
}
|
||||
|
||||
if (retry_count_exceeded) {
|
||||
break; /* no need to check other channels if we already did timeout */
|
||||
}
|
||||
|
||||
channel.UpdateTimers(dtime);
|
||||
}
|
||||
|
||||
/* skip to next peer if we did timeout */
|
||||
if (retry_count_exceeded)
|
||||
continue;
|
||||
|
||||
/* send ping if necessary */
|
||||
if (udpPeer->Ping(dtime, data)) {
|
||||
LOG(dout_con << m_connection->getDesc()
|
||||
@@ -375,7 +352,7 @@ bool ConnectionSendThread::rawSendAsPacket(session_t peer_id, u8 channelnum,
|
||||
<< " INFO: queueing reliable packet for peer_id: " << peer_id
|
||||
<< " channel: " << (u32)channelnum
|
||||
<< " seqnum: " << seqnum << std::endl);
|
||||
channel->queued_reliables.push(p);
|
||||
channel->queued_reliables.push(std::move(p));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -717,13 +694,15 @@ void ConnectionSendThread::sendPackets(float dtime)
|
||||
channel.outgoing_reliables_sent.size()
|
||||
< channel.getWindowSize() &&
|
||||
peer->m_increment_packets_remaining > 0) {
|
||||
BufferedPacket p = channel.queued_reliables.front();
|
||||
BufferedPacket p = std::move(channel.queued_reliables.front());
|
||||
channel.queued_reliables.pop();
|
||||
|
||||
LOG(dout_con << m_connection->getDesc()
|
||||
<< " INFO: sending a queued reliable packet "
|
||||
<< " channel: " << i
|
||||
<< ", seqnum: " << readU16(&p.data[BASE_HEADER_SIZE + 1])
|
||||
<< std::endl);
|
||||
|
||||
sendAsPacketReliable(p, &channel);
|
||||
peer->m_increment_packets_remaining--;
|
||||
}
|
||||
@@ -911,7 +890,7 @@ void ConnectionReceiveThread::receive(SharedBuffer<u8> &packetdata,
|
||||
if (data_left) {
|
||||
ConnectionEvent e;
|
||||
e.dataReceived(peer_id, resultdata);
|
||||
m_connection->putEvent(e);
|
||||
m_connection->putEvent(std::move(e));
|
||||
}
|
||||
}
|
||||
catch (ProcessedSilentlyException &e) {
|
||||
@@ -1022,7 +1001,7 @@ void ConnectionReceiveThread::receive(SharedBuffer<u8> &packetdata,
|
||||
|
||||
ConnectionEvent e;
|
||||
e.dataReceived(peer_id, resultdata);
|
||||
m_connection->putEvent(e);
|
||||
m_connection->putEvent(std::move(e));
|
||||
}
|
||||
catch (ProcessedSilentlyException &e) {
|
||||
}
|
||||
@@ -1154,8 +1133,8 @@ SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Control(Channel *chan
|
||||
try {
|
||||
BufferedPacket p = channel->outgoing_reliables_sent.popSeqnum(seqnum);
|
||||
|
||||
// only calculate rtt from straight sent packets
|
||||
if (p.resend_count == 0) {
|
||||
// the rtt calculation will be a bit off for re-sent packets but that's okay
|
||||
{
|
||||
// Get round trip time
|
||||
u64 current_time = porting::getTimeMs();
|
||||
|
||||
@@ -1175,6 +1154,7 @@ SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Control(Channel *chan
|
||||
dynamic_cast<UDPPeer *>(peer)->reportRTT(rtt);
|
||||
}
|
||||
}
|
||||
|
||||
// put bytes for max bandwidth calculation
|
||||
channel->UpdateBytesSent(p.data.getSize(), 1);
|
||||
if (channel->outgoing_reliables_sent.size() == 0)
|
||||
|
||||
@@ -549,14 +549,11 @@ NetworkPacket& NetworkPacket::operator<<(video::SColor src)
|
||||
return *this;
|
||||
}
|
||||
|
||||
SharedBuffer<u8> NetworkPacket::oldForgePacket()
|
||||
Buffer<u8> NetworkPacket::oldForgePacket()
|
||||
{
|
||||
SharedBuffer<u8> sb(m_datasize + 2);
|
||||
Buffer<u8> sb(m_datasize + 2);
|
||||
writeU16(&sb[0], m_command);
|
||||
memcpy(&sb[2], m_data.data(), m_datasize);
|
||||
|
||||
u8* datas = getU8Ptr(0);
|
||||
|
||||
if (datas != NULL)
|
||||
memcpy(&sb[2], datas, m_datasize);
|
||||
return sb;
|
||||
}
|
||||
|
||||
@@ -115,7 +115,8 @@ class NetworkPacket
|
||||
NetworkPacket &operator<<(video::SColor src);
|
||||
|
||||
// Temp, we remove SharedBuffer when migration finished
|
||||
SharedBuffer<u8> oldForgePacket();
|
||||
// ^ this comment has been here for 4 years
|
||||
Buffer<u8> oldForgePacket();
|
||||
|
||||
private:
|
||||
void checkReadOffset(u32 from_offset, u32 field_size);
|
||||
|
||||
@@ -626,21 +626,36 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
|
||||
|
||||
const bool player_has_interact = checkPriv(player->getName(), "interact");
|
||||
|
||||
auto check_inv_access = [player, player_has_interact] (
|
||||
auto check_inv_access = [player, player_has_interact, this] (
|
||||
const InventoryLocation &loc) -> bool {
|
||||
if (loc.type == InventoryLocation::CURRENT_PLAYER)
|
||||
return false; // Only used internally on the client, never sent
|
||||
if (loc.type == InventoryLocation::PLAYER) {
|
||||
// Allow access to own inventory in all cases
|
||||
return loc.name == player->getName();
|
||||
}
|
||||
|
||||
if (!player_has_interact) {
|
||||
// Players without interact may modify their own inventory
|
||||
if (!player_has_interact && loc.type != InventoryLocation::PLAYER) {
|
||||
infostream << "Cannot modify foreign inventory: "
|
||||
<< "No interact privilege" << std::endl;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
switch (loc.type) {
|
||||
case InventoryLocation::CURRENT_PLAYER:
|
||||
// Only used internally on the client, never sent
|
||||
return false;
|
||||
case InventoryLocation::PLAYER:
|
||||
// Allow access to own inventory in all cases
|
||||
return loc.name == player->getName();
|
||||
case InventoryLocation::NODEMETA:
|
||||
{
|
||||
// Check for out-of-range interaction
|
||||
v3f node_pos = intToFloat(loc.p, BS);
|
||||
v3f player_pos = player->getPlayerSAO()->getEyePosition();
|
||||
f32 d = player_pos.getDistanceFrom(node_pos);
|
||||
return checkInteractDistance(player, d, "inventory");
|
||||
}
|
||||
case InventoryLocation::DETACHED:
|
||||
return getInventoryMgr()->checkDetachedInventoryAccess(loc, player->getName());
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -660,18 +675,6 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
|
||||
!check_inv_access(ma->to_inv))
|
||||
return;
|
||||
|
||||
InventoryLocation *remote = ma->from_inv.type == InventoryLocation::PLAYER ?
|
||||
&ma->to_inv : &ma->from_inv;
|
||||
|
||||
// Check for out-of-range interaction
|
||||
if (remote->type == InventoryLocation::NODEMETA) {
|
||||
v3f node_pos = intToFloat(remote->p, BS);
|
||||
v3f player_pos = player->getPlayerSAO()->getEyePosition();
|
||||
f32 d = player_pos.getDistanceFrom(node_pos);
|
||||
if (!checkInteractDistance(player, d, "inventory"))
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
Disable moving items out of craftpreview
|
||||
*/
|
||||
@@ -1038,6 +1041,12 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
|
||||
if (pointed.type == POINTEDTHING_NODE) {
|
||||
target_pos = intToFloat(pointed.node_undersurface, BS);
|
||||
} else if (pointed.type == POINTEDTHING_OBJECT) {
|
||||
if (playersao->getId() == pointed_object->getId()) {
|
||||
actionstream << "Server: " << player->getName()
|
||||
<< " attempted to interact with themselves" << std::endl;
|
||||
m_script->on_cheat(playersao, "interacted_with_self");
|
||||
return;
|
||||
}
|
||||
target_pos = pointed_object->getBasePosition();
|
||||
}
|
||||
float d = playersao->getEyePosition().getDistanceFrom(target_pos);
|
||||
|
||||
@@ -1543,10 +1543,10 @@ void NodeDefManager::deSerialize(std::istream &is)
|
||||
}
|
||||
|
||||
|
||||
void NodeDefManager::addNameIdMapping(content_t i, std::string name)
|
||||
void NodeDefManager::addNameIdMapping(content_t i, const std::string &name)
|
||||
{
|
||||
m_name_id_mapping.set(i, name);
|
||||
m_name_id_mapping_with_aliases.insert(std::make_pair(name, i));
|
||||
m_name_id_mapping_with_aliases.emplace(name, i);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -720,7 +720,7 @@ class NodeDefManager {
|
||||
* @param i a content ID
|
||||
* @param name a node name
|
||||
*/
|
||||
void addNameIdMapping(content_t i, std::string name);
|
||||
void addNameIdMapping(content_t i, const std::string &name);
|
||||
|
||||
/*!
|
||||
* Removes a content ID from all groups.
|
||||
|
||||