mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
Compare commits
137 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0a1d26ffc4 | |||
| bf39d9ef8f | |||
| 931477e7f5 | |||
| 55b2a41674 | |||
| 564c518984 | |||
| e751208fed | |||
| b1d77b89b2 | |||
| d24a3db337 | |||
| 9eaa6632c6 | |||
| e9a34e4cdd | |||
| 9cef9ab2b0 | |||
| 51d5d31204 | |||
| e8367b9c60 | |||
| 5fa9441635 | |||
| c3b53e56ba | |||
| 70fc419d35 | |||
| 952eb60aff | |||
| 04d3bdd714 | |||
| a9dda41ab1 | |||
| 8db7c9f45b | |||
| 33bfd74c13 | |||
| 0aed681953 | |||
| fe1a14ac9b | |||
| 261c68af10 | |||
| df00a28920 | |||
| b46de6a803 | |||
| 602feeb6a4 | |||
| 80e1282767 | |||
| 40285124f5 | |||
| fb3e20fe39 | |||
| ba70da63ba | |||
| fbf1d5e252 | |||
| e70d32c3b1 | |||
| a9dfb88dda | |||
| 0d86683182 | |||
| b1da1efb4a | |||
| 33bf4bcdef | |||
| 0f235a24a0 | |||
| fc76e0ff59 | |||
| debe6d2378 | |||
| c5701745eb | |||
| d57afb5401 | |||
| 90f06f0820 | |||
| fba2f1d334 | |||
| d169a67879 | |||
| a116462064 | |||
| 9a9543265b | |||
| 8f673d1950 | |||
| 1d66dd937b | |||
| 1f63c2a5da | |||
| 194d5b2fcc | |||
| 1f33c80e85 | |||
| fdb0b081e1 | |||
| ba539cd1f9 | |||
| fe8ad2b6cf | |||
| 73ab1567f7 | |||
| 431411cded | |||
| 2672cfb638 | |||
| abc836eae5 | |||
| 6c9f06e07f | |||
| 4d1534f998 | |||
| e72041d3fb | |||
| 1d9284980c | |||
| a8c665a89e | |||
| db036e0e2a | |||
| 7c94c481c7 | |||
| e1ac76bbfd | |||
| 59f78161ae | |||
| e7de3e059d | |||
| 631959ba63 | |||
| ce6cf689c8 | |||
| 982b7d2470 | |||
| e6c2060114 | |||
| fea3c4a19d | |||
| d51278bf65 | |||
| 09b9355cf0 | |||
| eb16a0bf74 | |||
| ee9ade04cc | |||
| 5e6b52038c | |||
| 60a42c275d | |||
| 8a7849bb1b | |||
| d709ace71c | |||
| f0d6aa6a87 | |||
| 497d921ef9 | |||
| 8eab9107b7 | |||
| 6f9349e9c2 | |||
| 6261e0eaed | |||
| 6fb810bbb9 | |||
| b573f24b0f | |||
| 867b47d33c | |||
| e88b74164c | |||
| bbcf8fb1dd | |||
| 7a88e28710 | |||
| f42342dea0 | |||
| 633037133d | |||
| 9a48e7fc22 | |||
| 9e7abb5843 | |||
| f7f443b389 | |||
| 80723477ca | |||
| 725be98844 | |||
| 5b506b0f94 | |||
| 20d6c20577 | |||
| 9ad5e88f21 | |||
| 38499761ad | |||
| add621416f | |||
| f872917fd4 | |||
| e502b02cb6 | |||
| be03bc1b5f | |||
| 677a59a8cb | |||
| 6822e0e504 | |||
| 0614e7d426 | |||
| f4fc4e6d86 | |||
| 866396a93b | |||
| 2517cbfb99 | |||
| aab59911fb | |||
| b54a8431b1 | |||
| cb69af5f6d | |||
| 304497a91a | |||
| 18cce1e6f7 | |||
| a86f7efd9e | |||
| 53aba77523 | |||
| af365933a3 | |||
| 51d80e4b25 | |||
| fbbf1a5f3e | |||
| 1006fbb599 | |||
| 1713aa6474 | |||
| ff5acaa7f5 | |||
| 9cb0d119a7 | |||
| 6d75112dfd | |||
| 496c9b082f | |||
| 349fb12a05 | |||
| a7054fc2e6 | |||
| faacf510b2 | |||
| 6ce08ef461 | |||
| f2fb935d3b | |||
| 80ab5305ca | |||
| 86eea66267 |
@@ -1,16 +1,18 @@
|
||||
_Please read the guidelines linked above, especially when you are a first time contributor. Remove this text and provide some basic informations below, if applicable. Remove template content that is not applicable._
|
||||
<!--
|
||||
Please read the guidelines linked above, especially when you are a first time contributor. Remove this text and provide some basic informations below, if applicable. Remove template content which is not applicable.
|
||||
-->
|
||||
|
||||
**Delta Chat version**
|
||||
|
||||
See settings dialog …
|
||||
<!-- See settings dialog … -->
|
||||
|
||||
**Expected behavior**
|
||||
|
||||
What is the expected output?
|
||||
<!-- What is the expected output? -->
|
||||
|
||||
**Actual behavior**
|
||||
|
||||
What do you see instead?
|
||||
<!-- What do you see instead? -->
|
||||
|
||||
**Steps to reproduce the problem**
|
||||
|
||||
@@ -19,10 +21,14 @@ What do you see instead?
|
||||
|
||||
**Screen snapshots**
|
||||
|
||||
If applicable …
|
||||
<!-- If applicable … -->
|
||||
|
||||
**Debug logs**
|
||||
<details>
|
||||
<summary>Logs</summary>
|
||||
|
||||
```
|
||||
<!--
|
||||
If applicable, debug logs can be copied from within the Delta Chat app:
|
||||
|
||||
Open the _Settings_ menu -> _About_ -> _version number|Info_.
|
||||
@@ -32,3 +38,9 @@ Alternatively from the Android system log:
|
||||
` adb logcat -v time -s DeltaChat `
|
||||
|
||||
This log contains private data (e.g. mail address, provider information) which shall be removed or anonymised prior to posting.
|
||||
-->
|
||||
|
||||
|
||||
```
|
||||
</details>
|
||||
|
||||
|
||||
+39
-1
@@ -1,9 +1,47 @@
|
||||
# Delta Chat Changelog
|
||||
|
||||
## v0.19.0
|
||||
2018-07-10
|
||||
|
||||
* Give advices for Google users
|
||||
* Speed up by making database-locks unneccessary
|
||||
* Fix drafts appearing twice
|
||||
* Update Albanian, Basque, Catalan, Danish, Dutch, English, Italian, Polish, Russian, and Turkish translations
|
||||
* Update website
|
||||
|
||||
The changes have been done by Allan Nordhøy, Angelo Fuchs, Besnik, Björn Petersen, Calbasi,
|
||||
Claudio Arseni, guland2000, Heimen Stoffels, Holger Krekel, Luis Fernando Stürmer da Rosa,
|
||||
Mahmut Özcan, Ole Carlsen, Osoitz, sebek, Thomas Oster
|
||||
|
||||
|
||||
## v0.18.2
|
||||
2018-06-23
|
||||
|
||||
* Fix initial configure process to hang at 95% under some circumstances
|
||||
|
||||
## v0.18.0
|
||||
2018-06-21
|
||||
|
||||
* Speed up message sending/receiving
|
||||
* Retry failed sending/receiving jobs just in the moment the networks becomes available again
|
||||
* Make message sending/receiving more reliable
|
||||
* Handle attachment file names with non-ASCII characters correctly
|
||||
* Paging through images made available by Angelo Fuchs
|
||||
* Several connection issues with different configurations were fixed by Thomas Oster
|
||||
* Improve chat-folder creation by Thomas Oster
|
||||
* Request permissions before using the camera; added by Thomas Oster
|
||||
* Key import improved by Thomas Oster
|
||||
* Improve background and foreground message fetching reliability
|
||||
* Try to use the permanent notification only when really needed
|
||||
* Update internal sqlite library from 3.22.0 to 3.23.1
|
||||
* Update internal libEtPan library from 1.7 to 1.8
|
||||
* Add Danish translation from Ole Carlsen
|
||||
* Update Albanian, Basque, Danish, Italian, Norwegian, Dutch, Polish, Portuguese, Russian and Telugu translations
|
||||
|
||||
## v0.17.3
|
||||
2018-05-17
|
||||
|
||||
* Fix appearing system messages appearing twice
|
||||
* Fix system messages appearing twice
|
||||
* Fix: Use all gossipped verifications in verified groups
|
||||
* Update Basque, Polish, Russian and Ukrainian translations
|
||||
|
||||
|
||||
@@ -120,11 +120,11 @@ android {
|
||||
}*/
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 14 // 14: Android 4.0 Ice Cream Sandwich 2011 (Telegram default), 21: Android 5.0 Lollipop 2014 (recommended for InstantRun)
|
||||
minSdkVersion 14 // 14: Android 4.0 Ice Cream Sandwich 2011 (Telegram default), 21: Android 5.0 Lollipop 2014 (provides JobScheduler, recommended for InstantRun)
|
||||
targetSdkVersion 25 // 25: Nougat. CAVE: Do NOT target "Andoid O" without checking the background tasks carefully, see https://developer.android.com/preview/behavior-changes.html#back-all . As long as we target "Nougat", everything works as expected even for "Andoid O" or later
|
||||
// in general, we should not change the target without reason; eg. after the switch to Nougat, the camera stops working (see https://inthecheesefactory.com/blog/how-to-share-access-to-file-with-fileprovider-on-android-nougat/en )
|
||||
|
||||
versionName "0.17.3" // do NOT forget to increase defaultConfig.versionCode!
|
||||
versionCode 520
|
||||
versionName "0.19.0" // do NOT forget to increase defaultConfig.versionCode!
|
||||
versionCode 535
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1193,9 +1193,6 @@ LOCAL_SRC_FILES := \
|
||||
./messenger-backend/libs/libetpan/src/low-level/mime/mailmime_write_file.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/mime/mailmime_write_generic.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/mime/mailmime_write_mem.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/nntp/newsnntp.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/nntp/newsnntp_socket.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/nntp/newsnntp_ssl.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/smtp/mailsmtp.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/smtp/mailsmtp_helper.c \
|
||||
./messenger-backend/libs/libetpan/src/low-level/smtp/mailsmtp_oauth2.c \
|
||||
@@ -1631,43 +1628,45 @@ LOCAL_SRC_FILES += \
|
||||
./messenger-backend/libs/netpgp/src/symmetric.c \
|
||||
./messenger-backend/libs/netpgp/src/validate.c \
|
||||
./messenger-backend/libs/netpgp/src/writer.c \
|
||||
./messenger-backend/src/mraheader.c \
|
||||
./messenger-backend/src/mrapeerstate.c \
|
||||
./messenger-backend/src/mrarray.c \
|
||||
./messenger-backend/src/mrchat.c \
|
||||
./messenger-backend/src/mrchatlist.c \
|
||||
./messenger-backend/src/mrcontact.c \
|
||||
./messenger-backend/src/mrdehtml.c \
|
||||
./messenger-backend/src/mrhash.c \
|
||||
./messenger-backend/src/mrimap.c \
|
||||
./messenger-backend/src/mrjob.c \
|
||||
./messenger-backend/src/mrkey.c \
|
||||
./messenger-backend/src/mrkeyring.c \
|
||||
./messenger-backend/src/mrloginparam.c \
|
||||
./messenger-backend/src/mrlot.c \
|
||||
./messenger-backend/src/mrmailbox.c \
|
||||
./messenger-backend/src/mrmailbox_configure.c \
|
||||
./messenger-backend/src/mrmailbox_connect.c \
|
||||
./messenger-backend/src/mrmailbox_e2ee.c \
|
||||
./messenger-backend/src/mrmailbox_imex.c \
|
||||
./messenger-backend/src/mrmailbox_keyhistory.c \
|
||||
./messenger-backend/src/mrmailbox_log.c \
|
||||
./messenger-backend/src/mrmailbox_qr.c \
|
||||
./messenger-backend/src/mrmailbox_receive_imf.c \
|
||||
./messenger-backend/src/mrmailbox_securejoin.c \
|
||||
./messenger-backend/src/mrmimefactory.c \
|
||||
./messenger-backend/src/mrmimeparser.c \
|
||||
./messenger-backend/src/mrmsg.c \
|
||||
./messenger-backend/src/mrparam.c \
|
||||
./messenger-backend/src/mrpgp.c \
|
||||
./messenger-backend/src/mrsaxparser.c \
|
||||
./messenger-backend/src/mrsimplify.c \
|
||||
./messenger-backend/src/mrsmtp.c \
|
||||
./messenger-backend/src/mrsqlite3.c \
|
||||
./messenger-backend/src/mrstock.c \
|
||||
./messenger-backend/src/mrtoken.c \
|
||||
./messenger-backend/src/mrtools.c \
|
||||
./messenger-backend/src/mruudecode.c \
|
||||
./messenger-backend/src/dc_aheader.c \
|
||||
./messenger-backend/src/dc_apeerstate.c \
|
||||
./messenger-backend/src/dc_array.c \
|
||||
./messenger-backend/src/dc_chat.c \
|
||||
./messenger-backend/src/dc_chatlist.c \
|
||||
./messenger-backend/src/dc_contact.c \
|
||||
./messenger-backend/src/dc_dehtml.c \
|
||||
./messenger-backend/src/dc_hash.c \
|
||||
./messenger-backend/src/dc_imap.c \
|
||||
./messenger-backend/src/dc_job.c \
|
||||
./messenger-backend/src/dc_key.c \
|
||||
./messenger-backend/src/dc_keyring.c \
|
||||
./messenger-backend/src/dc_loginparam.c \
|
||||
./messenger-backend/src/dc_lot.c \
|
||||
./messenger-backend/src/dc_context.c \
|
||||
./messenger-backend/src/dc_configure.c \
|
||||
./messenger-backend/src/dc_e2ee.c \
|
||||
./messenger-backend/src/dc_imex.c \
|
||||
./messenger-backend/src/dc_keyhistory.c \
|
||||
./messenger-backend/src/dc_log.c \
|
||||
./messenger-backend/src/dc_openssl.c \
|
||||
./messenger-backend/src/dc_qr.c \
|
||||
./messenger-backend/src/dc_receive_imf.c \
|
||||
./messenger-backend/src/dc_securejoin.c \
|
||||
./messenger-backend/src/dc_mimefactory.c \
|
||||
./messenger-backend/src/dc_mimeparser.c \
|
||||
./messenger-backend/src/dc_msg.c \
|
||||
./messenger-backend/src/dc_param.c \
|
||||
./messenger-backend/src/dc_pgp.c \
|
||||
./messenger-backend/src/dc_saxparser.c \
|
||||
./messenger-backend/src/dc_simplify.c \
|
||||
./messenger-backend/src/dc_smtp.c \
|
||||
./messenger-backend/src/dc_sqlite3.c \
|
||||
./messenger-backend/src/dc_stock.c \
|
||||
./messenger-backend/src/dc_strbuilder.c \
|
||||
./messenger-backend/src/dc_strencode.c \
|
||||
./messenger-backend/src/dc_token.c \
|
||||
./messenger-backend/src/dc_tools.c \
|
||||
./messenger-backend/src/dc_uudecode.c \
|
||||
./messenger-backend/cmdline/cmdline.c \
|
||||
./mrwrapper.c
|
||||
|
||||
|
||||
Submodule MessengerProj/jni/messenger-backend updated: 178a6a2c01...bc8a8ab81d
+206
-209
File diff suppressed because it is too large
Load Diff
@@ -55,9 +55,7 @@ public class ApplicationLoader extends Application {
|
||||
public static volatile boolean isScreenOn = false;
|
||||
public static volatile boolean mainInterfacePaused = true;
|
||||
|
||||
public static PowerManager.WakeLock backendWakeLock = null;
|
||||
public static PowerManager.WakeLock wakeupWakeLock = null;
|
||||
private static PowerManager.WakeLock stayAwakeWakeLock = null;
|
||||
public static PowerManager.WakeLock convertVideoWakeLock = null;
|
||||
|
||||
|
||||
public static int fontSize;
|
||||
@@ -148,17 +146,20 @@ public class ApplicationLoader extends Application {
|
||||
try {
|
||||
PowerManager pm = (PowerManager) ApplicationLoader.applicationContext.getSystemService(Context.POWER_SERVICE);
|
||||
|
||||
backendWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "backendWakeLock" /*any name*/);
|
||||
// bakendWakeLock _is_ reference counted by the backend (every acquire() has a release())
|
||||
imapWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "imapWakeLock");
|
||||
imapWakeLock.setReferenceCounted(false); // if the idle-thread is killed for any reasons, it is better not to rely on reference counting
|
||||
|
||||
wakeupWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "wakeupWakeLock" /*any name*/);
|
||||
wakeupWakeLock.setReferenceCounted(false);
|
||||
smtpWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "smtpWakeLock");
|
||||
smtpWakeLock.setReferenceCounted(false); // if the idle-thread is killed for any reasons, it is better not to rely on reference counting
|
||||
|
||||
stayAwakeWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "stayAwakeWakeLock" /*any name*/);
|
||||
stayAwakeWakeLock.setReferenceCounted(false);
|
||||
convertVideoWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "convertVideoWakeLock" /*any name*/);
|
||||
convertVideoWakeLock.setReferenceCounted(false);
|
||||
|
||||
afterForgroundWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "afterForegroundWakeLock");
|
||||
afterForgroundWakeLock.setReferenceCounted(false);
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.e("DeltaChat", "Cannot acquire wakeLock");
|
||||
Log.e("DeltaChat", "Cannot create wakeLocks");
|
||||
}
|
||||
|
||||
// create a MrMailbox object; as android stops the App by just killing it, we do never call MrMailboxUnref()
|
||||
@@ -169,7 +170,10 @@ public class ApplicationLoader extends Application {
|
||||
// start keep-alive service that restarts the app as soon it is terminated
|
||||
// (this is done by just marking the service as START_STICKY which recreates the service as
|
||||
// it goes away which also inititialized the app indirectly by calling this function)
|
||||
applicationContext.startService(new Intent(applicationContext, KeepAliveService.class));
|
||||
|
||||
/*if( getPermanentPush() ) {
|
||||
applicationContext.startService(new Intent(applicationContext, KeepAliveService.class));
|
||||
}*/
|
||||
|
||||
// init locale
|
||||
try {
|
||||
@@ -178,12 +182,16 @@ public class ApplicationLoader extends Application {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// track screen on/off
|
||||
// track screen and network states
|
||||
try {
|
||||
final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
|
||||
filter.addAction(Intent.ACTION_SCREEN_OFF);
|
||||
final BroadcastReceiver mReceiver = new ScreenReceiver();
|
||||
applicationContext.registerReceiver(mReceiver, filter);
|
||||
|
||||
final BroadcastReceiver mNetworkStateReceiver = new NetworkStateReceiver();
|
||||
applicationContext.registerReceiver(mNetworkStateReceiver, new IntentFilter(android.net.ConnectivityManager.CONNECTIVITY_ACTION));
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -214,8 +222,9 @@ public class ApplicationLoader extends Application {
|
||||
// open() should be called before MessagesController.getInstance() as this also initilizes directories based upon getBlobdir().
|
||||
File dbfile = new File(getFilesDirFixed(), "messenger.db");
|
||||
MrMailbox.open(dbfile.getAbsolutePath());
|
||||
if( MrMailbox.isConfigured()!=0 ) {
|
||||
MrMailbox.connect();
|
||||
if( MrMailbox.isConfigured()!=0 /*&& ApplicationLoader.getPermanentPush()*/ ) {
|
||||
//ApplicationLoader.imapForeground = true;
|
||||
ApplicationLoader.startThreads();
|
||||
}
|
||||
|
||||
// create other default objects
|
||||
@@ -225,6 +234,10 @@ public class ApplicationLoader extends Application {
|
||||
ImageLoader.getInstance();
|
||||
MediaController.getInstance();
|
||||
NotificationsController.getInstance(); // force instace creation which also does some init stuff
|
||||
|
||||
if( !isScreenOn ) {
|
||||
applicationContext.startService(new Intent(applicationContext, KeepAliveService.class));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -260,8 +273,146 @@ public class ApplicationLoader extends Application {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void stayAwakeForAMoment()
|
||||
static private int fetchMode = -1; // 0: push, 1: poll once per minute
|
||||
|
||||
public static boolean getPermanentPush()
|
||||
{
|
||||
stayAwakeWakeLock.acquire(1*60*1000); // 1 Minute to wait for "after chat" messages, after that, we sleep most time, see wakeupWakeLock
|
||||
return true;
|
||||
/*
|
||||
if( fetchMode == -1 ) {
|
||||
SharedPreferences preferences = applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
fetchMode = preferences.getInt("fetch_mode", 1);
|
||||
}
|
||||
return fetchMode==0;
|
||||
*/
|
||||
}
|
||||
|
||||
public static void setPermanentPush(boolean permanentPush)
|
||||
{
|
||||
fetchMode = permanentPush? 0 : 1;
|
||||
SharedPreferences preferences = applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt("fetch_mode", fetchMode);
|
||||
editor.apply();
|
||||
|
||||
if( permanentPush ) {
|
||||
applicationContext.startService(new Intent(applicationContext, KeepAliveService.class));
|
||||
}
|
||||
else {
|
||||
applicationContext.stopService(new Intent(applicationContext, KeepAliveService.class));
|
||||
}
|
||||
}
|
||||
|
||||
private static final Object threadsCritical = new Object();
|
||||
|
||||
private static boolean imapThreadStartedVal;
|
||||
private static final Object imapThreadStartedCond = new Object();
|
||||
public static Thread imapThread = null;
|
||||
private static PowerManager.WakeLock imapWakeLock = null;
|
||||
|
||||
private static boolean smtpThreadStartedVal;
|
||||
private static final Object smtpThreadStartedCond = new Object();
|
||||
public static Thread smtpThread = null;
|
||||
private static PowerManager.WakeLock smtpWakeLock = null;
|
||||
|
||||
public static PowerManager.WakeLock afterForgroundWakeLock = null;
|
||||
|
||||
//public static boolean imapForeground = false;
|
||||
|
||||
public static void startThreads()
|
||||
{
|
||||
synchronized(threadsCritical) {
|
||||
|
||||
if (imapThread == null || !imapThread.isAlive()) {
|
||||
|
||||
synchronized (imapThreadStartedCond) {
|
||||
imapThreadStartedVal = false;
|
||||
}
|
||||
|
||||
imapThread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
// raise the starting condition
|
||||
// after acquiring a wakelock so that the process is not terminated.
|
||||
// as imapWakeLock is not reference counted that would result in a wakelock-gap is not needed here.
|
||||
imapWakeLock.acquire();
|
||||
synchronized (imapThreadStartedCond) {
|
||||
imapThreadStartedVal = true;
|
||||
imapThreadStartedCond.notifyAll();
|
||||
}
|
||||
|
||||
Log.i("DeltaChat", "###################### IMAP-Thread started. ######################");
|
||||
|
||||
|
||||
while (true) {
|
||||
imapWakeLock.acquire();
|
||||
MrMailbox.performJobs();
|
||||
MrMailbox.fetch();
|
||||
imapWakeLock.release();
|
||||
MrMailbox.idle();
|
||||
}
|
||||
}
|
||||
}, "imapThread");
|
||||
imapThread.start();
|
||||
}
|
||||
|
||||
if (smtpThread == null || !smtpThread.isAlive()) {
|
||||
|
||||
synchronized (smtpThreadStartedCond) {
|
||||
smtpThreadStartedVal = false;
|
||||
}
|
||||
|
||||
smtpThread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
smtpWakeLock.acquire();
|
||||
synchronized (smtpThreadStartedCond) {
|
||||
smtpThreadStartedVal = true;
|
||||
smtpThreadStartedCond.notifyAll();
|
||||
}
|
||||
|
||||
Log.i("DeltaChat", "###################### SMTP-Thread started. ######################");
|
||||
|
||||
|
||||
while (true) {
|
||||
smtpWakeLock.acquire();
|
||||
MrMailbox.performSmtpJobs();
|
||||
smtpWakeLock.release();
|
||||
MrMailbox.performSmtpIdle();
|
||||
}
|
||||
}
|
||||
}, "smtpThread");
|
||||
smtpThread.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void waitForThreadsRunning()
|
||||
{
|
||||
try {
|
||||
synchronized( imapThreadStartedCond ) {
|
||||
while( !imapThreadStartedVal ) {
|
||||
imapThreadStartedCond.wait();
|
||||
}
|
||||
}
|
||||
|
||||
synchronized( smtpThreadStartedCond ) {
|
||||
while( !smtpThreadStartedVal ) {
|
||||
smtpThreadStartedCond.wait();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/*public static void scheduleStopImapThread()
|
||||
{
|
||||
//Log.i("DeltaChat", "IMAP-thread scheduled to stop.");
|
||||
|
||||
//imapForeground = false;
|
||||
//MrMailbox.interruptIdle();
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
package com.b44t.messenger.Cells;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -67,13 +68,26 @@ public class TextInfoCell extends FrameLayout {
|
||||
|
||||
public void setText(CharSequence text)
|
||||
{
|
||||
setText(text, null, true);
|
||||
setText(text, null, true, false);
|
||||
}
|
||||
|
||||
public void setText(CharSequence text, CharSequence icon, boolean borderBotton)
|
||||
{
|
||||
setText(text, icon, borderBotton, false);
|
||||
}
|
||||
|
||||
public void setText(CharSequence text, CharSequence icon, boolean borderBotton, boolean clickableHtml)
|
||||
{
|
||||
textView.setText(text);
|
||||
|
||||
if( clickableHtml ) {
|
||||
//allow for clickable Links in TextViews
|
||||
//https://stackoverflow.com/questions/2734270/how-do-i-make-links-in-a-textview-clickable
|
||||
//as this avoids the onClickListener to be called (used at least for the "expand" icon in the AccountSettings)
|
||||
//we do this only explicitly
|
||||
textView.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
}
|
||||
|
||||
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) textView.getLayoutParams();
|
||||
lp.width = LayoutHelper.WRAP_CONTENT;
|
||||
lp.height = LayoutHelper.WRAP_CONTENT;
|
||||
|
||||
@@ -48,6 +48,7 @@ import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.text.style.ClickableSpan;
|
||||
import android.text.style.URLSpan;
|
||||
import android.util.Log;
|
||||
import android.util.SparseIntArray;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
@@ -82,6 +83,7 @@ import com.b44t.messenger.Components.RecyclerListView;
|
||||
import com.b44t.messenger.Components.SizeNotifierFrameLayout;
|
||||
import com.b44t.messenger.ActionBar.Theme;
|
||||
|
||||
import java.io.Console;
|
||||
import java.io.File;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.ArrayList;
|
||||
@@ -1210,6 +1212,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
|
||||
private void processSelectedAttach(int which) {
|
||||
if (which == ChatAttachAlert.ATTACH_BUTTON_IDX_CAMERA ) {
|
||||
if (Build.VERSION.SDK_INT >= 23 && getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
||||
getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, LaunchActivity.REQ_CAMERA_PERMISSION_ID);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
File image = AndroidUtilities.generatePicturePath();
|
||||
@@ -1277,6 +1283,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
presentFragment(fragment);
|
||||
} else if (which == ChatAttachAlert.ATTACH_BUTTON_IDX_VIDEO) {
|
||||
try {
|
||||
if (Build.VERSION.SDK_INT >= 23 && getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
||||
getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, LaunchActivity.REQ_CAMERA_PERMISSION_ID);
|
||||
return;
|
||||
}
|
||||
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
|
||||
File video = AndroidUtilities.generateVideoPath();
|
||||
if (video != null) {
|
||||
@@ -1917,6 +1927,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(evt_chat_id == dialog_id) {
|
||||
// needed to update eg. the draft
|
||||
m_mrChat = MrMailbox.getChat(evt_chat_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (id == NotificationCenter.updateInterfaces)
|
||||
@@ -2798,7 +2812,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
|
||||
if( /*(Build.VERSION.SDK_INT >= 16 && message.isVideo()) ||*/ message.type == MessageObject.MO_TYPE1_PHOTO || message.isGif()) {
|
||||
PhotoViewer.getInstance().setParentActivity(getParentActivity());
|
||||
PhotoViewer.getInstance().openPhoto(message, message.type != MessageObject.MO_TYPE0_TEXT ? dialog_id : 0, ChatActivity.this);
|
||||
//PhotoViewer.getInstance().openPhoto(message, message.type != MessageObject.MO_TYPE0_TEXT ? dialog_id : 0,
|
||||
// ChatActivity.this, getPhotosInChat());
|
||||
//ArrayList<Object> photos = getPhotosInChat();
|
||||
int index = getIndexOfCellPhoto(cell);
|
||||
//PhotoViewer.getInstance().openPhoto(null, 0, ChatActivity.this, photos, index);
|
||||
|
||||
ArrayList<MessageObject> photoMessages = getPhotoMessages();
|
||||
PhotoViewer.getInstance().openPhotoList(message, message.type != MessageObject.MO_TYPE0_TEXT ? dialog_id : 0,
|
||||
ChatActivity.this, photoMessages, index);
|
||||
} else if (message.type == MessageObject.MO_TYPE9_FILE || message.type == MessageObject.MO_TYPE3_VIDEO ) {
|
||||
AndroidUtilities.openForViewOrShare(getParentActivity(), message.getId(), Intent.ACTION_VIEW);
|
||||
}
|
||||
@@ -2818,7 +2840,45 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||
return new Holder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
private ArrayList<MessageObject> getPhotoMessages() {
|
||||
ArrayList<MessageObject> photos = new ArrayList<>();
|
||||
|
||||
for(int msg_index = 0; msg_index < m_msglist.length; msg_index ++) {
|
||||
MrMsg mrMsg = MrMailbox.getMsg(m_msglist[msg_index]);
|
||||
switch (mrMsg.getType()) {
|
||||
case MrMsg.MR_MSG_IMAGE:
|
||||
case MrMsg.MR_MSG_GIF:
|
||||
{
|
||||
|
||||
TLRPC.Message msg = mrMsg.get_TLRPC_Message();
|
||||
// generateLayout replaces emojis in text and other text rendering actions.
|
||||
MessageObject photoMsg = new MessageObject(msg, false);
|
||||
|
||||
photos.add(photoMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
return photos;
|
||||
}
|
||||
|
||||
private int getIndexOfCellPhoto(ChatMessageCell callingCell) {
|
||||
int photoCount = 0;
|
||||
for(int msg_index = 0; msg_index < m_msglist.length; msg_index ++) {
|
||||
MrMsg msg = MrMailbox.getMsg(m_msglist[msg_index]);
|
||||
switch (msg.getType()) {
|
||||
case MrMsg.MR_MSG_IMAGE:
|
||||
case MrMsg.MR_MSG_GIF:
|
||||
{
|
||||
if(callingCell.getMessageObject().getId() == msg.getId())
|
||||
return photoCount; // count up until now.
|
||||
photoCount ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0; // didn't find the matching photo.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) {
|
||||
if (i >= 0 && i < m_msglist.length) {
|
||||
View view = holder.itemView;
|
||||
|
||||
@@ -1040,9 +1040,9 @@ public class ChatlistActivity extends BaseFragment implements NotificationCenter
|
||||
}
|
||||
else if( id == NotificationCenter.secureJoinJoinerProgress ) {
|
||||
int contact_id = (Integer)args[0];
|
||||
int step = (Integer)args[1];
|
||||
int progress = (Integer)args[1];
|
||||
String msg = null;
|
||||
if( step == 4) {
|
||||
if( progress == 400) {
|
||||
msg = String.format(ApplicationLoader.applicationContext.getString(R.string.OobAddrVerifiedIntroduceMyself), MrMailbox.getContact(contact_id).getNameNAddr());
|
||||
}
|
||||
|
||||
|
||||
@@ -75,6 +75,12 @@ public class AvatarUpdater implements PhotoCropActivity.PhotoEditActivityDelegat
|
||||
}
|
||||
|
||||
public void openCamera() {
|
||||
if (Build.VERSION.SDK_INT >= 23 && parentFragment != null && parentFragment.getParentActivity() != null) {
|
||||
if (parentFragment.getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
||||
parentFragment.getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, LaunchActivity.REQ_CAMERA_PERMISSION_ID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
try {
|
||||
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
File image = AndroidUtilities.generatePicturePath();
|
||||
|
||||
@@ -26,23 +26,22 @@ package com.b44t.messenger.Components;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.Application;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import com.b44t.messenger.ApplicationLoader;
|
||||
import com.b44t.messenger.KeepAliveService;
|
||||
|
||||
import static com.b44t.messenger.ApplicationLoader.applicationContext;
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
public class ForegroundDetector implements Application.ActivityLifecycleCallbacks {
|
||||
|
||||
public interface Listener {
|
||||
void onBecameForeground();
|
||||
void onBecameBackground();
|
||||
}
|
||||
|
||||
private int refs;
|
||||
private int refs = 0;
|
||||
private boolean wasInBackground = true;
|
||||
private long enterBackgroundTime = 0;
|
||||
private CopyOnWriteArrayList<Listener> listeners = new CopyOnWriteArrayList<>();
|
||||
private static ForegroundDetector Instance = null;
|
||||
|
||||
public static ForegroundDetector getInstance() {
|
||||
@@ -62,29 +61,22 @@ public class ForegroundDetector implements Application.ActivityLifecycleCallback
|
||||
return refs == 0;
|
||||
}
|
||||
|
||||
public void addListener(Listener listener) {
|
||||
listeners.add(listener);
|
||||
}
|
||||
|
||||
public void removeListener(Listener listener) {
|
||||
listeners.remove(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityStarted(Activity activity) {
|
||||
if (++refs == 1) {
|
||||
Log.i("DeltaChat", "-------------------- Activity started --------------------");
|
||||
|
||||
refs++;
|
||||
if (refs == 1) {
|
||||
if (System.currentTimeMillis() - enterBackgroundTime < 200) {
|
||||
wasInBackground = false;
|
||||
}
|
||||
//Log.i("DeltaChat", "switch to foreground");
|
||||
for (Listener listener : listeners) {
|
||||
try {
|
||||
listener.onBecameForeground();
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
applicationContext.stopService(new Intent(applicationContext, KeepAliveService.class));
|
||||
|
||||
//ApplicationLoader.imapForeground = true;
|
||||
ApplicationLoader.startThreads(); // we call this without checking getPermanentPush() to have a simple guarantee that push is always active when the app is in foregroud (startIdleThread makes sure the thread is not started twice)
|
||||
}
|
||||
|
||||
public boolean isWasInBackground(boolean reset) {
|
||||
@@ -100,17 +92,27 @@ public class ForegroundDetector implements Application.ActivityLifecycleCallback
|
||||
|
||||
@Override
|
||||
public void onActivityStopped(Activity activity) {
|
||||
if (--refs == 0) {
|
||||
|
||||
Log.i("DeltaChat", "-------------------- Activity stopped --------------------");
|
||||
|
||||
if( refs <= 0 ) {
|
||||
Log.i("DeltaChat", String.format("Bad activity count: activityCount=%d", refs));
|
||||
return;
|
||||
}
|
||||
|
||||
refs--;
|
||||
if (refs == 0) {
|
||||
enterBackgroundTime = System.currentTimeMillis();
|
||||
wasInBackground = true;
|
||||
//Log.i("DeltaChat", "switch to background");
|
||||
for (Listener listener : listeners) {
|
||||
try {
|
||||
listener.onBecameBackground();
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
ApplicationLoader.afterForgroundWakeLock.acquire(60*1000);
|
||||
|
||||
/*if( !ApplicationLoader.getPermanentPush() ) {
|
||||
ApplicationLoader.scheduleStopImapThread();;
|
||||
}*/
|
||||
}
|
||||
else {
|
||||
Log.i("DeltaChat", String.format("Not yet switched to background, %d activities left", refs));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,6 +126,7 @@ public class ForegroundDetector implements Application.ActivityLifecycleCallback
|
||||
|
||||
@Override
|
||||
public void onActivityPaused(Activity activity) {
|
||||
// pause/resume will also be called when the app is partially covered by a dialog
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -51,7 +51,7 @@ public class KeepAliveService extends Service {
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
// START_STICKY ensured, the service is recreated as soon it is terminted for any reasons.
|
||||
// START_STICKY ensured, the service is recreated as soon it is terminated for any reasons.
|
||||
// as ApplicationLoader.onCreate() is called before a service starts, there is no more to do here,
|
||||
// the app is just running fine.
|
||||
MrMailbox.log_i("DeltaChat", "*** KeepAliveService.onStartCommand()");
|
||||
|
||||
@@ -573,7 +573,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
int chatId = MrMailbox.createChatByContactId(MrMailbox.createContact("", createChatWithFinal));
|
||||
if( chatId != 0 ) {
|
||||
if( sendingText!=null ) { MrMailbox.getChat(chatId).setDraft(sendingText, 0); }
|
||||
if( sendingText!=null ) { MrMailbox.setDraft(chatId, sendingText); }
|
||||
Bundle args = new Bundle();
|
||||
args.putInt("chat_id", chatId);
|
||||
boolean removeLast = actionBarLayout.fragmentsStack.size() > 1 && actionBarLayout.fragmentsStack.get(actionBarLayout.fragmentsStack.size() - 1) instanceof ChatActivity;
|
||||
@@ -741,11 +741,13 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||
}
|
||||
|
||||
public static final int REQ_CONTACT_N_STORAGE_PERMISON_ID = 1;
|
||||
public static final int REQ_CAMERA_PERMISSION_ID = 50;
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == REQ_CONTACT_N_STORAGE_PERMISON_ID || requestCode == 3 || requestCode == 4 || requestCode == 5) {
|
||||
if (requestCode == REQ_CONTACT_N_STORAGE_PERMISON_ID || requestCode == 3 || requestCode == 4 || requestCode == 5
|
||||
|| requestCode == REQ_CAMERA_PERMISSION_ID) {
|
||||
int grantedCount = 0;
|
||||
String msg = "";
|
||||
for (int i = 0; i < permissions.length; i++) {
|
||||
@@ -772,6 +774,9 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||
case Manifest.permission.RECORD_AUDIO:
|
||||
msg += "- " + ApplicationLoader.applicationContext.getString(R.string.PermissionNoAudio) + "\n\n";
|
||||
break;
|
||||
case Manifest.permission.CAMERA:
|
||||
msg += "- " + ApplicationLoader.applicationContext.getString(R.string.PermissionCamera) + "\n\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -823,7 +828,6 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||
if (PhotoViewer.getInstance().isVisible()) {
|
||||
PhotoViewer.getInstance().onPause();
|
||||
}
|
||||
ApplicationLoader.stayAwakeForAMoment();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2359,6 +2359,9 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
|
||||
@TargetApi(16)
|
||||
private boolean convertVideo(final MessageObject messageObject) {
|
||||
|
||||
ApplicationLoader.convertVideoWakeLock.acquire(10*60*1000);
|
||||
|
||||
String videoPath = messageObject.videoEditedInfo.originalPath;
|
||||
long startTime = messageObject.videoEditedInfo.startTime;
|
||||
long endTime = messageObject.videoEditedInfo.endTime;
|
||||
@@ -2405,6 +2408,7 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
if (!inputFile.canRead() || !isPreviousOk) {
|
||||
didWriteData(messageObject, cacheFile, true, true);
|
||||
preferences.edit().putBoolean("isPreviousOk", true).apply();
|
||||
ApplicationLoader.convertVideoWakeLock.release();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2794,10 +2798,12 @@ public class MediaController implements AudioManager.OnAudioFocusChangeListener,
|
||||
} else {
|
||||
preferences.edit().putBoolean("isPreviousOk", true).apply();
|
||||
didWriteData(messageObject, cacheFile, true, true);
|
||||
ApplicationLoader.convertVideoWakeLock.release();
|
||||
return false;
|
||||
}
|
||||
preferences.edit().putBoolean("isPreviousOk", true).apply();
|
||||
didWriteData(messageObject, cacheFile, true, error);
|
||||
ApplicationLoader.convertVideoWakeLock.release();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,6 +89,11 @@ public class MessageObject {
|
||||
|
||||
public ArrayList<TextLayoutBlock> textLayoutBlocks;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param message The outer message.
|
||||
* @param generateLayout Set to true for raw text messages, so emojis and other graphical elements get rendered.
|
||||
*/
|
||||
public MessageObject(TLRPC.Message message, boolean generateLayout) {
|
||||
if (textPaint == null) {
|
||||
textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
@@ -167,6 +172,7 @@ public class MessageObject {
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO: change 1000 here to MO_TYPE1000_INIT_VAL
|
||||
if (oldType != 1000 && oldType != type) {
|
||||
generateThumbs(false);
|
||||
}
|
||||
|
||||
@@ -57,10 +57,6 @@ public class MrChat {
|
||||
public native boolean isVerified();
|
||||
public native String getDraft();
|
||||
public native long getDraftTimestamp();
|
||||
public int getDraftReplyToMsgId() {
|
||||
return 0;
|
||||
}
|
||||
public native int setDraft(String draft/*NULL=delete*/, long replyToMsgId);
|
||||
|
||||
private long m_hChat; // must not be renamed as referenced by JNI under the name "m_hChat"
|
||||
private native static void MrChatUnref (long hChat);
|
||||
@@ -90,22 +86,22 @@ public class MrChat {
|
||||
return null;
|
||||
}
|
||||
ret.date = (int)getDraftTimestamp();
|
||||
ret.reply_to_msg_id = getDraftReplyToMsgId();
|
||||
ret.reply_to_msg_id = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
public void saveDraft(CharSequence message, TLRPC.Message replyToMessage) {
|
||||
if( message == null || TextUtils.isEmpty(message) ) {
|
||||
setDraft(null, 0);
|
||||
MrMailbox.setDraft(getId(), null);
|
||||
}
|
||||
else {
|
||||
setDraft(message.toString(), 0);
|
||||
MrMailbox.setDraft(getId(), message.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public void cleanDraft()
|
||||
{
|
||||
setDraft(null, 0);
|
||||
MrMailbox.setDraft(getId(), null);
|
||||
}
|
||||
|
||||
public String getNameNAddr()
|
||||
|
||||
@@ -51,13 +51,19 @@ public class MrMailbox {
|
||||
public native static void close();
|
||||
public native static String getBlobdir();
|
||||
|
||||
public native static int configureAndConnect();
|
||||
public native static void configure();
|
||||
public native static void stopOngoingProcess();
|
||||
|
||||
public native static int isConfigured();
|
||||
|
||||
public native static void connect();
|
||||
public native static void disconnect();
|
||||
public native static void performJobs();
|
||||
public native static void fetch();
|
||||
public native static void idle();
|
||||
public native static void interruptIdle();
|
||||
|
||||
public native static void performSmtpJobs();
|
||||
public native static void performSmtpIdle();
|
||||
public native static void interruptSmtpIdle();
|
||||
|
||||
public native static void setConfig(String key, String value);
|
||||
public native static void setConfigInt(String key, int value);
|
||||
@@ -73,12 +79,10 @@ public class MrMailbox {
|
||||
public final static int MR_IMEX_IMPORT_SELF_KEYS = 2;
|
||||
public final static int MR_IMEX_EXPORT_BACKUP = 11;
|
||||
public final static int MR_IMEX_IMPORT_BACKUP = 12;
|
||||
public native static int imex(int what, String dir);
|
||||
public native static void imex(int what, String dir);
|
||||
public native static String imexHasBackup(String dir);
|
||||
public native static int checkPassword(String pw);
|
||||
|
||||
public native static void heartbeat();
|
||||
|
||||
private static long m_hMailbox = 0; // do not rename this, is used in C-part
|
||||
private native static long MrMailboxNew(); // returns hMailbox which must be unref'd after usage (Names as mrmailbox_new don't work due to the additional underscore)
|
||||
|
||||
@@ -142,6 +146,7 @@ public class MrMailbox {
|
||||
public native static int isContactInChat (int chat_id, int contact_id);
|
||||
public native static int addContactToChat (int chat_id, int contact_id);
|
||||
public native static int removeContactFromChat (int chat_id, int contact_id);
|
||||
public native static void setDraft (int chat_id, String draft/*NULL=delete*/);
|
||||
public native static int setChatName (int chat_id, String name);
|
||||
public native static int setChatProfileImage (int chat_id, String name);
|
||||
|
||||
@@ -231,8 +236,6 @@ public class MrMailbox {
|
||||
public final static int MR_EVENT_GET_STRING = 2091;
|
||||
public final static int MR_EVENT_GET_QUANTITIY_STRING = 2092;
|
||||
public final static int MR_EVENT_HTTP_GET = 2100;
|
||||
public final static int MR_EVENT_WAKE_LOCK = 2110;
|
||||
|
||||
|
||||
public static final Object m_lastErrorLock = new Object();
|
||||
public static int m_lastErrorCode = 0;
|
||||
@@ -246,7 +249,12 @@ public class MrMailbox {
|
||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.configureProgress, (int)data1);
|
||||
if( data1 == 0 || data1 == 1000 ) {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.configureEnded, (int)data1);
|
||||
}
|
||||
else {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.configureProgress, (int)data1);
|
||||
}
|
||||
}
|
||||
});
|
||||
return 0;
|
||||
@@ -255,7 +263,12 @@ public class MrMailbox {
|
||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexProgress, (int)data1);
|
||||
if (data1==0 || data1==1000) {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexEnded, (int) data1);
|
||||
}
|
||||
else {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexProgress, (int) data1);
|
||||
}
|
||||
}
|
||||
});
|
||||
return 0;
|
||||
@@ -403,6 +416,8 @@ public class MrMailbox {
|
||||
case 42: s = ApplicationLoader.applicationContext.getString(R.string.AutocryptSetupMessageSubject); break;
|
||||
case 43: s = ApplicationLoader.applicationContext.getString(R.string.AutocryptSetupMessageGeneralBody); break;
|
||||
case 50: s = ApplicationLoader.applicationContext.getString(R.string.SelfTalkSubtitle); break;
|
||||
case 60: s = ApplicationLoader.applicationContext.getString(R.string.ErrCannotLogin); break;
|
||||
case 61: s = "<c#808080>" + ApplicationLoader.applicationContext.getString(R.string.ErrSeverResponse) + "</c>"; break;
|
||||
default: s = null; break;
|
||||
}
|
||||
return String2CPtr(s);
|
||||
@@ -425,9 +440,11 @@ public class MrMailbox {
|
||||
URL url = new URL(CPtr2String(data1));
|
||||
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
|
||||
try {
|
||||
urlConnection.setConnectTimeout(10*1000);
|
||||
InputStream inputStream = new BufferedInputStream(urlConnection.getInputStream());
|
||||
|
||||
BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
|
||||
|
||||
StringBuilder total = new StringBuilder();
|
||||
String line;
|
||||
while ((line = r.readLine()) != null) {
|
||||
@@ -438,20 +455,10 @@ public class MrMailbox {
|
||||
urlConnection.disconnect();
|
||||
}
|
||||
}
|
||||
catch(Exception e) {}
|
||||
catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return String2CPtr(httpContent);
|
||||
|
||||
case MR_EVENT_WAKE_LOCK:
|
||||
if( data1 != 0 ) {
|
||||
ApplicationLoader.backendWakeLock.acquire();
|
||||
}
|
||||
else {
|
||||
if( !ApplicationLoader.wakeupWakeLock.isHeld()) {
|
||||
ApplicationLoader.wakeupWakeLock.acquire(500); /* make sure, subsequent release/acquires do not make the CPU sleep */
|
||||
}
|
||||
ApplicationLoader.backendWakeLock.release();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -468,19 +475,20 @@ public class MrMailbox {
|
||||
public native static int getCurrentTime ();
|
||||
|
||||
public final static int MEDIA_PHOTOVIDEO = 0;
|
||||
public static void getMediaCount(final long uid, final int type, final int classGuid, boolean fromCache) {
|
||||
public static void getMediaCount(final long uid, final int type) {
|
||||
Utilities.globalQueue.postRunnable(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
int[] media = new int[0];
|
||||
if( type == MEDIA_PHOTOVIDEO ) {
|
||||
media = MrMailbox.getChatMedia((int)uid, MrMsg.MR_MSG_IMAGE, MrMsg.MR_MSG_VIDEO);
|
||||
final int[] media = MrMailbox.getChatMedia((int)uid, MrMsg.MR_MSG_IMAGE, MrMsg.MR_MSG_VIDEO);
|
||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.mediaCountDidLoaded,
|
||||
uid, media.length, false /*not from cache*/, type, media);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.mediaCountDidLoaded,
|
||||
uid, media.length, false /*not from cache*/, type, media);
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Delta Chat Android
|
||||
* (C) 2013-2016 Nikolai Kudashov
|
||||
* (C) 2017 Björn Petersen
|
||||
* Contact: r10s@b44t.com, http://b44t.com
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option) any later
|
||||
* version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
* details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see http://www.gnu.org/licenses/ .
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
package com.b44t.messenger;
|
||||
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
|
||||
|
||||
public class NetworkStateReceiver extends BroadcastReceiver {
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if(intent == null || intent.getExtras() == null)
|
||||
return;
|
||||
|
||||
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
NetworkInfo ni = manager.getActiveNetworkInfo();
|
||||
|
||||
boolean connected = false;
|
||||
if(ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
|
||||
MrMailbox.log_i("DeltaChat", "++++++++++++++++++ Connected ++++++++++++++++++");
|
||||
connected = true;
|
||||
} else if(intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {
|
||||
MrMailbox.log_i("DeltaChat", "++++++++++++++++++ Disconnected ++++++++++++++++++");
|
||||
connected = false;
|
||||
}
|
||||
|
||||
// we interrupt idle also when going disconnected - otherwise the core will recognize the disconnected change
|
||||
// only after a timeout of typically 30 seconds; during this time a _reconnect_ will not be possible as the imap-thread
|
||||
// still hangs somewhere and waiting for response
|
||||
ApplicationLoader.startThreads();
|
||||
ApplicationLoader.waitForThreadsRunning();
|
||||
MrMailbox.interruptSmtpIdle();
|
||||
MrMailbox.interruptIdle();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -72,12 +72,12 @@ public class NotificationsController {
|
||||
private long opened_dialog_id = 0;
|
||||
private int total_unread_count = 0;
|
||||
private int personal_count = 0;
|
||||
private boolean notifyCheck = false;
|
||||
//private boolean notifyCheck = false;
|
||||
private boolean inChatSoundEnabled = true;
|
||||
private String launcherClassName;
|
||||
|
||||
private Runnable notificationDelayRunnable;
|
||||
private PowerManager.WakeLock notificationDelayWakelock;
|
||||
//private Runnable notificationDelayRunnable;
|
||||
//private PowerManager.WakeLock notificationDelayWakelock;
|
||||
|
||||
private long lastSoundPlay;
|
||||
private long lastSoundOutPlay;
|
||||
@@ -124,13 +124,13 @@ public class NotificationsController {
|
||||
|
||||
try {
|
||||
PowerManager pm = (PowerManager) ApplicationLoader.applicationContext.getSystemService(Context.POWER_SERVICE);
|
||||
notificationDelayWakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "notificationDelayWakelock" /*any name*/);
|
||||
notificationDelayWakelock.setReferenceCounted(false);
|
||||
//notificationDelayWakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "notificationDelayWakelock" /*any name*/);
|
||||
//notificationDelayWakelock.setReferenceCounted(false);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
|
||||
notificationDelayRunnable = new Runnable() {
|
||||
/*notificationDelayRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
//Log.i("DeltaChat", "delay reached");
|
||||
@@ -139,14 +139,14 @@ public class NotificationsController {
|
||||
delayedPushMessages.clear();
|
||||
}
|
||||
try {
|
||||
if (notificationDelayWakelock.isHeld()) {
|
||||
notificationDelayWakelock.release();
|
||||
}
|
||||
//if (notificationDelayWakelock.isHeld()) {
|
||||
// notificationDelayWakelock.release();
|
||||
//}
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
};*/
|
||||
|
||||
setBadge(0); // the set badge number survives application restarts, so reset it when creating
|
||||
}
|
||||
|
||||
@@ -84,7 +84,6 @@ import java.util.Locale;
|
||||
@SuppressWarnings("unchecked")
|
||||
public class PhotoViewer implements NotificationCenter.NotificationCenterDelegate, GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener {
|
||||
|
||||
private int classGuid;
|
||||
private PhotoViewerProvider placeProvider;
|
||||
private boolean isVisible;
|
||||
|
||||
@@ -2137,8 +2136,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
pickerView.updateSelectedCount(placeProvider.getSelectedCount(), false);
|
||||
}
|
||||
|
||||
private void onPhotoShow(final MessageObject messageObject, final TLRPC.FileLocation fileLocation, final ArrayList<MessageObject> messages, final ArrayList<Object> photos, int index, final PlaceProviderObject object) {
|
||||
classGuid = ApplicationLoader.generateClassGuid();
|
||||
private void setupPhotoShow() {
|
||||
currentMessageObject = null;
|
||||
currentFileLocation = null;
|
||||
currentPathObject = null;
|
||||
@@ -2170,7 +2168,6 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
imagesArrTemp.clear();
|
||||
//currentUserAvatarLocation = null;
|
||||
containerView.setPadding(0, 0, 0, 0);
|
||||
currentThumb = object != null ? object.thumb : null;
|
||||
menuItem.setVisibility(View.VISIBLE);
|
||||
bottomLayout.setVisibility(View.VISIBLE);
|
||||
//menuItem.hideSubItem(gallery_menu_showall);
|
||||
@@ -2201,8 +2198,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
radialProgressViews[a].setBackgroundState(-1, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (messageObject != null && messages == null) {
|
||||
private void onPhotoShow(final MessageObject messageObject, final TLRPC.FileLocation fileLocation,
|
||||
final ArrayList<MessageObject> messages, final ArrayList<Object> photos,
|
||||
int index, final PlaceProviderObject object) {
|
||||
currentThumb = object != null ? object.thumb : null;
|
||||
setupPhotoShow();
|
||||
|
||||
if (messageObject != null && messages == null) { // display a single image from a message.
|
||||
imagesArr.add(messageObject);
|
||||
if (currentAnimation != null) {
|
||||
needSearchImageInArr = false;
|
||||
@@ -2212,18 +2216,18 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
//menuItem.showSubItem(gallery_menu_showall);
|
||||
}
|
||||
setImageIndex(0, true);
|
||||
} else if (fileLocation != null) {
|
||||
} else if (fileLocation != null) { // display a single file from a known resource
|
||||
avatarsDialogId = object.dialogId;
|
||||
imagesArrLocations.add(fileLocation);
|
||||
imagesArrLocationsSizes.add(object.size);
|
||||
avatarsArr.add(new TLRPC.TL_photoEmpty());
|
||||
setImageIndex(0, true);
|
||||
//currentUserAvatarLocation = fileLocation;
|
||||
} else if (messages != null) {
|
||||
} else if (messages != null) { // display a list of files from messages
|
||||
//menuItem.showSubItem(gallery_menu_showall);
|
||||
opennedFromMedia = true;
|
||||
imagesArr.addAll(messages);
|
||||
if (!opennedFromMedia) {
|
||||
if (!opennedFromMedia) { // TODO: check this line, reads like: Must never happen
|
||||
Collections.reverse(imagesArr);
|
||||
index = imagesArr.size() - index - 1;
|
||||
}
|
||||
@@ -2232,7 +2236,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
imagesByIds[message.getDialogId() == currentDialogId ? 0 : 1].put(message.getId(), message);
|
||||
}
|
||||
setImageIndex(index, true);
|
||||
} else if (photos != null) {
|
||||
} else if (photos != null) { // display a list of files from gallery, to be able to select one of them
|
||||
if (sendPhotoType == 0) {
|
||||
checkImageView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
@@ -2262,9 +2266,9 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
|
||||
if (currentAnimation == null) {
|
||||
if (currentDialogId != 0 && totalImagesCount == 0) {
|
||||
MrMailbox.getMediaCount(currentDialogId, MrMailbox.MEDIA_PHOTOVIDEO, classGuid, true);
|
||||
MrMailbox.getMediaCount(currentDialogId, MrMailbox.MEDIA_PHOTOVIDEO);
|
||||
if (mergeDialogId != 0) {
|
||||
MrMailbox.getMediaCount(mergeDialogId, MrMailbox.MEDIA_PHOTOVIDEO, classGuid, true);
|
||||
MrMailbox.getMediaCount(mergeDialogId, MrMailbox.MEDIA_PHOTOVIDEO);
|
||||
}
|
||||
} else if (avatarsDialogId != 0) {
|
||||
//MessagesController.getInstance().loadDialogPhotos(avatarsDialogId, 0, 80, 0, true, classGuid);
|
||||
@@ -2666,8 +2670,12 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
if (size[0] == 0) {
|
||||
size[0] = -1;
|
||||
}
|
||||
TLRPC.PhotoSize thumbLocation = messageObject != null ? FileLoader.getClosestPhotoSizeWithSize(messageObject.photoThumbs, 100) : null;
|
||||
imageReceiver.setImage(fileLocation, null, null, placeHolder != null ? new BitmapDrawable(null, placeHolder) : null, thumbLocation != null ? thumbLocation.location : null, "b", size[0], null, avatarsDialogId != 0);
|
||||
TLRPC.PhotoSize thumbLocation = messageObject != null ?
|
||||
FileLoader.getClosestPhotoSizeWithSize(messageObject.photoThumbs, 100) : null;
|
||||
imageReceiver.setImage(fileLocation, null, null,
|
||||
placeHolder != null ? new BitmapDrawable(null, placeHolder) : null,
|
||||
thumbLocation != null ? thumbLocation.location : null, null,
|
||||
size[0], null, avatarsDialogId != 0);
|
||||
}
|
||||
} else {
|
||||
imageReceiver.setNeedsQualityThumb(false);
|
||||
@@ -2693,17 +2701,19 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
return isVisible && !disableShowCheck && object != null && currentPathObject != null && object.equals(currentPathObject);
|
||||
}
|
||||
|
||||
public void openPhoto(final MessageObject messageObject, long dialogId, final PhotoViewerProvider provider) {
|
||||
openPhoto(messageObject, null, null, null, 0, provider, null, dialogId);
|
||||
public void openPhoto(final MessageObject messageObject, long dialogId, final PhotoViewerProvider provider, ArrayList<Object> photos, int index) {
|
||||
openPhoto(messageObject, null, null, photos, index, provider, null, dialogId);
|
||||
}
|
||||
|
||||
public void openPhoto(final TLRPC.FileLocation fileLocation, final PhotoViewerProvider provider) {
|
||||
openPhoto(null, fileLocation, null, null, 0, provider, null, 0);
|
||||
}
|
||||
|
||||
/*public void openPhoto(final ArrayList<MessageObject> messages, final int index, long dialogId, final PhotoViewerProvider provider) {
|
||||
openPhoto(messages.get(index), null, messages, null, index, provider, null, dialogId);
|
||||
}*/
|
||||
public void openPhotoList(final MessageObject messageObject, final long dialogId,
|
||||
final PhotoViewerProvider provider, final ArrayList<MessageObject> photoMessages,
|
||||
final int index) {
|
||||
openPhoto(messageObject, null, photoMessages, null, index, provider, null, dialogId);
|
||||
}
|
||||
|
||||
public void openPhotoForSelect(final ArrayList<Object> photos, final int index, int type, final PhotoViewerProvider provider, ChatActivity chatActivity) {
|
||||
sendPhotoType = type;
|
||||
@@ -2726,8 +2736,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
return animationInProgress != 0;
|
||||
}
|
||||
|
||||
public void openPhoto(final MessageObject messageObject, final TLRPC.FileLocation fileLocation, final ArrayList<MessageObject> messages, final ArrayList<Object> photos, final int index, final PhotoViewerProvider provider, ChatActivity chatActivity, long dialogId) {
|
||||
if (parentActivity == null || isVisible || provider == null && checkAnimation() || messageObject == null && fileLocation == null && messages == null && photos == null) {
|
||||
private void openPhoto(final MessageObject messageObject, final TLRPC.FileLocation fileLocation,
|
||||
final ArrayList<MessageObject> messages, final ArrayList<Object> photos,
|
||||
final int index, final PhotoViewerProvider provider,
|
||||
final ChatActivity chatActivity, final long dialogId) {
|
||||
// TODO: the next line wants some parenthesis to clear the intent.
|
||||
if (parentActivity == null || isVisible || provider == null && checkAnimation() ||
|
||||
messageObject == null && fileLocation == null && messages == null && photos == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2921,7 +2936,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
|
||||
}
|
||||
};
|
||||
} else {
|
||||
if (photos != null) {
|
||||
if (photos != null) { // is always true, if object==null && photos==null we return at the beginning of the method.
|
||||
windowLayoutParams.flags = 0;
|
||||
windowLayoutParams.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN;
|
||||
wm.updateViewLayout(windowView, windowLayoutParams);
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.graphics.Rect;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.MenuItem;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -32,6 +33,7 @@ public class QRshowActivity extends AppCompatActivity implements NotificationCen
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_qrshow);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // keeping the screen on also avoids falling back from IDLE to POLL
|
||||
|
||||
Bundle b = getIntent().getExtras();
|
||||
int chat_id = 0;
|
||||
@@ -147,23 +149,28 @@ public class QRshowActivity extends AppCompatActivity implements NotificationCen
|
||||
public void didReceivedNotification(int id, Object... args) {
|
||||
if( id==NotificationCenter.secureJoinInviterProgress) {
|
||||
int contact_id = (Integer)args[0];
|
||||
int step = (Integer)args[1];
|
||||
int progress = (Integer)args[1];
|
||||
String msg = null;
|
||||
if( step == 3) {
|
||||
if (progress == 300) {
|
||||
msg = String.format(ApplicationLoader.applicationContext.getString(R.string.OobSecureJoinRequested), MrMailbox.getContact(contact_id).getNameNAddr());
|
||||
num_joiners++;
|
||||
}
|
||||
else if( step == 6 ){
|
||||
else if (progress == 600){
|
||||
msg = String.format(ApplicationLoader.applicationContext.getString(R.string.OobAddrVerified), MrMailbox.getContact(contact_id).getNameNAddr());
|
||||
num_joiners--;
|
||||
}
|
||||
else if (progress == 800) {
|
||||
msg = String.format(ApplicationLoader.applicationContext.getString(R.string.OobGroupJoined), MrMailbox.getContact(contact_id).getNameNAddr());
|
||||
}
|
||||
|
||||
if( msg != null ) {
|
||||
if (msg != null) {
|
||||
AndroidUtilities.showHint(ApplicationLoader.applicationContext, msg);
|
||||
}
|
||||
|
||||
if( step == 6 && num_joiners <= 0 ) {
|
||||
finish();
|
||||
if (progress == 1000) {
|
||||
num_joiners--;
|
||||
if (num_joiners <= 0) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,11 +33,21 @@ public class ScreenReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
|
||||
MrMailbox.log_i("DeltaChat", "*** Screen off");
|
||||
MrMailbox.log_i("DeltaChat", "-------------------- Screen off --------------------");
|
||||
ApplicationLoader.isScreenOn = false;
|
||||
|
||||
// also stop the idle-thread when the screen goes off, this is not always in sync with the ForegroundDetector
|
||||
/*if( !ApplicationLoader.getPermanentPush() ) {
|
||||
ApplicationLoader.scheduleStopImapThread();
|
||||
}*/
|
||||
|
||||
ApplicationLoader.applicationContext.startService(new Intent(ApplicationLoader.applicationContext, KeepAliveService.class));
|
||||
|
||||
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
|
||||
MrMailbox.log_i("DeltaChat", "*** Screen on");
|
||||
MrMailbox.log_i("DeltaChat", "-------------------- Screen on --------------------");
|
||||
ApplicationLoader.isScreenOn = true;
|
||||
|
||||
ApplicationLoader.applicationContext.stopService(new Intent(ApplicationLoader.applicationContext, KeepAliveService.class));
|
||||
}
|
||||
//NotificationCenter.getInstance().postNotificationName(NotificationCenter.screenStateChanged);
|
||||
}
|
||||
|
||||
@@ -79,6 +79,9 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter
|
||||
{
|
||||
// encoding done
|
||||
new File(messageObject.messageOwner.attachPath+".increation").delete();
|
||||
ApplicationLoader.startThreads();
|
||||
ApplicationLoader.waitForThreadsRunning();
|
||||
MrMailbox.interruptSmtpIdle();
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.messagesSentOrRead);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.text.InputType;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -60,6 +61,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
private int rowAddr;
|
||||
private int rowMailPwHeadline;
|
||||
private int rowMailPw;
|
||||
private int rowInfoExplain;
|
||||
private int rowOpenAdvOpions;
|
||||
|
||||
private int rowMailHeadline;
|
||||
@@ -75,8 +77,8 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
private int rowSendUser;
|
||||
private int rowSendPw;
|
||||
private int rowSendSecurity;
|
||||
private int rowBreak2;
|
||||
|
||||
private int rowInfoBelowSendPw;
|
||||
private int rowCount;
|
||||
|
||||
private final int ROWTYPE_INFO = 0; // no gaps here!
|
||||
@@ -84,6 +86,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
private final int ROWTYPE_SHADOW_BREAK = 2;
|
||||
private final int ROWTYPE_HEADLINE = 3;
|
||||
private final int ROWTYPE_TEXT_FLAGS = 4;
|
||||
private final int ROWTYPE_TEXT_SETTINGS= 5;
|
||||
|
||||
private EditTextCell addrCell; // warning all these objects may be null!
|
||||
private EditTextCell mailPwCell;
|
||||
@@ -150,6 +153,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
rowAddr = rowCount++;
|
||||
rowMailPwHeadline= rowCount++;
|
||||
rowMailPw = rowCount++;
|
||||
rowInfoExplain = rowCount++;
|
||||
rowOpenAdvOpions = rowCount++;
|
||||
|
||||
if( m_expanded ) {
|
||||
@@ -183,7 +187,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
rowSendSecurity = -1;
|
||||
}
|
||||
|
||||
rowInfoBelowSendPw = rowCount++;
|
||||
rowBreak2 = rowCount++;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -233,13 +237,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(final AdapterView<?> adapterView, View view, final int i, long l) {
|
||||
if( i==rowOpenAdvOpions )
|
||||
{
|
||||
m_expanded = !m_expanded;
|
||||
calculateRows();
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
else if( i==rowMailSecurity || i==rowSendSecurity )
|
||||
if( i==rowMailSecurity || i==rowSendSecurity )
|
||||
{
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||
builder.setTitle(R.string.SecurityTitle);
|
||||
@@ -274,12 +272,26 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
showDialog(builder.create());
|
||||
|
||||
}
|
||||
else if( i == rowOpenAdvOpions ) {
|
||||
m_expanded = !m_expanded;
|
||||
calculateRows();
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return fragmentView;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the selected E-Mail Address belongs to GMAIL
|
||||
* @return true if E-Mail is Gmail address
|
||||
*/
|
||||
private boolean isGmail() {
|
||||
String addr = addrCell != null ? addrCell.getValue() : MrMailbox.getConfig("addr", "");
|
||||
return addr != null && (addr.contains("@gmail.") || addr.contains("@googlemail."));
|
||||
}
|
||||
|
||||
private void saveData() {
|
||||
// Warning: the widgets are created as needed and may not be present!
|
||||
String v;
|
||||
@@ -355,19 +367,8 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
}
|
||||
|
||||
// try to connect, this results in an MR_EVENT_CONFIGURE_ENDED resp. NotificationCenter.configureEnded event
|
||||
Utilities.searchQueue.postRunnable(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
final int res = MrMailbox.configureAndConnect();
|
||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.configureEnded, (int)res);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ApplicationLoader.startThreads();
|
||||
MrMailbox.configure();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -394,7 +395,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
progressDialog = null;
|
||||
}
|
||||
|
||||
if( (int)args[0]==1 ) {
|
||||
if( (int)args[0]!=0 ) {
|
||||
if (fromIntro) {
|
||||
presentFragment(new ChatlistActivity(null), true);
|
||||
} else {
|
||||
@@ -405,7 +406,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
}
|
||||
else if( ! MrMailbox.m_lastErrorString.isEmpty() ){
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||
builder.setMessage(errorString);
|
||||
builder.setMessage(AndroidUtilities.replaceTags(errorString));
|
||||
builder.setPositiveButton(R.string.OK, null);
|
||||
showDialog(builder.create());
|
||||
}
|
||||
@@ -437,7 +438,7 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
|
||||
@Override
|
||||
public boolean isEnabled(int i) {
|
||||
return !(i==rowAddrHeadline || i==rowMailPwHeadline || i== rowMailHeadline || i== rowBreak1 || i== rowSendHeadline || i==rowInfoBelowSendPw);
|
||||
return !(i==rowAddrHeadline || i==rowMailPwHeadline || i== rowMailHeadline || i== rowBreak1 || i== rowBreak2 || i== rowSendHeadline || i== rowInfoExplain);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -470,6 +471,20 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
addrCell.setValueHintAndLabel(MrMailbox.getConfig("addr", ""),
|
||||
"", "", false);
|
||||
addrCell.getEditTextView().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||
//show or hide Gmail specific messages depending on mail address
|
||||
addrCell.getEditTextView().setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
||||
boolean wasGmail = false;
|
||||
@Override
|
||||
public void onFocusChange(View view, boolean b) {
|
||||
if (b) {
|
||||
wasGmail = isGmail();
|
||||
}
|
||||
else if (wasGmail != isGmail()) {
|
||||
calculateRows();
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
view = addrCell;
|
||||
}
|
||||
@@ -582,21 +597,33 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
if (view == null) {
|
||||
view = new ShadowSectionCell(mContext);
|
||||
}
|
||||
if( i == rowBreak2 ) {
|
||||
view.setBackgroundResource(R.drawable.greydivider_bottom);
|
||||
}
|
||||
}
|
||||
else if( type == ROWTYPE_TEXT_SETTINGS ) {
|
||||
if (view == null) {
|
||||
view = new TextSettingsCell(mContext);
|
||||
view.setBackgroundColor(0xffffffff);
|
||||
}
|
||||
TextSettingsCell textCell = (TextSettingsCell) view;
|
||||
if( i == rowOpenAdvOpions ) {
|
||||
textCell.setText((m_expanded?"▼ ":"▶ ")+mContext.getString(R.string.AdvancedSettings), false);
|
||||
}
|
||||
}
|
||||
else if (type == ROWTYPE_INFO) {
|
||||
if (view == null) {
|
||||
view = new TextInfoCell(mContext);
|
||||
}
|
||||
if( i== rowOpenAdvOpions) {
|
||||
((TextInfoCell) view).setText(ApplicationLoader.applicationContext.getString(R.string.MyAccountExplain),
|
||||
m_expanded? " \u2212" /*minus-sign*/ : "+", m_expanded /*draw bottom border?*/);
|
||||
view.setBackgroundResource(m_expanded? R.drawable.greydivider : R.drawable.greydivider_bottom); // has shadow top+bottom
|
||||
}
|
||||
else if( i==rowInfoBelowSendPw) {
|
||||
((TextInfoCell) view).setText(AndroidUtilities.replaceTags(ApplicationLoader.applicationContext.getString(R.string.MyAccountExplain2)));
|
||||
if( m_expanded ) {
|
||||
view.setBackgroundResource(R.drawable.greydivider_bottom);
|
||||
if( i== rowInfoExplain) {
|
||||
if (view == null) {
|
||||
view = new TextInfoCell(mContext);
|
||||
}
|
||||
((TextInfoCell) view).setText(
|
||||
Html.fromHtml(
|
||||
ApplicationLoader.applicationContext.getString(
|
||||
isGmail() ? R.string.MyAccountExplainGmail : R.string.MyAccountExplain
|
||||
)
|
||||
), null, true, true
|
||||
);
|
||||
view.setBackgroundResource(R.drawable.greydivider);
|
||||
}
|
||||
}
|
||||
return view;
|
||||
@@ -615,12 +642,15 @@ public class SettingsAccountFragment extends BaseFragment implements Notificatio
|
||||
else if( i==rowAddrHeadline || i==rowMailPwHeadline || i== rowMailHeadline || i== rowSendHeadline ) {
|
||||
return ROWTYPE_HEADLINE;
|
||||
}
|
||||
else if( i== rowBreak1 ) {
|
||||
else if( i== rowBreak1 || i== rowBreak2 ) {
|
||||
return ROWTYPE_SHADOW_BREAK;
|
||||
}
|
||||
else if( i==rowMailSecurity || i==rowSendSecurity) {
|
||||
return ROWTYPE_TEXT_FLAGS;
|
||||
}
|
||||
else if( i == rowOpenAdvOpions ) {
|
||||
return ROWTYPE_TEXT_SETTINGS;
|
||||
}
|
||||
return ROWTYPE_INFO;
|
||||
}
|
||||
|
||||
|
||||
@@ -67,6 +67,7 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
private int cacheRow;
|
||||
private int autoplayGifsRow;
|
||||
private int textSizeRow;
|
||||
private int backgroupModeRow;
|
||||
private int showUnknownSendersRow;
|
||||
private int sendByEnterRow;
|
||||
private int raiseToSpeakRow;
|
||||
@@ -129,6 +130,7 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
// for simplicity, we do not hide discouraged/supported options anywhere else.
|
||||
otherHeaderRow = rowCount++;
|
||||
passcodeRow = rowCount++;
|
||||
backgroupModeRow = -1;//rowCount++;
|
||||
autoplayGifsRow = rowCount++;
|
||||
textSizeRow = rowCount++; // for now, we have the font size in the advanced settings; this is because the numberical selection is a little bit weird and does only affect the message text. It would be better to use the font size defined by the system with "sp" (Scale-independent Pixels which included the user's font size preference)
|
||||
sendByEnterRow = rowCount++;
|
||||
@@ -309,7 +311,7 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
}
|
||||
});
|
||||
progressDialog.show();
|
||||
Utilities.searchQueue.postRunnable(new Runnable() {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
final String sc = MrMailbox.initiateKeyTransfer();
|
||||
@@ -340,7 +342,7 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}).start();
|
||||
}
|
||||
});
|
||||
showDialog(builder1.create());
|
||||
@@ -398,6 +400,31 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
});
|
||||
showDialog(builder.create());
|
||||
}
|
||||
else if( i == backgroupModeRow ) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||
builder.setTitle(R.string.FetchMode);
|
||||
builder.setMessage(AndroidUtilities.replaceTags(ApplicationLoader.applicationContext.getString(R.string.FetchModeExplain)));
|
||||
builder.setPositiveButton(R.string.FetchModeSaveBattery, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
ApplicationLoader.setPermanentPush(false);
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.FetchModePersistentConnection, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
ApplicationLoader.setPermanentPush(true);
|
||||
if (listView != null) {
|
||||
listView.invalidateViews();
|
||||
}
|
||||
}
|
||||
});
|
||||
builder.setNeutralButton(R.string.Cancel, null);
|
||||
showDialog(builder.create());
|
||||
}
|
||||
else if (i == passcodeRow) {
|
||||
if (UserConfig.passcodeHash.length() > 0) {
|
||||
presentFragment(new PasscodeActivity(PasscodeActivity.SCREEN2_ENTER_CODE2));
|
||||
@@ -542,18 +569,7 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
MrMailbox.m_lastErrorString = "";
|
||||
}
|
||||
|
||||
Utilities.searchQueue.postRunnable(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
final int res = MrMailbox.imex(progressWhat, imexDir.getAbsolutePath());
|
||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexEnded, (int)res);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
MrMailbox.imex(progressWhat, imexDir.getAbsolutePath());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -587,7 +603,7 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
progressDialog = null;
|
||||
}
|
||||
|
||||
if( (int)args[0]==1 ) {
|
||||
if( (int)args[0]!=0 ) {
|
||||
// success
|
||||
if( progressWhat==MrMailbox.MR_IMEX_EXPORT_SELF_KEYS || progressWhat==MrMailbox.MR_IMEX_EXPORT_BACKUP ) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||
@@ -691,6 +707,10 @@ public class SettingsAdvFragment extends BaseFragment implements NotificationCen
|
||||
int size = preferences.getInt("msg_font_size", SettingsAdvFragment.defMsgFontSize());
|
||||
textCell.setTextAndValue(mContext.getString(R.string.TextSize), String.format("%d", size), true);
|
||||
}
|
||||
else if( i == backgroupModeRow ) {
|
||||
boolean permanentPush = ApplicationLoader.getPermanentPush();
|
||||
textCell.setTextAndValue(mContext.getString(R.string.FetchMode), permanentPush? mContext.getString(R.string.FetchModePersistentConnection) : mContext.getString(R.string.FetchModeSaveBattery), true);
|
||||
}
|
||||
else if (i == passcodeRow) {
|
||||
String val = UserConfig.passcodeHash.length() > 0? mContext.getString(R.string.Enabled) : mContext.getString(R.string.Disabled);
|
||||
textCell.setTextAndValue(mContext.getString(R.string.Passcode), val, true);
|
||||
|
||||
@@ -35,32 +35,12 @@ import android.util.Log;
|
||||
public class TimerReceiver extends BroadcastReceiver {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
|
||||
// for a discussion about the different approaches to save batter, see https://github.com/deltachat/deltachat-android/issues/104#issuecomment-331670326
|
||||
Log.i("DeltaChat", "-------------------- on receive timer --------------------");
|
||||
|
||||
try {
|
||||
ApplicationLoader.wakeupWakeLock.acquire(); // do this first!
|
||||
MrMailbox.log_i("DeltaChat", "*** TimerReceiver.onReceive()");
|
||||
scheduleNextAlarm();
|
||||
|
||||
// we assume, the IMAP thread is alive. I cannot imagine, the thread was killed with the App being running.
|
||||
// (if the whole App was killed, the IMAP thread is already started by MrMailbox.connect() if we're here)
|
||||
// (the thread itself will reconnect to the IMAP server as needed)
|
||||
// however, it seems as if the threads sleep longer than ususal, check this by calling heartbeat() manually
|
||||
//
|
||||
// CAVE: MrMailbox.heartbeat() must not be called from the mainthread - otherwise eg. when the network hangs,
|
||||
// this function returns only after the network timeout and the ui thread may hang for minutes ...
|
||||
Utilities.searchQueue.postRunnable(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
MrMailbox.heartbeat();
|
||||
}
|
||||
});
|
||||
|
||||
// create the next alarm in about a minute
|
||||
scheduleNextAlarm();
|
||||
} finally {
|
||||
// Always release the wakelock, _if_ there is more to do, the backend acquires an additional wakelock using MR_EVENT_WAKE_LOCK
|
||||
ApplicationLoader.wakeupWakeLock.release();
|
||||
}
|
||||
ApplicationLoader.startThreads();
|
||||
ApplicationLoader.waitForThreadsRunning();
|
||||
}
|
||||
|
||||
public static void scheduleNextAlarm()
|
||||
@@ -74,7 +54,7 @@ public class TimerReceiver extends BroadcastReceiver {
|
||||
AlarmManager alarmManager = (AlarmManager) ApplicationLoader.applicationContext.getSystemService(Activity.ALARM_SERVICE);
|
||||
if( Build.VERSION.SDK_INT >= 23 ) {
|
||||
// a simple AlarmManager.set() is no longer send in the new DOZE mode
|
||||
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerAtMillis, alarmIntent);
|
||||
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerAtMillis, alarmIntent);
|
||||
}
|
||||
else {
|
||||
alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, alarmIntent);
|
||||
|
||||
@@ -29,12 +29,14 @@
|
||||
|
||||
package com.b44t.messenger;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.drawable.Drawable;
|
||||
@@ -217,6 +219,10 @@ public class WallpapersActivity extends BaseFragment implements NotificationCent
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
try {
|
||||
if (i == 0) {
|
||||
if (Build.VERSION.SDK_INT >= 23 && getParentActivity().checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
|
||||
getParentActivity().requestPermissions(new String[]{Manifest.permission.CAMERA}, LaunchActivity.REQ_CAMERA_PERMISSION_ID);
|
||||
return;
|
||||
}
|
||||
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
File image = AndroidUtilities.generatePicturePath();
|
||||
if (image != null) {
|
||||
|
||||
@@ -347,18 +347,7 @@ public class WelcomeActivity extends Activity implements NotificationCenter.Noti
|
||||
MrMailbox.m_lastErrorString = "";
|
||||
}
|
||||
|
||||
Utilities.searchQueue.postRunnable(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
final int res = MrMailbox.imex(MrMailbox.MR_IMEX_IMPORT_BACKUP, backupFile);
|
||||
AndroidUtilities.runOnUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexEnded, (int)res);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
MrMailbox.imex(MrMailbox.MR_IMEX_IMPORT_BACKUP, backupFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -381,8 +370,9 @@ public class WelcomeActivity extends Activity implements NotificationCenter.Noti
|
||||
progressDialog = null;
|
||||
}
|
||||
|
||||
if( (int)args[0]==1 ) {
|
||||
MrMailbox.connect(); // import does not automatically connect
|
||||
if( (int)args[0]!=0 ) {
|
||||
//ApplicationLoader.imapForeground = true;
|
||||
ApplicationLoader.startThreads(); // import does not automatically connect
|
||||
KeepAliveService kas = KeepAliveService.getInstance();
|
||||
if( kas != null ) {
|
||||
kas.updateForegroundNotification();
|
||||
|
||||
@@ -0,0 +1,483 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
|
||||
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="AppName">Delta Chat</string>
|
||||
<!--chats view-->
|
||||
<string name="Settings">Opsætning</string>
|
||||
<string name="NewGroup">Ny gruppe</string>
|
||||
<string name="NoResult">Intet resultat.</string>
|
||||
<string name="NoChats">Ingen samtaler endnu.</string>
|
||||
<string name="DeleteChat">Slette samtale</string>
|
||||
<string name="SelectChat">Vælge samtale…</string>
|
||||
<string name="Search">Søge</string>
|
||||
<string name="MuteNotifications">Lydløse påmindelser</string>
|
||||
<string name="MuteFor">Lydløs i %1$s</string>
|
||||
<string name="UnmuteNotifications">Lyd</string>
|
||||
<string name="Draft">Kladde</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Filer fra musik bibliotek.</string>
|
||||
<string name="AttachMusic">Musik</string>
|
||||
<!--documents view-->
|
||||
<string name="SelectFile">Vælge fil</string>
|
||||
<string name="FreeOfTotal">%1$s af %2$s fri</string>
|
||||
<string name="ErrorHint">Ukendt fejl</string>
|
||||
<string name="AccessError">Adgangsfejl</string>
|
||||
<string name="NoFiles">Ingen filer endnu...</string>
|
||||
<string name="NotMounted">Lager ikke monteret</string>
|
||||
<string name="UsbActive">USB overførsel i fremgang</string>
|
||||
<string name="InternalStorage">Internt lager</string>
|
||||
<string name="ExternalStorage">Eksternt lager</string>
|
||||
<string name="SystemRoot">System root</string>
|
||||
<string name="SdCard">SD kort</string>
|
||||
<string name="Folder">Mappe</string>
|
||||
<string name="GalleryInfo">Sende de-komprimerede billeder</string>
|
||||
<!--chat view-->
|
||||
<string name="ChatGallery">Galleri</string>
|
||||
<string name="ChatCamera">Kamera</string>
|
||||
<string name="NoMessages">Ingen beskeder</string>
|
||||
<string name="ForwardedMessage">Videresendt besked</string>
|
||||
<string name="From">Fra</string>
|
||||
<string name="NoRecent">Ingen nylige</string>
|
||||
<string name="TypeMessage">Besked</string>
|
||||
<string name="SlideToCancel">Glide for at annullere</string>
|
||||
<string name="SaveToDownloads">Gemme i \"Downloads\"</string>
|
||||
<string name="SaveToMusic">Gemme i \"Musik\"</string>
|
||||
<string name="Share">Dele</string>
|
||||
<string name="SendItems">Sende %1$s</string>
|
||||
<string name="ClearRecentEmoji">Rydde nylige emoji?</string>
|
||||
<string name="AddShortcut">Tilføje kontrol til hjemmeskærm</string>
|
||||
<string name="ShortcutAdded">Køntrol tilføjet hjemmeskærm</string>
|
||||
<!--notification-->
|
||||
<string name="Reply">Svare</string>
|
||||
<string name="ReplyToGroup">Svare %1$s</string>
|
||||
<string name="ReplyToContact">Svare %1$s</string>
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">Ingen kontakter endnu.</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">Sende besked til...</string>
|
||||
<string name="EnterGroupNamePlaceholder">Indtaste gruppe navn</string>
|
||||
<!--group info view-->
|
||||
<string name="AddMember">Tilføje medlem</string>
|
||||
<string name="Notifications">Påmindelser</string>
|
||||
<string name="RemoveMember">Fjerne medlem</string>
|
||||
<!--contact info view-->
|
||||
<string name="NewContactTitle">Tilføje kontakt</string>
|
||||
<string name="BlockContact">Blokere kontakt</string>
|
||||
<string name="DeleteContact">Slette kontakt</string>
|
||||
<string name="Info">Oplysning</string>
|
||||
<!--settings view-->
|
||||
<string name="TextSize">Skriftstørrelse for beskeder</string>
|
||||
<string name="UnblockContact">Fjerne kontakt blokering</string>
|
||||
<string name="NoBlocked">Ingen blokerede kontaker endnu</string>
|
||||
<string name="DefaultForNormalMessages">Normale beskeder</string>
|
||||
<string name="MessagePreview">Forhåndsvise besked</string>
|
||||
<string name="DefaultForGroupMessages">Gruppe beskeder</string>
|
||||
<string name="Sound">Lyd</string>
|
||||
<string name="InAppNotifications">I program påmindelser</string>
|
||||
<string name="Vibrate">Vibrere</string>
|
||||
<string name="ResetAllNotifications">Nulstille alle påmindelser</string>
|
||||
<string name="NotificationsAndSounds">Påmindelser og lyde</string>
|
||||
<string name="BlockedContacts">Blokerede kontakter</string>
|
||||
<string name="Default">Standard</string>
|
||||
<string name="OnlyIfSilent">Kun når stille</string>
|
||||
<string name="ChatBackground">Samtale baggrund</string>
|
||||
<string name="SendByEnter">Sende med ↵</string>
|
||||
<string name="Help">Hjælp</string>
|
||||
<string name="Enabled">Til</string>
|
||||
<string name="Disabled">Fra</string>
|
||||
<string name="LedColor">LED farve</string>
|
||||
<string name="BadgeNumber">Brug ikon for at holde antal hvis muligt</string>
|
||||
<string name="Short">Kort</string>
|
||||
<string name="Long">Lang</string>
|
||||
<string name="RaiseToSpeak">Hæve for at tale</string>
|
||||
<string name="EditName">Redigere navn</string>
|
||||
<string name="NotificationsPriority">Vise</string>
|
||||
<string name="NotificationsPriorityDefault">Normal prioritet</string>
|
||||
<string name="NotificationsPriorityHigh">Høj prioritet</string>
|
||||
<string name="NotificationsPriorityMax">Højeste prioritet</string>
|
||||
<string name="RepeatNotifications">Gentage påmindelser</string>
|
||||
<string name="NotificationsOther">Andet</string>
|
||||
<string name="InChatSound">I samtale lyde</string>
|
||||
<string name="SmartNotifications">Begrænse påmindelser</string>
|
||||
<string name="SmartNotificationsSoundAtMost">Maks.</string>
|
||||
<string name="SmartNotificationsTimes">gange</string>
|
||||
<string name="SmartNotificationsWithin">inden for</string>
|
||||
<string name="SmartNotificationsMinutes">minutter</string>
|
||||
<string name="DirectShare">Direkte deling</string>
|
||||
<string name="DirectShareInfo">Vise nylige samtaler i dele menu</string>
|
||||
<!--cache view-->
|
||||
<string name="CacheSettings">Lager</string>
|
||||
<string name="KeepMedia">Beholde medie</string>
|
||||
<string name="KeepMediaInfo">Billeder, videor og andre filer fra sky samtaler som <![CDATA[<b>ikke er tilgået</b>]]> i enne periode vil blive fjernet fra denne enhed for at spare lager plads.</string>
|
||||
<string name="KeepMediaForever">For altid</string>
|
||||
<!--passcode view-->
|
||||
<string name="Passcode">Kodeordslås</string>
|
||||
<string name="ChangePasscode">Ændre kodeord</string>
|
||||
<string name="ChangePasscodeInfo">Ved opsætning af flere kodeord vil et låse ikon vises ved toppen af samtale listen. Tryk på den for at låse programmet.\n\nBemærk: Hvis kodeordet glemmes skal programmet slettes og geninstalleres.</string>
|
||||
<string name="PasscodePIN">PIN</string>
|
||||
<string name="PasscodePassword">Adgangskode</string>
|
||||
<string name="EnterCurrentPasscode">Indtaste nuværende kodeord</string>
|
||||
<string name="EnterNewFirstPasscode">Indtaste kodeord</string>
|
||||
<string name="EnterNewPasscode">Indtaste nyt kodeord</string>
|
||||
<string name="EnterYourPasscode">Indtaste kodeord</string>
|
||||
<string name="ReEnterYourPasscode">Genindtaste nyt kodeord</string>
|
||||
<string name="PasscodeDoNotMatch">Kodeord passer ikke</string>
|
||||
<string name="AutoLock">Autolåse</string>
|
||||
<string name="AutoLockInfo">Kræve kodeord hvis væk i en tid.</string>
|
||||
<string name="UnlockFingerprint">Låse op med fingeraftryk</string>
|
||||
<string name="FingerprintInfo">Bekræfte fingeraftryk for at fortsætte</string>
|
||||
<string name="FingerprintNotRecognized">Kan ikke genkende fingeraftryk. Prøv igen.</string>
|
||||
<!--photo gallery view-->
|
||||
<string name="SaveToGallery">Gemme i \"Galleri\"</string>
|
||||
<string name="Of">%1$d af %2$d</string>
|
||||
<string name="Gallery">Galleri</string>
|
||||
<string name="AllPhotos">Alle billeder</string>
|
||||
<string name="AllVideo">Alle videoer</string>
|
||||
<string name="NoPhotos">Ingen billeder endnu</string>
|
||||
<string name="NoVideo">Ingen videoer endnu</string>
|
||||
<string name="CropImage">Beskære billede</string>
|
||||
<string name="EditImage">Redigere billede</string>
|
||||
<string name="Enhance">Forbedre</string>
|
||||
<string name="Highlights">Fremhæve</string>
|
||||
<string name="Contrast">Kontrast</string>
|
||||
<string name="Exposure">Eksponering</string>
|
||||
<string name="Warmth">Varme</string>
|
||||
<string name="Saturation">Mætning</string>
|
||||
<string name="Vignette">Vignet</string>
|
||||
<string name="Shadows">Skygger</string>
|
||||
<string name="Grain">Korn</string>
|
||||
<string name="Sharpen">Skærpe</string>
|
||||
<string name="Fade">Falme</string>
|
||||
<string name="Tint">Toning</string>
|
||||
<string name="TintShadows">Skygger</string>
|
||||
<string name="TintHighlights">Fremhæve</string>
|
||||
<string name="Curves">Kurver</string>
|
||||
<string name="CurvesAll">Alle</string>
|
||||
<string name="CurvesRed">Rød</string>
|
||||
<string name="CurvesGreen">Grøn</string>
|
||||
<string name="CurvesBlue">Blå</string>
|
||||
<string name="Blur">Sløre</string>
|
||||
<string name="BlurOff">Fra</string>
|
||||
<string name="BlurLinear">Lineær</string>
|
||||
<string name="BlurRadial">Radial</string>
|
||||
<string name="DiscardChanges">Kassere ændringer?</string>
|
||||
<string name="ClearButton">Rydde</string>
|
||||
<string name="PickerPhotos">Billeder</string>
|
||||
<string name="PickerVideo">Video</string>
|
||||
<!--privacy settings-->
|
||||
<string name="PrivacySettings">Privatliv og sikkerhed</string>
|
||||
<string name="SecurityTitle">Sikkerhed</string>
|
||||
<!--edit video view-->
|
||||
<string name="SendVideo">Sende video</string>
|
||||
<!--button titles-->
|
||||
<string name="Done">Færdig</string>
|
||||
<string name="Open">Åbne</string>
|
||||
<string name="Cancel">Annullere</string>
|
||||
<string name="Edit">Redigere</string>
|
||||
<string name="Send">Sende</string>
|
||||
<string name="CopyToClipboard">Kopiere til klippebord</string>
|
||||
<string name="Delete">Slette</string>
|
||||
<string name="Forward">Videresende</string>
|
||||
<string name="FromCamera">Fra kamera</string>
|
||||
<string name="FromGalley">Fra \"Galleri\"</string>
|
||||
<string name="Set">Sætte</string>
|
||||
<string name="OK">O.k.</string>
|
||||
<string name="Crop">Beskære</string>
|
||||
<!--messages-->
|
||||
<string name="AttachPhoto">Billede</string>
|
||||
<string name="AttachVideo">Video</string>
|
||||
<string name="AttachGif">GIF</string>
|
||||
<string name="AttachContact">Kontakt</string>
|
||||
<string name="AttachDocument">Fil</string>
|
||||
<string name="AttachVoiceMessage">Tale besked</string>
|
||||
<string name="FromSelf">Undertegnet</string>
|
||||
<!--Alert messages-->
|
||||
<string name="NoHandleAppInstalled">For at fortsætte installere et program som kan håndtere \'%1$s\' filer.</string>
|
||||
<string name="ContactAlreadyInGroup">Kontakt allerede i gruppen.</string>
|
||||
<string name="ForwardMessagesTo">Videresende valgte beskeder til <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="SendMessagesTo">Sende beskeder til <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="AreYouSureDeleteThisChat">Slette samtale? Den vil ikke længere blive vist i samtale listen, dets bekseder vil forblive på serveren.</string>
|
||||
<string name="AreYouSureBlockContact">Blokere kontakt?</string>
|
||||
<string name="AreYouSureDeleteContact">Slette kontakt?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Adgang til kontakter nødvendig for at forbinde med venner på alle enheder.</string>
|
||||
<string name="PermissionStorage">Lager adgang nødvendig for at sende og gemme billeder, video, musik og andre medier.</string>
|
||||
<string name="PermissionNoAudio">Tildele mikrofon adgang for at optage tale beskeder.</string>
|
||||
<string name="PermissionOpenSettings">Opsætning</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
<string name="Intro1Message">Budbringeren med det <![CDATA[<b>største publikum</b>]]> i verden. <![CDATA[<b>Fri</b>]]> og <![CDATA[<b>uafhængig</b>]]>.</string>
|
||||
|
||||
<string name="Intro2Headline">Uafhængig</string>
|
||||
<string name="Intro2Message"><![CDATA[<b>Der er ingen Delta Chat server.</b>]]> Programmet bruger e-post server.</string>
|
||||
|
||||
<string name="Intro3Headline">Hurtig</string>
|
||||
<string name="Intro3Message"><![CDATA[<b>Skubbe beskeder</b>]]> på sekunder.<![CDATA[<br/>]]>Hurtig grænseflade.</string>
|
||||
|
||||
<string name="Intro4Headline">Stærk</string>
|
||||
<string name="Intro4Message"><![CDATA[<b>Ubegrænsede</b>]]> samtaler, billeder, videoer, lyd beskeder og mere. Kan håndteres af flere klienter.</string>
|
||||
|
||||
<string name="Intro5Headline">Fri</string>
|
||||
<string name="Intro5Message"><![CDATA[<b>Delta Chat</b>]]> er fri for altid.<![CDATA[<br/>]]>Åben kildetekst. Ingen reklamer. Intet abonnement.. Ingen leverandør låsning.</string>
|
||||
|
||||
<string name="Intro6Headline">Krypteret</string>
|
||||
<string name="Intro6Message"><![CDATA[<b>Krypteret</b>]]> med kun almindelige algoritmer. Meddelelser bliver på servere.</string>
|
||||
|
||||
<string name="Intro7Headline">Troværdig</string>
|
||||
|
||||
<string name="IntroStartMessaging">Starte besked</string>
|
||||
<!--plural-->
|
||||
<plurals name="Members">
|
||||
<item quantity="one">%d medlem</item>
|
||||
<item quantity="other">%d medlemmer</item>
|
||||
</plurals>
|
||||
<plurals name="Contacts">
|
||||
<item quantity="one">%d kontakt</item>
|
||||
<item quantity="other">%d kontakter</item>
|
||||
</plurals>
|
||||
<plurals name="MeAndMembers">
|
||||
<item quantity="one">%d medlem og undertegnet</item>
|
||||
<item quantity="other">%d medlemmer og undertegnet</item>
|
||||
</plurals>
|
||||
<plurals name="NewMessages">
|
||||
<item quantity="one">%d ny besked</item>
|
||||
<item quantity="other">%d nye beskeder</item>
|
||||
</plurals>
|
||||
<plurals name="messages">
|
||||
<item quantity="one">%d besked</item>
|
||||
<item quantity="other">%d beskeder</item>
|
||||
</plurals>
|
||||
<plurals name="AreYouSureDeleteMessages">
|
||||
<item quantity="one">Slette %d besked her og på server.</item>
|
||||
<item quantity="other">Slette %d beskeder her og på server.</item>
|
||||
</plurals>
|
||||
<!-- Translators: The first string placeholder gets replaced with the
|
||||
text "%d new messages", so the complete sentence would be e.g.
|
||||
"4 new messages in 2 chats". -->
|
||||
<plurals name="NewMessagesInChats">
|
||||
<item quantity="one">%1$s i %2$d samtale</item>
|
||||
<item quantity="other">%1$s i %2$d samtaler</item>
|
||||
</plurals>
|
||||
<plurals name="Chats">
|
||||
<item quantity="one">%d samtale</item>
|
||||
<item quantity="other">%d samtaler</item>
|
||||
</plurals>
|
||||
<plurals name="Minutes">
|
||||
<item quantity="one">%d minut</item>
|
||||
<item quantity="other">%d minutter</item>
|
||||
</plurals>
|
||||
<plurals name="Hours">
|
||||
<item quantity="one">%d time</item>
|
||||
<item quantity="other">%d timer</item>
|
||||
</plurals>
|
||||
<plurals name="Days">
|
||||
<item quantity="one">%d dag</item>
|
||||
<item quantity="other">%d dage</item>
|
||||
</plurals>
|
||||
<plurals name="Weeks">
|
||||
<item quantity="one">%d uge</item>
|
||||
<item quantity="other">%d uger</item>
|
||||
</plurals>
|
||||
<plurals name="Months">
|
||||
<item quantity="one">%d månede</item>
|
||||
<item quantity="other">%d måneder</item>
|
||||
</plurals>
|
||||
<!-- Translators: The second string placeholder gets replaced with the
|
||||
text "%d minutes", so the complete sentence would be e.g.
|
||||
"At most 8 notifications within 3 minutes". -->
|
||||
<plurals name="MaxNotifications">
|
||||
<item quantity="one">Højest %1$d påmindelse inden for %2$s</item>
|
||||
<item quantity="other">Højest %1$d påmindelser inden for %2$s</item>
|
||||
</plurals>
|
||||
<!--date formatters-->
|
||||
<string name="formatterMonthYear">MMMM åååå</string>
|
||||
<string name="formatterMonth">MMM dd</string>
|
||||
<string name="formatterYear">dd.MM.åååå</string>
|
||||
<string name="chatDate">EEE, MMMM d</string>
|
||||
<string name="chatFullDate">EEE, MMMM d, åååå</string>
|
||||
<string name="formatterWeek">EEE</string>
|
||||
<string name="formatterDay24H">TT:mm</string>
|
||||
<string name="formatterDay12H">t:mm a</string>
|
||||
<string name="formatDateAtTime">%1$s hos %2$s</string>
|
||||
<string name="AccountSettings">Konto opsætning</string>
|
||||
<string name="MyAccount">Konto</string>
|
||||
<string name="MyName">Navn</string>
|
||||
<string name="MyNameExplain">Navn, vist for modtagere. Hvis tom vil kun e-post adresse blive sendt.</string>
|
||||
<string name="Password">Adgangskode</string>
|
||||
<string name="SmtpPassword">SMTP adgangskode</string>
|
||||
<string name="FromAbove">Ovenfra</string>
|
||||
<string name="SmtpLoginname">SMTP logind navn</string>
|
||||
<string name="SmtpPort">SMTP port</string>
|
||||
<string name="Automatic">Automatisk</string>
|
||||
<string name="ImapServer">IMAP server</string>
|
||||
<string name="ImapLoginname">IMAP logind navn</string>
|
||||
<string name="SmtpServer">SMTP server</string>
|
||||
<string name="ImapPort">IMAP port</string>
|
||||
<string name="InboxHeadline">Indbakke</string>
|
||||
<string name="OutboxHeadline">Udbakke</string>
|
||||
<string name="AdvancedOptions">Avancerede indstillinger...</string>
|
||||
<string name="MyAccountExplain">For kendte e-post udbyder bliver ekstra opsætninger bestemt automatisk.<![CDATA[<br/>]]><![CDATA[<br/>]]>Nogle gange, <![CDATA[<b>]]>skal IMAP aktiveres<![CDATA[</b>]]> i e-post web grænseflade.\n\nKontakt e-post udbyder eller venner ved problemer.</string>
|
||||
<string name="MyAccountExplainGmail">For <![CDATA[<b>]]>GMail<![CDATA[</b>]]> konti skal der enten oprettes en
|
||||
<![CDATA[<a href=\"https://security.google.com/settings/security/apppasswords\">]]>program-adgangskode<![CDATA[</a>]]> hvis 2FA er aktiveret.
|
||||
<![CDATA[<br/>]]>Hvis opsætningen ikke er tilgængelig, skal <![CDATA[<a href=\"https://myaccount.google.com/lesssecureapps\">]]>mindre sikre programmer<![CDATA[</a>]]> aktiveres.
|
||||
</string>
|
||||
<string name="AccountNotConfigured">Konto ikke indstillet</string>
|
||||
<string name="AboutThisProgram">Om Delta Chat</string>
|
||||
<string name="NotSet">Ikke angivet</string>
|
||||
<string name="NewChat">Ny samtale</string>
|
||||
<string name="Deaddrop">Kontakt forespørgsel</string>
|
||||
<string name="DeaddropInChatlist">Vise kontakt forespørgsler i samtale liste</string>
|
||||
<string name="MuteAlways">Altid lydløs</string>
|
||||
<string name="AskStartChatWith">Snakke med <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Tryk på svar-pile for at starte samtale.</string>
|
||||
<string name="NotYetImplemented">Funktion ikke tilgængelig eller ufuldstændig.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Sendt med Delta Chat Messenger: https://delta.chat</string>
|
||||
<string name="Name" >Navn</string>
|
||||
<string name="EmailAddress">E-post adresse</string>
|
||||
<string name="CannotDeleteContact">Kan ikke slette aktiv bruger, blokere kontakt i stedet. </string>
|
||||
<string name="BadEmailAddress">Forkert e-post adresse.</string>
|
||||
<string name="ContactCreated">Kontakt oprettet</string>
|
||||
<string name="ViewProfile">Vise profil</string>
|
||||
<!-- Translators: please use a very short string here, it should not much longer than
|
||||
the string needed for video time+size (0:00, 12,3 Mib) -->
|
||||
<string name="OneMoment">Øjeblik…</string>
|
||||
<string name="NoChatsHelp">Start beskeder ved at trykke på \"Ny samtale\" knappen i bunden til højre eller på \"Menu\" knappen for flere valgmuligheder.</string>
|
||||
<string name="Intro7Message"><![CDATA[<b>Delta Chat</b>]]> er sikker til erhvervslivet, kompatibel og standardbaseret.</string>
|
||||
<string name="InviteMenuEntry">Sende invitationer</string>
|
||||
<string name="InviteText"> Jeg bruger Delta Chat - %1$s - du kan skrive til mig hos %2$s</string>
|
||||
<string name="AdvancedSettings">Avanceret</string>
|
||||
<string name="AskResetNotifications">Nulstille alle påmindelse opsætning og lyde på nuværende side, kontakter og grupper?</string>
|
||||
<string name="AttachFiles">Vedhæfte filer</string>
|
||||
<string name="ErrGroupNameEmpty">Indtaste gruppe navn.</string>
|
||||
<string name="MsgNewGroupDraftHint">Skriv den første besked som tillader andre at svare inden for denne gruppe.\n\n• Det er o.k. hvis ikke alle medlemmer bruger Delta Chat.\n\n• Aflevering af første besked kan tage nogen tid.</string>
|
||||
<string name="MsgNewGroupDraft">Hej, jeg har lige oprettet gruppen \"%1$s\" til os.</string>
|
||||
<string name="MsgGroupNameChanged">Gruppe navn ændret fra \"%1$s\" til \"%2$s\".</string>
|
||||
<string name="MsgGroupImageChanged">Gruppe billede ændret</string>
|
||||
<string name="MsgMemberAddedToGroup">Medlem %1$s tilføjet.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">Medlem %1$s fjernet.</string>
|
||||
<string name="AskAddMemberToGroup">Tilføje <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> til gruppe?</string>
|
||||
<string name="AskRemoveMemberFromGroup">Fjerne <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> fra gruppe?</string>
|
||||
<string name="ErrSelfNotInGroup">Mans skal være medlem af gruppen for at kunne udføre denne handling.</string>
|
||||
<string name="MsgGroupLeft">Forladt gruppe.</string>
|
||||
<string name="NoMessagesHint">Sende besked til <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>:\n\n• Det er o.k.hvis <![CDATA[<b>]]>%2$s<![CDATA[</b>]]> ikke bruger Delta Chat.\n\n• Levering af første besked kan tage nogen tid.</string>
|
||||
<string name="SendNRcvReadReceipts">Modtage og sende læse kvitteringer</string>
|
||||
<string name="PreferE2EEncryption">Foretrække ende-til-ende kryptering</string>
|
||||
<string name="E2EManagePrivateKeys">Håndtere nøgler</string>
|
||||
<string name="E2ECompareKeys">Sammenligne nøgler</string>
|
||||
<string name="ForwardToTitle">Videresende til...</string>
|
||||
<string name="SelectContact">Vælge kontakt</string>
|
||||
<string name="DoneHint">Færdig.</string>
|
||||
<string name="FileNotFound">Kan ikke finde %1$s.</string>
|
||||
<string name="Error">Fejl: %1$s</string>
|
||||
<string name="NoNetwork">Netværk ikke tilgængelig.</string>
|
||||
<string name="Audio">Lyd</string>
|
||||
<string name="PleaseCutVideoToMaxSize">Komprimere video størrelse til mindre end %1$s.</string>
|
||||
<string name="PermNotificationTitle">Forbundet til %1$s</string>
|
||||
<string name="PermNotificationText">Venter på beskeder...</string>
|
||||
<string name="SettingsFor">Opsætninger til %1$s</string>
|
||||
<string name="AutoplayGifs">Automatisk afspille GIF</string>
|
||||
<string name="HelpUrl">https://delta.chat/en/help</string>
|
||||
<string name="EncryptedMessage">Krypteret besked</string>
|
||||
<string name="Encryption">Kryptering</string>
|
||||
<string name="EncrinfoE2EAvailable">Ende-til-ende kryptering tilgængelig.</string>
|
||||
<string name="EncrinfoTransport">Overførsel kryptering mindst til server.</string>
|
||||
<string name="EncrinfoNone">Ingen kryptering til server.</string>
|
||||
<string name="EncrinfoFingerprints">Fingeraftryk</string>
|
||||
<string name="Backup">Sikkerhedskopi</string>
|
||||
<string name="ImportBackupExplain2">For at importere sikkerhedskopi, kopiere en sikkerhedskopi til <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> og geninstallere programmet.</string>
|
||||
<string name="ReadReceiptMailBody">Dette er en kvittering for læst besked \"%1$s\".\n\nDet betyder at beskeden blev vist på modtagerens enhed ikke nødvendigvis at indholdet blev læst.</string>
|
||||
<string name="ReadReceipt">Læse kvittering</string>
|
||||
<string name="NameAndStatus">Navn og status</string>
|
||||
<string name="MyStatus">Status</string>
|
||||
<string name="MyStatusExplain">Status vises bl.a. i e-post sidefod.</string>
|
||||
<string name="MsgGroupImageDeleted">Gruppe billede slettet.</string>
|
||||
<string name="AskDeleteGroupImage">Slette gruppe billede?\n\nDette vil have indflydelse på alle enheder for alle gruppe medlemmer.</string>
|
||||
<string name="ExportImportHeader">Eksportere og importere</string>
|
||||
<string name="ImportExportExplain">Eksporterede filer indeholder ende-til-ende Autocrypt opsætning! Gem dem på et sikkert sted eller slet dem så hurtigt som muligt.</string>
|
||||
<string name="EnterPasswordToContinue">Indtaste adgangskode til %1$s for at fortsætte:</string>
|
||||
<string name="IncorrectPassword">Forkert adgangskode.</string>
|
||||
<string name="ImportBackupAsk">Sikkerhedskopi fundet på <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.\n\nSkal den importeres og bruge al data og opsætninger fra den?</string>
|
||||
<string name="ImportBackup">Importere sikkerhedskopi</string>
|
||||
<string name="NoBackupFound">Ingen sikkerhedskopier fundet.\n\nKopiere sikkerhedskopien til <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> og prøv igen. Alternativt tryk \"Start besked\" for at køre den normale opsætning.</string>
|
||||
<string name="FilesSuccessfullyExported">Filer eksporteret til <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.</string>
|
||||
<string name="ExportBackup">Eksportere sikkerhedskopi</string>
|
||||
<string name="ExportPrivateKeys">Eksportere hemmelige nøgler</string>
|
||||
<string name="ImportPrivateKeys">Importere hemmelige nøgler</string>
|
||||
<string name="ImportPrivateKeysAsk2">Importere hemmelige nøgler fra <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>?\n\n• Eksisterende nøgler bliver ikke slettet\n\n• Seneste importeret nøgle bruges som standard nøgle</string>
|
||||
<string name="NoRecentEmoji">Nylige brugte emoji vises her.</string>
|
||||
<string name="NotNow">Ikke nu</string>
|
||||
<string name="ArchiveChat">Arkivere samtale</string>
|
||||
<string name="UnarchiveChat">De-arkivere samtale</string>
|
||||
<string name="ArchivedChats">Arkivere samtaler</string>
|
||||
<string name="Archived">Arkiveret</string>
|
||||
<string name="LeaveGroup">Forlade gruppe</string>
|
||||
<string name="AskLeaveGroup">Forlade gruppe?</string>
|
||||
<string name="Never">Aldrig</string>
|
||||
<string name="AutocryptKeyTransferInitiate">Sende Autocrypt opsætningsbesked</string>
|
||||
<string name="AutocryptKeyTransfer">Autocrypt opsætningsbesked</string>
|
||||
<string name="AutocryptKeyTransferMsgBeforeSend">En <![CDATA[<i>]]>Autocrypt opsætningsbesked<![CDATA[</i>]]> sikkert dele ende-til-ende opsætning med andre Autocrypt kompatible programmer.\n\nOpsætningen er krypteret med en opsætningskode som vises her og skal indtastes på den anden enhed.</string>
|
||||
<string name="AutocryptKeyTransferMsgAfterSend">Opsætning er sendt til undertegnede. Skift til den anden enhedog åben opstningsbekeden. Der vil blive forespurgt til en opsætningskode. Indtast følgende cifre i forespørgselen:\n\n%1$s\n\nNår dette er gjortvil den anden enhed være klar til Autocrypt.</string>
|
||||
<string name="AutocryptSetupMessageSubject">Autocrypt opsætningsbesked</string>
|
||||
<string name="AutocryptSetupMessageGeneralBody">Dette er Autocrypt opsætningsbesked brugt til at overføre ende-til-ende opsætning mellem klienter.\n\nFor at dekryptere og bruge opsætning åben beskeden i en Autocrypt kompatibel klient og indtast opsætningskoden vist på kilde enheden.</string>
|
||||
<string name="AutocryptSetupMessageTapBody">Dette er en Autocrypt besked brugt til at overføre ende-til-ende opsætning mellem klienter.\n\nFor at dekryptere og bruge opsætning, tryk på denne besked.</string>
|
||||
<string name="AutocryptKeyTransferPleaseEnterCode">Indtaste opsætningskode vist på anden enhed.</string>
|
||||
<string name="AutocryptKeyTransferBadCode">Opsætningskode er ikke god. Prøv igen.\n\nHvis opsætningskode er glemt send blot en ny Autocrypt besked fra en anden enhed..</string>
|
||||
<string name="AutocryptKeyTransferSucceeded">Ende-til-ende opsætning overført. Denne enhed er nu klar til at bruge Autocrypt med samme opsætning som anden enhed.</string>
|
||||
<string name="Retry">Prøv igen</string>
|
||||
<string name="SelfTalkSubtitle">Beskeder sendt af undertegnet til undertegnet</string>
|
||||
<string name="QrScan">Skanne QR kode</string>
|
||||
<string name="QrShow">Vise QR kode</string>
|
||||
<string name="QrScanContainsText">Skannet QR kode indeholder følgende tekst:\n\n%1$s</string>
|
||||
<string name="QrScanContainsUrl">Skannet QR kode indeholder følgende URL:\n\n%1$s</string>
|
||||
<string name="OobFingerprint">Fingeraftryk</string>
|
||||
<string name="OobFingerprintAskOob">Efterprøv kontakt og start samtale med <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="OobFingerprintOk">Kontact <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> efterprøvet. Start samtale?</string>
|
||||
<string name="OobFingerprintMismatch">Skannet fingeraftryk <![CDATA[<b>]]>passer ikke<![CDATA[</b>]]> det sidst sete fingeraftryk for <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.</string>
|
||||
<string name="OobFingerprintWithoutAddr">QR kode indeholder fingeraftryk men ingen e-post adresse.\n \nFor en uden for bånd efterprøvning, skal en krypteret forbindelse til modtageren først oprettes.</string>
|
||||
<string name="OobSecureJoinRequested">%1$s tilslutter.</string>
|
||||
<string name="CannotDecryptBody">Denne besked kan ikke dekrypteres.\n\n• Det kan måske hjælpe at svare på beskeden og bede afsender gensende beskeden.\n\n• I tilfælde Delta Chat er blevet geninstalleret eller et andet e-post program på denne eller en anden enhed bør der sendes en Autocrypt opsætningsbeked fra dem.</string>
|
||||
<string name="Autocrypt">Autocrypt</string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> er en ny og åben specifikation til ende-til-ende e-post kryptering.\n\nEnde-til-ende opsætning oprettes automatisk efter behov og kan overføres mellem enheder med <![CDATA[<i>]]>Autocrypt opsætningsbeskeder.<![CDATA[</i>]]></string>
|
||||
<string name="NewVerifiedGroup">Ny efterprøvet gruppe</string>
|
||||
<string name="SharedChats">Delte samtaler</string>
|
||||
<string name="VerifiedContact">Efterprøvet kontakt</string>
|
||||
<string name="Contact">Kontakt</string>
|
||||
<string name="VerifiedGroup">Bekræftet gruppe</string>
|
||||
<string name="Group">Gruppe</string>
|
||||
<string name="EditedNameWillBeShared">Redigeret navn vil blive delt med alle gruppe medlemmer.</string>
|
||||
<string name="E2EEncryptionPreferred">Ende-til-ende kryptering foretrukken.</string>
|
||||
<string name="OobAddrVerified">%1$s efterprøvet.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s efterprøvet, præsentere…</string>
|
||||
<string name="OobAskJoinVerifiedGroup">Tilslutte efterprøvet gruppe <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
%2$s is replaced by a the name of the user that made this action.
|
||||
Resulting strings might be "Member Alice added by Bob." or 'Group name changed from "Foo" to "Bar" by Claire.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by %2$s)" or "%2$s: %1$s" -->
|
||||
<string name="ActionByUser">%1$s af %2$s.</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s af undertegnet.</string>
|
||||
<string name="ExampleEmailAddr">bruger@eksempel.dk</string>
|
||||
<string name="QrScanHint">Placere kamera over QR kode</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Vise QR efterprøve kode</string>
|
||||
<string name="QrVerifyContactTitle">QR efterprøve kode</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nSkan dette for at opsætte efterprøvet kontakt.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Vise QR invitationskode</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">QR invitationskode</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Skan dette for at tilslutte efterprøvet gruppe <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Hente tilstand</string>
|
||||
<string name="FetchModeSaveBattery">Spare batteri</string>
|
||||
<string name="FetchModePersistentConnection">Vedvarende forbindelse</string>
|
||||
<string name="FetchModeExplain">Når hente tilstand bruges <![CDATA[<i>]]>Spar batteri<![CDATA[</i>]]>, nye beskeder vises hvis ikke programmet kører i forgunden og med en gennemsnitsforsinkelse på 30 sekunder hvis programmet ikke bruges. Når enheden er i hvile tilstand kan forsinkelse være længere. Dette er standard tilstand.\n\n<![CDATA[<i>]]>Vedvarende forbindelse<![CDATA[</i>]]> er typisk hurtiger men kan kræve at programmet er hvidlisteti system opsætning for at kunne forbruge mere batteri.\n\nHvilken hente tilstand ønskes at bruge?</string>
|
||||
<string name="PermissionCamera">Kamera adgang nødvendig for at tage billeder eller skanne QR koder.</string>
|
||||
<!-- Translators: %1$s will be replaced by the email address -->
|
||||
<string name="ErrCannotLogin">Kan ikke logge ind som <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>. Kontrollere at e-post adresse og adgangskode er korrekt.</string>
|
||||
<!-- Translators: %1$s will be replaced by the server name (eg. imap.somewhere.org) and %2$s will be replaced by the human-readable response from the server. this response may be a single word or some sentences and may or may not be localized. -->
|
||||
<string name="ErrSeverResponse">Svar fra %1$s: %2$s\n\nNogle udbydere placerer yderligere oplysninger i indbakken; tjek dem f.eks. via frontenden. Kontakt udbyder eller venner ved problemer.</string>
|
||||
</resources>
|
||||
@@ -317,8 +317,14 @@
|
||||
<string name="ImapPort">IMAP-Port</string>
|
||||
<string name="InboxHeadline">Posteingang</string>
|
||||
<string name="OutboxHeadline">Postausgang</string>
|
||||
<string name="MyAccountExplain">Für bekannte E-Mail-Anbieter werden die weiteren Einstellungen automatisch ermittelt.</string>
|
||||
<string name="MyAccountExplain2" >Manchmal muss die <![CDATA[<b>]]>IMAP-Funktion<![CDATA[</b>]]> noch in der E-Mail-Weboberfläche <![CDATA[<b>]]>eingeschaltet<![CDATA[</b>]]> werden.\n\nBei Problemen kann der E-Mail-Anbieter oder ein Bekannter weiterhelfen.</string>
|
||||
<string name="AdvancedOptions">Erweiterte Einstellungen...</string>
|
||||
<string name="MyAccountExplain">Für bekannte E-Mail-Anbieter werden die weiteren Einstellungen automatisch ermittelt.
|
||||
<![CDATA[<br/>]]><![CDATA[<br/>]]>
|
||||
Manchmal muss die <![CDATA[<b>]]>IMAP-Funktion<![CDATA[</b>]]> noch in der E-Mail-Weboberfläche <![CDATA[<b>]]>eingeschaltet<![CDATA[</b>]]> werden.\n\nBei Problemen kann der E-Mail-Anbieter oder ein Bekannter weiterhelfen.</string>
|
||||
<string name="MyAccountExplainGmail">Für <![CDATA[<b>]]>GMail<![CDATA[</b>]]> Accounts muss ein
|
||||
<![CDATA[<a href="https://security.google.com/settings/security/apppasswords">]]>App-Passwort<![CDATA[</a>]]> erstellt werden, wenn 2FA aktiv ist.
|
||||
<![CDATA[<br/>]]>Falls diese Einstellung nicht vorhanden ist, müssen Sie Zugriff für <![CDATA[<a href="https://myaccount.google.com/lesssecureapps">]]>weniger sichere Apps<![CDATA[</a>]]> zulassen.
|
||||
</string>
|
||||
<string name="AccountNotConfigured">Konto nicht konfiguriert</string>
|
||||
<string name="AboutThisProgram">Über Delta Chat</string>
|
||||
<string name="NotSet">Nicht gesetzt</string>
|
||||
@@ -329,7 +335,8 @@
|
||||
<string name="AskStartChatWith">Chat mit <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> starten?</string>
|
||||
<string name="DeaddropHint">Ein Klick auf die Antwort-Pfeile startet einen Chat.</string>
|
||||
<string name="NotYetImplemented">Diese Funktion ist nicht oder nur unvollständig eingebaut.</string>
|
||||
<string name="DefaultStatusText">Mit meinem Delta Chat Messenger gesendet: https://delta.chat/de/</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Mit meinem Delta Chat Messenger gesendet: https://delta.chat</string>
|
||||
<string name="Name" >Name</string>
|
||||
<string name="EmailAddress">E-Mail-Adresse</string>
|
||||
<string name="CannotDeleteContact">Der Kontakt kann nicht gelöscht werden, da er verwendet wird; er kann aber blockiert werden.</string>
|
||||
@@ -435,7 +442,7 @@
|
||||
<string name="OobSecureJoinRequested">%1$s tritt bei.</string>
|
||||
<string name="CannotDecryptBody">Diese Nachricht kann nicht entschlüsselt werden.\n\n• Das Problem kann möglicherweie einfach gelöst werden, indem Sie dem Absender eine Nachricht schicken und ihn bitten seine Nachricht erneut zu senden.\n\n• Wenn Sie Delta Chat oder ein anderes E-Mail-Programm auf diesem oder einem anderen Gerät neu eingerichtet haben, wollen Sie vll. das Ende-zu-Ende-Setup mit einer Autocrypt-Setup-Nachricht von dort übertragen.</string>
|
||||
<string name="Autocrypt">Autocrypt</string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> ist eine neue und offene Spezifikation zur Ende-zu-Ende-Verschlüsselung von E-Mails.\n\nIhr Ende-zu-Ende-Setup wird dabei automatisch eingerichtet uns Sie können es mit <![CDATA[<i>]]>Autocrypt-Setup-Nachrichten<![CDATA[</i>]]> zwischen Geräten übertragen.</string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> ist eine neue und offene Spezifikation zur Ende-zu-Ende-Verschlüsselung von E-Mails.\n\nIhr Ende-zu-Ende-Setup wird dabei automatisch eingerichtet und Sie können es mit <![CDATA[<i>]]>Autocrypt-Setup-Nachrichten<![CDATA[</i>]]> zwischen Geräten übertragen.</string>
|
||||
<string name="NewVerifiedGroup">Neue verifizierte Gruppe</string>
|
||||
<string name="SharedChats">Gemeinsame Chats</string>
|
||||
<string name="VerifiedContact">Verifizierter Kontakt</string>
|
||||
@@ -443,7 +450,6 @@
|
||||
<string name="VerifiedGroup">Verifizierte Gruppe</string>
|
||||
<string name="Group">Gruppe</string>
|
||||
<string name="EditedNameWillBeShared">Der neue Name wird an alle Gruppenteilnehmern gesendet.</string>
|
||||
<string name="QrShowInviteCode">QR-Einladungscode zeigen</string>
|
||||
<string name="E2EEncryptionPreferred">Ende-zu-Ende-Verschlüsselung bevorzugt.</string>
|
||||
<string name="OobAddrVerified">%1$s verifiziert.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s verifiziert, warte auf Bestätigung …</string>
|
||||
@@ -457,4 +463,19 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s von mir.</string>
|
||||
</resources>
|
||||
<string name="ExampleEmailAddr">max@mustermann.de</string>
|
||||
<string name="QrScanHint">Halten Sie Ihre Kamera über den QR Code</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Zeige Bestätigungs QR-Code</string>
|
||||
<string name="QrVerifyContactTitle">Bestätigungs QR-Code</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nScannen Sie dies um einen verifizierten Kontakt zu erstellen.</string>
|
||||
|
||||
<string name="QrShowInviteCode">QR-Einladungscode zeigen</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">Einladungs QR-Code</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Scannen Sie folgenden Code um der verifizierten Gruppe beizutreten <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Empfangsmodus</string>
|
||||
<string name="FetchModeSaveBattery">Batterie sparen</string>
|
||||
<string name="FetchModePersistentConnection">Dauerhafte Verbindung</string>
|
||||
<string name="FetchModeExplain">Wenn Sie den Modus <![CDATA[<i>]]>Batterie sparen<![CDATA[</i>]]> verwenden, kommen neue Nachrichten sofort an, während die App geöffnet ist und mit einer Verzögerung von ca 30 Sekunden, wenn die App nicht benutzt wird. Wenn das Gerät in den Schlafmodus umschaltet, kann die Verzögerung größer sein. Das ist die Standard-Einstellung.\n\n<![CDATA[<i>]]>Dauerhafte Verbindung<![CDATA[</i>]]> ist üblicherweise schneller, aber kann es erforden, dass die App in den Systemeinstellungen freigeschaltet werden muss um mehr Batterieverbrauch zu erlauben..\n\nWelchen Empfangsmodus möchten Sie verwenden?</string>
|
||||
<string name="PermissionCamera">Für die Aufnahme von Fotos oder das Scannen von QR Codes wird Zugriff auf die Kamera benötigt.</string>
|
||||
</resources>
|
||||
|
||||
@@ -317,8 +317,7 @@
|
||||
<string name="ImapPort">Puerto IMAP</string>
|
||||
<string name="InboxHeadline">Bandeja de entrada</string>
|
||||
<string name="OutboxHeadline">Bandeja de salida</string>
|
||||
<string name="MyAccountExplain">Para proveedores conocidos de correo, los ajustes adicionales se determinan automáticamente.</string>
|
||||
<string name="MyAccountExplain2" >Algunas veces, <b>hay que habilitar IMAP</b> en la interfaz web del correo.\n\nEn caso de problemas, consulte a su proveedor de correo o el de sus amigos.</string>
|
||||
<string name="MyAccountExplain">Para proveedores conocidos de correo, los ajustes adicionales se determinan automáticamente.<![CDATA[<br/>]]><![CDATA[<br/>]]>Algunas veces, <b>hay que habilitar IMAP</b> en la interfaz web del correo.\n\nEn caso de problemas, consulte a su proveedor de correo o el de sus amigos.</string>
|
||||
<string name="AccountNotConfigured">Cuenta no configurada</string>
|
||||
<string name="AboutThisProgram">Sobre Delta Chat</string>
|
||||
<string name="NotSet">No establecido</string>
|
||||
@@ -329,7 +328,8 @@
|
||||
<string name="AskStartChatWith">¿Iniciar una conversación con <b>%1$s</b>?</string>
|
||||
<string name="DeaddropHint">Haga clic en la flecha de réplica para comenzar una conversación.</string>
|
||||
<string name="NotYetImplemented">Esta función no está disponible o está incompleta.</string>
|
||||
<string name="DefaultStatusText">Enviado desde mi aplicación de mensajería Delta Chat: https://delta.chat/es</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Enviado desde mi aplicación de mensajería Delta Chat: https://delta.chat</string>
|
||||
<string name="Name" >Nombre</string>
|
||||
<string name="EmailAddress">Dirección de correo</string>
|
||||
<string name="CannotDeleteContact">No puede borrar contactos en uso. En su lugar, bloquee el contacto.</string>
|
||||
|
||||
@@ -203,15 +203,28 @@
|
||||
<string name="AreYouSureDeleteContact">Ziur kontaktu hau ezabatu nahi duzula?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Kontaktuak atzitzeko baimena behar da zure lagunekin gailu guztietan konektatu ahal izateko.</string>
|
||||
<string name="PermissionStorage">Biltegiratzera sarbidea behar da argazkiak, bideoak, musika eta bestelako multimedia bidali eta gordetzeko.</string>
|
||||
<string name="PermissionNoAudio">Mikrofonoa atzitzeko baimena behar da ahots mezuak bidali ahal izateko.</string>
|
||||
<string name="PermissionOpenSettings">Ezarpenak</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
<string name="Intro1Message">Munduan <![CDATA[<b>erabiltzaile gehien dituen</b>]]> mezularia. <![CDATA[<b>Librea</b>]]> eta <![CDATA[<b>independientea</b>]]>.</string>
|
||||
|
||||
<string name="Intro2Headline">Independientea</string>
|
||||
<string name="Intro2Message"><![CDATA[<b>Ez dago Delta Chat zerbitzaririk.</b>]]> Aplikazioak zure e-mail zerbitzaria besterik ez du erabiltzen.</string>
|
||||
|
||||
<string name="Intro3Headline">Azkarra</string>
|
||||
<string name="Intro3Message"><![CDATA[<b>Bidali mezuak</b>]]> segundotan.<![CDATA[<br/>]]>Interfaze azkarra.</string>
|
||||
|
||||
<string name="Intro4Headline">Ahaltsua</string>
|
||||
<string name="Intro4Message"><![CDATA[<b>Muga gabeko</b>]]> txat, irudi, bideo, eta audio mezuak eta askoz gehiago. Bezero anitzetarako prest.</string>
|
||||
|
||||
<string name="Intro5Headline">Librea</string>
|
||||
<string name="Intro5Message"><![CDATA[<b>Delta Chat</b>]]> betirako doan da.<![CDATA[<br/>]]>Kode irekikoa. Iragarkirik gabe. Harpidetzarik gabe. Hornitzaile bati lotu gabe.</string>
|
||||
|
||||
<string name="Intro6Headline">Zifratua</string>
|
||||
<string name="Intro6Message"><![CDATA[<b>Zifratua</b>]]> algoritm,o ezagunen bidez. Mezuak zure zerbitzarian mantentzen dira.</string>
|
||||
|
||||
<string name="Intro7Headline">Fidagarria</string>
|
||||
|
||||
<string name="IntroStartMessaging">Hasi txateatzen</string>
|
||||
@@ -304,7 +317,12 @@
|
||||
<string name="ImapPort">IMAP ataka</string>
|
||||
<string name="InboxHeadline">Sarrera ontzia</string>
|
||||
<string name="OutboxHeadline">Irteera ontzia</string>
|
||||
<string name="MyAccountExplain">E-mail hornitzaile ezagunentzat, ezarpen gehigarriak automatikoki zehaztuko dira.</string>
|
||||
<string name="AdvancedOptions">Aukera aurreratuak...</string>
|
||||
<string name="MyAccountExplain">E-mail hornitzaile ezagunentzat, ezarpen gehigarriak automatikoki zehaztuko dira.<![CDATA[<br/>]]><![CDATA[<br/>]]>Batzuetan, <![CDATA[<b>]]>IMAP gaitu behar da<![CDATA[</b>]]> e-mail zerbitzuaren web interfazean.\n\nGaldetu zure e-mail hornitzaileari edo lagunei arazoak badituzu.</string>
|
||||
<string name="MyAccountExplainGmail"><![CDATA[<b>]]>GMail<![CDATA[</b>]]> kontuetarako bietako bat
|
||||
<![CDATA[<a href=\"https://security.google.com/settings/security/apppasswords\">]]>Aplikazio-pasahitz<![CDATA[</a>]]> bat sortu dezakezu 2FA gaituta izanez gero.
|
||||
<![CDATA[<br/>]]>eEzarpen hau erabilgarri ez badago, <![CDATA[<a href=\"https://myaccount.google.com/lesssecureapps\">]]>Aplikazio ez seguruak<![CDATA[</a>]]> gaitu behar duzu
|
||||
</string>
|
||||
<string name="AccountNotConfigured">Kontua konfiguratu gabe</string>
|
||||
<string name="AboutThisProgram">Delta Chat-i buruz</string>
|
||||
<string name="NotSet">Ezarri gabe</string>
|
||||
@@ -312,8 +330,10 @@
|
||||
<string name="Deaddrop">Kontaktu eskaera</string>
|
||||
<string name="DeaddropInChatlist">Erakutsi kontaktu eskaerak txat zerrendan</string>
|
||||
<string name="MuteAlways">Beti mutututa</string>
|
||||
<string name="AskStartChatWith">Txateatu <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> erabiltzailearekin?</string>
|
||||
<string name="DeaddropHint">Sakatu erantzun geziak txateatzen hasteko.</string>
|
||||
<string name="NotYetImplemented">Funtzio hau ez dago eskuragarri edo osorik.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Delta Chat mezulariarekin bidalita: https://delta.chat</string>
|
||||
<string name="Name" >Izena</string>
|
||||
<string name="EmailAddress">E-mail helbidea</string>
|
||||
@@ -332,6 +352,7 @@
|
||||
<string name="AskResetNotifications">Leheneratu jakinarazpen eta soinuen ezarpen guztiak uneko orria, kontaktuak eta taldeetan?</string>
|
||||
<string name="AttachFiles">Erantsi fitxategiak</string>
|
||||
<string name="ErrGroupNameEmpty">Sartu izen bat taldearentzat.</string>
|
||||
<string name="MsgNewGroupDraftHint">Idatzi lehen mezua, besteei taldean erantzutea ahalbidetuz,\n\n• Ez dute zertan denek Delta Chat erabili behar\n\n• Lehen mezua bidaltzeko denboratxo bat behar daiteke.</string>
|
||||
<string name="MsgNewGroupDraft">Kaixo, \"%1$s\" taldea sortu dut guretzat.</string>
|
||||
<string name="MsgGroupNameChanged">Taldearen izena aldatuta \"%1$s\"-tik \"%2$s\"-ra</string>
|
||||
<string name="MsgGroupImageChanged">Taldeko irudia aldatu da.</string>
|
||||
@@ -341,6 +362,7 @@
|
||||
<string name="AskRemoveMemberFromGroup">Kendu <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> taldetik?</string>
|
||||
<string name="ErrSelfNotInGroup">Taldeko kidea izan behar zara ekintza hau burutzeko.</string>
|
||||
<string name="MsgGroupLeft">Taldetik aterata.</string>
|
||||
<string name="NoMessagesHint">Bidali mezua <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> erabiltzaileari:\n\n• Ongi dago <![CDATA[<b>]]>%2$s<![CDATA[</b>]]> erabiltzaileak ez badu Delta Chat erabiltzen.\n\n• Lehen mezua bidaltzeko denbora bat beharko da.</string>
|
||||
<string name="SendNRcvReadReceipts">Jaso eta bidali irakurragiriak</string>
|
||||
<string name="PreferE2EEncryption">Hobetsi muturretik muturrerako zifratzea</string>
|
||||
<string name="E2EManagePrivateKeys">Kudeatu gako sekretuak</string>
|
||||
@@ -357,24 +379,34 @@
|
||||
<string name="PermNotificationText">Mezuen zain ...</string>
|
||||
<string name="SettingsFor">%1$s zerbitzariko ezarpenak</string>
|
||||
<string name="AutoplayGifs">Abiatu GIF-ak automatikoki</string>
|
||||
<string name="HelpUrl">https://delta.chat/en/help</string>
|
||||
<string name="EncryptedMessage">Zifratutako mezua</string>
|
||||
<string name="Encryption">Zifratzea</string>
|
||||
<string name="EncrinfoE2EAvailable">Muturretik muturrerako zifratzea eskuragarri.</string>
|
||||
<string name="EncrinfoTransport">Garraio-zifratzea nire zerbitzarira arte gutxienez.</string>
|
||||
<string name="EncrinfoNone">Zifratzerik ez nire zerbitzarira.</string>
|
||||
<string name="EncrinfoFingerprints">Hatz-markak</string>
|
||||
<string name="Backup">Babeskopia</string>
|
||||
<string name="ImportBackupExplain2">Babeskopia bat inportatzeko, kopiatu babeskopia hemen <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> eta berriro instalatu aplikazioa.</string>
|
||||
<string name="ReadReceiptMailBody">Hau \"%1$s\" mezuaren irakurragiri bat da.\n\nMezua hartzailearen gailuan bistaratu dela esan nahi du, baina ez du zertan esan nahi irakurri dela.</string>
|
||||
<string name="ReadReceipt">Itzuli irakurragiria</string>
|
||||
<string name="NameAndStatus">Izena eta leloa</string>
|
||||
<string name="MyStatus">Nire leloa</string>
|
||||
<string name="MyStatusExplain">Leloa e-mailen oinean eta beste toki batzuetan ikusten da.</string>
|
||||
<string name="MsgGroupImageDeleted">Taldearen irudia ezabatuta.</string>
|
||||
<string name="AskDeleteGroupImage">Ziur taldearen irudia ezabatu nahi duzula??\n\nHonek taldeko kideen gailu guztietan izango du eragina.</string>
|
||||
<string name="ExportImportHeader">Esportatu eta inportatu</string>
|
||||
<string name="ImportExportExplain">Esportatutako fitxategiek zure muturretik muturrerako zifratzerako Autocrypt ezarpenak izango dituzte! Gorde toki seguruan edo ezabatu ahalik eta lasterren.</string>
|
||||
<string name="EnterPasswordToContinue">Sartu %1$s pasahitza jarraitzeko</string>
|
||||
<string name="IncorrectPassword">Pasahitz okerra.</string>
|
||||
<string name="ImportBackupAsk">Babes-kopia aurkitu da hemen: <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.\n\nInportatu nahi duzu eta bertako datu eta ezarpenak erabili?</string>
|
||||
<string name="ImportBackup">Inportatu babeskopia</string>
|
||||
<string name="NoBackupFound">Ez da babes-kopiarik aurkitu.\n\nKopiatu babes-kopia <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> helbidera eta saiatu berriro. Bestela, sakatu \"Hazi txateatzen\" ezarpen prozesu arrunta jarraitzeko.</string>
|
||||
<string name="FilesSuccessfullyExported">Fitxategiak hona esportatu dira: <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.</string>
|
||||
<string name="ExportBackup">Esportatu babeskopia</string>
|
||||
<string name="ExportPrivateKeys">Esportatu gako pribatuak</string>
|
||||
<string name="ImportPrivateKeys">Inportatu gako pribatuak</string>
|
||||
<string name="ImportPrivateKeysAsk2">Inportatu gako sekretuak <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> helbidetik?\n\n• Sauden gako sekretuak ez dira ezabatuko\n\n• Inportatutako azken gakoa lehenetsitako gako berria izango da</string>
|
||||
<string name="NoRecentEmoji">Erabilitako azken emojiak hemen agertuko dira.</string>
|
||||
<string name="NotNow">Orain ez</string>
|
||||
<string name="ArchiveChat">Artxibatu txata</string>
|
||||
@@ -386,6 +418,8 @@
|
||||
<string name="Never">Inoiz ez</string>
|
||||
<string name="AutocryptKeyTransferInitiate">Hasi Autocrypt gakoen transferentzia</string>
|
||||
<string name="AutocryptKeyTransfer">Autocrypt gakoen transferentzia</string>
|
||||
<string name="AutocryptKeyTransferMsgBeforeSend"><![CDATA[<i>]]>Autocrypt ezarpen mezu<![CDATA[</i>]]> batek modu seguruan partekatzen du zure muturretik muturrerako zifratzerako ezarpena Autocrypt onartzen duten beste aplikazioekin.\n\nEzarpena hemen erakutsitako ezarpen-kode honekin zifratuko da, eta kode hau beste gailuan idatzi behar da.</string>
|
||||
<string name="AutocryptKeyTransferMsgAfterSend">Zure ezarpena zure buruari bidali diozu. Zoaz beste gailura eta ireki ezarpen mezua. Ezarpen-kodea eskatuko zaizu. Idatzi honako zenbaki hauek eskatutako tokian:\n\n%1$s\n\nBehin eginda, zure beste gailua Autocrypt erabiltzeko prest egongo da.</string>
|
||||
<string name="AutocryptSetupMessageSubject">Autocrypt ezarpen mezua</string>
|
||||
<string name="AutocryptSetupMessageGeneralBody">Hau zure gakoa bezeroen artean transferitzeko erabilitako Autocrypt ezarpen mezua da.\n\nDeszifratu eta zure gakoa erabiltzeko, ireki mezua Autocrypt onartzen duen bezero batean eta sartu gailu sortzailean erakutsitako ezarpen kodea.</string>
|
||||
<string name="AutocryptSetupMessageTapBody">Hau zure gakoa bezeroen artean transferitzeko erabilitako Autocrypt ezarpen mezua da.\n\nDeszifratu eta zure gakoa erabiltzeko, sakatu mezu hau.</string>
|
||||
@@ -396,9 +430,17 @@
|
||||
<string name="SelfTalkSubtitle">Nire buruari bidalitako mezuak</string>
|
||||
<string name="QrScan">Irakurri QR kodea</string>
|
||||
<string name="QrShow">Erakutsi QR kodea</string>
|
||||
<string name="QrScanContainsText">Irakurritako QR kodeak honako testu hau du::\n\n%1$s</string>
|
||||
<string name="QrScanContainsUrl">Irakurritako QR kodeak honako URL hau du:\n\n%1$s</string>
|
||||
<string name="OobFingerprint">Hatz-marka</string>
|
||||
<string name="OobFingerprintAskOob">Egiaztatu kontaktua eta <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> erabiltzailearekin txateatzen hasi?</string>
|
||||
<string name="OobFingerprintOk"><![CDATA[<i>]]>%1$s<![CDATA[</i>]]> kontaktua egiaztatuta. Txateatzen hasi?</string>
|
||||
<string name="OobFingerprintMismatch">Irakurritako hatz-marka <![CDATA[<b>]]>ez dator bat<![CDATA[</b>]]> azkenekoz ikusitako <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> hatz-markarekin.</string>
|
||||
<string name="OobFingerprintWithoutAddr">QR kodeak hatz-marka du, baina ez e-mail helbide bat.\n\nBanda kanpoko egiaztaketa baterako, ezarri zifratutako konexio bat hartzailearekin aurretik.</string>
|
||||
<string name="OobSecureJoinRequested">%1$s elkartu da.</string>
|
||||
<string name="CannotDecryptBody">Ezin da mezu hau deszifratu.\n\n• Agian igorleari erantzun eta mezua birbidaltzea eskatzearekin konpondu daiteke.\n\n• Delta Chat berrinstalatu baduzu edo beste e-mail bezero bat erabiltzen baduzu gailu honetan edo beste batean Autocrypt ezarpen mezua bidali dezakezu hortik.</string>
|
||||
<string name="Autocrypt">Autocrypt</string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> muturretik muturrerako zifratzerako espezifikazio berri eta ireki bat da.\n\nZure muturretik muturrerako ezarpena automatikoki sortzen da behar ahala eta gailutik gailura bidali dezakezui <![CDATA[<i>]]>Autocrypt ezarpen mezuekin.<![CDATA[</i>]]></string>
|
||||
<string name="NewVerifiedGroup">Egiaztatutako talde berria</string>
|
||||
<string name="SharedChats">Partekatutako txat-ak</string>
|
||||
<string name="VerifiedContact">Egiaztatutako kontaktua</string>
|
||||
@@ -406,9 +448,9 @@
|
||||
<string name="VerifiedGroup">Egiaztatutako taldea</string>
|
||||
<string name="Group">Taldea</string>
|
||||
<string name="EditedNameWillBeShared">Taldeko kide guztiek izango dute izen aldaketaren berri.</string>
|
||||
<string name="QrShowInviteCode">Erakutsi QR gonbidapen-kodea</string>
|
||||
<string name="E2EEncryptionPreferred">Muturretik muturrerako zifratzea hobetsia.</string>
|
||||
<string name="OobAddrVerified">%1$s egiaztatuta.</string>
|
||||
<string name="OobGroupJoined">%1$s taldera modu seguruan elkartu da</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s egiaztatuta, egin aurkezpena …</string>
|
||||
<string name="OobAskJoinVerifiedGroup"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]> egiaztatutako taldera elkartu nahi duzu?</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
@@ -420,4 +462,23 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s nik.</string>
|
||||
<string name="ExampleEmailAddr">erabiltzailea@adibidea.eus</string>
|
||||
<string name="QrScanHint">Kokatu kamara QR kodearen aurrean</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Erakutsi QR egiaztaketa kodea</string>
|
||||
<string name="QrVerifyContactTitle">QR egiaztaketa kodea</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nEskaneatu hau egiaztatutako kontaktu bat ezartzeko.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Erakutsi QR gonbidapen-kodea</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">QR gonbidapen kodea</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Eskaneatu hau egiaztatutako taldera elkartzeko <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Eskuratze modua</string>
|
||||
<string name="FetchModeSaveBattery">Aurreztu bateria</string>
|
||||
<string name="FetchModePersistentConnection">Konexio iraunkorra</string>
|
||||
<string name="FetchModeExplain"><![CDATA[<i>]]>Aurreztu bateria<![CDATA[</i>]]> eskuratze modua erabiltzean, mezu berriak berehala agertuko dira aplikazioa irekita dagoenean eta batez beste 30 segunduko atzerapenarekin aplikazioa bigarren planoan badago. Gailua lo dagoenean atzerapena luzeagoa izan daiteke. Hau da lehenetsitako modua.\n\n<![CDATA[<i>]]>Konexio iraunkorra<![CDATA[</i>]]> azkarragoa izan ohi da baina agian aplikazioari bateria gehiago kontsumitzea baimendu behar zaio sistemaren ezarpenetan.\n\nZein eskuratze modu erabili nahi duzu?</string>
|
||||
<string name="PermissionCamera">Kamera atzitzeko baimena behar da argazkiak atera nahi badituzu edo QR kodeak eskaneatu nahi badituzu.</string>
|
||||
<!-- Translators: %1$s will be replaced by the email address -->
|
||||
<string name="ErrCannotLogin">Ezin izan da <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> saioa hasi. Egiaztatu e-mail helbidea eta pasahitza zuzenak diren.</string>
|
||||
<!-- Translators: %1$s will be replaced by the server name (eg. imap.somewhere.org) and %2$s will be replaced by the human-readable response from the server. this response may be a single word or some sentences and may or may not be localized. -->
|
||||
<string name="ErrSeverResponse">%1$s(r)en erantzuna: %2$s\n\n Hornitzaile batzuk informazio gehigarria kokatzen dute zure sarrera ontzian; Hau adibidez web interfazea erabiliz egiaztatu dezakezu. Arazorik baduzu galdetu hornitzaileari edo zure lagunei.</string>
|
||||
</resources>
|
||||
|
||||
@@ -317,8 +317,7 @@
|
||||
<string name="ImapPort">Port IMAP</string>
|
||||
<string name="InboxHeadline">Boîte de réception</string>
|
||||
<string name="OutboxHeadline">Boîte d\'envoi</string>
|
||||
<string name="MyAccountExplain">Pour les fournisseurs e-mails connus, les paramètres suivants seront déterminés automatiquement.</string>
|
||||
<string name="MyAccountExplain2" >Parfois, <![CDATA[<b>]]>IMAP doit être activé<![CDATA[</b>]]> depuis l\'interface web.\n\nSi vous rencontrez des problème, demandez à votre fournisseur ou à vos amis.</string>
|
||||
<string name="MyAccountExplain">Pour les fournisseurs e-mails connus, les paramètres suivants seront déterminés automatiquement.<![CDATA[<br/>]]><![CDATA[<br/>]]>Parfois, <![CDATA[<b>]]>IMAP doit être activé<![CDATA[</b>]]> depuis l\'interface web.\n\nSi vous rencontrez des problème, demandez à votre fournisseur ou à vos amis.</string>
|
||||
<string name="AccountNotConfigured">Compte non configuré</string>
|
||||
<string name="AboutThisProgram">À propos Delta Chat</string>
|
||||
<string name="NotSet">Non défini</string>
|
||||
@@ -329,6 +328,7 @@
|
||||
<string name="AskStartChatWith">Lancer une conversation avec <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Pour commencer une conversation, cliquez sur le bouton de réponse en forme de flèche.</string>
|
||||
<string name="NotYetImplemented">Cette fonction n\'est pas disponible ou non supportée complètement.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Envoyé avec Delta Chat: https://delta.chat/fr/</string>
|
||||
<string name="Name" >Nom</string>
|
||||
<string name="EmailAddress">Adresse e-mail</string>
|
||||
|
||||
@@ -316,8 +316,7 @@
|
||||
<string name="ImapPort">IMAP port</string>
|
||||
<string name="InboxHeadline">Bejövő</string>
|
||||
<string name="OutboxHeadline">Kimenő</string>
|
||||
<string name="MyAccountExplain">Ismert e-mail szolgáltató esetén az alábbi beállításokat automatikusan meghatározzuk.</string>
|
||||
<string name="MyAccountExplain2" >Előfordulhat, hogy az IMAP/SMTP szolgáltatást az email fiókod webes felületén engedélyezni kell.\n\nHa nem megy, kérj segítséget a szolgáltatótól vagy a barátaidtól.</string>
|
||||
<string name="MyAccountExplain">Ismert e-mail szolgáltató esetén az alábbi beállításokat automatikusan meghatározzuk.<![CDATA[<br/>]]><![CDATA[<br/>]]>Előfordulhat, hogy az IMAP/SMTP szolgáltatást az email fiókod webes felületén engedélyezni kell.\n\nHa nem megy, kérj segítséget a szolgáltatótól vagy a barátaidtól.</string>
|
||||
<string name="AccountNotConfigured">A fiók nincs beállítva</string>
|
||||
<string name="AboutThisProgram">Delta Chat névjegye</string>
|
||||
<string name="NotSet">Nincs beállítva</string>
|
||||
@@ -328,6 +327,7 @@
|
||||
<string name="AskStartChatWith">Beszélgetést indítasz <![CDATA[<b>]]>%1$s<![CDATA[</b>]]> partnerrel?</string>
|
||||
<string name="DeaddropHint">Beszélgetés indításához koppints a válasz-nyílra.</string>
|
||||
<string name="NotYetImplemented">Ez a funkció nem érhető el vagy még nem készült el.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">A Delta Chat Messengeremmel küldtem: https://delta.chat</string>
|
||||
<string name="Name" >Név</string>
|
||||
<string name="EmailAddress">E-mail cím</string>
|
||||
|
||||
@@ -317,8 +317,12 @@
|
||||
<string name="ImapPort">Porta IMAP</string>
|
||||
<string name="InboxHeadline">In arrivo</string>
|
||||
<string name="OutboxHeadline">In uscita</string>
|
||||
<string name="MyAccountExplain">Per i provider email conosciuti, le impostazioni aggiuntive vengono configurate automaticamente.</string>
|
||||
<string name="MyAccountExplain2" >A volte, <![CDATA[<b>]]>IMAP deve essere abilitato<![CDATA[</b>]]> dall\'interfaccia web dell\'email.\n\nSe si riscontrano problemi contattare il proprio provider email o i propri amici.</string>
|
||||
<string name="AdvancedOptions">Opzioni avanzate...</string>
|
||||
<string name="MyAccountExplain">Per i provider email conosciuti, le impostazioni aggiuntive vengono configurate automaticamente.<![CDATA[<br/>]]><![CDATA[<br/>]]>A volte, <![CDATA[<b>]]>IMAP deve essere abilitato<![CDATA[</b>]]> dall\'interfaccia web dell\'email.\n\nSe si riscontrano problemi contattare il proprio provider email o i propri amici.</string>
|
||||
<string name="MyAccountExplainGmail">Per gli account <![CDATA[<b>]]>GMail<![CDATA[</b>]]> è necessario creare una
|
||||
<![CDATA[<a href=\"https://security.google.com/settings/security/apppasswords\">]]>Password per le app<![CDATA[</a>]]> se è attiva la verifica in 2 passaggi.
|
||||
<![CDATA[<br/>]]>Se queste impostazioni non sono disponibili, è necessario abilitare le <![CDATA[<a href=\"https://myaccount.google.com/lesssecureapps\">]]>App meno sicure<![CDATA[</a>]]>
|
||||
</string>
|
||||
<string name="AccountNotConfigured">Account non configurato</string>
|
||||
<string name="AboutThisProgram">Informazioni su Delta Chat</string>
|
||||
<string name="NotSet">Non impostato</string>
|
||||
@@ -329,7 +333,8 @@
|
||||
<string name="AskStartChatWith">Iniziare una conversazione con <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Per iniziare una conversazione toccare le frecce di risposta.</string>
|
||||
<string name="NotYetImplemented">Funzione non disponibile o incompleta.</string>
|
||||
<string name="DefaultStatusText">Inviato con l\'applicazione di messaggistica Delta Chat: https://delta.chat/it</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Inviato con l\'applicazione di messaggistica Delta Chat: https://delta.chat</string>
|
||||
<string name="Name" >Nome</string>
|
||||
<string name="EmailAddress">Indirizzo email</string>
|
||||
<string name="CannotDeleteContact">Impossibile cancellare i contatti in uso, provare a bloccarli.</string>
|
||||
@@ -443,9 +448,9 @@
|
||||
<string name="VerifiedGroup">Gruppo verificato</string>
|
||||
<string name="Group">Gruppo</string>
|
||||
<string name="EditedNameWillBeShared">Il nome modificato verrà condiviso con tutti i membri del gruppo.</string>
|
||||
<string name="QrShowInviteCode">Mostra codice QR di invito</string>
|
||||
<string name="E2EEncryptionPreferred">Cifratura end-to-end preferita.</string>
|
||||
<string name="OobAddrVerified">%1$s verificato.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s verificato, mi presento…</string>
|
||||
<string name="OobAskJoinVerifiedGroup">Entrare nel gruppo verificato <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
%2$s is replaced by a the name of the user that made this action.
|
||||
@@ -456,4 +461,17 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s da te.</string>
|
||||
</resources>
|
||||
<string name="ExampleEmailAddr">utente@esempio.org</string>
|
||||
<string name="QrScanHint">Posiziona la fotocamera sopra il codice QR</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Mostra il codice QR di verifica</string>
|
||||
<string name="QrVerifyContactTitle">Codice QR di verifica</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nScansiona questo per impostare un contatto verificato.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Mostra codice QR di invito</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">Codice QR di invito</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Scansiona questo per entrare nel gruppo verificato <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchModeSaveBattery">Risparmia batteria</string>
|
||||
<string name="FetchModePersistentConnection">Connessione persistente</string>
|
||||
<string name="PermissionCamera">L\'accesso alla fotocamera è necessario se si vogliono acquisire immagini o per eseguire la scansione dei codici QR.</string>
|
||||
</resources>
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
<string name="InboxHeadline">受信</string>
|
||||
<string name="OutboxHeadline">送信</string>
|
||||
<string name="AboutThisProgram">Delta Chatについて</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Delta Chatメッセンジャーより送信: https://delta.chat</string>
|
||||
<string name="EmailAddress">メールアドレス</string>
|
||||
<string name="AdvancedSettings">追加設定</string>
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
<string name="AreYouSureBlockContact">Er du sikker på at du vil blokkere denne kontakten?</string>
|
||||
<string name="AreYouSureDeleteContact">Er du sikker på at du ønsker å slette denne kontakten?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Delta Chat trenger tilgang til kontaktene dine slik at du kan koble til dine venner på tvers av alle enhetene dine.</string>
|
||||
<string name="PermissionContacts">Delta Chat trenger tilgang til kontaktene dine slik at du kan koble til vennene dine på tvers av alle enhetene dine.</string>
|
||||
<string name="PermissionStorage">Delta chat trenger tilgang til lagring, slik at du kan sende og lagre bilder, videoer, musikk og annen media.</string>
|
||||
<string name="PermissionNoAudio">Delta Chat trenger mikrofontilgang slik at du kan sende lydmeldinger.</string>
|
||||
<string name="PermissionOpenSettings">Tilpass innstillinger</string>
|
||||
@@ -317,8 +317,7 @@
|
||||
<string name="ImapPort">IMAP-port</string>
|
||||
<string name="InboxHeadline">Innboks</string>
|
||||
<string name="OutboxHeadline">Utboks</string>
|
||||
<string name="MyAccountExplain">For kjente e-posttilbydere blir ytterligere innstillinger bestemt automatisk.</string>
|
||||
<string name="MyAccountExplain2" >Noen ganger må <![CDATA[<b>]]>IMAP<![CDATA[</b>]]> skrus på i vev-e-postgrenseflaten.\n\nVed problemer, spør din e-posttilbyder eller dine venner.</string>
|
||||
<string name="MyAccountExplain">For kjente e-posttilbydere blir ytterligere innstillinger bestemt automatisk.<![CDATA[<br/>]]><![CDATA[<br/>]]>Noen ganger må <![CDATA[<b>]]>IMAP<![CDATA[</b>]]> skrus på i vev-e-postgrenseflaten.\n\nVed problemer, spør din e-posttilbyder eller vennene dine.</string>
|
||||
<string name="AccountNotConfigured">Konto ikke satt opp</string>
|
||||
<string name="AboutThisProgram">Om</string>
|
||||
<string name="NotSet">Ikke satt</string>
|
||||
@@ -329,7 +328,8 @@
|
||||
<string name="AskStartChatWith">Begynn å sludre med <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">For å begynne sludring, klikk på svar-pilene.</string>
|
||||
<string name="NotYetImplemented">Denne funksjonen er ikke tilgjengelig eller ufullstendig.</string>
|
||||
<string name="DefaultStatusText">Sendt med Delta Chat: https://delta.chat/nb</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Sendt med Delta Chat: https://delta.chat</string>
|
||||
<string name="Name" >Navn</string>
|
||||
<string name="EmailAddress">E-postadresse</string>
|
||||
<string name="CannotDeleteContact">Kan ikke slette kontakter i bruk, blokker kontakt istedenfor.</string>
|
||||
@@ -443,7 +443,6 @@
|
||||
<string name="VerifiedGroup">Bekreftet gruppe</string>
|
||||
<string name="Group">Gruppe</string>
|
||||
<string name="EditedNameWillBeShared">Det redigerte gruppenavnet vil bli delt med alle dens medlemmer.</string>
|
||||
<string name="QrShowInviteCode">Vis QR-invitasjonskode</string>
|
||||
<string name="E2EEncryptionPreferred">Ende-til-ende -kryptering foretrukket.</string>
|
||||
<string name="OobAddrVerified">%1$s bekreftet.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s bekreftet, sender introduksjonstekst …</string>
|
||||
@@ -457,4 +456,18 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s av meg.</string>
|
||||
</resources>
|
||||
<string name="ExampleEmailAddr">bruker@eksempel.no</string>
|
||||
<string name="QrScanHint">Beveg kameraet over QR-koden</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Vis ELLER bekreft kode</string>
|
||||
<string name="QrVerifyContactTitle">ELLER bekreft kode</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nSkan dette for å bekrefte en kontakt.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Vis QR-invitasjonskode</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">QR-invitasjonskode</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Skann denne for å ta del i den bekreftede gruppen <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Hentingsmodus</string>
|
||||
<string name="FetchModeSaveBattery">Spar batteri</string>
|
||||
<string name="FetchModePersistentConnection">Vedvarende tilkobling</string>
|
||||
<string name="FetchModeExplain">Når hentingsmodus brukes <![CDATA[<i>]]>Batterisparing<![CDATA[</i>]]>, nye meldinger vises én gang hvis programmet er i forgrunnen, med gjennomsnittlig 30 sekunders forsinkelse hvis programmet ikke brukes. Når enheten er i sovemodus, vil forsinkelsen øke. Dette er forvalgt modus.\n\n<![CDATA[</i>]]> Vedvarende tilkobling<![CDATA[</i>]]> er typisk raskere, men kan krevet at programmet hvitlistes i systeminnstillingene for å bruke mer batteri.\n\n.Hvilket innhentingsmodus ønsker du å bruke?</string>
|
||||
</resources>
|
||||
|
||||
@@ -317,8 +317,12 @@
|
||||
<string name="ImapPort">IMAP-poort</string>
|
||||
<string name="InboxHeadline">Postvak IN</string>
|
||||
<string name="OutboxHeadline">Postvak UIT</string>
|
||||
<string name="MyAccountExplain">Bij bekende e-maildiensten worden de instellingen automatisch bepaald.</string>
|
||||
<string name="MyAccountExplain2" >Soms moet <![CDATA[<b>]]>IMAP ingeschakeld worden<![CDATA[</b>]]> op de e-mailwebsite.\n\nAls je problemen hebt, vraag dan je e-maildienst of vrienden om hulp.</string>
|
||||
<string name="AdvancedOptions">Geavanceerde opties...</string>
|
||||
<string name="MyAccountExplain">Bij bekende e-maildiensten worden de instellingen automatisch bepaald.<![CDATA[<br/>]]><![CDATA[<br/>]]>Soms moet <![CDATA[<b>]]>IMAP ingeschakeld worden<![CDATA[</b>]]> op de e-mailwebsite.\n\nAls je problemen hebt, vraag dan je e-maildienst of vrienden om hulp.</string>
|
||||
<string name="MyAccountExplainGmail">Voor <![CDATA[<b>]]>GMail<![CDATA[</b>]]>-accounts moet je een
|
||||
<![CDATA[<a href=\"https://security.google.com/settings/security/apppasswords\">]]>app-wachtwoord<![CDATA[</a>]]>creëren als je authenticatie in twee stappen hebt ingeschakeld.
|
||||
<![CDATA[<br/>]]>Als dit niet beschikbaar is, dan moet je<![CDATA[<a href=\"https://myaccount.google.com/lesssecureapps\">]]>Minder veilige apps<![CDATA[</a>]]> inschakelen.
|
||||
</string>
|
||||
<string name="AccountNotConfigured">Account niet ingesteld</string>
|
||||
<string name="AboutThisProgram">Over Delta Chat</string>
|
||||
<string name="NotSet">Niet ingesteld</string>
|
||||
@@ -329,6 +333,7 @@
|
||||
<string name="AskStartChatWith">Chat beginnen met <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Klik op het reactiepijltje om een chat te beginnen.</string>
|
||||
<string name="NotYetImplemented">Deze functie is niet beschikbaar of incompleet.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Verstuurd met mijn Delta Chat Messenger: https://delta.chat</string>
|
||||
<string name="Name" >Naam</string>
|
||||
<string name="EmailAddress">E-mailadres</string>
|
||||
@@ -443,7 +448,6 @@
|
||||
<string name="VerifiedGroup">Geverifieerde groep</string>
|
||||
<string name="Group">Groep</string>
|
||||
<string name="EditedNameWillBeShared">De nieuwe naam zal worden gedeeld met alle groepsleden.</string>
|
||||
<string name="QrShowInviteCode">QR-code voor uitnodigingen weergeven</string>
|
||||
<string name="E2EEncryptionPreferred">Voorkeur voor end-to-end-versleuteling.</string>
|
||||
<string name="OobAddrVerified">%1$s is geverifieerd.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$sis geverifieerd; introduceer me...</string>
|
||||
@@ -457,4 +461,19 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s door mij.</string>
|
||||
</resources>
|
||||
<string name="ExampleEmailAddr">gebruiker@voorbeeld.org</string>
|
||||
<string name="QrScanHint">Houdt je camera boven de QR-code</string>
|
||||
|
||||
<string name="QrShowVerifyCode">QR-verificatiecode tonen</string>
|
||||
<string name="QrVerifyContactTitle">QR-verificatiecode</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nScan dit om een geverifieerde contactpersoon in te stellen.</string>
|
||||
|
||||
<string name="QrShowInviteCode">QR-code voor uitnodigingen weergeven</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">QR-uitnodigingscode</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Scan dit om lid te worden van een geverifieerde groep <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Ophaalmodus</string>
|
||||
<string name="FetchModeSaveBattery">Batterijbesparing</string>
|
||||
<string name="FetchModePersistentConnection">Aanhoudende verbinding</string>
|
||||
<string name="FetchModeExplain">Bij gebruik van de ophaalmodus <![CDATA[<i>]>Batterij sparen<![CDATA[</i>]]>, verschijnen nieuwe berichten meteen wanneer de app op de voorgrond staat en met een gemiddelde vertraging van 30 seconden als de app niet wordt gebruikt. Wanneer het apparaat in sluimerstand (doze mode) is, kan de vertraging langer zijn. Dit is de standaardmodus.\n\n<![CDATA[<i>]]>Continue connectie<![CDATA[</i>]]> is meestal sneller maar vereist mogelijk dat de app in de systeeminstellingen op de witte lijst wordt geplaatst om meer batterij te mogen verbruiken.\n\nWelke ophaalmodus wilt u gebruiken?</string>
|
||||
<string name="PermissionCamera">Cameratoegang is nodig als je foto\'s wilt maken of QR-codes wilt scannen.</string>
|
||||
</resources>
|
||||
|
||||
@@ -345,8 +345,11 @@
|
||||
<string name="ImapPort">IMAP port</string>
|
||||
<string name="InboxHeadline">Skrzynka odbiorcza</string>
|
||||
<string name="OutboxHeadline">Skrzynka nadawcza</string>
|
||||
<string name="MyAccountExplain">Dla znanych dostawców usług poczty elektronicznej poniższe ustawienia są określane automatycznie.</string>
|
||||
<string name="MyAccountExplain2" >Czasami <![CDATA[<b>]]>IMAP musi być włączony<![CDATA[</b>]]> w interfejsie www poczty internetowej.\n\nZ problemami należy zwrócić się do usługodawcy e-mail lub znajomych.</string>
|
||||
<string name="AdvancedOptions">Opcje zaawansowane…</string>
|
||||
<string name="MyAccountExplain">Dla znanych dostawców usług poczty elektronicznej poniższe ustawienia są określane automatycznie.<![CDATA[<br/>]]><![CDATA[<br/>]]>Czasami <![CDATA[<b>]]>IMAP musi być włączony<![CDATA[</b>]]> w interfejsie www poczty internetowej.\n\nZ problemami należy zwrócić się do usługodawcy e-mail lub znajomych.</string>
|
||||
<string name="MyAccountExplainGmail">W przypadku kont <![CDATA[<b>]]>GMail<![CDATA[</b>]]>musisz utworzyć
|
||||
<![CDATA[<a href=\"https://security.google.com/settings/security/apppasswords\">]]>hasło aplikacji<![CDATA[</a>]]> , jeśli masz włączone 2FA (weryfikację dwustopniową).
|
||||
<![CDATA[<br/>]]>Jeśli te ustawienia nie są dostępne, musisz włączyć <![CDATA[<a href=\"https://myaccount.google.com/lesssecureapps\">]]>mniej bezpieczne aplikacje<![CDATA[</a>]]>.</string>
|
||||
<string name="AccountNotConfigured">Konto nie jest skonfigurowane</string>
|
||||
<string name="AboutThisProgram">O Delta Chat</string>
|
||||
<string name="NotSet">Nie ustawiona</string>
|
||||
@@ -357,7 +360,8 @@
|
||||
<string name="AskStartChatWith">Rozpocząć czat z <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Aby rozpocząć czat, naciśnij strzałkę odpowiedzi.</string>
|
||||
<string name="NotYetImplemented">Ta funkcja jest niedostępna lub niekompletna.</string>
|
||||
<string name="DefaultStatusText">Wysłane z komunikatora Delta Chat: https://delta.chat/pl</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Wysłane z komunikatora Delta Chat: https://delta.chat</string>
|
||||
<string name="Name" >Nazwa</string>
|
||||
<string name="EmailAddress">Adres e-mail</string>
|
||||
<string name="CannotDeleteContact">Nie możesz usunąć kontaktu w użyciu, zamiast tego zablokuj kontakt.</string>
|
||||
@@ -471,9 +475,9 @@
|
||||
<string name="VerifiedGroup">Zweryfikowania grupa</string>
|
||||
<string name="Group">Grupa</string>
|
||||
<string name="EditedNameWillBeShared">Edytowana nazwa zostanie udostępniona wszystkim członkom grupy.</string>
|
||||
<string name="QrShowInviteCode">Pokaż kod QR zaproszenia</string>
|
||||
<string name="E2EEncryptionPreferred">Preferowane pełne szyfrowanie.</string>
|
||||
<string name="OobAddrVerified">Zweryfikowano %1$s</string>
|
||||
<string name="OobGroupJoined">Użytkownik %1$s bezpiecznie dołączył do grupy. </string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">Zweryfikowano %1$s, przedstaw się…</string>
|
||||
<string name="OobAskJoinVerifiedGroup">Czy chcesz dołączyć do zweryfikowanej grupy <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
@@ -485,4 +489,23 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s przez mnie.</string>
|
||||
<string name="ExampleEmailAddr">user@example.org</string>
|
||||
<string name="QrScanHint">Umieść aparat nad kodem QR</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Pokaż weryfikacyjny kod QR</string>
|
||||
<string name="QrVerifyContactTitle">Weryfikacyjny kod QR</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nZeskanuj to w celu skonfigurowania zweryfikowanego kontaktu.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Pokaż kod QR zaproszenia</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">Kod QR zaproszenia</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Zeskanuj to, aby dołączyć do zweryfikowanej grupy <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Tryb pobierania</string>
|
||||
<string name="FetchModeSaveBattery">Oszczędzaj baterię</string>
|
||||
<string name="FetchModePersistentConnection">Stałe połączenie</string>
|
||||
<string name="FetchModeExplain">Podczas korzystania z trybu pobierania <![CDATA[<i>]]>Oszczędzaj baterię<![CDATA[</i>]]> nowe wiadomości pojawiają się od razu, jeśli aplikacja jest na pierwszym planie oraz ze średnim opóźnieniem 30 sekund, jeśli aplikacja nie jest używana. Gdy urządzenie znajduje się w trybie drzemki, opóźnienie może być dłuższe. Jest to tryb domyślny.\n\n<![CDATA[<i>]]>Stałe połączenie<![CDATA[</i>]]> jest zazwyczaj szybsze, ale może wymagać umieszczenia aplikacji na białej liście w ustawieniach systemu w celu zwiększenia zużycia baterii.\n\nKtórego trybu pobierania chcesz używać?</string>
|
||||
<string name="PermissionCamera">Dostęp do aparatu jest niezbędny, jeśli chcesz robić zdjęcia lub skanować kody QR.</string>
|
||||
<!-- Translators: %1$s will be replaced by the email address -->
|
||||
<string name="ErrCannotLogin">Nie można się zalogować jako <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>. Sprawdź, czy adres e-mail i hasło są poprawne.</string>
|
||||
<!-- Translators: %1$s will be replaced by the server name (eg. imap.somewhere.org) and %2$s will be replaced by the human-readable response from the server. this response may be a single word or some sentences and may or may not be localized. -->
|
||||
<string name="ErrSeverResponse">Odpowiedź od %1$s: %2$s\n\nNiektórzy dostawcy umieszczają w skrzynce odbiorczej dodatkowe informacje, które można sprawdzić np. na stronie internetowej. W przypadku wystąpienia problemów należy skonsultować się z dostawcą lub znajomymi.</string>
|
||||
</resources>
|
||||
|
||||
@@ -317,8 +317,7 @@
|
||||
<string name="ImapPort">Porta IMAP</string>
|
||||
<string name="InboxHeadline">Caixa de entrada</string>
|
||||
<string name="OutboxHeadline">Caixa de saída</string>
|
||||
<string name="MyAccountExplain">Para provedores de e-mail mais populares as configurações a seguir são detectadas automaticamente.</string>
|
||||
<string name="MyAccountExplain2" >Por vezes <![CDATA[<b>]]> é necessário habilitar o IMAP/SMTP<![CDATA[</b>]]> nas configurações do servidor de e-mail.\n\nSe tiver dificuldades peça ajuda aos administradores do servidor ou a algum amigo.</string>
|
||||
<string name="MyAccountExplain">Para provedores de e-mail mais populares as configurações a seguir são detectadas automaticamente.<![CDATA[<br/>]]><![CDATA[<br/>]]>Por vezes <![CDATA[<b>]]> é necessário habilitar o IMAP/SMTP<![CDATA[</b>]]> nas configurações do servidor de e-mail.\n\nSe tiver dificuldades peça ajuda aos administradores do servidor ou a algum amigo.</string>
|
||||
<string name="AccountNotConfigured">Conta não configurada</string>
|
||||
<string name="AboutThisProgram">Sobre Delta Chat</string>
|
||||
<string name="NotSet">Não configurado</string>
|
||||
@@ -329,7 +328,8 @@
|
||||
<string name="AskStartChatWith">Começar uma conversa com <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Para conversar toque na seta.</string>
|
||||
<string name="NotYetImplemented">Esta função ainda não está disponível ou ainda não está completamente desenvolvida.</string>
|
||||
<string name="DefaultStatusText">Enviado pelo meu Delta Chat Messenger: https://delta.chat/pt</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Enviado pelo meu Delta Chat Messenger: https://delta.chat</string>
|
||||
<string name="Name" >Nome</string>
|
||||
<string name="EmailAddress">Endereço de e-mail</string>
|
||||
<string name="CannotDeleteContact">Impossível deletar um contato em uso! Bloqueie-o.</string>
|
||||
@@ -421,5 +421,20 @@
|
||||
<string name="AutocryptKeyTransferBadCode">Código errado. Tente novamente.\n\nSe você não se lembra do código recomece a transferência de chaves no dispositivo original.</string>
|
||||
<string name="AutocryptKeyTransferSucceeded">Chaves transferidas. Agora você está pronto para usar o Autocrypt neste dispositivo com as mesmas chaves do outro.</string>
|
||||
<string name="Retry">Repetir</string>
|
||||
<string name="SelfTalkSubtitle">Mensagens que enviei para mim</string>
|
||||
<string name="QrScan">Escanear código QR</string>
|
||||
<string name="QrShow">Mostrar código QR</string>
|
||||
<string name="QrScanContainsText">O código QR escaneado contém o seguinte texto:
|
||||
|
||||
%1$s</string>
|
||||
<string name="QrScanContainsUrl">O código QR escaneado contém a seguinte URL:
|
||||
|
||||
%1$s</string>
|
||||
<string name="OobSecureJoinRequested">%1$s entrou.</string>
|
||||
<string name="Autocrypt">Autocrypt</string>
|
||||
<string name="Contact">Contato</string>
|
||||
<string name="QrShowVerifyCode">Mostrar código QR de verificação</string>
|
||||
<string name="QrVerifyContactTitle">Código QR de verificação</string>
|
||||
<string name="FetchModeSaveBattery">Economizar bateria</string>
|
||||
<string name="FetchModePersistentConnection">Conexão persistente</string>
|
||||
</resources>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<string name="UnmuteNotifications">Включить уведомления</string>
|
||||
<string name="Draft">Черновик</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Добавьте файлы в музыкальную коллекцию на вашем устройстве для того, чтобы увидеть их здесь.</string>
|
||||
<string name="NoAudio">Файлы из вашей музыкальной галереи.</string>
|
||||
<string name="AttachMusic">Музыка</string>
|
||||
<!--documents view-->
|
||||
<string name="SelectFile">Выбрать файл</string>
|
||||
@@ -71,7 +71,7 @@
|
||||
<string name="TextSize">Размер шрифта сообщений</string>
|
||||
<string name="UnblockContact">Разблокировать контакт</string>
|
||||
<string name="NoBlocked">Пока нет заблокированных контактов</string>
|
||||
<string name="DefaultForNormalMessages">Обычное сообщение</string>
|
||||
<string name="DefaultForNormalMessages">Обычные сообщения</string>
|
||||
<string name="MessagePreview">Предпросмотр сообщения</string>
|
||||
<string name="DefaultForGroupMessages">Сообщения группы</string>
|
||||
<string name="Sound">Звук</string>
|
||||
@@ -83,16 +83,16 @@
|
||||
<string name="Default">По умолчанию</string>
|
||||
<string name="OnlyIfSilent">Только при выключенном звуке</string>
|
||||
<string name="ChatBackground">Фон чата</string>
|
||||
<string name="SendByEnter">Отправлять нажав «Ввод»</string>
|
||||
<string name="SendByEnter">Оправлять нажав Ввод</string>
|
||||
<string name="Help">Помощь</string>
|
||||
<string name="Enabled">Вкл</string>
|
||||
<string name="Disabled">Выкл</string>
|
||||
<string name="Disabled">Выкл.</string>
|
||||
<string name="LedColor">Цвет LED</string>
|
||||
<string name="BadgeNumber">Задействовать иконку для ведения счёта, по возможности</string>
|
||||
<string name="Short">Короткая</string>
|
||||
<string name="Long">Длинная</string>
|
||||
<string name="RaiseToSpeak">Открыть для разговора</string>
|
||||
<string name="EditName">Правка имени</string>
|
||||
<string name="RaiseToSpeak">Режим \"бери-и-говори\"</string>
|
||||
<string name="EditName">Изменить название</string>
|
||||
<string name="NotificationsPriority">Просмотр</string>
|
||||
<string name="NotificationsPriorityDefault">Нормальный приоритет</string>
|
||||
<string name="NotificationsPriorityHigh">Высокий приоритет</string>
|
||||
@@ -115,7 +115,7 @@
|
||||
<!--passcode view-->
|
||||
<string name="Passcode">Код доступа</string>
|
||||
<string name="ChangePasscode">Изменить код доступа</string>
|
||||
<string name="ChangePasscodeInfo">Когда вы установите дополнительный код доступа, на странице чатов появится значок блокировки. Нажмите на него, чтобы заблокировать приложение.\n\nПримечание: если вы забудете код доступа, вам нужно будет удалить и переустановить приложение.</string>
|
||||
<string name="ChangePasscodeInfo">Если вы установите дополнительный код доступа, значок блокировки будет отображён в верхней части списка чата. Нажмите на него, чтобы заблокировать приложение.\n\nПримечание: Если вы забудете код доступа, вам будет необходимо удалить и переустановить приложение.</string>
|
||||
<string name="PasscodePIN">ПИН</string>
|
||||
<string name="PasscodePassword">Пароль</string>
|
||||
<string name="EnterCurrentPasscode">Введите текущий код доступа</string>
|
||||
@@ -128,7 +128,7 @@
|
||||
<string name="AutoLockInfo">Запрашивать код доступа, если превышено время ожидания.</string>
|
||||
<string name="UnlockFingerprint">Разблокировать с помощью отпечатка пальца</string>
|
||||
<string name="FingerprintInfo">Подтвердите отпечаток пальца для продолжения</string>
|
||||
<string name="FingerprintNotRecognized">Отпечаток пальца не опознан. Повторите снова</string>
|
||||
<string name="FingerprintNotRecognized">Отпечаток пальца не опознан. Повторите снова.</string>
|
||||
<!--photo gallery view-->
|
||||
<string name="SaveToGallery">Сохранить в «Галерее»</string>
|
||||
<string name="Of">%1$d до %2$d</string>
|
||||
@@ -159,7 +159,7 @@
|
||||
<string name="CurvesGreen">Зелёный</string>
|
||||
<string name="CurvesBlue">Синий</string>
|
||||
<string name="Blur">Размытие</string>
|
||||
<string name="BlurOff">Выкл</string>
|
||||
<string name="BlurOff">Выкл.</string>
|
||||
<string name="BlurLinear">Линейность</string>
|
||||
<string name="BlurRadial">Радиальный</string>
|
||||
<string name="DiscardChanges">Отменить изменения?</string>
|
||||
@@ -194,7 +194,7 @@
|
||||
<string name="AttachVoiceMessage">Голосовое сообщение</string>
|
||||
<string name="FromSelf">Я</string>
|
||||
<!--Alert messages-->
|
||||
<string name="NoHandleAppInstalled">Нет приложений, которые могут обрабатывать тип файла \'%1$s\', пожалуйста, установите такое приложение, чтобы продолжить.</string>
|
||||
<string name="NoHandleAppInstalled">Установите приложение для открытия данного вида \'%1$s\', файлов для продолжения.</string>
|
||||
<string name="ContactAlreadyInGroup">Контакт уже находится в этой группе.</string>
|
||||
<string name="ForwardMessagesTo">Переслать выбранные сообщения пользователю <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="SendMessagesTo">Отправить сообщения пользователю <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
@@ -202,9 +202,9 @@
|
||||
<string name="AreYouSureBlockContact">Вы действительно хотите заблокировать этот контакт?</string>
|
||||
<string name="AreYouSureDeleteContact">Вы уверены, что хотите удалить этот контакт?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Доступ к вашим контактам необходим для того, чтобы вы могли общаться со своими друзьями на всех ваших устройствах.</string>
|
||||
<string name="PermissionStorage">Необходим доступ к памяти вашего устройства для отправки и хранения фотографий, видео, музыки и других файлов.</string>
|
||||
<string name="PermissionNoAudio">Доступ к микрофону для записи голосовых сообщений.</string>
|
||||
<string name="PermissionContacts">Предоставьте доступ к вашим контактам если вы хотите синхронизировать друзей на всех ваших устройствах.</string>
|
||||
<string name="PermissionStorage">Предоставьте доступ к памяти вашего устройства если вы хотите отправлять и хранить фотографии, видео, музыку и другие файлы.</string>
|
||||
<string name="PermissionNoAudio">Предоставьте доступ к микрофону для записи голосовых сообщений.</string>
|
||||
<string name="PermissionOpenSettings">Настройки</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
@@ -263,7 +263,7 @@
|
||||
<item quantity="one">Удалить %d сообщение? Сообщение также будет удалено с сервера.</item>
|
||||
<item quantity="few">Удалить %d сообщения? Сообщения также будут удалены с сервера.</item>
|
||||
<item quantity="many">Удалить %d сообщения? Сообщения также будут удалены с сервера.</item>
|
||||
<item quantity="other">Удалить %d сообщения? Они также будут удалены с вашего сервера.</item>
|
||||
<item quantity="other">Удалить %d сообщения здесь и на сервере.</item>
|
||||
</plurals>
|
||||
<!-- Translators: The first string placeholder gets replaced with the
|
||||
text "%d new messages", so the complete sentence would be e.g.
|
||||
@@ -332,7 +332,7 @@
|
||||
<string name="AccountSettings">Настройки аккаунта</string>
|
||||
<string name="MyAccount">Мой аккаунт</string>
|
||||
<string name="MyName">Моё имя</string>
|
||||
<string name="MyNameExplain">Ваше имя будет видно всем участникам переписки. Если оставить поле пустым, участники переписки увидят только адрес вашей эл.почты.</string>
|
||||
<string name="MyNameExplain">Ваше имя для показа всем участникам переписки. Если оставить поле пустым, участники переписки увидят только адрес вашей эл.почты.</string>
|
||||
<string name="Password">Пароль</string>
|
||||
<string name="SmtpPassword">SMTP пароль</string>
|
||||
<string name="FromAbove">Как указан выше</string>
|
||||
@@ -345,8 +345,11 @@
|
||||
<string name="ImapPort">IMAP порт</string>
|
||||
<string name="InboxHeadline">Входящие</string>
|
||||
<string name="OutboxHeadline">Исходящие</string>
|
||||
<string name="MyAccountExplain">Для известных поставщиков электронной почты дополнительные настройки определяются автоматически.</string>
|
||||
<string name="MyAccountExplain2" >Иногда <![CDATA[<b>]]>IMAP должен быть включён<![CDATA[</b>]]> в веб-интерфейсе электронной почты.\n\nВ случае затруднений обратитесь к своему поставщику услуги электронной почты или компетентным друзьям.</string>
|
||||
<string name="AdvancedOptions">Расширенные настройки...</string>
|
||||
<string name="MyAccountExplain">Для известных поставщиков электронной почты дополнительные настройки определяются автоматически.<![CDATA[<br/>]]><![CDATA[<br/>]]>Иногда, <![CDATA[<b>]]>IMAP должен быть включён<![CDATA[</b>]]> в веб-интерфейсе электронной почты.\n\nВ случае затруднений, обратитесь к своему поставщику услуги электронной почты или компетентным друзьям.</string>
|
||||
<string name="MyAccountExplainGmail">Для <![CDATA[<b>]]>GMail<![CDATA[</b>]]> Аккаунтов, вам возможно, понадобиться или создать
|
||||
<![CDATA[<a href=\"https://security.google.com/settings/security/apppasswords\">]]>Пароль на приложение<![CDATA[</a>]]> если у вас включена аутентификация 2FA.
|
||||
<![CDATA[<br/>]]>Если эти настройки не доступны, вам будет необходимо разрешить <![CDATA[<a href=\"https://myaccount.google.com/lesssecureapps\">]]>Доступ Небезопасных Приложений<![CDATA[</a>]]></string>
|
||||
<string name="AccountNotConfigured">Аккаунт не настроен</string>
|
||||
<string name="AboutThisProgram">Delta Chat (Дельта Чат)</string>
|
||||
<string name="NotSet">Не задано</string>
|
||||
@@ -357,7 +360,8 @@
|
||||
<string name="AskStartChatWith">Начать чат с <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Чтобы начать чат, нажмите стрелку ответа.</string>
|
||||
<string name="NotYetImplemented">Эта функция недоступна или в разработке.</string>
|
||||
<string name="DefaultStatusText">Отправлено с помощью мессенджера Delta Chat: https://delta.chat/ru</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Отправлено с помощью мессенджера Delta Chat: https://delta.chat</string>
|
||||
<string name="Name" >Имя</string>
|
||||
<string name="EmailAddress">Адрес электронной почты</string>
|
||||
<string name="CannotDeleteContact">Невозможно удалить контакты во время их использования, вместо этого заблокируйте контакт.</string>
|
||||
@@ -369,15 +373,15 @@
|
||||
<string name="OneMoment">Один момент …</string>
|
||||
<string name="NoChatsHelp">Начните обмен сообщениями, нажав кнопку нового чата в нижнем правом углу, или коснитесь кнопки меню для получения дополнительных возможностей.</string>
|
||||
<string name="Intro7Message"><![CDATA[<b>Delta Chat</b>]]> безопасен для использования в бизнесе, основан на совместимых стандартах.</string>
|
||||
<string name="InviteMenuEntry">Отправить приглашения</string>
|
||||
<string name="InviteText">Я использую мессенджер Delta Chat - %1$s - вы можете написать мне на %2$s</string>
|
||||
<string name="InviteMenuEntry">Отправить приглашение</string>
|
||||
<string name="InviteText">Сейчас я использую мессенджер Delta Chat - %1$s - вы можете написать мне на %2$s</string>
|
||||
<string name="AdvancedSettings">Расширенные настройки</string>
|
||||
<string name="AskResetNotifications">Сбросить все настройки звуков и уведомлений для контактов и групп на этой странице?</string>
|
||||
<string name="AttachFiles">Прикрепить файлы</string>
|
||||
<string name="ErrGroupNameEmpty">Введите название группы.</string>
|
||||
<string name="MsgNewGroupDraftHint">Напишите первое сообщение, чтобы другие могли отвечать в этой группе.\n\n• Группа будет нормально общаться, даже если не все участники используют Delta Chat.\n\n• Доставка первого сообщения может занять некоторое время.</string>
|
||||
<string name="MsgNewGroupDraft">Привет! Я только что создал группу \"%1$s\" для нас.</string>
|
||||
<string name="MsgGroupNameChanged">Название группы изменено с \"%1$s\" в \"%2$s\".</string>
|
||||
<string name="MsgGroupNameChanged">Название группы изменено с \"%1$s\" на \"%2$s\".</string>
|
||||
<string name="MsgGroupImageChanged">Изображение группы изменено.</string>
|
||||
<string name="MsgMemberAddedToGroup">Участник %1$s добавлен.</string>
|
||||
<string name="MsgMemberRemovedFromToGroup">Участник %1$s удалён.</string>
|
||||
@@ -410,7 +414,7 @@
|
||||
<string name="EncrinfoNone">Соединение к моему серверу незащищено.</string>
|
||||
<string name="EncrinfoFingerprints">Ключи шифрования</string>
|
||||
<string name="Backup">Резервное копирование</string>
|
||||
<string name="ImportBackupExplain2">Для восстановления из резервной копии скопируйте резервную копию в <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> и переустановите приложение.</string>
|
||||
<string name="ImportBackupExplain2">Для восстановления из резервной копии, скопируйте её в <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> и переустановите приложение.</string>
|
||||
<string name="ReadReceiptMailBody">Это уведомление о доставке сообщения \"%1$s\".\n\nОно подтверждает, что сообщение было отображено на устройстве адресата. Однако это не означает, что получатель прочитал его содержимое.</string>
|
||||
<string name="ReadReceipt">Уведомление о доставке</string>
|
||||
<string name="NameAndStatus">Имя и подпись</string>
|
||||
@@ -419,7 +423,7 @@
|
||||
<string name="MsgGroupImageDeleted">Изображение группы удалено.</string>
|
||||
<string name="AskDeleteGroupImage">Вы действительно хотите удалить изображение группы?\n\nИзменение вступит в силу на всех устройствах участников группы.</string>
|
||||
<string name="ExportImportHeader">Экспорт и импорт</string>
|
||||
<string name="ImportExportExplain">Файлы экспорта будут содержать закрытые ключи! Храните их в защищенном месте или удалите при первой возможности.</string>
|
||||
<string name="ImportExportExplain">Файлы экспорта будут содержать закрытые ключи шифрования настройки Autocrypt! Храните их в защищенном месте или удалите при первой возможности.</string>
|
||||
<string name="EnterPasswordToContinue">Введите пароль для %1$s, чтобы продолжить:</string>
|
||||
<string name="IncorrectPassword">Неверный пароль.</string>
|
||||
<string name="ImportBackupAsk">Delta Chat нашел резервную копию в <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.\n\nИмпортировать и использовать все данные и настройки из резервной копии?</string>
|
||||
@@ -440,8 +444,8 @@
|
||||
<string name="AskLeaveGroup">Вы уверены, что хотите выйти из группы?</string>
|
||||
<string name="Never">Никогда</string>
|
||||
<string name="AutocryptKeyTransferInitiate">Начать передачу Сообщения Настройки Autocrypt</string>
|
||||
<string name="AutocryptKeyTransfer">Сообщение Настойки Autocrypt</string>
|
||||
<string name="AutocryptKeyTransferMsgBeforeSend">Для <![CDATA[<i>]]>передачи Сообщения Настройки Autocrypt<![CDATA[</i>]]> необходимо, чтобы почтовый клиент на другом устройстве так же поддерживал Autocrypt.\n\nЗатем Вы можете послать ключ себе. Ключ будет зашифрован кодом настройки, который указан здесь, и который нужно будет ввести на другом устройстве.</string>
|
||||
<string name="AutocryptKeyTransfer">Сообщение Настройки Autocrypt</string>
|
||||
<string name="AutocryptKeyTransferMsgBeforeSend">Это <![CDATA[<i>]]>Сообщение Настройки Autocrypt<![CDATA[</i>]]> для безопасной передачи настроек вашего сквозного шифрования другим совместимым устройствам.\n\nЭта настройка будет зашифрована установочным кодом который указан здесь и который необходимо ввести на другом устройстве.</string>
|
||||
<string name="AutocryptKeyTransferMsgAfterSend">Вы отправили ключ себе. Теперь перейдите к другому устройству и откройте сообщение настройки. Будет предложено ввести код настройки. Введите следующие цифры:\n\n%1$s\n\nКак только Вы это сделаете, другое устройство будет готово использовать Autocrypt.</string>
|
||||
<string name="AutocryptSetupMessageSubject">Сообщение Настройки Autocrypt</string>
|
||||
<string name="AutocryptSetupMessageGeneralBody">Это Сообщение Настройки Autocrypt, используемое для передачи ключа между клиентами.\n\nДля расшифровки и использования вашего ключа откройте это сообщение в почтовом клиенте, совместимом с Autocrypt, и введите код, отображаемый на устройстве с которого отправлено сообщение.</string>
|
||||
@@ -451,19 +455,19 @@
|
||||
<string name="AutocryptKeyTransferSucceeded">Ключ передан успешно. Сейчас это устройство может использовать Autocrypt с тем же ключом, что и на другом устройстве.</string>
|
||||
<string name="Retry">Повторить</string>
|
||||
<string name="SelfTalkSubtitle">Сообщения отправленные самому себе</string>
|
||||
<string name="QrScan">Сканировать QR код</string>
|
||||
<string name="QrScan">Сканирование QR кода</string>
|
||||
<string name="QrShow">Показать QR код</string>
|
||||
<string name="QrScanContainsText">Отсканированный QR код содержит текст:\n\n%1$s</string>
|
||||
<string name="QrScanContainsUrl">QR код для перехода по ссылке URL:\n\n%1$s</string>
|
||||
<string name="QrScanContainsText">Текст сканированного QR кода:\n\n%1$s</string>
|
||||
<string name="QrScanContainsUrl">QR код для перехода по URL:\n\n%1$s</string>
|
||||
<string name="OobFingerprint">Ключ</string>
|
||||
<string name="OobFingerprintAskOob">Верифицировать контакт и начать общение с <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="OobFingerprintOk">Контакт <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> верифицирован. Начать общение?</string>
|
||||
<string name="OobFingerprintMismatch">Отсканированный ключ шифрования <![CDATA[<b>]]>не соответствует<![CDATA[</b>]]> ключу, который ранее был у <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.</string>
|
||||
<string name="OobFingerprintWithoutAddr">Этот QR код содержит ключ шифрования, не адрес эл.почты.\n\nЧтобы выполнить верификацию по внешнему каналу, прежде всего установите с получателем защищённое соединение.</string>
|
||||
<string name="OobFingerprintWithoutAddr">Этот QR код содержит отпечаток ключа, не адрес эл.почты.\n\nЧтобы выполнить верификацию по внешнему каналу, прежде всего установите с получателем защищённое соединение.</string>
|
||||
<string name="OobSecureJoinRequested">%1$s соединений.</string>
|
||||
<string name="CannotDecryptBody">Это сообщение не может быть расшифровано.\n\n• Возможно вам надо, просто попросить отправителя направить вам сообщение ещё раз.\n\n• В случае переустановки программы Дельта Чат или любой другой почтовой программы на этом или другом устройствах вам будет необходимо отправить от них Сообщение Настроек Autocrypt.</string>
|
||||
<string name="Autocrypt">Autocrypt</string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> это новая и открытая спецификация сквозного шифрования для эл. почты.\n\nНастройки вашего сквозного шифрования создаются при необходимости автоматически и вы можете передавать их между устройствами посредством <![CDATA[<i>]]>Сообщения Настроек Autocrypt.<![CDATA[</i>]]></string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> это новая и открытая спецификация для автоматического сквозного шифрования эл.почты.\n\nНастройки вашего сквозного шифрования создаются при необходимости автоматически и вы можете передавать их между устройствами через <![CDATA[<i>]]>Сообщения Настройки Autocrypt.<![CDATA[</i>]]></string>
|
||||
<string name="NewVerifiedGroup">Новая проверенная группа</string>
|
||||
<string name="SharedChats">Коллективный чат</string>
|
||||
<string name="VerifiedContact">Проверенный контакт</string>
|
||||
@@ -471,7 +475,6 @@
|
||||
<string name="VerifiedGroup">Проверенная группа</string>
|
||||
<string name="Group">Группа</string>
|
||||
<string name="EditedNameWillBeShared">Отредактированное имя будет разослано всем участникам группы.</string>
|
||||
<string name="QrShowInviteCode">Показать QR код приглашения</string>
|
||||
<string name="E2EEncryptionPreferred">Предпочтено сквозное шифрование.</string>
|
||||
<string name="OobAddrVerified">%1$s верифицирован.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s верифицирован, представьтесь …</string>
|
||||
@@ -485,4 +488,23 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s от меня.</string>
|
||||
<string name="ExampleEmailAddr">user@example.org</string>
|
||||
<string name="QrScanHint">Наведите камеру на QR код</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Показать проверочный QR код</string>
|
||||
<string name="QrVerifyContactTitle">Проверочный QR код</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nСканируйте это для настройки доверенного контакта.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Показать QR код приглашения</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">Пригласительный QR код</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Сканируйте этот код для вступления в доверенную группу <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Режим выборки</string>
|
||||
<string name="FetchModeSaveBattery">Сохранять баратею</string>
|
||||
<string name="FetchModePersistentConnection">Постоянное соединение</string>
|
||||
<string name="FetchModeExplain">Когда используется режим выборки <![CDATA[<i>]]>Сохранять батарею<![CDATA[</i>]]>, новые сообщения появляются сразу, если приложение находится в фоне, если приложение не используется, с задержкой в 30 секунд. Когда устройство находится в «Спящем режиме» задержка может быть дольше. Это режим по умолчанию.\n\n<![CDATA[<i>]]>Постоянное соединение<![CDATA[</i>]]> обычно сообщения приходят быстрее, но в таком случае расход батареи может быть значительным.\n\nКакой режим выборки вы желаете использовать?</string>
|
||||
<string name="PermissionCamera">Необходим допуск к камере если вы хотите сделать фотоснимок или сканировать QR коды.</string>
|
||||
<!-- Translators: %1$s will be replaced by the email address -->
|
||||
<string name="ErrCannotLogin">Невозможно войти как <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>. Пожалуйста, убедитесь в том, что вы правильно вводите адрес адрес эл.почты и пароль.</string>
|
||||
<!-- Translators: %1$s will be replaced by the server name (eg. imap.somewhere.org) and %2$s will be replaced by the human-readable response from the server. this response may be a single word or some sentences and may or may not be localized. -->
|
||||
<string name="ErrSeverResponse">Ответ от %1$s: %2$s\n\nНекоторые поставщики эл.почты помещают дополнительную информацию в папку входящие; проверьте её, например через веб интерфейс. Проконсультируйтесь у поставщика услуги или друзей, в случае если проблема по-прежнему не разрешилась.</string>
|
||||
</resources>
|
||||
|
||||
@@ -316,8 +316,11 @@
|
||||
<string name="ImapPort">Portë IMAP</string>
|
||||
<string name="InboxHeadline">Të marrë</string>
|
||||
<string name="OutboxHeadline">Të dërguar</string>
|
||||
<string name="MyAccountExplain">Për furnizues të njohur shërbimesh email, rregullimet shtesë përcaktohen vetvetiu.</string>
|
||||
<string name="MyAccountExplain2" >Ndonjëherë, <![CDATA[<b>]]>IMAP lypset të aktivizohet<![CDATA[</b>]]> te pjesa e dukshme e sistemit email web.\n\nNëse hasni probleme, këshillohuni me furnizuesin e email-it ose me shokë tuajt.</string>
|
||||
<string name="AdvancedOptions">Mundësi të Thelluara…</string>
|
||||
<string name="MyAccountExplain">Për furnizues të njohur shërbimesh email, rregullimet shtesë përcaktohen vetvetiu.<![CDATA[<br/>]]><![CDATA[<br/>]]>Ndonjëherë, <![CDATA[<b>]]>IMAP lypset të aktivizohet<![CDATA[</b>]]> te pjesa e dukshme e sistemit email web.\n\nNëse hasni probleme, këshillohuni me furnizuesin e email-it ose me shokë tuajt.</string>
|
||||
<string name="MyAccountExplainGmail">Për Llogari <![CDATA[<b>]]>GMail<![CDATA[</b>]]> lypset të krijoni një
|
||||
<![CDATA[<a href="https://security.google.com/settings/security/apppasswords">]]>App-Password<![CDATA[</a>]]>, nëse keni të aktivizuar 2FA.
|
||||
<![CDATA[<br/>]]>Nëse ky rregullim s\’është i mundshëm, lypset të aktivizoni <![CDATA[<a href="https://myaccount.google.com/lesssecureapps">]]>Less Secure Apps<![CDATA[</a>]]></string>
|
||||
<string name="AccountNotConfigured">Llogari e paformësuar</string>
|
||||
<string name="AboutThisProgram">Mbi Delta Chat-in</string>
|
||||
<string name="NotSet">E papërcaktuar</string>
|
||||
@@ -328,6 +331,7 @@
|
||||
<string name="AskStartChatWith">Bisedoni me <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Prekni shigjetat përgjigje që të nisni të bisedoni.</string>
|
||||
<string name="NotYetImplemented">Ky funksion s’është i passhëm ose është jo i plotë</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Dërguar me Delta Chat Messenger-in tim: https://delta.chat</string>
|
||||
<string name="Name" >Emër</string>
|
||||
<string name="EmailAddress">Adresë email</string>
|
||||
@@ -442,9 +446,9 @@
|
||||
<string name="VerifiedGroup">Grup i verifikuar</string>
|
||||
<string name="Group">Grup</string>
|
||||
<string name="EditedNameWillBeShared">Emri i përpunuar do të ndahet me krejt anëtarët e grupit.</string>
|
||||
<string name="QrShowInviteCode">Shfaq kod QR ftese</string>
|
||||
<string name="E2EEncryptionPreferred">Parapëlqehet fshehtëzim skaj-më-skaj.</string>
|
||||
<string name="OobAddrVerified">%1$s u verifikua.</string>
|
||||
<string name="OobGroupJoined">%1$s u bë pjesë e grupit në mënyrë të sigurt.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s u verifikua, prezantomë …</string>
|
||||
<string name="OobAskJoinVerifiedGroup">Doni të bëheni pjesë e grupit të verifikuar <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
@@ -456,4 +460,23 @@
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s nga unë.</string>
|
||||
<string name="ExampleEmailAddr">user@example.org</string>
|
||||
<string name="QrScanHint">Vendoseni kamerën tuaj mbi kodin QR</string>
|
||||
|
||||
<string name="QrShowVerifyCode">Shfaq kod verifikimi QR</string>
|
||||
<string name="QrVerifyContactTitle">Kod verifikimi QR</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nSkanojeni këtë që të rregullohet një kontakt i verifikuar.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Shfaq kod QR ftese</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">Kod ftese QR</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Skanoje këtë që të bëheni pjesë e një grupi të verifikuar <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Mënyrë prurjesh</string>
|
||||
<string name="FetchModeSaveBattery">Kurseni bateri</string>
|
||||
<string name="FetchModePersistentConnection">Lidhje e qëndrueshme</string>
|
||||
<string name="FetchModeExplain">Kur përdoret mënyra sjellje <![CDATA[<i>]]>Kurseni bateri<![CDATA[</i>]]>, mesazhet e rinj shfaqen menjëherë, nëse aplikacioni gjendet në prapaskenë dhe me një vonesë mesatarisht 30 sekondash, nëse aplikacioni nuk është në përdorim. Kur pajisja gjendet nën mënyrën <em>doze</em>, vonesa mund të jetë më e madhe. Kjo është mënyra parazgjedhje.\n\n<![CDATA[<i>]]>Lidhja e qëndrueshme<![CDATA[</i>]]> është përgjithësisht më e shpejtë, por mund të kërkojë që aplikacioni të lejohet nga sistemi të harxhojë më tepër bateri.\n\nCilën mënyrë prurjesh doni të përdoret?</string>
|
||||
<string name="PermissionCamera">Nëse doni të bëni foto apo doni të skanoni kode QR, lypset hyrje te kamera.</string>
|
||||
<!-- Translators: %1$s will be replaced by the email address -->
|
||||
<string name="ErrCannotLogin">S’bëhet dot hyrje si <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>. Ju lutemi, kontrolloni nëse adresa email dhe fjalëkalimi janë të saktë.</string>
|
||||
<!-- Translators: %1$s will be replaced by the server name (eg. imap.somewhere.org) and %2$s will be replaced by the human-readable response from the server. this response may be a single word or some sentences and may or may not be localized. -->
|
||||
<string name="ErrSeverResponse">Përgjigje nga %1$s: %2$s\n\nDisa shërbime vendosin të dhëna shtesë te kutia juaj postare; ato mund t’i shihni, për shembull, që nga ndërfaqja web. Nëse hasni probleme, konsultohuni me shërbimin tuaj ose me ndonjë shok.</string>
|
||||
</resources>
|
||||
|
||||
@@ -289,6 +289,7 @@
|
||||
<string name="MuteAlways">எப்போதுமே ஊமையாக்கு </string>
|
||||
<string name="DeaddropHint">மறு உத்தரவிற்கான அம்பு குறியை தட்டி அரட்டையை ஆரம்பிக்கவும் </string>
|
||||
<string name="NotYetImplemented">இந்த செயல்பாடு தற்போது இல்லை அல்லது முழுமையடையவில்லை </string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">என்னுடைய டெல்டா அரட்டை செயலியில் இருந்து அனுப்பி உள்ளேன் : https://delta.chat</string>
|
||||
<string name="Name" >பெயர் </string>
|
||||
<string name="EmailAddress">மின் அஞ்சல் முகவரி </string>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<string name="ChatGallery">గ్యాలరీ</string>
|
||||
<string name="ChatCamera">కెమేరా</string>
|
||||
<string name="NoMessages">సందేశాలు లేవు</string>
|
||||
<string name="ForwardedMessage">ఫార్వర్డ్ చేయబడిన సందేసం </string>
|
||||
<string name="ForwardedMessage">ఫార్వర్డ్ చేయబడిన సందేసం</string>
|
||||
<string name="From">నుండీ</string>
|
||||
<string name="NoRecent">ఇటీవల లేవు</string>
|
||||
<string name="TypeMessage">సందేశం</string>
|
||||
@@ -56,7 +56,7 @@
|
||||
<!--contacts view-->
|
||||
<string name="NoContacts">ఇంకా ఏ పరిచయాలూ లేవు.</string>
|
||||
<!--group create view-->
|
||||
<string name="SendMessageTo">సందేశం పంపు </string>
|
||||
<string name="SendMessageTo">సందేశం పంపు</string>
|
||||
<string name="EnterGroupNamePlaceholder">సమూహం పేరు నమోదు చేయి</string>
|
||||
<!--group info view-->
|
||||
<string name="AddMember">సభ్యుడిని జత చేయి</string>
|
||||
@@ -192,19 +192,56 @@
|
||||
<string name="AttachVoiceMessage">మాట సందేశం</string>
|
||||
<string name="FromSelf">నేను</string>
|
||||
<!--Alert messages-->
|
||||
<string name="NoHandleAppInstalled">మీ దగ్గర ఈ ఫైల్ \'%1$s\' రకాన్ని గుర్తించే అప్లికేషన్లు లేవు, దయచేసి గుర్తించేదాన్ని ఒకటి ఇంస్టాల్ చేసి కొనసాగండి </string>
|
||||
<string name="NoHandleAppInstalled">మీ దగ్గర ఈ ఫైల్ \'%1$s\' రకాన్ని గుర్తించే అప్లికేషన్లు లేవు, దయచేసి గుర్తించేదాన్ని ఒకటి ఇంస్టాల్ చేసి కొనసాగండి</string>
|
||||
<string name="ContactAlreadyInGroup">ఈ పరిచయం ఇప్పటికే ఈ సమూహం లో ఉంది.</string>
|
||||
<string name="ForwardMessagesTo">సందేశాలు <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>ఫార్వర్డ్ చేయాలా?</string>
|
||||
<string name="SendMessagesTo">సందేశాలు <![CDATA[ఛ్డాటా[<b>]]>%1$s<![CDATA[</b>]]>కు పంపాలా?</string>
|
||||
<string name="ForwardMessagesTo">సందేశాలు <b>%1$s</b>ఫార్వర్డ్ చేయాలా?</string>
|
||||
<string name="SendMessagesTo">సందేశాలు ఛ్డాటా[<b>%1$s</b>కు పంపాలా?</string>
|
||||
<string name="AreYouSureDeleteThisChat">ఈ చాట్ ను తొలగించాలా? ఈ చాట్ ఇకమీదట చాట్ లిస్ట్ లో చూపించబడదు, సందేశాలు మాత్రం సర్వర్ లో ఉంటాయి.</string>
|
||||
<string name="AreYouSureBlockContact">మీరు ఈ పరిచయాన్ని రద్దుచేయాలని నిర్ణయించుకున్నారా?</string>
|
||||
<string name="AreYouSureDeleteContact">మీరు ఈ పరిచయాన్ని తొలగించాలని నిర్ణయించుకున్నారా?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">డెల్టా చాట్ మీ స్నేహితులతో ఎల్లప్పుడూ కనెక్ట్ అయి ఉండడానికి మీ పరిచాయాల యాక్సస్ కు అనుమతించాలి. </string>
|
||||
<string name="PermissionContacts">డెల్టా చాట్ మీ స్నేహితులతో ఎల్లప్పుడూ కనెక్ట్ అయి ఉండడానికి మీ పరిచాయాల యాక్సస్ కు అనుమతించాలి.</string>
|
||||
<string name="PermissionStorage">డెల్టా చాట్ లొ మీరు వీడియోలు, చిత్రాలు, సంగీతం, మరియు వేరే మీడియా పంపడానికి, భద్రపరుచుకోడానికి మీ డివైజ్ స్టొరేజ్ యాక్సస్ కావాలి.</string>
|
||||
<string name="PermissionOpenSettings">సెట్టింగులు</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">డెల్టా చాట్</string>
|
||||
<string name="AccountSettings">ఖాతా సెట్టింగులు</string>
|
||||
<string name="Password">పాస్వర్డ్</string>
|
||||
<string name="AboutThisProgram">డెల్టా చాట్ గురించి</string>
|
||||
<string name="Deaddrop">పరిచయ అభ్యర్ధనలు</string>
|
||||
<string name="DeaddropInChatlist">చాట్ జాబితాలో పరిచయ అభ్యర్ధనలు చూపించు</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">నా డెల్టా చాట్ మెసెంజర్ ద్వారా పంపబడినది: https://delta.chat</string>
|
||||
<string name="EmailAddress">ఈమెయిల్ చిరునామా</string>
|
||||
<string name="ContactCreated">పరిచయం సృష్టించబడింది</string>
|
||||
<string name="AttachFiles">జతచెసిన ఫైళ్ళు</string>
|
||||
<string name="ErrGroupNameEmpty">సమూహానికి పేరు పెట్టు</string>
|
||||
<string name="E2ECompareKeys">కీలను పోల్చు</string>
|
||||
<string name="DoneHint">పూర్తఅయింది.</string>
|
||||
<string name="HelpUrl">https://delta.chat/en/help</string>
|
||||
<string name="EncryptedMessage">ఎంక్రిప్ట్ చెసిన సందేశం</string>
|
||||
<string name="Encryption">ఎన్క్రిప్షన్</string>
|
||||
<string name="EncrinfoFingerprints">ఫింగర్ప్రింట్స్</string>
|
||||
<string name="Backup">బ్యాకప్</string>
|
||||
<string name="ExportImportHeader">ఎగుమతి & దిగుమతి</string>
|
||||
<string name="IncorrectPassword">తప్పు పాస్వర్డ్</string>
|
||||
<string name="ExportBackup">బ్యాకప్ ఎగుమతి చెయి</string>
|
||||
<string name="ExportPrivateKeys">రహస్య కీలను ఎగుమతి చెయి</string>
|
||||
<string name="ArchiveChat">చాట్ ఆర్చివ్</string>
|
||||
<string name="Archived">ఆర్చివ్ అయినది</string>
|
||||
<string name="Autocrypt">ఆటొక్రిప్ట్</string>
|
||||
<string name="Contact">పరిచయం</string>
|
||||
<string name="Group">సమూహము</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
%2$s is replaced by a the name of the user that made this action.
|
||||
Resulting strings might be "Member Alice added by Bob." or 'Group name changed from "Foo" to "Bar" by Claire.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by %2$s)" or "%2$s: %1$s" -->
|
||||
<string name="ActionByUser">%1$s చే %2$s.</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
Resulting strings might be "Member Alice added by me." or 'Group name changed from "Foo" to "Bar" by me.
|
||||
If you do not find a correct grammar for your language you can just use "%1$s (by me)" or "Me: %1$s" -->
|
||||
<string name="ActionBySelf">%1$s నా ద్వరా</string>
|
||||
<string name="ExampleEmailAddr">user@example.org</string>
|
||||
<string name="FetchMode">వెతికే మోడ్</string>
|
||||
<string name="FetchModeSaveBattery">బ్యాటరి ఆదా</string>
|
||||
</resources>
|
||||
|
||||
@@ -104,6 +104,7 @@
|
||||
<string name="SmartNotificationsSoundAtMost">En çok</string>
|
||||
<string name="SmartNotificationsTimes">kere</string>
|
||||
<string name="SmartNotificationsWithin">içerisinde</string>
|
||||
<string name="SmartNotificationsMinutes">dakikalar</string>
|
||||
<string name="DirectShare">Doğrudan paylaşım</string>
|
||||
<string name="DirectShareInfo">Son söyleşileri paylaşma menüsünde göster</string>
|
||||
<!--cache view-->
|
||||
@@ -283,6 +284,7 @@
|
||||
<string name="ImapPort">İMAP bağlanma noktası</string>
|
||||
<string name="InboxHeadline">Gelen kutusu</string>
|
||||
<string name="OutboxHeadline">Gönderilenler</string>
|
||||
<string name="AdvancedOptions">Gelişmiş Seçenekler...</string>
|
||||
<string name="MyAccountExplain">Bilinen e-posta sağlayıcıları için ek ayarlar otomatik olarak algılanır.</string>
|
||||
<string name="AccountNotConfigured">Hesap düzenlenmedi</string>
|
||||
<string name="AboutThisProgram">Delta Chat Hakkında</string>
|
||||
@@ -294,6 +296,7 @@
|
||||
<string name="AskStartChatWith"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]> ile söyleşi?</string>
|
||||
<string name="DeaddropHint">Söyleşmeye başlamak için yanıt oklarına dokunun.</string>
|
||||
<string name="NotYetImplemented">Bu işlev mevcut değil veya eksik.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Delta Chat Messengerim ile göderildi: https://delta.chat</string>
|
||||
<string name="Name" >Ad</string>
|
||||
<string name="EmailAddress">E-posta adresi</string>
|
||||
@@ -341,6 +344,7 @@
|
||||
<string name="HelpUrl">https://delta.chat/en/help</string>
|
||||
<string name="EncryptedMessage">Şifrelenmiş ileti</string>
|
||||
<string name="Encryption">Şifreleme</string>
|
||||
<string name="EncrinfoE2EAvailable">Uçtan uca şifreleme kullanılabilir.</string>
|
||||
<string name="EncrinfoTransport">En azından sunucuma kadar şifreli taşıma.</string>
|
||||
<string name="EncrinfoNone">Sunucuma şifreleme yok.</string>
|
||||
<string name="EncrinfoFingerprints">Parmak izleri</string>
|
||||
@@ -384,6 +388,8 @@
|
||||
<string name="SelfTalkSubtitle">Kendime gönderdiğim iletiler</string>
|
||||
<string name="QrScan">QR kod tara</string>
|
||||
<string name="QrShow">QR kodu göster</string>
|
||||
<string name="QrScanContainsText">Taranan QR kodu aşağıdaki metni içeriyor:\n\n%1$s</string>
|
||||
<string name="QrScanContainsUrl">Taranan QR kodu aşağıdaki internet adresini içeriyor:\n\n%1$s</string>
|
||||
<string name="OobFingerprint">Parmak izi</string>
|
||||
<string name="OobSecureJoinRequested">%1$s katılıyor.</string>
|
||||
<string name="Autocrypt">Autocrypt</string>
|
||||
@@ -394,4 +400,16 @@
|
||||
<string name="VerifiedGroup">Doğrulanmış grup</string>
|
||||
<string name="Group">Grup</string>
|
||||
<string name="EditedNameWillBeShared">Düzenlenen ad tüm grup üyeleriyle paylaşılacaktır.</string>
|
||||
<string name="E2EEncryptionPreferred">Uçtan uca şifreleme yeğlendi.</string>
|
||||
<string name="OobAddrVerified">%1$s doğrulanmış.</string>
|
||||
<string name="ExampleEmailAddr">user@example.org</string>
|
||||
<string name="QrScanHint">Kameranızı QR kodunun üzerine getirin</string>
|
||||
|
||||
<string name="QrShowVerifyCode">QR doğrulama kodunu göster</string>
|
||||
<string name="QrVerifyContactTitle">QR doğrulama kodu</string>
|
||||
<string name="QrShowInviteCode">QR çağrı kodunu göster</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">QR çağrı kodu</string>
|
||||
<string name="FetchMode">Getirme kipi</string>
|
||||
<string name="FetchModeSaveBattery">Pil tasarrufu</string>
|
||||
<string name="FetchModePersistentConnection">Kalıcı bağlantı</string>
|
||||
</resources>
|
||||
|
||||
@@ -345,8 +345,7 @@
|
||||
<string name="ImapPort">IMAP порт</string>
|
||||
<string name="InboxHeadline">Скринька для вхідних</string>
|
||||
<string name="OutboxHeadline">Скринька для вихідних</string>
|
||||
<string name="MyAccountExplain">Для відомих email-поставників, додаткові налаштування обираються автоматично.</string>
|
||||
<string name="MyAccountExplain2" >Інколи, <![CDATA[<b>]]>IMAP має бути ввімкненим<![CDATA[</b>]]> у верстці email.\n\nУ разі виникнення проблем, спитайте поради у вашого email-поставника або друзів.</string>
|
||||
<string name="MyAccountExplain">Для відомих email-поставників, додаткові налаштування обираються автоматично.<![CDATA[<br/>]]><![CDATA[<br/>]]>Інколи, <![CDATA[<b>]]>IMAP має бути ввімкненим<![CDATA[</b>]]> у верстці email.\n\nУ разі виникнення проблем, спитайте поради у вашого email-поставника або друзів.</string>
|
||||
<string name="AccountNotConfigured">Обліківка не налаштована</string>
|
||||
<string name="AboutThisProgram">Про оповісник</string>
|
||||
<string name="NotSet">Не встановлено</string>
|
||||
@@ -357,6 +356,7 @@
|
||||
<string name="AskStartChatWith">Почати розмову з <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Аби почати розмову, клацніть на стрілки відповіді.</string>
|
||||
<string name="NotYetImplemented">Ця функція є недоступною або незавершеною.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Надіслано за допомогою оповісника Delta Chat: https://delta.chat</string>
|
||||
<string name="Name" >Псевдо</string>
|
||||
<string name="EmailAddress">Адреса e-mail</string>
|
||||
@@ -446,7 +446,7 @@
|
||||
<string name="Contact">Контакт</string>
|
||||
<string name="Group">Спільнота</string>
|
||||
<string name="EditedNameWillBeShared">Кориговане ім\'я пошириться серед усіх членів спільноти.</string>
|
||||
<string name="QrShowInviteCode">Показати QR-код запрошення</string>
|
||||
<string name="OobAddrVerified">%1$sпідтверджено.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$sпідтверджено, привітайтеся ...</string>
|
||||
<string name="QrShowInviteCode">Показати QR-код запрошення</string>
|
||||
</resources>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<string name="UnmuteNotifications">Unmute</string>
|
||||
<string name="Draft">Draft</string>
|
||||
<!--audio view-->
|
||||
<string name="NoAudio">Files added to the music library of your device will appear here.</string>
|
||||
<string name="NoAudio">Files from your music library.</string>
|
||||
<string name="AttachMusic">Music</string>
|
||||
<!--documents view-->
|
||||
<string name="SelectFile">Select File</string>
|
||||
@@ -83,7 +83,7 @@
|
||||
<string name="Default">Default</string>
|
||||
<string name="OnlyIfSilent">Only when silent</string>
|
||||
<string name="ChatBackground">Chat background</string>
|
||||
<string name="SendByEnter">Send with ⏎</string>
|
||||
<string name="SendByEnter">Send with Enter key</string>
|
||||
<string name="Help">Help</string>
|
||||
<string name="Enabled">On</string>
|
||||
<string name="Disabled">Off</string>
|
||||
@@ -115,7 +115,7 @@
|
||||
<!--passcode view-->
|
||||
<string name="Passcode">Passcode Lock</string>
|
||||
<string name="ChangePasscode">Change Passcode</string>
|
||||
<string name="ChangePasscodeInfo">When you set up an additional passcode, a lock icon will appear on the chats page. Tap it to lock the app.\n\nNote: If you forget the passcode, you\'ll need to delete and reinstall the app.</string>
|
||||
<string name="ChangePasscodeInfo">If you set up an additional passcode, a lock icon will appear atop the chat list. Tap it to lock the app.\n\nNote: If you forget the passcode, you\'ll need to delete and reinstall the app.</string>
|
||||
<string name="PasscodePIN">PIN</string>
|
||||
<string name="PasscodePassword">Password</string>
|
||||
<string name="EnterCurrentPasscode">Enter your current passcode</string>
|
||||
@@ -128,7 +128,7 @@
|
||||
<string name="AutoLockInfo">Require passcode if away for a time.</string>
|
||||
<string name="UnlockFingerprint">Unlock with fingerprint</string>
|
||||
<string name="FingerprintInfo">Confirm fingerprint to continue</string>
|
||||
<string name="FingerprintNotRecognized">Fingerprint not recognized. Try again</string>
|
||||
<string name="FingerprintNotRecognized">Fingerprint not recognized. Try again.</string>
|
||||
<!--photo gallery view-->
|
||||
<string name="SaveToGallery">Save to \"Gallery\"</string>
|
||||
<string name="Of">%1$d of %2$d</string>
|
||||
@@ -194,7 +194,7 @@
|
||||
<string name="AttachVoiceMessage">Voice message</string>
|
||||
<string name="FromSelf">Me</string>
|
||||
<!--Alert messages-->
|
||||
<string name="NoHandleAppInstalled">No installed app could open the filetype \'%1$s\', please install one to continue.</string>
|
||||
<string name="NoHandleAppInstalled">Please install an app that can handle \'%1$s\' files to continue.</string>
|
||||
<string name="ContactAlreadyInGroup">The contact is already in this group.</string>
|
||||
<string name="ForwardMessagesTo">Forward selected messages to <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="SendMessagesTo">Send messages to <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
@@ -202,9 +202,9 @@
|
||||
<string name="AreYouSureBlockContact">Are you sure you want to block this contact?</string>
|
||||
<string name="AreYouSureDeleteContact">Are you sure you want to delete this contact?</string>
|
||||
<!--permissions-->
|
||||
<string name="PermissionContacts">Access to contacts needed to connect with your friends across all your devices.</string>
|
||||
<string name="PermissionStorage">Storage access needed to send and save photos, videos, music, and other media.</string>
|
||||
<string name="PermissionNoAudio">Microphone access needed to record voice messages.</string>
|
||||
<string name="PermissionContacts">Grant access to contacts if you want to sync friends across all your devices.</string>
|
||||
<string name="PermissionStorage">Grant storage access if you want to send and save photos, videos, music, and other media.</string>
|
||||
<string name="PermissionNoAudio">Grant microphone access to record voice messages.</string>
|
||||
<string name="PermissionOpenSettings">Settings</string>
|
||||
<!--Intro view-->
|
||||
<string name="Intro1Headline">Delta Chat</string>
|
||||
@@ -250,8 +250,8 @@
|
||||
<item quantity="other">%d messages</item>
|
||||
</plurals>
|
||||
<plurals name="AreYouSureDeleteMessages">
|
||||
<item quantity="one">Delete %d message? It will also be deleted from the server.</item>
|
||||
<item quantity="other">Delete %d messages? These will also be deleted from the server.</item>
|
||||
<item quantity="one">Delete %d message here and from the server.</item>
|
||||
<item quantity="other">Delete %d messages here and from the server.</item>
|
||||
</plurals>
|
||||
<!-- Translators: The first string placeholder gets replaced with the
|
||||
text "%d new messages", so the complete sentence would be e.g.
|
||||
@@ -304,7 +304,7 @@
|
||||
<string name="AccountSettings">Account settings</string>
|
||||
<string name="MyAccount">My account</string>
|
||||
<string name="MyName">My name</string>
|
||||
<string name="MyNameExplain">Your name, as shown to the recipients. If left blank, only your email address will be sent.</string>
|
||||
<string name="MyNameExplain">Your name, as shown to recipients. If left blank, only your email address will be sent.</string>
|
||||
<string name="Password">Password</string>
|
||||
<string name="SmtpPassword">SMTP password</string>
|
||||
<string name="FromAbove">From above</string>
|
||||
@@ -317,8 +317,15 @@
|
||||
<string name="ImapPort">IMAP port</string>
|
||||
<string name="InboxHeadline">Inbox</string>
|
||||
<string name="OutboxHeadline">Outbox</string>
|
||||
<string name="MyAccountExplain">For known email providers, additional settings are determinated automatically.</string>
|
||||
<string name="MyAccountExplain2" >Sometimes, <![CDATA[<b>]]>IMAP needs to be enabled<![CDATA[</b>]]> in the email web frontend.\n\nConsult your email provider or friends if you run into problems.</string>
|
||||
<string name="AdvancedOptions">Advanced Options...</string>
|
||||
<string name="MyAccountExplain">For known email providers, additional settings are determinated automatically.
|
||||
<![CDATA[<br/>]]>
|
||||
<![CDATA[<br/>]]>
|
||||
Sometimes, <![CDATA[<b>]]>IMAP needs to be enabled<![CDATA[</b>]]> in the email web frontend.\n\nConsult your email provider or friends if you run into problems.</string>
|
||||
<string name="MyAccountExplainGmail">For <![CDATA[<b>]]>GMail<![CDATA[</b>]]> Accounts you either need to create an
|
||||
<![CDATA[<a href="https://security.google.com/settings/security/apppasswords">]]>App-Password<![CDATA[</a>]]> if you have 2FA enabled.
|
||||
<![CDATA[<br/>]]>If this settings is not available, you need to enable <![CDATA[<a href="https://myaccount.google.com/lesssecureapps">]]>Less Secure Apps<![CDATA[</a>]]>
|
||||
</string>
|
||||
<string name="AccountNotConfigured">Account not configured</string>
|
||||
<string name="AboutThisProgram">About Delta Chat</string>
|
||||
<string name="NotSet">Not set</string>
|
||||
@@ -329,6 +336,7 @@
|
||||
<string name="AskStartChatWith">Chat with <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="DeaddropHint">Tap the reply-arrows to start chatting.</string>
|
||||
<string name="NotYetImplemented">This function is not available or incomplete.</string>
|
||||
<!-- Translators: The URL should not be localized, it is not clear which languuage the receiver prefers and the language will be detected on the server -->
|
||||
<string name="DefaultStatusText">Sent with my Delta Chat Messenger: https://delta.chat</string>
|
||||
<string name="Name" >Name</string>
|
||||
<string name="EmailAddress">Email address</string>
|
||||
@@ -382,7 +390,7 @@
|
||||
<string name="EncrinfoNone">No encryption to my server.</string>
|
||||
<string name="EncrinfoFingerprints">Fingerprints</string>
|
||||
<string name="Backup">Backup</string>
|
||||
<string name="ImportBackupExplain2">To import a backup, copy a backup to <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> and reinstall the app.</string>
|
||||
<string name="ImportBackupExplain2">To import a backup, copy it to <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> and reinstall the app.</string>
|
||||
<string name="ReadReceiptMailBody">This is a read receipt for the message \"%1$s\".\n\nIt means that message was displayed on the recipient\'s device, not necessarily that the content was read.</string>
|
||||
<string name="ReadReceipt">Read receipt</string>
|
||||
<string name="NameAndStatus">Name and status</string>
|
||||
@@ -391,7 +399,7 @@
|
||||
<string name="MsgGroupImageDeleted">Group image deleted.</string>
|
||||
<string name="AskDeleteGroupImage">Are you sure to delete the group image?\n\nThis will affect all devices of all group members.</string>
|
||||
<string name="ExportImportHeader">Export and import</string>
|
||||
<string name="ImportExportExplain">Exported files will contain your end-to-end setup! Keep them in a safe place or delete them as soon as possible.</string>
|
||||
<string name="ImportExportExplain">Exported files will contain your end-to-end Autocrypt setup! Keep them in a safe place or delete them as soon as possible.</string>
|
||||
<string name="EnterPasswordToContinue">Enter the password for %1$s to continue:</string>
|
||||
<string name="IncorrectPassword">Incorrect password.</string>
|
||||
<string name="ImportBackupAsk">Backup found at <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.\n\nDo you want to import and use all data and settings from it?</string>
|
||||
@@ -413,7 +421,7 @@
|
||||
<string name="Never">Never</string>
|
||||
<string name="AutocryptKeyTransferInitiate">Send Autocrypt Setup Message</string>
|
||||
<string name="AutocryptKeyTransfer">Autocrypt Setup Message</string>
|
||||
<string name="AutocryptKeyTransferMsgBeforeSend">An <![CDATA[<i>]]>Autocrypt Setup Message<![CDATA[</i>]]> securely shares your end-to-end setup with other Autocrypt-compliant devices.\n\nThe setup will be encrypted by a setup code which is displayed here and must be typed on the other device.</string>
|
||||
<string name="AutocryptKeyTransferMsgBeforeSend">An <![CDATA[<i>]]>Autocrypt Setup Message<![CDATA[</i>]]> securely shares your end-to-end setup with other Autocrypt-compliant apps.\n\nThe setup will be encrypted by a setup code which is displayed here and must be typed on the other device.</string>
|
||||
<string name="AutocryptKeyTransferMsgAfterSend">Your setup has been sent to yourself. Switch to the other device and open the setup message. You should be prompted for a setup code. Type the following digits into the prompt:\n\n%1$s\n\nOnce you\'re done, your other device will be ready to use Autocrypt.</string>
|
||||
<string name="AutocryptSetupMessageSubject">Autocrypt Setup Message</string>
|
||||
<string name="AutocryptSetupMessageGeneralBody">This is the Autocrypt Setup Message used to transfer your end-to-end setup between clients.\n\nTo decrypt and use your setup, open the message in an Autocrypt-compliant client and enter the setup code presented on the generating device.</string>
|
||||
@@ -425,17 +433,17 @@
|
||||
<string name="SelfTalkSubtitle">Messages I sent to myself</string>
|
||||
<string name="QrScan">Scan QR code</string>
|
||||
<string name="QrShow">Show QR code</string>
|
||||
<string name="QrScanContainsText">The scanned QR code contains the following text:\n\n%1$s</string>
|
||||
<string name="QrScanContainsUrl">The scanned QR code contains the following URL:\n\n%1$s</string>
|
||||
<string name="QrScanContainsText">Scanned QR code text:\n\n%1$s</string>
|
||||
<string name="QrScanContainsUrl">Scanned QR code URL:\n\n%1$s</string>
|
||||
<string name="OobFingerprint">Fingerprint</string>
|
||||
<string name="OobFingerprintAskOob">Verify contact and start chatting with <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="OobFingerprintOk">Contact <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> verified. Start chatting?</string>
|
||||
<string name="OobFingerprintMismatch">The scanned fingerprint does <![CDATA[<b>]]>not match<![CDATA[</b>]]> the fingerprint last seen for <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.</string>
|
||||
<string name="OobFingerprintWithoutAddr">This QR code contains a fingerprint but no e-mail address.\n\nFor an out-of-band-verification, please establish an encrpyted connection to the recipient first.</string>
|
||||
<string name="OobFingerprintWithoutAddr">This QR code contains a fingerprint but no email address.\n\nFor an out-of-band-verification, please establish an encrpyted connection to the recipient first.</string>
|
||||
<string name="OobSecureJoinRequested">%1$s joins.</string>
|
||||
<string name="CannotDecryptBody">This message cannot be decrypted.\n\n• It might already help to simply reply to this message and ask the sender to send the message again.\n\n• In case you re-installed Delta Chat or another E-Mail-program on this or another device you may want to send an Autocrypt Setup Message from there.</string>
|
||||
<string name="CannotDecryptBody">This message cannot be decrypted.\n\n• It might already help to simply reply to this message and ask the sender to send the message again.\n\n• In case you re-installed Delta Chat or another email program on this or another device you may want to send an Autocrypt Setup Message from there.</string>
|
||||
<string name="Autocrypt">Autocrypt</string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> is a new and open specification for e-mail end-to-end encryption.\n\nYour end-to-end setup is created automatically as needed and you can transfer it between devices with <![CDATA[<i>]]>Autocrypt Setup Messages.<![CDATA[</i>]]></string>
|
||||
<string name="AutocryptExplain"><![CDATA[<i>]]>Autocrypt<![CDATA[</i>]]> is a new and open specification for automatic end-to-end email encryption.\n\nYour end-to-end setup is created automatically as needed and you can transfer it between devices with <![CDATA[<i>]]>Autocrypt Setup Messages.<![CDATA[</i>]]></string>
|
||||
<string name="NewVerifiedGroup">New verified group</string>
|
||||
<string name="SharedChats">Shared chats</string>
|
||||
<string name="VerifiedContact">Verified contact</string>
|
||||
@@ -445,6 +453,7 @@
|
||||
<string name="EditedNameWillBeShared">The edited name will be shared with all group members.</string>
|
||||
<string name="E2EEncryptionPreferred">End-to-end encryption preferred.</string>
|
||||
<string name="OobAddrVerified">%1$s verified.</string>
|
||||
<string name="OobGroupJoined">%1$s securely joined the group.</string>
|
||||
<string name="OobAddrVerifiedIntroduceMyself">%1$s verified, introduce myself …</string>
|
||||
<string name="OobAskJoinVerifiedGroup">Do you want to join the verified group <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<!-- Translators: %1$s is replaced by an action, eg. MsgMemberAddedToGroup, MsgMemberRemovedFromToGroup, MsgGroupNameChanged or MsgGroupImageChanged. If the action ends with a full stop, this is removed.
|
||||
@@ -461,9 +470,18 @@
|
||||
|
||||
<string name="QrShowVerifyCode">Show QR verify code</string>
|
||||
<string name="QrVerifyContactTitle">QR verify code</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nScan this to setup a verified contact.</string>
|
||||
<string name="QrVerifyContactHint"><![CDATA[<b>]]>%1$s<![CDATA[</b>]]>\nScan this to set up a verified contact.</string>
|
||||
|
||||
<string name="QrShowInviteCode">Show QR invite code</string>
|
||||
<string name="QrJoinVerifiedGroupTitle">QR invite code</string>
|
||||
<string name="QrJoinVerifiedGroupHint">Scan this to join the verified group <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>.</string>
|
||||
<string name="FetchMode">Fetch mode</string>
|
||||
<string name="FetchModeSaveBattery">Save battery</string>
|
||||
<string name="FetchModePersistentConnection">Persistent connection</string>
|
||||
<string name="FetchModeExplain">When using the fetch mode <![CDATA[<i>]]>Save battery<![CDATA[</i>]]>, new messages appear at once if the app is in foreground and with an average delay of 30 seconds if the app is not used. When the device is in doze mode, the delay may be longer. This is the default mode.\n\n<![CDATA[<i>]]>Persistent connection<![CDATA[</i>]]> is typically faster but may require the app to be whitelisted in the system settings to consume more battery.\n\nWhich fetch mode do you want to use?</string>
|
||||
<string name="PermissionCamera">Access to the camera is needed if you want to take photos or if you want to scan QR codes.</string>
|
||||
<!-- Translators: %1$s will be replaced by the email address -->
|
||||
<string name="ErrCannotLogin">Cannot login as <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>. Please check if the email-address and the password are correct.</string>
|
||||
<!-- Translators: %1$s will be replaced by the server name (eg. imap.somewhere.org) and %2$s will be replaced by the human-readable response from the server. this response may be a single word or some sentences and may or may not be localized. -->
|
||||
<string name="ErrSeverResponse">Response from %1$s: %2$s\n\nSome providers place additional information in your inbox; you can check them it eg. in the web frontend. Consult your provider or friends if you run into problems.</string>
|
||||
</resources>
|
||||
|
||||
@@ -59,7 +59,7 @@ Install Development Environment
|
||||
Now the build should succeed - but the app still misses the native part.
|
||||
|
||||
6. Download Android NDK Revision 14b from
|
||||
[NDK Archives](https://developer.android.com/ndk/downloads/older_releases.html)
|
||||
[NDK Archives](https://developer.android.com/ndk/downloads/older_releases)
|
||||
(Newer releases shall not be used currently, they are not compatible,
|
||||
see issues #197, #220, #248) and unzip the archive which contains a single folder
|
||||
called `android-ndk-r...`; move this folder eg. to `~/android-ndk-r...`
|
||||
|
||||
@@ -16,6 +16,7 @@ TXPREFIX="translations/delta-chat-android.stringsxml/"
|
||||
SRCPREFIX="../MessengerProj/src/main/res/values"
|
||||
|
||||
cp "${TXPREFIX}ca.xml" "${SRCPREFIX}-ca/strings.xml"
|
||||
cp "${TXPREFIX}da.xml" "${SRCPREFIX}-da/strings.xml"
|
||||
cp "${TXPREFIX}de.xml" "${SRCPREFIX}-de/strings.xml"
|
||||
# "${TXPREFIX}en.xml" "${SRCPREFIX}/strings.xml" # we do not copy the source as the source cannot be modified at Trasifex
|
||||
cp "${TXPREFIX}es.xml" "${SRCPREFIX}-es/strings.xml"
|
||||
|
||||
@@ -8,6 +8,7 @@ TXPREFIX="translations/delta-chat-android.stringsxml/"
|
||||
SRCPREFIX="../MessengerProj/src/main/res/values"
|
||||
|
||||
cp "${SRCPREFIX}-ca/strings.xml" "${TXPREFIX}ca.xml"
|
||||
cp "${SRCPREFIX}-da/strings.xml" "${TXPREFIX}da.xml"
|
||||
cp "${SRCPREFIX}-de/strings.xml" "${TXPREFIX}de.xml"
|
||||
cp "${SRCPREFIX}/strings.xml" "${TXPREFIX}en.xml" # also copy back the source, this is the only way to update the english strings
|
||||
cp "${SRCPREFIX}-es/strings.xml" "${TXPREFIX}es.xml"
|
||||
|
||||
Reference in New Issue
Block a user