mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 02:39:05 +01:00
Compare commits
36 Commits
alpha-1.5.
...
remove-dep
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6eaa54783 | ||
|
|
070a0181d9 | ||
|
|
d83ae3a3b4 | ||
|
|
143f04bf1b | ||
|
|
138fa6f39d | ||
|
|
8e1371acf0 | ||
|
|
29f0b9d3c0 | ||
|
|
eb45ccfe9e | ||
|
|
e98b5a9882 | ||
|
|
1a603d52da | ||
|
|
1e74b213e3 | ||
|
|
292808dbfc | ||
|
|
a3f1ce6d87 | ||
|
|
8962fefd14 | ||
|
|
7034524fa1 | ||
|
|
a6153c91ed | ||
|
|
dd0175f4aa | ||
|
|
7c6e351a37 | ||
|
|
05c3e9bf40 | ||
|
|
68d26bf25e | ||
|
|
daa03b1d73 | ||
|
|
1e71361700 | ||
|
|
a89a0cbaa3 | ||
|
|
1dbb8aa512 | ||
|
|
e8ed0b4703 | ||
|
|
c76a76318c | ||
|
|
5a34e2c0ab | ||
|
|
ad5349c8a7 | ||
|
|
863db40f8e | ||
|
|
4f8ac5f734 | ||
|
|
6e4052fa87 | ||
|
|
23ac592f27 | ||
|
|
4a1a09c855 | ||
|
|
2dd0be879e | ||
|
|
d369b9d150 | ||
|
|
4cc7619838 |
@@ -7,6 +7,7 @@ stages:
|
||||
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
|
||||
|
||||
workflow:
|
||||
# when to create a CI pipeline
|
||||
|
||||
@@ -3,8 +3,8 @@ apply plugin: 'witness'
|
||||
apply from: 'witness.gradle'
|
||||
|
||||
android {
|
||||
compileSdkVersion 33
|
||||
buildToolsVersion '33.0.0'
|
||||
compileSdkVersion 34
|
||||
buildToolsVersion '34.0.0'
|
||||
|
||||
packagingOptions {
|
||||
doNotStrip '**/*.so'
|
||||
@@ -13,8 +13,8 @@ android {
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 33
|
||||
versionCode 10512
|
||||
versionName "1.5.12"
|
||||
versionCode 10514
|
||||
versionName "1.5.14"
|
||||
consumerProguardFiles 'proguard-rules.txt'
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
@@ -54,8 +54,7 @@ dependencies {
|
||||
implementation "org.briarproject:onionwrapper-android:$onionwrapper_version"
|
||||
|
||||
tor "org.briarproject:tor-android:$tor_version"
|
||||
tor "org.briarproject:obfs4proxy-android:$obfs4proxy_version"
|
||||
tor "org.briarproject:snowflake-android:$snowflake_version"
|
||||
tor "org.briarproject:lyrebird-android:$lyrebird_version"
|
||||
|
||||
annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ import static android.os.PowerManager.ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED;
|
||||
import static android.os.PowerManager.ACTION_POWER_SAVE_MODE_CHANGED;
|
||||
import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.registerReceiver;
|
||||
|
||||
class AndroidBatteryManager implements BatteryManager, Service {
|
||||
|
||||
@@ -52,7 +53,7 @@ class AndroidBatteryManager implements BatteryManager, Service {
|
||||
public boolean isCharging() {
|
||||
// Get the sticky intent for ACTION_BATTERY_CHANGED
|
||||
IntentFilter filter = new IntentFilter(ACTION_BATTERY_CHANGED);
|
||||
Intent i = appContext.registerReceiver(null, filter);
|
||||
Intent i = registerReceiver(appContext, null, filter);
|
||||
if (i == null) return false;
|
||||
int status = i.getIntExtra(EXTRA_PLUGGED, 0);
|
||||
return status != 0;
|
||||
@@ -71,7 +72,7 @@ class AndroidBatteryManager implements BatteryManager, Service {
|
||||
filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED);
|
||||
filter.addAction(ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED);
|
||||
}
|
||||
appContext.registerReceiver(batteryReceiver, filter);
|
||||
registerReceiver(appContext, batteryReceiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -55,6 +55,7 @@ import static java.util.concurrent.TimeUnit.SECONDS;
|
||||
import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.registerReceiver;
|
||||
import static org.briarproject.bramble.util.LogUtils.logException;
|
||||
import static org.briarproject.nullsafety.NullSafety.requireNonNull;
|
||||
|
||||
@@ -103,7 +104,7 @@ class AndroidNetworkManager implements NetworkManager, Service {
|
||||
filter.addAction(WIFI_AP_STATE_CHANGED_ACTION);
|
||||
filter.addAction(WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
|
||||
if (SDK_INT >= 23) filter.addAction(ACTION_DEVICE_IDLE_MODE_CHANGED);
|
||||
app.registerReceiver(networkStateReceiver, filter);
|
||||
registerReceiver(app, networkStateReceiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -56,6 +56,7 @@ import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.hasBtConnectPermission;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.registerReceiver;
|
||||
import static org.briarproject.bramble.util.PrivacyUtils.scrubMacAddress;
|
||||
|
||||
@MethodsNotNullByDefault
|
||||
@@ -112,7 +113,7 @@ class AndroidBluetoothPlugin extends
|
||||
filter.addAction(ACTION_STATE_CHANGED);
|
||||
filter.addAction(ACTION_SCAN_MODE_CHANGED);
|
||||
receiver = new BluetoothStateReceiver();
|
||||
app.registerReceiver(receiver, filter);
|
||||
registerReceiver(app, receiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -237,7 +238,7 @@ class AndroidBluetoothPlugin extends
|
||||
filter.addAction(ACTION_DISCOVERY_STARTED);
|
||||
filter.addAction(ACTION_DISCOVERY_FINISHED);
|
||||
filter.addAction(ACTION_FOUND);
|
||||
app.registerReceiver(receiver, filter);
|
||||
registerReceiver(app, receiver, filter);
|
||||
try {
|
||||
if (adapter.startDiscovery()) {
|
||||
long now = clock.currentTimeMillis();
|
||||
|
||||
@@ -2,7 +2,10 @@ package org.briarproject.bramble.util;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Build;
|
||||
import android.os.Looper;
|
||||
import android.provider.Settings;
|
||||
@@ -21,6 +24,7 @@ import javax.annotation.Nullable;
|
||||
import static android.Manifest.permission.BLUETOOTH_CONNECT;
|
||||
import static android.app.PendingIntent.FLAG_IMMUTABLE;
|
||||
import static android.content.Context.MODE_PRIVATE;
|
||||
import static android.content.Context.RECEIVER_NOT_EXPORTED;
|
||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
import static android.os.Build.VERSION.SDK_INT;
|
||||
import static android.os.Process.myPid;
|
||||
@@ -141,4 +145,20 @@ public class AndroidUtils {
|
||||
}
|
||||
return flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Could be replaced to a similar call in ContextCompat once we
|
||||
* use and upgrade to version 1.9.0 or higher of the AndroidX Core library.
|
||||
*/
|
||||
@Nullable
|
||||
@SuppressLint("UnspecifiedRegisterReceiverFlag") // we specify where needed
|
||||
public static Intent registerReceiver(Context ctx,
|
||||
@Nullable BroadcastReceiver receiver, IntentFilter filter) {
|
||||
if (SDK_INT >= 33) {
|
||||
return ctx.registerReceiver(receiver, filter,
|
||||
RECEIVER_NOT_EXPORTED);
|
||||
} else {
|
||||
return ctx.registerReceiver(receiver, filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,12 +25,11 @@ dependencyVerification {
|
||||
'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047',
|
||||
'org.briarproject:dont-kill-me-lib:0.2.8:dont-kill-me-lib-0.2.8.aar:e21173e480ee3f2364c142cc14db8dc6447be91bde9e62e4985c485ea0af9126',
|
||||
'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b',
|
||||
'org.briarproject:lyrebird-android:0.5.0-3:lyrebird-android-0.5.0-3.jar:67e21cbbfda0b17ab9e0741ada170c606ddda4e9548a70c421aa83b907ebb714',
|
||||
'org.briarproject:null-safety:0.1:null-safety-0.1.jar:161760de5e838cb982bafa973df820675d4397098e9a91637a36a306d43ba011',
|
||||
'org.briarproject:obfs4proxy-android:0.0.14-tor2:obfs4proxy-android-0.0.14-tor2.jar:a0a93770d6760ce57d9dbd31cc7177687374e00c3361dac22ab75e3b6e0f289e',
|
||||
'org.briarproject:onionwrapper-android:0.1.1:onionwrapper-android-0.1.1.aar:d761854dac454616b3e0ca099b2cd17060365ce4316afe495cc7ae86b6c81d15',
|
||||
'org.briarproject:onionwrapper-core:0.1.1:onionwrapper-core-0.1.1.jar:176b7c159a45f6397810a1f93f040b3e17fdbc6645b0d189204777920719464b',
|
||||
'org.briarproject:snowflake-android:2.9.1:snowflake-android-2.9.1.jar:8d6195637edbe3717d205c2e524e9d3cb742b90fc67b10565d16262af134e489',
|
||||
'org.briarproject:tor-android:0.4.8.9-1:tor-android-0.4.8.9-1.jar:8fbaaf0cb1663abd12852b7fc51a804534b7e7d865b4dec3fc4e9ec0e79f3ad5',
|
||||
'org.briarproject:onionwrapper-android:0.1.3:onionwrapper-android-0.1.3.aar:15231f0b2ad44df8eb1dd362a989ba3f88ebdc9b02a9128daa72a8da83651bf0',
|
||||
'org.briarproject:onionwrapper-core:0.1.3:onionwrapper-core-0.1.3.jar:32d08c9d81a9591e08d7e64e3569334fee21f503b00514006f2e6cbbd409d0df',
|
||||
'org.briarproject:tor-android:0.4.8.14:tor-android-0.4.8.14.jar:fc7c4f5007a98132ba84534a873f101951d2d554d5da5f2031b85c277f8617a6',
|
||||
'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
|
||||
'org.checkerframework:checker-qual:3.41.0:checker-qual-3.41.0.jar:2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172',
|
||||
'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9',
|
||||
|
||||
@@ -54,38 +54,6 @@ public interface CryptoComponent {
|
||||
KeyPair ourKeyPair, byte[]... inputs)
|
||||
throws GeneralSecurityException;
|
||||
|
||||
/**
|
||||
* Derives a shared secret from two static and two ephemeral key pairs.
|
||||
* <p>
|
||||
* Do not use this method for new protocols. The shared secret can be
|
||||
* re-derived using the ephemeral public keys and both static private
|
||||
* keys, so keys derived from the shared secret should not be used if
|
||||
* forward secrecy is required. Use {@link #deriveSharedSecret(String,
|
||||
* PublicKey, PublicKey, KeyPair, KeyPair, boolean, byte[]...)} instead.
|
||||
* <p>
|
||||
* TODO: Remove this after a reasonable migration period (added 2023-03-10).
|
||||
* <p>
|
||||
*
|
||||
* @param label A namespaced label indicating the purpose of this shared
|
||||
* secret, to prevent it from being repurposed or colliding with a shared
|
||||
* secret derived for another purpose
|
||||
* @param theirStaticPublicKey The static public key of the remote party
|
||||
* @param theirEphemeralPublicKey The ephemeral public key of the remote
|
||||
* party
|
||||
* @param ourStaticKeyPair The static key pair of the local party
|
||||
* @param ourEphemeralKeyPair The ephemeral key pair of the local party
|
||||
* @param alice True if the local party is Alice
|
||||
* @param inputs Additional inputs that will be included in the
|
||||
* derivation of the shared secret
|
||||
* @return The shared secret
|
||||
*/
|
||||
@Deprecated
|
||||
SecretKey deriveSharedSecretBadly(String label,
|
||||
PublicKey theirStaticPublicKey, PublicKey theirEphemeralPublicKey,
|
||||
KeyPair ourStaticKeyPair, KeyPair ourEphemeralKeyPair,
|
||||
boolean alice, byte[]... inputs)
|
||||
throws GeneralSecurityException;
|
||||
|
||||
/**
|
||||
* Derives a shared secret from two static and two ephemeral key pairs.
|
||||
*
|
||||
|
||||
@@ -14,16 +14,6 @@ interface HandshakeConstants {
|
||||
*/
|
||||
byte PROTOCOL_MINOR_VERSION = 1;
|
||||
|
||||
/**
|
||||
* Label for deriving the master key when using the deprecated v0.0 key
|
||||
* derivation method.
|
||||
* <p>
|
||||
* TODO: Remove this after a reasonable migration period (added 2023-03-10).
|
||||
*/
|
||||
@Deprecated
|
||||
String MASTER_KEY_LABEL_0_0 =
|
||||
"org.briarproject.bramble.handshake/MASTER_KEY";
|
||||
|
||||
/**
|
||||
* Label for deriving the master key when using the v0.1 key derivation
|
||||
* method.
|
||||
|
||||
@@ -12,20 +12,6 @@ interface HandshakeCrypto {
|
||||
|
||||
KeyPair generateEphemeralKeyPair();
|
||||
|
||||
/**
|
||||
* Derives the master key from the given static and ephemeral keys using
|
||||
* the deprecated v0.0 key derivation method.
|
||||
* <p>
|
||||
* TODO: Remove this after a reasonable migration period (added 2023-03-10).
|
||||
*
|
||||
* @param alice Whether the local peer is Alice
|
||||
*/
|
||||
@Deprecated
|
||||
SecretKey deriveMasterKey_0_0(PublicKey theirStaticPublicKey,
|
||||
PublicKey theirEphemeralPublicKey, KeyPair ourStaticKeyPair,
|
||||
KeyPair ourEphemeralKeyPair, boolean alice)
|
||||
throws GeneralSecurityException;
|
||||
|
||||
/**
|
||||
* Derives the master key from the given static and ephemeral keys using
|
||||
* the v0.1 key derivation method.
|
||||
|
||||
@@ -13,7 +13,6 @@ import javax.inject.Inject;
|
||||
|
||||
import static org.briarproject.bramble.contact.HandshakeConstants.ALICE_PROOF_LABEL;
|
||||
import static org.briarproject.bramble.contact.HandshakeConstants.BOB_PROOF_LABEL;
|
||||
import static org.briarproject.bramble.contact.HandshakeConstants.MASTER_KEY_LABEL_0_0;
|
||||
import static org.briarproject.bramble.contact.HandshakeConstants.MASTER_KEY_LABEL_0_1;
|
||||
|
||||
@Immutable
|
||||
@@ -32,27 +31,6 @@ class HandshakeCryptoImpl implements HandshakeCrypto {
|
||||
return crypto.generateAgreementKeyPair();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public SecretKey deriveMasterKey_0_0(PublicKey theirStaticPublicKey,
|
||||
PublicKey theirEphemeralPublicKey, KeyPair ourStaticKeyPair,
|
||||
KeyPair ourEphemeralKeyPair, boolean alice) throws
|
||||
GeneralSecurityException {
|
||||
byte[] theirStatic = theirStaticPublicKey.getEncoded();
|
||||
byte[] theirEphemeral = theirEphemeralPublicKey.getEncoded();
|
||||
byte[] ourStatic = ourStaticKeyPair.getPublic().getEncoded();
|
||||
byte[] ourEphemeral = ourEphemeralKeyPair.getPublic().getEncoded();
|
||||
byte[][] inputs = {
|
||||
alice ? ourStatic : theirStatic,
|
||||
alice ? theirStatic : ourStatic,
|
||||
alice ? ourEphemeral : theirEphemeral,
|
||||
alice ? theirEphemeral : ourEphemeral
|
||||
};
|
||||
return crypto.deriveSharedSecretBadly(MASTER_KEY_LABEL_0_0,
|
||||
theirStaticPublicKey, theirEphemeralPublicKey,
|
||||
ourStaticKeyPair, ourEphemeralKeyPair, alice, inputs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SecretKey deriveMasterKey_0_1(PublicKey theirStaticPublicKey,
|
||||
PublicKey theirEphemeralPublicKey, KeyPair ourStaticKeyPair,
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.briarproject.bramble.contact;
|
||||
|
||||
import org.briarproject.bramble.api.FormatException;
|
||||
import org.briarproject.bramble.api.Pair;
|
||||
import org.briarproject.bramble.api.UnsupportedVersionException;
|
||||
import org.briarproject.bramble.api.contact.ContactManager;
|
||||
import org.briarproject.bramble.api.contact.HandshakeManager;
|
||||
import org.briarproject.bramble.api.contact.PendingContact;
|
||||
@@ -111,21 +112,12 @@ class HandshakeManagerImpl implements HandshakeManager {
|
||||
sendMinorVersion(recordWriter);
|
||||
sendPublicKey(recordWriter, ourEphemeralKeyPair.getPublic());
|
||||
}
|
||||
byte theirMinorVersion = theirMinorVersionAndKey.getFirst();
|
||||
PublicKey theirEphemeralPublicKey = theirMinorVersionAndKey.getSecond();
|
||||
SecretKey masterKey;
|
||||
try {
|
||||
if (theirMinorVersion > 0) {
|
||||
masterKey = handshakeCrypto.deriveMasterKey_0_1(
|
||||
theirStaticPublicKey, theirEphemeralPublicKey,
|
||||
ourStaticKeyPair, ourEphemeralKeyPair, alice);
|
||||
} else {
|
||||
// TODO: Remove this branch after a reasonable migration
|
||||
// period (added 2023-03-10).
|
||||
masterKey = handshakeCrypto.deriveMasterKey_0_0(
|
||||
theirStaticPublicKey, theirEphemeralPublicKey,
|
||||
ourStaticKeyPair, ourEphemeralKeyPair, alice);
|
||||
}
|
||||
masterKey = handshakeCrypto.deriveMasterKey_0_1(
|
||||
theirStaticPublicKey, theirEphemeralPublicKey,
|
||||
ourStaticKeyPair, ourEphemeralKeyPair, alice);
|
||||
} catch (GeneralSecurityException e) {
|
||||
throw new FormatException();
|
||||
}
|
||||
@@ -187,10 +179,11 @@ class HandshakeManagerImpl implements HandshakeManager {
|
||||
} else {
|
||||
// The remote peer did not send a minor version record, so the
|
||||
// remote peer's protocol minor version is assumed to be zero
|
||||
// TODO: Remove this branch after a reasonable migration period
|
||||
// (added 2023-03-10).
|
||||
theirMinorVersion = 0;
|
||||
theirEphemeralPublicKey = parsePublicKey(first);
|
||||
|
||||
// TODO: How communicate to user that contact seems to use a version
|
||||
// of Briar that is too old? (be aware of MITM attacks)
|
||||
// `RendezvousPollerImpl` broadcasts PendingContactState FAILED via EventBus
|
||||
throw new UnsupportedVersionException(true);
|
||||
}
|
||||
return new Pair<>(theirMinorVersion, theirEphemeralPublicKey);
|
||||
}
|
||||
|
||||
@@ -222,36 +222,6 @@ class CryptoComponentImpl implements CryptoComponent {
|
||||
return new SecretKey(hash);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public SecretKey deriveSharedSecretBadly(String label,
|
||||
PublicKey theirStaticPublicKey, PublicKey theirEphemeralPublicKey,
|
||||
KeyPair ourStaticKeyPair, KeyPair ourEphemeralKeyPair,
|
||||
boolean alice, byte[]... inputs) throws GeneralSecurityException {
|
||||
PrivateKey ourStaticPrivateKey = ourStaticKeyPair.getPrivate();
|
||||
PrivateKey ourEphemeralPrivateKey = ourEphemeralKeyPair.getPrivate();
|
||||
byte[][] hashInputs = new byte[inputs.length + 3][];
|
||||
// Alice static/Bob static
|
||||
hashInputs[0] = performRawKeyAgreement(ourStaticPrivateKey,
|
||||
theirStaticPublicKey);
|
||||
// Alice static/Bob ephemeral, Bob static/Alice ephemeral
|
||||
if (alice) {
|
||||
hashInputs[1] = performRawKeyAgreement(ourStaticPrivateKey,
|
||||
theirEphemeralPublicKey);
|
||||
hashInputs[2] = performRawKeyAgreement(ourEphemeralPrivateKey,
|
||||
theirStaticPublicKey);
|
||||
} else {
|
||||
hashInputs[1] = performRawKeyAgreement(ourEphemeralPrivateKey,
|
||||
theirStaticPublicKey);
|
||||
hashInputs[2] = performRawKeyAgreement(ourStaticPrivateKey,
|
||||
theirEphemeralPublicKey);
|
||||
}
|
||||
arraycopy(inputs, 0, hashInputs, 3, inputs.length);
|
||||
byte[] hash = hash(label, hashInputs);
|
||||
if (hash.length != SecretKey.LENGTH) throw new IllegalStateException();
|
||||
return new SecretKey(hash);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SecretKey deriveSharedSecret(String label,
|
||||
PublicKey theirStaticPublicKey, PublicKey theirEphemeralPublicKey,
|
||||
|
||||
@@ -89,11 +89,17 @@ class H2Database extends JdbcDatabase {
|
||||
try {
|
||||
c = createConnection();
|
||||
closeAllConnections();
|
||||
setDirty(c, false);
|
||||
LOG.info("Compacting DB");
|
||||
s = c.createStatement();
|
||||
s.execute("SHUTDOWN COMPACT");
|
||||
LOG.info("Finished compacting DB");
|
||||
s.close();
|
||||
c.close();
|
||||
// Reopen the DB to mark it as clean after compacting
|
||||
c = createConnection();
|
||||
setDirty(c, false);
|
||||
LOG.info("Marked DB as clean");
|
||||
c.close();
|
||||
} catch (SQLException e) {
|
||||
tryToClose(s, LOG, WARNING);
|
||||
tryToClose(c, LOG, WARNING);
|
||||
@@ -126,6 +132,7 @@ class H2Database extends JdbcDatabase {
|
||||
closeAllConnections();
|
||||
s = c.createStatement();
|
||||
s.execute("SHUTDOWN COMPACT");
|
||||
LOG.info("Finished compacting DB");
|
||||
s.close();
|
||||
c.close();
|
||||
} catch (SQLException e) {
|
||||
|
||||
@@ -388,7 +388,6 @@ abstract class AbstractBluetoothPlugin<S, SS> implements BluetoothPlugin,
|
||||
}
|
||||
// Validate the UUID
|
||||
try {
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
UUID.fromString(uuid);
|
||||
} catch (IllegalArgumentException e) {
|
||||
if (LOG.isLoggable(WARNING)) LOG.warning("Invalid UUID " + uuid);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.briarproject.bramble.contact;
|
||||
|
||||
import org.briarproject.bramble.api.FormatException;
|
||||
import org.briarproject.bramble.api.UnsupportedVersionException;
|
||||
import org.briarproject.bramble.api.contact.ContactManager;
|
||||
import org.briarproject.bramble.api.contact.HandshakeManager.HandshakeResult;
|
||||
import org.briarproject.bramble.api.contact.PendingContact;
|
||||
@@ -27,6 +28,7 @@ import org.junit.Test;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.EOFException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Arrays;
|
||||
@@ -123,12 +125,12 @@ public class HandshakeManagerImplTest extends BrambleMockTestCase {
|
||||
assertEquals(alice, result.isAlice());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Test(expected = UnsupportedVersionException.class)
|
||||
public void testHandshakeAsAliceWithPeerVersion_0_0() throws Exception {
|
||||
testHandshakeWithPeerVersion_0_0(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Test(expected = UnsupportedVersionException.class)
|
||||
public void testHandshakeAsBobWithPeerVersion_0_0() throws Exception {
|
||||
testHandshakeWithPeerVersion_0_0(false);
|
||||
}
|
||||
@@ -140,20 +142,8 @@ public class HandshakeManagerImplTest extends BrambleMockTestCase {
|
||||
expectSendKey();
|
||||
// Remote peer does not send minor version, so use old key derivation
|
||||
expectReceiveKey();
|
||||
expectDeriveMasterKey_0_0(alice);
|
||||
expectDeriveProof(alice);
|
||||
expectSendProof();
|
||||
expectReceiveProof();
|
||||
expectSendEof();
|
||||
expectReceiveEof();
|
||||
expectVerifyOwnership(alice, true);
|
||||
|
||||
HandshakeResult result = handshakeManager.handshake(
|
||||
pendingContact.getId(), in, streamWriter);
|
||||
|
||||
assertArrayEquals(masterKey.getBytes(),
|
||||
result.getMasterKey().getBytes());
|
||||
assertEquals(alice, result.isAlice());
|
||||
handshakeManager.handshake(pendingContact.getId(), in, streamWriter);
|
||||
}
|
||||
|
||||
@Test(expected = FormatException.class)
|
||||
@@ -241,15 +231,6 @@ public class HandshakeManagerImplTest extends BrambleMockTestCase {
|
||||
}});
|
||||
}
|
||||
|
||||
private void expectDeriveMasterKey_0_0(boolean alice) throws Exception {
|
||||
context.checking(new Expectations() {{
|
||||
oneOf(handshakeCrypto).deriveMasterKey_0_0(theirStaticPublicKey,
|
||||
theirEphemeralPublicKey, ourStaticKeyPair,
|
||||
ourEphemeralKeyPair, alice);
|
||||
will(returnValue(masterKey));
|
||||
}});
|
||||
}
|
||||
|
||||
private void expectDeriveProof(boolean alice) {
|
||||
context.checking(new Expectations() {{
|
||||
oneOf(handshakeCrypto).proveOwnership(masterKey, alice);
|
||||
|
||||
@@ -60,22 +60,6 @@ public class KeyAgreementTest extends BrambleTestCase {
|
||||
assertArrayEquals(aShared.getBytes(), bShared.getBytes());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDerivesStaticEphemeralSharedSecretBadly() throws Exception {
|
||||
String label = getRandomString(123);
|
||||
KeyPair aStatic = crypto.generateAgreementKeyPair();
|
||||
KeyPair aEphemeral = crypto.generateAgreementKeyPair();
|
||||
KeyPair bStatic = crypto.generateAgreementKeyPair();
|
||||
KeyPair bEphemeral = crypto.generateAgreementKeyPair();
|
||||
SecretKey aShared = crypto.deriveSharedSecretBadly(label,
|
||||
bStatic.getPublic(), bEphemeral.getPublic(), aStatic,
|
||||
aEphemeral, true, inputs);
|
||||
SecretKey bShared = crypto.deriveSharedSecretBadly(label,
|
||||
aStatic.getPublic(), aEphemeral.getPublic(), bStatic,
|
||||
bEphemeral, false, inputs);
|
||||
assertArrayEquals(aShared.getBytes(), bShared.getBytes());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDerivesStaticEphemeralSharedSecret() throws Exception {
|
||||
String label = getRandomString(123);
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package org.briarproject.bramble.crypto;
|
||||
|
||||
import java.security.Provider;
|
||||
import java.security.SecureRandom;
|
||||
import java.security.SecureRandomSpi;
|
||||
|
||||
import static java.util.Arrays.fill;
|
||||
|
||||
/**
|
||||
* A fake SecureRandom implementation for testing, which returns all zeroes.
|
||||
*/
|
||||
public class NeitherSecureNorRandom extends SecureRandom {
|
||||
|
||||
private static final Provider PROVIDER =
|
||||
new NeitherSecureNorRandomProvider();
|
||||
|
||||
public NeitherSecureNorRandom() {
|
||||
super(new NeitherSecureNorRandomSpi(), PROVIDER);
|
||||
}
|
||||
|
||||
private static class NeitherSecureNorRandomSpi extends SecureRandomSpi {
|
||||
|
||||
@Override
|
||||
protected byte[] engineGenerateSeed(int length) {
|
||||
return new byte[length];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void engineNextBytes(byte[] b) {
|
||||
fill(b, (byte) 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void engineSetSeed(byte[] seed) {
|
||||
// Thank you for your input
|
||||
}
|
||||
}
|
||||
|
||||
private static class NeitherSecureNorRandomProvider extends Provider {
|
||||
|
||||
private NeitherSecureNorRandomProvider() {
|
||||
super("NeitherSecureNorRandom", 1.0, "Only for testing");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
package org.briarproject.bramble.crypto;
|
||||
|
||||
import org.bouncycastle.crypto.Digest;
|
||||
import org.bouncycastle.crypto.digests.Blake2bDigest;
|
||||
import org.bouncycastle.crypto.engines.Salsa20Engine;
|
||||
import org.bouncycastle.crypto.params.KeyParameter;
|
||||
import org.bouncycastle.crypto.params.ParametersWithIV;
|
||||
import org.briarproject.nullsafety.NotNullByDefault;
|
||||
|
||||
import javax.annotation.concurrent.NotThreadSafe;
|
||||
|
||||
@NotThreadSafe
|
||||
@NotNullByDefault
|
||||
class PseudoRandom {
|
||||
|
||||
private final Salsa20Engine cipher = new Salsa20Engine();
|
||||
|
||||
PseudoRandom(byte[] seed) {
|
||||
// Hash the seed to produce a 32-byte key
|
||||
byte[] key = new byte[32];
|
||||
Digest digest = new Blake2bDigest(256);
|
||||
digest.update(seed, 0, seed.length);
|
||||
digest.doFinal(key, 0);
|
||||
// Initialise the stream cipher with an all-zero nonce
|
||||
byte[] nonce = new byte[8];
|
||||
cipher.init(true, new ParametersWithIV(new KeyParameter(key), nonce));
|
||||
}
|
||||
|
||||
byte[] nextBytes(int length) {
|
||||
byte[] in = new byte[length], out = new byte[length];
|
||||
cipher.processBytes(in, 0, length, out, 0);
|
||||
return out;
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package org.briarproject.bramble.crypto;
|
||||
|
||||
import java.security.Provider;
|
||||
import java.security.SecureRandom;
|
||||
import java.security.SecureRandomSpi;
|
||||
|
||||
class PseudoSecureRandom extends SecureRandom {
|
||||
|
||||
private static final Provider PROVIDER = new PseudoSecureRandomProvider();
|
||||
|
||||
PseudoSecureRandom(byte[] seed) {
|
||||
super(new PseudoSecureRandomSpi(seed), PROVIDER);
|
||||
}
|
||||
|
||||
private static class PseudoSecureRandomSpi extends SecureRandomSpi {
|
||||
|
||||
private final PseudoRandom pseudoRandom;
|
||||
|
||||
private PseudoSecureRandomSpi(byte[] seed) {
|
||||
pseudoRandom = new PseudoRandom(seed);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected byte[] engineGenerateSeed(int length) {
|
||||
return pseudoRandom.nextBytes(length);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void engineNextBytes(byte[] b) {
|
||||
byte[] random = pseudoRandom.nextBytes(b.length);
|
||||
System.arraycopy(random, 0, b, 0, b.length);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void engineSetSeed(byte[] seed) {
|
||||
// Thank you for your input
|
||||
}
|
||||
}
|
||||
|
||||
private static class PseudoSecureRandomProvider extends Provider {
|
||||
|
||||
private PseudoSecureRandomProvider() {
|
||||
super("PseudoSecureRandom", 1.0, "Only for testing");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,9 +15,10 @@ import org.briarproject.bramble.test.BrambleMockTestCase;
|
||||
import org.briarproject.bramble.test.CaptureArgumentAction;
|
||||
import org.briarproject.bramble.test.PredicateMatcher;
|
||||
import org.jmock.Expectations;
|
||||
import org.jmock.imposters.ByteBuddyClassImposteriser;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
@@ -51,17 +52,12 @@ public class KeyAgreementTransportTest extends BrambleMockTestCase {
|
||||
private final KeyAgreementConnection keyAgreementConnection =
|
||||
new KeyAgreementConnection(duplexTransportConnection, transportId);
|
||||
|
||||
private final InputStream inputStream;
|
||||
private final OutputStream outputStream;
|
||||
private final InputStream inputStream =
|
||||
new ByteArrayInputStream(new byte[0]);
|
||||
private final OutputStream outputStream = new ByteArrayOutputStream();
|
||||
|
||||
private KeyAgreementTransport kat;
|
||||
|
||||
public KeyAgreementTransportTest() {
|
||||
context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE);
|
||||
inputStream = context.mock(InputStream.class);
|
||||
outputStream = context.mock(OutputStream.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendKey() throws Exception {
|
||||
byte[] key = getRandomBytes(123);
|
||||
|
||||
@@ -21,11 +21,11 @@ import org.briarproject.bramble.api.properties.TransportProperties;
|
||||
import org.briarproject.bramble.api.properties.TransportPropertyManager;
|
||||
import org.briarproject.bramble.api.system.Clock;
|
||||
import org.briarproject.bramble.api.system.TaskScheduler;
|
||||
import org.briarproject.bramble.crypto.NeitherSecureNorRandom;
|
||||
import org.briarproject.bramble.test.BrambleMockTestCase;
|
||||
import org.briarproject.bramble.test.ImmediateExecutor;
|
||||
import org.briarproject.bramble.test.RunAction;
|
||||
import org.jmock.Expectations;
|
||||
import org.jmock.imposters.ByteBuddyClassImposteriser;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
@@ -55,7 +55,6 @@ public class PollerImplTest extends BrambleMockTestCase {
|
||||
context.mock(TransportPropertyManager.class);
|
||||
private final Clock clock = context.mock(Clock.class);
|
||||
private final Cancellable cancellable = context.mock(Cancellable.class);
|
||||
private final SecureRandom random;
|
||||
|
||||
private final Executor ioExecutor = new ImmediateExecutor();
|
||||
private final TransportId transportId = getTransportId();
|
||||
@@ -67,8 +66,8 @@ public class PollerImplTest extends BrambleMockTestCase {
|
||||
private final PollerImpl poller;
|
||||
|
||||
public PollerImplTest() {
|
||||
context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE);
|
||||
random = context.mock(SecureRandom.class);
|
||||
// Use a fake SecureRandom that returns all zeroes
|
||||
SecureRandom random = new NeitherSecureNorRandom();
|
||||
Executor wakefulIoExecutor = new ImmediateExecutor();
|
||||
poller = new PollerImpl(ioExecutor, wakefulIoExecutor, scheduler,
|
||||
connectionManager, connectionRegistry, pluginManager,
|
||||
@@ -352,12 +351,10 @@ public class PollerImplTest extends BrambleMockTestCase {
|
||||
// Running the polling task schedules the next polling task
|
||||
oneOf(plugin).getPollingInterval();
|
||||
will(returnValue(pollingInterval));
|
||||
oneOf(random).nextDouble();
|
||||
will(returnValue(0.5));
|
||||
oneOf(clock).currentTimeMillis();
|
||||
will(returnValue(now));
|
||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||
with(ioExecutor), with((long) (pollingInterval * 0.5)),
|
||||
with(ioExecutor), with(0L),
|
||||
with(MILLISECONDS));
|
||||
will(returnValue(cancellable));
|
||||
// Get the transport properties and connected contacts
|
||||
@@ -396,12 +393,10 @@ public class PollerImplTest extends BrambleMockTestCase {
|
||||
// Running the polling task schedules the next polling task
|
||||
oneOf(plugin).getPollingInterval();
|
||||
will(returnValue(pollingInterval));
|
||||
oneOf(random).nextDouble();
|
||||
will(returnValue(0.5));
|
||||
oneOf(clock).currentTimeMillis();
|
||||
will(returnValue(now));
|
||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||
with(ioExecutor), with((long) (pollingInterval * 0.5)),
|
||||
with(ioExecutor), with(0L),
|
||||
with(MILLISECONDS));
|
||||
will(returnValue(cancellable));
|
||||
// Get the transport properties and connected contacts
|
||||
|
||||
@@ -34,7 +34,7 @@ dependencyVerification {
|
||||
'org.bouncycastle:bcprov-jdk15to18:1.71:bcprov-jdk15to18-1.71.jar:143aaa4a40edd5fc2a18db7900059f6c16f4d931b94b94b20f7e2238e6662886',
|
||||
'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b',
|
||||
'org.briarproject:null-safety:0.1:null-safety-0.1.jar:161760de5e838cb982bafa973df820675d4397098e9a91637a36a306d43ba011',
|
||||
'org.briarproject:onionwrapper-core:0.1.1:onionwrapper-core-0.1.1.jar:176b7c159a45f6397810a1f93f040b3e17fdbc6645b0d189204777920719464b',
|
||||
'org.briarproject:onionwrapper-core:0.1.3:onionwrapper-core-0.1.3.jar:32d08c9d81a9591e08d7e64e3569334fee21f503b00514006f2e6cbbd409d0df',
|
||||
'org.briarproject:socks-socket:0.1:socks-socket-0.1.jar:e5898822d10f5390363c5dddb945891648c92cf93ba50709e07f0d173ec0eb4b',
|
||||
'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
|
||||
'org.checkerframework:checker-qual:3.41.0:checker-qual-3.41.0.jar:2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172',
|
||||
|
||||
@@ -25,8 +25,8 @@ dependencyVerification {
|
||||
'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047',
|
||||
'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b',
|
||||
'org.briarproject:null-safety:0.1:null-safety-0.1.jar:161760de5e838cb982bafa973df820675d4397098e9a91637a36a306d43ba011',
|
||||
'org.briarproject:onionwrapper-core:0.1.1:onionwrapper-core-0.1.1.jar:176b7c159a45f6397810a1f93f040b3e17fdbc6645b0d189204777920719464b',
|
||||
'org.briarproject:onionwrapper-java:0.1.1:onionwrapper-java-0.1.1.jar:96dbf1f5c72381b7c124d2d43748fcbe18db9cc8e3c950160954e10a6042f83d',
|
||||
'org.briarproject:onionwrapper-core:0.1.3:onionwrapper-core-0.1.3.jar:32d08c9d81a9591e08d7e64e3569334fee21f503b00514006f2e6cbbd409d0df',
|
||||
'org.briarproject:onionwrapper-java:0.1.3:onionwrapper-java-0.1.3.jar:a6bc535e8ea55e567c932f23123eabd10ad53251d3a1e5648960b177e7ab209b',
|
||||
'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
|
||||
'org.checkerframework:checker-qual:3.41.0:checker-qual-3.41.0.jar:2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172',
|
||||
'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9',
|
||||
|
||||
@@ -16,8 +16,8 @@ def getStdout = { command, defaultValue ->
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk 33
|
||||
buildToolsVersion '33.0.0'
|
||||
compileSdk 34
|
||||
buildToolsVersion '34.0.0'
|
||||
|
||||
packagingOptions {
|
||||
doNotStrip '**/*.so'
|
||||
@@ -25,9 +25,9 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 33
|
||||
versionCode 10512
|
||||
versionName "1.5.12"
|
||||
targetSdkVersion 34
|
||||
versionCode 10514
|
||||
versionName "1.5.14"
|
||||
applicationId "org.briarproject.briar.android"
|
||||
buildConfigField "String", "TorVersion", "\"$tor_version\""
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
<uses-permission-sdk-23 android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||
<uses-permission-sdk-23 android:name="android.permission.USE_BIOMETRIC" />
|
||||
<uses-permission-sdk-23 android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission-sdk-23 android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
|
||||
<uses-permission-sdk-23 android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
|
||||
|
||||
<uses-permission
|
||||
android:name="android.permission.HIDE_OVERLAY_WINDOWS"
|
||||
@@ -68,7 +70,8 @@
|
||||
|
||||
<service
|
||||
android:name="org.briarproject.briar.android.BriarService"
|
||||
android:exported="false">
|
||||
android:exported="false"
|
||||
android:foregroundServiceType="connectedDevice|dataSync">
|
||||
<intent-filter>
|
||||
<action android:name="org.briarproject.briar.android.BriarService" />
|
||||
</intent-filter>
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult;
|
||||
import org.briarproject.bramble.api.system.AndroidExecutor;
|
||||
import org.briarproject.bramble.api.system.Clock;
|
||||
import org.briarproject.bramble.util.AndroidUtils;
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.logout.HideUiActivity;
|
||||
import org.briarproject.briar.api.android.AndroidNotificationManager;
|
||||
@@ -174,7 +175,8 @@ public class BriarService extends Service {
|
||||
filter.addAction(ACTION_SHUTDOWN);
|
||||
filter.addAction("android.intent.action.QUICKBOOT_POWEROFF");
|
||||
filter.addAction("com.htc.intent.action.QUICKBOOT_POWEROFF");
|
||||
registerReceiver(receiver, filter);
|
||||
AndroidUtils.registerReceiver(getApplicationContext(), receiver,
|
||||
filter);
|
||||
}, "LifecycleStartup");
|
||||
}
|
||||
|
||||
@@ -215,17 +217,14 @@ public class BriarService extends Service {
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
// Hold a wake lock during shutdown
|
||||
wakeLockManager.runWakefully(() -> {
|
||||
super.onDestroy();
|
||||
LOG.info("Destroyed");
|
||||
stopForeground(true);
|
||||
if (receiver != null) unregisterReceiver(receiver);
|
||||
// Stop the services in a background thread
|
||||
wakeLockManager.executeWakefully(() -> {
|
||||
if (started) lifecycleManager.stopServices();
|
||||
}, "LifecycleShutdown");
|
||||
}, "LifecycleShutdown");
|
||||
super.onDestroy();
|
||||
LOG.info("Destroyed");
|
||||
// Stop the lifecycle, if not already stopped
|
||||
shutdown(false);
|
||||
stopForeground(true);
|
||||
if (receiver != null) {
|
||||
getApplicationContext().unregisterReceiver(receiver);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -295,8 +294,8 @@ public class BriarService extends Service {
|
||||
private void shutdownFromBackground() {
|
||||
// Hold a wake lock during shutdown
|
||||
wakeLockManager.runWakefully(() -> {
|
||||
// Stop the service
|
||||
stopSelf();
|
||||
// Begin lifecycle shutdown
|
||||
shutdown(true);
|
||||
// Hide the UI
|
||||
hideUi();
|
||||
// Wait for shutdown to complete, then exit
|
||||
@@ -331,8 +330,18 @@ public class BriarService extends Service {
|
||||
/**
|
||||
* Starts the shutdown process.
|
||||
*/
|
||||
public void shutdown() {
|
||||
stopSelf(); // This will call onDestroy()
|
||||
public void shutdown(boolean stopAndroidService) {
|
||||
// Hold a wake lock during shutdown
|
||||
wakeLockManager.runWakefully(() -> {
|
||||
// Stop the lifecycle services in a background thread,
|
||||
// then stop this Android service if needed
|
||||
wakeLockManager.executeWakefully(() -> {
|
||||
if (started) lifecycleManager.stopServices();
|
||||
if (stopAndroidService) {
|
||||
androidExecutor.runOnUiThread(() -> stopSelf());
|
||||
}
|
||||
}, "LifecycleShutdown");
|
||||
}, "LifecycleShutdown");
|
||||
}
|
||||
|
||||
public class BriarBinder extends Binder {
|
||||
|
||||
@@ -21,6 +21,7 @@ import static android.os.PowerManager.ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED;
|
||||
import static android.os.PowerManager.ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.registerReceiver;
|
||||
|
||||
class DozeWatchdogImpl implements DozeWatchdog, Service {
|
||||
|
||||
@@ -48,7 +49,7 @@ class DozeWatchdogImpl implements DozeWatchdog, Service {
|
||||
filter.addAction(ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED);
|
||||
filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED);
|
||||
}
|
||||
appContext.registerReceiver(receiver, filter);
|
||||
registerReceiver(appContext, receiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -49,6 +49,7 @@ import static android.content.pm.PackageManager.GET_PERMISSIONS;
|
||||
import static android.content.pm.PackageManager.GET_SIGNATURES;
|
||||
import static android.os.Build.VERSION.SDK_INT;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.registerReceiver;
|
||||
import static org.briarproject.bramble.util.LogUtils.logException;
|
||||
|
||||
@NotNullByDefault
|
||||
@@ -207,7 +208,7 @@ class ScreenFilterMonitorImpl implements ScreenFilterMonitor, Service {
|
||||
filter.addAction(ACTION_PACKAGE_REPLACED);
|
||||
filter.addDataScheme("package");
|
||||
receiver = new PackageBroadcastReceiver();
|
||||
app.registerReceiver(receiver, filter);
|
||||
registerReceiver(app, receiver, filter);
|
||||
cachedApps = null;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -88,6 +88,7 @@ import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.DISABLED;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.INACTIVE;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.STARTING_STOPPING;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.registerReceiver;
|
||||
import static org.briarproject.bramble.util.LogUtils.logException;
|
||||
import static org.briarproject.bramble.util.StringUtils.ISO_8859_1;
|
||||
import static org.briarproject.briar.android.contact.add.nearby.AddNearbyContactPermissionManager.areEssentialPermissionsGranted;
|
||||
@@ -208,7 +209,7 @@ class AddNearbyContactViewModel extends AndroidViewModel
|
||||
qrCodeDecoder = new QrCodeDecoder(androidExecutor, ioExecutor, this);
|
||||
eventBus.addListener(this);
|
||||
IntentFilter filter = new IntentFilter(ACTION_SCAN_MODE_CHANGED);
|
||||
getApplication().registerReceiver(bluetoothReceiver, filter);
|
||||
registerReceiver(getApplication(), bluetoothReceiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -147,7 +147,7 @@ public class BriarControllerImpl implements BriarController {
|
||||
service.waitForStartup();
|
||||
// Shut down the service and wait for it to shut down
|
||||
LOG.info("Shutting down service");
|
||||
service.shutdown();
|
||||
service.shutdown(true);
|
||||
service.waitForShutdown();
|
||||
} catch (InterruptedException e) {
|
||||
LOG.warning("Interrupted while waiting for service");
|
||||
|
||||
@@ -13,15 +13,18 @@ import androidx.recyclerview.widget.ListAdapter;
|
||||
@NotNullByDefault
|
||||
class ForumListAdapter extends ListAdapter<ForumListItem, ForumViewHolder> {
|
||||
|
||||
ForumListAdapter() {
|
||||
private final ForumListViewModel viewModel;
|
||||
|
||||
ForumListAdapter(ForumListViewModel viewModel) {
|
||||
super(new ForumListCallback());
|
||||
this.viewModel = viewModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForumViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(
|
||||
R.layout.list_item_forum, parent, false);
|
||||
return new ForumViewHolder(v);
|
||||
return new ForumViewHolder(v, viewModel);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,7 +40,7 @@ public class ForumListFragment extends BaseFragment implements
|
||||
private ForumListViewModel viewModel;
|
||||
private BriarRecyclerView list;
|
||||
private Snackbar snackbar;
|
||||
private final ForumListAdapter adapter = new ForumListAdapter();
|
||||
private ForumListAdapter adapter;
|
||||
|
||||
@Inject
|
||||
ViewModelProvider.Factory viewModelFactory;
|
||||
@@ -54,6 +54,7 @@ public class ForumListFragment extends BaseFragment implements
|
||||
component.inject(this);
|
||||
viewModel = new ViewModelProvider(this, viewModelFactory)
|
||||
.get(ForumListViewModel.class);
|
||||
adapter = new ForumListAdapter(viewModel);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.briarproject.briar.android.forum;
|
||||
|
||||
import android.app.Application;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.briarproject.bramble.api.contact.event.ContactRemovedEvent;
|
||||
import org.briarproject.bramble.api.db.DatabaseExecutor;
|
||||
@@ -15,6 +16,7 @@ import org.briarproject.bramble.api.sync.GroupId;
|
||||
import org.briarproject.bramble.api.sync.event.GroupAddedEvent;
|
||||
import org.briarproject.bramble.api.sync.event.GroupRemovedEvent;
|
||||
import org.briarproject.bramble.api.system.AndroidExecutor;
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.viewmodel.DbViewModel;
|
||||
import org.briarproject.briar.android.viewmodel.LiveResult;
|
||||
import org.briarproject.briar.api.android.AndroidNotificationManager;
|
||||
@@ -40,6 +42,7 @@ import androidx.annotation.UiThread;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import static android.widget.Toast.LENGTH_SHORT;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.bramble.util.LogUtils.logDuration;
|
||||
import static org.briarproject.bramble.util.LogUtils.now;
|
||||
@@ -180,4 +183,17 @@ class ForumListViewModel extends DbViewModel implements EventListener {
|
||||
return numInvitations;
|
||||
}
|
||||
|
||||
void deleteForum(GroupId groupId) {
|
||||
runOnDbThread(() -> {
|
||||
try {
|
||||
Forum f = forumManager.getForum(groupId);
|
||||
forumManager.removeForum(f);
|
||||
androidExecutor.runOnUiThread(() -> Toast
|
||||
.makeText(getApplication(), R.string.forum_left_toast,
|
||||
LENGTH_SHORT).show());
|
||||
} catch (DbException e) {
|
||||
handleException(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.briarproject.briar.R;
|
||||
@@ -20,6 +21,7 @@ import static org.briarproject.briar.android.activity.BriarActivity.GROUP_NAME;
|
||||
|
||||
class ForumViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
private final ForumListViewModel viewModel;
|
||||
private final Context ctx;
|
||||
private final ViewGroup layout;
|
||||
private final TextAvatarView avatar;
|
||||
@@ -27,8 +29,9 @@ class ForumViewHolder extends RecyclerView.ViewHolder {
|
||||
private final TextView postCount;
|
||||
private final TextView date;
|
||||
|
||||
ForumViewHolder(View v) {
|
||||
ForumViewHolder(View v, ForumListViewModel viewModel) {
|
||||
super(v);
|
||||
this.viewModel = viewModel;
|
||||
ctx = v.getContext();
|
||||
layout = (ViewGroup) v;
|
||||
avatar = v.findViewById(R.id.avatarView);
|
||||
@@ -64,6 +67,21 @@ class ForumViewHolder extends RecyclerView.ViewHolder {
|
||||
date.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
// Open popup menu on long click
|
||||
layout.setOnLongClickListener(v -> {
|
||||
PopupMenu pm = new PopupMenu(ctx, v);
|
||||
pm.getMenuInflater().inflate(R.menu.forum_list_item_actions,
|
||||
pm.getMenu());
|
||||
pm.setOnMenuItemClickListener(it -> {
|
||||
if (it.getItemId() == R.id.action_forum_delete) {
|
||||
viewModel.deleteForum(item.getForum().getId());
|
||||
}
|
||||
return true;
|
||||
});
|
||||
pm.show();
|
||||
return true;
|
||||
});
|
||||
|
||||
// Open Forum on Click
|
||||
layout.setOnClickListener(v -> {
|
||||
Intent i = new Intent(ctx, ForumActivity.class);
|
||||
|
||||
@@ -48,6 +48,7 @@ import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.PREF_PLUGIN_ENABLE;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.STARTING_STOPPING;
|
||||
import static org.briarproject.bramble.util.AndroidUtils.registerReceiver;
|
||||
import static org.briarproject.bramble.util.LogUtils.logDuration;
|
||||
import static org.briarproject.bramble.util.LogUtils.now;
|
||||
|
||||
@@ -96,7 +97,7 @@ public class PluginViewModel extends DbViewModel implements EventListener {
|
||||
this.eventBus = eventBus;
|
||||
eventBus.addListener(this);
|
||||
receiver = new BluetoothStateReceiver();
|
||||
app.registerReceiver(receiver, new IntentFilter(ACTION_STATE_CHANGED));
|
||||
registerReceiver(app, receiver, new IntentFilter(ACTION_STATE_CHANGED));
|
||||
networkStatus.setValue(networkManager.getNetworkStatus());
|
||||
torPluginState.setValue(getTransportState(TorConstants.ID));
|
||||
wifiPluginState.setValue(getTransportState(LanTcpConstants.ID));
|
||||
|
||||
@@ -398,8 +398,8 @@ public class UiUtils {
|
||||
|
||||
public static void startDevReportActivity(Context ctx,
|
||||
Class<? extends FragmentActivity> activity, @Nullable Throwable t,
|
||||
@Nullable Long appStartTime, @Nullable byte[] logKey, @Nullable
|
||||
String initialComment) {
|
||||
@Nullable Long appStartTime, @Nullable byte[] logKey,
|
||||
@Nullable String initialComment) {
|
||||
// Collect memory stats from the current process, not the crash
|
||||
// reporter process
|
||||
ActivityManager am =
|
||||
|
||||
@@ -48,8 +48,7 @@ public class BriarButton extends FrameLayout {
|
||||
attributes.recycle();
|
||||
|
||||
ContextThemeWrapper wrapper = new ContextThemeWrapper(context, style);
|
||||
button = isInEditMode() ? new MaterialButton(context) :
|
||||
new MaterialButton(wrapper, null, style);
|
||||
button = new MaterialButton(wrapper, null, style);
|
||||
button.setText(text);
|
||||
addView(button);
|
||||
progressBar = findViewById(R.id.briar_button_progress_bar);
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
android:layout_width="@dimen/listitem_picture_frame_size"
|
||||
android:layout_height="@dimen/listitem_picture_frame_size"
|
||||
android:layout_marginStart="@dimen/listitem_horizontal_margin"
|
||||
android:layout_marginLeft="@dimen/listitem_horizontal_margin"
|
||||
app:layout_constraintBottom_toTopOf="@+id/divider"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
@@ -38,7 +37,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_medium"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
app:layout_constraintEnd_toStartOf="@+id/dateView"
|
||||
@@ -51,7 +49,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/listitem_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/listitem_horizontal_margin"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
app:layout_constraintBaseline_toBaselineOf="@+id/postCountView"
|
||||
@@ -63,7 +60,6 @@
|
||||
style="@style/Divider.ThreadItem"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginStart="@dimen/margin_medium"
|
||||
android:layout_marginLeft="@dimen/margin_medium"
|
||||
android:layout_marginTop="@dimen/listitem_horizontal_margin"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/action_forum_delete"
|
||||
android:title="@string/forum_leave" />
|
||||
|
||||
</menu>
|
||||
@@ -2,4 +2,5 @@
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
<monochrome android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
@@ -13,6 +13,8 @@
|
||||
<string name="confirm_password">تأكيد كلمة السر</string>
|
||||
<string name="name_too_long">الاسم طويل جدا</string>
|
||||
<string name="password_too_weak">كلمة السر ضعيفة جدا</string>
|
||||
<string name="password_quite_strong">كلمة السر جيدة</string>
|
||||
<string name="password_strong">كلمة السر قوية</string>
|
||||
<string name="passwords_do_not_match">كلمات السر غير متطابقة</string>
|
||||
<string name="create_account_button">إنشاء الحساب</string>
|
||||
<string name="more_info">معلومات أكثر</string>
|
||||
@@ -35,6 +37,7 @@
|
||||
<string name="try_again">كلمة السرّ خاطئة, الرجاء المحاولة مجدّدا</string>
|
||||
<string name="dialog_title_cannot_check_password">لا يمكن التحقق من كلمة السر</string>
|
||||
<string name="dialog_message_cannot_check_password">لم يتمكن براير من التحقق من كلمة اسرّ. الرجاء إعادة تشغيل جهازك لحل المشكلة.</string>
|
||||
<string name="sign_in_title">تسجيل الدخول إلى براير</string>
|
||||
<string name="sign_in_button">تسجيل الدخول</string>
|
||||
<string name="forgotten_password">نسيت كلمة سرّك؟</string>
|
||||
<string name="dialog_title_lost_password">فقدت كلمة السر</string>
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
<string name="confirm_password">Потвърдете парола</string>
|
||||
<string name="name_too_long">Името е твърде дълго</string>
|
||||
<string name="password_too_weak">Паролата е твърде слаба</string>
|
||||
<string name="password_quite_strong">Паролата е добра</string>
|
||||
<string name="password_strong">Паролата е силна</string>
|
||||
<string name="passwords_do_not_match">Паролите не съвпадат</string>
|
||||
<string name="create_account_button">Създаване на профил</string>
|
||||
<string name="more_info">Повече информация</string>
|
||||
@@ -33,7 +35,9 @@
|
||||
<string name="try_again">Грешна парола, опитайте отново</string>
|
||||
<string name="dialog_title_cannot_check_password">Паролата не може да бъде проверена</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar не може да провери вашата парола. Рестартирате устройството, за да разрешите проблема.</string>
|
||||
<string name="sign_in_title">Вписване в Briar</string>
|
||||
<string name="sign_in_button">Влизане</string>
|
||||
<string name="forgotten_password">Забравихте паролата си?</string>
|
||||
<string name="dialog_title_lost_password">Забравена парола</string>
|
||||
<string name="dialog_message_lost_password">Профилът в Briar се съхранява шифриран на вашето устройство, а не в облака и за това паролата не може да бъде сменена. Желаете ли да профилът да бъде премахнат и да бъде направен нов?\n\nВнимание: Профилът, контактите и съобщенията ще бъдат безвъзвратно загубени.</string>
|
||||
<string name="startup_failed_activity_title">Неуспешно стартиране</string>
|
||||
|
||||
875
briar-android/src/main/res/values-bn/strings.xml
Normal file
875
briar-android/src/main/res/values-bn/strings.xml
Normal file
@@ -0,0 +1,875 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<!--Setup-->
|
||||
<string name="setup_title">Briar এ স্বাগতম</string>
|
||||
<string name="setup_name_explanation">আপনার পোস্ট করা যেকোন বিষয়বস্তুর পাশে আপনার ডাকনাম দেখানো হবে । আপনি আপনার অ্যাকাউন্ট তৈরি করার পর এটি পরিবর্তন করতে পারবেন না।</string>
|
||||
<string name="setup_next">পরবর্তী</string>
|
||||
<string name="setup_password_intro">একটি পাসওয়ার্ড নির্বাচন করুন</string>
|
||||
<string name="setup_password_explanation">আপনার Briar অ্যাকাউন্টটি আপনার ডিভাইসে এনক্রিপ্ট করা থাকে, ক্লাউডে নয়। আপনি যদি আপনার পাসওয়ার্ড ভুলে যান বা Briar আনইনস্টল করেন, আপনার অ্যাকাউন্ট পুনরুদ্ধার করার কোন উপায় নেই। একটি দীর্ঘ পাসওয়ার্ড নির্বাচন করুন যা অনুমান করা কঠিন, যেমন চারটি এলোমেলো শব্দ, বা দশটি এলোমেলো অক্ষর, সংখ্যা এবং প্রতীক।</string>
|
||||
<string name="dnkm_doze_intro">বার্তা পেতে, Briar ব্যাকগ্রাউন্ডে সংযুক্ত থাকতে হবে।</string>
|
||||
<string name="dnkm_doze_explanation">বার্তা পেতে, Briar ব্যাকগ্রাউন্ডে সংযুক্ত থাকতে হবে। অনুগ্রহ করে ব্যাটারি অপ্টিমাইজেশান বন্ধ করুন যতে Briar সংযুক্ত থাকতে পারে.</string>
|
||||
<string name="choose_nickname">আপনার ডাকনাম নির্বাচন করুন</string>
|
||||
<string name="choose_password">একটি পাসওয়ার্ড নির্বাচন করুন</string>
|
||||
<string name="confirm_password">আপনার পাসওয়ার্ড নিশ্চিত করুন</string>
|
||||
<string name="name_too_long">নাম খুব লম্বা</string>
|
||||
<string name="password_too_weak">পাসওয়ার্ড খুব দুর্বল</string>
|
||||
<string name="password_quite_strong">পাসওয়ার্ড ঠিক আছে</string>
|
||||
<string name="password_strong">পাসওয়ার্ডটি শক্তিশালী</string>
|
||||
<string name="passwords_do_not_match">পাসওয়ার্ড মিলছে না</string>
|
||||
<string name="create_account_button">অ্যাকাউন্ট তৈরি করুন</string>
|
||||
<string name="more_info">আরও তথ্য</string>
|
||||
<string name="don_t_ask_again">আবার জিজ্ঞাসা করবেন না</string>
|
||||
<string name="dnkm_huawei_protected_text">নীচের বোতামটি ট্যাপ করুন এবং নিশ্চিত করুন যে Briar \"Protected Apps\" স্ক্রীনে সুরক্ষিত।</string>
|
||||
<string name="dnkm_huawei_protected_button">Briar সুরক্ষিত করুন</string>
|
||||
<string name="dnkm_huawei_protected_help">Briar সুরক্ষিত অ্যাপ্লিকেশান তালিকায় যুক্ত করা না থাকলে, এটা ব্যাকগ্রাউন্ডে রান করতে পারবে না।</string>
|
||||
<string name="dnkm_huawei_app_launch_text">নীচের বোতামটি চাপুন, \"App launch\" স্ক্রিন খুলুন এবং নিশ্চিত করুন যে Briar \"Manage manually\"-এ সেট করা আছে।</string>
|
||||
<string name="dnkm_huawei_app_launch_help">যদি \"App launch\" স্ক্রিনে Briar \"Manage manually\"-এ সেট করা না থাকে, তবে এটি ব্যাকগ্রাউন্ডে চলবে না।</string>
|
||||
<string name="dnkm_xiaomi_text">ব্যাকগ্রাউন্ডে চালানোর জন্য, Briar কে সাম্প্রতিক অ্যাপের তালিকায় লক করতে হবে।</string>
|
||||
<string name="dnkm_xiaomi_button">Briar সুরক্ষা </string>
|
||||
<string name="dnkm_xiaomi_help">যদি Briar সাম্প্রতিক অ্যাপের তালিকায় লক করা না থাকে, তবে এটি ব্যাকগ্রাউন্ডে চালু থাকবে না।</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_old">১. সাম্প্রতিক অ্যাপের তালিকা (অ্যাপ সুইচার) খুলুন।\n\n ২. Briar এর ছবির ওপর নিচের দিকে সোয়াইপ করুন যাতে তালার আইকনটি দেখা যায়। \n\n৩. যদি তালাটি বন্ধ না থাকে, সেটি লক করতে ট্যাপ করুন।</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_new">১. সাম্প্রতিক অ্যাপের তালিকা (অ্যাপ সুইচার) খুলুন। \n\n২. যদি Briar এর নামের পাশে একটি ছোট তালার আইকন থাকে, তাহলে কিছু করার দরকার নেই। \n\n৩. যদি তালা না থাকে, তবে ব্রায়ারের ছবির ওপর চাপ দিয়ে ধরে রাখুন যতক্ষণ না তালার বোতামটি দেখা যায়, তারপর সেটিতে ট্যাপ করুন।</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_text">নীচের বোতামটি ট্যাপ করে সিকিউরিটি সেটিংস খুলুন। \"Boost speed\" ট্যাপ করুন, তারপর \"Lock apps\" ট্যাপ করুন এবং নিশ্চিত করুন যে Briar \"Locked\" অবস্থায় সেট করা আছে।</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_help">যদি \"Lock apps\" স্ক্রিনে Briar \"Locked\" অবস্থায় সেট না থাকে, তবে এটি ব্যাকগ্রাউন্ডে কাজ করবে না।</string>
|
||||
<string name="dnkm_warning_dozed_1">Briar ব্যাকগ্রাউন্ডে চলতে ব্যর্থ হয়েছে।</string>
|
||||
<!--Login-->
|
||||
<string name="enter_password">পাসওয়ার্ড</string>
|
||||
<string name="try_again">ভুল পাসওয়ার্ড, আবার চেষ্টা করুন</string>
|
||||
<string name="dialog_title_cannot_check_password">পাসওয়ার্ড নিশ্চিত করা যায়নি</string>
|
||||
<string name="dialog_message_cannot_check_password">briar আপনার পাসওয়ার্ড পরীক্ষা করতে পারছে না। এই সমস্যার সমাধানের জন্য অনুগ্রহ করে আপনার ডিভাইসটি বন্ধ করে আবার চালু করুন।</string>
|
||||
<string name="sign_in_title">Briar এ সাইন ইন করুন</string>
|
||||
<string name="sign_in_button">সাইন ইন</string>
|
||||
<string name="forgotten_password">পাসওয়ার্ড ভুলে গেছেন?</string>
|
||||
<string name="dialog_title_lost_password">পাসওয়ার্ড হারিয়েছে</string>
|
||||
<string name="dialog_message_lost_password">আপনার Briar অ্যাকাউন্টটি আপনার ডিভাইসে এনক্রিপ্ট করা থাকে, ক্লাউডে নয়। তাই আমরা আপনার পাসওয়ার্ড রিসেট করতে পারছি না । আপনি কি আপনার অ্যাকাউন্টটি মুছে দিতে এবং আবার শুরু করতে চান? \n\nসাবধানতা: আপনার পরিচয়, পরিচিতি এবং বার্তাগুলো স্থায়ীভাবে হারিয়ে যাবে ।</string>
|
||||
<string name="startup_failed_activity_title">Briar চালু হতে পারেনি</string>
|
||||
<string name="startup_failed_clock_error">Briar শুরু হতে পারেনি কারণ আপনার ডিভাইসের সময় সঠিক নয়।\n\nঅনুগ্রহ করে আপনার ডিভাইসের ঘড়ি সঠিক সময়ে সেট করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="startup_failed_db_error">Briar আপনার অ্যাকাউন্ট, কন্টাক্ট এবং বার্তাগুলির ডাটাবেস খুলতে পারছে না।\n\nঅনুগ্রহ করে অ্যাপের সর্বশেষ সংস্করণে আপগ্রেড করুন এবং আবার চেষ্টা করুন, অথবা পাসওয়ার্ড প্রম্পটে \'আমি আমার পাসওয়ার্ড ভুলে গেছি\' অপশনটি নির্বাচন করে একটি নতুন অ্যাকাউন্ট সেটআপ করুন।</string>
|
||||
<string name="startup_failed_data_too_old_error">আপনার অ্যাকাউন্ট এই অ্যাপের পুরানো সংস্করণে তৈরি হয়েছে এবং এই সংস্করণে খোলা যাবে না।\n\nআপনাকে হয় পুরানো সংস্করণটি পুনরায় ইনস্টল করতে হবে, অথবা পাসওয়ার্ড প্রম্পটে \'আমি আমার পাসওয়ার্ড ভুলে গেছি\' অপশনটি নির্বাচন করে একটি নতুন অ্যাকাউন্ট সেটআপ করতে হবে।</string>
|
||||
<string name="startup_failed_data_too_new_error">আপনার অ্যাকাউন্ট এই অ্যাপের নতুন সংস্করণে তৈরি হয়েছে এবং এই সংস্করণে খোলা যাবে না। \n\nঅনুগ্রহ করে সর্বশেষ সংস্করণে আপগ্রেড করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="startup_failed_service_error">Briar একটি প্রয়োজনীয় কম্পোনেন্ট চালু করতে পারেনি। \n\nঅনুগ্রহ করে অ্যাপের সর্বশেষ সংস্করণে আপগ্রেড করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<plurals name="expiry_warning">
|
||||
<item quantity="one">এটি ব্রয়ারের একটি পরীক্ষামূলক সংস্করণ। আপনার অ্যাকাউন্টটি %d দিনের মধ্যে মেয়াদ শেষ হয়ে যাবে এবং পুনর্নবীকরণ করা যাবে না।</item>
|
||||
<item quantity="other">এটি Briar একটি পরীক্ষামূলক সংস্করণ। আপনার অ্যাকাউন্টটি %d দিনের মধ্যে মেয়াদ শেষ হয়ে যাবে এবং পুনর্নবীকরণ করা যাবে না।</item>
|
||||
</plurals>
|
||||
<string name="expiry_date_reached">এই সফটওয়্যারটির মেয়াদ উত্তীর্ণ হয়ে গেছে । \nপরীক্ষার জন্য আপনাকে ধন্যবাদ!</string>
|
||||
<string name="download_briar">Briar ব্যবহার চালিয়ে যেতে, অনুগ্রহ করে সর্বশেষ ভার্সন ডাউনলোড করুন।</string>
|
||||
<string name="create_new_account">আপনাকে একটি নতুন অ্যাকাউন্ট তৈরি করতে হবে, তবে আপনি একই ডাকনাম ব্যবহার করতে পারেন।</string>
|
||||
<string name="download_briar_button">সর্বাধুনিক সংস্করণ ডাউনলোড করো</string>
|
||||
<string name="old_android_expiry_date_reached">Briar আর Android 4-এ কাজ করে না।\nঅনুগ্রহ করে একটি নতুন ডিভাইসে Briar ইনস্টল করুন।</string>
|
||||
<string name="old_android_delete_account">আপনি এই ডিভাইস থেকে আপনার অ্যাকাউন্ট মুছে ফেলতে নিচের বোতামটি চাপতে পারেন।</string>
|
||||
<string name="delete_account_button">অ্যাকাউন্ট মুছে ফেলুন</string>
|
||||
<string name="startup_open_database">ডাটাবেস ডিক্রিপ্ট করা হচ্ছে...</string>
|
||||
<string name="startup_migrate_database">ডেটাবেস আপগ্রেড করা হচ্ছে...</string>
|
||||
<string name="startup_compact_database">ডাটাবেস কম্প্যাক্ট করা হচ্ছে...</string>
|
||||
<!--Navigation Drawer-->
|
||||
<string name="nav_drawer_open_description">ন্যাভিগেশন ড্রয়ার খুলুন</string>
|
||||
<string name="nav_drawer_close_description">ন্যাভিগেশন ড্রয়ার বন্ধ করুন</string>
|
||||
<string name="contact_list_button">যোগাযোগ</string>
|
||||
<string name="groups_button">ব্যক্তিগত গ্রুপ</string>
|
||||
<string name="forums_button">ফোরাম</string>
|
||||
<string name="blogs_button">ব্লগ</string>
|
||||
<!--This is part of the main menu. The app will be locked when this is tapped.-->
|
||||
<string name="lock_button">অ্যাপ লক করুন</string>
|
||||
<string name="settings_button">সেটিংস</string>
|
||||
<string name="sign_out_button">সাইন আউট</string>
|
||||
<string name="transports_onboarding_text">এখানে ট্যাপ করুন যাতে আপনি Briar কিভাবে আপনার কন্টাক্টের সাথে সংযুক্ত হবে তা নিয়ন্ত্রণ করতে পারেন।</string>
|
||||
<!--Transports: Tor-->
|
||||
<string name="transport_tor">ইন্টারনেট</string>
|
||||
<string name="tor_device_status_online_wifi">আপনার ফোনে Wi-Fi এর মাধ্যমে ইন্টারনেটে যুক্ত আছে</string>
|
||||
<string name="tor_device_status_online_mobile">আপনার ফোন মোবাইল ডাটার এর মাধ্যমে ইন্টারনেটে যুক্ত আছে</string>
|
||||
<string name="tor_device_status_offline">আপনার ফোনে কোন ইন্টারনেট সংযোগ নেই</string>
|
||||
<string name="tor_plugin_status_enabling">Briar ইন্টারনেটের সাথে সংযোগ করছে</string>
|
||||
<string name="tor_plugin_status_active">Briar ইন্টারনেটের সাথে সংযুক্ত আছে</string>
|
||||
<string name="tor_plugin_status_inactive">Briar ইন্টারনেটের সাথে সংযোগ স্থাপন করতে পারছে না</string>
|
||||
<string name="tor_plugin_status_disabled">Briar ইন্টারনেট ব্যবহার না করার জন্য কনফিগার করা হয়েছে</string>
|
||||
<string name="tor_plugin_status_disabled_mobile_data">Briar মোবাইল দাতা ব্যবহার না করার জন্য কনফিগার করা হয়েছে</string>
|
||||
<string name="tor_plugin_status_disabled_battery">ব্যাটারিতে চলার সময় Briar ইন্টারনেট ব্যবহার না করার জন্য কনফিগার করা হয়েছে</string>
|
||||
<string name="tor_plugin_status_disabled_country_blocked">Briar এই দেশে ইন্টারনেট ব্যবহার না করার জন্য কনফিগার করা হয়েছে</string>
|
||||
<!--Transports: Wi-Fi-->
|
||||
<string name="transport_lan">ওয়াই-ফাই</string>
|
||||
<string name="transport_lan_long">একই Wi-Fi নেটওয়ার্ক</string>
|
||||
<string name="lan_device_status_on">আপনার ফোন Wi-Fi-এ সংযুক্ত আছে</string>
|
||||
<string name="lan_device_status_off">আপনার ফোন Wi-Fi-এ সংযুক্ত নেই</string>
|
||||
<string name="lan_plugin_status_enabling">briar Wi-Fi নেটওয়ার্কের সাথে সংযোগ করছে</string>
|
||||
<string name="lan_plugin_status_active">Briar Wi-Fi নেটওয়ার্কের সাথে সংযুক্ত হয়েছে</string>
|
||||
<string name="lan_plugin_status_inactive">Briar Wi-Fi নেটওয়ার্কের সাথে সংযোগ করতে পারছে না</string>
|
||||
<string name="lan_plugin_status_disabled">Briar Wi-Fi নেটওয়ার্ক ব্যবহার না করার জন্য কনফিগার করা হয়েছে।</string>
|
||||
<!--Transports: Bluetooth-->
|
||||
<string name="transport_bt">ব্লুটুথ</string>
|
||||
<string name="bt_device_status_on">আপনার ফোনের ব্লুটুথ চালু রয়েছে।</string>
|
||||
<string name="bt_device_status_off">আপনার ফোনের ব্লুটুথ বন্ধ রয়েছে</string>
|
||||
<string name="bt_plugin_status_enabling">Briar ব্লুটুথের সাথে সংযোগ করছে</string>
|
||||
<string name="bt_plugin_status_active">Briar ব্লুটুথের সাথে সংযুক্ত হয়েছে</string>
|
||||
<string name="bt_plugin_status_inactive">Briar ব্লুটুথের সাথে সংযুক্ত হতে পারছে না</string>
|
||||
<string name="bt_plugin_status_disabled">Briar ব্লুটুথ ব্যবহার না করার জন্য কনফিগার করা হয়েছে</string>
|
||||
<!--Notifications-->
|
||||
<string name="reminder_notification_title">Briar থেকে সাইন আউট করুন</string>
|
||||
<string name="reminder_notification_text">আবার সাইন ইন করতে আলতো চাপুন।</string>
|
||||
<string name="reminder_notification_channel_title">Briar সাইন ইন অনুস্মারক</string>
|
||||
<string name="reminder_notification_dismiss">বাতিল</string>
|
||||
<string name="ongoing_notification_title">Briar মধ্যে সাইন ইন করুন</string>
|
||||
<string name="ongoing_notification_text">Briar খুলতে স্পর্শ করুন।</string>
|
||||
<plurals name="private_message_notification_text">
|
||||
<item quantity="one">1 টি নতুন ব্যক্তিগত বার্তা ।</item>
|
||||
<item quantity="other">%d টি নতুন ব্যক্তিগত বার্তা ।</item>
|
||||
</plurals>
|
||||
<plurals name="group_message_notification_text">
|
||||
<item quantity="one">1 টি নতুন গ্রুপ বার্তা ।</item>
|
||||
<item quantity="other">%d টি নতুন গ্রুপ বার্তা ।</item>
|
||||
</plurals>
|
||||
<plurals name="forum_post_notification_text">
|
||||
<item quantity="one">1 টি নতুন ফোরাম পোস্ট ।</item>
|
||||
<item quantity="other">%d টি নতুন ফোরাম পোস্ট ।</item>
|
||||
</plurals>
|
||||
<plurals name="blog_post_notification_text">
|
||||
<item quantity="one">1 টি নতুন ব্লগ পোস্ট ।</item>
|
||||
<item quantity="other">%d টি নতুন ব্লগ পোস্ট ।</item>
|
||||
</plurals>
|
||||
<!--Misc-->
|
||||
<string name="now">এখন</string>
|
||||
<string name="show">প্রদর্শন করুন</string>
|
||||
<string name="hide">লুকান</string>
|
||||
<string name="ok">ঠিক আছে</string>
|
||||
<string name="cancel">বাতিল</string>
|
||||
<string name="got_it">বুঝেছি</string>
|
||||
<string name="delete">মুছুন</string>
|
||||
<string name="accept">গ্রহণ</string>
|
||||
<string name="decline">পতন</string>
|
||||
<string name="online">অনলাইন</string>
|
||||
<string name="offline">অফলাইন</string>
|
||||
<string name="send">পাঠান</string>
|
||||
<string name="allow">সম্মতি</string>
|
||||
<string name="open">খুলুন</string>
|
||||
<string name="change">পরিবর্তন</string>
|
||||
<string name="start">শুরু</string>
|
||||
<string name="finish">শেষ</string>
|
||||
<string name="no_data">কোন তথ্য নেই</string>
|
||||
<string name="ellipsis">…</string>
|
||||
<string name="text_too_long">প্রবেশ পাঠ্যটি অত্যন্ত দীর্ঘ</string>
|
||||
<string name="show_onboarding">সহায়তা ডায়ালগ দেখান</string>
|
||||
<string name="fix">সংশোধন</string>
|
||||
<string name="help">সাহায্য</string>
|
||||
<string name="sorry">দুঃখিত</string>
|
||||
<string name="error_start_activity">আপনার সিস্টেমে নেই</string>
|
||||
<string name="status_heading">অবস্থাঃ</string>
|
||||
<string name="error">ভুল</string>
|
||||
<string name="info">তথ্য</string>
|
||||
<!--Contacts and Private Conversations-->
|
||||
<string name="no_contacts">প্রদর্শন করার জন্য কোন যোগাযোগ নেই</string>
|
||||
<string name="no_contacts_action">একটি পরিচিতি যোগ করতে + আইকন আলতো চাপুন</string>
|
||||
<string name="date_no_private_messages">কোনো বার্তা নেই ।</string>
|
||||
<string name="no_private_messages">প্রদর্শনের জন্য কোনো বার্তা নেই</string>
|
||||
<string name="message_hint">নতুন বার্তা</string>
|
||||
<string name="message_hint_auto_delete">নতুন অদৃশ্য হওয়া বার্তা</string>
|
||||
<string name="message_error">বার্তা পাঠাতে সমস্যা</string>
|
||||
<string name="image_caption_hint">একটি ক্যাপশন যুক্ত করুন (ঐচ্ছিক)</string>
|
||||
<string name="image_attach">ছবি সংযুক্ত করুন</string>
|
||||
<string name="image_attach_error">চিত্র(গুলি) সংযুক্ত করা যায়নি</string>
|
||||
<string name="image_attach_error_too_big">ছবি খুব বড়। সীমা হচ্ছে %d মেবা।</string>
|
||||
<string name="image_attach_error_invalid_mime_type">ছবির ফরম্যাট সমর্থিত নয়: %s</string>
|
||||
<string name="set_contact_alias">পরিচিতির নাম পরিবর্তন করুন</string>
|
||||
<string name="set_contact_alias_hint">পরিচিতির নাম</string>
|
||||
<string name="menu_item_disappearing_messages">অদৃশ্য হওয়া বার্তাগুলি</string>
|
||||
<!--The first placeholder will show a duration like "7 days". The second placeholder at the end will add "Tap to learn more."-->
|
||||
<string name="auto_delete_msg_you_enabled">%1$s পরে আপনার বার্তাগুলি অদৃশ্য হয়ে যাবে। %2$s</string>
|
||||
<!--The placeholder at the end will add "Tap to learn more."-->
|
||||
<string name="auto_delete_msg_you_disabled">আপনার বার্তাগুলি অদৃশ্য হবে না।%1$s</string>
|
||||
<!--The first placeholder will show a contact's name. The second placeholder will show a duration like "7 days". The third placeholder at the end will add "Tap to learn more."-->
|
||||
<string name="auto_delete_msg_contact_enabled">%1$s এর বার্তাগুলি %2$s পরে অদৃশ্য হয়ে যাবে। %3$s</string>
|
||||
<plurals name="duration_minutes">
|
||||
<item quantity="one">%d মিনিট</item>
|
||||
<item quantity="other">%d মিনিট</item>
|
||||
</plurals>
|
||||
<plurals name="duration_hours">
|
||||
<item quantity="one">%d ঘণ্টা</item>
|
||||
<item quantity="other">%d ঘণ্টা</item>
|
||||
</plurals>
|
||||
<plurals name="duration_days">
|
||||
<item quantity="one">%d দিন</item>
|
||||
<item quantity="other">%d দিন</item>
|
||||
</plurals>
|
||||
<!--The first placeholder will show a contact's name. The second placeholder at the end will add "Tap to learn more."-->
|
||||
<string name="auto_delete_msg_contact_disabled">%1$s এর বার্তাগুলি অদৃশ্য হয়ে যাবে না। %2$s</string>
|
||||
<string name="tap_to_learn_more">আরও জানতে ট্যাপ করুন।</string>
|
||||
<string name="auto_delete_changed_warning_title">অদৃশ্য হওয়া বার্তাগুলি পরিবর্তিত হয়েছে</string>
|
||||
<string name="auto_delete_changed_warning_message_enabled">আপনি আপনার বার্তা লিখতে শুরু করার পরে, অদৃশ্য হওয়া বার্তা সচল করা হয়েছে।</string>
|
||||
<string name="auto_delete_changed_warning_message_disabled">আপনি আপনার বার্তা লিখতে শুরু করার পরে, অদৃশ্য হওয়া বার্তা অচল করা হয়েছে।</string>
|
||||
<string name="auto_delete_changed_warning_send">ঠিক আছে, পাঠান</string>
|
||||
<string name="delete_all_messages">সব বার্তা মুছে ফেলুন</string>
|
||||
<string name="dialog_title_delete_all_messages">বার্তা মুছে ফেলার জন্য নিশ্চিত করুন</string>
|
||||
<string name="dialog_message_delete_all_messages">আপনি কি নিশ্চিত যে আপনি সমস্ত বার্তা মুছে ফেলতে চান?</string>
|
||||
<string name="dialog_title_not_all_messages_deleted">সবগুলি বার্তা মুছে ফেলা যায়নি</string>
|
||||
<string name="dialog_message_not_deleted_ongoing_both">চলমান আমন্ত্রণ এবংকন্টাক্টের সাথে সম্পর্কিত বার্তাগুলি শেষ হওয়া না পর্যন্ত মুছে ফেলা যাবে না।</string>
|
||||
<string name="dialog_message_not_deleted_ongoing_introductions">বর্তমান কন্টাক্টের সাথে সম্পর্কিত বার্তাগুলি শেষ হওয়া না পর্যন্ত মুছে ফেলা যাবে না।</string>
|
||||
<string name="dialog_message_not_deleted_ongoing_invitations">চলমান আমন্ত্রণের সাথে সম্পর্কিত বার্তাগুলি শেষ হওয়া না পর্যন্ত মুছে ফেলা যাবে না।</string>
|
||||
<string name="dialog_message_not_deleted_not_all_selected_both">একটি আমন্ত্রণ বা কন্টাক্ট মুছে ফেলতে, আপনাকে অনুরোধ এবং প্রতিক্রিয়া উভয়ই নির্বাচন করতে হবে।</string>
|
||||
<string name="dialog_message_not_deleted_not_all_selected_introductions">একটি কন্টাক্ট মুছে ফেলতে, আপনাকে অনুরোধ এবং প্রতিক্রিয়া উভয়ই নির্বাচন করতে হবে।</string>
|
||||
<string name="dialog_message_not_deleted_not_all_selected_invitations">একটি আমন্ত্রণ মুছে ফেলতে, আপনাকে অনুরোধ এবং প্রতিক্রিয়া উভয়ই নির্বাচন করতে হবে।</string>
|
||||
<string name="delete_contact">কন্টাক্ট মুছে দিন</string>
|
||||
<string name="dialog_title_delete_contact">যোগাযোগ মুছে ফেলা নিশ্চিত করুন</string>
|
||||
<string name="dialog_message_delete_contact">আপনি কি এই কন্টাক্ট এবং এই কন্টাক্টের সাথে বিনিময়কৃত সকল বার্তা মুছে ফেলতে চান?</string>
|
||||
<string name="contact_deleted_toast">যোগাযোগ মুছে ফেলা হয়েছে</string>
|
||||
<!--This is shown in the action bar when opening an image in fullscreen that the user sent-->
|
||||
<string name="you">আপনি</string>
|
||||
<string name="save_image">ছবি সংরক্ষণ করুন</string>
|
||||
<string name="dialog_title_save_image">ছবি সংরক্ষন করুন?</string>
|
||||
<string name="dialog_message_save_image">এই ছবিটি সংরক্ষণ করলে তা অন্যান্য অ্যাপসকে অ্যাক্সেস করার অনুমতি দেবে । \n\nআপনি কি নিশ্চিত যে আপনি সংরক্ষণ করতে চান?</string>
|
||||
<string name="save_image_success">ছবিটি সংরক্ষণ করা হয়েছে</string>
|
||||
<string name="save_image_error">ছবি সংরক্ষণ করা যায়নি</string>
|
||||
<string name="dialog_title_no_image_support">চিত্র অপ্রাপ্য</string>
|
||||
<string name="dialog_message_no_image_support">আপনার কন্টাক্টের Briar এখনও ছবি সংযুক্তি সমর্থন করে না। তারা আপগ্রেড করলে আপনি একটি ভিন্ন আইকন দেখতে পাবেন।</string>
|
||||
<string name="dialog_title_image_support">আপনি এখন এই যোগাযোগে চিত্র প্রেরণ করতে পারেন</string>
|
||||
<string name="dialog_message_image_support">ছবি সংযুক্ত করার জন্য এই আইকন আলতো চাপুন।</string>
|
||||
<string name="messaging_too_many_attachments_toast">শুধুমাত্র প্রথম %d চিত্রগুলি পাঠানো হবে</string>
|
||||
<string name="menu_contact">যোগাযোগ</string>
|
||||
<!--Adding Contacts-->
|
||||
<string name="add_contact_title">নিকটবর্তী কন্টাক্ট যোগ করুন</string>
|
||||
<string name="add_contact_error_two_way">আপনারা কি একে অপরের QR কোড স্ক্যান করেছেন?</string>
|
||||
<string name="face_to_face">আপনাকে সেই ব্যক্তির সাথে দেখা করতে হবে যাকে আপনি কন্টাক্ট হিসেবে যোগ করতে চান। \n\nএটি ভবিষ্যতে কাউকে আপনার প্রতিরূপ তৈরি করা বা আপনার বার্তা পড়া থেকে রোধ করবে।</string>
|
||||
<string name="continue_button">চালিয়ে যান</string>
|
||||
<string name="try_again_button">আবার চেষ্টা কর</string>
|
||||
<string name="waiting_for_contact_to_scan">কন্টাক্ট স্ক্যান করতে এবং সংযোগ করতে অপেক্ষা করা হচ্ছে\u2026</string>
|
||||
<string name="exchanging_contact_details">কন্টাক্টের বিস্তারিত তথ্য আদান-প্রদান হচ্ছে\u2026</string>
|
||||
<string name="contact_added_toast">যোগাযোগ যোগ: %s</string>
|
||||
<string name="contact_already_exists">যোগাযোগ %s ইতোমধ্যে বিদ্যমান</string>
|
||||
<string name="contact_already_exists_general">কন্টাক্ট ইতিমধ্যেই আছে</string>
|
||||
<string name="qr_code_invalid">QR কোড </string>
|
||||
<string name="qr_code_too_old_1">আপনি যে QR কোডটি স্ক্যান করেছেন তা Briar-এর একটি পুরানো ভার্সন থেকে এসেছে। \n\nঅনুগ্রহ করে আপনার কন্টাক্টকে সর্বশেষ ভার্সনে আপগ্রেড করতে বলুন এবং তারপর আবার চেষ্টা করুন।</string>
|
||||
<string name="qr_code_too_new_1">আপনি যে QR কোডটি স্ক্যান করেছেন তা Briar-এর একটি নতুন ভার্সন থেকে এসেছে। \n\nঅনুগ্রহ করে সর্বশেষ ভার্সনে আপগ্রেড করুন এবং তারপর আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_qr_code_for_contact">আপনি যে QR কোডটি স্ক্যান করেছেন তা Briar মেইল বক্স থেকে এসেছে। \n\nযদি আপনি একটি মেইল বক্স লিঙ্ক করতে চান, তাহলে Briar মেনু থেকে সেটিংস > মেইল বক্স নির্বাচন করুন।</string>
|
||||
<string name="qr_code_format_unknown">আপনি যে QR কোডটি স্ক্যান করেছেন তা Briar কন্টাক্ট যোগ করার জন্য নয়। \n\nদয়া করে আপনার কন্টাক্টের স্ক্রিনে প্রদর্শিত QR কোডটি স্ক্যান করুন।</string>
|
||||
<string name="camera_error">ক্যামেরার ত্রুটি</string>
|
||||
<string name="connecting_to_device">ডিভাইসে সংযোগ করা হচ্ছে\u2026</string>
|
||||
<string name="authenticating_with_device">ডিভাইসের সাথে যাচাই করা হচ্ছে\u2026</string>
|
||||
<string name="connection_error_title">আপনার কন্টাক্টের সাথে সংযোগ করা যায়নি</string>
|
||||
<string name="connection_error_feedback">যদি এই সমস্যা চলতে থাকে, অনুগ্রহ করে আমাদেরকে <a href="feedback">ফিডব্যাক পাঠান</a> যাতে আমরা অ্যাপটি উন্নত করতে পারি।</string>
|
||||
<string name="info_both_must_scan">আপনাদের উভয়কে একে অপরের QR কোড স্ক্যান করতে হবে</string>
|
||||
<!--Adding Contacts Remotely-->
|
||||
<string name="add_contact_remotely_title_case">দূরে আছে এমন কন্টাক্ট যোগ করুন</string>
|
||||
<string name="add_contact_nearby_title">নিকটবর্তী কন্টাক্ট যোগ করুন</string>
|
||||
<string name="add_contact_remotely_title">দূরে আছে এমন কন্টাক্ট যোগ করুন</string>
|
||||
<string name="contact_link_intro">এখানে আপনার কন্টাক্টের লিঙ্ক দিন</string>
|
||||
<string name="contact_link_hint">কন্টাক্টের লিঙ্ক</string>
|
||||
<string name="paste_button">পেস্ট</string>
|
||||
<string name="add_contact_button">কন্টাক্ট যোগ করুন</string>
|
||||
<string name="copy_button">কপি</string>
|
||||
<string name="share_button">শেয়ার করুন</string>
|
||||
<string name="send_link_title">লিঙ্ক আদান-প্রদান করুন</string>
|
||||
<string name="add_contact_choose_nickname">ডাকনাম নির্বাচন করুন</string>
|
||||
<string name="add_contact_choose_a_nickname">একটি ডাকনাম লিখুন</string>
|
||||
<string name="nickname_intro">আপনার কন্টাক্টকে একটি ডাকনাম দিন। এটি শুধুমাত্র আপনি দেখতে পাবেন।</string>
|
||||
<string name="your_link">এই লিঙ্কটি সেই কন্টাক্টকে দিন যাকে আপনি যোগ করতে চান</string>
|
||||
<string name="link_clip_label">Briar লিংক</string>
|
||||
<string name="link_copied_toast">লিংক কপি করা হয়েছে</string>
|
||||
<string name="adding_contact_error">কন্টাক্ট যোগ করতে একটি ত্রুটি হয়েছে।</string>
|
||||
<string name="pending_contact_requests_snackbar">কন্টাক্ট অনুরোধ অপেক্ষমান রয়েছে</string>
|
||||
<string name="pending_contact_requests">অপেক্ষমান কন্টাক্ট অনুরোধ</string>
|
||||
<string name="no_pending_contacts">কোনও কন্টাক্ট অপেক্ষমান নেই</string>
|
||||
<string name="waiting_for_contact_to_come_online">কন্টাক্ট অনলাইনে আসার জন্য অপেক্ষা করা হচ্ছে…</string>
|
||||
<string name="connecting">সংযুক্ত হচ্ছে ...</string>
|
||||
<string name="adding_contact">কন্টাক্ট যোগ করা হচ্ছে…</string>
|
||||
<string name="adding_contact_failed">কন্টাক্ট যোগ করা যায়নি</string>
|
||||
<string name="dialog_title_remove_pending_contact">অপসারণ নিশ্চিত করুন</string>
|
||||
<string name="dialog_message_remove_pending_contact">এই কন্টাক্টটি এখনও যোগ করা হচ্ছে। যদি আপনি এখন এটি অপসারণ করেন, তবে এটি যোগ করা হবে না।</string>
|
||||
<string name="own_link_error">আপনার কন্টাক্টের লিঙ্ক দিন, আপনার নিজের নয়</string>
|
||||
<string name="nickname_missing">একটি ডাকনাম লিখুন</string>
|
||||
<string name="invalid_link">লিংক সঠিক নয়</string>
|
||||
<string name="unsupported_link">লিংকটি Briar-এর একটি নতুন ভার্সন থেকে এসেছে। অনুগ্রহ করে সর্বশেষ ভার্সনে আপগ্রেড করুন এবং তারপর আবার চেষ্টা করুন।</string>
|
||||
<string name="intent_own_link">এটি আপনার নিজের লিংক। আপনি যাকে যোগ করতে চান তার লিঙ্ক ব্যবহার করুন!</string>
|
||||
<string name="missing_link">একটি লিংক দিন</string>
|
||||
<!--This is a numeral indicating the first step in a series of screens-->
|
||||
<string name="step_1">১</string>
|
||||
<!--This is a numeral indicating the second step in a series of screens-->
|
||||
<string name="step_2">২</string>
|
||||
<plurals name="contact_added_notification_text">
|
||||
<item quantity="one">নতুন কন্টাক্ট যোগ করা হয়েছে।</item>
|
||||
<item quantity="other">%d টি নতুন কন্টাক্ট যোগ করা হয়েছে।</item>
|
||||
</plurals>
|
||||
<string name="offline_state">ইন্টারনেট সংযোগ নেই!</string>
|
||||
<string name="duplicate_link_dialog_title">ডুপ্লিকেট লিংক</string>
|
||||
<string name="duplicate_link_dialog_text_1">আপনার এই লিঙ্কটির মাধ্যমে ইতিমধ্যে একটি অপেক্ষমান কন্টাক্ট রয়েছে: %s</string>
|
||||
<string name="duplicate_link_dialog_text_1_contact">আপনার এই লিঙ্কটির সাথে ইতিমধ্যে একটি কন্টাক্ট রয়েছে: %s</string>
|
||||
<!--This is a question asking whether two nicknames refer to the same person-->
|
||||
<string name="duplicate_link_dialog_text_2">%1$s এবং %2$s কি একই ব্যক্তি?</string>
|
||||
<!--This is a button for answering that two nicknames do indeed refer to the same person. This
|
||||
string will be used in a dialog button, so if the translation of this string is longer than 20
|
||||
characters, please use "Yes" instead, and use "No" for the "Different Person" button-->
|
||||
<string name="same_person_button">একই ব্যক্তি</string>
|
||||
<!--This is a button for answering that two nicknames refer to different people. This string
|
||||
will be used in a dialog button, so if the translation of this string longer than 20 characters,
|
||||
please use "No" instead, and use "Yes" for the "Same Person" button-->
|
||||
<string name="different_person_button">ভিন্ন ব্যক্তি</string>
|
||||
<string name="duplicate_link_dialog_text_3">%1$s এবং %2$s আপনাকে একই লিঙ্ক পাঠিয়েছে। \n\nএকজন সম্ভবত আপনার কন্টাক্টদের পরিচয় জানার চেষ্টা করছে।\n\nতাদেরকে বলবেন না যে আপনি একই লিঙ্ক অন্য কারো কাছ থেকে পেয়েছেন।</string>
|
||||
<string name="pending_contact_updated_toast">অপেক্ষমান কন্টাক্ট আপডেট করা হয়েছে</string>
|
||||
<string name="info_both_must_enter_links">আপনাদের উভয়কে একে অপরের লিংক যুক্ত করতে হবে</string>
|
||||
<!--Peer trust levels-->
|
||||
<string name="peer_trust_level_unverified">অযাচিত কন্টাক্ট</string>
|
||||
<string name="peer_trust_level_verified">যাচাইকৃত কন্টাক্ট</string>
|
||||
<string name="peer_trust_level_ourselves">আমি</string>
|
||||
<string name="peer_trust_level_stranger">অজানা ব্যক্তি</string>
|
||||
<!--Introductions-->
|
||||
<string name="introduction_onboarding_title">আপনার কন্টাক্টগুলোকে পরিচয় করিয়ে দিন</string>
|
||||
<string name="introduction_onboarding_text">আপনার কন্টাক্টগুলোকে একে অপরকে পরিচয় করিয়ে দিন যাতে তারা Briar-এ সংযুক্ত হতে পারে।</string>
|
||||
<string name="introduction_menu_item">ভূমিকা তৈরি করুন</string>
|
||||
<string name="introduction_activity_title">যোগাযোগ নির্বাচন করুন</string>
|
||||
<string name="introduction_not_possible">আপনার কাছে এই কন্টাক্টগুলোর সাথে ইতিমধ্যে একটি পরিচিতি প্রক্রিয়াধীন রয়েছে। দয়া করে আগে এটি শেষ হতে দিন। যদি আপনি বা আপনার কন্টাক্টগুলি অনলাইনে কম থাকেন, তবে এটি কিছু সময় নিতে পারে।</string>
|
||||
<string name="introduction_message_title">কন্টাক্টগুলোকে পরিচয় করিয়ে দিন</string>
|
||||
<string name="introduction_message_hint">একটি বার্তা যুক্ত করুন (ঐচ্ছিক)</string>
|
||||
<string name="introduction_button">ভূমিকা তৈরি করুন</string>
|
||||
<string name="introduction_sent">আপনার ভূমিকা পাঠানো হয়েছে।</string>
|
||||
<string name="introduction_error">পরিচিতি তৈরি করতে সমস্যা হয়েছে ।</string>
|
||||
<string name="introduction_request_sent">আপনি %1$s-কে পরিচয় করানোর জন্য %2$s-কে অনুরোধ করেছেন।</string>
|
||||
<string name="introduction_request_received">%1$s আপনাকে %2$s-কে পরিচয় করানোর জন্য অনুরোধ করেছেন। আপনি কি %2$s-কে আপনার কন্টাক্ট তালিকায় যোগ করতে চান?</string>
|
||||
<string name="introduction_request_exists_received">%1$s আপনাকে %2$s-কে পরিচয় করানোর জন্য অনুরোধ করেছেন, কিন্তু %2$s ইতিমধ্যেই আপনার কন্টাক্ট তালিকায় রয়েছে। যেহেতু %1$s হয়তো এটি জানেন না, তাই আপনি সাড়া দিতে পারেন:</string>
|
||||
<string name="introduction_request_answered_received">%1$s আপনাকে %2$s-কে পরিচয় করানোর জন্য অনুরোধ করেছেন।</string>
|
||||
<string name="introduction_response_accepted_sent">আপনি %1$s-কে পরিচয় করানোর জন্য অনুমোদন দিয়েছেন।</string>
|
||||
<string name="introduction_response_accepted_sent_info">%1$s আপনার কন্টাক্টে যোগ হওয়ার আগে তাকেও পরিচয় স্বীকার করতে হবে। এটি কিছু সময় লাগতে পারে।</string>
|
||||
<string name="introduction_response_declined_sent">আপনি %1$s-কে পরিচয় করানোর জন্য আবেদনটি প্রত্যাখ্যান করেছেন।</string>
|
||||
<string name="introduction_response_declined_auto">%1$s-কে পরিচয় করানোর জন্য আবেদনটি স্বয়ংক্রিয়ভাবে প্রত্যাখ্যাত হয়েছে।</string>
|
||||
<string name="introduction_response_accepted_received">%1$s %2$s-কে পরিচয় করানোর জন্য আবেদনটি গ্রহণ করেছে।</string>
|
||||
<string name="introduction_response_declined_received">%1$s %2$s-কে পরিচয় করানোর জন্য আবেদনটি প্রত্যাখ্যান করেছে।</string>
|
||||
<string name="introduction_response_declined_received_by_introducee">%1$s বলেছে যে %2$s পরিচয় করানোর জন্য আবেদনটি প্রত্যাখ্যান করেছে।</string>
|
||||
<!--Connect via Bluetooth-->
|
||||
<string name="menu_item_connect_via_bluetooth">ব্লুটুথ মাধ্যমে সংযোগ করুন</string>
|
||||
<string name="connect_via_bluetooth_title">ব্লুটুথ মাধ্যমে সংযোগ করুন</string>
|
||||
<string name="connect_via_bluetooth_intro">যদি ব্লুটুথ সংযোগ স্বয়ংক্রিয়ভাবে কাজ না করে, আপনি এই স্ক্রীনটি ব্যবহার করে ম্যানুয়ালি সংযোগ করতে পারেন। \n\nএই কাজটি করার জন্য আপনার কন্টাক্ট কাছাকাছি থাকতে হবে। \n\nআপনি এবং আপনার কন্টাক্ট উভয়কেই একসাথে \"শুরু করুন\" চাপতে হবে।</string>
|
||||
<string name="connect_via_bluetooth_already_discovering">ব্লুটুথের মাধ্যমে সংযোগ করার চেষ্টা চলছে। অনুগ্রহ করে কিছুক্ষণ পর আবার চেষ্টা করুন।</string>
|
||||
<string name="connect_via_bluetooth_no_location_permission">লোকেশনের অনুমতিসমূহ ছাড়া চালিয়ে যাওয়া সম্ভব নয়</string>
|
||||
<string name="connect_via_bluetooth_no_bluetooth_permission">নিকটস্থ ডিভাইসের অনুমতিসমূহ ছাড়া চালিয়ে যাওয়া সম্ভব নয়</string>
|
||||
<string name="connect_via_bluetooth_start">ব্লুটুথ মাধ্যমে সংযোগ করা হচ্ছে...</string>
|
||||
<string name="connect_via_bluetooth_success">ব্লুটুথের মাধ্যমে সফলভাবে সংযুক্ত হয়েছে</string>
|
||||
<string name="connect_via_bluetooth_error">ব্লুটুথের মাধ্যমে সংযোগ করা যায়নি।</string>
|
||||
<string name="connect_via_bluetooth_error_not_supported">ডিভাইসটি ব্লুটুথ সমর্থন করে না।</string>
|
||||
<!--Private Groups-->
|
||||
<string name="groups_list_empty">দেখানোর মত কোনে নেই</string>
|
||||
<string name="groups_list_empty_action">একটি দল তৈরি করতে + আইকনে আলতো চাপুন, অথবা আপনার সাথে দল শেয়ার করতে আপনার পরিচিতদের জিজ্ঞাসা করুন</string>
|
||||
<string name="groups_created_by">%s দ্বারা নির্মিত</string>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d বার্তা</item>
|
||||
<item quantity="other">%d বার্তা</item>
|
||||
</plurals>
|
||||
<string name="groups_group_is_empty">এই গ্রুপি খালি</string>
|
||||
<string name="groups_group_is_dissolved">এই গ্রুপটি দ্রবীভূত করা হয়েছে</string>
|
||||
<string name="groups_remove">অপসারণ</string>
|
||||
<string name="groups_create_group_title">ব্যক্তিগত গ্রুপ তৈরি করুন</string>
|
||||
<string name="groups_create_group_button">গ্রুপ তৈরি করুন</string>
|
||||
<string name="groups_create_group_invitation_button">আমন্ত্রণ পাঠান</string>
|
||||
<string name="groups_create_group_hint">আপনার ব্যক্তিগত গ্রুপের জন্য একটি নাম নির্বাচন করুন</string>
|
||||
<string name="groups_invitation_sent">গ্রুপ আমন্ত্রণ পাঠানো হয়েছে</string>
|
||||
<string name="groups_member_list">সদস্য তালিকা</string>
|
||||
<string name="groups_invite_members">সদস্যদের আমন্ত্রণ জানান</string>
|
||||
<string name="groups_member_created_you">আপনি গ্রুপটি টি তৈরি করেছেন</string>
|
||||
<string name="groups_member_created">%s দল তৈরি করেছে</string>
|
||||
<string name="groups_member_joined_you">আপনি গ্রুপটিতে যোগদান করেছেন</string>
|
||||
<string name="groups_member_joined">%s গ্রুপটিতে যোগদান করেছে</string>
|
||||
<string name="groups_leave">দল পরিত্যাগ করুন</string>
|
||||
<string name="groups_leave_dialog_title">গোষ্ঠী ত্যাগ নিশ্চিত করুন</string>
|
||||
<string name="groups_leave_dialog_message">আপনি কি নিশ্চিত আপনি এই দল ছেড়ে যেতে চান?</string>
|
||||
<string name="groups_dissolve">দলে ভেঙে দিন</string>
|
||||
<string name="groups_dissolve_dialog_title">গ্রুপটি বিলুপ্ত করার জন্য নিশ্চিত করুন</string>
|
||||
<string name="groups_dissolve_dialog_message">আপনি কি নিশ্চিত যে, আপনি এই গ্রুপটি বিলুপ্ত করতে চান? \n\nঅন্যান্য সদস্যরা তাদের আলোচনা চালিয়ে যেতে পারবে না এবং সম্ভবত সর্বশেষ বার্তাগুলি পাবে না।</string>
|
||||
<string name="groups_dissolve_button">বিলুপ্ত করুন</string>
|
||||
<string name="groups_dissolved_dialog_title">গ্রুপ বিলুপ্ত করা হয়েছে</string>
|
||||
<string name="groups_dissolved_dialog_message">যিনি গ্রুপটি তৈরি করেছিলেন তিনি এটি বিলুপ্ত করেছে। \n\nআপনি আর গ্রুপে বার্তা পাঠাতে পারবেন না এবং সম্ভবত সমস্ত লেখাগুলিও পাবেন না।</string>
|
||||
<!--Private Group Invitations-->
|
||||
<string name="groups_invitations_title">গ্রুপের আমন্ত্রণ</string>
|
||||
<string name="groups_invitations_invitation_sent">আপনি %1$s-কে \"%2$s\" গ্রুপে যোগ দেওয়ার জন্য আমন্ত্রণ জানিয়েছেন।</string>
|
||||
<string name="groups_invitations_invitation_received">%1$s আপনাকে \"%2$s\" গ্রুপে যোগ দেওয়ার জন্য আমন্ত্রণ জানিয়েছে।</string>
|
||||
<string name="groups_invitations_joined">দলের যোগদান</string>
|
||||
<string name="groups_invitations_declined">গ্রুপ আমন্ত্রণ প্রত্যাখ্যাত হয়েছে</string>
|
||||
<plurals name="groups_invitations_open">
|
||||
<item quantity="one">%dটি মুক্ত গ্রুপ আমন্ত্রণ রয়েছে</item>
|
||||
<item quantity="other">%d মুক্ত গ্রুপে আমন্ত্রণ রয়েছে</item>
|
||||
</plurals>
|
||||
<string name="groups_invitations_response_accepted_sent">আপনি %sথেকে গ্রুপ আমন্ত্রণ গ্রহণ করেছেন।</string>
|
||||
<string name="groups_invitations_response_declined_sent">আপনি থেকে %sগ্রুপ আমন্ত্রণ প্রত্যাখ্যান করেছেন।</string>
|
||||
<string name="groups_invitations_response_declined_auto">%s থেকে প্রাপ্ত গ্রুপের আমন্ত্রণ স্বয়ংক্রিয়ভাবে প্রত্যাখ্যাত হয়েছে।</string>
|
||||
<string name="groups_invitations_response_accepted_received">%s গ্রুপে আমন্ত্রণ গ্রহণ করেছেন</string>
|
||||
<string name="groups_invitations_response_declined_received">%s গ্রুপে আমন্ত্রণ প্রত্যাখ্যান করেছেন।</string>
|
||||
<string name="sharing_status_groups">শুধুমাত্র দলের স্রষ্টা নতুন সদস্যদের আমন্ত্রণ করতে পারেন। নীচে দলের সব বর্তমান সদস্য।</string>
|
||||
<!--Private Groups Revealing Contacts-->
|
||||
<string name="groups_reveal_contacts">যোগাযোগ প্রকাশ করুন</string>
|
||||
<string name="groups_reveal_dialog_message">আপনি ঠিক করুন আপনি কি এই গ্রুপের বর্তমান এবং ভবিষ্যত সকল সদস্যদের কাছে আপনার কন্টাক্টগুলি প্রকাশ করবেন কিনা। \n\nকন্টাক্ট প্রকাশ করলে গ্রুপগুলির সাথে সংযোগকে আরও দ্রুত এবং নির্ভরযোগ্য করে তোলে, কারণ গ্রুপ জীই তৈরি করেছেন তিনি অফলাইনে থাকলেই আপনি প্রকাশিত কন্টাক্টগুলির সাথে যোগাযোগ করতে পারবেন।</string>
|
||||
<string name="groups_reveal_visible">কন্টাক্টের সাথে সম্পর্ক গ্রুপের কাছে দৃশ্যমান</string>
|
||||
<string name="groups_reveal_visible_revealed_by_us">কন্টাক্টের সাথে সম্পর্ক গ্রুপের কাছে দৃশ্যমান (আপনি প্রকাশ করেছেন)</string>
|
||||
<string name="groups_reveal_visible_revealed_by_contact">কন্টাক্টের সাথে সম্পর্ক গ্রুপের কাছে দৃশ্যমান (%s প্রকাশ করেছেন)</string>
|
||||
<string name="groups_reveal_invisible">কন্টাক্টের সাথে সম্পর্ক গ্রুপের কাছে দৃশ্যমান নয়</string>
|
||||
<!--Forums-->
|
||||
<string name="no_forums">প্রদর্শন করার জন্য কোনো ফোরাম নেই</string>
|
||||
<string name="no_forums_action">ফোরাম তৈরি করতে + আইকনে ট্যাপ করুন, অথবা আপনার কন্টাক্টদের বলুন ফোরাম শেয়ার করতে।</string>
|
||||
<string name="create_forum_title">ফোরাম তৈরি করুন</string>
|
||||
<string name="choose_forum_hint">আপনার ফোরামের জন্য একটি নাম নির্বাচন করুন</string>
|
||||
<string name="create_forum_button">ফোরাম তৈরি করুন</string>
|
||||
<string name="forum_created_toast">ফোরাম তৈরি হয়েছে</string>
|
||||
<string name="no_forum_posts">দেখানোর জন্য কোন পোস্ট নেই</string>
|
||||
<string name="no_posts">কোন পোস্ট নেই</string>
|
||||
<plurals name="posts">
|
||||
<item quantity="one">%d টি পোষ্ট</item>
|
||||
<item quantity="other">%d টি পোষ্ট</item>
|
||||
</plurals>
|
||||
<string name="forum_new_message_hint">নতুন পোস্ট</string>
|
||||
<string name="forum_message_reply_hint">নতুন উত্তর</string>
|
||||
<string name="btn_reply">উত্তর</string>
|
||||
<string name="forum_leave">ফোরাম ছেড়ে দিন</string>
|
||||
<string name="dialog_title_leave_forum">ফোরাম ছেড়ে যাওয়া নিশ্চিত করুন</string>
|
||||
<string name="dialog_message_leave_forum">আপনি কি নিশ্চিত যে আপনি এই ফোরাম ত্যাগ করতে চান? \n\nআপনি এই ফোরামে যে কোন পরিচিতি শেয়ার করেছেন তা হালনাগাদ পাওয়া বন্ধ করতে পারে ।</string>
|
||||
<string name="dialog_button_leave">ত্যাগ</string>
|
||||
<string name="forum_left_toast">বাম ফোরাম</string>
|
||||
<!--Forum Sharing-->
|
||||
<string name="forum_share_button">শেয়ার ফোরাম</string>
|
||||
<string name="contacts_selected">নির্বাচিত পরিচিতি</string>
|
||||
<string name="activity_share_toolbar_header">পরিচিতি নির করুন</string>
|
||||
<string name="no_contacts_selector">প্রদর্শন করার জন্য কোন যোগাযোগ নেই</string>
|
||||
<string name="no_contacts_selector_action">একটি পরিচিতি যোগ করার পর দয়া করে এখানে ফিরে আসুন</string>
|
||||
<string name="forum_shared_snackbar">ফোরাম নির্বাচিত পরিচিতি সঙ্গে ভাগ</string>
|
||||
<string name="forum_share_message">একটি বার্তা যুক্ত করুন (ঐচ্ছিক)</string>
|
||||
<string name="forum_share_error">এই ফোরামে অংশীদারি করতে একটি ত্রুটি ঘটেছে </string>
|
||||
<string name="forum_invitation_received">%1$s আপনার সাথে \"%2$s\" ফোরাম শেয়ার করেছেন।</string>
|
||||
<string name="forum_invitation_sent">আপনি \"%1$s\" ফোরাম %2$sএর সাথে শেয়ার করেছেন।</string>
|
||||
<string name="forum_invitations_title">ফোরামের আমন্ত্রণ</string>
|
||||
<string name="forum_invitation_exists">আপনি ইতিমধ্যেই এই ফোরামের একটি আমন্ত্রণ গ্রহণ করেছেন। \n\nআরও আমন্ত্রণ গ্রহণ করলে ফোরামের সাথে আপনার সংযোগ আরও দ্রুত এবং নির্ভরযোগ্য হবে।</string>
|
||||
<string name="forum_joined_toast">ফোরামে যোগদান </string>
|
||||
<string name="forum_declined_toast">আমন্ত্রণ প্রত্যাখ্যান করা হয়েছে</string>
|
||||
<string name="shared_by_format">শেয়ার করেছেন %s</string>
|
||||
<string name="forum_invitation_already_sharing">ইতোমধ্যে শেয়ার করা হচ্ছে</string>
|
||||
<string name="forum_invitation_already_invited">ইতিমধ্যেই আমন্ত্রণ পাঠানো হয়েছে</string>
|
||||
<string name="forum_invitation_invite_received">আমন্ত্রণ ইতিমধ্যে গ্রহণ করা হয়েছে</string>
|
||||
<string name="forum_invitation_not_supported">এই কন্টাক্ট এটি সমর্থন করে না</string>
|
||||
<string name="forum_invitation_error">ত্রুটি। এটি একটি বাগ এবং এর জন্য আপনি দায়ী নন</string>
|
||||
<string name="forum_invitation_response_accepted_sent">আপনি %s-এর ফোরাম আমন্ত্রণ গ্রহণ করেছেন।</string>
|
||||
<string name="forum_invitation_response_declined_sent">আপনি %s-এর ফোরাম আমন্ত্রণ প্রত্যাখ্যান করেছেন।</string>
|
||||
<string name="forum_invitation_response_declined_auto">%s থেকে প্রাপ্ত আমন্ত্রণ স্বয়ংক্রিয়ভাবে প্রত্যাখ্যাত হয়েছে।</string>
|
||||
<string name="forum_invitation_response_accepted_received">%s ফোরাম আমন্ত্রণ গ্রহণ করেছে।</string>
|
||||
<string name="forum_invitation_response_declined_received">%s ফোরাম আমন্ত্রণ প্রত্যাখ্যান করেছে।</string>
|
||||
<string name="sharing_status">শেয়ারিং অবস্থা</string>
|
||||
<string name="sharing_status_forum">ফোরামের যেকোনো সদস্য তাদের কন্টাক্টদের সঙ্গে এটি শেয়ার করতে পারেন। আপনি এই ফোরামটি নিম্নলিখিত কন্টাক্টদের সঙ্গে শেয়ার করছেন। এছাড়াও এখানে এমন সদস্য থাকতে পারে যাদের আপনি দেখতে পাচ্ছেন না।</string>
|
||||
<string name="shared_with">শেয়ার করেছেন %1$d (%2$d অনলাইনে আছেন)</string>
|
||||
<plurals name="forums_shared">
|
||||
<item quantity="one">কন্টাক্টদের দ্বারা শেয়ার করা ফোরাম %d</item>
|
||||
<item quantity="other">কন্টাক্টদের দ্বারা শেয়ার করা ফোরাম %d</item>
|
||||
</plurals>
|
||||
<string name="nobody">কেউ না</string>
|
||||
<!--Blogs-->
|
||||
<string name="blogs_other_blog_empty_state">দেখানোর জন্য কোন পোস্ট নেই</string>
|
||||
<string name="read_more">আরো পড়ুন</string>
|
||||
<string name="blogs_write_blog_post">ব্লগ পোস্ট লিখুন</string>
|
||||
<string name="blogs_write_blog_post_body_hint">আপনার ব্লগ পোস্ট টাইপ করুন</string>
|
||||
<string name="blogs_publish_blog_post">প্রকাশ </string>
|
||||
<string name="blogs_blog_post_created">ব্লগ পোস্ট তৈরি করা হয়েছে</string>
|
||||
<string name="blogs_blog_post_received">নতুন ব্লগ পোস্ট পেয়েছে</string>
|
||||
<string name="blogs_blog_post_scroll_to">স্ক্রোল করুন</string>
|
||||
<string name="blogs_feed_empty_state">দেখানোর জন্য কোন পোস্ট নেই</string>
|
||||
<string name="blogs_feed_empty_state_action">আপনার পরিচিতিগুলির এবং আপনার সাবস্ক্রাইব করা ব্লগগুলির পোস্টগুলি এখানে উপস্থিত হবে \n\nএকটি পোস্ট লিখতে কলম আইকনে আলতো চাপুন</string>
|
||||
<string name="blogs_remove_blog">ব্লগ মুছে ফেলুন</string>
|
||||
<string name="blogs_remove_blog_dialog_message">আপনি কি নিশ্চিত যে আপনি এই ব্লগটি সরাতে চান? \n\nআপনার ডিভাইস থেকে পোস্টগুলি সরানো হবে তবে অন্যের ডিভাইসগুলির থেকে নয়। \n\nআপনি যে কোনও পরিচিতি দিয়ে এই ব্লগটি শেয়ার করেছেন তা আপডেটগুলি পাওয়া বন্ধ করতে পারে।</string>
|
||||
<string name="blogs_remove_blog_ok">অপসারণ</string>
|
||||
<string name="blogs_blog_removed">ব্লগ মুছে ফেলা হয়েছে</string>
|
||||
<string name="blogs_reblog_comment_hint">একটি মন্তব্য যোগ করুন (ঐচ্ছিক)</string>
|
||||
<string name="blogs_reblog_button">ব্লগ করুন</string>
|
||||
<!--Blog Sharing-->
|
||||
<string name="blogs_sharing_share">ব্লগ শেয়ার করুন</string>
|
||||
<string name="blogs_sharing_error">এই ব্লগে শেয়ার করার সময় একটি ত্রুটি ঘটেছে ।</string>
|
||||
<string name="blogs_sharing_button">ব্লগ শেয়ার করুন</string>
|
||||
<string name="blogs_sharing_snackbar">ব্লগটি নির্বাচিত পরিচিতি সঙ্গে শেয়ার করুন</string>
|
||||
<string name="blogs_sharing_response_accepted_sent">আপনি %s থেকে ব্লগের আমন্ত্রণ গ্রহণ করেছেন।</string>
|
||||
<string name="blogs_sharing_response_declined_sent">আপনি %s থেকে ব্লগের আমন্ত্রণ প্রত্যাখ্যান করেছেন।</string>
|
||||
<string name="blogs_sharing_response_declined_auto">%s থেকে প্রাপ্ত ব্লগের আমন্ত্রণ স্বয়ংক্রিয়ভাবে প্রত্যাখ্যাত হয়েছে।</string>
|
||||
<string name="blogs_sharing_response_accepted_received">%s ব্লগের আমন্ত্রণ গ্রহণ করেছেন</string>
|
||||
<string name="blogs_sharing_response_declined_received">%s ব্লগের আমন্ত্রণ প্রত্যাখ্যান করেছেন।</string>
|
||||
<string name="blogs_sharing_invitation_received">%1$s আপনার সাথে \"%2$s\" ব্লগ শেয়ার করেছেন।</string>
|
||||
<string name="blogs_sharing_invitation_sent">আপনি \"%1$s\" ব্লগটি %2$s এর সাথে শেয়ার করেছেন।</string>
|
||||
<string name="blogs_sharing_invitations_title">ব্লগ আমন্ত্রণ</string>
|
||||
<string name="blogs_sharing_joined_toast">ব্লগে সাবস্ক্রাইব করা হয়েছে।</string>
|
||||
<string name="blogs_sharing_declined_toast">আমন্ত্রণ প্রত্যাখ্যান করা হয়েছে</string>
|
||||
<string name="sharing_status_blog">কেউ একটি ব্লগে সাবস্ক্রাইব করলে সেটি তাদের কন্টাক্টদের সঙ্গে শেয়ার করতে পারে। আপনি এই ব্লগটি নিম্নলিখিত কন্টাক্টদের সঙ্গে শেয়ার করছেন। এছাড়াও এমন সাবস্ক্রাইবার থাকতে পারে যাদের আপনি দেখতে পাচ্ছেন না।</string>
|
||||
<!--RSS Feeds-->
|
||||
<string name="blogs_rss_feeds_import">RSS ফিড আমদানি করুন</string>
|
||||
<string name="blogs_rss_feeds_import_button">আমদানি</string>
|
||||
<string name="blogs_rss_feeds_import_hint">RSS এর ফিড URL লিখুন</string>
|
||||
<string name="blogs_rss_feeds_import_progress">RSS ফিড আমদানি করা হচ্ছে...</string>
|
||||
<string name="blogs_rss_feeds_import_error">আমরা দুঃখিত! আপনার ফীডটি আমদানি করতে সমস্যা হয়েছে ।</string>
|
||||
<string name="blogs_rss_feeds_import_title">ফাইল থেকে ফিড আমদানি করুন</string>
|
||||
<string name="blogs_rss_feeds">RSS ফিড সমূহ</string>
|
||||
<string name="blogs_rss_feeds_manage_imported">আমদানি:</string>
|
||||
<string name="blogs_rss_feeds_manage_author">লেখক:</string>
|
||||
<string name="blogs_rss_feeds_manage_updated">সর্বশেষ হালনাগাদ করা হয়েছে:</string>
|
||||
<string name="blogs_rss_remove_feed">ফিড সরান</string>
|
||||
<string name="blogs_rss_remove_feed_dialog_message">আপনি কি নিশ্চিত যে, আপনি এই ফিডটি মুছে ফেলতে চান? \n\nপোস্টগুলি আপনার ডিভাইস থেকে মুছে ফেলা হবে কিন্তু অন্যদের ডিভাইস থেকে নয়। \n\nযে কন্টাক্টদের আপনি এই ফিডটি শেয়ার করেছেন, তাদের আপডেট পাওয়া বন্ধ হয়ে যেতে পারে।</string>
|
||||
<string name="blogs_rss_remove_feed_ok">অপসারণ</string>
|
||||
<string name="blogs_rss_feeds_manage_empty_state">দেখানোর মত কোনও RSS ফিড নেই।\n\nফিড আমদানি করতে + আইকনে ট্যাপ করুন</string>
|
||||
<string name="blogs_rss_feeds_manage_error">আপনার ফিডগুলি লোড করতে একটি সমস্যা হয়েছে। দয়া করে পরে আবার চেষ্টা করুন।</string>
|
||||
<!--Settings Profile Picture-->
|
||||
<string name="change_profile_picture">আপনার প্রোফাইলের ছবি পরিবর্তন করতে ট্যাপ করুন</string>
|
||||
<string name="dialog_confirm_profile_picture_title">প্রোফাইলের ছবি পরিবর্তন করুন</string>
|
||||
<string name="dialog_confirm_profile_picture_remark">এই ছবি কেবল আপনার কন্টাক্টরা দেখতে পারবে</string>
|
||||
<string name="change_profile_picture_failed_message">আমরা দুঃখিত, তবে আপনার প্রোফাইল ছবি আপডেট করার সময় কিছু সমস্যা হয়েছে</string>
|
||||
<!--Settings Display-->
|
||||
<string name="pref_language_title">ভাষা & অঞ্চল</string>
|
||||
<string name="pref_language_changed">এই সেটিংটি কার্যকর হবে যখন আপনি Briar বন্ধ করে আবার চালু করবেন। দয়া করে সাইন আউট করুন এবং Briar বন্ধ করে আবার চালু করুন।</string>
|
||||
<string name="pref_language_default">সিস্টেমের ডিফল্ট</string>
|
||||
<string name="display_settings_title">প্রদর্শন</string>
|
||||
<string name="pref_theme_title">বিষয়</string>
|
||||
<string name="pref_theme_light">আলো</string>
|
||||
<string name="pref_theme_dark">অন্ধকার</string>
|
||||
<string name="pref_theme_system">সিস্টেমের ডিফল্ট</string>
|
||||
<!--Settings Connections-->
|
||||
<string name="network_settings_title">Connections</string>
|
||||
<string name="bluetooth_setting">ব্লুটুথের মাধ্যমে কন্টাক্টদের সাথে সংযুক্ত হন</string>
|
||||
<string name="wifi_setting">একই Wi-Fi নেটওয়ার্কে থাকা কন্টাক্টদের সাথে সংযুক্ত হন</string>
|
||||
<string name="tor_enable_title">ইন্টারনেটের মাধ্যমে কন্টাক্টদের সাথে সংযুক্ত হন</string>
|
||||
<string name="tor_enable_summary">গোপনীয়তার জন্য সকল সংযোগ Tor নেটওয়ার্কের মাধ্যমে যাবে</string>
|
||||
<string name="tor_network_setting">Tor নেটওয়ার্কের সংযোগ পদ্ধতি</string>
|
||||
<string name="tor_network_setting_automatic">স্বয়ংক্রিয় অবস্থানের উপর ভিত্তি করে</string>
|
||||
<string name="tor_network_setting_without_bridges">কোন ব্রিজ ছাড়াই Tor নেটওয়ার্ক ব্যবহার করুন</string>
|
||||
<string name="tor_network_setting_with_bridges">ব্রিজ সহ Tor নেটওয়ার্ক ব্যবহার করুন</string>
|
||||
<string name="tor_network_setting_never">ইন্টারনেটে সংযোগ স্থাপন করবেন না</string>
|
||||
<!--How and when Briar will connect to Tor: E.g. "Don't connect to the Internet (in China)" or "Use Tor network with bridges (in Belarus)"-->
|
||||
<string name="tor_network_setting_summary">স্বয়ংক্রিয়: %1$s (%2$s)</string>
|
||||
<string name="tor_mobile_data_title">মোবাইল ডেটা ব্যবহার করুন</string>
|
||||
<string name="tor_only_when_charging_title">শুধুমাত্র চার্জিংয়ের সময় ইন্টারনেটে সংযোগ স্থাপন করুন</string>
|
||||
<string name="tor_only_when_charging_summary">ব্যাটারিতে চলার সময় ডিভাইসে ইন্টারনেট সংযোগ নিষ্ক্রিয় করুন</string>
|
||||
<!--Settings Security and Panic-->
|
||||
<string name="security_settings_title">সুরক্ষা</string>
|
||||
<string name="pref_lock_title">অ্যাপ লক</string>
|
||||
<string name="pref_lock_summary">সাইন ইন অবস্থায় Briar সুরক্ষিত রাখতে ডিভাইসের স্ক্রীন লক ব্যবহার করুন</string>
|
||||
<string name="pref_lock_disabled_summary">এই ফিচারটি ব্যবহার করতে, আপনার ডিভাইসের জন্য একটি স্ক্রীন লক সেটআপ করুন</string>
|
||||
<string name="pref_lock_timeout_title">কতক্ষণ ব্যবহার না করলে অ্যাপ লক হবে</string>
|
||||
<!--The %s placeholder is replaced with the following time spans, e.g. 5 Minutes, 1 Hour-->
|
||||
<string name="pref_lock_timeout_summary">Briar ব্যবহার না করলে স্বয়ংক্রিয়ভাবে লক করুন: %s</string>
|
||||
<!--Will be shown in a list of lock times. Should fit into the %s of "automatically lock it after %s"-->
|
||||
<string name="pref_lock_timeout_1">1 মিনিট</string>
|
||||
<!--Will be shown in a list of lock times. Should fit into the %s of "automatically lock it after %s"-->
|
||||
<string name="pref_lock_timeout_5">5 মিনিট</string>
|
||||
<!--Will be shown in a list of lock times. Should fit into the %s of "automatically lock it after %s"-->
|
||||
<string name="pref_lock_timeout_15">15 মিনিট</string>
|
||||
<!--Will be shown in a list of lock times. Should fit into the %s of "automatically lock it after %s"-->
|
||||
<string name="pref_lock_timeout_30">30 মিনিট</string>
|
||||
<!--Will be shown in a list of lock times. Should fit into the %s of "automatically lock it after %s"-->
|
||||
<string name="pref_lock_timeout_60">1 ঘন্টা</string>
|
||||
<string name="pref_lock_timeout_never">কখনো না</string>
|
||||
<string name="pref_lock_timeout_never_summary">কখনোই Briar স্বয়ংক্রিয়ভাবে লক করা হয় না</string>
|
||||
<string name="change_password">পাসওয়ার্ড পরিবর্তন করুন</string>
|
||||
<string name="current_password">বর্তমান পাসওয়ার্ড</string>
|
||||
<string name="choose_new_password">নতুন পাসওয়ার্ড</string>
|
||||
<string name="confirm_new_password">নতুন পাসওয়ার্ড নিশ্চিত করুন</string>
|
||||
<string name="password_changed">পাসওয়ার্ড পরিবর্তন করা হয়েছে ।</string>
|
||||
<string name="panic_setting">প্যানিক বাটন সেটআপ</string>
|
||||
<string name="panic_setting_title">প্যানিক বাটন</string>
|
||||
<string name="panic_setting_hint">যখন আপনি একটি প্যানিক বাটন অ্যাপ ব্যবহার করেন তখন কিভাবে Briar প্রতিক্রিয়া হবে তা কনফিগার করুন</string>
|
||||
<string name="panic_app_setting_title">প্যানিক বাটন অ্যাপ্লিকেশন</string>
|
||||
<string name="unknown_app">একটি অজানা অ্যাপ্লিকেশন</string>
|
||||
<string name="panic_app_setting_summary">কোন অ্যাপ সেট করা হয়নি</string>
|
||||
<string name="panic_app_setting_none">কোনটি না</string>
|
||||
<string name="dialog_title_connect_panic_app">প্যানিক অ্যাপ নিশ্চিত করুন</string>
|
||||
<string name="dialog_message_connect_panic_app">আপনি কি নিশ্চিত যে, আপনি %1$sকে ধ্বংসাত্মক প্যানিক বাটন অ্যাকশন চালানোর অনুমতি দিতে চান?</string>
|
||||
<string name="panic_setting_destructive_action">ধ্বংসাত্মক কাজ</string>
|
||||
<string name="panic_setting_signout_title">সাইন আউট</string>
|
||||
<string name="panic_setting_signout_summary">প্যানিক বাটন চাপা হলে Briar থেকে সাইন আউট করুন</string>
|
||||
<string name="purge_setting_title">অ্যাকাউন্ট মুছে ফেলুন</string>
|
||||
<string name="purge_setting_summary">প্যানিক বাটন চাপা হলে আপনার Briar অ্যাকাউন্ট মুছে ফেলুন। সতর্কতা: এটি স্থায়ীভাবে আপনার পরিচয়, কন্টাক্ট এবং বার্তাগুলি মুছে ফেলবে</string>
|
||||
<!--Settings Notifications-->
|
||||
<string name="notification_settings_title">নোটিফিকেশন্স</string>
|
||||
<string name="notify_sign_in_title">আমাকে সাইন ইন করতে মনে করিয়ে দিন</string>
|
||||
<string name="notify_sign_in_summary">ফোন চালু হলে বা অ্যাপ আপডেট হলে একটি সতর্কবার্তা দেখান</string>
|
||||
<string name="notify_private_messages_setting_title">ব্যক্তিগত বার্তা</string>
|
||||
<string name="notify_private_messages_setting_summary">ব্যক্তিগত বার্তা জন্য এলার্টস দেখান</string>
|
||||
<string name="notify_private_messages_setting_summary_26">প্রাইভেট বার্তার জন্য এলার্টস কনফিগার করুন</string>
|
||||
<string name="notify_group_messages_setting_title">গ্রুপ বার্তা</string>
|
||||
<string name="notify_group_messages_setting_summary">গ্রুপ বার্তার জন্য এলার্টস প্রদর্শন করা হবে</string>
|
||||
<string name="notify_group_messages_setting_summary_26">গ্রুপ বার্তার জন্য এলার্টস কনফিগার করুন</string>
|
||||
<string name="notify_forum_posts_setting_title">ফোরাম পোস্ট</string>
|
||||
<string name="notify_forum_posts_setting_summary">ফোরাম পোস্ট জন্য এলার্টস দেখান</string>
|
||||
<string name="notify_forum_posts_setting_summary_26">ফোরাম পোস্টের জন্য এলার্টস কনফিগার করুন</string>
|
||||
<string name="notify_blog_posts_setting_title">ব্লগ পোস্ট</string>
|
||||
<string name="notify_blog_posts_setting_summary">ব্লগ পোস্টের জন্য এলার্টস দেখান</string>
|
||||
<string name="notify_blog_posts_setting_summary_26">ব্লগ পোস্টের জন্য এলার্টস কনফিগার করুন</string>
|
||||
<string name="notify_vibration_setting">কাম্পান</string>
|
||||
<string name="notify_sound_setting">শব্দ</string>
|
||||
<string name="notify_sound_setting_default">ডিফল্ট রিংটোন</string>
|
||||
<string name="notify_sound_setting_disabled">কোনটি না</string>
|
||||
<string name="choose_ringtone_title">রিংটোন বেছে নিন</string>
|
||||
<string name="cannot_load_ringtone">রিংটোন লোড করা যাচ্ছে না</string>
|
||||
<!--Mailbox-->
|
||||
<string name="mailbox_settings_title">মেইল বক্স</string>
|
||||
<string name="mailbox_setup_title">মেইল বক্স সেটআপ</string>
|
||||
<string name="mailbox_setup_intro">মেইলবক্স আপনার কন্টাক্টদের আপনি অফলাইনে থাকলেও আপনাকে বার্তা পাঠাতে সুযোগ দিবে। মেইলবক্স আপনার বার্তাগুলো গ্রহণ করে সংরক্ষণ করবে যতক্ষণ না আপনি অনলাইনে আসেন।
|
||||
\nআপনি অন্য একটি ডিভাইসে Briar মেইলবক্স অ্যাপ ইনস্টল করতে পারেন। এটি সবসময় অনলাইনে রাখতে চারজার এবং ওয়াই-ফাইতে সংযুক্ত রাখুন।</string>
|
||||
<string name="mailbox_setup_download">প্রথমে, অন্য একটি ডিভাইসে \"Briar Mailbox\" অ্যাপ ইনস্টল করুন। এটি Google Play অথবা যেখান থেকে আপনি Briar ডাউনলোড করেছিলেন সেখান থেকে খুঁজে পেতে পারেন।\n
|
||||
\nএরপর, মেইলবক্স অ্যাপের দেখানো QR কোড স্ক্যান করে আপনার মেইলবক্সকে Briar এর সঙ্গে সংযুক্ত করুন।</string>
|
||||
<string name="mailbox_setup_download_link">ডাউনলোড লিংক শেয়ার করুন</string>
|
||||
<string name="mailbox_setup_button_scan">মেইলবক্স QR কোড স্ক্যান করুন</string>
|
||||
<string name="permission_camera_qr_denied_body">আপনি ক্যামেরা অ্যাক্সেস প্রত্যাখ্যান করেছেন, QR কোড স্ক্যান করতে ক্যামেরা ব্যবহার জরুরী। \n\nঅনুগ্রহ করে অ্যাক্সেস প্রদান করুন।</string>
|
||||
<string name="mailbox_setup_connecting">মেইলবক্সে সংযোগ করা হচ্ছে...</string>
|
||||
<!--This string is shown when connecting to a Mailbox for the first time. The placeholder will be replaced with a duration, e.g. "2 minutes".-->
|
||||
<string name="mailbox_setup_connecting_info">এতে %1s সময় লাগতে পারে</string>
|
||||
<string name="mailbox_qr_code_too_old">আপনি যে QR কোডটি স্ক্যান করেছেন, তা Briar Mailbox-এর পুরনো সংস্করণ থেকে এসেছে। \n\nদয়া করে Briar Mailbox-টি সর্বশেষ সংস্করণে আপগ্রেড করুন এবং তারপর আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_qr_code_too_new">আপনি যে QR কোডটি স্ক্যান করেছেন, তা Briar Mailbox-এর নতুন সংস্করণ থেকে এসেছে। \n\nদয়া করে Briar-টি সর্বশেষ সংস্করণে আপগ্রেড করুন এবং তারপর আবার চেষ্টা করুন।</string>
|
||||
<string name="contact_qr_code_for_mailbox">আপনি যে QR কোডটি স্ক্যান করেছেন, তা Briar কন্টাক্ট যুক্ত করার জন্য। \n\nযদি আপনি একটি কন্টাক্ট যুক্ত করতে চান, তবে দয়া করে কন্টাক্ট লিস্টে গিয়ে + আইকনে ট্যাপ করুন।</string>
|
||||
<string name="mailbox_setup_qr_code_wrong_description">আপনি যে QR কোডটি স্ক্যান করেছেন, তা Briar Mailbox থেকে আসেনি। \n\nদয়া করে আপনার মেইল বক্স ডিভাইসে Briar Mailbox অ্যাপটি খুলুন এবং সেখানে প্রদর্শিত QR কোডটি স্ক্যান করুন।</string>
|
||||
<string name="mailbox_setup_already_paired_title">মেইল বক্স ইতিমধ্যে লিঙ্ক করা রয়েছে।</string>
|
||||
<string name="mailbox_setup_already_paired_description">আপনার অন্য ডিভাইসে Mailbox আনলিঙ্ক করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_setup_io_error_title">সংযোগ করতে পারছে না</string>
|
||||
<string name="mailbox_setup_io_error_description">দয়া করে নিশ্চিত করুন যে উভয় ডিভাইস ইন্টারনেটের সাথে সংযুক্ত রয়েছে এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_setup_assertion_error_title">মেইল বক্সে সমস্যা</string>
|
||||
<string name="mailbox_setup_assertion_error_description">যদি সমস্যা হতেই থাকে, দয়া করে Briar অ্যাপের মাধ্যমে (অজ্ঞাত তথ্যসহ) ফিডব্যাক পাঠান।</string>
|
||||
<string name="mailbox_setup_camera_error_description">ক্যামেরা অ্যাক্সেস করা যায়নি। আবার চেষ্টা করুন, হয়তো ডিভাইস বন্ধ করে চালু করার পর এটি সমাধান হতে পারে।</string>
|
||||
<string name="mailbox_setup_paired_title">সংযুক্ত</string>
|
||||
<string name="mailbox_setup_paired_description">আপনার মেইলবক্স সফলভাবে ব্রায়ারের সাথে লিঙ্ক হয়েছে।\n
|
||||
\nআপনার মেইলবক্সটি সব সময় অনলাইনে রাখতে এটি চার্জার এবং Wi-Fi এর সাথে সংযুক্ত রাখুন।</string>
|
||||
<string name="tor_offline_title">অফলাইন</string>
|
||||
<string name="tor_offline_description">নিশ্চিত করুন এই ডিভাইসটি অনলাইনে আছে এবং ইন্টারনেট সংযোগ পাচ্ছে।\n
|
||||
\nএরপর, সংযোগ সেটিংস স্ক্রীনে গ্লোব আইকনটি সবুজ হওয়ার জন্য অপেক্ষা করুন।</string>
|
||||
<string name="tor_offline_button_check">কানেকশন সেটিংস চেক করুন</string>
|
||||
<string name="mailbox_status_title">মেইল বক্সের অবস্থা</string>
|
||||
<string name="mailbox_status_connected_title">মেইল বক্স চালু আছে</string>
|
||||
<string name="mailbox_status_problem_title">Briar মেইলবক্সের সাথে সংযোগ করতে সমস্যায় পড়ছে</string>
|
||||
<string name="mailbox_status_failure_title">মেইলবক্স এই মুহূর্তে কাজ করছে না </string>
|
||||
<string name="mailbox_status_app_too_old_title">Briar অনেক পুরাতন</string>
|
||||
<string name="mailbox_status_app_too_old_message">Briar অ্যাপের সর্বশেষ সংস্করণে আপডেট করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_status_mailbox_too_old_title">মেইল বক্স অনেক পুরাতন</string>
|
||||
<string name="mailbox_status_mailbox_too_old_message">মেইল বক্স অ্যাপের সর্বশেষ সংস্করণে আপডেট করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_status_check_button">সংযোগ পরীক্ষা করুন</string>
|
||||
<!--Example for string substitution: Last connection: 3min ago-->
|
||||
<string name="mailbox_status_connected_info">শেষবার সংযোগ হয়েছে: %s</string>
|
||||
<!--Indicates that there never was a connection to the mailbox. Last connection: Never-->
|
||||
<string name="mailbox_status_connected_never">কখনো না</string>
|
||||
<string name="mailbox_status_unlink_button">আনলিঙ্ক</string>
|
||||
<string name="mailbox_status_unlink_dialog_title">মেইল বক্স আনলিঙ্ক করবেন?</string>
|
||||
<string name="mailbox_status_unlink_dialog_question">আপনি কি নিশ্চিত যে আপনি আপনার মেইলবক্স আনলিঙ্ক করতে চান?</string>
|
||||
<string name="mailbox_status_unlink_dialog_warning">যদি আপনি আপনার মেইলবক্স আনলিঙ্ক করেন, তবে Briar অফলাইন থাকার সময় আপনি বার্তা গ্রহণ করতে পারবেন না।</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_title">আপবার মেইল বক্স আনলিঙ্ক করা হয়েছে</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_message">পরবর্তী সময়ে আপনার মেইলবক্স ডিভাইসে অ্যাক্সেস পাওয়ার পর, দয়া করে মেইলবক্স অ্যাপটি খুলুন এবং প্রক্রিয়া সম্পূর্ণ করতে \"Unlink\" বোতামে ট্যাপ করুন।\n\nযদি আপনার মেইলবক্স ডিভাইসে আর অ্যাক্সেস না থাকে, চিন্তা করবেন না। আপনার ডেটা এনক্রিপ্টেড, তাই প্রক্রিয়া সম্পূর্ণ না করলেও এটি নিরাপদ থাকবে।</string>
|
||||
<string name="mailbox_status_unlink_success">আপবার মেইল বক্স আনলিঙ্ক করা হয়েছে</string>
|
||||
<string name="mailbox_error_notification_channel_title">Briar Mailbox এ সমস্যা</string>
|
||||
<string name="mailbox_error_notification_title">Briar Mailbox এই মুহূর্তে কাজ করছে না</string>
|
||||
<string name="mailbox_error_notification_text">সমস্যা সমাধান করতে ট্যাপ করুন</string>
|
||||
<string name="mailbox_error_wizard_button">সমাধান করুন</string>
|
||||
<string name="mailbox_error_wizard_title">মেইলবক্স সমস্যার সমাধান উইজার্ড</string>
|
||||
<string name="mailbox_error_wizard_question1">আপনার কি মেইলবক্স ডিভাইসে অ্যাক্সেস আছে?</string>
|
||||
<string name="mailbox_error_wizard_answer1">হাঁ, আমার এই মুহূর্তে অ্যাক্সেস আছে।</string>
|
||||
<string name="mailbox_error_wizard_answer2">এই মুহূর্তে নেই কিন্তু পরে অ্যাক্সেস করতে পারি</string>
|
||||
<string name="mailbox_error_wizard_answer3">না, আমার আর এটিতে অ্যাক্সেস নেই।</string>
|
||||
<string name="mailbox_error_wizard_info1_1">মেইলবক্স ডিভাইসটি চালু আছে এবং ইন্টারনেটে সংযুক্ত রয়েছে কিনা তা নিশ্চিত করুন।</string>
|
||||
<string name="mailbox_error_wizard_question1_1">মেইলবক্স অ্যাপটি খুলুন। আপনি কী দেখতে পাচ্ছেন?</string>
|
||||
<string name="mailbox_error_wizard_answer1_1">আমি মেইলবক্স সেট আপ করার জন্য নির্দেশনা দেখছি</string>
|
||||
<string name="mailbox_error_wizard_answer1_2">আমি QR কোড দেখছি</string>
|
||||
<string name="mailbox_error_wizard_answer1_3">আমি দেখছি \"Mailbox is running\"</string>
|
||||
<string name="mailbox_error_wizard_answer1_4">আমি দেখছি \"Device offline\"</string>
|
||||
<string name="mailbox_error_wizard_info1_1_1">অনুগ্রহ করে নিচের বোতামটি ব্যবহার করে আপনার মেইলবক্স আনলিঙ্ক করুন, তারপর মেইলবক্স ডিভাইসে প্রদত্ত নির্দেশনা অনুসরণ করে আবার এটি লিঙ্ক করুন।</string>
|
||||
<string name="mailbox_error_wizard_info_1_1_2">অনুগ্রহ করে নিচের বোতামটি ব্যবহার করে আপনার মেইলবক্স আনলিঙ্ক করুন, তারপর আবার এটি লিঙ্ক করার জন্য কিউআর কোড স্ক্যান করুন।</string>
|
||||
<string name="mailbox_error_wizard_info1_1_3">অনুগ্রহ করে নিচের বোতামটি ব্যবহার করে Briar এবং Mailbox-এর মধ্যে সংযোগ পরীক্ষা করুন।\n\n
|
||||
|
||||
যদি সংযোগ আবার ব্যর্থ হয়:
|
||||
\u2022 নিশ্চিত করুন যে Mailbox এবং Briar অ্যাপস সর্বশেষ সংস্করণে আপডেট করা হয়েছে।
|
||||
\u2022আপনার Mailbox এবং Briar ডিভাইস বন্ধ করে পুনরায় চালু করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_error_wizard_info1_1_4">নিশ্চিত করুন যে Mailbox ডিভাইসটি সঠিকভাবে ইন্টারনেটে সংযুক্ত।\n\nনিশ্চিত করুন যে Mailbox ডিভাইসে ঘড়ির সময়, তারিখ এবং সময় অঞ্চল সঠিকভাবে প্রদর্শিত হচ্ছে। \n\nনিশ্চিত করুন যে Mailbox এবং Briar অ্যাপস সর্বশেষ সংস্করণে আপডেট করা হয়েছে। \n\nআপনার Mailbox এবং Briar ডিভাইসগুলি বন্ধ করে পুনরায় চালু করুন এবং আবার চেষ্টা করুন।</string>
|
||||
<string name="mailbox_error_wizard_info2">যখন আপনি ডিভাইসটির অ্যাক্সেস পাবেন, তখন এই স্ক্রীনে ফিরে আসুন।</string>
|
||||
<string name="mailbox_error_wizard_info3">অনুগ্রহ করে নিচের বোতামটি ব্যবহার করে আপনার মেইলবক্স আনলিঙ্ক করুন।\n\nআপনার পুরানো মেইলবক্স আনলিঙ্ক করার পর, আপনি যেকোনো সময় একটি নতুন মেইলবক্স সেটআপ করতে পারবেন।</string>
|
||||
<!--About-->
|
||||
<string name="about_title">আমাদের কথা</string>
|
||||
<string name="briar_version">Briar ভার্সন: %s</string>
|
||||
<string name="tor_version">Tor ভার্সন: %s</string>
|
||||
<string name="links">লিঙ্কসমুহ</string>
|
||||
<string name="briar_website">\u2022 <a href="">ওয়েবসাইট</a></string>
|
||||
<string name="briar_source_code">\u2022 <a href="">সোর্স কোড</a></string>
|
||||
<string name="briar_changelog">\u2022 <a href="">পরিবর্তন সমূহ</a></string>
|
||||
<string name="briar_privacy_policy">\u2022 <a href="">গোপনিয়তার নীতি</a></string>
|
||||
<!--Here translators can add their names or Transifex usernames(eg "Thanks to all the contributors at the Localization Lab, especially Tom, Matthew and Jerry")-->
|
||||
<string name="translator_thanks">Localization Lab-এর সকল অবদানকারীদের ধন্যবাদ। বিশেষ করে আশরাফুল হক কে।</string>
|
||||
<!--Conversation Settings-->
|
||||
<string name="disappearing_messages_title">অদৃশ্য হওয়া বার্তাগুলি</string>
|
||||
<string name="disappearing_messages_explanation_long">এই সেটিংটি চালু করলে এই কথোপকথনে নতুন
|
||||
বার্তাগুলি ৭ \u00A0দিনের পরে স্বয়ংক্রিয়ভাবে অদৃশ্য হয়ে যাবে।
|
||||
প্রেরকের বার্তার কপি ডেলিভারি হওয়ার পর থেকে কাউন্টডাউন শুরু হবে।
|
||||
গ্রহণকারীর জন্য কাউন্টডাউন শুরু হয় বার্তা পড়ার পর।
|
||||
যে বার্তাগুলি অদৃশ্য হবে সেগুলি বোমার আইকনে চিহ্নিত হবে।
|
||||
\nমনে রাখবেন যে, রিসিভার আপনার পাঠানো বার্তার কপি তৈরি করতে পারে।
|
||||
\n\nযদি আপনি এই সেটিংটি পরিবর্তন করেন, তাহলে এটি আপনার নতুন বার্তাগুলিতে সাথেসাথেই প্রযোজ্য হবে এবং
|
||||
আপনার কন্টাক্টের বার্তা তাদের পরবর্তী বার্তা পাওয়ার পর থেকে প্রযোজ্য হবে।
|
||||
আপনার কন্টাক্টও এই সেটিংটি পরিবর্তন করতে পারেন।</string>
|
||||
<string name="learn_more">আরও জানুন</string>
|
||||
<string name="disappearing_messages_summary">ভবিষ্যতে এই কথোপকথনে পাঠানো বার্তাগুলি স্বয়ংক্রিয়ভাবে ৭\u00A0দিনের পরে অদৃশ্য হয়ে যাবে।</string>
|
||||
<!--Settings Actions-->
|
||||
<string name="pref_category_actions">অ্যাকশান</string>
|
||||
<string name="share_app_link">ডাউনলোড লিংক শেয়ার করুন</string>
|
||||
<string name="share_app_link_text">%s থেকে Briar ডাউনলোড করুন</string>
|
||||
<string name="send_feedback">প্রতিক্রিয়া পাঠান</string>
|
||||
<!--Link Warning-->
|
||||
<string name="link_warning_title">লিংক সতর্কবাণী</string>
|
||||
<string name="link_warning_intro">আপনি একটি বাহ্যিক অ্যাপ্লিকেশনের সাথে নিম্নোক্ত লিঙ্কটি খুলতে চলেছেন ।</string>
|
||||
<string name="link_warning_text">এটি আপনাকে চিহ্নিত করতে ব্যবহৃত হতে পারে। ভেবে দেখুন, যিনি এই লিঙ্কটি পাঠিয়েছেন তার উপর আপনি কতটা বিশ্বাস করেন এবং এটি Tor Browser ব্যবহার করে খুলতে পারেন।</string>
|
||||
<string name="link_warning_open_link">যোগসূত্র খুলুন</string>
|
||||
<!--Crash Reporter-->
|
||||
<string name="crash_report_title">Briar ক্র্যাশ রিপোর্ট</string>
|
||||
<string name="briar_crashed">দুঃখিত Briar ভেঙ্গে পড়েছে</string>
|
||||
<string name="not_your_fault">এটা আপনার ভুল নয়</string>
|
||||
<string name="please_send_report">আমাদের একটি ক্র্যাশ রিপোর্ট পাঠিয়ে একটি ভাল Briar গড়ে তুলতে সাহায্য করুন ।</string>
|
||||
<string name="report_is_encrypted">আমরা প্রতিজ্ঞা করছি যে প্রতিবেদনটি এনক্রিপ্ট এবং নিরাপদভাবে পাঠানো হয়েছে ।</string>
|
||||
<string name="feedback_title">প্রতিক্রিয়া</string>
|
||||
<string name="describe_crash">কি ঘটেছে বর্ণনা করুন (ঐচ্ছিক)</string>
|
||||
<string name="enter_feedback">আপনার প্রতিক্রিয়া লিখুন</string>
|
||||
<string name="optional_contact_email">আপনার ইমেল অ্যাড্রেস (ঐচ্ছিক)</string>
|
||||
<string name="privacy_policy">আমাদের কাছে ডেটা পাঠানোর মাধ্যমে আপনি আমাদের <a href="">গোপনীয়তা নীতির</a> মেনে নিচ্ছেন।</string>
|
||||
<string name="include_debug_report_crash">ক্র্যাশ সম্পর্কে বেনামী তথ্য অন্তর্ভুক্ত করুন</string>
|
||||
<string name="include_debug_report_feedback">এই ডিভাইস সম্বন্ধে বেনামী তথ্য অন্তর্ভুক্ত করুন</string>
|
||||
<string name="dev_report_user_info">ব্যবহারকারী তথ্য</string>
|
||||
<string name="dev_report_basic_info">সাধারণ তথ্য</string>
|
||||
<string name="dev_report_device_info">ডিভাইসের তথ্য</string>
|
||||
<string name="dev_report_stacktrace">Stacktrace</string>
|
||||
<string name="dev_report_time_info">সময়ের তথ্য</string>
|
||||
<string name="dev_report_memory">স্মৃতি</string>
|
||||
<string name="dev_report_storage">স্টোরেজ</string>
|
||||
<string name="dev_report_connectivity">সংযোগ</string>
|
||||
<string name="dev_report_network_usage">নেটওয়ার্কের ব্যবহার</string>
|
||||
<string name="dev_report_build_config">তৈরির কনফিগারেশন</string>
|
||||
<string name="dev_report_logcat">অ্যাপ লগ</string>
|
||||
<string name="dev_report_device_features">ডিভাইসের বৈশিষ্ট্য</string>
|
||||
<string name="send_report">প্রতিবেদন প্রেরণ করুন</string>
|
||||
<string name="close">বন্ধ</string>
|
||||
<string name="dev_report_sending">প্রতিক্রিয়া পাঠানো হচ্ছে...</string>
|
||||
<string name="dev_report_sent">ফিডব্যাক পাঠানো হয়েছে</string>
|
||||
<string name="dev_report_saved">রিপোর্ট সংরক্ষিত। পরবর্তী বার আপনি Briar লগ ইন পাঠানো হবে।</string>
|
||||
<string name="dev_report_error">সমস্যা: রিপোর্ট পাঠানো যায়নি</string>
|
||||
<!--Sign Out-->
|
||||
<string name="progress_title_logout">Briar থেকে সাইন-আউট করা হচ্ছে...</string>
|
||||
<!--Screen Filters & Tapjacking-->
|
||||
<string name="screen_filter_title">স্ক্রিন ওভারলে সনাক্ত হয়েছে</string>
|
||||
<string name="screen_filter_body">আরেকটি অ্যাপ Briar এর উপরে কাজ করছে। আপনার নিরাপত্তা সুরক্ষিত রাখতে, অন্য কোনো অ্যাপ Briar এর উপরে সচল থাকলে Briar টাচ করলে প্রতিক্রিয়া দেখাবে না।
|
||||
\n\nনিম্নলিখিত অ্যাপগুলি Briar এর উপরে সচল পারে: \n\n%1$s</string>
|
||||
<string name="screen_filter_body_api_30">আরেকটি অ্যাপ Briar এর উপরে কাজ করছে। আপনার নিরাপত্তা সুরক্ষিত রাখতে, অন্য কোনো অ্যাপ Briar এর উপরে সচল থাকলে Briar টাচ করলে প্রতিক্রিয়া দেখাবে না।
|
||||
\n\nকোনটি দায়ী জানতে নিম্নলিখিত অ্যাপগুলি পর্যালোচনা করুন।</string>
|
||||
<string name="screen_filter_allow">এই অ্যাপ গুলিকে উপরে কাজ করতে দিন</string>
|
||||
<string name="screen_filter_review_apps">অ্যাপগুলি পর্যালোচনা করুন</string>
|
||||
<!--Permission Requests-->
|
||||
<string name="permission_camera_title">ক্যামেরার অনুমতি</string>
|
||||
<string name="permission_camera_request_body">QR কোড স্ক্যান করতে, Briar এর ক্যামেরার অ্যাক্সেস প্রয়োজন ।</string>
|
||||
<string name="permission_location_title">অবস্থানের অনুমতি</string>
|
||||
<string name="permission_nearby_devices_title">আশেপাশের ডিভাইসের অনুমতি</string>
|
||||
<string name="permission_location_request_body">ব্লুটুথ ডিভাইস আবিষ্কার করতে, Briar আপনার অবস্থান অ্যাক্সেস করার অনুমতি প্রয়োজন । Briar আপনার অবস্থান সংরক্ষণ করে না বা কারো সাথে শেয়ার করে না.</string>
|
||||
<string name="permission_camera_location_title">ক্যামেরা এবং অবস্থান</string>
|
||||
<string name="permission_camera_location_request_body">QR কোড স্ক্যান করতে, Briar এর আপনার ক্যামেরা অ্যাক্সেস করার অনুমতি প্রয়োজন ।\n\nব্লুটুথ ডিভাইস আবিষ্কার করতে, Briar আপনার অবস্থান অ্যাক্সেস করার অনুমতিসমূহ প্রয়োজন।\n\n Briar আপনার অবস্থান সংরক্ষণ করে না বা কারো সাথে শেয়ার করে না।</string>
|
||||
<string name="permission_camera_bluetooth_title">ক্যামেরা এবং আশেপাশের ডিভাইসগুলি</string>
|
||||
<string name="permission_camera_bluetooth_request_body">QR কোড স্ক্যান করার জন্য Briar-এর ক্যামেরার অ্যাক্সেস প্রয়োজন।\n\nBluetooth ডিভাইসগুলি আবিষ্কার করার জন্য Briar-কে কাছাকাছি ডিভাইসগুলি খুঁজে বের করতে এবং সংযুক্ত হওয়ার অনুমতিসমূহ প্রয়োজন।</string>
|
||||
<string name="permission_camera_denied_body">আপনি ক্যামেরার অ্যাক্সেস প্রত্যাখ্যান করেছেন, কিন্তু কন্টাক্ট যোগ করার জন্য ক্যামেরা ব্যবহার জরুরী।\n\nঅনুগ্রহ করে অ্যাক্সেস দেওয়ার কথা বিবেচনা করুন।</string>
|
||||
<string name="permission_location_denied_body">আপনি আপনার অবস্থান অ্যাক্সেস প্রত্যাখ্যান করেছেন, কিন্তু ব্লুটুথ ডিভাইসগুলি আবিষ্কার করার জন্য Briar এর এই অনুমতিসমূহ প্রয়োজন।\n\nঅনুগ্রহ করে অ্যাক্সেস দেওয়ার কথা বিবেচনা করুন।</string>
|
||||
<string name="permission_location_setting_title">অবস্থানের সেটিং</string>
|
||||
<string name="permission_location_setting_body">ব্লুটুথের মাধ্যমে অন্যান্য ডিভাইস খুঁজে বের করার জন্য আপনার ডিভাইসের লোকেশন সেটিংস চালু থাকতে হবে। চালিয়ে যাওয়ার জন্য অনুগ্রহ করে লোকেশন সক্ষম করুন। পরবর্তীতে আপনি এটি আবার বন্ধ করতে পারবেন।</string>
|
||||
<string name="permission_location_setting_hotspot_body">Wi-Fi হটস্পট তৈরি করার জন্য আপনার ডিভাইসের লোকেশন সেটিংস চালু থাকতে হবে। চালিয়ে যাওয়ার জন্য অনুগ্রহ করে লোকেশন সক্ষম করুন। পরবর্তীতে আপনি এটি আবার বন্ধ করতে পারবেন।</string>
|
||||
<string name="permission_location_setting_button">লোকেশন সক্ষম করুন</string>
|
||||
<string name="permission_bluetooth_title">আশেপাশের ডিভাইসের অনুমতিসমূহ</string>
|
||||
<string name="permission_bluetooth_body">Briar এর ব্লুটুথ যোগাযোগ ব্যবহার করার জন্য কাছে থাকা ডিভাইসগুলো খুঁজে পেতে এবং সংযুক্ত করতে অনুমতিসমূহ প্রয়োজন।</string>
|
||||
<string name="permission_bluetooth_denied_body">আপনি আশেপাশের ডিভাইসে অ্যাক্সেস প্রত্যাখ্যান করেছেন, কিন্তু ব্লুটুথ ব্যবহার করার জন্য Briar এর এই অনুমতিসমূহ প্রয়োজন।\n\nঅনুগ্রহ করে অ্যাক্সেস দেওয়ার কথা বিবেচনা করুন।</string>
|
||||
<string name="qr_code">QR কোড</string>
|
||||
<string name="show_qr_code_fullscreen">QR কোড ফুলস্ক্রিনে দেখান</string>
|
||||
<!--App Locking-->
|
||||
<string name="lock_unlock">Briar আনলক করুন</string>
|
||||
<string name="lock_unlock_verbose">Briar আনলক করতে আপনার ডিভাইসের PIN, প্যাটার্ন বা পাসওয়ার্ড লিখুন </string>
|
||||
<string name="lock_unlock_fingerprint_description">চালিয়ে যেতে নিবন্ধিত আঙুল দিয়ে আপনার ফিঙ্গারপ্রিন্ট সেন্সর স্পর্শ করুন</string>
|
||||
<string name="lock_unlock_password">পাসওয়ার্ড ব্যবহার করুন</string>
|
||||
<string name="lock_is_locked">Briar লক করা আছে</string>
|
||||
<string name="lock_tap_to_unlock">আনলক করতে ট্যাপ করুন</string>
|
||||
<!--Connections Screen-->
|
||||
<string name="transports_help_text">Briar ইন্টারনেট, ওয়াই-ফাই বা ব্লুটুথের মাধ্যমে আপনার কন্টাক্টদের সঙ্গে সংযোগ স্থাপন করতে পারে।\n\nসকল ইন্টারনেট সংযোগ গোপনীয়তার জন্য টর নেটওয়ার্কের মাধ্যমে পরিচালিত হয়। \n\nএকজন কন্টাক্টের সঙ্গে একাধিক উপায়ে সংযোগ স্থাপন করা সম্ভব হলে, Briar সেগুলো একসঙ্গে ব্যবহার করবে।</string>
|
||||
<!--Share app offline-->
|
||||
<string name="hotspot_title">এই অ্যাপ অফলাইনে শেয়ার করুন</string>
|
||||
<string name="hotspot_intro">ইন্টারনেট সংযোগ ছাড়াই আপনার ফোনের ওয়াই-ফাই ব্যবহার করে অন্যের সঙ্গে এই অ্যাপটি শেয়ার করুন। \n\nআপনার ফোন একটি ওয়াই-ফাই হটস্পট চালু করবে। আশেপাশের মানুষ সেই হটস্পটের সঙ্গে সংযোগ করে আপনার ফোন থেকে Briar অ্যাপটি ডাউনলোড করতে পারবে।</string>
|
||||
<string name="hotspot_button_start_sharing">হটস্পট চালু করুন</string>
|
||||
<string name="hotspot_button_stop_sharing">হটস্পট বন্ধ করুন</string>
|
||||
<string name="hotspot_progress_text_start">হটস্পট সেট করা হচ্ছে...</string>
|
||||
<string name="hotspot_notification_channel_title">ওয়াইফাই হটস্পট</string>
|
||||
<string name="hotspot_notification_title">Briar অফালিনে শেয়ার করা</string>
|
||||
<string name="hotspot_button_connected">পরবর্তী</string>
|
||||
<string name="permission_hotspot_location_request_body">ওয়াই-ফাই হটস্পট তৈরি করতে, Briar-এর আপনার অবস্থানের অ্যাক্সেসের অনুমতিসমূহ প্রয়োজন।\n\n Briar আপনার অবস্থান সংরক্ষণ করে না বা কারো সাথে তা শেয়ার করে না।</string>
|
||||
<string name="permission_hotspot_location_request_precise_body">ওয়াই-ফাই হটস্পট তৈরি করতে, Briar-এর আপনার নির্দিষ্ট অবস্থানের অনুমতিসমূহ প্রয়োজন। \n\nBriar আপনার অবস্থান সংরক্ষণ করে না বা কারো সাথে তা শেয়ার করে না।</string>
|
||||
<string name="permission_hotspot_location_denied_body">আপনি আপনার অবস্থান অ্যাক্সেস প্রত্যাখ্যান করেছেন, কিন্তু ওয়াইফাই হটস্পট তৈরি করার জন্য Briar এর এই অনুমতিসমূহ প্রয়োজন।\n\nঅনুগ্রহ করে অ্যাক্সেস দেওয়ার কথা বিবেচনা করুন।</string>
|
||||
<string name="permission_hotspot_location_denied_precise_body">আপনি আপনার নির্দিষ্ট অবস্থানের অ্যাক্সেস প্রত্যাখ্যান করেছেন, কিন্তু ওয়াইফাই হটস্পট তৈরি করার জন্য Briar এর এই অনুমতিসমূহ প্রয়োজন।\n\nঅনুগ্রহ করে অ্যাক্সেস দেওয়ার কথা বিবেচনা করুন।</string>
|
||||
<string name="permission_hotspot_nearby_wifi_request_body">Wi-Fi হটস্পট তৈরি করতে, Briar-এর কাছে নিকটস্থ ডিভাইসগুলোতে প্রবেশের অনুমতিসমূহ প্রয়োজন।</string>
|
||||
<string name="permission_hotspot_nearby_wifi_denied_body">আপনি আশেপাশের ডিভাইসে অ্যাক্সেসের অনুমতি প্রত্যাখ্যান করেছেন, কিন্তু ওয়াইফাই হটস্পট তৈরি করার জন্য Briar এর এই অনুমতিসমূহ প্রয়োজন।\n\nঅনুগ্রহ করে অ্যাক্সেস দেওয়ার কথা বিবেচনা করুন।</string>
|
||||
<string name="wifi_settings_title">ওয়াইফাই সেটিং</string>
|
||||
<string name="wifi_settings_request_enable_body">Wi-Fi হটস্পট তৈরি করতে, Briar-এর Wi-Fi ব্যবহার করা প্রয়োজন। অনুগ্রহ করে এটি চালু করুন।</string>
|
||||
<string name="hotspot_tab_manual">নিজে করুন</string>
|
||||
<!--The placeholder to be inserted into the string 'hotspot_manual_wifi': People can connect by %s-->
|
||||
<string name="hotspot_scanning_a_qr_code">QR কোড স্ক্যান করে</string>
|
||||
<!--Wi-Fi setup-->
|
||||
<!--The %s placeholder will be replaced with the translation of 'hotspot_scanning_a_qr_code'-->
|
||||
<string name="hotspot_manual_wifi">আপনার ফোন একটি Wi-Fi হটস্পট তৈরি করছে। যারা Briar ডাউনলোড করতে চায়, তারা তাদের ডিভাইসের Wi-Fi সেটিংসে নীচের নির্দেশনা ব্যবহার করে অথবা %s-এর মাধ্যমে হটস্পটে সংযোগ করতে পারে । তারা হটস্পটে সংযুক্ত হওয়ার পর, \'পরবর্তী\' বোতাম চাপুন।</string>
|
||||
<string name="hotspot_manual_wifi_ssid">নেটওয়ার্কের নাম</string>
|
||||
<string name="hotspot_qr_wifi">আপনার ফোন একটি Wi-Fi হটস্পট তৈরি করছে। যারা Briar ডাউনলোড করতে চায়, তারা এই QR কোড স্ক্যান করে হটস্পটে সংযোগ করতে পারে। তারা হটস্পটে সংযুক্ত হওয়ার পর, \'পরবর্তী\' বোতাম চাপুন।</string>
|
||||
<string name="hotspot_no_peers_connected">কোন ডিভাইস যুক্ত হয়নি</string>
|
||||
<plurals name="hotspot_peers_connected">
|
||||
<item quantity="one">%s টি ডিভাইস যুক্ত হয়েছে</item>
|
||||
<item quantity="other">%s টি ডিভাইস যুক্ত হয়েছে</item>
|
||||
</plurals>
|
||||
<!--Download link-->
|
||||
<!--The %s placeholder will be replaced with the translation of 'hotspot_scanning_a_qr_code'-->
|
||||
<string name="hotspot_manual_site">আপনার ফোন একটি Wi-Fi হটস্পট তৈরিকরছে। যারা হটস্পটে সংযুক্ত রয়েছে, তারা একটি ওয়েব ব্রাউজারে নিচের লিঙ্কটি টাইপ করে অথবা %s Briar ডাউনলোড করতে পারে।</string>
|
||||
<string name="hotspot_manual_site_address">ঠিকানা (লিংক)</string>
|
||||
<string name="hotspot_qr_site">আপনার ফোন একটি Wi-Fi হটস্পট তৈরি করছে। যারা হটস্পটে সংযুক্ত রয়েছে, তারা এই QR কোড স্ক্যান করে Briar ডাউনলোড করতে পারে।</string>
|
||||
<!--e.g. Download Briar 1.2.20-->
|
||||
<string name="website_download_title_1">Briar %s ডাউনলোড করুন</string>
|
||||
<string name="website_download_intro_1">আপনার আশেপাশের কেউ Briar শেয়ার করেছেন</string>
|
||||
<string name="website_download_button">Briar ডাউনলোড করুন</string>
|
||||
<string name="website_download_outro">ডাউনলোড সম্পূর্ণ হওয়ার পরে, ডাউনলোড করা ফাইলটি ওপেন করুন এবং ইনস্টল করুন।</string>
|
||||
<string name="website_troubleshooting_title">সমস্যা সমাধান</string>
|
||||
<string name="website_troubleshooting_1">যদি আপনি অ্যাপটি ডাউনলোড করতে না পারেন, তাহলে একটি ভিন্ন ওয়েব ব্রাউজার ব্যবহার করে চেষ্টা করুন।</string>
|
||||
<string name="website_troubleshooting_2_old">ডাউনলোড করা অ্যাপ ইনস্টল করতে, আপনাকে সিস্টেম সেটিংসে \"Unknown sources\" থেকে অ্যাপ ইনস্টল করার অনুমতি দিতে হতে পারে। এর পরে, আপনাকে আবার অ্যাপটি ডাউনলোড করতে হতে পারে। আমরা অ্যাপ ইনস্টল করার পর \"Unknown sources\" সেটিংটি বন্ধ করার সুপারিশ করি।</string>
|
||||
<string name="website_troubleshooting_2_new">ডাউনলোড করা অ্যাপ ইনস্টল করতে, আপনাকে আপনার ব্রাউজারকে unknown apps ইনস্টল করার অনুমতিসমূহ দিতে হতে পারে। অ্যাপ ইনস্টল করার পর, আমরা সুপারিশ করি যে আপনি ব্রাউজারের \"unknown apps.\" অনুমতি বন্ধ করবেন।</string>
|
||||
<string name="hotspot_help_wifi_title">ওয়াইফাইতে সংযোগ করতে সমস্যা হচ্ছে</string>
|
||||
<string name="hotspot_help_wifi_1">উভয় ফোনে ওয়াইফাই বন্ধ করে আবার চালু করুন এবং পুনরায় চেষ্টা করুন।</string>
|
||||
<string name="hotspot_help_wifi_2">যদি আপনার ফোন অভিযোগ করে যে, Wi-Fi তে ইন্টারনেট নেই, তবে আপনি তবুও সংযুক্ত থাকতে চান নির্বাচন করুন।</string>
|
||||
<string name="hotspot_help_wifi_3">যে ফোনটি Wi-Fi হটস্পট চালাচ্ছে, সেটি রিস্টার্ট করুন, তারপর Briar শুরু করুন এবং আবার শেয়ার করার চেষ্টা করুন।</string>
|
||||
<string name="hotspot_help_site_title">লোকাল ওয়েবসাইটে ঢুকতে সমস্যা হচ্ছে:</string>
|
||||
<string name="hotspot_help_site_1">আপনি ঠিক যেমন দেখানো হয়েছে ঠিক তেমন লিখেছেন কিনা তা পুনরায় চেক করুন। একটি ছোট ত্রুটি হলেও একটি কাজ না করতে পারে।</string>
|
||||
<string name="hotspot_help_site_2">যখন আপনি সাইটে অ্যাক্সেস করার চেষ্টা করবেন, তখন নিশ্চিত করুন যে আপনার ফোন এখনও সঠিক Wi-Fi-এ সংযুক্ত রয়েছে (উপরের তথ্য দেখুন)।</string>
|
||||
<string name="hotspot_help_site_3">যদি আপনার ফোনে একটি ফায়ারওয়াল অ্যাপ থাকে, তাহলে নিশ্চিত করুন যে এটি অ্যাক্সেস ব্লক করছে না।</string>
|
||||
<string name="hotspot_help_site_4">যদি আপনি সাইটটি পরিদর্শন করতে পারেন, কিন্তু Briar অ্যাপ ডাউনলোড করতে পারছেন না, তবে একটি ভিন্ন ওয়েব ব্রাউজার দিয়ে চেষ্টা করুন।</string>
|
||||
<string name="hotspot_help_fallback_title">কিছুতেই কাজ হচ্ছে না?</string>
|
||||
<string name="hotspot_help_fallback_intro">আপনি অ্যাপটি একটি .apk ফাইল হিসেবে সংরক্ষণ করে অন্যভাবে শেয়ার করার চেষ্টা করতে পারেন। একবার ফাইলটি অন্য ডিভাইসে স্থানান্তরিত হলে, এটি দিয়ে Briar ইনস্টল করা যেতে পারে।
|
||||
\n\n পরামর্শ: Bluetooth এর মাধ্যমে শেয়ার করার জন্য, আপনাকে প্রথমে ফাইলটির নাম পরিবর্তন করে এর শেষে .zip লিখতে হতে পারে।</string>
|
||||
<string name="hotspot_help_fallback_button">অ্যাপ সেভ করুন</string>
|
||||
<!--error handling-->
|
||||
<string name="hotspot_error_intro">Wi-Fi এর মাধ্যমে অ্যাপটি শেয়ার করার সময় কিছু সমস্যা হয়েছে:</string>
|
||||
<string name="hotspot_error_no_wifi_direct">ডিভাইসটি Wi-Fi Direct সমর্থন করে না</string>
|
||||
<string name="hotspot_error_start_callback_failed">হটস্পট শুরু করতে ব্যর্থ: সমস্যা %s</string>
|
||||
<string name="hotspot_error_start_callback_failed_unknown">অজানা কারনে হটস্পট শুরু করতে ব্যর্থ, হয়তবা %d</string>
|
||||
<string name="hotspot_error_start_callback_no_group_info">হটস্পট শুরু করতে ব্যর্থ: কোন গ্রুপের তথ্য নেই</string>
|
||||
<string name="hotspot_error_web_server_start">ওয়েব সার্ভার চালু করতে ব্যর্থ</string>
|
||||
<string name="hotspot_error_web_server_serve">ওয়েবসাইট প্রদর্শনে সমস্যা।\n\nযদি সমস্যা হতেই থাকে, অনুগ্রহ করে Briar অ্যাপের মাধ্যমে (গোপনীয় তথ্য সহ) প্রতিক্রিয়া পাঠান।</string>
|
||||
<string name="hotspot_flag_test">সতর্কতা: এই অ্যাপটি Android Studio ব্যবহার করে ইনস্টল করা হয়েছে এবং এটি অন্য ডিভাইসে ইনস্টল করা যাবে না।</string>
|
||||
<string name="hotspot_error_framework_busy">হটস্পট চালু করা যাচ্ছে না।\n\nযদি আপনার আরেকটি হটস্পট চালু থাকে বা আপনি কারো সাথে Wi-Fi এর মাধ্যমে আপনার ইন্টারনেট সংযোগ শেয়ার করছেন, তাহলে সেটি বন্ধ করে আবার চেষ্টা করুন।</string>
|
||||
<!--Transfer Data via Removable Drives-->
|
||||
<string name="removable_drive_menu_title">রিমুভেবল ড্রাইভের মাধ্যমে সংযোগ করুন</string>
|
||||
<string name="removable_drive_intro">যদি আপনি ইন্টারনেট, Wi-Fi বা Bluetooth এর মাধ্যমে আপনার কন্টাক্টের সাথে সংযোগ করতে না পারেন, তাহলে Briar একটি রিমুভেবল ড্রাইভ যেমন পেনড্রাইভ বা মেমোরি কার্ডের মাধ্যমে বার্তা ট্রান্সফার করতে পারে।</string>
|
||||
<string name="removable_drive_explanation">যদি আপনি ইন্টারনেট, Wi-Fi বা Bluetooth এর মাধ্যমে আপনার কন্টাক্টের সাথে সংযোগ করতে না পারেন, তাহলে Briar একটি রিমুভেবল ড্রাইভ যেমন পেনড্রাইভ বা মেমোরি কার্ডের মাধ্যমে বার্তা ট্রান্সফার করতে পারে।\n\nযখন আপনি \"ডাটা পাঠান\" বোতামটি ব্যবহার করবেন, তখন কন্টাক্টের কাছে পাঠানোর জন্য যদি কোন কোনো ডাটা থাকে তবে তা রিমুভেবল ড্রাইভে কপি করা হবে। এর মধ্যে ব্যক্তিগত বার্তা, অ্যাটাচমেন্ট, ব্লগ, ফোরাম এবং ব্যক্তিগত গ্রুপ অন্তর্ভুক্ত থাকবে।\n\nএগুলো রিমুভেবল ড্রাইভে কপি হওয়ার আগে এনক্রিপ্ট করা হবে।\n\nযখন আপনার কন্টাক্ট রিমুভেবল ড্রাইভটি পাবে, তারা \"ডাটা গ্রহণ করুন\" বোতামটি ব্যবহার করে Briar-এ বার্তাগুলি ইমপোর্ট করতে পারবে।</string>
|
||||
<string name="removable_drive_title_send">ডাটা পাঠান</string>
|
||||
<string name="removable_drive_title_receive">ডাটা গ্রহণ করুন</string>
|
||||
<string name="removable_drive_send_intro">নিচের বোতামে ট্যাপ করুন একটি নতুন ফাইল তৈরি করতে যেখানে এনক্রিপ্ট করা বার্তাগুলি থাকবে। আপনি ফাইলটি কোথায় সংরক্ষণ করবেন তা নির্বাচন করতে পারবেন।\n\nযদি আপনি ফাইলটি একটি রিমুভেবল ড্রাইভে সংরক্ষণ করতে চান, সেটি এখন প্রবেশ করান।</string>
|
||||
<string name="removable_drive_send_no_data">বর্তমানে এই কন্টাক্টের জন্য পাঠানোর মত কোনো বার্তা নেই।</string>
|
||||
<string name="removable_drive_send_not_supported">এই কন্টাক্ট একটি পুরোনো ভার্সনের Briar অথবা একটি পুরোনো ডিভাইস ব্যবহার করছেন যা এই ফিচারটি সমর্থন করে না।</string>
|
||||
<string name="removable_drive_send_button">এক্সপোর্ট করার জন্য ফাইল নির্বাচন করুন</string>
|
||||
<string name="removable_drive_ongoing">চলমান কাজ শেষ হওয়া অব্দি অপেক্ষা করুন</string>
|
||||
<string name="removable_drive_receive_intro">আপনার কন্টাক্ট যে ফাইলটি আপনাকে পাঠিয়েছে তা নির্বাচন করতে নীচের বোতামে ট্যাপ করুন। \n\nযদি ফাইলটি একটি রিমুভেবল ড্রাইভে থাকে, তাহলে এখন ড্রাইভটি সংযুক্ত করুন।</string>
|
||||
<string name="removable_drive_receive_button">ইমপোর্ট করার জন্য ফাইল নির্বাচন করুন</string>
|
||||
<string name="removable_drive_success_send_title">এক্সপোর্ট সফল হয়েছে</string>
|
||||
<string name="removable_drive_success_send_text">ডেটা সফলভাবে এক্সপোর্ট করা হয়েছে। এখন আপনার কাছে ২৮ দিন সময় রয়েছে ফাইলটি আপনার কন্টাক্টের নিকট পাঠাতে।\n\nযদি ফাইলটি একটি রিমুভেবল ড্রাইভে থাকে, তবে এটি আনপ্লাগ করার আগে স্ট্যাটাস বার থেকে ড্রাইভটি ইজেক্ট করার জন্য নোটিফিকেশন ব্যবহার করুন।</string>
|
||||
<string name="removable_drive_success_receive_title">ইমপোর্ট সফল হয়েছে</string>
|
||||
<string name="removable_drive_success_receive_text">এই ফাইলে থাকা সমস্ত এনক্রিপ্টেড বার্তা গ্রহণ করা হয়েছে।</string>
|
||||
<string name="removable_drive_error_send_title">ডাটা এক্সপোর্ট করতে সমস্যা হয়েছে</string>
|
||||
<string name="removable_drive_error_send_text">ফাইলে ডেটা লেখার সময় একটি সমস্যা হয়েছে।\n\nযদি আপনি একটি রিমুভেবল ড্রাইভ ব্যবহার করেন, নিশ্চিত করুন যে এটি সঠিকভাবে লাগানো হয়েছে এবং আবার চেষ্টা করুন। \n\nযদি ত্রুটি অব্যাহত থাকে, দয়া করে Briar টিমকে সমস্যাটি জানাতে প্রতিক্রিয়া পাঠান।</string>
|
||||
<string name="removable_drive_error_receive_title">ডাটা ইমপোর্ট করতে সমস্যা হয়েছে</string>
|
||||
<string name="removable_drive_error_receive_text">নির্বাচিত ফাইলটি Briar চিহ্নিত করতে পারছে না।\n\nদয়া করে নিশ্চিত করুন যে আপনি সঠিক ফাইলটি নির্বাচন করেছেন।\n\nযদি আপনার যোগাযোগকারী ব্যক্তি ২৮ দিনের বেশি আগে ফাইলটি তৈরি করে থাকেন, তবে Briar তা চিহ্নিত করতে পারবে না।</string>
|
||||
<!--Screenshots-->
|
||||
<!--This is a name to be used in screenshots. Feel free to change it to a local name.-->
|
||||
<string name="screenshot_alice">আরশি</string>
|
||||
<!--This is a name to be used in screenshots. Feel free to change it to a local name.-->
|
||||
<string name="screenshot_bob">আরিবা</string>
|
||||
<!--This is a name to be used in screenshots. Feel free to change it to a local name.-->
|
||||
<string name="screenshot_carol">রুবা</string>
|
||||
<!--This is a message to be used in screenshots. Please use the same translation for Bob!-->
|
||||
<string name="screenshot_message_1">হাই বব!</string>
|
||||
<!--This is a message to be used in screenshots. Please use the same translation for Alice!-->
|
||||
<string name="screenshot_message_2">হাই অ্যালিস! Briar সম্পর্কে আমাকে বলার জন্য ধন্যবাদ!</string>
|
||||
<!--This is a message to be used in screenshots.-->
|
||||
<string name="screenshot_message_3">সমস্যা নেই, আশা করি আপনি এটি পছন্দ করেন 😀</string>
|
||||
</resources>
|
||||
@@ -13,6 +13,8 @@
|
||||
<string name="confirm_password">Potvrďte své heslo</string>
|
||||
<string name="name_too_long">Jméno je příliš dlouhé</string>
|
||||
<string name="password_too_weak">Heslo je příliš slabé</string>
|
||||
<string name="password_quite_strong">Heslo není špatné</string>
|
||||
<string name="password_strong">Heslo je silné</string>
|
||||
<string name="passwords_do_not_match">Zadaná hesla se neshodují</string>
|
||||
<string name="create_account_button">Vytvořit účet</string>
|
||||
<string name="more_info">Další informace</string>
|
||||
@@ -35,7 +37,9 @@
|
||||
<string name="try_again">Zadali jste špatné heslo, zkuste to znovu</string>
|
||||
<string name="dialog_title_cannot_check_password">Nepodařilo se zkontrolovat heslo</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar nemůže zkontrolovat vaše heslo. Zkuste tento problém vyřešit restartováním zařízení.</string>
|
||||
<string name="sign_in_title">Přihlásit do Briaru</string>
|
||||
<string name="sign_in_button">Přihlásit se</string>
|
||||
<string name="forgotten_password">Zapomněli jste své heslo?</string>
|
||||
<string name="dialog_title_lost_password">Ztracené heslo</string>
|
||||
<string name="dialog_message_lost_password">Váš Briar účet je šifrován a uložen ve vašem zařízení, nikoli v cloudu, z tohoto důvodu není možné obnovit Vaše heslo. Chcete odstranit svůj účet a začít znovu?\n\nUpozornění: Vaše identita, kontakty a zprávy budou permanentně ztraceny.</string>
|
||||
<string name="startup_failed_activity_title">Spuštění Briar selhalo.</string>
|
||||
|
||||
@@ -666,104 +666,143 @@ Toca el icono + para importar uno</string>
|
||||
<string name="choose_ringtone_title">Elige tono de llamada</string>
|
||||
<string name="cannot_load_ringtone">No se puede cargar el tono de llamada</string>
|
||||
<!--Mailbox-->
|
||||
<string name="mailbox_settings_title">Buzón</string>
|
||||
<string name="mailbox_setup_title">Configuración del buzón</string>
|
||||
<string name="mailbox_setup_intro">Un buzón permite que tus contactos te envíen mensajes mientras estás desconectado. El buzón recibirá tus mensajes y los almacenará hasta que te conectes.\n
|
||||
\nPuedes instalar la aplicación Briar Mailbox en un dispositivo de repuesto. Mantenlo conectado a la corriente y al Wi-Fi para que esté siempre en línea.</string>
|
||||
<string name="mailbox_setup_download">Primero, instala la aplicación Mailbox en otro dispositivo buscando \"Briar Mailbox\" en Google Play o donde descargaste Briar.\n
|
||||
\nLuego, vincula tu buzón con Briar escaneando el código QR mostrado por la aplicación del buzón.</string>
|
||||
<string name="mailbox_settings_title">Buzón de correo</string>
|
||||
<string name="mailbox_setup_title">Configuración del buzón de correo</string>
|
||||
<string name="mailbox_setup_intro">Un buzón de correo permite que tus contactos te envíen mensajes mientras estás desconectado. El buzón de correo recibirá tus mensajes y los almacenará hasta que te conectes.
|
||||
|
||||
|
||||
Puedes instalar la aplicación Briar Mailbox en un dispositivo de repuesto. Mantenlo conectado a la corriente y al Wi-Fi para que esté siempre en línea.</string>
|
||||
<string name="mailbox_setup_download">Primero, instala la aplicación buzón de correo en otro dispositivo buscando \"Briar Mailbox\" en Google Play o donde descargaste Briar.
|
||||
|
||||
|
||||
Luego, vincula tu buzón de correo con Briar escaneando el código QR mostrado por la aplicación del buzón.</string>
|
||||
<string name="mailbox_setup_download_link">Compartir enlace de descarga</string>
|
||||
<string name="mailbox_setup_button_scan">Escanear código QR del buzón</string>
|
||||
<string name="permission_camera_qr_denied_body">Has denegado el acceso a la cámara, pero escanear un código QR requiere usar la cámara.\n\nPor favor, considera otorgar el acceso.</string>
|
||||
<string name="mailbox_setup_connecting">Conectando con tu buzón...</string>
|
||||
<string name="mailbox_setup_button_scan">Escanear código QR del buzón de correo</string>
|
||||
<string name="permission_camera_qr_denied_body">Has denegado el acceso a la cámara, pero escanear un código QR requiere usar la cámara.
|
||||
|
||||
Por favor, considera otorgar el acceso.</string>
|
||||
<string name="mailbox_setup_connecting">Conectando con tu buzón de correo...</string>
|
||||
<!--This string is shown when connecting to a Mailbox for the first time. The placeholder will be replaced with a duration, e.g. "2 minutes".-->
|
||||
<string name="mailbox_setup_connecting_info">Esto puede tomar hasta %1s</string>
|
||||
<string name="mailbox_qr_code_too_old">El código QR que has escaneado proviene de una versión anterior de Briar Mailbox.\n\nPor favor, actualiza Briar Mailbox a la última versión y luego inténtalo de nuevo.</string>
|
||||
<string name="mailbox_qr_code_too_new">El código QR que has escaneado proviene de una versión más nueva de Briar Mailbox.\n\nPor favor, actualiza Briar a la última versión y luego inténtalo de nuevo.</string>
|
||||
<string name="contact_qr_code_for_mailbox">El código QR que has escaneado es para agregar un contacto en Briar.\n\nSi deseas agregar un contacto, por favor ve a la lista de contactos y toca el ícono +.</string>
|
||||
<string name="mailbox_setup_qr_code_wrong_description">El código QR que has escaneado no proviene de Briar Mailbox.\n\nPor favor, abre la aplicación Briar Mailbox en tu dispositivo de buzón y escanea el código QR que presenta.</string>
|
||||
<string name="mailbox_setup_already_paired_title">Buzón ya vinculado</string>
|
||||
<string name="mailbox_setup_already_paired_description">Desvincula el buzón en tu otro dispositivo e inténtalo de nuevo.</string>
|
||||
<string name="mailbox_qr_code_too_old">El código QR que has escaneado proviene de una versión anterior de Briar Mailbox.
|
||||
|
||||
Por favor, actualiza Briar Mailbox a la última versión y luego inténtalo de nuevo.</string>
|
||||
<string name="mailbox_qr_code_too_new">El código QR que has escaneado proviene de una versión más nueva de Briar Mailbox.
|
||||
|
||||
Por favor, actualiza Briar a la última versión y luego inténtalo de nuevo.</string>
|
||||
<string name="contact_qr_code_for_mailbox">El código QR que has escaneado es para agregar un contacto en Briar.
|
||||
|
||||
Si deseas agregar un contacto, por favor ve a la lista de contactos y toca el ícono +.</string>
|
||||
<string name="mailbox_setup_qr_code_wrong_description">El código QR que has escaneado no proviene de Briar Mailbox.
|
||||
|
||||
Por favor, abre la aplicación Briar Mailbox en tu dispositivo de buzón de correo y escanea el código QR que presenta.</string>
|
||||
<string name="mailbox_setup_already_paired_title">Buzón de correo ya vinculado</string>
|
||||
<string name="mailbox_setup_already_paired_description">Desvincula el buzón de correo en tu otro dispositivo e inténtalo de nuevo.</string>
|
||||
<string name="mailbox_setup_io_error_title">No se pudo conectar</string>
|
||||
<string name="mailbox_setup_io_error_description">Asegúrate de que ambos dispositivos estén conectados a Internet e inténtalo de nuevo.</string>
|
||||
<string name="mailbox_setup_assertion_error_title">Error del buzón</string>
|
||||
<string name="mailbox_setup_assertion_error_title">Error del buzón de correo</string>
|
||||
<string name="mailbox_setup_assertion_error_description">Por favor, envía comentarios (con datos anónimos) a través de la aplicación Briar si el problema persiste.</string>
|
||||
<string name="mailbox_setup_camera_error_description">No se pudo acceder a la cámara. Inténtalo de nuevo, quizás después de reiniciar el dispositivo.</string>
|
||||
<string name="mailbox_setup_paired_title">Conectado</string>
|
||||
<string name="mailbox_setup_paired_description">Tu buzón ha sido vinculado correctamente con Briar.\n
|
||||
\nMantén tu buzón conectado a la corriente y al Wi-Fi para que esté siempre en línea.</string>
|
||||
<string name="mailbox_setup_paired_description">Tu buzón de correo ha sido vinculado correctamente con Briar.
|
||||
|
||||
|
||||
Mantén tu buzón de correo conectado a la corriente y al Wi-Fi para que esté siempre en línea.</string>
|
||||
<string name="tor_offline_title">Desconectado</string>
|
||||
<string name="tor_offline_description">Asegúrate de que este dispositivo esté en línea y que las conexiones a Internet estén permitidas.\n
|
||||
\nLuego, espera a que el ícono del globo en la pantalla de configuración de conexiones se vuelva verde.</string>
|
||||
<string name="tor_offline_description">Asegúrate de que este dispositivo esté en línea y que las conexiones a Internet estén permitidas.
|
||||
|
||||
|
||||
Luego, espera a que el ícono del globo en la pantalla de configuración de conexiones se vuelva verde.</string>
|
||||
<string name="tor_offline_button_check">Comprobar la configuración de la conexión</string>
|
||||
<string name="mailbox_status_title">Estado del buzón</string>
|
||||
<string name="mailbox_status_connected_title">El buzón está funcionando</string>
|
||||
<string name="mailbox_status_problem_title">Briar tiene problemas para conectarse al buzón</string>
|
||||
<string name="mailbox_status_failure_title">El buzón no está disponible</string>
|
||||
<string name="mailbox_status_title">Estado del buzón de correo</string>
|
||||
<string name="mailbox_status_connected_title">El buzón de correo está funcionando</string>
|
||||
<string name="mailbox_status_problem_title">Briar tiene problemas para conectarse al buzón de correo</string>
|
||||
<string name="mailbox_status_failure_title">El buzón de correo no está disponible</string>
|
||||
<string name="mailbox_status_app_too_old_title">Briar está desactualizado</string>
|
||||
<string name="mailbox_status_app_too_old_message">Actualiza Briar a la última versión de la aplicación e inténtalo de nuevo.</string>
|
||||
<string name="mailbox_status_mailbox_too_old_title">El buzón está desactualizado</string>
|
||||
<string name="mailbox_status_mailbox_too_old_message">Actualiza tu buzón a la última versión de la aplicación y vuelve a intentarlo.</string>
|
||||
<string name="mailbox_status_mailbox_too_old_title">El buzón de correo está desactualizado</string>
|
||||
<string name="mailbox_status_mailbox_too_old_message">Actualiza tu buzón de correo a la última versión de la aplicación y vuelve a intentarlo.</string>
|
||||
<string name="mailbox_status_check_button">Verificar conexión</string>
|
||||
<!--Example for string substitution: Last connection: 3min ago-->
|
||||
<string name="mailbox_status_connected_info">Última conexión: %s</string>
|
||||
<!--Indicates that there never was a connection to the mailbox. Last connection: Never-->
|
||||
<string name="mailbox_status_connected_never">Nunca</string>
|
||||
<string name="mailbox_status_unlink_button">Desvincular</string>
|
||||
<string name="mailbox_status_unlink_dialog_title">¿Desvincular el buzón?</string>
|
||||
<string name="mailbox_status_unlink_dialog_question">¿Estás seguro de que quieres desvincular tu buzón?</string>
|
||||
<string name="mailbox_status_unlink_dialog_warning">Si desvinculas tu buzón, no podrás recibir mensajes mientras Briar esté desconectado.</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_title">Tu buzón ha sido desvinculado</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_message">La próxima vez que tengas acceso a tu dispositivo de buzón, por favor abre la aplicación del buzón y toca el botón \"Desvincular\" para completar el proceso.\n\nSi ya no tienes acceso a tu dispositivo de buzón, no te preocupes. Tus datos están encriptados, por lo que permanecerán seguros aunque no completes el proceso.</string>
|
||||
<string name="mailbox_status_unlink_success">Tu buzón ha sido desvinculado</string>
|
||||
<string name="mailbox_status_unlink_dialog_title">¿Desvincular el buzón de correo?</string>
|
||||
<string name="mailbox_status_unlink_dialog_question">¿Estás seguro de que quieres desvincular tu buzón de correo?</string>
|
||||
<string name="mailbox_status_unlink_dialog_warning">Si desvinculas tu buzón de correo, no podrás recibir mensajes mientras Briar esté desconectado.</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_title">Tu buzón de correo ha sido desvinculado</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_message">La próxima vez que tengas acceso a tu dispositivo de buzón de correo, por favor abre la aplicación del buzón de correo y toca el botón \"Desvincular\" para completar el proceso.
|
||||
|
||||
Si ya no tienes acceso a tu dispositivo de buzón de correo, no te preocupes. Tus datos están cifrados, por lo que permanecerán seguros aunque no completes el proceso.</string>
|
||||
<string name="mailbox_status_unlink_success">Tu buzón de correo ha sido desvinculado</string>
|
||||
<string name="mailbox_error_notification_channel_title">Problema con Briar Mailbox</string>
|
||||
<string name="mailbox_error_notification_title">Briar Mailbox no está disponible</string>
|
||||
<string name="mailbox_error_notification_text">Toca para solucionar el problema.</string>
|
||||
<string name="mailbox_error_wizard_button">Solucionar problema</string>
|
||||
<string name="mailbox_error_wizard_title">Asistente de solución de problemas del buzón</string>
|
||||
<string name="mailbox_error_wizard_question1">¿Tienes acceso a tu dispositivo de buzón?</string>
|
||||
<string name="mailbox_error_wizard_title">Asistente de solución de problemas del buzón de correo</string>
|
||||
<string name="mailbox_error_wizard_question1">¿Tienes acceso a tu dispositivo de buzón de correo?</string>
|
||||
<string name="mailbox_error_wizard_answer1">Sí, tengo acceso a él ahora mismo.</string>
|
||||
<string name="mailbox_error_wizard_answer2">No ahora, pero podré acceder a él más tarde.</string>
|
||||
<string name="mailbox_error_wizard_answer3">No, ya no tengo acceso a él.</string>
|
||||
<string name="mailbox_error_wizard_info1_1">Verifica que el dispositivo del buzón esté encendido y conectado a Internet.</string>
|
||||
<string name="mailbox_error_wizard_question1_1">Abre la aplicación del buzón. ¿Qué ves?</string>
|
||||
<string name="mailbox_error_wizard_answer1_1">Veo instrucciones para configurar el buzón</string>
|
||||
<string name="mailbox_error_wizard_info1_1">Verifica que el dispositivo del buzón de correo esté encendido y conectado a Internet.</string>
|
||||
<string name="mailbox_error_wizard_question1_1">Abre la aplicación del buzón de correo. ¿Qué ves?</string>
|
||||
<string name="mailbox_error_wizard_answer1_1">Veo instrucciones para configurar el buzón de correo</string>
|
||||
<string name="mailbox_error_wizard_answer1_2">Veo un código QR</string>
|
||||
<string name="mailbox_error_wizard_answer1_3">Veo \"El buzón está en funcionamiento\"</string>
|
||||
<string name="mailbox_error_wizard_answer1_3">Veo \"El buzón de correo está en funcionamiento\"</string>
|
||||
<string name="mailbox_error_wizard_answer1_4">Veo \"Dispositivo sin conexión\"</string>
|
||||
<string name="mailbox_error_wizard_info1_1_1">Por favor, desvincula tu buzón usando el botón de abajo, luego sigue las instrucciones en el dispositivo del buzón para vincularlo nuevamente.</string>
|
||||
<string name="mailbox_error_wizard_info_1_1_2">Por favor, desvincula tu buzón usando el botón de abajo, y luego escanea el código QR para vincularlo nuevamente.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_3">Por favor, utilice el botón de abajo para comprobar la conexión entre Briar y el buzón.\n\n
|
||||
Si la conexión vuelve a fallar:\n
|
||||
\u2022 Comprueba que las aplicaciones del buzón y de Briar están actualizadas a la última versión.\n
|
||||
\u2022 Reinicie sus dispositivos de buzón y Briar e inténtelo de nuevo.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_4">Verifica que el dispositivo del Buzón esté correctamente conectado a Internet.\n\nVerifique que el reloj del dispositivo del buzón muestre la hora, fecha y zona horaria correctas.\n\nVerifica que las aplicaciones del buzón y Briar estén actualizadas a la última versión.\n\nReinicia tus dispositivos del buzón y Briar e inténtalo de nuevo.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_1">Por favor, desvincula tu buzón de correo usando el botón de abajo, luego sigue las instrucciones en el dispositivo del buzón de correo para vincularlo nuevamente.</string>
|
||||
<string name="mailbox_error_wizard_info_1_1_2">Por favor, desvincula tu buzón de correo usando el botón de abajo, y luego escanea el código QR para vincularlo nuevamente.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_3">Por favor, usa el botón de abajo para verificar la conexión entre Briar y el buzón de correo.
|
||||
|
||||
Si la conexión falla de nuevo:
|
||||
|
||||
• Verifica que las aplicaciones de buzón de correo y Briar estén actualizadas a la última versión.
|
||||
|
||||
• Reinicia tus dispositivos de buzón de correo y Briar y vuelve a intentarlo.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_4">Verifica que el dispositivo del buzón de correo esté correctamente conectado a Internet.
|
||||
|
||||
Verifique que el reloj del dispositivo del buzón de correo muestre la hora, fecha y zona horaria correctas.
|
||||
|
||||
Verifica que las aplicaciones del buzón de correo y Briar estén actualizadas a la última versión.
|
||||
|
||||
Reinicia tus dispositivos del buzón de correo y Briar e inténtalo de nuevo.</string>
|
||||
<string name="mailbox_error_wizard_info2">Por favor, vuelve a esta pantalla cuando tengas acceso al dispositivo.</string>
|
||||
<string name="mailbox_error_wizard_info3">Por favor, desvincula tu buzón usando el botón de abajo.\n\nDespués de desvincular tu antiguo buzón, puedes configurar un nuevo buzón en cualquier momento.</string>
|
||||
<string name="mailbox_error_wizard_info3">Por favor, desvincula tu buzón de correo usando el botón de abajo.
|
||||
|
||||
Después de desvincular tu antiguo buzón de correo, puedes configurar un nuevo buzón de correo en cualquier momento.</string>
|
||||
<!--About-->
|
||||
<string name="about_title">Acerca de nosotros</string>
|
||||
<string name="briar_version">Versión Briar: %s</string>
|
||||
<string name="tor_version">Versión Tor:%s</string>
|
||||
<string name="links">Enlaces</string>
|
||||
<string name="briar_website">\u2022 <a href="">Sitio Web</a></string>
|
||||
<string name="briar_source_code">\u2022 <a href="">Código fuente</a></string>
|
||||
<string name="briar_changelog">\u2022 <a href="">Registro de cambios</a></string>
|
||||
<string name="briar_privacy_policy">\u2022 <a href="">Política de Privacidad</a></string>
|
||||
<string name="briar_website">• <a href="">Sitio Web</a></string>
|
||||
<string name="briar_source_code">• <a href="">Código fuente</a></string>
|
||||
<string name="briar_changelog">• <a href="">Registro de cambios</a></string>
|
||||
<string name="briar_privacy_policy">• <a href="">Política de Privacidad</a></string>
|
||||
<!--Here translators can add their names or Transifex usernames(eg "Thanks to all the contributors at the Localization Lab, especially Tom, Matthew and Jerry")-->
|
||||
<string name="translator_thanks">Gracias a todos los colaboradores de Localization Lab.</string>
|
||||
<!--Conversation Settings-->
|
||||
<string name="disappearing_messages_title">Mensajes que desaparecen</string>
|
||||
<string name="disappearing_messages_explanation_long">Activar este ajuste hará que los nuevos
|
||||
mensajes en esta conversación desaparezcan automáticamente después de 7\u00A0días.
|
||||
\n\nLa cuenta regresiva para la copia del mensaje del emisor empieza después de que haya sido entregado.
|
||||
|
||||
|
||||
La cuenta regresiva para la copia del mensaje del emisor empieza después de que haya sido entregado.
|
||||
La cuenta regresiva empieza para el receptor después de que haya leído el mensaje.
|
||||
\n\nLos mensajes con caducidad están marcados con el ícono de una bomba.
|
||||
\n\nTen presente que los receptores aún pueden hacer copias de los mensajes que envías.
|
||||
\n\nSi cambias este ajuste, se aplicará a tus nuevos mensajes inmediatamente, y a los
|
||||
|
||||
|
||||
Los mensajes con caducidad están marcados con el ícono de una bomba.
|
||||
|
||||
|
||||
Ten presente que los receptores aún pueden hacer copias de los mensajes que envías.
|
||||
|
||||
|
||||
Si cambias este ajuste, se aplicará a tus nuevos mensajes inmediatamente, y a los
|
||||
mensajes de tus contactos una vez que reciban tu próximo mensaje.
|
||||
Tu contacto también puede cambiar este ajuste para ambos.</string>
|
||||
<string name="learn_more">Aprende más</string>
|
||||
<string name="disappearing_messages_summary">Haz que futuros mensajes en esta conversación desaparezcan automáticamente después de 7\u00A0days.</string>
|
||||
<string name="disappearing_messages_summary">Haz que los futuros mensajes en esta conversación desaparezcan automáticamente después de 7 días.</string>
|
||||
<!--Settings Actions-->
|
||||
<string name="pref_category_actions">Acciones</string>
|
||||
<string name="share_app_link">Compartir enlace de descarga</string>
|
||||
@@ -809,8 +848,14 @@ Toca el icono + para importar uno</string>
|
||||
<string name="progress_title_logout">Saliendo de Briar…</string>
|
||||
<!--Screen Filters & Tapjacking-->
|
||||
<string name="screen_filter_title">Superposición de pantalla detectada</string>
|
||||
<string name="screen_filter_body">Otra aplicación está superponiéndose a Briar. Para proteger tu seguridad, Briar no responderá a toques cuando otra aplicación se esté superponiendo.\n\nLas siguientes aplicaciones podrían estar superponiéndose:\n\n%1$s</string>
|
||||
<string name="screen_filter_body_api_30">Otra aplicación está superponiéndose a Briar. Para proteger tu seguridad, Briar no responderá a toques cuando otra aplicación se esté superponiendo.\n\nRevisa las aplicaciones a continuación para encontrar la aplicación responsable.</string>
|
||||
<string name="screen_filter_body">Otra aplicación está superponiéndose a Briar. Para proteger tu seguridad, Briar no responderá a toques cuando otra aplicación se esté superponiendo.
|
||||
|
||||
Las siguientes aplicaciones podrían estar superponiéndose:
|
||||
|
||||
%1$s</string>
|
||||
<string name="screen_filter_body_api_30">Otra aplicación está superponiéndose a Briar. Para proteger tu seguridad, Briar no responderá a toques cuando otra aplicación se esté superponiendo.
|
||||
|
||||
Revisa las aplicaciones a continuación para encontrar la aplicación responsable.</string>
|
||||
<string name="screen_filter_allow">Permitir que estas aplicaciones dibujen en la parte superior</string>
|
||||
<string name="screen_filter_review_apps">Revisar aplicaciones</string>
|
||||
<!--Permission Requests-->
|
||||
@@ -818,20 +863,34 @@ Toca el icono + para importar uno</string>
|
||||
<string name="permission_camera_request_body">Para escanear el código QR, Briar necesita acceso a la cámara.</string>
|
||||
<string name="permission_location_title">Permiso de ubicación</string>
|
||||
<string name="permission_nearby_devices_title">Permiso para dispositivos cercanos</string>
|
||||
<string name="permission_location_request_body">Para descubrir dispositivos Bluetooth, Briar necesita permiso para acceder a tu ubicación.\n\nBriar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_location_request_body">Para descubrir dispositivos Bluetooth, Briar necesita permiso para acceder a tu ubicación.
|
||||
|
||||
Briar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_camera_location_title">Cámara y ubicación</string>
|
||||
<string name="permission_camera_location_request_body">Para escanear el código QR, Briar necesita acceso a la cámara.\n\nPara descubrir dispositivos Bluetooth, Briar necesita permiso para acceder a su ubicación.\n\nBriar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_camera_location_request_body">Para escanear el código QR, Briar necesita acceso a la cámara.
|
||||
|
||||
Para descubrir dispositivos Bluetooth, Briar necesita permiso para acceder a su ubicación.
|
||||
|
||||
Briar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_camera_bluetooth_title">Cámara y dispositivos cercanos</string>
|
||||
<string name="permission_camera_bluetooth_request_body">Para escanear el código QR, Briar necesita acceso a la cámara.\n\nPara descubrir dispositivos Bluetooth, Briar necesita permiso para encontrar y conectarse a dispositivos cercanos.</string>
|
||||
<string name="permission_camera_denied_body">Has denegado el acceso a la cámara, pero agregar contactos requiere usar la cámara.\n\nPor favor, considera otorgar acceso.</string>
|
||||
<string name="permission_location_denied_body">Has denegado el acceso a tu ubicación, pero Briar necesita este permiso para descubrir dispositivos Bluetooth.\n\nPor favor, considera otorgar acceso.</string>
|
||||
<string name="permission_camera_bluetooth_request_body">Para escanear el código QR, Briar necesita acceso a la cámara.
|
||||
|
||||
Para descubrir dispositivos Bluetooth, Briar necesita permiso para encontrar y conectarse a dispositivos cercanos.</string>
|
||||
<string name="permission_camera_denied_body">Has denegado el acceso a la cámara, pero agregar contactos requiere usar la cámara.
|
||||
|
||||
Por favor, considera otorgar acceso.</string>
|
||||
<string name="permission_location_denied_body">Has denegado el acceso a tu ubicación, pero Briar necesita este permiso para descubrir dispositivos Bluetooth.
|
||||
|
||||
Por favor, considera otorgar acceso.</string>
|
||||
<string name="permission_location_setting_title">Herramientas de localización</string>
|
||||
<string name="permission_location_setting_body">La configuración de ubicación de tu dispositivo debe estar activada para encontrar otros dispositivos vía Bluetooth. Por favor, habilita la ubicación para continuar. Luego puedes desactivarla nuevamente.</string>
|
||||
<string name="permission_location_setting_hotspot_body">La configuración de ubicación de tu dispositivo debe estar activada para crear un punto de acceso Wi-Fi. Por favor, habilita la ubicación para continuar. Luego puedes desactivarla nuevamente.</string>
|
||||
<string name="permission_location_setting_button">Habilitar ubicación</string>
|
||||
<string name="permission_bluetooth_title">Permiso para dispositivos cercanos</string>
|
||||
<string name="permission_bluetooth_body">Para utilizar la comunicación Bluetooth, Briar necesita permiso para encontrar dispositivos cercanos y conectarse a ellos.</string>
|
||||
<string name="permission_bluetooth_denied_body">Ha denegado el acceso a los dispositivos cercanos, pero Briar necesita este permiso para usar Bluetooth.\n\nConsidere conceder acceso.</string>
|
||||
<string name="permission_bluetooth_denied_body">Ha denegado el acceso a los dispositivos cercanos, pero Briar necesita este permiso para usar Bluetooth.
|
||||
|
||||
Considere conceder acceso.</string>
|
||||
<string name="qr_code">Código QR</string>
|
||||
<string name="show_qr_code_fullscreen">Mostrar código QR en pantalla completa</string>
|
||||
<!--App Locking-->
|
||||
@@ -842,23 +901,39 @@ Toca el icono + para importar uno</string>
|
||||
<string name="lock_is_locked">Briar está bloqueado</string>
|
||||
<string name="lock_tap_to_unlock">Toca para desbloquear</string>
|
||||
<!--Connections Screen-->
|
||||
<string name="transports_help_text">Briar puede conectarse a tus contactos a través de Internet, Wi-Fi o Bluetooth.\n\nTodas las conexiones a Internet pasan por la red Tor para mayor privacidad.\n\nSi un contacto puede ser alcanzado por varios métodos, Briar los utiliza en paralelo.</string>
|
||||
<string name="transports_help_text">Briar puede conectarse a tus contactos a través de Internet, Wi-Fi o Bluetooth.
|
||||
|
||||
Todas las conexiones a Internet pasan por la red Tor para mayor privacidad.
|
||||
|
||||
Si un contacto puede ser alcanzado por varios métodos, Briar los utiliza en paralelo.</string>
|
||||
<!--Share app offline-->
|
||||
<string name="hotspot_title">Comparte esta aplicación sin conexión</string>
|
||||
<string name="hotspot_intro">Comparte esta aplicación con alguien cercano sin conexión a Internet utilizando el Wi-Fi de tu teléfono.
|
||||
\n\nTu teléfono iniciará un punto de acceso Wi-Fi. Las personas cercanas podrán conectarse al punto de acceso y descargar la aplicación Briar desde tu teléfono.</string>
|
||||
|
||||
|
||||
Tu teléfono iniciará un punto de acceso Wi-Fi. Las personas cercanas podrán conectarse al punto de acceso y descargar la aplicación Briar desde tu teléfono.</string>
|
||||
<string name="hotspot_button_start_sharing">Iniciar punto de acceso</string>
|
||||
<string name="hotspot_button_stop_sharing">Detener punto de acceso</string>
|
||||
<string name="hotspot_progress_text_start">Configurando punto de acceso…</string>
|
||||
<string name="hotspot_notification_channel_title">Punto de acceso Wi-Fi</string>
|
||||
<string name="hotspot_notification_title">Compartir Briar sin conexión</string>
|
||||
<string name="hotspot_button_connected">Siguiente</string>
|
||||
<string name="permission_hotspot_location_request_body">Para crear un punto de acceso Wi-Fi, Briar necesita permiso para acceder a tu ubicación.\n\nBriar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_hotspot_location_request_precise_body">Para crear un punto de acceso Wi-Fi, Briar necesita permiso para acceder a tu ubicación precisa.\n\nBriar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_hotspot_location_denied_body">Has denegado el acceso a tu ubicación, pero Briar necesita este permiso para crear un punto de acceso Wi-Fi.\n\nConsidera conceder el acceso.</string>
|
||||
<string name="permission_hotspot_location_denied_precise_body">Has denegado el acceso a tu ubicación precisa, pero Briar necesita este permiso para crear un punto de acceso Wi-Fi.\n\nConsidera conceder acceso.</string>
|
||||
<string name="permission_hotspot_location_request_body">Para crear un punto de acceso Wi-Fi, Briar necesita permiso para acceder a tu ubicación.
|
||||
|
||||
Briar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_hotspot_location_request_precise_body">Para crear un punto de acceso Wi-Fi, Briar necesita permiso para acceder a tu ubicación precisa.
|
||||
|
||||
Briar no almacena tu ubicación ni la comparte con nadie.</string>
|
||||
<string name="permission_hotspot_location_denied_body">Has denegado el acceso a tu ubicación, pero Briar necesita este permiso para crear un punto de acceso Wi-Fi.
|
||||
|
||||
Considera conceder el acceso.</string>
|
||||
<string name="permission_hotspot_location_denied_precise_body">Has denegado el acceso a tu ubicación precisa, pero Briar necesita este permiso para crear un punto de acceso Wi-Fi.
|
||||
|
||||
Considera conceder acceso.</string>
|
||||
<string name="permission_hotspot_nearby_wifi_request_body">Para crear un punto de acceso Wi-Fi, Briar necesita permiso para acceder a los dispositivos cercanos.</string>
|
||||
<string name="permission_hotspot_nearby_wifi_denied_body">Ha denegado el acceso a los dispositivos cercanos, pero Briar necesita este permiso para crear un punto de acceso Wi-Fi.\n\nConsidera conceder acceso.</string>
|
||||
<string name="permission_hotspot_nearby_wifi_denied_body">Ha denegado el acceso a los dispositivos cercanos, pero Briar necesita este permiso para crear un punto de acceso Wi-Fi.
|
||||
|
||||
Considera conceder acceso.</string>
|
||||
<string name="wifi_settings_title">Herramientas Wi-Fi</string>
|
||||
<string name="wifi_settings_request_enable_body">Para crear un punto de acceso Wi-Fi, Briar necesita usar Wi-Fi. Por favor, habilítalo.</string>
|
||||
<string name="hotspot_tab_manual">Manual</string>
|
||||
@@ -900,7 +975,9 @@ Toca el icono + para importar uno</string>
|
||||
<string name="hotspot_help_site_4">Si puedes visitar el sitio, pero no descargar la aplicación Briar, pruébalo con una aplicación de navegador web diferente.</string>
|
||||
<string name="hotspot_help_fallback_title">¿No funciona nada?</string>
|
||||
<string name="hotspot_help_fallback_intro">Puedes intentar guardar la aplicación como archivo .apk para compartirlo de cualquier otra manera. Una vez que el archivo ha sido transferido al otro dispositivo, se puede usar para instalar Briar.
|
||||
\n\nConsejo: Para compartir vía Bluetooth, puede que necesites renombrar el archivo para que termine con .zip primero.</string>
|
||||
|
||||
|
||||
Consejo: Para compartir vía Bluetooth, puede que necesites renombrar el archivo para que termine con .zip primero.</string>
|
||||
<string name="hotspot_help_fallback_button">Guardar aplicación</string>
|
||||
<!--error handling-->
|
||||
<string name="hotspot_error_intro">Algo salió mal al intentar compartir la aplicación a través de Wi-Fi:</string>
|
||||
@@ -909,28 +986,48 @@ Toca el icono + para importar uno</string>
|
||||
<string name="hotspot_error_start_callback_failed_unknown">El punto de acceso no pudo iniciarse debido a un error desconocido, motivo %d</string>
|
||||
<string name="hotspot_error_start_callback_no_group_info">El punto de acceso no pudo iniciarse: no hay información del grupo</string>
|
||||
<string name="hotspot_error_web_server_start">Error al iniciar el servidor web</string>
|
||||
<string name="hotspot_error_web_server_serve">Error al presentar el sitio web.\n\nEnvíe comentarios (con datos anónimos) a través de la aplicación Briar si el problema persiste.</string>
|
||||
<string name="hotspot_error_web_server_serve">Error al presentar el sitio web.
|
||||
|
||||
Envíe comentarios (con datos anónimos) a través de la aplicación Briar si el problema persiste.</string>
|
||||
<string name="hotspot_flag_test">Advertencia: esta aplicación se instaló con Android Studio y NO se puede instalar en otro dispositivo.</string>
|
||||
<string name="hotspot_error_framework_busy">Incapaz de iniciar el punto de acceso.\n\nSi tienes otro punto de acceso ejecutándose o estás compartiendo tu conexión de Internet vía Wi-Fi, intenta detener eso e intentar de nuevo luego.</string>
|
||||
<string name="hotspot_error_framework_busy">Incapaz de iniciar el punto de acceso.
|
||||
|
||||
Si tienes otro punto de acceso ejecutándose o estás compartiendo tu conexión de Internet vía Wi-Fi, intenta detener eso e intentar de nuevo luego.</string>
|
||||
<!--Transfer Data via Removable Drives-->
|
||||
<string name="removable_drive_menu_title">Conectar a través de Disco Removible</string>
|
||||
<string name="removable_drive_intro">Si no puedes conectarte con tu contacto a través de Internet, Wi-Fi o Bluetooth, Briar también puedes transferir mensajes en una unidad extraíble, como una memoria USB o una tarjeta SD.</string>
|
||||
<string name="removable_drive_explanation">Si no puedes conectarte con tu contacto vía Internet, Wi-Fi o Bluetooth, Briar también puede transferir mensajes en una unidad extraíble, tal como una memoria USB o tarjeta SD.\n\nCuando usas el botón \"Enviar Datos\", cualquier dato que esté esperando ser enviado al contacto se escribirá en la unidad extraíble. Esto incluye mensajes privados, adjuntos, blogs, foros y grupos privados.\n\nTodo se encriptará antes de ser escrito en la unidad extraíble.\n\nCuando tu contacto reciba la unidad extraíble, puede usar el botón \"Recibir Datos\" para importar los mensajes en Briar.</string>
|
||||
<string name="removable_drive_explanation">Si no puedes conectarte con tu contacto vía Internet, Wi-Fi o Bluetooth, Briar también puede transferir mensajes en una unidad extraíble, tal como una memoria USB o tarjeta SD.
|
||||
|
||||
Cuando usas el botón \"Enviar Datos\", cualquier dato que esté esperando ser enviado al contacto se escribirá en la unidad extraíble. Esto incluye mensajes privados, adjuntos, blogs, foros y grupos privados.
|
||||
|
||||
Todo se encriptará antes de ser escrito en la unidad extraíble.
|
||||
|
||||
Cuando tu contacto reciba la unidad extraíble, puede usar el botón \"Recibir Datos\" para importar los mensajes en Briar.</string>
|
||||
<string name="removable_drive_title_send">Enviar datos</string>
|
||||
<string name="removable_drive_title_receive">Recibir datos</string>
|
||||
<string name="removable_drive_send_intro">Pulsa el botón de abajo para crear un nuevo archivo conteniendo los mensajes cifrados. Puedes elegir dónde será guardado el archivo.\n\nSi quieres guardarlo en una unidad extraíble, inserta la unidad ahora.</string>
|
||||
<string name="removable_drive_send_intro">Pulsa el botón de abajo para crear un nuevo archivo conteniendo los mensajes cifrados. Puedes elegir dónde será guardado el archivo.
|
||||
|
||||
Si quieres guardarlo en una unidad extraíble, inserta la unidad ahora.</string>
|
||||
<string name="removable_drive_send_no_data">Actualmente no hay mensajes en espera de ser enviados a este contacto.</string>
|
||||
<string name="removable_drive_send_not_supported">Este contacto está usando una versión antigua de Briar o un dispositivo antiguo que no admite esta función.</string>
|
||||
<string name="removable_drive_send_button">Selecciona el archivo para exportar</string>
|
||||
<string name="removable_drive_ongoing">Por favor, espera a que se complete la tarea en curso</string>
|
||||
<string name="removable_drive_receive_intro">Toca el botón a continuación para elegir el archivo que te envió tu contacto.\n\nSi el archivo está en una unidad extraíble, inserta la unidad ahora.</string>
|
||||
<string name="removable_drive_receive_intro">Toca el botón a continuación para elegir el archivo que te envió tu contacto.
|
||||
|
||||
Si el archivo está en una unidad extraíble, inserta la unidad ahora.</string>
|
||||
<string name="removable_drive_receive_button">Elige el archivo para importar</string>
|
||||
<string name="removable_drive_success_send_title">Exportación exitosa</string>
|
||||
<string name="removable_drive_success_send_text">Los datos se exportaron correctamente. Ahora tienes 28 días para enviar el archivo a tu contacto.\n\nSi el archivo está en una unidad extraíble, utiliza la notificación en la barra de estado para expulsar la unidad antes de desconectarla.</string>
|
||||
<string name="removable_drive_success_send_text">Los datos se exportaron correctamente. Ahora tienes 28 días para enviar el archivo a tu contacto.
|
||||
|
||||
Si el archivo está en una unidad extraíble, utiliza la notificación en la barra de estado para expulsar la unidad antes de desconectarla.</string>
|
||||
<string name="removable_drive_success_receive_title">Importación exitosa</string>
|
||||
<string name="removable_drive_success_receive_text">Se han recibido todos los mensajes cifrados contenidos en este archivo.</string>
|
||||
<string name="removable_drive_error_send_title">Error al exportar datos</string>
|
||||
<string name="removable_drive_error_send_text">Se produjo un error al escribir datos en el archivo.\n\nSi estás usando una unidad extraíble, asegúrate de que está insertada correctamente y vuelve a intentarlo.\n\nSi el error persiste, envía comentarios para informar al equipo de Briar sobre el problema.</string>
|
||||
<string name="removable_drive_error_send_text">Se produjo un error al escribir datos en el archivo.
|
||||
|
||||
Si estás usando una unidad extraíble, asegúrate de que está insertada correctamente y vuelve a intentarlo.
|
||||
|
||||
Si el error persiste, envía comentarios para informar al equipo de Briar sobre el problema.</string>
|
||||
<string name="removable_drive_error_receive_title">Error al importar datos</string>
|
||||
<string name="removable_drive_error_receive_text">El archivo seleccionado no contiene nada que Briar pueda reconocer.
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
<string name="confirm_password">Confirma tu contraseña</string>
|
||||
<string name="name_too_long">El nombre es demasiado largo</string>
|
||||
<string name="password_too_weak">La contraseña es demasiado débil</string>
|
||||
<string name="password_quite_strong">La contraseña es correcta</string>
|
||||
<string name="password_strong">La contraseña es segura</string>
|
||||
<string name="passwords_do_not_match">Las contraseñas no coinciden</string>
|
||||
<string name="create_account_button">Crea una cuenta</string>
|
||||
<string name="more_info">Más información</string>
|
||||
@@ -35,6 +37,7 @@
|
||||
<string name="try_again">Contraseña incorrecta, inténtalo de nuevo</string>
|
||||
<string name="dialog_title_cannot_check_password">Imposible comprobar la contraseña</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar no ha podido comprobar tu contraseña. Por favor, prueba a reiniciar tu dispositivo para resolver el problema.</string>
|
||||
<string name="sign_in_title">Iniciar sesión en Briar</string>
|
||||
<string name="sign_in_button">Iniciar sesión</string>
|
||||
<string name="forgotten_password">¿Ha olvidado su contraseña?</string>
|
||||
<string name="dialog_title_lost_password">Contraseña perdida</string>
|
||||
|
||||
@@ -7,54 +7,57 @@
|
||||
<string name="setup_password_intro">Choisir un mot de passe</string>
|
||||
<string name="setup_password_explanation">Votre compte Briar est enregistré chiffré sur votre appareil et non dans le nuage. Si vous oubliez votre mot de passe ou désinstallez Briar, votre compte ne peut pas être récupéré.\n\nChoisissez un mot de passe long qui sera difficile à deviner, par exemple quatre mots au hasard ou dix lettres, chiffres et symboles au hasard.</string>
|
||||
<string name="dnkm_doze_intro">Pour recevoir des messages, Briar a besoin de rester connectée en arrière-plan.</string>
|
||||
<string name="dnkm_doze_explanation">Pour recevoir des messages, Briar a besoin de rester connectée en arrière-plan. Veuillez désactiver les optimisations de la pile afin que Briar puisse rester connectée.</string>
|
||||
<string name="dnkm_doze_explanation">Pour recevoir des messages, Briar a besoin de rester connectée en arrière-plan. Désactivez les optimisations de la pile afin que Briar puisse rester connectée.</string>
|
||||
<string name="choose_nickname">Choisissez votre pseudonyme</string>
|
||||
<string name="choose_password">Choisissez votre mot de passe</string>
|
||||
<string name="confirm_password">Confirmez votre mot de passe</string>
|
||||
<string name="name_too_long">Le nom est trop long</string>
|
||||
<string name="password_too_weak">Le mot de passe est trop faible</string>
|
||||
<string name="password_quite_strong">Le mot de passe est bon</string>
|
||||
<string name="password_strong">Le mot de passe est robuste</string>
|
||||
<string name="passwords_do_not_match">Les mots de passe ne correspondent pas</string>
|
||||
<string name="create_account_button">Créer un compte</string>
|
||||
<string name="more_info">Plus d’informations</string>
|
||||
<string name="don_t_ask_again">Ne plus demander</string>
|
||||
<string name="dnkm_huawei_protected_text">Veuillez toucher le bouton ci-dessous et vous assurer que Briar est protégée dans l’écran « Applis protégées ».</string>
|
||||
<string name="dnkm_huawei_protected_text">Touchez le bouton ci-dessous et vous assurer que Briar est protégée dans l’écran « Applis protégées ».</string>
|
||||
<string name="dnkm_huawei_protected_button">Protéger Briar</string>
|
||||
<string name="dnkm_huawei_protected_help">Si Briar n’est pas ajoutée à la liste des applis protégées, elle ne pourra pas fonctionner en arrière-plan.</string>
|
||||
<string name="dnkm_huawei_app_launch_text">Veuillez toucher le bouton ci-dessous, ouvrir l’écran « Lancement des applis » et vous assurer que « Gérer manuellement » est défini pour Briar.</string>
|
||||
<string name="dnkm_huawei_app_launch_text">Touchez le bouton ci-dessous, ouvrir l’écran « Lancement des applis » et vous assurer que « Gérer manuellement » est défini pour Briar.</string>
|
||||
<string name="dnkm_huawei_app_launch_help">Si « Gérer manuellement » n’est pas défini pour Briar dans l’écran « Lancement des applis », l’appli ne pourra pas fonctionner en arrière-plan.</string>
|
||||
<string name="dnkm_xiaomi_text">Pour fonctionner en arrière-plan, Briar doit être verrouillée à la liste des applis récentes.</string>
|
||||
<string name="dnkm_xiaomi_button">Protéger Briar</string>
|
||||
<string name="dnkm_xiaomi_help">Si Briar n’est pas verrouillée à la liste des applis récentes, elle ne pourra pas fonctionner en arrière-plan.</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_old">1. Ouvrez la liste des applis récentes (aussi appelé sélecteur d’appli)\n\n2. Balayez l’image de Briar vers le bas pour afficher l’icône de verrou\n\n3. Si le verrou n’est pas verrouillé, touchez pour le verrouiller</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_new">1. Ouvrez la liste d\'applis récentes(aussi appelée sélecteur d\'appli)\n\n2. Si Briar affiche une petite image de cadenas à coté du nom, alors vous n\'avez rien à faire\n\n3. S\'il n\'y a pas de cadenas, pressez et maintenez l\'image de Briar jusqu\'à ce que le bouton cadenas apparaisse, alors tapotez-le.</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_text">Veuillez appuyer sur le bouton dessous pour accéder aux réglages de la sécurité. Appuyer sur « Boost speed », puis appuyer « Lock apps », et assurez-vous que Briar est réglé sur « Locked ».</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_help">Si Briar n\'est pas réglé sur « Locked » dans l\'écran « Lock apps », il sera incapable de fonctionner en arrière plan.</string>
|
||||
<string name="dnkm_warning_dozed_1">Briar n\'a pas pu fonctionner en arrière-plan</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_new">1. Ouvrez la liste d’applis récentes (aussi appelée sélecteur d’appli)\n\n2. Si l’image d’un cadenas apparait à côté du nom Briar, vous n’avez rien à faire\n\n3. S’il n’y a pas de cadenas, touchez et maintenez l’image de Briar jusqu’à l’apparition du cadenas, puis touchez-le.</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_text">Touchez le bouton ci-dessous afin d’accéder aux paramètres de sécurité. Touchez « Augmenter la vitesse », puis « Verrouiller les applis » ; assurez-vous que Briar est « Verrouillée ».</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_help">Si Briar n’apparait pas « Verrouillée » sur l’écran « Verrouiller les applis », elle ne pourra s’exécuter en arrière-plan.</string>
|
||||
<string name="dnkm_warning_dozed_1">Impossible d’exécuter Briar en arrière-plan</string>
|
||||
<!--Login-->
|
||||
<string name="enter_password">Mot de passe</string>
|
||||
<string name="try_again">Le mot de passe est erroné, réessayez</string>
|
||||
<string name="dialog_title_cannot_check_password">Impossible de vérifier le mot de passe</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar ne peut pas vérifier votre mot de passe. Veuillez essayer de redémarrer votre appareil pour résoudre ce problème.</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar ne peut pas vérifier votre mot de passe. Essayez de redémarrer votre appareil pour résoudre ce problème.</string>
|
||||
<string name="sign_in_title">Se connecter à Briar</string>
|
||||
<string name="sign_in_button">Connexion</string>
|
||||
<string name="forgotten_password">Mot de passe oublié?</string>
|
||||
<string name="forgotten_password">Mot de passe oublié ?</string>
|
||||
<string name="dialog_title_lost_password">Mot de passe oublié</string>
|
||||
<string name="dialog_message_lost_password">Votre compte Briar est enregistré chiffré sur votre appareil, pas dans le nuage, et nous ne pouvons donc pas réinitialiser votre mot de passe. Voulez-vous supprimer votre compte et recommencer ?\n\nAttention : vos identités, contacts et messages seront perdus irrémédiablement.</string>
|
||||
<string name="startup_failed_activity_title">Échec de démarrage de Briar</string>
|
||||
<string name="startup_failed_clock_error">Briar n’a pas pu démarrer, car l’horloge de votre appareil n’est pas à l’heure.\n\nVeuillez mettre l’horloge de votre appareil à l’heure et réessayer.</string>
|
||||
<string name="startup_failed_db_error">Briar n’a pas pu ouvrir la base de données qui comprend votre compte, vos contacts et messages.\n\nVeuillez mettre l’appli à jour vers la version la plus récente et réessayer, ou créer un nouveau compte en choisissant « J’ai oublié mon mot de passe » à l’invite de mot de passe.</string>
|
||||
<string name="startup_failed_clock_error">Briar n’a pas pu démarrer, car l’horloge de votre appareil n’est pas à l’heure.\n\nMettez-la à l’heure et réessayez.</string>
|
||||
<string name="startup_failed_db_error">Briar n’a pas pu ouvrir la base de données qui comprend votre compte, vos contacts et messages.\n\nMettez l’appli à jour vers la version la plus récente et réessayez, ou créer un nouveau compte en choisissant « J’ai oublié mon mot de passe » à l’invite de mot de passe.</string>
|
||||
<string name="startup_failed_data_too_old_error">Votre compte a été créé avec une ancienne version de cette appli et ne peut pas être ouvert avec cette version.\n\nVous devez soit réinstaller l’ancienne version, soit créer un nouveau compte en choisissant « J’ai oublié mon mot de passe » à l’invite de mot de passe.</string>
|
||||
<string name="startup_failed_data_too_new_error">Votre compte a été créé avec une version plus récente de cette appli et ne peut être ouvert avec cette version.\n\nVeuillez mettre l’appli à jour vers la version la plus récente et réessayer.</string>
|
||||
<string name="startup_failed_service_error">Briar n’a pas pu lancer un composant essentiel.\n\nVeuillez mettre l’appli à jour vers la version la plus récente et réessayer.</string>
|
||||
<string name="startup_failed_data_too_new_error">Votre compte a été créé avec une version plus récente de cette appli et ne peut être ouvert avec cette version.\n\nMettez l’appli à jour vers la version la plus récente et réessayez.</string>
|
||||
<string name="startup_failed_service_error">Briar n’a pas pu lancer un composant essentiel.\n\nMettez l’appli à jour vers la version la plus récente et réessayez.</string>
|
||||
<plurals name="expiry_warning">
|
||||
<item quantity="one">Ceci est une version d’essai de Briar. Votre compte arrivera à expiration dans %d jour et ne peut pas être renouvelé.</item>
|
||||
<item quantity="many">Ceci est une version d’essai de Briar. Votre compte arrivera à expiration dans %d jours et ne pourra pas être renouvelé.</item>
|
||||
<item quantity="other">Ceci est une version d’essai de Briar. Votre compte arrivera à expiration dans %d jours et ne pourra pas être renouvelé.</item>
|
||||
</plurals>
|
||||
<string name="expiry_date_reached">Ce logiciel est arrivé à expiration.\nMerci de l’avoir testé !</string>
|
||||
<string name="download_briar">Pour continuer à utiliser Briar, veuillez télécharger la dernière version.</string>
|
||||
<string name="download_briar">Pour continuer à utiliser Briar, téléchargez la dernière version.</string>
|
||||
<string name="create_new_account">Vous devrez créer un nouveau compte, mais vous pouvez utiliser le même pseudonyme.</string>
|
||||
<string name="download_briar_button">Télécharger la dernière version</string>
|
||||
<string name="old_android_expiry_date_reached">Briar ne fonctionne plus sur Android 4. Veuillez installer Briar sur un appareil plus récent.</string>
|
||||
<string name="old_android_expiry_date_reached">Briar ne fonctionne plus sur Android 4.\nInstallez Briar sur un appareil plus récent.</string>
|
||||
<string name="old_android_delete_account">Vous pouvez toucher le bouton ci-dessous pour supprimer votre compte de cet appareil.</string>
|
||||
<string name="delete_account_button">Supprimer le compte</string>
|
||||
<string name="startup_open_database">Déchiffrement de la base de données…</string>
|
||||
@@ -74,9 +77,9 @@
|
||||
<string name="transports_onboarding_text">Touchez ici pour contrôler comment Briar se connecte à vos contacts.</string>
|
||||
<!--Transports: Tor-->
|
||||
<string name="transport_tor">Internet</string>
|
||||
<string name="tor_device_status_online_wifi">Votre téléphone a accès à Internet par le Wi-Fi</string>
|
||||
<string name="tor_device_status_online_mobile">Votre téléphone a accès à Internet par les données mobiles</string>
|
||||
<string name="tor_device_status_offline">Votre téléphone n’a pas accès à Internet</string>
|
||||
<string name="tor_device_status_online_wifi">Votre appareil accède à Internet par le wifi</string>
|
||||
<string name="tor_device_status_online_mobile">Votre appareil accède à Internet par les données mobiles</string>
|
||||
<string name="tor_device_status_offline">Votre appareil n’accède pas à Internet</string>
|
||||
<string name="tor_plugin_status_enabling">Briar se connecte à Internet</string>
|
||||
<string name="tor_plugin_status_active">Briar est connecté à Internet</string>
|
||||
<string name="tor_plugin_status_inactive">Briar ne peut pas se connecter à Internet</string>
|
||||
@@ -85,18 +88,18 @@
|
||||
<string name="tor_plugin_status_disabled_battery">Briar est configuré pour ne pas utiliser Internet si l’appareil utilise sa pile</string>
|
||||
<string name="tor_plugin_status_disabled_country_blocked">Briar est configuré pour ne pas utiliser Internet dans ce pays</string>
|
||||
<!--Transports: Wi-Fi-->
|
||||
<string name="transport_lan">Wi-Fi</string>
|
||||
<string name="transport_lan_long">Même réseau Wi-Fi</string>
|
||||
<string name="lan_device_status_on">Votre téléphone est connecté au Wi-Fi</string>
|
||||
<string name="lan_device_status_off">Votre téléphone n’est pas connecté au Wi-Fi</string>
|
||||
<string name="lan_plugin_status_enabling">Briar se connecte au réseau Wi-Fi</string>
|
||||
<string name="lan_plugin_status_active">Briar est connecté au réseau Wi-Fi</string>
|
||||
<string name="lan_plugin_status_inactive">Briar ne peut pas se connecter au réseau Wi-Fi</string>
|
||||
<string name="lan_plugin_status_disabled">Briar est configuré pour ne pas utiliser le réseau Wi-Fi</string>
|
||||
<string name="transport_lan">wifi</string>
|
||||
<string name="transport_lan_long">Même réseau wifi</string>
|
||||
<string name="lan_device_status_on">Votre appareil est connecté au wifi</string>
|
||||
<string name="lan_device_status_off">Votre appareil n’est pas connecté au wifi</string>
|
||||
<string name="lan_plugin_status_enabling">Briar se connecte au réseau wifi</string>
|
||||
<string name="lan_plugin_status_active">Briar est connecté au réseau wifi</string>
|
||||
<string name="lan_plugin_status_inactive">Briar ne peut pas se connecter au réseau wifi</string>
|
||||
<string name="lan_plugin_status_disabled">Briar est configuré pour ne pas utiliser le réseau wifi</string>
|
||||
<!--Transports: Bluetooth-->
|
||||
<string name="transport_bt">Bluetooth</string>
|
||||
<string name="bt_device_status_on">Le Bluetooth de votre téléphone est activé</string>
|
||||
<string name="bt_device_status_off">Le Bluetooth de votre téléphone est désactivé</string>
|
||||
<string name="bt_device_status_on">Le Bluetooth de votre appareil est activé</string>
|
||||
<string name="bt_device_status_off">Le Bluetooth de votre appareil est désactivé</string>
|
||||
<string name="bt_plugin_status_enabling">Briar se connecte au Bluetooth</string>
|
||||
<string name="bt_plugin_status_active">Briar est connecté au Bluetooth</string>
|
||||
<string name="bt_plugin_status_inactive">Briar ne peut pas se connecter au Bluetooth</string>
|
||||
@@ -110,8 +113,8 @@
|
||||
<string name="ongoing_notification_text">Toucher pour ouvrir Briar.</string>
|
||||
<plurals name="private_message_notification_text">
|
||||
<item quantity="one">Nouveau message privé.</item>
|
||||
<item quantity="many">%d nouveaux messages privés.</item>
|
||||
<item quantity="other">%d nouveaux messages privés.</item>
|
||||
<item quantity="many">%d de nouveaux messages privés.</item>
|
||||
<item quantity="other">%d nouveaux messages privés.</item>
|
||||
</plurals>
|
||||
<plurals name="group_message_notification_text">
|
||||
<item quantity="one">Nouveau message de groupe.</item>
|
||||
@@ -119,14 +122,14 @@
|
||||
<item quantity="other">%d nouveaux messages de groupe.</item>
|
||||
</plurals>
|
||||
<plurals name="forum_post_notification_text">
|
||||
<item quantity="one">Un nouvel article de forum.</item>
|
||||
<item quantity="many">%d nouveaux articles de forum.</item>
|
||||
<item quantity="other">%d nouveaux articles de forum.</item>
|
||||
<item quantity="one">Un nouveau billet de forum.</item>
|
||||
<item quantity="many">%d de nouveaux billets de forum.</item>
|
||||
<item quantity="other">%d nouveaux billets de forum.</item>
|
||||
</plurals>
|
||||
<plurals name="blog_post_notification_text">
|
||||
<item quantity="one">Nouveau billet de blogue.</item>
|
||||
<item quantity="many">%d nouveaux billets de blogue.</item>
|
||||
<item quantity="other">%d nouveaux billets de blogue.</item>
|
||||
<item quantity="many">%d de nouveaux billets de blogue.</item>
|
||||
<item quantity="other">%d nouveaux billets de blogue.</item>
|
||||
</plurals>
|
||||
<!--Misc-->
|
||||
<string name="now">maintenant</string>
|
||||
@@ -180,19 +183,19 @@
|
||||
<!--The first placeholder will show a contact's name. The second placeholder will show a duration like "7 days". The third placeholder at the end will add "Tap to learn more."-->
|
||||
<string name="auto_delete_msg_contact_enabled">Les messages de %1$s disparaîtront après %2$s. %3$s</string>
|
||||
<plurals name="duration_minutes">
|
||||
<item quantity="one">%d minute</item>
|
||||
<item quantity="many">%d minutes</item>
|
||||
<item quantity="other">%d minutes</item>
|
||||
<item quantity="one">%d minute</item>
|
||||
<item quantity="many">%d de minutes</item>
|
||||
<item quantity="other">%d minutes</item>
|
||||
</plurals>
|
||||
<plurals name="duration_hours">
|
||||
<item quantity="one">%d heure</item>
|
||||
<item quantity="many">%d heures</item>
|
||||
<item quantity="other">%d heures</item>
|
||||
<item quantity="one">%d heure</item>
|
||||
<item quantity="many">%d d’heures</item>
|
||||
<item quantity="other">%d heures</item>
|
||||
</plurals>
|
||||
<plurals name="duration_days">
|
||||
<item quantity="one">%d jour</item>
|
||||
<item quantity="many">%d jours</item>
|
||||
<item quantity="other">%d jours</item>
|
||||
<item quantity="one">%d jour</item>
|
||||
<item quantity="many">%d de jours</item>
|
||||
<item quantity="other">%d jours</item>
|
||||
</plurals>
|
||||
<!--The first placeholder will show a contact's name. The second placeholder at the end will add "Tap to learn more."-->
|
||||
<string name="auto_delete_msg_contact_disabled">Les messages de %1$s ne disparaîtront pas. %2$s</string>
|
||||
@@ -230,7 +233,7 @@
|
||||
<string name="menu_contact">Contact</string>
|
||||
<!--Adding Contacts-->
|
||||
<string name="add_contact_title">Ajouter un contact à proximité</string>
|
||||
<string name="add_contact_error_two_way">Avez-vous tous les deux balayer les codes QR de chacun ?</string>
|
||||
<string name="add_contact_error_two_way">Avez-vous mutuellement balayé vos codes QR ?</string>
|
||||
<string name="face_to_face">Vous devez rencontrer la personne que vous voulez ajouter comme contact, afin d’éviter que quelqu’un se fasse passer pour vous et puisse lire vos messages à l’avenir.</string>
|
||||
<string name="continue_button">Poursuivre</string>
|
||||
<string name="try_again_button">Ressayer</string>
|
||||
@@ -238,17 +241,18 @@
|
||||
<string name="exchanging_contact_details">Échange des renseignements de contact\u2026</string>
|
||||
<string name="contact_added_toast">Contact ajouté : %s</string>
|
||||
<string name="contact_already_exists">Le contact %s existe déjà</string>
|
||||
<string name="contact_already_exists_general">Contact déjà existant</string>
|
||||
<string name="contact_already_exists_general">Le contact existe déjà</string>
|
||||
<string name="qr_code_invalid">Le code QR est invalide</string>
|
||||
<string name="qr_code_too_old_1">Le QR code que vous avez scanné provient d’une version plus ancienne de Briar.\n\nVeuillez demander à votre contact de mettre à niveau la version la plus récente et réessayer.</string>
|
||||
<string name="qr_code_too_new_1">Le QR code que vous avez scanné provient d\'une nouvelle version de Briar\n\nVeuillez mettre à jour vers la dernière version et réessayer.</string>
|
||||
<string name="qr_code_format_unknown">Le QR code que vous avez scanné n\'est pas fait pour ajouter un contact Briar\n\nVeuillez scanner le QR code affiché sur l\'écran de votre contact.</string>
|
||||
<string name="qr_code_too_old_1">Le code QR que vous avez balayé provient d’une version plus ancienne de Briar.\n\nDemandez à votre contact d’installer la version la plus récente de Briar, puis réessayez.</string>
|
||||
<string name="qr_code_too_new_1">Le code QR que vous avez balayé provient d’une version plus récente de Briar.\n\nInstallez la version la plus récente de Briar, puis réessayez.</string>
|
||||
<string name="mailbox_qr_code_for_contact">Le code QR que vous avez balayé provient de la Boite à messages de Briar.\n\nSi vous voulez associer une Boite à messages, accédez à Paramètres > Boite à messages dans le menu de Briar.</string>
|
||||
<string name="qr_code_format_unknown">Le code QR que vous avez balayé ne peut pas ajouter un contact Briar\n\nBalayez le code QR affiché sur l’écran de votre contact.</string>
|
||||
<string name="camera_error">Erreur de l’appareil photo</string>
|
||||
<string name="connecting_to_device">Connexion à l’appareil\u2026</string>
|
||||
<string name="authenticating_with_device">Autentification avec l’appareil\u2026</string>
|
||||
<string name="connection_error_title">Impossible de se connecter à votre contact</string>
|
||||
<string name="connection_error_feedback">Si le problème persiste, veuillez nous <a href="feedback">envoyer une rétroaction</a> pour nous aider à améliorer l’appli.</string>
|
||||
<string name="info_both_must_scan">Vous devez tous les deux balayer les codes QR de chacun</string>
|
||||
<string name="info_both_must_scan">Vous devez mutuellement balayer vos codes QR</string>
|
||||
<!--Adding Contacts Remotely-->
|
||||
<string name="add_contact_remotely_title_case">Ajouter un contact à distance</string>
|
||||
<string name="add_contact_nearby_title">Ajouter un contact à proximité</string>
|
||||
@@ -277,19 +281,19 @@
|
||||
<string name="dialog_title_remove_pending_contact">Confirmer la suppression</string>
|
||||
<string name="dialog_message_remove_pending_contact">Le contact est encore en cours d’ajout. Si vous le supprimez maintenant, il ne sera pas ajouté.</string>
|
||||
<string name="own_link_error">Saisissez le lien de votre contact, pas le vôtre</string>
|
||||
<string name="nickname_missing">Veuillez saisir un pseudonyme</string>
|
||||
<string name="nickname_missing">Saisissez un pseudonyme</string>
|
||||
<string name="invalid_link">Le lien est invalide</string>
|
||||
<string name="unsupported_link">Ce lien provient d’une version plus récente de Briar. Veuillez passer à la version la plus récente et réessayer.</string>
|
||||
<string name="unsupported_link">Ce lien provient d’une version plus récente de Briar. Installez la version la plus récente et réessayez.</string>
|
||||
<string name="intent_own_link">Vous avez ouvert votre propre lien. Utilisez celui du contact que vous souhaitez ajouter.</string>
|
||||
<string name="missing_link">Veuillez saisir un lien</string>
|
||||
<string name="missing_link">Saisissez un lien</string>
|
||||
<!--This is a numeral indicating the first step in a series of screens-->
|
||||
<string name="step_1">1</string>
|
||||
<!--This is a numeral indicating the second step in a series of screens-->
|
||||
<string name="step_2">2</string>
|
||||
<plurals name="contact_added_notification_text">
|
||||
<item quantity="one">Un nouveau contact a été ajouté</item>
|
||||
<item quantity="many">%d nouveaux contacts ont été ajoutés.</item>
|
||||
<item quantity="other">%d nouveaux contacts ont été ajoutés.</item>
|
||||
<item quantity="many">%d de nouveaux contacts ont été ajoutés.</item>
|
||||
<item quantity="other">%d nouveaux contacts ont été ajoutés.</item>
|
||||
</plurals>
|
||||
<string name="offline_state">Aucune connexion à Internet</string>
|
||||
<string name="duplicate_link_dialog_title">Lien en double</string>
|
||||
@@ -307,18 +311,18 @@
|
||||
<string name="different_person_button">Une personne différente</string>
|
||||
<string name="duplicate_link_dialog_text_3">%1$s et %2$s vous ont envoyé le même lien.\n\nL\'une de ces personnes pourrait tenter de découvrir qui sont vos contacts.\n\nNe lui dites pas que vous avez reçu le même lien de quelqu’un d’autre.</string>
|
||||
<string name="pending_contact_updated_toast">Le contact en attente a été mis à jour</string>
|
||||
<string name="info_both_must_enter_links">Vous devez tous les deux ajouter les liens de chacun</string>
|
||||
<string name="info_both_must_enter_links">Vous devez mutuellement ajouter le lien de l’autre</string>
|
||||
<!--Peer trust levels-->
|
||||
<string name="peer_trust_level_unverified">Contact non vérifié</string>
|
||||
<string name="peer_trust_level_verified">Contact vérifié</string>
|
||||
<string name="peer_trust_level_unverified">Contact non confirmé</string>
|
||||
<string name="peer_trust_level_verified">Contact confirmé</string>
|
||||
<string name="peer_trust_level_ourselves">Moi</string>
|
||||
<string name="peer_trust_level_stranger">Etranger</string>
|
||||
<string name="peer_trust_level_stranger">Personne inconnue</string>
|
||||
<!--Introductions-->
|
||||
<string name="introduction_onboarding_title">Présenter vos contacts</string>
|
||||
<string name="introduction_onboarding_text">Présentez vos contacts l\'un à l\'autre ainsi ils pourront se contacter via Briar.</string>
|
||||
<string name="introduction_onboarding_text">Présentez vos contacts entre eux afin qu’ils communiquent avec Briar.</string>
|
||||
<string name="introduction_menu_item">Faire les présentations</string>
|
||||
<string name="introduction_activity_title">Sélectionner un contact </string>
|
||||
<string name="introduction_not_possible">Une présentation est déjà en cours avec ces contacts. Veuillez d’abord lui permettre de se terminer. Si vous ou vos contacts êtes rarement en ligne, cela peut prendre du temps.</string>
|
||||
<string name="introduction_not_possible">Une présentation est déjà en cours avec ces contacts. Permettez-lui de se terminer. Si vous ou vos contacts êtes rarement en ligne, cela peut prendre du temps.</string>
|
||||
<string name="introduction_message_title">Présenter des contacts</string>
|
||||
<string name="introduction_message_hint">Ajouter un message (facultatif)</string>
|
||||
<string name="introduction_button">Faire les présentations</string>
|
||||
@@ -339,9 +343,9 @@
|
||||
<string name="menu_item_connect_via_bluetooth">Se connecter par Bluetooth</string>
|
||||
<string name="connect_via_bluetooth_title">Se connecter par Bluetooth</string>
|
||||
<string name="connect_via_bluetooth_intro">Au cas où les connexions Bluetooth ne fonctionneraient pas automatiquement, vous pouvez utiliser cet écran pour vous connecter manuellement.\n\nPour que cela fonctionne, votre contact doit être à proximité.\n\nVotre contact et vous devriez appuyer sur « Commencer » en même temps.</string>
|
||||
<string name="connect_via_bluetooth_already_discovering">Une tentative de connexion par Bluetooth est en cours. Veuillez réessayer dans un moment.</string>
|
||||
<string name="connect_via_bluetooth_already_discovering">Une tentative de connexion par Bluetooth est en cours. Réessayez dans un moment.</string>
|
||||
<string name="connect_via_bluetooth_no_location_permission">Impossible de poursuivre sans autoriser la position.</string>
|
||||
<string name="connect_via_bluetooth_no_bluetooth_permission">Ne peut continuer sans les permissions des appareils à proximité.</string>
|
||||
<string name="connect_via_bluetooth_no_bluetooth_permission">Impossible de poursuivre sans l’autorisation appareils proches</string>
|
||||
<string name="connect_via_bluetooth_start">Connexion par Bluetooth…</string>
|
||||
<string name="connect_via_bluetooth_success">La connexion par Bluetooth est réussie</string>
|
||||
<string name="connect_via_bluetooth_error">Impossible de se connecter par Bluetooth.</string>
|
||||
@@ -351,12 +355,12 @@
|
||||
<string name="groups_list_empty_action">Touchez l’icône + pour créer un groupe ou pour demander à vos contacts de partager des groupes avec vous</string>
|
||||
<string name="groups_created_by">Créé par %s</string>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d message</item>
|
||||
<item quantity="many">%d messages</item>
|
||||
<item quantity="other">%d messages</item>
|
||||
<item quantity="one">%d message</item>
|
||||
<item quantity="many">%d de messages</item>
|
||||
<item quantity="other">%d messages</item>
|
||||
</plurals>
|
||||
<string name="groups_group_is_empty">Ce groupe est vide</string>
|
||||
<string name="groups_group_is_dissolved">Ce groupe a été dissous</string>
|
||||
<string name="groups_group_is_dissolved">Ce groupe a été dissout</string>
|
||||
<string name="groups_remove">Supprimer</string>
|
||||
<string name="groups_create_group_title">Créer un groupe privé</string>
|
||||
<string name="groups_create_group_button">Créer un groupe</string>
|
||||
@@ -367,8 +371,8 @@
|
||||
<string name="groups_invite_members">Inviter des participants</string>
|
||||
<string name="groups_member_created_you">Vous avez créé le groupe</string>
|
||||
<string name="groups_member_created">%s a créé le groupe</string>
|
||||
<string name="groups_member_joined_you">Vous vous êtes joint au groupe</string>
|
||||
<string name="groups_member_joined">%s s’est joint au groupe</string>
|
||||
<string name="groups_member_joined_you">Vous participez au groupe</string>
|
||||
<string name="groups_member_joined">%s participe au groupe</string>
|
||||
<string name="groups_leave">Quitter le groupe</string>
|
||||
<string name="groups_leave_dialog_title">Confirmer la sortie du groupe</string>
|
||||
<string name="groups_leave_dialog_message">Voulez-vous vraiment quitter ce groupe ?</string>
|
||||
@@ -376,18 +380,18 @@
|
||||
<string name="groups_dissolve_dialog_title">Confirmer la dissolution du groupe</string>
|
||||
<string name="groups_dissolve_dialog_message">Voulez-vous vraiment dissoudre ce groupe ?\n\nLes autres participants ne pourront pas poursuivre leur conversation et ne recevront peut-être pas les derniers messages.</string>
|
||||
<string name="groups_dissolve_button">Dissoudre</string>
|
||||
<string name="groups_dissolved_dialog_title">Le groupe a été dissous</string>
|
||||
<string name="groups_dissolved_dialog_message">Le créateur de ce groupe l’a dissous.\n\nVous ne pouvez plus écrire de messages au groupe et ne recevrez peut-être pas tous ceux qui y ont été publiés.</string>
|
||||
<string name="groups_dissolved_dialog_title">Le groupe a été dissout</string>
|
||||
<string name="groups_dissolved_dialog_message">Le créateur de ce groupe l’a dissout.\n\nVous ne pouvez plus écrire de messages au groupe et ne recevrez peut-être pas tous ceux qui y ont été publiés.</string>
|
||||
<!--Private Group Invitations-->
|
||||
<string name="groups_invitations_title">Invitations au groupe</string>
|
||||
<string name="groups_invitations_invitation_sent">Vous avez invité %1$s à se joindre au groupe « %2$s ».</string>
|
||||
<string name="groups_invitations_invitation_received">%1$s vous a invité à vous joindre au groupe « %2$s ».</string>
|
||||
<string name="groups_invitations_joined">S’est joint au groupe</string>
|
||||
<string name="groups_invitations_invitation_sent">Vous avez invité %1$s à participer au groupe « %2$s ».</string>
|
||||
<string name="groups_invitations_invitation_received">%1$s vous a invité à participer au groupe « %2$s ».</string>
|
||||
<string name="groups_invitations_joined">Vous participer au groupe</string>
|
||||
<string name="groups_invitations_declined">L’invitation au groupe a été refusée</string>
|
||||
<plurals name="groups_invitations_open">
|
||||
<item quantity="one">%d invitation au groupe en attente</item>
|
||||
<item quantity="many">%d invitations au groupe en attente</item>
|
||||
<item quantity="other">%d invitations au groupe en attente</item>
|
||||
<item quantity="one">%d invitation au groupe en attente</item>
|
||||
<item quantity="many">%d d’invitations au groupe en attente</item>
|
||||
<item quantity="other">%d invitations au groupe en attente</item>
|
||||
</plurals>
|
||||
<string name="groups_invitations_response_accepted_sent">Vous avez accepté l’invitation au groupe de %s.</string>
|
||||
<string name="groups_invitations_response_declined_sent">Vous avez refusé l’invitation au groupe de %s.</string>
|
||||
@@ -409,14 +413,14 @@
|
||||
<string name="choose_forum_hint">Choisissez un nom pour votre forum </string>
|
||||
<string name="create_forum_button">Créer un forum</string>
|
||||
<string name="forum_created_toast">Le forum a été créé</string>
|
||||
<string name="no_forum_posts">Aucun article à afficher</string>
|
||||
<string name="no_posts">Aucun article</string>
|
||||
<string name="no_forum_posts">Aucun billet à afficher</string>
|
||||
<string name="no_posts">Aucun billet</string>
|
||||
<plurals name="posts">
|
||||
<item quantity="one">%d article</item>
|
||||
<item quantity="many">%d articles</item>
|
||||
<item quantity="other">%d articles</item>
|
||||
<item quantity="one">%d billet</item>
|
||||
<item quantity="many">%dde billets</item>
|
||||
<item quantity="other">%d billets</item>
|
||||
</plurals>
|
||||
<string name="forum_new_message_hint">Nouvelle article</string>
|
||||
<string name="forum_new_message_hint">Nouveau billet</string>
|
||||
<string name="forum_message_reply_hint">Nouvelle réponse</string>
|
||||
<string name="btn_reply">Répondre</string>
|
||||
<string name="forum_leave">Quitter le forum</string>
|
||||
@@ -429,7 +433,7 @@
|
||||
<string name="contacts_selected">Des contacts ont été sélectionnés</string>
|
||||
<string name="activity_share_toolbar_header">Choisir des contacts</string>
|
||||
<string name="no_contacts_selector">Aucun contact à afficher</string>
|
||||
<string name="no_contacts_selector_action">Veuillez revenir ici après avoir ajouté un contact</string>
|
||||
<string name="no_contacts_selector_action">Revenez ici après avoir ajouté un contact</string>
|
||||
<string name="forum_shared_snackbar">Le forum a été partagé avec les contacts choisis</string>
|
||||
<string name="forum_share_message">Ajouter un message (facultatif)</string>
|
||||
<string name="forum_share_error">Une erreur est survenue lors du partage de ce forum.</string>
|
||||
@@ -437,26 +441,26 @@
|
||||
<string name="forum_invitation_sent">Vous avez partagé le forum « %1$s » avec %2$s.</string>
|
||||
<string name="forum_invitations_title">Invitations au forum</string>
|
||||
<string name="forum_invitation_exists">Vous avez déjà accepté une invitation à ce forum.\n\n En acceptant d’autres invitations, vous rendrez la communication vers ce forum plus rapide et plus fiable.</string>
|
||||
<string name="forum_joined_toast">Vous vous êtes joint au forum</string>
|
||||
<string name="forum_joined_toast">Vous participer au forum</string>
|
||||
<string name="forum_declined_toast">L’invitation a été refusée</string>
|
||||
<string name="shared_by_format">Partagé par %s</string>
|
||||
<string name="forum_invitation_already_sharing">Le forum est déjà partagé</string>
|
||||
<string name="forum_invitation_already_invited">Invitation déjà envoyée</string>
|
||||
<string name="forum_invitation_invite_received">Invitation déjà reçue</string>
|
||||
<string name="forum_invitation_already_invited">L’invitation est déjà envoyée</string>
|
||||
<string name="forum_invitation_invite_received">L’invitation est déjà reçue</string>
|
||||
<string name="forum_invitation_not_supported">Non pris en charge par ce contact</string>
|
||||
<string name="forum_invitation_error">Erreur. C\'est un bogue et non votre faute</string>
|
||||
<string name="forum_invitation_error">Erreur. C’est un bogue et non de votre faute</string>
|
||||
<string name="forum_invitation_response_accepted_sent">Vous avez accepté l’invitation de %s au forum.</string>
|
||||
<string name="forum_invitation_response_declined_sent">Vous avez refusé l’invitation de %s au forum.</string>
|
||||
<string name="forum_invitation_response_declined_auto">L’invitation au forum provenant de %s a été refusée automatiquement.</string>
|
||||
<string name="forum_invitation_response_accepted_received">%s a accepté l’invitation au forum.</string>
|
||||
<string name="forum_invitation_response_declined_received">%s a refusé l’invitation au forum.</string>
|
||||
<string name="sharing_status">État de partage</string>
|
||||
<string name="sharing_status_forum">Tous les participants d’un forum peuvent le partager avec leurs contacts. Vous partagez ce forum avec les contacts suivants. Il peut aussi y avoir d’autres participants que vous ne pouvez pas voir.</string>
|
||||
<string name="sharing_status_forum">Les participants d’un forum peuvent le partager avec leurs contacts. Vous partagez ce forum avec les contacts suivants. Il peut aussi y avoir d’autres participants que vous ne pouvez pas voir.</string>
|
||||
<string name="shared_with">Partagé avec %1$d (%2$d en ligne)</string>
|
||||
<plurals name="forums_shared">
|
||||
<item quantity="one">%d forum partagé par des contacts</item>
|
||||
<item quantity="many">%d forums partagés par des contacts</item>
|
||||
<item quantity="other">%d forums partagés par des contacts</item>
|
||||
<item quantity="one">%d forum partagé par des contacts</item>
|
||||
<item quantity="many">%d de forums partagés par des contacts</item>
|
||||
<item quantity="other">%d forums partagés par des contacts</item>
|
||||
</plurals>
|
||||
<string name="nobody">Personne</string>
|
||||
<!--Blogs-->
|
||||
@@ -469,7 +473,7 @@
|
||||
<string name="blogs_blog_post_received">Un nouvel billet de blogue a été reçu</string>
|
||||
<string name="blogs_blog_post_scroll_to">Atteindre</string>
|
||||
<string name="blogs_feed_empty_state">Aucun billet à afficher</string>
|
||||
<string name="blogs_feed_empty_state_action">Les billets de vos contacts et les blogues auxquels vous vous abonnez apparaîtront ici.\n\nTouchez l’icône de crayon pour rédiger un billet</string>
|
||||
<string name="blogs_feed_empty_state_action">Les billets de vos contacts et les blogues auxquels vous vous abonnez apparaitront ici.\n\nTouchez l’icône de crayon pour rédiger un billet</string>
|
||||
<string name="blogs_remove_blog">Supprimer le blogue</string>
|
||||
<string name="blogs_remove_blog_dialog_message">Voulez-vous vraiment supprimer ce blogue ?\nLes billets seront supprimés de votre appareil mais pas des appareils d’autrui.\n\nLes contacts avec qui vous avez partagé ce blogue pourraient ne plus en recevoir les mises à jour.</string>
|
||||
<string name="blogs_remove_blog_ok">Supprimer</string>
|
||||
@@ -496,9 +500,9 @@
|
||||
<string name="blogs_rss_feeds_import">Importer un fil RSS</string>
|
||||
<string name="blogs_rss_feeds_import_button">Importer</string>
|
||||
<string name="blogs_rss_feeds_import_hint">Saisir l’URL du fil RSS</string>
|
||||
<string name="blogs_rss_feeds_import_progress">Importation d\'un flux RRS</string>
|
||||
<string name="blogs_rss_feeds_import_progress">Importation du fil RSS…</string>
|
||||
<string name="blogs_rss_feeds_import_error">Nous sommes désolés ! Une erreur est survenue lors de l’importation de votre fil.</string>
|
||||
<string name="blogs_rss_feeds_import_title">Importer le flux à partir d\'un fichier</string>
|
||||
<string name="blogs_rss_feeds_import_title">Importer le fil d’un fichier</string>
|
||||
<string name="blogs_rss_feeds">Fils RSS</string>
|
||||
<string name="blogs_rss_feeds_manage_imported">Importés :</string>
|
||||
<string name="blogs_rss_feeds_manage_author">Auteur :</string>
|
||||
@@ -507,7 +511,7 @@
|
||||
<string name="blogs_rss_remove_feed_dialog_message">Voulez-vous vraiment supprimer ce fil ?\nLes billets seront supprimés de votre appareil mais pas des appareils d’autrui.\n\nLes contacts avec qui vous avez partagé ce fil pourraient ne plus en recevoir les mises à jour.</string>
|
||||
<string name="blogs_rss_remove_feed_ok">Supprimer</string>
|
||||
<string name="blogs_rss_feeds_manage_empty_state">Aucun fil RSS à afficher\n\nTouchez l’icône + pour importer un fil</string>
|
||||
<string name="blogs_rss_feeds_manage_error">Un problème est survenu lors du chargement de vos fils. Veuillez réessayer plus tard.</string>
|
||||
<string name="blogs_rss_feeds_manage_error">Un problème est survenu lors du chargement de vos fils. Réessayez plus tard.</string>
|
||||
<!--Settings Profile Picture-->
|
||||
<string name="change_profile_picture">Touchez pour changer votre photo de profil</string>
|
||||
<string name="dialog_confirm_profile_picture_title">Changer la photo de profil</string>
|
||||
@@ -515,7 +519,7 @@
|
||||
<string name="change_profile_picture_failed_message">Nous sommes désolés, mais un problème est survenu lors de la mise à jour de votre photo de profil</string>
|
||||
<!--Settings Display-->
|
||||
<string name="pref_language_title">Langue et région</string>
|
||||
<string name="pref_language_changed">Ce paramètre prendra effet une fois que vous aurez redémarré Briar. Veuillez vous déconnecter et redémarrer Briar.</string>
|
||||
<string name="pref_language_changed">Ce paramètre prendra effet une fois que vous aurez redémarré Briar. Déconnectez-vous et redémarrer Briar.</string>
|
||||
<string name="pref_language_default">Valeur par défaut du système</string>
|
||||
<string name="display_settings_title">Affichage</string>
|
||||
<string name="pref_theme_title">Thème</string>
|
||||
@@ -525,7 +529,7 @@
|
||||
<!--Settings Connections-->
|
||||
<string name="network_settings_title">Connexions </string>
|
||||
<string name="bluetooth_setting">Se connecter à des contacts par Bluetooth</string>
|
||||
<string name="wifi_setting">Se connecter à des contacts sur le même réseau Wi-Fi</string>
|
||||
<string name="wifi_setting">Se connecter à des contacts sur le même réseau wifi</string>
|
||||
<string name="tor_enable_title">Se connecter à des contacts par Internet</string>
|
||||
<string name="tor_enable_summary">Afin de protéger les données personnelles et la confidentialité, toutes les connexions passent par le réseau Tor</string>
|
||||
<string name="tor_network_setting">Méthode de connexion pour le réseau Tor</string>
|
||||
@@ -580,16 +584,16 @@
|
||||
<!--Settings Notifications-->
|
||||
<string name="notification_settings_title">Notifications</string>
|
||||
<string name="notify_sign_in_title">Rappelez-moi de me connecter</string>
|
||||
<string name="notify_sign_in_summary">Afficher un rappel lors du démarrage du téléphone ou si l’appli a été mise à jour</string>
|
||||
<string name="notify_sign_in_summary">Afficher un rappel lors du démarrage du appareil ou si l’appli a été mise à jour</string>
|
||||
<string name="notify_private_messages_setting_title">Messages privés</string>
|
||||
<string name="notify_private_messages_setting_summary">Afficher des notifications pour les messages privés</string>
|
||||
<string name="notify_private_messages_setting_summary_26">Configurer les alertes pour les messages privés</string>
|
||||
<string name="notify_group_messages_setting_title">Messages de groupe</string>
|
||||
<string name="notify_group_messages_setting_summary">Afficher des alertes pour les messages de groupe</string>
|
||||
<string name="notify_group_messages_setting_summary_26">Configurer les alertes pour les messages de groupe</string>
|
||||
<string name="notify_forum_posts_setting_title">Articles de forum</string>
|
||||
<string name="notify_forum_posts_setting_summary">Afficher des alertes pour les articles de forum</string>
|
||||
<string name="notify_forum_posts_setting_summary_26">Configurer les alertes pour les articles de forum</string>
|
||||
<string name="notify_forum_posts_setting_title">Billets de forum</string>
|
||||
<string name="notify_forum_posts_setting_summary">Afficher des alertes pour les billets de forum</string>
|
||||
<string name="notify_forum_posts_setting_summary_26">Configurer les alertes pour les billets de forum</string>
|
||||
<string name="notify_blog_posts_setting_title">Billets de blogue</string>
|
||||
<string name="notify_blog_posts_setting_summary">Afficher des alertes pour les billets de blogue</string>
|
||||
<string name="notify_blog_posts_setting_summary_26">Configurer les alertes pour les billets de forum</string>
|
||||
@@ -600,57 +604,87 @@
|
||||
<string name="choose_ringtone_title">Choisir une sonnerie</string>
|
||||
<string name="cannot_load_ringtone">Impossible de charger la sonnerie</string>
|
||||
<!--Mailbox-->
|
||||
<string name="mailbox_settings_title">Boîte de courriel</string>
|
||||
<string name="mailbox_setup_title">Paramètres de la boîte de courriel</string>
|
||||
<string name="mailbox_setup_intro">Une Boîte de courriel permet à vos contacts de vous envoyer des messages alors que vous êtes hors ligne. La Boîte de courriel recevra vos messages et les enregistrera jusqu’à votre prochaine connexion. Vous pouvez installer l’appli Boîte de courriel de Briar sur un autre appareil. Gardez-le connecté à l’alimentation et au Wi-Fi afin qu’il soit toujours en ligne.</string>
|
||||
<string name="mailbox_setup_download">Installez d’abord l’appli Boîte de courriel sur un autre appareil en cherchant « Briar Mailbox » dans Google Play ou à l’endroit où vous avez téléchargé Briar.\n
|
||||
\nConnectez ensuite votre Boîte de courriel en balayant le code QR affiché sur l’appli Boîte de courriel.</string>
|
||||
<string name="mailbox_settings_title">Boite à messages</string>
|
||||
<string name="mailbox_setup_title">Paramètres de la Boite à messages</string>
|
||||
<string name="mailbox_setup_intro">Une Boite à messages permet à vos contacts de vous envoyer des messages alors que vous êtes hors ligne. La Boite à messages recevra vos messages et les enregistrera jusqu’à votre prochaine connexion.\n\nVous pouvez installer l’appli Boite à messages de Briar sur un autre appareil. Gardez-le connecté à l’alimentation et au wifi afin qu’il soit toujours en ligne.</string>
|
||||
<string name="mailbox_setup_download">Installez d’abord l’appli Boite à messages sur un autre appareil en cherchant « Briar Mailbox » dans Google Play ou à l’endroit où vous avez téléchargé Briar.\n
|
||||
\nConnectez ensuite votre Boite à messages en balayant le code QR affiché sur l’appli Boite à messages.</string>
|
||||
<string name="mailbox_setup_download_link">Partager le lien de téléchargement</string>
|
||||
<string name="mailbox_setup_button_scan">Balayer le code QR de Boîte de courriel</string>
|
||||
<string name="permission_camera_qr_denied_body">Vous avez refusé l’accès à l’appareil photo, mais le balayage d’un code QR de contacts exige de l’utiliser.\n\nVeuillez envisager d’y accorder l’accès.</string>
|
||||
<string name="mailbox_setup_connecting">Connexion à Mailbox…</string>
|
||||
<string name="mailbox_setup_button_scan">Balayer le code QR de Boite à messages</string>
|
||||
<string name="permission_camera_qr_denied_body">Vous avez refusé l’accès à l’appareil photo, mais le balayage d’un code QR de contacts exige de l’utiliser.\n\nEnvisagez d’y accorder l’accès.</string>
|
||||
<string name="mailbox_setup_connecting">Connexion à la Boite à messages…</string>
|
||||
<!--This string is shown when connecting to a Mailbox for the first time. The placeholder will be replaced with a duration, e.g. "2 minutes".-->
|
||||
<string name="mailbox_setup_connecting_info">Cela peut prendre jusqu\'à %1s</string>
|
||||
<string name="mailbox_qr_code_too_old">Le QR code que vous avez scanné provient d\'une ancienne version de Briar Mailbox.\n\nVeuillez mettre à jour Briar Mailbox vers la dernière version et reessayer.</string>
|
||||
<string name="mailbox_qr_code_too_new">Le QR code que vous avez scanné provient d\'une nouvelle version de Briar Mailbox.\n\nVeuillez mettre à jour Briar vers la dernière version et reessayer.</string>
|
||||
<string name="contact_qr_code_for_mailbox">Le QR code que vous avez scanné sert à ajouter un contact Briar.\n\nSi vous voulez ajouter un contact, veuillez aller dans la liste de contacts et appuyer sur l\'icône « + ».</string>
|
||||
<string name="mailbox_setup_qr_code_wrong_description">Le QR code que vous avez scanné ne provient pas de la boîte à lettre Briar.\n\nVeuillez ouvrir l\'appli Mailbox de Briar sur votre appareil Boîte aux lettres et scanner le QR code qui y est présent.</string>
|
||||
<string name="mailbox_setup_already_paired_title">La Boîte de courriel est déjà reliée</string>
|
||||
<string name="mailbox_setup_already_paired_description">Annuler le lien avec la Boîte de courriel sur l’autre appareil et réessayer.</string>
|
||||
<string name="mailbox_setup_connecting_info">Cela peut prendre jusqu’à %1s</string>
|
||||
<string name="mailbox_qr_code_too_old">Le code QR que vous avez balayé provient d’une version plus ancienne de le Boite de courriel Briar.\n\nInstallez la version la plus récente de Briar, puis réessayez.</string>
|
||||
<string name="mailbox_qr_code_too_new">Le code QR que vous avez balayé provient d’une version plus récente de la Boite à messages Briar.\n\nInstallez la version la plus récente de la Boite à messages Briar, puis réessayez.</string>
|
||||
<string name="contact_qr_code_for_mailbox">Le code QR que vous avez balayé permet d’ajouter un contact Briar.\n\nSi vous voulez ajouter un contact, accédez à la liste des contacts et touchez l’icône +.</string>
|
||||
<string name="mailbox_setup_qr_code_wrong_description">Le code QR que vous avez balayé ne provient pas de la Boite à messages Briar.\n\nLancez l’appli Boite à messages de Briar sur l’appareil où votre Boite à messages est installée, puis balayez le code QR présenté.</string>
|
||||
<string name="mailbox_setup_already_paired_title">La Boite à messages est déjà associée</string>
|
||||
<string name="mailbox_setup_already_paired_description">Dissocier la Boite à messages sur l’autre appareil et réessayez.</string>
|
||||
<string name="mailbox_setup_io_error_title">Connexion impossible</string>
|
||||
<string name="mailbox_setup_io_error_description">Assurez-vous que les deux appareils sont connectés à Internet et réessayez.</string>
|
||||
<string name="mailbox_setup_assertion_error_title">Erreur de la Boîte de courriel</string>
|
||||
<string name="mailbox_setup_assertion_error_description">Merci de transmettre vos retours (données anonymes) via l\'application Briar si le problème persiste.</string>
|
||||
<string name="mailbox_setup_camera_error_description">Pas d\'accès à l\'appareil photo. réessayez après avoir redémarré l\'appareil.</string>
|
||||
<string name="mailbox_setup_assertion_error_title">Erreur de la Boite à messages</string>
|
||||
<string name="mailbox_setup_assertion_error_description">Si le problème persiste, informez-nous-en (sans données personnelles) dans l\'appli Briar.</string>
|
||||
<string name="mailbox_setup_camera_error_description">Impossible d’accéder à l’appareil photo. Réessayez après avoir redémarré l’appareil.</string>
|
||||
<string name="mailbox_setup_paired_title">Connecté</string>
|
||||
<string name="mailbox_setup_paired_description">Votre Boîte de courriel a été reliée avec succès à Briar.\n
|
||||
\nGarder votre boîte de courriel connectée à l’alimentation et au Wi-Fi afin qu’elle soit toujours en ligne.</string>
|
||||
<string name="mailbox_setup_paired_description">Votre Boite à messages est associée à Briar.\n
|
||||
\nGardez votre Boite à message connectée à l’alimentation et au wifi afin qu’elle soit toujours en ligne.</string>
|
||||
<string name="tor_offline_title">Hors ligne</string>
|
||||
<string name="tor_offline_description">Assurez-vous que cet appareil est en ligne et que les connexions à internet sont autorisées.\n
|
||||
\nEnsuite, attendez que l\'icône en forme de globe dans l\'écran des réglages de connexion soit vert.</string>
|
||||
<string name="tor_offline_button_check">Vérifiez les paramètres de connexion.</string>
|
||||
<string name="mailbox_status_title">État de la Boîte de courriel</string>
|
||||
<string name="mailbox_status_connected_title">La Boîte de courriel est en cours d’exécution</string>
|
||||
<string name="mailbox_status_problem_title">Briar a des problèmes pour se connecter à la boîte aux lettres.</string>
|
||||
<string name="mailbox_status_failure_title">La boîte aux lettres n\'est pas disponible.</string>
|
||||
<string name="mailbox_status_app_too_old_title">Briar est trop ancien</string>
|
||||
<string name="mailbox_status_app_too_old_message">Mettez Briar à jour de la dernière version de l\'appli et essayez encore.</string>
|
||||
<string name="mailbox_status_mailbox_too_old_message">Mettez à jour votre Boîte aux lettres vers la dernière version de l\'appli et réessayez.</string>
|
||||
<string name="mailbox_status_check_button">Vérification de connexion</string>
|
||||
<string name="tor_offline_description">Assurez-vous que cet appareil est en ligne et que les connexions à Internet sont autorisées.\n
|
||||
\nEnsuite, attendez que l’icône en forme de globe de l’écran des paramètres de connexion passe au vert.</string>
|
||||
<string name="tor_offline_button_check">Vérifier les paramètres de connexion</string>
|
||||
<string name="mailbox_status_title">État de la Boite à messages</string>
|
||||
<string name="mailbox_status_connected_title">La Boite à messages est en fonction</string>
|
||||
<string name="mailbox_status_problem_title">Briar n’arrive pas à se connecter à la Boite à messages</string>
|
||||
<string name="mailbox_status_failure_title">La Boite à messages est inaccessible</string>
|
||||
<string name="mailbox_status_app_too_old_title">Cette version de Briar est trop ancienne</string>
|
||||
<string name="mailbox_status_app_too_old_message">Installez la version la plus récente de Briar et réessayez.</string>
|
||||
<string name="mailbox_status_mailbox_too_old_title">Cette version de la Boite à messages est trop ancienne</string>
|
||||
<string name="mailbox_status_mailbox_too_old_message">Installez la version la plus récente de la Boite à messages et réessayez.</string>
|
||||
<string name="mailbox_status_check_button">Vérifier la connexion</string>
|
||||
<!--Example for string substitution: Last connection: 3min ago-->
|
||||
<string name="mailbox_status_connected_info">Dernière connexion: %s</string>
|
||||
<string name="mailbox_status_connected_info">Connexion la plus récente : %s</string>
|
||||
<!--Indicates that there never was a connection to the mailbox. Last connection: Never-->
|
||||
<string name="mailbox_status_connected_never">Jamais</string>
|
||||
<string name="mailbox_status_unlink_button">Dissocier</string>
|
||||
<string name="mailbox_status_unlink_dialog_title">Dissocier la boite aux lettres?</string>
|
||||
<string name="mailbox_status_unlink_dialog_question">Êtes vous sûr de vouloir dissocier votre Boîte aux lettres?</string>
|
||||
<string name="mailbox_status_unlink_dialog_warning">Si vous dissociez votre Boîte aux lettres, vous ne pourrez plus recevoir de messages lorsque Briar est hors-ligne.</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_title">Votre Boîte à lettre a été dissociée</string>
|
||||
<string name="mailbox_status_unlink_success">Votre Boîte à lettre a été dissociée</string>
|
||||
<string name="mailbox_status_unlink_dialog_title">Dissocier la Boite à messages ?</string>
|
||||
<string name="mailbox_status_unlink_dialog_question">Voulez-vous vraiment dissocier votre Boite à messages ?</string>
|
||||
<string name="mailbox_status_unlink_dialog_warning">Si vous dissociez votre Boite à messages, vous ne pourrez plus recevoir de messages si Briar est hors ligne.</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_title">Votre Boite à messages a été dissociée</string>
|
||||
<string name="mailbox_status_unlink_no_wipe_message">La prochaine fois que vous aurez accès à votre appareil Boite à messages, ouvrez l’appli Boite à messages et touchez le bouton « Dissocier » pour terminer le processus.\n\nSi vous n’avez plus accès à votre appareil Boite à messages, ne vous inquiétez pas. Vos données sont chiffrées ; elles resteront donc sécurisées même si vous ne terminez pas le processus.</string>
|
||||
<string name="mailbox_status_unlink_success">Votre Boite à messages a été dissociée</string>
|
||||
<string name="mailbox_error_notification_channel_title">Problème de Boite à messages Briar</string>
|
||||
<string name="mailbox_error_notification_title">La Boite à messages Briar est inaccessible</string>
|
||||
<string name="mailbox_error_notification_text">Touchez afin de corriger le problème.</string>
|
||||
<string name="mailbox_error_wizard_button">Corriger le problème</string>
|
||||
<string name="mailbox_error_wizard_title">Assistant de dépannage de la Boite à messages</string>
|
||||
<string name="mailbox_error_wizard_question1">Avez-vous accès à votre appareil Boite à messages ?</string>
|
||||
<string name="mailbox_error_wizard_answer1">Oui, j’y ai accès maintenant.</string>
|
||||
<string name="mailbox_error_wizard_answer2">Pas pour l’instant, mais je peux y avoir accès plus tard.</string>
|
||||
<string name="mailbox_error_wizard_answer3">Non, je n’y ai plus accès.</string>
|
||||
<string name="mailbox_error_wizard_info1_1">Assurez-vous que l’appareil Boite à messages est allumé et connecté à Internet.</string>
|
||||
<string name="mailbox_error_wizard_question1_1">Ouvrez l’appli Boite à messages. Que voyez-vous ?</string>
|
||||
<string name="mailbox_error_wizard_answer1_1">Je vois des instructions pour configurer la Boite à messages</string>
|
||||
<string name="mailbox_error_wizard_answer1_2">Je vois un code QR</string>
|
||||
<string name="mailbox_error_wizard_answer1_3">Je vois « La Boite à messages est en fonction »</string>
|
||||
<string name="mailbox_error_wizard_answer1_4">Je vois « L’appareil est hors ligne »</string>
|
||||
<string name="mailbox_error_wizard_info1_1_1">Dissociez votre Boite à messages en touchant le bouton ci-dessous, puis suivez les instructions sur l’appareil Boite à messages pour la reconnecter.</string>
|
||||
<string name="mailbox_error_wizard_info_1_1_2">Dissociez votre Boite à messages en touchant le bouton ci-dessous, puis balayez le code QR pour l’associer de nouveau.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_3">Touchez le bouton ci-dessous pour vérifier la connexion entre Briar et la Boite à messages.\n\n Si la connexion échoue de nouveau :\n \u2022 Assurez-vous d’utiliser les versions les plus récentes des applis Boite à messages et Briar.\n \u2022 Redémarrez vos appareils Boite à messages et Briar et réessayez.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_4">Assurez-vous que l’appareil Boite à messages est bien connecté à Internet.\n\nAssurez-vous que l’horloge de l’appareil Boite à messages indique la bonne heure, la bonne date et le bon fuseau horaire.\n\nAssurez-vous d’utiliser les versions les plus récentes des applis Boite à messages et Briar.\n\nRedémarrez vos appareils Boite à messages et Briar et réessayez.</string>
|
||||
<string name="mailbox_error_wizard_info2">Revenez sur cet écran quand vous aurez accès à l’appareil.</string>
|
||||
<string name="mailbox_error_wizard_info3">Dissocier votre Boite à messages en touchant le bouton ci-dessous.\n\nAprès avoir dissocié votre ancienne Boite à messages, vous pouvez en configurer une nouvelle.</string>
|
||||
<!--About-->
|
||||
<string name="about_title">À propos</string>
|
||||
<string name="briar_version">Version de Briar : %s</string>
|
||||
<string name="tor_version">Version de Tor : %s</string>
|
||||
<string name="links">Liens</string>
|
||||
<string name="briar_website">\u2022 <a href="">Site web</a></string>
|
||||
<string name="briar_source_code">\u2022 <a href="">Code source</a></string>
|
||||
<string name="briar_changelog">\u2022 <a href="">Journal des changements</a></string>
|
||||
<string name="briar_privacy_policy">\u2022 <a href="">Politique de protection des renseignements personnels</a></string>
|
||||
<!--Here translators can add their names or Transifex usernames(eg "Thanks to all the contributors at the Localization Lab, especially Tom, Matthew and Jerry")-->
|
||||
<string name="translator_thanks">Merci à tous les contributeurs du Localization Lab</string>
|
||||
<!--Conversation Settings-->
|
||||
<string name="disappearing_messages_title">Messages éphémères</string>
|
||||
<string name="disappearing_messages_explanation_long">L’activation de ce paramètre fera disparaître
|
||||
@@ -668,6 +702,8 @@ copies des messages que vous envoyez.
|
||||
<string name="disappearing_messages_summary">Faire disparaître automatiquement les futurs messages de cette conversation après 7 jours.</string>
|
||||
<!--Settings Actions-->
|
||||
<string name="pref_category_actions">Actions</string>
|
||||
<string name="share_app_link">Partager un lien de téléchargement</string>
|
||||
<string name="share_app_link_text">Télécharger Briar sur %s</string>
|
||||
<string name="send_feedback">Envoyer une rétroaction</string>
|
||||
<!--Link Warning-->
|
||||
<string name="link_warning_title">Avertissement de lien</string>
|
||||
@@ -678,12 +714,13 @@ copies des messages que vous envoyez.
|
||||
<string name="crash_report_title">Rapport de plantage de Briar</string>
|
||||
<string name="briar_crashed">Désolé, Briar a planté</string>
|
||||
<string name="not_your_fault">Vous n’y êtes pour rien.</string>
|
||||
<string name="please_send_report">Veuillez nous aider à améliorer Briar en nous envoyant un rapport de plantage.</string>
|
||||
<string name="please_send_report">Aidez à améliorer Briar en nous envoyant un rapport de plantage.</string>
|
||||
<string name="report_is_encrypted">Nous promettons que le rapport est chiffré et envoyé en toute sécurité. </string>
|
||||
<string name="feedback_title">Rétroaction</string>
|
||||
<string name="describe_crash">Décrivez ce qui s’est produit (facultatif)</string>
|
||||
<string name="enter_feedback">Saisir votre rétroaction</string>
|
||||
<string name="optional_contact_email">Votre adresse courriel (facultative)</string>
|
||||
<string name="privacy_policy">En nous envoyant des données, vous acceptez notre <a href="">politique de protection des renseignements personnels</a></string>
|
||||
<string name="include_debug_report_crash">Inclure des données anonymes concernant le plantage</string>
|
||||
<string name="include_debug_report_feedback">Inclure des données anonymes concernant cet appareil</string>
|
||||
<string name="dev_report_user_info">Renseignements sur l’utilisateur</string>
|
||||
@@ -694,6 +731,7 @@ copies des messages que vous envoyez.
|
||||
<string name="dev_report_memory">Mémoire</string>
|
||||
<string name="dev_report_storage">Stockage</string>
|
||||
<string name="dev_report_connectivity">Connectivité</string>
|
||||
<string name="dev_report_network_usage">Utilisation du réseau</string>
|
||||
<string name="dev_report_build_config">Configuration de la version</string>
|
||||
<string name="dev_report_logcat">Journal de l’appli</string>
|
||||
<string name="dev_report_device_features">Caractéristiques de l’appareil</string>
|
||||
@@ -715,14 +753,21 @@ copies des messages que vous envoyez.
|
||||
<string name="permission_camera_title">Autorisation d’accès à l’appareil photo</string>
|
||||
<string name="permission_camera_request_body">Afin de balayer le code QR, Briar doit accéder à l’appareil photo.</string>
|
||||
<string name="permission_location_title">Autorisation d’accès à la position</string>
|
||||
<string name="permission_nearby_devices_title">Autorisation des appareils à proximité</string>
|
||||
<string name="permission_location_request_body">Afin de découvrir des périphériques Bluetooth, Briar doit accéder à votre position.\n\nBriar n’enregistre pas votre position et ne la partage avec personne.</string>
|
||||
<string name="permission_camera_location_title">Appareil photo et position</string>
|
||||
<string name="permission_camera_location_request_body">Afin de balayer le code QR, Briar doit accéder à l’appareil photo.\n\nAfin de découvrir des périphériques Bluetooth, Briar doit accéder à votre position.\n\nBriar n’enregistre pas votre position et ne la partage avec personne.</string>
|
||||
<string name="permission_camera_denied_body">Vous avez refusé l’accès à l’appareil photo, mais l’ajout de contacts exige de l’utiliser.\n\nVeuillez envisager d’y accorder l’accès.</string>
|
||||
<string name="permission_location_denied_body">Vous avez refusé l’accès à votre position géographique, mais Briar en a besoin pour découvrir les appareils Bluetooth.\n\nVeuillez envisager d’y accorder l’accès.</string>
|
||||
<string name="permission_camera_location_request_body">Afin de balayer le code QR, Briar doit accéder à l’appareil photo.\n\nPour découvrir es appareils Bluetooth, Briar doit accéder à votre position.\n\nBriar n’enregistre pas votre position et ne la partage avec personne.</string>
|
||||
<string name="permission_camera_bluetooth_title">Appareil photo et appareils à proximité</string>
|
||||
<string name="permission_camera_bluetooth_request_body">Afin de balayer le code QR, Briar doit accéder à l’appareil photo.\n\nPour découvrir les appareils Bluetooth, Briar doit avoir l’autorisation de trouver des appareils à proximité et de s’y connecter.</string>
|
||||
<string name="permission_camera_denied_body">Vous avez refusé l’accès à l’appareil photo, mais l’ajout de contacts exige de l’utiliser.\n\nEnvisagez d’y accorder l’accès.</string>
|
||||
<string name="permission_location_denied_body">Vous avez refusé l’accès à votre position géographique, mais Briar en a besoin pour découvrir les appareils Bluetooth.\n\nEnvisagez d’y accorder l’accès.</string>
|
||||
<string name="permission_location_setting_title">Paramètre de localisation</string>
|
||||
<string name="permission_location_setting_body">Afin de trouver d’autres appareils par Bluetooth, le paramètre Position de votre appareil doit être activé. Veuillez l’activer afin de poursuivre. Vous pourrez le désactiver ultérieurement.</string>
|
||||
<string name="permission_location_setting_body">Afin de trouver d’autres appareils par Bluetooth, le paramètre Position de votre appareil doit être activé. Activez-le afin de poursuivre. Vous pourrez le désactiver ultérieurement.</string>
|
||||
<string name="permission_location_setting_hotspot_body">Afin de créer un point d’accès sans fil, le paramètre Position de votre appareil doit être activé. Activez-le afin de poursuivre. Vous pourrez le désactiver ultérieurement.</string>
|
||||
<string name="permission_location_setting_button">Activer la position</string>
|
||||
<string name="permission_bluetooth_title">Autorisation des appareils à proximité</string>
|
||||
<string name="permission_bluetooth_body">Afin d’utiliser les communications par Bluetooth, Briar a besoin de l’autorisation de trouver des appareils proches et de s’y connecter.</string>
|
||||
<string name="permission_bluetooth_denied_body">Vous avez refusé l’accès appareils à proximité, mais Briar a besoin de cette autorisation afin d’utiliser le Bluetooth.\n\nEnvisagez de l’accorder.</string>
|
||||
<string name="qr_code">Code QR</string>
|
||||
<string name="show_qr_code_fullscreen">Afficher le code QR en plein écran</string>
|
||||
<!--App Locking-->
|
||||
@@ -733,46 +778,106 @@ copies des messages que vous envoyez.
|
||||
<string name="lock_is_locked">Briar est verrouillée</string>
|
||||
<string name="lock_tap_to_unlock">Toucher pour déverrouiller</string>
|
||||
<!--Connections Screen-->
|
||||
<string name="transports_help_text">Briar peut se connecter à vos contacts par Internet, Wi-Fi ou Bluetooth.\n\nToutes les connections Internet passent par le réseau Tor afin de protéger les données.\n\nSi un contact peut être joint par plusieurs moyens, Briar les utilisera simultanément.</string>
|
||||
<string name="transports_help_text">Briar peut se connecter à vos contacts par Internet, wifi ou Bluetooth.\n\nToutes les connections Internet passent par le réseau Tor afin de protéger les données.\n\nSi un contact peut être joint par plusieurs moyens, Briar les utilisera simultanément.</string>
|
||||
<!--Share app offline-->
|
||||
<string name="hotspot_title">Partager cette appli hors ligne.</string>
|
||||
<string name="hotspot_intro">Partagez cette appli avec une personne à proximité sans connexion Internet en utilisant le Wi-Fi de votre téléphone.
|
||||
\n\nVotre téléphone démarrera un point d’accès Wi-Fi. Les personnes à proximité peuvent se connecter au point d’accès sans fil et télécharger l’appli Briar de votre téléphone.</string>
|
||||
<string name="hotspot_button_start_sharing">Démarrer le point d’accès sans fil</string>
|
||||
<string name="hotspot_intro">Partagez cette appli avec une personne à proximité sans connexion Internet en utilisant le wifi de votre appareil.
|
||||
\n\nVotre appareil activera un point d’accès sans fil. Les personnes à proximité peuvent se connecter au point d’accès sans fil et télécharger l’appli Briar de votre appareil.</string>
|
||||
<string name="hotspot_button_start_sharing">Activer un point d’accès sans fil</string>
|
||||
<string name="hotspot_button_stop_sharing">Arrêter le point d’accès sans fil</string>
|
||||
<string name="hotspot_progress_text_start">Configuration du point d’accès sans fil…</string>
|
||||
<string name="hotspot_notification_channel_title">Point d’accès Wi-Fi</string>
|
||||
<string name="hotspot_notification_channel_title">Point d’accès wifi</string>
|
||||
<string name="hotspot_notification_title">Partage hors ligne de Briar</string>
|
||||
<string name="hotspot_button_connected">Suivant</string>
|
||||
<string name="permission_hotspot_location_request_body">Pour créer un point d’accès Wi-Fi, Briar a besoin de l’autorisation Position.\n\nBriar ne stocke pas votre position et ne la partage avec personne.</string>
|
||||
<string name="permission_hotspot_location_denied_body">Vous avez refusé l’accès à votre position, mais Briar en a besoin pour créer un point d’accès Wi-Fi.\n\nNous vous invitons à y accorder l’accès.</string>
|
||||
<string name="wifi_settings_title">Paramètre Wi-Fi</string>
|
||||
<string name="wifi_settings_request_enable_body">Pour créer un point d’accès Wi-Fi, Briar a besoin d’utiliser le Wi-Fi. Veuillez l’activer.</string>
|
||||
<string name="permission_hotspot_location_request_body">Afin de créer un point d’accès sans fil, Briar a besoin de l’autorisation Position.\n\nBriar ne stocke pas votre position et ne la partage avec personne.</string>
|
||||
<string name="permission_hotspot_location_request_precise_body">Afin de créer un point d’accès sans fil, Briar a besoin d’accéder à votre position exacte.\n\nBriar ne stocke pas votre position et ne la partage avec personne.</string>
|
||||
<string name="permission_hotspot_location_denied_body">Vous avez refusé l’accès à votre position, mais Briar en a besoin pour créer un point d’accès sans fil.\n\nNous vous invitons à l’accorder.</string>
|
||||
<string name="permission_hotspot_location_denied_precise_body">Vous avez refusé l’accès à votre position précise, mais Briar en a besoin pour créer un point d’accès sans fil.\n\nNous vous invitons à l’accorder.</string>
|
||||
<string name="permission_hotspot_nearby_wifi_request_body">Afin de créer un point d’accès sans fil, Briar a besoin d’accéder aux appareils à proximité.</string>
|
||||
<string name="permission_hotspot_nearby_wifi_denied_body">Vous avez refusé l’accès aux appareils à proximité, mais Briar en a besoin pour créer un point d’accès sans fil.\n\nNous vous invitons à l’accorder.</string>
|
||||
<string name="wifi_settings_title">Paramètre wifi</string>
|
||||
<string name="wifi_settings_request_enable_body">Afin de créer un point d’accès sans fil, Briar a besoin d’utiliser le wifi. Activez-le.</string>
|
||||
<string name="hotspot_tab_manual">Manuel</string>
|
||||
<!--The placeholder to be inserted into the string 'hotspot_manual_wifi': People can connect by %s-->
|
||||
<string name="hotspot_scanning_a_qr_code">balayant un code QR</string>
|
||||
<!--Wi-Fi setup-->
|
||||
<!--The %s placeholder will be replaced with the translation of 'hotspot_scanning_a_qr_code'-->
|
||||
<string name="hotspot_manual_wifi">Votre appareil fournit un point d’accès sans fil. Les personnes qui veulent télécharger Briar peuvent se connecter au point d’accès en l’ajoutant dans les paramètres wifi de leur appareil à l’aide des détails ci-dessous ou par %s. Après connexion au point d’accès sans fil, touchez « Suivant ». </string>
|
||||
<string name="hotspot_manual_wifi_ssid">Nom du réseau</string>
|
||||
<string name="hotspot_no_peers_connected">Aucun appareil connecté</string>
|
||||
<string name="hotspot_qr_wifi">Votre appareil fournit un point d’accès sans fil. Les personnes qui veulent télécharger Briar peuvent se connecter au point d’accès en balayant ce code QR. Après connexion au point d’accès sans fil, touchez « Suivant ». </string>
|
||||
<string name="hotspot_no_peers_connected">Aucun appareil n’est connecté</string>
|
||||
<plurals name="hotspot_peers_connected">
|
||||
<item quantity="one">%s appareil est connecté</item>
|
||||
<item quantity="many">%s d’appareils sont connectés</item>
|
||||
<item quantity="other">%s appareils sont connectés</item>
|
||||
</plurals>
|
||||
<!--Download link-->
|
||||
<!--The %s placeholder will be replaced with the translation of 'hotspot_scanning_a_qr_code'-->
|
||||
<string name="hotspot_manual_site">Votre appareil fournit un point d’accès sans fil. Les personnes connectées au point d’accès peuvent télécharger Briar en accédant au lien suivant dans un navigateur Web ou %s.</string>
|
||||
<string name="hotspot_manual_site_address">Adresse (URL)</string>
|
||||
<string name="hotspot_qr_site">Votre appareil fournit un point d’accès sans fil. Les personnes connectées au point d’accès peuvent télécharger Briar en balayant ce code QR.</string>
|
||||
<!--e.g. Download Briar 1.2.20-->
|
||||
<string name="website_download_title_1">Télécharger Briar %s</string>
|
||||
<string name="website_download_intro_1">Une personne à proximité a partagé Briar avec vous.</string>
|
||||
<string name="website_download_button">Télécharger Briar</string>
|
||||
<string name="website_download_outro">Une fois le téléchargement terminé, ouvrez le fichier téléchargé et installez-le.</string>
|
||||
<string name="website_troubleshooting_title">Dépannage</string>
|
||||
<string name="website_troubleshooting_1">Si vous ne parvenez pas à télécharger l’appli, essayez avec un autre navigateur Web.</string>
|
||||
<string name="website_troubleshooting_2_old">Pour installer l’appli téléchargée, vous devez autoriser l’installation d’applis de « sources inconnues » dans les paramètres du système. Il se peut que vous deviez retélécharger l’appli. Nous vous recommandons de désactiver le paramètre « Sources inconnues » après avoir installé l’appli.</string>
|
||||
<string name="website_troubleshooting_2_new">Pour installer l’appli téléchargée, vous devez autoriser votre navigateur à installer des applis inconnues. Après avoir installé l’appli, nous vous recommandons de supprimer l’autorisation du navigateur à installer des applis inconnues.</string>
|
||||
<string name="hotspot_help_wifi_title">Problèmes de connexion au wifi :</string>
|
||||
<string name="hotspot_help_wifi_1">Essayez de désactiver et de réactiver le wifi sur les deux appareils et réessayez.</string>
|
||||
<string name="hotspot_help_wifi_2">Si votre appareil indique que le wifi n’est pas connecté à Internet, confirmez que vous voulez quand même rester connecté.</string>
|
||||
<string name="hotspot_help_wifi_3">Redémarrez l’appareil qui gère le point d’accès wifi, puis lancez Briar et réessayez le partage.</string>
|
||||
<string name="hotspot_help_site_title">Problèmes de consultation du site Web local :</string>
|
||||
<string name="hotspot_help_site_1">Vérifiez que vous avez saisi l’adresse exactement comme indiqué. Une petite erreur peut entrainer un échec.</string>
|
||||
<string name="hotspot_help_site_2">Assurez-vous que votre appareil est toujours connecté au bon wifi (voir ci-dessus) quand vous essayez d’accéder au site.</string>
|
||||
<string name="hotspot_help_site_3">Si vous utilisez une appli pare-feu, assurez-vous qu’elle ne bloque pas l’accès.</string>
|
||||
<string name="hotspot_help_site_4">Si vous pouvez visiter le site, mais ne pouvez pas télécharger l’appli Briar, essayez avec un autre navigateur.</string>
|
||||
<string name="hotspot_help_fallback_title">Rien ne fonctionne</string>
|
||||
<string name="hotspot_help_fallback_intro">Vous pouvez tenter d’enregistrer l’appli en tant que fichier .apk pour la partager d’une autre manière. Une fois le fichier transféré sur l’autre appareil, il peut être utilisé pour installer Briar.
|
||||
\n\nConseil : Pour le partage par Bluetooth, vous devrez peut-être renommer le fichier pour qu’il se termine par .zip.</string>
|
||||
<string name="hotspot_help_fallback_button">Enregistrer l’appli</string>
|
||||
<!--error handling-->
|
||||
<string name="hotspot_error_intro">Un problème est survenu lors du partage de l’appli par wifi :</string>
|
||||
<string name="hotspot_error_no_wifi_direct">L’appareil ne prend pas en charge le wifi direct</string>
|
||||
<string name="hotspot_error_start_callback_failed">Échec d’activation du point d’accès sans fil : erreur %s</string>
|
||||
<string name="hotspot_error_start_callback_failed_unknown">Échec d’activation du point d’accès sans fil avec une erreur inconnue. Raison %d</string>
|
||||
<string name="hotspot_error_start_callback_no_group_info">Échec d’activation du point d’accès : aucune donnée de groupe</string>
|
||||
<string name="hotspot_error_web_server_start">Erreur de démarrage du serveur Web</string>
|
||||
<string name="hotspot_error_web_server_serve">Erreur de présentation du site Web.\n\nSi le problème persiste, informez-nous-en (sans données personnelles) dans l\'appli Briar.</string>
|
||||
<string name="hotspot_flag_test">Avertissement : Cette appli a été installée avec Android Studio et ne peut pas être installée sur un autre appareil.</string>
|
||||
<string name="hotspot_error_framework_busy">Impossible d’activer le point d’accès sans fil.\n\nSi un autre point d’accès sans fil est activé ou si vous partagez votre connexion Internet par wifi, arrêtez-le et réessayez.</string>
|
||||
<!--Transfer Data via Removable Drives-->
|
||||
<string name="removable_drive_menu_title">Se connecter par un lecteur amovible</string>
|
||||
<string name="removable_drive_intro">Si vous n’arrivez pas à vous connecter à votre contact par Internet, wifi ou Bluetooth, Briar peut aussi transférer des messages sur un disque amovible tel qu’une clé USB ou une carte SD.</string>
|
||||
<string name="removable_drive_explanation">Si vous n’arrivez pas à vous connecter à votre contact par Internet, wifi ou Bluetooth, Briar peut aussi transférer des messages sur un disque amovible tel qu’une clé USB ou une carte SD.\n\nSi vous utilisez le bouton « Envoyer les données », les données en attente d’envoi au contact sont écrites sur le disque amovible. Cela comprend les messages privés, les fichiers joints, les blogues, les forums et les groupes privés.\n\nTout sera chiffré avant d’être écrit sur le disque amovible.\n\nAprès avoir reçu le disque amovible, votre contact utilise le bouton « Recevoir des données » pour importer les messages dans son Briar.</string>
|
||||
<string name="removable_drive_title_send">Envoyer les données</string>
|
||||
<string name="removable_drive_title_receive">Recevoir des données</string>
|
||||
<string name="removable_drive_send_intro">Touchez le bouton ci-dessous pour créer un nouveau fichier comprenant les messages chiffrés. Vous pouvez choisir la destination d’enregistrement.\n\nSi vous voulez enregistrer le fichier sur un lecteur amovible, insérez le lecteur.</string>
|
||||
<string name="removable_drive_send_no_data">Aucun message en attente d’envoi à ce contact.</string>
|
||||
<string name="removable_drive_send_not_supported">Ce contact utilise une ancienne version de Briar ou un ancien appareil qui ne prend pas en charge cette fonction.</string>
|
||||
<string name="removable_drive_send_button">Choisir le fichier à exporter</string>
|
||||
<string name="removable_drive_ongoing">Attendez la fin de la tâche en cours</string>
|
||||
<string name="removable_drive_receive_intro">Touchez le bouton ci-dessous pour choisir le fichier que votre contact vous a envoyé.\n\nSi le fichier se trouve sur un lecteur amovible, insérez le lecteur.</string>
|
||||
<string name="removable_drive_receive_button">Choisir le fichier à importer</string>
|
||||
<string name="removable_drive_success_send_title">L’exportation est réussie</string>
|
||||
<string name="removable_drive_success_send_text">Les données ont été exportées. Vous disposez de 28 jours pour transmettre le fichier à votre contact.\n\nSi le fichier se trouve sur un disque amovible, utilisez la notification dans la barre d’état pour éjecter le disque avant de le débrancher.</string>
|
||||
<string name="removable_drive_success_receive_title">L’importation est réussie</string>
|
||||
<string name="removable_drive_error_receive_title">Erreur lors de l\'importation de données</string>
|
||||
<string name="removable_drive_success_receive_text">Tous les messages chiffrés compris dans ce fichier ont été reçus.</string>
|
||||
<string name="removable_drive_error_send_title">Erreur d’exportation des données</string>
|
||||
<string name="removable_drive_error_send_text">Une erreur est survenue lors de l’écriture des données dans le fichier.\n\nSi vous utilisez un disque amovible, assurez-vous qu’il est correctement inséré et réessayez. Si l’erreur persiste, envoyer une rétroaction pour informer l’équipe Briar du problème.</string>
|
||||
<string name="removable_drive_error_receive_title">Erreur d’importation des données</string>
|
||||
<string name="removable_drive_error_receive_text">Le fichier choisi ne comprenait rien que Briar puisse reconnaitre.\n\nAssurez-vous d’avoir choisi le bon fichier.\n\nSi votre contact a créé le fichier il y a plus de 28 jours, Briar ne pourra pas le reconnaitre.</string>
|
||||
<!--Screenshots-->
|
||||
<!--This is a name to be used in screenshots. Feel free to change it to a local name.-->
|
||||
<string name="screenshot_alice">Laurence</string>
|
||||
<!--This is a name to be used in screenshots. Feel free to change it to a local name.-->
|
||||
<string name="screenshot_bob">Thomas</string>
|
||||
<string name="screenshot_bob">Olivier</string>
|
||||
<!--This is a name to be used in screenshots. Feel free to change it to a local name.-->
|
||||
<string name="screenshot_carol">Léa</string>
|
||||
<!--This is a message to be used in screenshots. Please use the same translation for Bob!-->
|
||||
<string name="screenshot_message_1">Bonjour, Thomas !</string>
|
||||
<string name="screenshot_message_1">Bonjour, Olivier !</string>
|
||||
<!--This is a message to be used in screenshots. Please use the same translation for Alice!-->
|
||||
<string name="screenshot_message_2">Bonjour, Laurence ! Merci de m’avoir parlé de Briar !</string>
|
||||
<!--This is a message to be used in screenshots.-->
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
<string name="confirm_password">Conferma la tua password</string>
|
||||
<string name="name_too_long">Nome troppo lungo</string>
|
||||
<string name="password_too_weak">La password è troppo debole</string>
|
||||
<string name="password_quite_strong">La password è buona</string>
|
||||
<string name="password_strong">La password è robusta</string>
|
||||
<string name="passwords_do_not_match">La password non corrisponde</string>
|
||||
<string name="create_account_button">Crea account</string>
|
||||
<string name="more_info">Ulteriori Informazioni</string>
|
||||
@@ -35,6 +37,7 @@
|
||||
<string name="try_again">Password sbagliata, riprova</string>
|
||||
<string name="dialog_title_cannot_check_password">Impossibile controllare la password</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar non riesce a controllare la tua password. Prova a riavviare il dispositivo per risolvere il problema.</string>
|
||||
<string name="sign_in_title">Accedi a Briar</string>
|
||||
<string name="sign_in_button">Entra</string>
|
||||
<string name="forgotten_password">Hai dimenticato la tua password?</string>
|
||||
<string name="dialog_title_lost_password">Password persa</string>
|
||||
|
||||
@@ -28,6 +28,9 @@
|
||||
<string name="dnkm_xiaomi_button">Apsaugoti Briar</string>
|
||||
<string name="dnkm_xiaomi_help">Jei Briar nebus prirakinta prie paskiausiųjų programėlių sąrašo, ji negalės veikti fone.</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_old">1. Atverkite paskiausiųjų programėlių sąrašą (dar vadinamą programėlių perjungikliu)\n\n2. Ant Briar atvaizdo perbraukite žemyn, kad būtų rodoma pakabinamos spynos piktograma\n\n3. Jei pakabinama spyna neužrakinta, bakstelėkite, kad ją užrakintumėte</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_new">1. Atverkite paskiausiųjų programėlių sąrašą (dar vadinamą programėlių perjungikliu)\n\n2. Jei šalia Briar pavadinimo yra mažas pakabinamos spynos atvaizdas, tuomet jums nieko daugiau nebereikia daryti\n\n3. Jei pakabinamos spynos nėra, paspauskite ir palaikykite ant Briar atvaizdo tol, kol atsiras pakabinamos spynos mygtukas, ir tuomet bakstelėkite ant jo</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_text">Bakstelėkite mygtuką žemiau, kad atvertumėte saugumo nustatymus. Bakstelėkite „Padidinti greitį“ (angl. Boost speed), o tuomet, bakstelėkite „Užrakinti programėles“ (angl. Lock apps) ir įsitikinkite, kad Briar yra nustatyta į „Užrakinta“ (angl. Locked).</string>
|
||||
<string name="dnkm_xiaomi_lock_apps_help">Jei „Užrakintų programėlių“ (angl. Locked apps) lange Briar nėra nustatyta į „Užrakinta“ (angl. Locked), tuomet Briar negalės veikti fone.</string>
|
||||
<string name="dnkm_warning_dozed_1">Briar nepavyko pasileisti fone</string>
|
||||
<!--Login-->
|
||||
<string name="enter_password">Slaptažodis</string>
|
||||
@@ -144,7 +147,7 @@
|
||||
<string name="accept">Priimti</string>
|
||||
<string name="decline">Atmesti</string>
|
||||
<string name="online">Pasiekiama(-s)</string>
|
||||
<string name="offline">Nepasiekiama(-s)</string>
|
||||
<string name="offline">Nepasiekiama(s)</string>
|
||||
<string name="send">Siųsti</string>
|
||||
<string name="allow">Leisti</string>
|
||||
<string name="open">Atverti</string>
|
||||
@@ -235,7 +238,7 @@
|
||||
<string name="dialog_title_image_support">Dabar šiam adresatui galite siųsti atvaizdus</string>
|
||||
<string name="dialog_message_image_support">Bakstelėkite šią piktogramą, norėdami pridėti atvaizdus.</string>
|
||||
<string name="messaging_too_many_attachments_toast">Bus išsiųsti tik %d pirmi atvaizdai</string>
|
||||
<string name="menu_contact">Susisiekti</string>
|
||||
<string name="menu_contact">Adresatas</string>
|
||||
<!--Adding Contacts-->
|
||||
<string name="add_contact_title">Pridėti šalia esantį adresatą</string>
|
||||
<string name="add_contact_error_two_way">Ar jūs abu nuskenavote vienas kito QR kodus?</string>
|
||||
@@ -351,6 +354,7 @@
|
||||
<string name="connect_via_bluetooth_intro">Tuo atveju, jei Bluetooth ryšiai neveikia automatiškai, galite naudoti šį langą, kad prisijungtumėte rankiniu būdu.\n\nTam, kad tai suveiktų, jūsų adresatas turi būti šalia jūsų.\n\nJūs ir jūsų adresatas vienu metu turėtumėte paspausti „Pradėti“.</string>
|
||||
<string name="connect_via_bluetooth_already_discovering">Jau bandoma jungtis per Bluetooth. Netrukus bandykite dar kartą.</string>
|
||||
<string name="connect_via_bluetooth_no_location_permission">Nepavyksta tęsti be įrenginio vietovės leidimo</string>
|
||||
<string name="connect_via_bluetooth_no_bluetooth_permission">Nepavyksta tęsti be įrenginių netoliese leidimo</string>
|
||||
<string name="connect_via_bluetooth_start">Jungiamasi per Bluetooth…</string>
|
||||
<string name="connect_via_bluetooth_success">Sėkmingai prisijungta per Bluetooth</string>
|
||||
<string name="connect_via_bluetooth_error">Nepavyko prisijungti per Bluetooth.</string>
|
||||
@@ -617,6 +621,8 @@
|
||||
<string name="mailbox_setup_title">Pašto dėžutės sąranka</string>
|
||||
<string name="mailbox_setup_intro">Pašto dėžutė leidžia adresatams siųsti jums žinutes, kai esate neprisijungę prie interneto. Žinutės bus siunčiamos į jūsų pašto dėžutę ir saugomos ten tol, kol prisijungsite prie interneto.\n
|
||||
\nGalite įsidiegti Briar pašto dėžutę laisvame atsarginiame įrenginyje. Palikite įrenginį prijungtą prie maitinimo šaltinio ir belaidžio (Wi-Fi) ryšio, kad jis būtų pastoviai prijungtas prie interneto.</string>
|
||||
<string name="mailbox_setup_download">Pirmiausia, įsidiekite kitame įrenginyje pašto dėžutės programėlę: atverkite „Google Play“ ar kitą programėlių parduotuvę, iš kurios atsisiuntėte Briar, ir įrašykite į paiešką raktažodį „Briar Mailbox“.\n
|
||||
\nTuomet, susiekite pašto dėžutę su Briar, nuskenuodami pašto dėžutės programėlėje rodomą QR kodą.</string>
|
||||
<string name="mailbox_setup_download_link">Bendrinti atsisiuntimo nuorodą</string>
|
||||
<string name="mailbox_setup_button_scan">Skenuoti pašto dėžutės QR kodą</string>
|
||||
<string name="permission_camera_qr_denied_body">Jūs uždraudėte prieigą prie kameros, tačiau norint skenuoti QR kodą, reikia naudoti kamerą.\n\nApsvarstykite galimybę sutekti prieigą prie kameros.</string>
|
||||
@@ -675,6 +681,7 @@
|
||||
<string name="mailbox_error_wizard_answer1_1">Aš matau instrukcijas, kaip nustatyti pašto dėžutę.</string>
|
||||
<string name="mailbox_error_wizard_answer1_2">Aš matau QR kodą</string>
|
||||
<string name="mailbox_error_wizard_answer1_3">Aš matau „Pašto dėžutė veikia“</string>
|
||||
<string name="mailbox_error_wizard_answer1_4">Aš matau „Internetas nepasiekiamas“</string>
|
||||
<string name="mailbox_error_wizard_info1_1_1">Atsiekite savo pašto dėžutę naudodami žemiau esantį mygtuką, o tuomet sekite instrukcijas pašto dėžutės įrenginyje, kad vėl ją susietumėte.</string>
|
||||
<string name="mailbox_error_wizard_info_1_1_2">Atsiekite pašto dėžutę naudodami žemiau esantį mygtuką, o tuomet, nuskenuokite QR kodą, kad vėl ją susietumėte.</string>
|
||||
<string name="mailbox_error_wizard_info1_1_3">Naudokite žemiau esantį mygtuką, kad patikrintumėte ryšį tarp Briar ir pašto dėžutės.\n\n
|
||||
@@ -761,9 +768,11 @@
|
||||
<string name="permission_camera_title">Kameros leidimas</string>
|
||||
<string name="permission_camera_request_body">Norint nuskenuoti QR kodą, Briar reikia prieigos prie kameros.</string>
|
||||
<string name="permission_location_title">Įrenginio vietovės leidimas</string>
|
||||
<string name="permission_nearby_devices_title">Įrenginių netoliese leidimas</string>
|
||||
<string name="permission_location_request_body">Tam, kad galėtų atrasti Bluetooth įrenginius, Briar reikia gauti prieigą prie jūsų įrenginio vietovės.\n\nBriar nesaugo jūsų įrenginio vietovės ir su niekuo jos nebendrina.</string>
|
||||
<string name="permission_camera_location_title">Kamera ir įrenginio vietovė</string>
|
||||
<string name="permission_camera_location_request_body">Tam, kad galėtų nuskenuoti QR kodą, Briar reikia gauti prieigą prie jūsų kameros.\n\nTam, kad galėtų atrasti Bluetooth įrenginius, Briar reikia gauti prieigą prie jūsų įrenginio vietovės.\n\nBriar nesaugo jūsų įrenginio vietovės ir su niekuo jos nebendrina.</string>
|
||||
<string name="permission_camera_bluetooth_title">Kamera ir įrenginiai netoliese</string>
|
||||
<string name="permission_camera_bluetooth_request_body">Tam, kad galėtų nuskenuoti QR kodą, Briar reikia gauti prieigą prie jūsų kameros.\n\nTam, kad galėtų atrasti Bluetooth įrenginius, Briar reikia leidimo, skirto rasti ir prisijungti prie netoliese esančių įrenginių.</string>
|
||||
<string name="permission_camera_denied_body">Jūs uždraudėte prieigą prie kameros, tačiau norint pridėti adresatus, reikia naudoti kamerą.\n\nApsvarstykite galimybę sutekti prieigą prie kameros.</string>
|
||||
<string name="permission_location_denied_body">Jūs uždraudėte prieigą prie įrenginio vietovės, tačiau norint atrasti Bluetooth įrenginius, Briar reikia šio leidimo.\n\nApsvarstykite galimybę sutekti prieigą prie įrenginio vietovės.</string>
|
||||
@@ -771,6 +780,9 @@
|
||||
<string name="permission_location_setting_body">Norint rasti kitus įrenginius per Bluetooth, privalo būti įjungtas jūsų įrenginio vietovės nustatymas. Norėdami tęsti, įjunkite įrenginio vietovę. Po to, galėsite ir vėl ją išjungti.</string>
|
||||
<string name="permission_location_setting_hotspot_body">Norint sukurti belaidį (Wi-Fi) viešosios interneto prieigos tašką, privalo būti įjungtas jūsų įrenginio vietovės nustatymas. Norėdami tęsti, įjunkite įrenginio vietovę. Po to, galėsite ir vėl ją išjungti.</string>
|
||||
<string name="permission_location_setting_button">Įjungti įrenginio vietovę</string>
|
||||
<string name="permission_bluetooth_title">Įrenginių netoliese leidimas</string>
|
||||
<string name="permission_bluetooth_body">Tam, kad naudotų Bluetooth komunikaciją, Briar reikia leidimo rasti ir prisijungti prie įrenginių netoliese.</string>
|
||||
<string name="permission_bluetooth_denied_body">Jūs uždraudėte prieigą prie įrenginių netoliese, tačiau norint naudoti Bluetooth, Briar reikia šio leidimo.\n\nApsvarstykite galimybę sutekti prieigą prie įrenginių netoliese.</string>
|
||||
<string name="qr_code">QR kodas</string>
|
||||
<string name="show_qr_code_fullscreen">Rodyti QR kodą visame ekrane</string>
|
||||
<!--App Locking-->
|
||||
@@ -796,6 +808,8 @@
|
||||
<string name="permission_hotspot_location_request_precise_body">Tam, kad galėtų sukurti belaidį (Wi-Fi) viešosios interneto prieigos tašką, Briar reikia gauti prieigą prie jūsų tikslios įrenginio vietovės.\n\nBriar nesaugo jūsų įrenginio vietovės ir su niekuo jos nebendrina.</string>
|
||||
<string name="permission_hotspot_location_denied_body">Jūs uždraudėte prieigą prie įrenginio vietovės, tačiau norint sukurti belaidį (Wi-Fi) viešosios interneto prieigos tašką, Briar reikia šio leidimo.\n\nApsvarstykite galimybę sutekti prieigą prie įrenginio vietovės.</string>
|
||||
<string name="permission_hotspot_location_denied_precise_body">Jūs uždraudėte prieigą prie tikslios įrenginio vietovės, tačiau norint sukurti belaidį (Wi-Fi) viešosios interneto prieigos tašką, Briar reikia šio leidimo.\n\nApsvarstykite galimybę sutekti prieigą prie įrenginio vietovės.</string>
|
||||
<string name="permission_hotspot_nearby_wifi_request_body">Tam, kad sukurtų belaidį (Wi-Fi) viešosios interneto prieigos tašką, Briar reikia leidimo gauti prieigą prie įrenginių netoliese.</string>
|
||||
<string name="permission_hotspot_nearby_wifi_denied_body">Jūs uždraudėte prieigą prie įrenginių netoliese, tačiau norint sukurti belaidį (Wi-Fi) viešosios interneto prieigos tašką, Briar reikia šio leidimo.\n\nApsvarstykite galimybę sutekti prieigą prie įrenginių netoliese.</string>
|
||||
<string name="wifi_settings_title">Belaidžio (Wi-Fi) nustatymas</string>
|
||||
<string name="wifi_settings_request_enable_body">Tam, kad sukurtų belaidį (Wi-Fi) viešosios interneto prieigos tašką, Briar turi naudoti belaidį (Wi-Fi) ryšį. Įjunkite jį.</string>
|
||||
<string name="hotspot_tab_manual">Rankinis</string>
|
||||
|
||||
@@ -13,19 +13,19 @@
|
||||
<string name="confirm_password">Confirme sua senha</string>
|
||||
<string name="name_too_long">O nome está muito grande</string>
|
||||
<string name="password_too_weak">A senha está muito fraca</string>
|
||||
<string name="password_quite_strong">A senha é OK</string>
|
||||
<string name="password_strong">A senha é forte</string>
|
||||
<string name="password_quite_strong">A senha está correta</string>
|
||||
<string name="password_strong">A senha é segura</string>
|
||||
<string name="passwords_do_not_match">As senhas não conferem</string>
|
||||
<string name="create_account_button">Criar conta</string>
|
||||
<string name="more_info">Informações adicionais</string>
|
||||
<string name="don_t_ask_again">Não perguntar novamente</string>
|
||||
<string name="dnkm_huawei_protected_text">Toque no botão abaixo e verifique se o Briar está protegido na tela \"Aplicativos Protegidos\"</string>
|
||||
<string name="dnkm_huawei_protected_button">Proteger o Briar</string>
|
||||
<string name="dnkm_huawei_protected_button">Proteja o Briar</string>
|
||||
<string name="dnkm_huawei_protected_help">Se o Briar não for adicionado à lista de aplicativos protegidos ele não poderá ser executado em segundo plano.</string>
|
||||
<string name="dnkm_huawei_app_launch_text">Por favor, toque no botão abaixo, abra a tela de \"Lançamento de apps\" e certifique que o Briar está definido para \"Gerenciar manualmente\".</string>
|
||||
<string name="dnkm_huawei_app_launch_help">Se o Briar não estiver definido como \"Gerenciar manualmente\" na tela de \"Lançamento de apps\", ele não poderá ser executado em segundo plano.</string>
|
||||
<string name="dnkm_xiaomi_text">Para ser executado em segundo plano, o Briar deve estar fixado à lista de apps recentes.</string>
|
||||
<string name="dnkm_xiaomi_button">Proteger o Briar</string>
|
||||
<string name="dnkm_xiaomi_button">Proteja o Briar</string>
|
||||
<string name="dnkm_xiaomi_help">Se o Briar não estiver fixado à lista de aplicativos recentes, ele não poderá ser executado em segundo plano.</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_old">1. Abra a lista de aplicativos recentes (também chamada de alternador de aplicativos)\n\n2. Deslize para baixo na imagem do Briar para mostrar o ícone de cadeado\n\n3. Se o cadeado não estiver trancado, toque para trancá-lo</string>
|
||||
<string name="dnkm_xiaomi_dialog_body_new">1. Abra a lista de aplicativos recentes (também chamada de alternador de aplicativos)\n\n2. Se Briar tiver uma pequena imagem de um cadeado ao lado de seu nome, então você não precisa fazer nada\n\n3. Se não houver cadeado, pressione e segure a imagem de Briar até que o botão de cadeado apareça e, em seguida, toque nele</string>
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
<string name="confirm_password">Confirmați parola</string>
|
||||
<string name="name_too_long">Numele este prea lung</string>
|
||||
<string name="password_too_weak">Parola este prea slabă</string>
|
||||
<string name="password_quite_strong">Parola este în regulă </string>
|
||||
<string name="password_strong">Parola este puternică</string>
|
||||
<string name="passwords_do_not_match">Parolele nu sunt identice</string>
|
||||
<string name="create_account_button">Creați cont</string>
|
||||
<string name="more_info">Informații suplimentare</string>
|
||||
@@ -35,7 +37,9 @@
|
||||
<string name="try_again">Parolă greșită, încercați din nou</string>
|
||||
<string name="dialog_title_cannot_check_password">Nu se poate verifica parola</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar nu poate verifica parola. Încercați să reporniți dispozitivul pentru a rezolva această problemă.</string>
|
||||
<string name="sign_in_title">Conectați-vă la Briar</string>
|
||||
<string name="sign_in_button">Autentificare</string>
|
||||
<string name="forgotten_password">V-ați uitat parola?</string>
|
||||
<string name="dialog_title_lost_password">Parolă uitată</string>
|
||||
<string name="dialog_message_lost_password">Contul dvs. Briar este stocat criptat pe dispozitivul dvs., nu în cloud, prin urmare nu putem reseta parola dvs. Doriți să vă ștergeți contul și să o luați de la capăt? Atenție: identitățile, contactele și mesajele dvs. vor fi pierdute definitiv.</string>
|
||||
<string name="startup_failed_activity_title">Eroare de pornire Briar</string>
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
<string name="confirm_password">Parolanızı onaylayın</string>
|
||||
<string name="name_too_long">Ad çok uzun</string>
|
||||
<string name="password_too_weak">Parola çok zayıf</string>
|
||||
<string name="password_quite_strong">Parola uygun</string>
|
||||
<string name="password_strong">Parola güçlü</string>
|
||||
<string name="passwords_do_not_match">Parola ile onayı aynı değil</string>
|
||||
<string name="create_account_button">Hesap aç</string>
|
||||
<string name="more_info">Diğer bilgiler</string>
|
||||
@@ -35,6 +37,7 @@
|
||||
<string name="try_again">Parola yanlış, yeniden deneyin</string>
|
||||
<string name="dialog_title_cannot_check_password">Parola denetlenemedi</string>
|
||||
<string name="dialog_message_cannot_check_password">Briar parolanızı denetleyemedi. Sorunu çözmek için lütfen aygıtınızı yeniden başlatın.</string>
|
||||
<string name="sign_in_title">Briar oturumu aç</string>
|
||||
<string name="sign_in_button">Oturum aç</string>
|
||||
<string name="forgotten_password">Parolamı unuttum</string>
|
||||
<string name="dialog_title_lost_password">Parolamı unuttum</string>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<item>ast</item>
|
||||
<item>az</item>
|
||||
<item>bg</item>
|
||||
<item>bn</item>
|
||||
<item>br</item>
|
||||
<item>bs</item>
|
||||
<item>ca</item>
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:textSize">@dimen/text_size_medium</item>
|
||||
<item name="android:padding">@dimen/margin_large</item>
|
||||
<item name="android:backgroundTint">@color/window_background</item>
|
||||
<item name="android:minHeight">@dimen/button_size</item>
|
||||
<item name="cornerRadius">6dp</item>
|
||||
</style>
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
package org.briarproject.briar.android.account;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.login.StrengthMeter;
|
||||
import org.hamcrest.Description;
|
||||
import org.hamcrest.Matcher;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import androidx.test.espresso.matcher.BoundedMatcher;
|
||||
import androidx.test.ext.junit.rules.ActivityScenarioRule;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
@@ -27,8 +21,6 @@ import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.isEnabled;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withId;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withText;
|
||||
import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
|
||||
import static org.briarproject.bramble.util.StringUtils.getRandomString;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
@@ -39,15 +31,6 @@ public class SetupActivityTest {
|
||||
public ActivityScenarioRule<SetupActivity> rule =
|
||||
new ActivityScenarioRule<>(SetupActivity.class);
|
||||
|
||||
@Test
|
||||
public void testNicknameTooLongErrorShown() {
|
||||
String longNick = getRandomString(MAX_AUTHOR_NAME_LENGTH + 1);
|
||||
onView(withId(R.id.nickname_entry)).perform(typeText(longNick));
|
||||
|
||||
// Nickname should be too long
|
||||
onView(withText(R.string.name_too_long)).check(matches(isDisplayed()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPasswordMatchUI() {
|
||||
moveToSetPasswordFragment();
|
||||
@@ -76,35 +59,4 @@ public class SetupActivityTest {
|
||||
onView(withId(R.id.next)).perform(click());
|
||||
onView(withId(R.id.password_entry)).check(matches(isDisplayed()));
|
||||
}
|
||||
|
||||
private Matcher<View> strengthAndColor(float strength, int color) {
|
||||
return new StrengthMeterMatcher(strength, color);
|
||||
}
|
||||
|
||||
static class StrengthMeterMatcher
|
||||
extends BoundedMatcher<View, StrengthMeter> {
|
||||
|
||||
private final float strength;
|
||||
private final int color;
|
||||
|
||||
private StrengthMeterMatcher(float strength, int color) {
|
||||
super(StrengthMeter.class);
|
||||
this.strength = strength;
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void describeTo(Description description) {
|
||||
description.appendText("is enabled");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matchesSafely(StrengthMeter view) {
|
||||
boolean strengthMatches =
|
||||
view.getProgress() == (int) (view.getMax() * strength);
|
||||
boolean colorMatches = color == view.getColor();
|
||||
return strengthMatches && colorMatches;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -34,16 +34,13 @@ dependencies {
|
||||
implementation project(':briar-core')
|
||||
|
||||
linux "org.briarproject:tor-linux:$tor_version"
|
||||
linux "org.briarproject:obfs4proxy-linux:$obfs4proxy_version"
|
||||
linux "org.briarproject:snowflake-linux:$snowflake_version"
|
||||
linux "org.briarproject:lyrebird-linux:$lyrebird_version"
|
||||
|
||||
windows "org.briarproject:tor-windows:$tor_version"
|
||||
windows "org.briarproject:obfs4proxy-windows:$obfs4proxy_version"
|
||||
windows "org.briarproject:snowflake-windows:$snowflake_version"
|
||||
windows "org.briarproject:lyrebird-windows:$lyrebird_version"
|
||||
|
||||
macos "org.briarproject:tor-macos:$tor_version"
|
||||
macos "org.briarproject:obfs4proxy-macos:$obfs4proxy_version"
|
||||
macos "org.briarproject:snowflake-macos:$snowflake_version"
|
||||
macos "org.briarproject:lyrebird-macos:$lyrebird_version"
|
||||
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
||||
implementation 'io.javalin:javalin:3.5.0'
|
||||
|
||||
@@ -39,18 +39,15 @@ dependencyVerification {
|
||||
'org.apiguardian:apiguardian-api:1.1.0:apiguardian-api-1.1.0.jar:a9aae9ff8ae3e17a2a18f79175e82b16267c246fbbd3ca9dfbbb290b08dcfdd4',
|
||||
'org.bouncycastle:bcprov-jdk15to18:1.71:bcprov-jdk15to18-1.71.jar:143aaa4a40edd5fc2a18db7900059f6c16f4d931b94b94b20f7e2238e6662886',
|
||||
'org.briarproject:jtorctl:0.5:jtorctl-0.5.jar:43f8c7d390169772b9a2c82ab806c8414c136a2a8636c555e22754bb7260793b',
|
||||
'org.briarproject:lyrebird-linux:0.5.0-3:lyrebird-linux-0.5.0-3.jar:a89534474556a64c1c965a1816332a6c8bb9f2cffc0d9b533467b9e93d35804f',
|
||||
'org.briarproject:lyrebird-macos:0.5.0-3:lyrebird-macos-0.5.0-3.jar:f9696261bd17c8d8b4080dca955576390376aac3a0601b3776c6da63199303a0',
|
||||
'org.briarproject:lyrebird-windows:0.5.0-3:lyrebird-windows-0.5.0-3.jar:ef2fa77b00b6deeeb30ab7b261ed488cb9463ca3ab83e4cca4f7e26a30eca1b5',
|
||||
'org.briarproject:null-safety:0.1:null-safety-0.1.jar:161760de5e838cb982bafa973df820675d4397098e9a91637a36a306d43ba011',
|
||||
'org.briarproject:obfs4proxy-linux:0.0.14-tor2:obfs4proxy-linux-0.0.14-tor2.jar:bb2431092b5ad998ad620b0223e725c0f7e43f1b02af2f097a2544edc1fd9738',
|
||||
'org.briarproject:obfs4proxy-macos:0.0.14-tor2:obfs4proxy-macos-0.0.14-tor2.jar:4a688d3a14d2510dd312213488c8f39ee08e609e47a7300aa12e31ceacb16ce2',
|
||||
'org.briarproject:obfs4proxy-windows:0.0.14-tor2:obfs4proxy-windows-0.0.14-tor2.jar:b5fbd00a8c35ccf095b265370752390e4cd46055331049c4dfcc236dc9c650ac',
|
||||
'org.briarproject:onionwrapper-core:0.1.1:onionwrapper-core-0.1.1.jar:176b7c159a45f6397810a1f93f040b3e17fdbc6645b0d189204777920719464b',
|
||||
'org.briarproject:onionwrapper-java:0.1.1:onionwrapper-java-0.1.1.jar:96dbf1f5c72381b7c124d2d43748fcbe18db9cc8e3c950160954e10a6042f83d',
|
||||
'org.briarproject:snowflake-linux:2.9.1:snowflake-linux-2.9.1.jar:36b2f406f67a1bf3b4a6cecbba2e153ad939209cc9c22299e4161019dbae0e03',
|
||||
'org.briarproject:snowflake-macos:2.9.1:snowflake-macos-2.9.1.jar:0344fbac47026933c416bb25ffb534c819025db5dc9f132621492f959149807b',
|
||||
'org.briarproject:snowflake-windows:2.9.1:snowflake-windows-2.9.1.jar:54ac2f66c907bf1a256d695b7ea292851f7f8f8f960d5fb4822daa9babc182d4',
|
||||
'org.briarproject:tor-linux:0.4.8.9-1:tor-linux-0.4.8.9-1.jar:601b7bd5f0872f9501ef438bd3ce5ed22f8a3a7b77d6f2b063852987d87ed853',
|
||||
'org.briarproject:tor-macos:0.4.8.9-1:tor-macos-0.4.8.9-1.jar:8a01ce4c87399ae101f64249497e5406a737b55b87a79ae484ed061f3ea7387e',
|
||||
'org.briarproject:tor-windows:0.4.8.9-1:tor-windows-0.4.8.9-1.jar:e122e632fdcd4caa3c59f50f51168ec7ae235315bc0798391ba37b60766257b3',
|
||||
'org.briarproject:onionwrapper-core:0.1.3:onionwrapper-core-0.1.3.jar:32d08c9d81a9591e08d7e64e3569334fee21f503b00514006f2e6cbbd409d0df',
|
||||
'org.briarproject:onionwrapper-java:0.1.3:onionwrapper-java-0.1.3.jar:a6bc535e8ea55e567c932f23123eabd10ad53251d3a1e5648960b177e7ab209b',
|
||||
'org.briarproject:tor-linux:0.4.8.14:tor-linux-0.4.8.14.jar:53f44e6719a01689f0980055bef5ffa3ee8148215dafab2a592ee693e9c2e335',
|
||||
'org.briarproject:tor-macos:0.4.8.14:tor-macos-0.4.8.14.jar:db2a9ce7581c8d4723aa23ac13a0a2628ad37e0d638b34ff1bbf3d1cb91cdd41',
|
||||
'org.briarproject:tor-windows:0.4.8.14:tor-windows-0.4.8.14.jar:3fc480854850d48f58c957242fdd3124501bd65806d54a339672ae67015f0677',
|
||||
'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a',
|
||||
'org.checkerframework:checker-qual:3.41.0:checker-qual-3.41.0.jar:2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172',
|
||||
'org.eclipse.jetty.websocket:websocket-api:9.4.20.v20190813:websocket-api-9.4.20.v20190813.jar:779a29060cc17bdeeeba147efc884ebff972cfff93dad2d37b11c93f95d4f67b',
|
||||
|
||||
@@ -29,15 +29,14 @@ buildscript {
|
||||
dagger_version = "2.51.1"
|
||||
okhttp_version = "4.12.0"
|
||||
jackson_version = "2.13.4"
|
||||
tor_version = "0.4.8.9-1"
|
||||
obfs4proxy_version = "0.0.14-tor2"
|
||||
snowflake_version = "2.9.1"
|
||||
tor_version = "0.4.8.14"
|
||||
lyrebird_version = "0.5.0-3"
|
||||
jsoup_version = '1.15.3'
|
||||
bouncy_castle_version = '1.71' // 1.72 accidentally depends on Java 7
|
||||
junit_version = "4.13.2"
|
||||
jmock_version = '2.12.0'
|
||||
mockwebserver_version = '4.10.0'
|
||||
onionwrapper_version = '0.1.1'
|
||||
onionwrapper_version = '0.1.3'
|
||||
}
|
||||
dependencies {
|
||||
// upgrading this let's us run into https://github.com/gradle/gradle/issues/20330
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
sourceSets.configureEach { sourceSet ->
|
||||
tasks.named(sourceSet.compileJavaTaskName).configure {
|
||||
options.annotationProcessorGeneratedSourcesDirectory = file("$buildDir/generated/source/apt/${sourceSet.name}")
|
||||
options.generatedSourceOutputDirectory = file("$buildDir/generated/source/apt/${sourceSet.name}")
|
||||
}
|
||||
}
|
||||
|
||||
idea {
|
||||
module {
|
||||
sourceDirs += compileJava.options.annotationProcessorGeneratedSourcesDirectory
|
||||
generatedSourceDirs += compileJava.options.annotationProcessorGeneratedSourcesDirectory
|
||||
testSourceDirs += compileTestJava.options.annotationProcessorGeneratedSourcesDirectory
|
||||
generatedSourceDirs += compileTestJava.options.annotationProcessorGeneratedSourcesDirectory
|
||||
sourceDirs += compileJava.options.generatedSourceOutputDirectory.get().getAsFile()
|
||||
generatedSourceDirs += compileJava.options.generatedSourceOutputDirectory.get().getAsFile()
|
||||
testSourceDirs += compileTestJava.options.generatedSourceOutputDirectory.get().getAsFile()
|
||||
generatedSourceDirs += compileTestJava.options.generatedSourceOutputDirectory.get().getAsFile()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user