diff --git a/CHANGELOG.md b/CHANGELOG.md index abc858022..a3e4940a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,60 @@ ## Unreleased +* target Android 15 +* improve readability of info messages in dark mode +* fix Direct Share shortcuts + +## v2.11.0 +2025-08 + +* add "After 1 year" option to disappearing messages +* improve image quality when setting group avatars +* add Estonian translation, update other translations +* allow to clone email chats +* fix some small bugs +* update to core 2.11.0 + +## v2.10.0 +2025-08 + +* fix "Archived" item's layout in chat-list +* don't enlarge "Saved Messages" and "Devices Messages" avatars on click +* share email address for email contacts instead of vCard +* open existing encrypted chat when opening a mailto link or clicking an email address in a message bubble +* update to core 2.10.0 + +## v2.9.0 +2025-07 + +* hide contact email addresses in search results +* disable non-functional message editing and ephemeral messages timer settings in classic email thread chat +* don't enlarge email chats avatar placeholder +* improve message date/status footer layout, also in RTL languages +* display correct text when receiving a "Disappearing messages enabled" system message +* Update to core 2.9.0 + +## v2.8.0 +2025-07 + +* Profiles focus on recognizing contacts +* See the number of media directly in the profile, no need to tap around * Clearer app lists by removing redundant "App" subtitle * New button for quick access to the apps sent in current chat * New icon for the in-chat apps button * Improve hint for app drafts * Add Text-To-Speech (TTS) support for in-chat apps +* New icon for the QR icon +* Start rebuilding the experimental broadcast lists + into proper channels - note that this is work-in-progress +* Improved separation between unencrypted chats/contacts and encrypted ones, avoiding mixing of encrypted and unencrypted messages in the same chat +* Removed padlocks, as encrypted is the default "normal" state. Instead, unencrypted email is marked with a small email / letter (✉️) icon +* Classic email chats/threads get a big email / letter icon making it easy to recognize +* After some time, add a device message asking to donate. Can't wait? Donate today at https://delta.chat/donate +* Allow to sort profiles up in the profile switcher +* Add new option to create unencrypted email thread +* Green checkmarks are removed where they mostly refer to guaranteed encryption, which is the default now. They are still used for profile's "Introduced by" +* Update to core 2.8.0 ## v1.58.4 2025-05 diff --git a/build.gradle b/build.gradle index effdc6bcd..dd4709a03 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'com.android.application' version '8.5.2' + id 'com.android.application' version '8.11.1' id 'com.google.gms.google-services' version '4.4.1' } @@ -15,7 +15,7 @@ repositories { android { namespace "org.thoughtcrime.securesms" flavorDimensions "none" - compileSdk 34 + compileSdk 35 // Set NDK version to strip native libraries. // Even though we compile our libraries outside Gradle with `scripts/ndk-make.sh`, @@ -27,14 +27,14 @@ android { useLibrary 'org.apache.http.legacy' defaultConfig { - versionCode 722 - versionName "1.58.4" + versionCode 730 + versionName "2.11.0" applicationId "com.b44t.messenger" multiDexEnabled true minSdkVersion 21 - targetSdkVersion 34 + targetSdkVersion 35 vectorDrawables.useSupportLibrary = true @@ -149,9 +149,9 @@ android { dependencies { implementation 'androidx.sharetarget:sharetarget:1.2.0' - implementation 'androidx.webkit:webkit:1.12.1' + implementation 'androidx.webkit:webkit:1.14.0' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.appcompat:appcompat:1.7.1' implementation 'com.google.android.material:material:1.12.0' implementation 'androidx.legacy:legacy-support-v13:1.0.0' implementation ('androidx.preference:preference:1.2.1') { @@ -159,7 +159,7 @@ dependencies { exclude group: 'androidx.lifecycle', module:'lifecycle-viewmodel-ktx' } implementation 'androidx.legacy:legacy-preference-v14:1.0.0' - implementation 'androidx.exifinterface:exifinterface:1.3.7' + implementation 'androidx.exifinterface:exifinterface:1.4.1' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-common-java8:2.6.2' implementation 'androidx.lifecycle:lifecycle-viewmodel:2.6.2' @@ -174,51 +174,47 @@ dependencies { implementation ('com.journeyapps:zxing-android-embedded:4.3.0') { transitive = false } // QR Code scanner implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.1' // used as JSON library implementation 'com.google.code.gson:gson:2.12.1' // used as JSON library. - implementation "me.leolin:ShortcutBadger:1.1.16" // display messagecount on the home screen icon. - implementation 'com.jpardogo.materialtabstrip:library:1.0.9' // used in the emoji selector for the tab selection. implementation 'com.github.Baseflow:PhotoView:2.3.0' // does the zooming on photos / media - implementation 'com.github.penfeizhou.android.animation:awebp:3.0.2' // animated webp support. + implementation 'com.github.penfeizhou.android.animation:awebp:3.0.5' // animated webp support. implementation 'com.caverock:androidsvg-aar:1.4' // SVG support. - implementation 'com.github.bumptech.glide:glide:4.12.0' - annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' + implementation 'com.github.bumptech.glide:glide:4.16.0' + annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' annotationProcessor 'androidx.annotation:annotation:1.9.1' - implementation 'com.makeramen:roundedimageview:2.1.0' // crops the avatars to circles - implementation 'com.pnikosis:materialish-progress:1.5' // used only in the "Progress Wheel" in Share Activity. + implementation 'com.makeramen:roundedimageview:2.3.0' // crops the avatars to circles implementation 'com.github.amulyakhare:TextDrawable:558677ea31' // number of unread messages, // the one-letter circle for the contacts (when there is not avatar) and a white background. implementation 'com.googlecode.mp4parser:isoparser:1.0.6' // MP4 recoding; upgrading eg. to 1.1.22 breaks recoding, however, i have not investigated further, just reset to 1.0.6 - implementation ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') { // for the zooming on photos / media + implementation ('com.davemorrissey.labs:subsampling-scale-image-view:3.10.0') { // for the zooming on photos / media exclude group: 'com.android.support', module: 'support-annotations' } - implementation 'com.annimon:stream:1.1.8' // brings future java streams api to SDK Version < 24 // Replacement for ContentResolver // that protects against the Surreptitious Sharing attack. // implementation 'de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0' - gplayImplementation('com.google.firebase:firebase-messaging:24.1.0') { // for PUSH notifications + gplayImplementation('com.google.firebase:firebase-messaging:24.1.2') { // for PUSH notifications, don't upgrade: v25.0.0 requires minSdk>=23 exclude group: 'com.google.firebase', module: 'firebase-core' exclude group: 'com.google.firebase', module: 'firebase-analytics' exclude group: 'com.google.firebase', module: 'firebase-measurement-connector' } testImplementation 'junit:junit:4.13.2' - testImplementation 'org.assertj:assertj-core:1.7.1' - testImplementation 'org.mockito:mockito-core:1.9.5' - testImplementation 'org.powermock:powermock-api-mockito:1.6.1' - testImplementation 'org.powermock:powermock-module-junit4:1.6.1' - testImplementation 'org.powermock:powermock-module-junit4-rule:1.6.1' - testImplementation 'org.powermock:powermock-classloading-xstream:1.6.1' + testImplementation 'org.assertj:assertj-core:3.27.3' + testImplementation 'org.mockito:mockito-core:5.18.0' + testImplementation 'org.powermock:powermock-api-mockito:1.7.4' + testImplementation 'org.powermock:powermock-module-junit4:2.0.9' + testImplementation 'org.powermock:powermock-module-junit4-rule:2.0.9' + testImplementation 'org.powermock:powermock-classloading-xstream:2.0.9' - androidTestImplementation 'androidx.test:runner:1.6.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' - androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.6.1' - androidTestImplementation 'androidx.test:rules:1.6.1' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' + androidTestImplementation 'androidx.test:runner:1.7.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0' + androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.7.0' + androidTestImplementation 'androidx.test:rules:1.7.0' + androidTestImplementation 'androidx.test.ext:junit:1.3.0' androidTestImplementation 'com.android.support:support-annotations:28.0.0' - androidTestImplementation ('org.assertj:assertj-core:1.7.1') { + androidTestImplementation ('org.assertj:assertj-core:3.27.3') { exclude group: 'org.hamcrest', module: 'hamcrest-core' } } diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png index 55364bacd..35a9def21 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png index e165558ef..8d9bd84c4 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png index a6978fad7..f2b649d88 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png index ae269dd69..6d783fd5e 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png index 352221329..92478750a 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png deleted file mode 100644 index 85ae92146..000000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png deleted file mode 100644 index 4e750da26..000000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png deleted file mode 100644 index 2b87d8e6b..000000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png and /dev/null differ diff --git a/flake.nix b/flake.nix index 856e70f56..a7b137f39 100644 --- a/flake.nix +++ b/flake.nix @@ -15,7 +15,7 @@ pkgs = import nixpkgs { inherit system overlays; }; android-sdk = android.sdk.${system} (sdkPkgs: with sdkPkgs; [ - build-tools-34-0-0 + build-tools-35-0-0 cmdline-tools-latest platform-tools platforms-android-34 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 43a6e163d..57939822b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/jni/Android.mk b/jni/Android.mk index 65a4d0ad9..286ed6c3d 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -31,5 +31,6 @@ LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -ffast-math -D__STDC_CONSTANT_MACROS LOCAL_SRC_FILES := dc_wrapper.c +LOCAL_LDFLAGS += -Wl,--build-id=none include $(BUILD_SHARED_LIBRARY) diff --git a/jni/dc_wrapper.c b/jni/dc_wrapper.c index 9d9cd2cdc..525937ae1 100644 --- a/jni/dc_wrapper.c +++ b/jni/dc_wrapper.c @@ -1261,6 +1261,12 @@ JNIEXPORT jint Java_com_b44t_messenger_DcChat_getColor(JNIEnv *env, jobject obj) } +JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isEncrypted(JNIEnv *env, jobject obj) +{ + return dc_chat_is_encrypted(get_dc_chat(env, obj))!=0; +} + + JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isUnpromoted(JNIEnv *env, jobject obj) { return dc_chat_is_unpromoted(get_dc_chat(env, obj))!=0; @@ -1290,11 +1296,6 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isProtected(JNIEnv *env, jobje return dc_chat_is_protected(get_dc_chat(env, obj))!=0; } -JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isProtectionBroken(JNIEnv *env, jobject obj) -{ - return dc_chat_is_protection_broken(get_dc_chat(env, obj))!=0; -} - JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isSendingLocations(JNIEnv *env, jobject obj) { @@ -1850,6 +1851,12 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcContact_isVerified(JNIEnv *env, job } +JNIEXPORT jboolean Java_com_b44t_messenger_DcContact_isKeyContact(JNIEnv *env, jobject obj) +{ + return dc_contact_is_key_contact(get_dc_contact(env, obj))==1; +} + + JNIEXPORT jint Java_com_b44t_messenger_DcContact_getVerifierId(JNIEnv *env, jobject obj) { return dc_contact_get_verifier_id(get_dc_contact(env, obj)); diff --git a/scripts/ndk-make.sh b/scripts/ndk-make.sh index 7812b0fea..c2fffe1e6 100755 --- a/scripts/ndk-make.sh +++ b/scripts/ndk-make.sh @@ -50,6 +50,14 @@ if test -z "$ANDROID_NDK_ROOT"; then exit 1 fi +# for reproducible build: +export RUSTFLAGS="-C link-args=-Wl,--build-id=none --remap-path-prefix=$HOME/.cargo= --remap-path-prefix=$(realpath $(dirname $(dirname "$0")))=" +export SOURCE_DATE_EPOCH=1 +# always use the same path to NDK: +rm -f /tmp/android-ndk-root +ln -s "$ANDROID_NDK_ROOT" /tmp/android-ndk-root +ANDROID_NDK_ROOT=/tmp/android-ndk-root + echo Setting CARGO_TARGET environment variables. if test -z "$NDK_HOST_TAG"; then @@ -66,11 +74,9 @@ if test -z "$NDK_HOST_TAG"; then fi if test -z "$CARGO_TARGET_DIR"; then - CARGO_TARGET_DIR=target + export CARGO_TARGET_DIR=/tmp/deltachat-build fi -unset RUSTFLAGS - TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$NDK_HOST_TAG" export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang" export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/aarch64-linux-android21-clang" @@ -154,8 +160,6 @@ if test -z $1 || test $1 = x86_64; then cp "$CARGO_TARGET_DIR/x86_64-linux-android/$RELEASE/libdeltachat.a" "$jnidir/x86_64" fi -rm -fr "$TMPLIB" - echo -- ndk-build -- cd ../.. diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 11488fc12..03c7426cd 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -288,6 +288,10 @@ android:theme="@style/TextSecure.LightNoActionBar" android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/> + + Why does Delta Chat integrate with centralized proprietary Apple/Google push services? -
  • Encryption and Security +
  • Encryption and Security @@ -90,7 +87,7 @@
    • Jaká oprávnění Delta Chat potřebuje?
    • Pracuje Delta Chat s mým poskytovatelem e-mailu?
    • -
    • I want to manage my own e-mail server for Delta Chat. What do you recommend?
    • +
    • I want to manage my own server for Delta Chat. What do you recommend?
    • Proč musím Delta Chatu zadat mé e-mailové heslo? Je to bezpečné?
    • Jaké zprávy Delta Chat zobrazuje?
    • Umí Delta Chat pracovat s e-maily v HTML?
    • @@ -722,10 +719,10 @@ that achieves “instant delivery” of messages for all chatmail servers including a potential one you might setup yourself without our permission. Welcome to the power of the interoperable and massive chatmail and e-mail system :)

      -

      +

      - Encryption and Security + Encryption and Security

      @@ -738,18 +735,26 @@ Welcome to the power of the interoperable and massive chatmail and e-mail system -

      Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

      +

      Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

      -

      Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

      +
        +
      • +

        Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

        +
      • +
      • +

        Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

        +
      • +
      • +

        Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

        +
      • +
      + +

      Delta Chat does not query, publish or interact with any OpenPGP key servers.

      @@ -759,28 +764,37 @@ guarantee end-to-end encrypted messages.

      -

      All end-to-end encrypted messages carry a padlock:

      - -

      padlock in bubble

      - -

      End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

      - -

      green checkmark in title

      +

      All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

      -

      +

      - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

      -

      If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

      +

      If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

      -

      If you are together in person, -you can show a QR code to your chat partner.

      +

      If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

      + +

      + + + How can I establish a chat with a new contact? + + +

      + +

      You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

      • @@ -789,141 +803,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

      • -

        For direct 1:1 chat invitations, +

        For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

      -

      Let your chat partner scan the QR image +

      Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

      -

      Now wait while Secure-Join network messages are exchanged between both devices.

      +

      Now wait while end-to-end encryption is getting established.

      • -

        If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

        +

        If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

      • -

        If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

        +

        If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

      Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

      +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

      - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

      -

      Chat titles with green checkmarks +

      A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

      - -

      Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

      -

      Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

      -

      For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

      -

      - - - A contact “sent a message from another device”, what can i do? - - -

      - -

      Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

      - -

      If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

      - -

      Your contact is using Delta Chat on a second device (phone or laptop)

      - -

      If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

      - -

      Your contact reinstalled Delta Chat using their old account login

      - -

      If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

      - -

      If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

      - -

      Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

      - -

      If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

      - -

      Your contact stopped using Delta Chat entirely

      - -

      Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

      - -

      In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

      - -

      If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

      -

      @@ -948,8 +881,7 @@ and attachment metadata such as filenames.

      Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

      OpenPGP is not insecure by itself. @@ -970,7 +902,7 @@ which was thankfully adopted in summer 2023.

      - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

      @@ -1013,17 +945,15 @@ as defined by the Autocrypt Level 1 specification.

      - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

      -

      Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

      +

      If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

      Delta Chat by default uses strict TLS encryption @@ -1035,10 +965,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

      @@ -1048,25 +974,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

      -

      Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

      +

      Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

      + +

      E-mail Servers can therefore only see

        -
      • Subject line
      • -
      • Group avatar and name
      • -
      • MDN (read receipt) requests (Chat-Disposition-Notification-To)
      • -
      • Disappearing message timer (Ephemeral-Timer)
      • -
      • Chat-Group-Member-Removed, Chat-Group-Member-Added
      • -
      • Secure-Join header containing secure join commands
      • -
      • Notification about enabling location streaming
      • -
      • WebRTC room URL
      • +
      • +

        the message date,

        +
      • +
      • +

        sender and receiver addresses

        +
      • +
      • +

        and message size.

        +
      -

      E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

      +

      All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

      @@ -1078,96 +1004,34 @@ deliver messages to recipient’s devices.

      Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

      +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

      -

      +

      - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

      -

      You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

      - -

      - - - How can I check the encryption status of messages? - - -

      +

      No, not yet.

      -

      A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

      - -

      - - - Why do I see unencrypted messages? - - -

      +

      The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

      -

      If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

      - -

      - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

      - -

      If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

      - -

      - - - How can I ensure message end-to-end encryption and deletion? - - -

      - -

      The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

      - -

      Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

      - -

      If you don’t need a longer-lived copy of your messages on the server, -you can also turn on “delete messages from server automatically”.

      +

      Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

      @@ -1177,45 +1041,52 @@ you can also turn on “delete messages from server automatica

      -

      No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

      No, not yet.

      + +

      Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

      +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

      -

      Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

      - -

      It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

      +

      We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

      -

      +

      - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

      -

      It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

      +

      No, not yet.

      -

      In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

      +

      Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

      + +

      + + + How can I manually check encryption information? + + +

      + +

      You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

      @@ -1250,7 +1121,7 @@ from most recent to older:

    • 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

        @@ -1496,9 +1367,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
      • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
      • -
      • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
      • +
      • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

      @@ -1582,21 +1454,10 @@ this way, you will have a new random Jitsi room every time you call someone.

    • -
        -
      • With a Broadcast List you can send a message to many recipients at once; when -they reply to you, you get the reply in your direct 1:1 chat with them. The -recipients can’t see each other.
      • -
      • Technically, it is an E-Mail with many recipients in BCC.
      • -
      • You can turn on the feature in the “experimental features” section in the -advanced settings. Then you can create a Broadcast List from the “New Chat” -dialog.
      • -
      • In case you are using more than one device, Broadcast Lists are currently not -synced between them.
      • -
      • Messages sent to broadcast lists are not encrypted. Encryption would break -anonymity, because then all recipients would know who else received it -(Sending individual mails to everyone would be worse for rate limit and network -consumption reason).
      • -
      +

      With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

      @@ -1653,6 +1514,11 @@ DeltaChat. To je něco co za běžných okolností dělá Delta Chat sám.

      +

      Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

      +
      1. Change your address in “Settings → Advanced → Password and Account” and @@ -1755,19 +1621,19 @@ Nicméně, někteří poskytovatelé vyžadují ke správnému chodu speciální podrobnější popis je na Provider Overview

    -

    +

    - I want to manage my own e-mail server for Delta Chat. What do you recommend? + I want to manage my own server for Delta Chat. What do you recommend?

    diff --git a/src/main/assets/help/de/help.html b/src/main/assets/help/de/help.html index 0535fb3cc..542853d39 100644 --- a/src/main/assets/help/de/help.html +++ b/src/main/assets/help/de/help.html @@ -36,27 +36,24 @@
  • Warum integriert sich Delta Chat in zentralisierte, proprietäre Apple/Google-Push-Dienste?
  • -
  • Verschlüsselung und Sicherheit +
  • Verschlüsselung und Sicherheit @@ -90,7 +87,7 @@
    • Welche App-Berechtigungen benötigt Delta Chat?
    • Funktioniert Delta Chat mit meinem E-Mail-Anbieter?
    • -
    • Ich möchte meinen eigenen E-Mail-Server für Delta Chat verwalten. Gibt es Empfehlungen?
    • +
    • Ich möchte meinen eigenen Server für Delta Chat verwalten. Gibt es Empfehlungen?
    • Weshalb muss ich mein E-Mail-Kennwort in Delta Chat eingeben? Ist das sicher?
    • Welche Nachrichten erscheinen in Delta Chat?
    • Unterstützt Delta Chat HTML-E-Mails?
    • @@ -681,10 +678,10 @@ hat, das eine „sofortige Zustellung“ von Nachrichten für alle Chatmail-Serv Einschließlich dem Chatmail-Server, den Sie selbst ohne unsere Erlaubnis einrichten könnten. Willkommen bei der Macht des interoperablen und massiven Chatmail- und E-Mail-Systems :)

      -

      +

      - Verschlüsselung und Sicherheit + Verschlüsselung und Sicherheit

      @@ -697,17 +694,23 @@ Willkommen bei der Macht des interoperablen und massiven Chatmail- und E-Mail-Sy -

      Autocrypt wird verwendet, um automatisch -eine Ende-zu-Ende-Verschlüsselung mit Kontakten und Gruppenchats herzustellen. -Autocrypt verwendet eine begrenzte und sichere Untermenge des OpenPGP-Standards. -Ende-zu-Ende-verschlüsselte Nachrichten sind mit einem Vorhängeschloss gekennzeichnet padlock

      +

      Delta Chat verwendet eine sichere Teilmenge des OpenPGP-Standards, um eine automatische End-to-End-Verschlüsselung mit folgenden Protokollen bereitzustellen:

      -

      Secure-Join-Protokolle -werden für Chats mit garantierter Ende-zu-Ende-Verschlüsselung verwendet, -die vor Netzwerkangriffen und kompromittierten Servern schützt. -Chats, die mit einem grünen Häkchen markiert sind -green checkmark -garantieren Ende-zu-Ende-verschlüsselte Nachrichten.

      +
        +
      • +

        Secure-Join +zum Austausch von Verschlüsselungsinformationen durch Scannen von QR-Codes oder „Einladungslinks“.

        +
      • +
      • +

        Autocrypt wird verwendet, um automatisch eine Ende-zu-Ende-Verschlüsselung zwischen Kontakten und allen Mitgliedern einer Gruppe herzustellen.

        +
      • +
      • +

        Teilen eines Kontakts im Chat +ermöglicht es den Empfängern, eine Ende-zu-Ende-Verschlüsselung mit dem Kontakt zu verwenden.

        +
      • +
      + +

      Delta Chat fragt keine OpenPGP-Keyserver ab, veröffentlicht dort keine Daten und interagiert auch sonst nicht mit diesen.

      @@ -717,28 +720,36 @@ garantieren Ende-zu-Ende-verschlüsselte Nachrichten.

      -

      Ende-zu-Ende-verschlüsselten Nachrichten sind mit einem Vorhängeschloss versehen:

      - -

      padlock in bubble

      - -

      Die Ende-zu-Ende-Verschlüsselung ist garantiert, wenn neben dem Chat-Titel ein grünes Häkchen zu sehen ist:

      - -

      green checkmark in title

      +

      All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

      -

      +

      - Wie kann ich garantierte Ende-zu-Ende-Verschlüsselung und grüne Häkchen erhalten? + Kann ich E-Mails ohne Ende-zu-Ende-Verschlüsselung empfangen oder senden?

      -

      Wenn Sie einen zweiten Kommunikationskanal mit Ihrem Chatpartner haben, -wie einen Video-Chat oder einen anderen Messenger, -können Sie einen Einladungslink erstellen.

      +

      Wenn Sie die Standard-Chatmail-Relays verwenden, ist es unmöglich, Nachrichten ohne End-to-End-Verschlüsselung zu empfangen oder zu senden.

      -

      Wenn Sie persönlich zusammen sind, -können Sie Ihrem Chat-Partner einen QR-Code zeigen.

      +

      Wenn Sie stattdessen ein Profil mit einem klassischen E-Mail-Server erstellen, +können Sie Nachrichten ohne End-to-End-Verschlüsselung senden und empfangen. +Solche Nachrichten werden mit einem E-Mail-Symbol gekennzeichnet +email.

      + +

      + + + Wie kann ich einen Chat mit einem neuen Kontakt erstellen? + + +

      + +

      You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

      • @@ -747,133 +758,60 @@ tippen Sie auf den Titel der Gruppe, um die Mitgliederliste anzuzeigen, und wählen Sie „QR-Einladungscode“.

      • -

        Für Direktchat-Einladungen, -tippen Sie auf das QR-Code-Symbol -auf dem Hauptbildschirm der Delta-Chat-App.

        +

        For direct 1:1 chat invitations, +tap the QR Code icon +on the Delta Chat app main screen.

      -

      Lassen Sie Ihren Chat-Partner den QR-Code mit der Delta-Chat-App scannen. -Oder Sie klicken auf „Kopieren“ oder „Teilen“, um einen Einladungslink zu erstellen und diesen mit Ihrem Chat-Partner zu teilen.

      +

      Ask your chat partner to scan the QR image +with their Delta Chat app, +or click “Copy” or “Share” to create an invite link +and share it with your chat partner.

      -

      Warten Sie nun, während das Secure-Join-Protokoll zwischen beiden Geräten abläuft.

      +

      Now wait while end-to-end encryption is getting established.

      • -

        Wenn beide Geräte online sind, -sehen beide Seiten schließlich einen Gruppen- oder Direkt-Chat mit einem grünen Häkchen -green checkmark -neben dem Titel.

        +

        If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

      • -

        Wenn eines der Geräte offline ist, erscheinen die grünen Häkchen erst -später, wenn das Gerät wieder mit dem Internet verbunden ist -und das Secure-Join-Protokoll abgeschlossen werden kann.

        +

        If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

      -

      Herzlichen Glückwunsch! 🎉 -Sie verwenden nun eine garantierte Ende-zu-Ende-Verschlüsselung -mit diesem Kontakt und Sie beide können sich gegenseitig zu grün markierten Gruppen hinzufügen -green checkmark, -Dadurch wird die garantierte Ende-zu-Ende-Verschlüsselung automatisch unter den Mitgliedern dieser Gruppe verbreitet.

      +

      Congratulations! +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

      - Was bedeuten das “Grüne Häkchen” und die “garantierte Ende-zu-Ende-Verschlüsselung”? + Was bedeutet das grüne Häkchen in einem Kontaktprofil?

      -

      Chat-Titel mit grünen Häkchen +

      A contact profile might show a green checkmark green checkmark -bedeuten, dass alle Nachrichten im Chat Ende-zu-Ende-verschlüsselt werden -und nicht von kompromittierten E-Mail-Servern oder Internet-Providern gelesen oder verändert werden können. -Beim Beitritt zu Gruppenchats mit grünen Häkchen -werden Verschlüsselungsinformationen (und die grünen Häkchen) aller Teilnehmer sicher so weitergegeben, -dass die Ende-zu-Ende-Verschlüsselung in der Gruppe und zwischen den Mitgliedern garantiert werden kann.

      - -

      Kontaktprofile mit grünen Häkchen -green checkmark -bedeuten, dass die Nachrichtenübermittlung an einen Kontakt derzeit garantiert Ende-zu-Ende-verschlüsselt ist. -Jeder grün markierte Kontakt hat entweder einen direkten QR-Scan mit Ihnen durchgeführt -oder wurde von einem anderen Kontakt mit grünem Häkchen eingeführt. -Das Einführen geschieht automatisch, wenn Sie Mitglieder zu Gruppen hinzufügen. -Wer einen Kontakt zu einer Gruppe mit grünem Häkchen hinzufügt, wird zum Einführenden -für die Mitglieder, die noch nichts von dem hinzugefügten Kontakt wussten. -In einem Kontaktprofil können Sie wiederholt auf den Text “Eingeführt von …” tippen -bis Sie zu demjenigen gelangen, mit dem Sie einen direkten QR-Scan gemacht haben.

      - -

      Beachten Sie, dass Sie in einem Kontaktprofil unter Umständen Einführende sehen und antippen können, aber kein grünes Häkchen im Profiltitel vorhanden ist. -Dies bedeutet normalerweise, dass der Kontakt “eine Nachricht von einem anderen Gerät gesendet hat”.

      +and an “Introduced by” line. +Every green-checkmarked contact either did a direct QR-scan with you +or was introduced by a another green-checkmarked contact. +Introductions happen automatically when adding members to groups. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. +In a contact profile you can tap on the “Introduced by …” text repeatedly +until you get to the one with whom you directly did a QR-scan.

      Für eine ausführlichere Diskussion der “Garantierten Ende-zu-Ende-Verschlüsselung”, siehe Secure-Join-Protokolle und dort speziell den Abschnitt zu “Verified Groups”, dem technischen Begriff für “Chats mit grünem Häkchen” oder “Garantierter Ende-zu-Ende-Verschlüsselung”.

      -

      - - - Ein Kontakt hat eine Nachricht von einem anderen Gerät gesendet”, was kann ich tun? - - -

      - -

      Wenn Sie diese Warnung sehen, wurde das grüne Häkchen entfernt, da für den Kontakt die Ende-zu-Ende-Verschlüsselung nicht mehr garantiert werden kann. -Wenn Sie den Wegfall der garantierten Ende-zu-Ende-Verschlüsselung -für diesen Kontakt überraschend finden, akzeptieren Sie die Warnung nicht! -Versuchen Sie stattdessen mit Ihrem Kontakt über einen zweiten Kanal (z.B. Videoanruf, Telefon oder ein anderer Messenger) herauszufinden, was passiert ist.

      - -

      Wenn Ihr Kontakt tatsächlich den Ausfall der garantierten Ende-zu-Ende-Verschlüsselung verursacht hat, -finden Sie in den nächsten Abschnitten häufige Gründe und Abhilfe. -Unabhängig davon bleiben alle anderen Chats mit einem grünen Häkchen garantiert Ende-zu-Ende-verschlüsselt, -auch wenn der Kontakt dort Mitglied ist.

      - -

      Ihr Kontakt verwendet Delta Chat auf einem zweiten Gerät (Smartphone oder Laptop)

      - -

      Wenn Ihr Kontakt ein weiteres Gerät mit Delta Chat eingerichtet hat, -sollte das Konto von dem neuen Gerät entfernen werden und als zweites Gerät, wie hier beschrieben, erneut hinzugefügt werden. -Sobald sie sich danach schreiben, wird die Warnung verschwinden -und die Verschlüsselung ist mit beiden Geräten Ihres Kontakts garantiert.

      - -

      Ihr Kontakt hat Delta Chat mit seinem alten Login neu installiert

      - -

      Wenn Ihr Kontakt ein Backup hat, -sollte das Profil auf dem neuen Gerät -entfernt werden und stattdessen das Backup importiert werden, um das Konto neu zu erstellen. -Sobald sie sich danach schreiben, wird die Warnung verschwinden -und die garantierte Verschlüsselung wird für diesen Kontakt wiederhergestellt.

      - -

      Wenn Ihr Kontakt kein Backup hat, ist es am besten, einen QR-Code-Scan -mit Ihrem Chat-Partner durchzuführen, um die garantierte Ende-zu-Ende-Verschlüsselung wiederherzustellen.

      - -

      Ihr Kontakt hat eine E-Mail über Webmail oder eine andere E-Mail-Anwendung gesendet, -wird Delta Chat aber bald wieder benutzen.

      - -

      Wenn Sie wissen, dass der Kontakt manchmal Webmail, -oder andere E-Mail-Anwendungen ohne Ende-zu-Ende-Verschlüsselung verwendet, -dann können Sie die Warnung akzeptieren. -Sobald Ihr Kontakt Delta Chat wieder benutzt, -wird die garantierte Ende-zu-Ende-Verschlüsselung automatisch wiederhergestellt.

      - -

      Ihr Kontakt hat die Nutzung von Delta Chat komplett eingestellt

      - -

      Manchmal ist es wichtiger, in Kontakt zu bleiben als eine Ende-zu-Ende-Verschlüsselung zu haben; -die “Transport Layer Encryption” (TLS) kann die Vertraulichkeit -Ihrer Nachrichten zwischen Ihrem Gerät und dem E-Mail-Server dennoch schützen. -Ohne Ende-zu-Ende-Verschlüsselung vertrauen Sie und Ihr Chat-Partner jedoch darauf, dass Ihr E-Mail-Server Nachrichten nicht liest oder manipuliert und sie nicht an Dritte weitergibt.

      - -

      In jedem Fall können Sie nicht viel mehr tun, als die Warnung zu akzeptieren. -Bitte entfernen Sie den Kontakt auch aus allen aktiven, grün markierten Gruppen -die Sie unter “Gemeinsame Chats” im Profil des Kontakts finden können. -So vermeiden Sie, dass Ihr Kontakt “unlesbare” Nachrichten erhält.

      - -

      Wenn der Kontakt Delta Chat aufgrund von Fehlern oder Bugs nicht mehr verwendet, -können Sie diese in unser Support-Forum schreiben, -und uns so dabei helfen, häufige Probleme zu identifizieren und zu lösen. Vielen Dank!

      -

      @@ -897,10 +835,9 @@ und Anhang-Metadaten wie Dateinamen.

      -

      Ja, Delta Chat verwendet eine sichere Untermenge von OpenPGP -und zeigt nur dann ein Vorhängeschloss auf einer Nachricht an, -wenn die gesamte Nachricht ordnungsgemäß verschlüsselt und signiert ist. -Zum Beispiel werden “Detached Signatures” nicht als sicher betrachtet.

      +

      Yes, Delta Chat uses a secure subset of OpenPGP +requiring the whole message to be properly encrypted and signed. +For example, “Detached signatures” are not treated as secure.

      Die meisten öffentlich diskutierten OpenPGP-Probleme resultieren in Wirklichkeit aus schlechter Usability oder schlechter Implementierung von Tools oder Anwendungen - oder beidem. @@ -961,16 +898,15 @@ so wie in der Autocrypt-Level-1-Spezifikation definiert.

      - Wird eine Nachricht im Klartext gesendet, wenn keine Ende-zu-Ende-Verschlüsselung verfügbar ist? + Sind mit dem Mail-Symbol markierte Nachrichten im Internet sichtbar?

      -

      Auch wenn Ihre Nachrichten nicht Ende-zu-Ende-verschlüsselt sind, -sind sie dennoch vor Internetanbietern wie Mobilfunk- oder Telefongesellschaften geschützt. -Allerdings können Ihr E-Mail-Provider und der des Empfängers -Ihre Nachrichten lesen, analysieren oder sogar verändern, -wenn sie nicht Ende-zu-Ende-verschlüsselt sind.

      +

      If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

      Delta Chat verwendet standardmäßig strikte TLS-Verschlüsselung, @@ -982,10 +918,6 @@ Wenn die beteiligten E-Mail-Server Beibehaltung der garantierten Ende-zu-Ende-Verschlüsselung zusätzlich zur TLS-Verschlüsselung -eine allumfassende Sicherheit zwischen Ihrem Gerät und dem des Empfängers bietet. -Nicht einmal Ihr E-Mail- oder Internet-Provider wird in der Lage sein, Ihre Nachrichten zu lesen oder zu verändern.

      @@ -995,24 +927,25 @@ Nicht einmal Ihr E-Mail- oder Internet-Provider wird in der Lage sein, Ihre Nach

      -

      Delta Chat schützt die meisten Metadaten von Nachrichten, indem es die folgenden Informationen -in den Ende-zu-Ende-verschlüsselten Teil der Nachrichten verschiebt:

      +

      Anders als die meisten anderen Messenger +speichern Delta-Chat-Apps keine Metadaten über Kontakte oder Gruppen auf Servern. Auch nicht in verschlüsselter Form. +Stattdessen werden alle Gruppen-Metadaten durchgängig verschlüsselt und ausschließlich auf den Endgeräten der Nutzer gespeichert.

      + +

      E-Mail-Server können deshalb nur das Folgende sehen:

        -
      • Betreffzeile
      • -
      • Avatar und Name der Gruppe
      • -
      • Lesebestätigungen (Chat-Disposition-Notification-To)
      • -
      • Timer für verschwindende Nachrichten (Ephemeral-Timer)
      • -
      • Chat-Group-Member-Removed, Chat-Group-Member-Added
      • -
      • Secure-Join-Header
      • -
      • Aktivierung des Standort-Streamings
      • -
      • WebRTC-Raum-URL
      • +
      • +

        Uhrzeit und Datum der Nachricht

        +
      • +
      • +

        Absende- und Empfangsadresse

        +
      • +
      • +

        Größe der Nachricht

        +
      -

      E-Mail-Server erhalten keinen Zugriff auf diese geschützten Metadaten, -sehen aber Datum und Größe der Nachricht sowie die Absender- und Empfängeradressen. -E-Mail-Server benötigen Empfängeradressen, um Nachrichten -Nachrichten an die Geräte der Empfänger weiterzuleiten und zuzustellen.

      +

      All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

      @@ -1022,93 +955,36 @@ Nachrichten an die Geräte der Empfänger weiterzuleiten und zuzustellen.

      -

      Sowohl zum Schutz vor E-Mail-Servern, die Metadaten sammeln, -als auch gegen die Gefahr der Beschlagnahmung von Geräten -empfehlen wir die Verwendung einer für Delta Chat optimierten E-Mail-Server-Instanz, um pseudonym-temporäre Konten durch Scannen von QR-Codes zu erstellen. -Beachten Sie, dass Delta-Chat-Apps auf allen Plattformen mehrere Konten unterstützen. -Sie können also problemlos aktionsspezifische “1-Wochen-“ oder “1-Monats-Konten” neben Ihrem “Hauptkonto” verwenden, -mit dem Wissen, dass alle temporären Kontodaten zusammen mit allen Metadaten gelöscht werden. -Wenn ein Gerät beschlagnahmt wird, können Kontakte mit temporären E-Mail-Konten -Konten nicht so leicht identifiziert werden, wie dies bei Messengern der Fall ist, die die -Telefonnummern in Chatgruppen preisgeben, die wiederum oft mit legalen Identitäten verbunden sind.

      +

      Both for protecting against metadata-collecting e-mail servers +as well as against the threat of device seizure +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. +Note that Delta Chat apps on all platforms support multiple profiles +so you can easily use situation-specific profiles next to your “main” profile +with the knowledge that all their data, along with all metadata, will be deleted. +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

      -

      +

      - Wie kann ich die Verschlüsselungsinformationen überprüfen? + Unterstützt Delta Chat „Sealed Sender“?

      -

      Sie können den Status der Ende-zu-Ende-Verschlüsselung manuell im Dialog “Verschlüsselung” -(Android/iOS: Benutzerprofil, Desktop: Rechtsklick auf den Chat eines Benutzers) überprüfen. -Delta Chat zeigt dort zwei Fingerabdrücke an. -Wenn die gleichen Fingerabdrücke auf Ihrem eigenen Gerät und auf dem Gerät Ihres Kontakts erscheinen, -ist die Verbindung sicher.

      - -

      - - - Wie kann ich den Verschlüsselungsstatus von Nachrichten überprüfen? - - -

      +

      No, not yet.

      -

      Ein kleines Vorhängeschloss in einer Nachrichten zeigt an, -dass die Nachricht vom Absender korrekt Ende-zu-Ende-verschlüsselt wurde. -Wenn kein Vorhängeschloss vorhanden ist, wurde die Nachricht nicht oder nicht korrekt Ende-zu-Ende-verschlüsselt. -Höchstwahrscheinlich, weil der Absender ein Webmail-Interface oder eine App -ohne Ende-zu-Ende-Unterstützung verwendet.

      - -

      - - - Warum sehe ich unverschlüsselte Nachrichten? - - -

      +

      The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

      -

      Wenn ein Kontakt keine Autocrypt-fähige App verwendet, -werden alle Nachrichten, die diesen Kontakt betreffen (in Gruppen- oder Direkt-Chats), -nicht Ende-zu-Ende-verschlüsselt und zeigen daher kein “Vorhängeschloss”. -Beachten Sie, auch Kontakte, die primär Delta Chat verwenden, -können gleichzeitig auch nicht-Autocrypt-fähige Apps verwenden. -Das unverschlüsselte Antworten auf unverschlüsselte Nachrichten wird von Autocrypt vorgeschrieben -um zu verhindern, dass unlesbare Nachrichten auf der Seite Ihrer Kontakte ankommen.

      - -

      - - - Wie kann ich einen Ende-zu-Ende-verschlüsselten Chat mit einem Delta-Chat-Kontakt führen, der manchmal Webmail oder eine andere E-Mail-Anwendung ohne Autocrypt verwendet? - - -

      - -

      Wenn Sie einen sicheren Ende-zu-Ende-verschlüsselten Chat mit einem Kontakt benötigen, -der sowohl Delta Chat als auch Nicht-Autocrypt-Anwendungen nutzt, -können Sie eine garantierte Ende-zu-Ende-Verschlüsselung einrichten, mit einer Gruppe mit Ihnen beiden als Mitgliedern. -In diesem Gruppenchat werden alle Nachrichten Ende-zu-Ende verschlüsselt werdejn, -auch wenn im Direkt-Chat eine -“Nachricht von einem anderen Gerät gesendet” wurde.

      - -

      - - - Wie kann ich Ende-zu-Ende-Verschlüsselung und Löschen von Nachrichten sicherstellen? - - -

      - -

      Der beste Weg, um sicherzustellen, dass alle Nachrichten Ende-zu-Ende-verschlüsselt sind -und Metadaten so schnell wie möglich gelöscht werden, -ist die Verwendung von Chats mit garantierter Ende-zu-Ende-Verschlüsselung -und die Aktivierung von verschwindenden Nachrichten.

      - -

      Garantierte Ende-zu-Ende-Verschlüsselung schützt vor MITM-Angriffen -und das Aktivieren von “Verschwindende Nachrichten” löscht die Nachrichten -auf dem Server und Lokal nach einer vom Benutzer eingestellten Zeit.

      - -

      Wenn Sie die Nachrichten auf Ihrem Gerät, aber nicht auf dem Server benötigen, können Sie auch in der Gruppe vereinbaren, “Nachrichten automatisch vom Server löschen” einzuschalten.

      +

      Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

      @@ -1118,42 +994,52 @@ auf dem Server und Lokal nach einer vom Benutzer eingestellten Zeit.

      -

      Nein, Delta Chat unterstützt kein “Perfect Forward Secrecy” (PFS). -Das bedeutet, wenn Ihr privater Delta-Chat-Schlüssel durchgesickert ist -und jemand Ihre vorherigen In-Transit-Nachrichten gesammelt hat, -können diese mit dem veröffentlichtem Schlüssel entschlüsselt werden.

      +

      No, not yet.

      -

      Beachten Sie jedoch, dass jemand, der in den Besitz Ihrer privaten Schlüssel gelangt, in der Regel auch in der Lage sein wird, Ihre Nachrichten zu lesen - unabhängig davon, ob Perfect Forward Secrecy nun verwendet wird oder nicht. -Die typische, reale Situation für durchgesickerte private Schlüssel, ist die Beschlagnahme von Geräten.

      +

      Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, +and someone has collected your prior in-transit messages, +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

      -

      Es ist möglich, dass Delta Chat eine Tages “Perfect Forward Secrecy” unterstützt - -OpenPGP ist nur ein Container für verschlüsselte Nachrichten mit dem -die Verwaltung der Schlüssel (und damit die Schlüsselrotation oder das Schlüssel-“Ratcheting”) -auf flexible Weise organisiert werden kann. -Siehe Seqouias PFS-Prototyp -für bestehende Experimente in der OpenPGP-Community.

      +

      We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

      -

      +

      - Ist die Ende-zu-Ende-Verschlüsselung von Delta Chat genauso sicher wie die von Signal? + Unterstützt Delta Chat Post-Quantum-Verschlüsselung?

      -

      Das hängt davon ab, was für Sie wichtig ist. -Delta Chat unterstützt kein PFS, -bietet aber garantierte Ende-zu-Ende-Verschlüsselung, -die vor kompromittierten Servern oder korrupten Netzwerken schützt. -Signal und die meisten anderen PFS-unterstützenden Messenger bieten kein -praktisches System zum Schutz von Chatgruppen vor Netzwerkangriffen. -Diese sind besorgniserregender und realer -als ein potenzieller Angreifer, der zwar Ihr Telefon und Ihre privaten Schlüssel beschlagnahmt, -aber irgendwie nicht Ihre Nachrichten - gleichzeitig aber eine vollständige Aufzeichnung aller -vergangenen verschlüsselten Nachrichten hat.

      +

      No, not yet.

      -

      In jedem Fall verwendet die Ende-zu-Ende-Verschlüsselung von Delta Chat eine sichere Untermenge von OpenPGP -das unabhängig sicherheitsgeprüft wurde.

      +

      Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

      + +

      + + + Wie kann ich die Verschlüsselung manuell überprüfen? + + +

      + +

      Sie können den Status der Ende-zu-Ende-Verschlüsselung manuell im Dialog “Verschlüsselung” +(Android/iOS: Benutzerprofil, Desktop: Rechtsklick auf den Chat eines Benutzers) überprüfen. +Delta Chat zeigt dort zwei Fingerabdrücke an. +Wenn die gleichen Fingerabdrücke auf Ihrem eigenen Gerät und auf dem Gerät Ihres Kontakts erscheinen, +ist die Verbindung sicher.

      @@ -1374,7 +1260,7 @@ und systemspezifische Einstellungen wie Benachrichtigungstöne.

    • Webxdc Apps können keine Daten ins Internet senden oder etwas herunterladen.
    • Eine Webxdc App kann Daten nur innerhalb eines Delta-Chat-Chats mit ihren Kopien auf den Geräten Ihrer Chat-Partner austauschen. Ansonsten ist sie komplett vom Internet isoliert.
    • Die Privatsphäre, die eine Webxdc App bietet, ist die Privatsphäre Ihres Chats - solange Sie den Personen vertrauen, mit denen Sie chatten, können Sie auch der Webxdc App vertrauen.
    • -
    • Das bedeutet auch: Es kann ein Datenschutzrisiko darstellen, Webxdc Apps in Chats zu öffnen, in denen man den Mitgliedern nicht vertraut - so wie man es von E-Mail-Anhängen kennt, wo man nur Anhänge von Absendern öffnet, denen man vertraut, und nicht von Spammern.
    • +
    • Das bedeutet auch: Es kann ein Datenschutzrisiko darstellen, Webxdc Apps in Chats zu öffnen, in denen man den Mitgliedern nicht vertraut - so wie man es von E-Mail-Anhängen kennt, wo man nur Anhänge von Absendern öffnet, denen man vertraut, und nicht von Spammern. Spammer erhalten alle Daten, die Sie Ihnen senden zusammen mit Ihrer IP-Adresse.

    @@ -1444,13 +1330,7 @@ forum veröffentlicht und diskutiert.

  • -
      -
    • Mit einer Broadcast-Liste können Sie eine Nachricht an viele Empfänger gleichzeitig senden; wenn sie Ihnen antworten, erhalten Sie die Antwort im Direktchat mit ihnen. Die Empfänger können einander nicht sehen.
    • -
    • Technisch gesehen handelt es sich um eine E-Mail mit vielen Empfängern in BCC.
    • -
    • Sie können die Funktion im Abschnitt “Experimentelle Features” in den erweiterten Einstellungen aktivieren. Dann können Sie im Dialogfeld “Neuer Chat” eine Broadcast-Liste erstellen.
    • -
    • Falls Sie mehr als ein Gerät verwenden, werden Broadcast-Listen derzeit nicht zwischen ihnen synchronisiert.
    • -
    • An Broadcast-Listen gesendete Nachrichten werden nicht verschlüsselt. Eine Verschlüsselung würde die Anonymität brechen, denn dann wüssten alle Empfänger, wer sie sonst noch erhalten hat. (Das Senden einzelner E-Mails an alle wäre aus Gründen der Ratenbegrenzung und des Netzwerkverbrauchs schlechter.)
    • -
    +

    Mit einer Broadcast-Liste können Sie eine Nachricht an viele Empfänger auf einmal senden; die Empfänger können in dieser Liste nicht antworten. Broadcast-Listen sind experimentell und werden sehr wahrscheinlich durch etwas anderes ersetzt werden, bleiben Sie dran :)

    @@ -1496,6 +1376,11 @@ forum veröffentlicht und diskutiert.

    +

    Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

    +
    1. Ändern Sie Ihre E-Mail-Adresse unter “Einstellungen → Erweitert → Passwort und E-Mail-Konto” und @@ -1594,17 +1479,19 @@ gesendet haben, Nachrichten an Ihre neue Adresse senden.

      Allerdings benötigen einige Anbieter besondere Einstellungen, um ordnungsgemäß zu funktionieren; eine von NutzerInnen erstellte Sammlung zu einigen Optionen findet sich unter Provider Overview.
    2. -

      +

      - Ich möchte meinen eigenen E-Mail-Server für Delta Chat verwalten. Gibt es Empfehlungen? + Ich möchte meinen eigenen Server für Delta Chat verwalten. Gibt es Empfehlungen?

      diff --git a/src/main/assets/help/email-icon.png b/src/main/assets/help/email-icon.png new file mode 100644 index 000000000..ea1cf1d8f Binary files /dev/null and b/src/main/assets/help/email-icon.png differ diff --git a/src/main/assets/help/en/help.html b/src/main/assets/help/en/help.html index 8deb3928a..2f2ad51f4 100644 --- a/src/main/assets/help/en/help.html +++ b/src/main/assets/help/en/help.html @@ -36,27 +36,24 @@
    3. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
    4. -
    5. Encryption and Security +
    6. Encryption and Security @@ -90,7 +87,7 @@
    7. -

      Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

      +

      Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

      -

      Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

      +
        +
      • +

        Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

        +
      • +
      • +

        Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

        +
      • +
      • +

        Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

        +
      • +
      + +

      Delta Chat does not query, publish or interact with any OpenPGP key servers.

      @@ -763,28 +768,37 @@ guarantee end-to-end encrypted messages.

      -

      All end-to-end encrypted messages carry a padlock:

      - -

      padlock in bubble

      - -

      End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

      - -

      green checkmark in title

      +

      All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

      -

      +

      - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

      -

      If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

      +

      If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

      -

      If you are together in person, -you can show a QR code to your chat partner.

      +

      If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

      + +

      + + + How can I establish a chat with a new contact? + + +

      + +

      You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

      • @@ -793,141 +807,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

      • -

        For direct 1:1 chat invitations, +

        For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

      -

      Let your chat partner scan the QR image +

      Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

      -

      Now wait while Secure-Join network messages are exchanged between both devices.

      +

      Now wait while end-to-end encryption is getting established.

      • -

        If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

        +

        If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

      • -

        If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

        +

        If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

      Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

      +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

      - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

      -

      Chat titles with green checkmarks +

      A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

      - -

      Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

      -

      Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

      -

      For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

      -

      - - - A contact “sent a message from another device”, what can i do? - - -

      - -

      Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

      - -

      If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

      - -

      Your contact is using Delta Chat on a second device (phone or laptop)

      - -

      If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

      - -

      Your contact reinstalled Delta Chat using their old account login

      - -

      If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

      - -

      If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

      - -

      Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

      - -

      If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

      - -

      Your contact stopped using Delta Chat entirely

      - -

      Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

      - -

      In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

      - -

      If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

      -

      @@ -952,8 +885,7 @@ and attachment metadata such as filenames.

      Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

      OpenPGP is not insecure by itself. @@ -974,7 +906,7 @@ which was thankfully adopted in summer 2023.

      - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

      @@ -1017,17 +949,15 @@ as defined by the Autocrypt Level 1 specification.

      - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

      -

      Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

      +

      If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

      Delta Chat by default uses strict TLS encryption @@ -1039,10 +969,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

      @@ -1052,25 +978,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

      -

      Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

      +

      Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

      + +

      E-mail Servers can therefore only see

        -
      • Subject line
      • -
      • Group avatar and name
      • -
      • MDN (read receipt) requests (Chat-Disposition-Notification-To)
      • -
      • Disappearing message timer (Ephemeral-Timer)
      • -
      • Chat-Group-Member-Removed, Chat-Group-Member-Added
      • -
      • Secure-Join header containing secure join commands
      • -
      • Notification about enabling location streaming
      • -
      • WebRTC room URL
      • +
      • +

        the message date,

        +
      • +
      • +

        sender and receiver addresses

        +
      • +
      • +

        and message size.

        +
      -

      E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

      +

      All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

      @@ -1082,96 +1008,34 @@ deliver messages to recipient’s devices.

      Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

      +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

      -

      +

      - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

      -

      You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

      - -

      - - - How can I check the encryption status of messages? - - -

      +

      No, not yet.

      -

      A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

      - -

      - - - Why do I see unencrypted messages? - - -

      +

      The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

      -

      If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

      - -

      - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

      - -

      If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

      - -

      - - - How can I ensure message end-to-end encryption and deletion? - - -

      - -

      The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

      - -

      Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

      - -

      If you don’t need a longer-lived copy of your messages on the server, -you can also turn on “delete messages from server automatically”.

      +

      Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

      @@ -1181,45 +1045,52 @@ you can also turn on “delete messages from server automatica

      -

      No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

      No, not yet.

      + +

      Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

      +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

      -

      Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

      - -

      It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

      +

      We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

      -

      +

      - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

      -

      It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

      +

      No, not yet.

      -

      In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

      +

      Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

      + +

      + + + How can I manually check encryption information? + + +

      + +

      You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

      @@ -1254,7 +1125,7 @@ from most recent to older:

    8. 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

        @@ -1501,9 +1372,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
      • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
      • -
      • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
      • +
      • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

      @@ -1587,21 +1459,10 @@ this way, you will have a new random Jitsi room every time you call someone.

    9. -
        -
      • With a Broadcast List you can send a message to many recipients at once; when -they reply to you, you get the reply in your direct 1:1 chat with them. The -recipients can’t see each other.
      • -
      • Technically, it is an E-Mail with many recipients in BCC.
      • -
      • You can turn on the feature in the “experimental features” section in the -advanced settings. Then you can create a Broadcast List from the “New Chat” -dialog.
      • -
      • In case you are using more than one device, Broadcast Lists are currently not -synced between them.
      • -
      • Messages sent to broadcast lists are not encrypted. Encryption would break -anonymity, because then all recipients would know who else received it -(Sending individual mails to everyone would be worse for rate limit and network -consumption reason).
      • -
      +

      With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

      @@ -1658,6 +1519,11 @@ would be done by the Delta Chat app.

      +

      Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

      +
      1. Change your address in “Settings → Advanced → Password and Account” and @@ -1760,19 +1626,19 @@ However, some providers need special options to work properly, see Provider Overview

      2. -

        +

        - I want to manage my own e-mail server for Delta Chat. What do you recommend? + I want to manage my own server for Delta Chat. What do you recommend?

        diff --git a/src/main/assets/help/es/help.html b/src/main/assets/help/es/help.html index f5259e494..16fcf1a87 100644 --- a/src/main/assets/help/es/help.html +++ b/src/main/assets/help/es/help.html @@ -6,11 +6,11 @@
      3. ¿Cuáles son las ventajas de Delta Chat comparado con otras aplicaciones de mensajería?
      4. ¿Qué pasa si espero un mensaje de alguien a quien no le escribí en el pasado?
      5. ¿Delta Chat soporta envío de imágenes, videos, documentos y otros archivos?
      6. -
      7. What are profiles? How can I switch between them?
      8. +
      9. ¿Qué son los perfiles? ¿Cómo puedo cambiar entre ellos?
      10. ¿Quién ve mi foto de perfil?
      11. -
      12. Can I set a Bio/Signature/Status/Motto with Delta Chat?
      13. +
      14. ¿Puedo establecer un texto de firma con Delta Chat?
      15. ¿Qué significa fijar, mutear, archivar?
      16. -
      17. How do “Saved Messages” work?
      18. +
      19. ¿Cómo funcionan los “Mensajes guardados”?
      20. ¿Qué significa el punto verde?
      21. Correct typos and delete messages after sending
      22. ¿Cómo funciona la desaparición de mensajes?
      23. @@ -36,27 +36,24 @@
      24. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
      25. -
      26. Cifrado y seguridad +
      27. Cifrado y seguridad @@ -90,7 +87,7 @@
      28. -

        Delta Chat is a reliable, decentralized and secure messaging app, -available for mobile and desktop platforms.

        +

        Delta Chat es una aplicación de mensajería segura, descentralizada y confiable. Está disponible para las plataformas móviles y del escritorio.

        -

        Delta Chat feels like Whatsapp or Telegram but you can also use and regard it as an e-mail app. -You can signup anonymously to a variety of interoperable chatmail servers -which are minimal e-mail servers optimized for fast and secure operations. -Or you may use classic e-mail servers and an existing e-mail account -in which case Delta Chat acts as an e-mail app.

        +

        Delta Chat parece como Whatsapp o Telegram, pero también puedes utilizarlo y considerarlo como una aplicación de correo electrónico. +Puedes registrarte de forma anónima en varios servidores de chatmail interoperables +que son servidores de correo electrónico mínimos y optimizados para operaciones rápidas y seguras. +O puedes utilizar servidores de correo electrónico clásicos y una cuenta de correo electrónico existente +en cuyo caso, Delta Chat actúa como una aplicación de correo electrónico.

        @@ -136,15 +132,15 @@ in which case Delta Chat acts as an e-mail app.

        -

        To securely setup contact with others scan an invite QR code -or share an invite link. -This is required when using a (default) chatmail-based chat profile -because chatmail servers reject un-encrypted outgoing messages.

        +

        Para establecer contacto con otros de forma segura escanea un código QR de invitación +o comparte un enlace de invitación. +Esto es necesario cuando se utiliza un perfil de chat (predeterminado) basado en chatmail +porque los servidores de chatmail rechazan los mensajes salientes no cifrados.

        -

        If you create a chat profile with a classic e-mail address -you may manually create a contact if you know their e-mail address -and then write a message to them -even if the recipient is not using Delta Chat.

        +

        Si crees un perfil de chat con una dirección de correo electrónico clásica +puedes crear manualmente un contacto si conoces su dirección de correo electrónico +y escribirle un mensaje +aunque el destinatario no utilice Delta Chat.

        @@ -155,25 +151,21 @@ even if the recipient is not using Delta Chat.

        + +

        Soporte omnipresente, múltiples perfiles y múltiples dispositivos en todas las plataformas. 

        + +

        Interactivas aplicaciones de web en un chat para jugar y colaborar

        + +

        Cifrado de extremo a extremo auditado +seguro contra ataques a la red y al servidor.

        + +

        @@ -218,7 +210,7 @@ Built on - What are profiles? How can I switch between them? + ¿Qué son los perfiles? ¿Cómo puedo cambiar entre ellos?

        @@ -227,16 +219,16 @@ Built on how to use the same profile on multiple devices.

        +

        Quizás quieres aprender cómo se usa el mismo perfil en múltiples dispositivos.

        @@ -268,7 +260,7 @@ dispositivo.

        - Can I set a Bio/Signature/Status/Motto with Delta Chat? + ¿Puedo establecer un texto de firma con Delta Chat?

        @@ -312,26 +304,26 @@ para silenciar un chat, use el menú del chat (Android/Escritorio) o el perfil d

        - How do “Saved Messages” work? + ¿Cómo funcionan los “Mensajes guardados”?

        -

        Saved Messages is a chat that you can use to easily remember and find messages.

        +

        Mensajes guardados es un chat que puedes utilizar para recordar y encontrar mensajes fácilmente.

        • -

          In any chat, long tap or right click a message and select Save

          +

          En cualquier chat, mantén pulsado o haz clic con el botón derecho en un mensaje y selecciona Guardar

        • -

          Saved messages are marked by the symbol -Saved icon -next to the timestamp

          +

          Los mensajes guardados se marcan con el símbolo + Saved icon +junto a la marca de tiempo

        • -

          Later, open the “Saved Messages” chat - and you will see the saved messages there. -By tapping Arrow-right icon, -you can go back to the original message in the original chat

          +

          Después puedes abrir el chat “Mensajes guardados” - y allí verás los mensajes guardados. +Con pulsar a Arrow-right icon, +puedes volver al mensaje original en el chat original

        • Finally, you can also use “Save Messages” to take personal notes - open the chat, type something, add a photo or a voice message etc.

          @@ -352,9 +344,9 @@ may it be by sender, by device cleanup -

          You can sometimes see a green dot -next to the avatar of a contact. -It means they were recently seen in the last 10 minutes:

          +

          A veces puede ver un punto verde +junto al avatar de un contacto. +Significa que ha sido visto recientemente en los últimos 10 minutos:

          • either because they messaged you directly,
          • @@ -388,14 +380,14 @@ For that, long tap or right click the message and select Edit or Edit icon.

          • -

            If you have sent a message accidentally, -from the same menu, select Delete and then Delete for Everyone.

            +

            Si has enviado un mensaje accidentalmente +desde el mismo menú, seleccione Borrar y después Borrar para todos.

          -

          While edited messages will have the word “Edited” next to the timestamp, -deleted messages will be removed without a marker in the chat. -Notifications are not sent and there is no time limit.

          +

          Mientras que los mensajes editados tendrán la palabra “Editado” junto a la marca de tiempo, +los mensajes borrados serán eliminados sin un marcador en el chat. +No se envían notificaciones y no hay límite de tiempo.

          Note, that the original message may still be received by chat members who could have already replied, forwarded, saved, screenshotted or otherwise copied the message.

          @@ -723,10 +715,10 @@ that achieves “instant delivery” of messages for all chatmail servers including a potential one you might setup yourself without our permission. Welcome to the power of the interoperable and massive chatmail and e-mail system :)

          -

          +

          - Cifrado y seguridad + Cifrado y seguridad

          @@ -739,18 +731,26 @@ Welcome to the power of the interoperable and massive chatmail and e-mail system -

          Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

          +

          Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

          -

          Protocolos de Secure-Join -se utilizan para establecer chats con cifrado de extremo a extremo garantizado -que protege contra ataques de red y servidores comprometidos. -Los chats marcados con una estampilla verde -green checkmark -garantizan mensajes cifrados de extremo a extremo.

          +
            +
          • +

            Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

            +
          • +
          • +

            Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

            +
          • +
          • +

            Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

            +
          • +
          + +

          Delta Chat does not query, publish or interact with any OpenPGP key servers.

          @@ -760,28 +760,37 @@ garantizan mensajes cifrados de extremo a extremo.

          -

          Todos los mensajes cifrados de extremo a extremo tienen un candado:

          - -

          padlock in bubble

          - -

          El cifrado de extremo a extremo está garantizado si hay una estampilla verde cerca del nombre del chat:

          - -

          green checkmark in title

          +

          All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

          -

          +

          - ¿Cómo puedo obtener cifrado de extremo a extremo garantizado y estampillas verdes? + Can i still receive or send mails without end-to-end encryption?

          -

          If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

          +

          If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

          -

          If you are together in person, -you can show a QR code to your chat partner.

          +

          If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

          + +

          + + + How can I establish a chat with a new contact? + + +

          + +

          You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

          • @@ -790,125 +799,57 @@ tap the chat group title to see its member list, and select “QR Invite code”.

          • -

            For direct 1:1 chat invitations, +

            For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

          -

          Let your chat partner scan the QR image +

          Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

          -

          Now wait while Secure-Join network messages are exchanged between both devices.

          +

          Now wait while end-to-end encryption is getting established.

          • -

            Si ambos dispositivos están en línea, -ambas partes eventualmente verán un chat (grupal o directo) con una estampilla verde -green checkmark -junto al título.

            +

            If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

          • -

            Si uno de los dispositivos está sin conexión, las estampillas verdes solo aparecerán más tarde cuando el dispositivo vuelva a estar conectado a Internet y se complete el protocolo de red Secure-Join.

            +

            If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

          -

          ¡Felicitaciones! -Ahora utilizarás automáticamente el cifrado de extremo a extremo garantizado -con este contacto y ambos pueden agregarse mutuamente a grupos con estampilla verde -green checkmark, -de esta manera se propagará automáticamente el cifrado de extremo a extremo garantizado entre sus miembros.

          +

          Congratulations! +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

          - ¿Qué significa la estampilla verde y “cifrado de extremo a extremo garantizado”? + What does the green checkmark in a contact profile mean?

          -

          Títulos de chat con estampillas verdes +

          A contact profile might show a green checkmark green checkmark -significan que todos los mensajes en el chat estarán cifrados de extremo a extremo -y no pueden ser leídos o alterados por servidores de correo electrónico o proveedores de Internet comprometidos. -Unirse a chats grupales con estampillas verdes -difunde de manera segura la información de cifrado de todos (y las estampillas verdes) -de una manera que garantiza el cifrado de extremo a extremo en el grupo y entre los miembros.

          - -

          Perfiles de contacto con estampillas verdes -green checkmark -significa que el envío de mensajes a un contacto está actualmente garantizado que está cifrado de extremo a extremo. -Cada contacto con estampilla verde hizo un escaneo directo de QR contigo -o fue presentado por otro contacto con estampilla verde. -Las presentaciones ocurren automáticamente al agregar miembros a grupos. -Quien agregue un contacto a un grupo con estampilla verde se convierte en un presentador -para aquellos miembros que aún no conocían al contacto agregado. -En un perfil de contacto, puedes tocar repetidamente el texto “Presentado por …” -hasta llegar al que hizo un escaneo directo de QR contigo.

          - -

          Ten en cuenta que en un perfil de contacto puedes ver y tocar a las personas que te presentaron a ese contacto, pero puede pasar que no haya una estampilla verde en el título del perfil. Esto generalmente significa que el contacto “envió un mensaje desde otro dispositivo”.

          +and an “Introduced by” line. +Every green-checkmarked contact either did a direct QR-scan with you +or was introduced by a another green-checkmarked contact. +Introductions happen automatically when adding members to groups. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. +In a contact profile you can tap on the “Introduced by …” text repeatedly +until you get to the one with whom you directly did a QR-scan.

          Para obtener una discusión más detallada sobre “cifrado de extremo a extremo garantizado”, por favor consulta los protocolos Secure-Join y lee específicamente sobre “Grupos Verificados”, el término técnico de lo que aquí se llama chats “marcados con una estampilla verde” o “cifrados de extremo a extremo garantizado”.

          -

          - - - Un contacto “envió un mensaje desde otro dispositivo”, ¿qué puedo hacer? - - -

          - -

          Tu chat con un contacto perdió el cifrado de extremo a extremo garantizado. -La estampilla verde fue eliminada para este chat y contacto cuando veas esta advertencia. -Si encuentras sorprendente la repentina pérdida de cifrado de extremo a extremo garantizado -para este contacto, ¡no aceptes la advertencia! -En su lugar, verifica con tu contacto a través de un segundo canal -como una videollamada, otra app de chat o una llamada telefónica, -para averiguar qué sucedió.

          - -

          Si tu contacto realmente causó la caída del cifrado de extremo a extremo garantizado, por favor vea los siguientes párrafos para conocer las razones comunes y sus mitigaciones. Sin embargo, todos los demás chats marcados con una estampilla verde siguen estando cifrados de extremo a extremo garantizado, incluso si el contacto es miembro allí.

          - -

          Tu contacto está usando Delta Chat en un segundo dispositivo (teléfono o computadora portátil)

          - -

          Si tienen otro dispositivo con la aplicación Delta Chat en funcionamiento, -deben eliminar la cuenta del nuevo dispositivo -y agregarla como un segundo dispositivo según se describe aquí. -Tan pronto como te envíen un mensaje después, la advertencia desaparecerá -y se establecerá el cifrado garantizado con ambos dispositivos de tu contacto.

          - -

          Tu contacto reinstaló Delta Chat utilizando su antiguo inicio de sesión de cuenta

          - -

          Si tienen un archivo de respaldo, -deben eliminar la cuenta del nuevo dispositivo -y en su lugar importar el archivo de respaldo para recrear su cuenta. -Tan pronto como te envíen un mensaje después, la advertencia desaparecerá -y se restablecerá el cifrado garantizado para este contacto.

          - -

          Si no tienen un archivo de respaldo, es mejor realizar un escaneo QR con tu compañero de chat para restablecer el cifrado de extremo a extremo garantizado.

          - -

          Tu contacto envió un correo a través de una interfaz de correo web o otra aplicación de correo electrónico y volverá a usar Delta Chat pronto.

          - -

          Si estás seguro de que el contacto a veces utiliza webmail, -o alguna otra aplicación de correo que carece de cifrado de extremo a extremo, -entonces puedes aceptar la advertencia. -Tan pronto como tu contacto vuelva a utilizar Delta Chat, -el cifrado de extremo a extremo garantizado se restablecerá automáticamente.

          - -

          Tus contactos dejaron de usar Delta Chat completamente

          - -

          A veces, mantenerse en contacto es más importante que el cifrado de extremo a extremo. El cifrado de capa de transporte (“Transport Layer Encryption” o TLS) puede proteger de manera significativa la confidencialidad de tus mensajes entre tu dispositivo y el servidor de correo electrónico. Pero sin el cifrado de extremo a extremo, tú y tu contacto están confiando en que el servidor de correo electrónico no lea ni manipule tus mensajes, y que no los entregue a terceros.

          - -

          En cualquier caso, no puedes hacer mucho más que aceptar la advertencia. -Por favor, también elimina el contacto de cualquier grupo activo con estampilla verde -que puedas encontrar en “Chats compartidos” en el perfil del contacto. -Esto evitará que tu contacto reciba mensajes “ilegibles”.

          - -

          Si el contacto eliminó Delta Chat debido a un comportamiento defectuoso o indeseable, -por favor considera publicar en nuestro foro de soporte -para ayudarnos a identificar y solucionar problemas comunes. ¡Gracias!

          -

          @@ -932,10 +873,9 @@ y los metadatos de los archivos adjuntos, como los nombres de archivo.

          -

          Sí, Delta Chat utiliza un subconjunto seguro de OpenPGP -y solo muestra un indicador de seguridad de candado en un mensaje -si todo el mensaje está correctamente cifrado y firmado. -Por ejemplo, las “firmas desvinculadas” no se consideran seguras.

          +

          Yes, Delta Chat uses a secure subset of OpenPGP +requiring the whole message to be properly encrypted and signed. +For example, “Detached signatures” are not treated as secure.

          OpenPGP is not insecure by itself. Most publicly discussed OpenPGP security problems @@ -955,7 +895,7 @@ which was thankfully adopted in summer 2023.

          - ¿Consideraron usar alternativas a OpenPGP para el cifrado de extremo a extremo? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

          @@ -998,17 +938,15 @@ as defined by the Autocrypt Level 1 specification.

          - ¿Se expone un mensaje en texto claro si no está disponible el cifrado de extremo a extremo? + Are messages marked with the mail icon exposed on the Internet?

          -

          Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

          +

          If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

          Delta Chat by default uses strict TLS encryption @@ -1020,8 +958,6 @@ If the involved e-mail servers support mantener un cifrado de extremo a extremo garantizado sobre el cifrado TLS proporciona seguridad generalizada entre tus dispositivos y los del destinatario. Ni siquiera tu proveedor de correo electrónico o de Internet podrá leer o modificar tus mensajes.

          @@ -1031,24 +967,25 @@ even if the message was not end-to-end encrypted.

          -

          Delta Chat protege la mayoría de los metadatos de los mensajes al colocar la siguiente información en la parte cifrada de extremo a extremo de los mensajes:

          +

          Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

          + +

          E-mail Servers can therefore only see

            -
          • Subject line
          • -
          • Group avatar and name
          • -
          • MDN (read receipt) requests (Chat-Disposition-Notification-To)
          • -
          • Disappearing message timer (Ephemeral-Timer)
          • -
          • Chat-Group-Member-Removed, Chat-Group-Member-Added
          • -
          • Secure-Join header containing secure join commands
          • -
          • Notification about enabling location streaming
          • -
          • WebRTC room URL
          • +
          • +

            the message date,

            +
          • +
          • +

            sender and receiver addresses

            +
          • +
          • +

            and message size.

            +
          -

          Los servidores de correo electrónico no obtienen acceso a estos metadatos protegidos -pero sí ven la fecha del mensaje así como el tamaño del mensaje, -y, lo que es más importante, las direcciones del remitente y del destinatario. -Los servidores de correo electrónico necesitan direcciones de destinatarios para enrutar y -entregar mensajes a los dispositivos del destinatario.

          +

          All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

          @@ -1060,82 +997,34 @@ entregar mensajes a los dispositivos del destinatario.

          Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

          +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

          -

          +

          - ¿Cómo puedo verificar la información de cifrado? + Does Delta Chat support “Sealed Sender”?

          -

          Puede verificar manualmente el estado de cifrado de extremo a extremo en el diálogo “Cifrado” (perfil de usuario en Android/iOS o hacer clic derecho en el elemento de lista de chat de un usuario en el escritorio). Delta Chat muestra dos huellas digitales allí. Si las mismas huellas digitales aparecen en su propio dispositivo y en el dispositivo de su contacto, la conexión es segura.

          - -

          - - - ¿Cómo puedo verificar el estado de cifrado de los mensajes? - - -

          +

          No, not yet.

          -

          Un pequeño candado en una burbuja de mensaje indica que el mensaje fue correctamente cifrado de extremo a extremo por el remitente dado. Si no hay candado, es probable que el mensaje no esté correctamente cifrado de extremo a extremo, ya que el remitente utiliza una aplicación o interfaz de correo web sin soporte para el cifrado de extremo a extremo.

          - -

          - - - ¿Por qué veo mensajes sin cifrar? - - -

          +

          The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

          -

          If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

          - -

          - - - ¿Cómo puedo obtener un chat cifrado de extremo a extremo con un contacto de Delta Chat que a veces utiliza webmail u otra aplicación de correo electrónico no Autocrypt? - - -

          - -

          Si necesitas un chat cifrado de extremo a extremo de forma segura con un contacto que está utilizando su cuenta tanto con Delta Chat como con aplicaciones no-Autocrypt (por ejemplo, webmail), lo mejor es configurar cifrado de extremo a extremo garantizado con ellos y luego crear un grupo cifrado de extremo a extremo garantizado con ustedes dos como miembros. En este chat de grupo, todos los mensajes estarán cifrados de extremo a extremo, incluso si el chat directo entre ustedes dos tiene una advertencia de “… envió un mensaje desde otro dispositivo”.

          - -

          - - - ¿Cómo puedo asegurar el cifrado de extremo a extremo y la eliminación de mensajes? - - -

          - -

          La mejor manera de asegurar que cada mensaje esté cifrado de extremo a extremo -y que los metadatos se borren lo más rápido posible -es utilizando chats con cifrado de extremo a extremo garantizado -y activando la desaparición de mensajes.

          - -

          Los chats con cifrado de extremo a extremo garantizado protegen contra ataques MITM -y al activar “mensajes efímeros” se borran los mensajes -en el servidor después de un tiempo configurado por el usuario.

          - -

          Si no necesitas una copia de tus mensajes en el servidor durante más tiempo, -también puedes activar “eliminar mensajes del servidor automáticamente”.

          +

          Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

          @@ -1145,45 +1034,48 @@ también puedes activar “eliminar mensajes del servidor auto

          -

          No, Delta Chat no soporta Perfect Forward Secrecy (PFS). -Esto significa que si se filtra tu clave privada de descifrado de Delta Chat, -y alguien ha recopilado tus mensajes previos en tránsito, -podrán descifrarlos y leerlos utilizando la clave de descifrado filtrada.

          +

          No, not yet.

          -

          Ten en cuenta, sin embargo, que si alguien obtiene tus claves de descifrado, -también podrán obtener tus mensajes, -independientemente de si se implementa o no el Perfect Forward Secrecy. -La situación típica en el mundo real para las claves de descifrado filtradas es la incautación del dispositivo, -que discutimos en nuestra respuesta sobre metadatos e incautación de dispositivos.

          +

          Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, +and someone has collected your prior in-transit messages, +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

          -

          It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

          +

          We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

          -

          +

          - ¿Es el cifrado de extremo a extremo de Delta Chat tan seguro como el de Signal? + Does Delta Chat support Post-Quantum-Cryptography?

          -

          It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

          +

          No, not yet.

          -

          In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

          +

          Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

          + +

          + + + How can I manually check encryption information? + + +

          + +

          Puede verificar manualmente el estado de cifrado de extremo a extremo en el diálogo “Cifrado” (perfil de usuario en Android/iOS o hacer clic derecho en el elemento de lista de chat de un usuario en el escritorio). Delta Chat muestra dos huellas digitales allí. Si las mismas huellas digitales aparecen en su propio dispositivo y en el dispositivo de su contacto, la conexión es segura.

          @@ -1218,7 +1110,7 @@ from most recent to older:

        • 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

            @@ -1459,15 +1351,16 @@ extendable messenger.

          • -
          • Las aplicaciones webxdc no pueden enviar datos a Internet ni descargar nada.
          • -
          • Una aplicación webxdc solo puede intercambiar datos dentro de un chat de Delta Chat, con su -copias en los dispositivos de tus compañeros de chat. Aparte de eso, es completamente -aislado de Internet.
          • -
          • La privacidad que ofrece una aplicación webxdc es la privacidad de tu chat, siempre y cuando -confíe en las personas con las que chateas, también puedes confiar en la aplicación webxdc.
          • -
          • Esto también significa: puede suponer un riesgo para la privacidad abrir aplicaciones webxdc en chats donde -no confías en los miembros, como lo sabes por los archivos adjuntos de correos electrónicos, donde -solo abre archivos adjuntos de remitentes en los que confía y no de spammers.
          • +
          • webxdc apps can not send data to the Internet, or download anything.
          • +
          • A webxdc app can only exchange data within a Delta Chat chat, with its +copies on the devices of your chat partners. Other than that, it’s completely +isolated from the Internet.
          • +
          • The privacy a webxdc app offers is the privacy of your chat - as long as you +trust the people you chat with, you can trust the webxdc app as well.
          • +
          • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

          @@ -1551,21 +1444,10 @@ this way, you will have a new random Jitsi room every time you call someone.

        • -
            -
          • With a Broadcast List you can send a message to many recipients at once; when -they reply to you, you get the reply in your direct 1:1 chat with them. The -recipients can’t see each other.
          • -
          • Technically, it is an E-Mail with many recipients in BCC.
          • -
          • You can turn on the feature in the “experimental features” section in the -advanced settings. Then you can create a Broadcast List from the “New Chat” -dialog.
          • -
          • In case you are using more than one device, Broadcast Lists are currently not -synced between them.
          • -
          • Messages sent to broadcast lists are not encrypted. Encryption would break -anonymity, because then all recipients would know who else received it -(Sending individual mails to everyone would be worse for rate limit and network -consumption reason).
          • -
          +

          With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

          @@ -1619,6 +1501,11 @@ a message, but also appears on the map.

          +

          Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

          +
          1. Change your address in “Settings → Advanced → Password and Account” and @@ -1717,19 +1604,19 @@ Esto es lo que hace Delta Chat con esos permisos:

            Sin embargo, algunos proveedores necesitan opciones especiales para funcionar correctamente, ver Descripción de proveedores
        -

        +

        - Quiero manejar mi propio servidor de correo para Delta Chat. ¿Qué me recomiendan? + I want to manage my own server for Delta Chat. What do you recommend?

        diff --git a/src/main/assets/help/fr/help.html b/src/main/assets/help/fr/help.html index a1c11226a..c0cd6425c 100644 --- a/src/main/assets/help/fr/help.html +++ b/src/main/assets/help/fr/help.html @@ -36,27 +36,24 @@
      29. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
      30. -
      31. Encryption and Security +
      32. Encryption and Security @@ -90,7 +87,7 @@
      33. -

        Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

        +

        Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

        -

        Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

        +
          +
        • +

          Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

          +
        • +
        • +

          Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

          +
        • +
        • +

          Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

          +
        • +
        + +

        Delta Chat does not query, publish or interact with any OpenPGP key servers.

        @@ -737,28 +742,37 @@ guarantee end-to-end encrypted messages.

        -

        All end-to-end encrypted messages carry a padlock:

        - -

        padlock in bubble

        - -

        End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

        - -

        green checkmark in title

        +

        All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

        -

        +

        - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

        -

        If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

        +

        If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

        -

        If you are together in person, -you can show a QR code to your chat partner.

        +

        If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

        + +

        + + + How can I establish a chat with a new contact? + + +

        + +

        You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

        • @@ -767,141 +781,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

        • -

          For direct 1:1 chat invitations, +

          For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

        -

        Let your chat partner scan the QR image +

        Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

        -

        Now wait while Secure-Join network messages are exchanged between both devices.

        +

        Now wait while end-to-end encryption is getting established.

        • -

          If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

          +

          If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

        • -

          If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

          +

          If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

        Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

        +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

        - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

        -

        Chat titles with green checkmarks +

        A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

        - -

        Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

        -

        Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

        -

        For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

        -

        - - - A contact “sent a message from another device”, what can i do? - - -

        - -

        Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

        - -

        If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

        - -

        Your contact is using Delta Chat on a second device (phone or laptop)

        - -

        If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

        - -

        Your contact reinstalled Delta Chat using their old account login

        - -

        If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

        - -

        If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

        - -

        Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

        - -

        If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

        - -

        Your contact stopped using Delta Chat entirely

        - -

        Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

        - -

        In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

        - -

        If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

        -

        @@ -926,8 +859,7 @@ and attachment metadata such as filenames.

        Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

        OpenPGP is not insecure by itself. @@ -948,7 +880,7 @@ which was thankfully adopted in summer 2023.

        - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

        @@ -991,17 +923,15 @@ as defined by the Autocrypt Level 1 specification.

        - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

        -

        Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

        +

        If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

        Delta Chat by default uses strict TLS encryption @@ -1013,10 +943,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

        @@ -1026,25 +952,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

        -

        Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

        +

        Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

        + +

        E-mail Servers can therefore only see

          -
        • Subject line
        • -
        • Group avatar and name
        • -
        • MDN (read receipt) requests (Chat-Disposition-Notification-To)
        • -
        • Disappearing message timer (Ephemeral-Timer)
        • -
        • Chat-Group-Member-Removed, Chat-Group-Member-Added
        • -
        • Secure-Join header containing secure join commands
        • -
        • Notification about enabling location streaming
        • -
        • WebRTC room URL
        • +
        • +

          the message date,

          +
        • +
        • +

          sender and receiver addresses

          +
        • +
        • +

          and message size.

          +
        -

        E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

        +

        All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

        @@ -1056,96 +982,34 @@ deliver messages to recipient’s devices.

        Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

        +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

        -

        +

        - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

        -

        You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

        - -

        - - - How can I check the encryption status of messages? - - -

        +

        No, not yet.

        -

        A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

        - -

        - - - Why do I see unencrypted messages? - - -

        +

        The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

        -

        If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

        - -

        - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

        - -

        If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

        - -

        - - - How can I ensure message end-to-end encryption and deletion? - - -

        - -

        The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

        - -

        Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

        - -

        If you don’t need a longer-lived copy of your messages on the server, -you can also turn on “delete messages from server automatically”.

        +

        Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

        @@ -1155,45 +1019,52 @@ you can also turn on “delete messages from server automatica

        -

        No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

        No, not yet.

        + +

        Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

        +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

        -

        Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

        - -

        It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

        +

        We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

        -

        +

        - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

        -

        It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

        +

        No, not yet.

        -

        In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

        +

        Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

        + +

        + + + How can I manually check encryption information? + + +

        + +

        You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

        @@ -1228,7 +1099,7 @@ from most recent to older:

      34. 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

          @@ -1452,9 +1323,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
        • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
        • -
        • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
        • +
        • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

        @@ -1531,14 +1403,10 @@ another rather stable experiment we run on the side (sic!).

        -
          -
        • Une liste de diffusion vous permet d’envoyer un message à plusieurs destinataires en même temps sans qu’ils puissent se voir mutuellement. Vous recevez leurs réponses respectives dans les discussions privées que vous avez avec chacun d’eux.
        • -
        • Concrètement, c’est un courriel avec plusieurs destinataires en copie cachée.
        • -
        • Vous pouvez activer cette option dans la section “Fonctionnalités expérimentales” des paramètres avancés. Vous pourrez ensuite créer une liste de diffusion à partir du bouton “Nouvelle discussion”.
        • -
        • Si vous utilisez plusieurs appareils, veuillez noter qu’il n’est pas possible, pour l’instant, de synchroniser les listes de diffusion.
        • -
        • Les messages envoyés à des listes de diffusion ne sont pas chiffrés, parce que le chiffrement romprait l’anonymat puisque tous les destinataires pourraient alors voir qui d’autre a reçu le message. -(Mais envoyer des courriels individuels à tout le monde serait encore pire à cause de la consommation du réseau requise et des limites d’envoi).
        • -
        +

        With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

        @@ -1592,6 +1460,11 @@ a message, but also appears on the map.

      35. +

        Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

        +
        1. Change your address in “Settings → Advanced → Password and Account” and @@ -1693,17 +1566,19 @@ Voici ce que fait Delta Chat avec ces autorisations:

          Cependant, il faut activer des options spéciales pour que cela fonctionne correctement avec certains fournisseurs… Voir la liste des fournisseurs.
        2. -

          +

          - Je veux administrer mon propre serveur courriel pour Delta Chat : que me conseillez-vous ? + I want to manage my own server for Delta Chat. What do you recommend?

          diff --git a/src/main/assets/help/green-checkmark-screenshot.png b/src/main/assets/help/green-checkmark-screenshot.png deleted file mode 100644 index 1e03659e1..000000000 Binary files a/src/main/assets/help/green-checkmark-screenshot.png and /dev/null differ diff --git a/src/main/assets/help/id/help.html b/src/main/assets/help/id/help.html index fa265a813..7b63048b5 100644 --- a/src/main/assets/help/id/help.html +++ b/src/main/assets/help/id/help.html @@ -36,27 +36,24 @@
        3. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
        4. -
        5. Encryption and Security +
        6. Encryption and Security @@ -90,7 +87,7 @@
        7. -

          Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

          +

          Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

          -

          Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

          +
            +
          • +

            Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

            +
          • +
          • +

            Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

            +
          • +
          • +

            Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

            +
          • +
          + +

          Delta Chat does not query, publish or interact with any OpenPGP key servers.

          @@ -763,28 +768,37 @@ guarantee end-to-end encrypted messages.

          -

          All end-to-end encrypted messages carry a padlock:

          - -

          padlock in bubble

          - -

          End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

          - -

          green checkmark in title

          +

          All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

          -

          +

          - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

          -

          If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

          +

          If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

          -

          If you are together in person, -you can show a QR code to your chat partner.

          +

          If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

          + +

          + + + How can I establish a chat with a new contact? + + +

          + +

          You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

          • @@ -793,141 +807,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

          • -

            For direct 1:1 chat invitations, +

            For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

          -

          Let your chat partner scan the QR image +

          Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

          -

          Now wait while Secure-Join network messages are exchanged between both devices.

          +

          Now wait while end-to-end encryption is getting established.

          • -

            If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

            +

            If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

          • -

            If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

            +

            If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

          Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

          +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

          - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

          -

          Chat titles with green checkmarks +

          A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

          - -

          Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

          -

          Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

          -

          For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

          -

          - - - A contact “sent a message from another device”, what can i do? - - -

          - -

          Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

          - -

          If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

          - -

          Your contact is using Delta Chat on a second device (phone or laptop)

          - -

          If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

          - -

          Your contact reinstalled Delta Chat using their old account login

          - -

          If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

          - -

          If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

          - -

          Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

          - -

          If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

          - -

          Your contact stopped using Delta Chat entirely

          - -

          Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

          - -

          In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

          - -

          If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

          -

          @@ -952,8 +885,7 @@ and attachment metadata such as filenames.

          Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

          OpenPGP is not insecure by itself. @@ -974,7 +906,7 @@ which was thankfully adopted in summer 2023.

          - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

          @@ -1017,17 +949,15 @@ as defined by the Autocrypt Level 1 specification.

          - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

          -

          Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

          +

          If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

          Delta Chat by default uses strict TLS encryption @@ -1039,10 +969,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

          @@ -1052,25 +978,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

          -

          Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

          +

          Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

          + +

          E-mail Servers can therefore only see

            -
          • Subject line
          • -
          • Group avatar and name
          • -
          • MDN (read receipt) requests (Chat-Disposition-Notification-To)
          • -
          • Disappearing message timer (Ephemeral-Timer)
          • -
          • Chat-Group-Member-Removed, Chat-Group-Member-Added
          • -
          • Secure-Join header containing secure join commands
          • -
          • Notification about enabling location streaming
          • -
          • WebRTC room URL
          • +
          • +

            the message date,

            +
          • +
          • +

            sender and receiver addresses

            +
          • +
          • +

            and message size.

            +
          -

          E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

          +

          All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

          @@ -1082,96 +1008,34 @@ deliver messages to recipient’s devices.

          Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

          +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

          -

          +

          - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

          -

          You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

          - -

          - - - How can I check the encryption status of messages? - - -

          +

          No, not yet.

          -

          A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

          - -

          - - - Why do I see unencrypted messages? - - -

          +

          The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

          -

          If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

          - -

          - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

          - -

          If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

          - -

          - - - How can I ensure message end-to-end encryption and deletion? - - -

          - -

          The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

          - -

          Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

          - -

          If you don’t need a longer-lived copy of your messages on the server, -you can also turn on “delete messages from server automatically”.

          +

          Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

          @@ -1181,45 +1045,52 @@ you can also turn on “delete messages from server automatica

          -

          No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

          No, not yet.

          + +

          Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

          +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

          -

          Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

          - -

          It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

          +

          We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

          -

          +

          - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

          -

          It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

          +

          No, not yet.

          -

          In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

          +

          Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

          + +

          + + + How can I manually check encryption information? + + +

          + +

          You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

          @@ -1254,7 +1125,7 @@ from most recent to older:

        8. 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

            @@ -1501,9 +1372,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
          • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
          • -
          • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
          • +
          • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

          @@ -1587,21 +1459,10 @@ this way, you will have a new random Jitsi room every time you call someone.

        9. -
            -
          • With a Broadcast List you can send a message to many recipients at once; when -they reply to you, you get the reply in your direct 1:1 chat with them. The -recipients can’t see each other.
          • -
          • Technically, it is an E-Mail with many recipients in BCC.
          • -
          • You can turn on the feature in the “experimental features” section in the -advanced settings. Then you can create a Broadcast List from the “New Chat” -dialog.
          • -
          • In case you are using more than one device, Broadcast Lists are currently not -synced between them.
          • -
          • Messages sent to broadcast lists are not encrypted. Encryption would break -anonymity, because then all recipients would know who else received it -(Sending individual mails to everyone would be worse for rate limit and network -consumption reason).
          • -
          +

          With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

          @@ -1658,6 +1519,11 @@ would be done by the Delta Chat app.

          +

          Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

          +
          1. Change your address in “Settings → Advanced → Password and Account” and @@ -1760,19 +1626,19 @@ However, some providers need special options to work properly, see Provider Overview

          2. -

            +

            - I want to manage my own e-mail server for Delta Chat. What do you recommend? + I want to manage my own server for Delta Chat. What do you recommend?

            diff --git a/src/main/assets/help/it/help.html b/src/main/assets/help/it/help.html index a9bfbeadf..be7ffc26b 100644 --- a/src/main/assets/help/it/help.html +++ b/src/main/assets/help/it/help.html @@ -36,27 +36,24 @@
          3. Perché Delta Chat si integra con i servizi push centralizzati proprietari di Apple/Google?
          4. -
          5. Crittografia e Sicurezza +
          6. Crittografia e Sicurezza @@ -90,7 +87,7 @@
          7. -

            Autocrypt viene utilizzato automaticamente per stabilire la crittografia end-to-end con contatti e chat di gruppo. Autocrypt utilizza un sottoinsieme limitato e sicuro dello standard OpenPGP. I messaggi crittografati end-to-end sono contrassegnati da un lucchetto -padlock.

            +

            Delta Chat utilizza un sottoinsieme sicuro dello standard OpenPGP +per fornire la crittografia end-to-end automatica utilizzando questi protocolli:

            -

            Protocolli Secure-Join -vengono utilizzati per stabilire chat con crittografia end-to-end garantita -che protegge dagli attacchi di rete e dai server compromessi. -Chat contrassegnata da un segno di spunta verde -green checkmark -garantisce messaggi crittografati end-to-end.

            +
              +
            • +

              Secure-Join +per scambiare informazioni sulla configurazione della crittografia tramite la scansione del codice QR o i “link di invito”.

              +
            • +
            • +

              Autocrypt viene utilizzato per stabilire +automaticamente la crittografia end-to-end tra i contatti e tutti i membri di una chat di gruppo.

              +
            • +
            • +

              Condivisione di un contatto con una +chat +consente ai destinatari di utilizzare la crittografia end-to-end con il contatto.

              +
            • +
            + +

            Delta Chat non esegue query, pubblica o interagisce con alcun server di chiavi OpenPGP.

            @@ -753,28 +761,37 @@ garantisce messaggi crittografati end-to-end.

            -

            Tutti i messaggi crittografati end-to-end portano un lucchetto:

            - -

            padlock in bubble

            - -

            La crittografia end-to-end è garantita se è presente un segno di spunta verde accanto al titolo della chat:

            - -

            green checkmark in title

            +

            Tutti i messaggi in Delta Chat sono crittografati end-to-end per impostazione predefinita. +Dalla serie di rilasci della Versione 2 di Delta Chat (Luglio 2025) +non ci sono più lucchetti o marcatori simili, sui messaggi crittografati end-to-end.

            -

            +

            - Come posso ottenere la crittografia end-to-end garantita e i segni di spunta verdi? + Posso ancora ricevere o inviare mails senza la crittografia end-to-end?

            -

            Se disponi di un secondo canale di comunicazione con il tuo partner di chat, -come una chat video o un altro messenger, -puoi generare un link d’invito.

            +

            Se si utilizzano i relays di chatmail, +è impossibile ricevere o inviare messaggi senza la crittografia end-to-end.

            -

            Se siete insieme di persona, -puoi mostrare un codice QR al tuo partner di chat.

            +

            Se invece si crea un profilo utilizzando un server di posta elettronica classico, +è possibile inviare e ricevere messaggi senza crittografia end-to-end. +I messaggi privi di crittografia end-to-end sono contrassegnati da un’icona e-mail
            +email.

            + +

            + + + Come posso stabilire una chat con un nuovo contatto? + + +

            + +

            È possibile inviare un link di invito attraverso un’altra chat privata, +mostrare un codice QR di invito quando si è vicini o in una videochiamata, +o fare clic su un “contatto” condiviso in una chat.

            • @@ -783,139 +800,60 @@ tocca il titolo del gruppo di chat per vedere l’elenco dei membri, e seleziona “Codice QR di Invito”.

            • -

              Per inviti diretti alla chat 1:1, -tocca l’icona del codice QR +

              Per inviti diretti alla chat 1:1,
              +toccare l’icona del Codice QR nella schermata principale dell’app Delta Chat.

            -

            Lascia che il tuo partner di chat esegua la scansione dell’immagine QR -con la loro app Delta Chat, -oppure fai clic su “Copia” o “Condividi” per creare un collegamento di invito -e condividilo con il tuo partner di chat.

            +

            Chiedere al partner di chat di scansionare l’immagine QR +con la propria app Delta Chat, +oppure cliccare su “Copia” o “Condividi” per creare un link di invito +e condividerlo con il partner di chat.

            -

            Ora attendi che i messaggi di rete Secure-Join vengano scambiati tra entrambi i dispositivi.

            +

            Ora aspettate che la crittografia end-to-end venga stabilita.

            • -

              Se entrambi i dispositivi sono online, -entrambe le parti vedranno eventualmente una chat (di gruppo o diretta) con un segno di spunta verde -green checkmark -accanto al titolo.

              +

              Se entrambe le parti sono online, vedranno presto una chat (di gruppo o diretta) +e potranno iniziare a messaggiare in modo sicuro.

            • -

              Se uno dei dispositivi è offline, verranno visualizzati solo i segni di spunta verdi -verranno visualizzati in seguito quando il dispositivo sarà nuovamente connesso a Internet -e il protocollo di rete Secure-Join è stato completato.

              +

              Se una delle due parti è offline o con rete scadente, +la possibilità di chattare viene ritardata fino al ripristino della connettività.

            -

            Congratulazioni! -Ora utilizzerai automaticamente la crittografia end-to-end garantita -con questo contatto potete aggiungervi a vicenda nei gruppi contrassegnati da un segno di spunta verde -green checkmark, -diffondendo così automaticamente la crittografia end-to-end garantita tra i suoi membri.

            +

            Congratulazioni! +Ora utilizzerai automaticamente la crittografia end-to-end +con questo contatto. +Se vi aggiungete a gruppi di chat, +la crittografia end-to-end sarà stabilita tra tutti i membri.

            - Cosa significano il segno di spunta verde e la “crittografia end-to-end garantita”? + Cosa significa il segno di spunta verde nel profilo di un contatto?

            -

            Titoli di chat con segni di spunta verde +

            Il profilo di un contatto potrebbe mostrare una spunta verde green checkmark -significa che tutti i messaggi nella chat saranno crittografati end-to-end -e non possono essere letti o modificati da server di e-mail o provider Internet compromessi. -Partecipare alle chat di gruppo contrassegnate da un segno di spunta verde diffonde in modo sicuro le informazioni di crittografia di tutti (e i segni di spunta verdi) -in modo da garantire la crittografia end-to-end nel gruppo e tra i membri.

            - -

            Profili di contatto con segni di spunta verdi -green checkmark -significa che attualmente è garantita la crittografia end-to-end dei messaggi a un contatto. -Ogni contatto contrassegnato dal segno di spunta verde ha effettuato una scansione QR diretta con te -o è stato presentato da un altro contatto contrassegnato da un segno di spunta verde. -Le presentazioni avvengono automaticamente quando si aggiungono membri ai gruppi. -Chi aggiunge un contatto a un gruppo contrassegnato da un segno di spunta verde diventa un introduttore -a quei membri che non erano ancora a conoscenza del contatto aggiunto. In un profilo di contatto è possibile toccare ripetutamente il testo “Presentato da…”. -fino ad arrivare a quello con cui hai effettuato direttamente una scansione QR.

            - -

            Tieni presente che nel profilo di un contatto potresti vedere e toccare gli introduttori -ma non c’è il segno di spunta verde nel titolo del profilo. -Questo di solito significa che il contatto “ha inviato un messaggio da un altro dispositivo”.

            +e una linea “Verificato da”. +Ogni contatto con la spunta verde ha fatto un QR-scan con te +o è stato verificato da un altro contatto con la spunta verde. +La verifica si ha automaticamente all’aggiunta dei membri nei gruppi. +Chiunque aggiunga un contatto con spunta verde a un gruppo con solo membri con la spunta verde +diventa colui che l’ha verificato. +Nel profilo di un contatto puoi premere sul campo “Verificato da …” ripetutamente +fino a che vedi con chi hai avuto un QR-scan.

            Per una discussione più approfondita sulla “crittografia end-to-end garantita” consultare Protocolli Secure-Join e leggi nello specifico i “Gruppi Verificati”, il termine tecnico di quelle che qui vengono chiamate chat “con segno di spunta verde” o “crittografate end-to-end garantite”.

            -

            - - - Un contatto “ha inviato un messaggio da un altro dispositivo”, cosa posso fare? - - -

            - -

            La tua chat con un contatto che ha perso la crittografia end-to-end garantita. -Il segno di spunta verde è stato rimosso per questa chat e per questo contatto quando vedi questo avviso. -Se riscontri l’improvvisa rimozione della crittografia end-to-end garantita -inaspettatamente per questo contatto allora non accettare l’avviso! -Verifica invece con il tuo contatto attraverso un secondo canale -come una videochiamata, un altro messenger o una telefonata, -per scoprire cosa è successo.

            - -

            Se il tuo contatto ha effettivamente causato la rimozione della crittografia end-to-end garantita -consultare i paragrafi successivi per i motivi comuni e le relative attenuazioni. -Indipendentemente da ciò, tutte le altre chat contrassegnate da un segno di spunta verde rimangono garantite con crittografia end-to-end -anche se il contatto è un membro.

            - -

            Il tuo contatto sta utilizzando Delta Chat su un secondo dispositivo (telefono o laptop)

            - -

            Se hanno un altro dispositivo con l’app Delta Chat in esecuzione, -dovrebbero rimuovere il profilo dal nuovo dispositivo -e aggiungerlo come secondo dispositivo come descritto qui. -Non appena ti invieranno un messaggio, l’avviso scomparirà -e la crittografia garantita viene stabilita con entrambi i dispositivi del tuo contatto.

            - -

            Il tuo contatto ha reinstallato Delta Chat utilizzando il vecchio login del profilo

            - -

            Se hanno un file di backup, -dovrebbero rimuovere il profilo dal nuovo dispositivo -e piuttosto importare il file di backup per ricreare il proprio profilo. -Non appena ti invieranno un messaggio, l’avviso scomparirà -e la crittografia garantita viene ristabilita per questo contatto.

            - -

            Se non hanno un file di backup, è meglio eseguire una scansione QR -con il tuo partner di chat per ristabilire la crittografia end-to-end garantita.

            - -

            Il tuo contatto ha inviato un’e-mail tramite un’interfaccia webmail o un’altra app di posta elettronica -e presto tornerà a utilizzare Delta Chat.

            - -

            Se sei sicuro che il contatto a volte utilizza la webmail, -o un’altra app di posta priva di crittografia end-to-end, -allora puoi accettare l’avvertimento. -Non appena il tuo contatto utilizzerà nuovamente Delta Chat, -la crittografia end-to-end garantita verrà ristabilita automaticamente.

            - -

            Il tuo contatto ha smesso completamente di utilizzare Delta Chat

            - -

            A volte rimanere in contatto è più importante della crittografia end-to-end. -“Transport Layer Encryption” (TLS) può comunque proteggere in modo significativo -la riservatezza dei tuoi messaggi tra il tuo dispositivo e il server di posta elettronica. -Ma senza la crittografia end-to-end tu e il tuo contratto vi fidate del vostro server di posta elettronica -a non leggere o manipolare i tuoi messaggi e a non trasmetterli a terzi.

            - -

            In ogni caso, non puoi fare molto altro che accettare l’avvertimento. -Rimuovi anche il contatto da qualsiasi gruppo attivo contrassegnato da un segno di spunta verde -che puoi trovare in “Chat condivise” nel profilo dei contatti. -Ciò evita che il tuo contatto riceva messaggi “illeggibili”.

            - -

            Se il contatto ha rimosso Delta Chat a causa di bug o di comportamenti indesiderati, -ti invitiamo a pubblicare post sul nostro forum di supporto -per aiutarci a identificare e affrontare i problemi comuni. Grazie!

            -

            @@ -940,9 +878,8 @@ e metadati degli allegati come i nomi dei file.

            Sì, Delta Chat utilizza un sottoinsieme sicuro di OpenPGP -e visualizza solo un indicatore di sicurezza lucchetto su un messaggio -se l’intero messaggio è crittografato e firmato correttamente. -Ad esempio, le “Firme distaccate” non sono considerate sicure.

            +che richiede che l’intero messaggio sia correttamente crittografato e firmato. +Ad esempio, le “Firme staccate” non sono considerate sicure.

            OpenPGP non è insicuro di per sé. La maggior parte dei problemi di sicurezza di OpenPGP discussi pubblicamentederivano in realtà da una cattiva usabilità o da cattive implementazioni di strumenti o app (o entrambi). @@ -957,10 +894,10 @@ e verificato per la sicurezza nel 2019 e nel 2024 per migliorare ulteriormente le caratteristiche di sicurezza implementando il nuovo aggiornamento crittografico IETF OpenPGP che per fortuna è stato adottato nell’estate 2023.

            -

            +

            - Avete considerato l’utilizzo di alternative a OpenPGP per la crittografia end-to-end? + Avete considerato l’utilizzo di alternative a OpenPGP per la crittografia end-to-end?

            @@ -1003,17 +940,15 @@ come definito dalla specifica Autocrypt Level 1.

            - Un messaggio viene esposto in chiaro se la crittografia end-to-end non è disponibile? + I messaggi contrassegnati dall’icona della posta sono esposti su Internet?

            -

            Anche se non è garantito che i tuoi messaggi siano crittografati end-to-end, -sono ancora protetti dai fornitori di Internet come le società di telefonia mobile o via cavo. -Tuttavia, i provider di posta elettronica tuoi e del destinatario -potranno leggere, analizzare o addirittura modificare i tuoi messaggi, -compresi eventuali allegati, -se non sono crittografati end-to-end.

            +

            Se inviate o ricevete messaggi e-mail senza crittografia end-to-end (utilizzando un server e-mail classico), +sono comunque protetti dalle compagnie telefoniche o via cavo che non possono leggere o modificare i vostri messaggi e-mail. +Ma sia il vostro provider e-mail che quello del destinatario +possono leggere, analizzare o modificare i vostri messaggi, compresi gli allegati.

            Delta Chat per impostazione predefinita utilizza Crittografia TLS rigorosa @@ -1025,10 +960,6 @@ Se i server e-mail coinvolti supportano mantenere la crittografia end-to-end garantita oltre alla crittografia TLS -fornisce una sicurezza pervasiva tra i tuoi dispositivi e quelli del destinatario. -Nemmeno il tuo provider e-mail o Internet sarà in grado di leggere o modificare i tuoi messaggi.

            @@ -1038,25 +969,25 @@ Nemmeno il tuo provider e-mail o Internet sarà in grado di leggere o modificare

            -

            Delta Chat protegge la maggior parte dei metadati dei messaggi inserendo le seguenti informazioni -nella parte crittografata end-to-end dei messaggi:

            +

            Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

            + +

            E-mail Servers can therefore only see

              -
            • Linea oggetto
            • -
            • Avatar e nome del gruppo
            • -
            • Richieste MDN (conferma di lettura) (“Chat-Disposition-Notification-To”)
            • -
            • Temporizzatore dei messaggi che scompaiono (“Ephemeral-Timer”)
            • -
            • “Membro del gruppo chat rimosso”, “Membro del gruppo chat aggiunto”.
            • -
            • Intestazione “Secure-Join” contenente comandi di join sicuri
            • -
            • Notifica sull’attivazione dello streaming della posizione
            • -
            • URL della stanza WebRTC
            • +
            • +

              the message date,

              +
            • +
            • +

              sender and receiver addresses

              +
            • +
            • +

              and message size.

              +
            -

            I server E-Mail non hanno accesso a questi metadati protetti -ma vedono la data del messaggio e la dimensione del messaggio, -e, cosa ancora più importante, gli indirizzi del mittente e del destinatario. -I server E-Mail necessitano di indirizzi di destinatari per instradare e -consegnare messaggi ai dispositivi del destinatario.

            +

            All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

            @@ -1066,98 +997,36 @@ consegnare messaggi ai dispositivi del destinatario.

            -

            Entrambi per la protezione dai server e-mail che raccolgono metadati -nonché contro il pericolo di sequestro del dispositivo -consigliamo di utilizzare un’istanza del server e-mail ottimizzata per Delta Chat -per creare profili temporanei pseudonimi tramite scansioni di codici QR. -Tieni presente che le app Delta Chat su tutte le piattaforme supportano più profili -in questo modo puoi utilizzare facilmente profili “1 settimana” o “1 mese” specifici per azioni accanto al tuo profilo “principale”. -con la consapevolezza che tutti i dati temporanei del profilo, insieme a tutti i metadati, verranno cancellati. -Inoltre, se un dispositivo viene sequestrato, i contatti utilizzano profili e-mail temporanei -non possono essere identificati facilmente, rispetto ai messaggeri che rivelano -numeri di telefono nei gruppi di chat che a loro volta sono spesso associati a identità legali.

            +

            Both for protecting against metadata-collecting e-mail servers +as well as against the threat of device seizure +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. +Note that Delta Chat apps on all platforms support multiple profiles +so you can easily use situation-specific profiles next to your “main” profile +with the knowledge that all their data, along with all metadata, will be deleted. +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

            -

            +

            - Come posso verificare le informazioni di crittografia? + Does Delta Chat support “Sealed Sender”?

            -

            È possibile verificare manualmente lo stato della crittografia end-to-end nella finestra di dialogo “Crittografia”. -(profilo utente su Android/iOS o clic con il pulsante destro del mouse sull’elemento dell’elenco chat di un utente sul desktop). -Delta Chat mostra due impronte digitali. -Se sul tuo dispositivo e su quello del tuo contatto vengono visualizzate le stesse impronte digitali, -la connessione è sicura.

            - -

            - - - Come posso verificare lo stato di crittografia dei messaggi? - - -

            +

            No, non ancora.

            -

            Un piccolo lucchetto in un fumetto denota -che il messaggio è stato correttamente crittografato end-to-end dal mittente specificato. -Se non è presente alcun lucchetto, il messaggio non è stato crittografato correttamente end-to-end -molto probabilmente perché il mittente utilizza un’app o un’interfaccia webmail -senza supporto per la crittografia end-to-end.

            - -

            - - - Perché vedo messaggi non crittografati? - - -

            +

            The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

            -

            Se un contatto utilizza un’app e-mail non Autocrypt, -tutti i messaggi che coinvolgono questo contatto (in un gruppo o in una chat 1:1) -non sarà crittografato end-to-end e quindi non mostrerà un “lucchetto” con i messaggi. -Tieni presente che anche se i tuoi contatti utilizzano Delta Chat sul proprio profilo, -potrebbero anche utilizzare un’app di posta elettronica non Autocrypt su quel profilo -che quindi potrebbe causare messaggi non crittografati in modo intermittente. -La risposta non crittografata a messaggi non crittografati è richiesta da Autocrypt -per evitare messaggi illeggibili tra i tuoi contatti -e la loro app e-mail non Autocrypt.

            - -

            - - - Come posso ottenere una chat crittografata end-to-end con un contatto Delta Chat che a volte utilizza la webmail o un’altra app e-mail non Autocrypt? - - -

            - -

            Se hai bisogno di una chat crittografata end-to-end sicura con un contatto -chi utilizza il proprio profilo sia con Delta Chat che con app non Autocrypt (ad esempio webmail), -è meglio configurare la crittografia end-to-end garantita con loro -e quindi crea una chat di gruppo crittografata end-to-end garantita con voi due come membri. -In questa chat di gruppo tutti i messaggi verranno crittografati end-to-end -anche se la chat diretta tra voi due ha a -“… inviato un messaggio da un altro dispositivo” avviso.

            - -

            - - - Come posso garantire la crittografia e l’eliminazione end-to-end dei messaggi? - - -

            - -

            Il modo migliore per garantire che ogni messaggio sia crittografato end-to-end, -e i metadati vengono eliminati il ​​più rapidamente possibile -è utilizzare chat con crittografia end-to-end garantita -e l’attivazione dei messaggi a scomparsa.

            - -

            Le chat crittografate end-to-end garantiscono la protezione dagli attacchi MITM -e l’attivazione dei “messaggi che scompaiono” elimina i messaggi -sul server dopo un tempo configurato dall’utente.

            - -

            Se non hai bisogno di una copia più longeva dei tuoi messaggi sul server, -puoi anche attivare “elimina messaggi dal server”.

            +

            Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

            @@ -1167,45 +1036,52 @@ puoi anche attivare “elimina messaggi dal server”.

            -

            No, Delta Chat non supporta Perfect Forward Secrecy (PFS). -Ciò significa che se la tua chiave di cifratura privata Delta Chat viene divulgata, -e qualcuno ha raccolto i tuoi precedenti messaggi in transito, -sarà in grado di decifrarli e leggerli utilizzando la chiave di cifratura trapelata.

            +

            No, non ancora.

            -

            Tieni presente, tuttavia, che se qualcuno ottiene le tue chiavi di decrittazione, -in genere saranno anche in grado di ricevere i tuoi messaggi, -indipendentemente dal fatto che Perfect Forward Secrecy sia attivo o meno. -La tipica situazione reale in caso di fuga di chiavi di decrittazione è il sequestro del dispositivo -di cui discutiamo nella nostra risposta sui metadati e sul sequestro dei dispositivi.

            +

            Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, +and someone has collected your prior in-transit messages, +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

            -

            È possibile che Delta Chat si evolva per supportare Perfect Forward Secrecy, -perché OpenPGP è solo un contenitore per messaggi crittografati -ma la gestione delle chiavi di crittografia (e quindi la rotazione delle chiavi o “cricchetto”) -potrebbero essere organizzati in modo flessibile. -Vedi prototipo PFS di Seqouia -per gli esperimenti esistenti nella comunità degli implementatori di OpenPGP.

            +

            We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

            -

            +

            - La crittografia end-to-end di Delta Chat è sicura quanto quella di Signal? + Does Delta Chat support Post-Quantum-Cryptography?

            -

            Dipende da cosa è importante per te. -Delta Chat non supporta PFS come fa Signal -ma fornisce chat crittografate end-to-end garantite -che sono sicuri contro server compromessi o reti danneggiate. -Signal e la maggior parte degli altri servizi di messaggistica che supportano PFS non forniscono -uno schema pratico per proteggere i gruppi di chat dagli attacchi di rete -che sono probabilmente più preoccupanti -di un potenziale utente malintenzionato che si impadronisce del tuo telefono e della configurazione di crittografia privata -ma in qualche modo non i tuoi messaggi, ma ha un registro completo di tutti -messaggi crittografati precedenti.

            +

            No, non ancora.

            -

            In ogni caso, la crittografia end-to-end di Delta Chat utilizza un sottoinsieme sicuro di OpenPGP -che è stato controllato in modo indipendente sulla sicurezza.

            +

            Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

            + +

            + + + How can I manually check encryption information? + + +

            + +

            È possibile verificare manualmente lo stato della crittografia end-to-end nella finestra di dialogo “Crittografia”. +(profilo utente su Android/iOS o clic con il pulsante destro del mouse sull’elemento dell’elenco chat di un utente sul desktop). +Delta Chat mostra due impronte digitali. +Se sul tuo dispositivo e su quello del tuo contatto vengono visualizzate le stesse impronte digitali, +la connessione è sicura.

            @@ -1479,15 +1355,16 @@ un messenger estensibile.

              -
            • Le apps webxdc non possono inviare dati a Internet o scaricare nulla.
            • -
            • Un’app webxdc può scambiare dati solo all’interno di una chat Delta Chat, con la sua -copia sui dispositivi dei tuoi partner di chat. A parte questo, è completamente -isolato da Internet.
            • -
            • La privacy offerta da un’app webxdc è la privacy della tua chat, purché tu -ti fidi delle persone con cui chatti e quindi puoi fidarti anche dell’app webxdc.
            • -
            • Ciò significa anche: può essere un rischio per la privacy aprire le app webxdc nelle chat dove -non ti fidi dei membri, come sai dagli allegati di posta elettronica, dove -apri solo gli allegati provenienti dai mittenti di cui ti fidi e non da spammer.
            • +
            • Le app webxdc non possono inviare dati in internet, o scaricare niente.
            • +
            • Un’app webxdc può solo scambiare dati all’interno di una chat di Delta Chat, con le sue +copie sui dispositivi dei tuoi corrispondenti. Oltre a questo, è completamente +isolata da internet.
            • +
            • La privacy che un’app webxdc offre è la privacy della tua chat - fino a che ti +fidi delle persone con cui ti scrivi, ti puoi fidare dell’app webxdc allo stesso modo.
            • +
            • Questo inoltre significa: può esserci un rischio per la privacy ad usare le app in chat con utenti non fidati. +Esattamente come per gli allegati delle e-mail, le videochiamate o i collegamenti in chiaro: +aprile solo da mittenti di cui ti fidi e non dagli spammer. +Gli spammer possono riuscire ad ottenere qualunque dato tu mandi loro, come il tuo indirizzo IP.

            @@ -1570,18 +1447,10 @@ in questo modo, avrai una nuova stanza jitsi casuale ogni volta che chiami qualc

            -
              -
            • Con una Lista di Trasmissione è possibile inviare un messaggio a molti destinatari contemporaneamente; quando questi vi rispondono, ricevete la risposta nella vostra chat diretta 1:1 con loro. -I destinatari non possono vedersi a vicenda.
            • -
            • Tecnicamente, si tratta di un messaggio di posta elettronica con molti destinatari in BCC.
            • -
            • È possibile attivare questa funzione nella sezione “Funzionalità Sperimentali” delle impostazioni avanzate. -Quindi è possibile creare una Lista di Trasmissione dalla finestra di dialogo “Nuova chat”.
            • -
            • Nel caso in cui si utilizzi più di un dispositivo, le Liste di Trasmissione non sono attualmente sincronizzate tra loro.
            • -
            • I messaggi inviati alle Liste di Trasmissione non sono crittografate. La crittografia romperebbe l’anonimato, perché -tutti i destinatari saprebbero chi altro ha ricevuto il messaggio. -(l’invio di singoli messaggi di posta elettronica a tutti sarebbe peggiore per il limite di velocità e il -consumo di rete).
            • -
            +

            Con le Liste Trasmissioni puoi inviare un messaggio a più indirizzi contemporaneamente; +i destinatari non possono rispondere in quella chat. +Le Liste Trasmissioni sono ancora altamente sperimentali +e saranno molto probabilmente rimpiazzate con qualcos’altro, restate sintonizzati :)

            @@ -1638,6 +1507,11 @@ verrebbe eseguito dall’app Delta Chat.

            +

            Nota: +La modifica degli indirizzi e-mail è temporaneamente disabilitata +a causa delle modifiche in corso al nucleo di DeltaChat. +Dovrebbe essere nuovamente disponibile tra qualche mese.

            +
            1. Cambia il tuo indirizzo in “Impostazioni → Avanzate → Password e Profilo” e @@ -1722,19 +1596,19 @@ Tuttavia, alcuni provider necessitano di opzioni speciali per funzionare corrett vedi Panoramica fornitore

            2. -

              +

              - Voglio gestire il mio server di posta elettronica per Delta Chat. Che cosa mi consigliate? + Vorrei gestire il mio server per Delta Chat. Cosa mi consigliate?

              diff --git a/src/main/assets/help/lock-screenshot.png b/src/main/assets/help/lock-screenshot.png deleted file mode 100644 index ba623833b..000000000 Binary files a/src/main/assets/help/lock-screenshot.png and /dev/null differ diff --git a/src/main/assets/help/nl/help.html b/src/main/assets/help/nl/help.html index 67ffd33e3..37ac37475 100644 --- a/src/main/assets/help/nl/help.html +++ b/src/main/assets/help/nl/help.html @@ -36,27 +36,24 @@
            3. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
            4. -
            5. Beveiliging en versleuteling +
            6. Beveiliging en versleuteling @@ -90,7 +87,7 @@
            7. -

              Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

              +

              Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

              -

              Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

              +
                +
              • +

                Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

                +
              • +
              • +

                Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

                +
              • +
              • +

                Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

                +
              • +
              + +

              Delta Chat does not query, publish or interact with any OpenPGP key servers.

              @@ -756,28 +761,37 @@ guarantee end-to-end encrypted messages.

              -

              All end-to-end encrypted messages carry a padlock:

              - -

              padlock in bubble

              - -

              End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

              - -

              green checkmark in title

              +

              All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

              -

              +

              - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

              -

              If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

              +

              If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

              -

              If you are together in person, -you can show a QR code to your chat partner.

              +

              If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

              + +

              + + + How can I establish a chat with a new contact? + + +

              + +

              You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

              • @@ -786,141 +800,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

              • -

                For direct 1:1 chat invitations, +

                For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

              -

              Let your chat partner scan the QR image +

              Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

              -

              Now wait while Secure-Join network messages are exchanged between both devices.

              +

              Now wait while end-to-end encryption is getting established.

              • -

                If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

                +

                If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

              • -

                If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

                +

                If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

              Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

              +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

              - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

              -

              Chat titles with green checkmarks +

              A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

              - -

              Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

              -

              Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

              -

              For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

              -

              - - - A contact “sent a message from another device”, what can i do? - - -

              - -

              Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

              - -

              If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

              - -

              Your contact is using Delta Chat on a second device (phone or laptop)

              - -

              If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

              - -

              Your contact reinstalled Delta Chat using their old account login

              - -

              If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

              - -

              If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

              - -

              Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

              - -

              If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

              - -

              Your contact stopped using Delta Chat entirely

              - -

              Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

              - -

              In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

              - -

              If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

              -

              @@ -945,8 +878,7 @@ and attachment metadata such as filenames.

              Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

              OpenPGP is not insecure by itself. @@ -967,7 +899,7 @@ which was thankfully adopted in summer 2023.

              - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

              @@ -1010,17 +942,15 @@ as defined by the Autocrypt Level 1 specification.

              - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

              -

              Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

              +

              If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

              Delta Chat by default uses strict TLS encryption @@ -1032,10 +962,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

              @@ -1045,25 +971,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

              -

              Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

              +

              Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

              + +

              E-mail Servers can therefore only see

                -
              • Subject line
              • -
              • Group avatar and name
              • -
              • MDN (read receipt) requests (Chat-Disposition-Notification-To)
              • -
              • Disappearing message timer (Ephemeral-Timer)
              • -
              • Chat-Group-Member-Removed, Chat-Group-Member-Added
              • -
              • Secure-Join header containing secure join commands
              • -
              • Notification about enabling location streaming
              • -
              • WebRTC room URL
              • +
              • +

                the message date,

                +
              • +
              • +

                sender and receiver addresses

                +
              • +
              • +

                and message size.

                +
              -

              E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

              +

              All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

              @@ -1075,96 +1001,34 @@ deliver messages to recipient’s devices.

              Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

              +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

              -

              +

              - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

              -

              You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

              - -

              - - - How can I check the encryption status of messages? - - -

              +

              No, not yet.

              -

              A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

              - -

              - - - Why do I see unencrypted messages? - - -

              +

              The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

              -

              If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

              - -

              - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

              - -

              If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

              - -

              - - - How can I ensure message end-to-end encryption and deletion? - - -

              - -

              The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

              - -

              Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

              - -

              If you don’t need a longer-lived copy of your messages on the server, -you can also turn on “delete messages from server automatically”.

              +

              Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

              @@ -1174,45 +1038,52 @@ you can also turn on “delete messages from server automatica

              -

              No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

              No, not yet.

              + +

              Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

              +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

              -

              Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

              - -

              It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

              +

              We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

              -

              +

              - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

              -

              It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

              +

              No, not yet.

              -

              In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

              +

              Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

              + +

              + + + How can I manually check encryption information? + + +

              + +

              You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

              @@ -1247,7 +1118,7 @@ from most recent to older:

            8. 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

                @@ -1493,9 +1364,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
              • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
              • -
              • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
              • +
              • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

              @@ -1579,21 +1451,10 @@ zodat er telkens een nieuwe jitsi-kamer als je iemand belt.

            9. -
                -
              • Met behulp van verzendlijsten kun je berichten naar meerdere ontvangers tegelijk versturen. Als zij vervolgens -antwoorden, dan wordt het antwoord in het een-op-eengesprek getoond. De -ontvangers kunnen elkaar niet zien.
              • -
              • Technisch gezien is een verzendlijst een e-mail met meerdere ontvangers in de bcc.
              • -
              • Schakel deze functie in in de sectie ‘experimentele functies ’in de -geavanceerde instellingen. Vervolgens kun je in het venster ‘Nieuw gesprek’ een verzendlijst -samenstellen.
              • -
              • Let op: als je gebruikmaakt van meer dan één apparaat, dan worden verzendlijsten momenteel -niet gesynchroniseerd.
              • -
              • Ook zijn zulke berichten niet versleuteld. Versleuteling zou immers de -anonimiteit doorbreken omdat iedereen van elkaar kan zien wie de berichten ontvangt. -(En het versturen van meerdere individuele e-mails tegelijk zou funest zijn voor de beperkingen van sommige e-maildiensten en het -netwerkverbruik).
              • -
              +

              With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

              @@ -1650,6 +1511,11 @@ Normaal doet de Delta Chat-app dit uit zichzelf.

              +

              Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

              +
              1. Change your address in “Settings → Advanced → Password and Account” and @@ -1751,19 +1617,19 @@ Delta Chat doet het volgende met deze rechten:

                Sommige providers verwachten echter bepaalde opties. Bekijk hiervoor het provideroverzicht
              2. -

                +

                - Ik wil mijn eigen e-mailserver opzetten. Hoe kan ik dat het beste doen? + I want to manage my own server for Delta Chat. What do you recommend?

                diff --git a/src/main/assets/help/pl/help.html b/src/main/assets/help/pl/help.html index ff37698da..14d291791 100644 --- a/src/main/assets/help/pl/help.html +++ b/src/main/assets/help/pl/help.html @@ -36,27 +36,24 @@
              3. Dlaczego Delta Chat integruje się ze scentralizowanymi, zastrzeżonymi usługami push Apple/Google?
              4. -
              5. Szyfrowanie i bezpieczeństwo +
              6. Szyfrowanie i bezpieczeństwo @@ -90,7 +87,7 @@
              7. -

                Autocrypt służy do automatycznego ustanawiania szyfrowania end-to-end kontaktów i czatów grupowych. Autocrypt wykorzystuje ograniczony i bezpieczny podzbiór standardu OpenPGP. W pełni zaszyfrowane wiadomości są oznaczone kłódką padlock.

                +

                Delta Chat wykorzystuje bezpieczny podzbiór standardu OpenPGP do automatycznego szyfrowania typu end-to-end za pomocą następujących protokołów:

                -

                Protokoły Secure-Join służą do nawiązywania rozmów z gwarantowanym szyfrowaniem typu end-to-end, które chroni przed atakami sieciowymi i zagrożonymi serwerami. Czaty oznaczone zielonym znacznikiem wyboru green checkmark gwarantują szyfrowanie end-to-end wiadomości.

                +
                  +
                • +

                  Secure-Join do wymiany informacji o konfiguracji szyfrowania poprzez skanowanie kodów QR lub „linki zaproszeń”.

                  +
                • +
                • +

                  Autocrypt służy do automatycznego ustanawiania szyfrowania typu end-to-end między kontaktami a wszystkimi członkami czatu grupowego.

                  +
                • +
                • +

                  Udostępnienie kontaktu na czacie umożliwia odbiorcom korzystanie z szyfrowania typu end-to-end z tym kontaktem.

                  +
                • +
                + +

                Delta Chat nie wysyła zapytań, nie publikuje ani nie wchodzi w interakcję z żadnymi serwerami kluczy OpenPGP.

                @@ -617,100 +626,66 @@ nadal będziesz mógł pisać, ale nie będziesz już powiadamiany o żadnych no

                -

                Wszystkie całkowicie zaszyfrowane wiadomości są oznaczone kłódką:

                - -

                padlock in bubble

                - -

                Pełne szyfrowanie jest gwarantowane, jeśli obok tytułu czatu znajduje się zielony znacznik wyboru:

                - -

                green checkmark in title

                +

                Wszystkie wiadomości w Delta Chat są domyślnie szyfrowane metodą end-to-end. Od wydania Delta Chat w wersji 2 (lipiec 2025 r.) nie ma już blokad ani podobnych znaczników na wiadomościach szyfrowanych metodą end-to-end.

                -

                +

                - Jak mogę uzyskać gwarancję kompleksowego szyfrowania i zielone znaczniki wyboru? + Czy nadal mogę odbierać lub wysyłać wiadomości bez szyfrowania end-to-end?

                -

                Jeśli masz drugi kanał komunikacji ze swoim partnerem na czacie, np. czat wideo lub inny komunikator, możesz wygenerować link zaproszenia.

                +

                Jeśli korzystasz z domyślnych przekaźników chatmail, odbieranie ani wysyłanie wiadomości bez szyfrowania end-to-end jest niemożliwe.

                -

                Jeśli jesteście razem osobiście, możesz pokazać kod QR swojemu rozmówcy.

                +

                Jeśli zamiast tego utworzysz profil przy użyciu klasycznego serwera poczty e-mail, możesz wysyłać i odbierać wiadomości bez szyfrowania end-to-end. Takie wiadomości bez szyfrowania end-to-end są oznaczone ikoną e-mail email.

                + +

                + + + Jak mogę nawiązać czat z nowym kontaktem? + + +

                + +

                Możesz wysłać link z zaproszeniem za pośrednictwem innego prywatnego czatu, wyświetlić kod QR zaproszenia, gdy kontakty znajdują się obok siebie lub w rozmowie wideo, albo dotknąć „kontakt”, który został udostępniony na czacie.

                • W przypadku zaproszeń grupowych dotknij tytułu czatu grupy, aby wyświetlić listę jej członków, i wybierz „Kod QR zaproszenia”.

                • -

                  Aby uzyskać bezpośrednie zaproszenia na czat 1:1, dotknij ikony kodu QR na ekranie głównym aplikacji Delta Chat.

                  +

                  Aby wysłać zaproszenie do czatu 1:1, dotknij ikony kodu QR na ekranie głównym aplikacji Delta Chat.

                -

                Pozwól swojemu partnerowi czatu zeskanować obraz QR za pomocą aplikacji Delta Chat lub dotknij „Kopiuj” lub „Udostępnij”, aby utworzyć link zaproszenia i udostępnić go swojemu partnerowi czatu.

                +

                Poproś rozmówcę o zeskanowanie obrazu QR za pomocą aplikacji Delta Chat lub dotknij „Kopiuj” lub „Udostępnij”, aby utworzyć link zaproszenia i udostępnić go rozmówcy.

                -

                Teraz poczekaj, aż między obydwoma urządzeniami nastąpi wymiana wiadomości sieciowych Secure-Join.

                +

                Poczekaj, aż szyfrowanie typu end-to-end zostanie nawiązane.

                • -

                  Jeśli oba urządzenia są w trybie online, obie strony ostatecznie zobaczą czat (grupowy lub bezpośredni) z zielonym znacznikiem wyboru green checkmark obok tytułu.

                  +

                  Jeśli obie strony są online, wkrótce zobaczą czat (grupowy lub bezpośredni) i będą mogły bezpiecznie wysyłać wiadomości.

                • -

                  Jeśli jedno z urządzeń jest w trybie offline, zielone znaczniki wyboru pojawią się później, dopiero gdy urządzenie zostanie ponownie połączone z Internetem i zostanie zrealizowany protokół sieciowy Secure-Join.

                  +

                  Jeśli jedna ze stron jest offline lub ma słaby zasięg, możliwość czatowania zostanie wstrzymana do czasu przywrócenia połączenia.

                -

                Gratulacje! Teraz będziecie automatycznie korzystać z gwarantowanego kompleksowego szyfrowania tego kontaktu i oboje będziecie mogli dodawać się nawzajem do grup oznaczonych zielonym znacznikiem wyboru green checkmark , w ten sposób automatycznie rozpowszechniając gwarantowane kompleksowe szyfrowanie wśród swoich członków.

                +

                Gratulacje! Teraz będziesz automatycznie korzystać z szyfrowania typu end-to-end dla tego kontaktu. Jeśli dodacie się nawzajem do czatów grupowych, szyfrowanie typu end-to-end zostanie nawiązane między wszystkimi członkami.

                - Co oznacza zielony znacznik wyboru i „gwarantowane kompleksowe szyfrowanie”? + Co oznacza zielony znacznik wyboru w profilu kontaktu?

                -

                Tytuły czatów z zielonymi znacznikami wyboru green checkmark oznaczają, że wszystkie wiadomości na czacie będą w pełni szyfrowane i nie będą mogły zostać odczytane ani zmodyfikowane przez zhakowane serwery poczty e-mail lub dostawców Internetu. Dołączanie do czatów grupowych oznaczonych zielonym znacznikiem bezpiecznie rozpowszechnia informacje o szyfrowaniu wszystkich osób (i zielone znaczniki wyboru) w sposób gwarantujący kompleksowe szyfrowanie w grupie i pomiędzy członkami.

                - -

                Profile kontaktów z zielonymi znacznikami wyboru green checkmark oznaczają, że obecnie gwarantujemy, że wiadomości kontaktu będą szyfrowane metodą end-to-end. Każdy kontakt oznaczony zielonym znacznikiem albo wykonał z tobą bezpośrednie skanowanie QR, albo został zweryfikowany przez inny kontakt oznaczony zielonym znacznikiem. Weryfikacje odbywają się automatycznie podczas dodawania członków do grup. Ktokolwiek doda kontakt do grupy oznaczonej zielonym znacznikiem, staje się osobą weryfikującą dla tych członków, którzy jeszcze nie wiedzieli o dodanym kontakcie. W profilu kontaktu możesz wielokrotnie dotykać tekstu „Zweryfikowano przez…”, aż dojdziesz do osoby, z którą bezpośrednio wykonałeś skanowanie QR.

                - -

                Pamiętaj, że w profilu kontaktu możesz widzieć i klikać osoby weryfikujące, ale w tytule profilu nie ma zielonego znacznika wyboru. Zwykle oznacza to, że kontakt „wysłał wiadomość z innego urządzenia”.

                +

                Profil kontaktu może wyświetlać zielony znacznik wyboru green checkmark i wiersz „Zweryfikowano przez…”. Każdy kontakt oznaczony zielonym znacznikiem albo wykonał z tobą bezpośrednie skanowanie QR, albo został zweryfikowany przez inny kontakt oznaczony zielonym znacznikiem. Weryfikacje odbywają się automatycznie podczas dodawania członków do grup. Osoba, która doda kontakt oznaczony zielonym znacznikiem wyboru do grupy zawierającej wyłącznie członków oznaczonych zielonym znacznikiem wyboru, staje się osobą weryfikującą. W profilu kontaktu możesz wielokrotnie dotykać tekstu „Zweryfikowano przez…”, aż dojdziesz do osoby, z którą bezpośrednio wykonałeś skanowanie QR.

                Aby uzyskać bardziej szczegółowe omówienie „gwarantowanego szyfrowania typu end-to-end”, zobacz Protokoły Secure-Join, a w szczególności przeczytaj o „zweryfikowanych grupach”, technicznym określeniu tak zwanego tutaj „zielonego znacznika wyboru” lub „gwarantowanego szyfrowania end-to-end” czatów.

                -

                - - - Kontakt „wysłał wiadomość z innego urządzenia”, co mogę zrobić? - - -

                - -

                Twój czat z kontaktem utracił gwarantowane szyfrowanie typu end-to-end. Gdy zobaczysz to ostrzeżenie, zielony znacznik wyboru dla tego czatu i kontaktu został usunięty. Jeśli zdziwi cię nagły spadek gwarantowanego szyfrowania end-to-end tego kontaktu, nie akceptuj ostrzeżenia! Zamiast tego skontaktuj się ze swoim kontaktem za pośrednictwem drugiego kanału, takiego jak rozmowa wideo, inny komunikator lub rozmowa telefoniczna, aby dowiedzieć się, co się stało.

                - -

                Jeśli twój kontakt rzeczywiście spowodował spadek gwarantowanego szyfrowania typu end-to-end, zapoznaj się z kolejnymi akapitami, aby poznać typowe przyczyny i sposoby ich łagodzenia. Niezależnie od tego, wszystkie inne czaty oznaczone zielonym znacznikiem są w pełni szyfrowane, nawet jeśli kontakt jest ich członkiem.

                - -

                Twój kontakt korzysta z Delta Chat na drugim urządzeniu (telefonie lub laptopie)

                - -

                Jeśli ma inne urządzenie z uruchomioną aplikacją Delta Chat, powinien usunąć konto z nowego urządzenia i dodać je jako drugie urządzenie zgodnie z opisem tutaj. Gdy tylko skontaktuje się z tobą później, ostrzeżenie zniknie, a na obu urządzeniach twojego kontaktu zostanie ustanowione gwarantowane szyfrowanie.

                - -

                Twój kontakt ponownie zainstalował Delta Chat, używając swojego starego loginu do konta

                - -

                Jeśli ma plik kopii zapasowej, powinien usunąć konto z nowego urządzenia i zamiast tego zaimportować plik kopii zapasowej, aby ponownie utworzyć konto. Gdy tylko skontaktuje się z tobą później, ostrzeżenie zniknie, a dla tego kontaktu zostanie przywrócone gwarantowane szyfrowanie.

                - -

                Jeśli nie ma pliku kopii zapasowej, najlepiej wykonać skanowanie QR ze swoim partnerem czatu, aby przywrócić gwarantowane szyfrowanie end-to-end.

                - -

                Twój kontakt wysłał wiadomość e-mail za pośrednictwem interfejsu poczty internetowej lub innej aplikacji e-mail i wkrótce ponownie zacznie korzystać z Delta Chat.

                - -

                Jeśli masz pewność, że kontakt czasami korzysta z poczty internetowej lub innej aplikacji pocztowej, która nie zapewnia szyfrowania end-to-end, możesz zaakceptować ostrzeżenie. Gdy tylko twój kontakt ponownie skorzysta z Delta Chat, gwarantowane szyfrowanie end-to-end zostanie automatycznie przywrócone.

                - -

                Twój kontakt całkowicie przestał korzystać z Delta Chat

                - -

                Czasami utrzymanie kontaktu jest ważniejsze niż szyfrowanie end-to-end. „Szyfrowanie warstwy transportowej” (TLS) może w dalszym ciągu w znaczący sposób chronić poufność wiadomości przesyłanych między urządzeniem a serwerem poczty e-mail. Jednak bez kompleksowego szyfrowania Ty i Twój kontakt ufacie swojemu serwerowi poczty e-mail, że nie będzie czytać ani manipulować waszymi wiadomościami i nie będzie przekazywać ich osobom trzecim.

                - -

                W każdym razie nie możesz zrobić nic innego, jak zaakceptować ostrzeżenie. Usuń także kontakt z aktywnej grupy oznaczonej zielonym znacznikiem, którą znajdziesz w sekcji „Współdzielone czaty” w profilu kontaktu. Dzięki temu twój kontakt nie otrzyma „nieczytelnych” wiadomości.

                - -

                Jeśli kontakt usunął Delta Chat z powodu błędów lub niepożądanego zachowania, rozważ opublikowanie postu na naszym forum pomocy, aby pomóc nam zidentyfikować i rozwiązać typowe problemy. Dzięki!

                -

                @@ -731,7 +706,7 @@ nadal będziesz mógł pisać, ale nie będziesz już powiadamiany o żadnych no

                -

                Tak, Delta Chat korzysta z bezpiecznego podzbioru OpenPGP i wyświetla wskaźnik bezpieczeństwa kłódki na wiadomości tylko wtedy, gdy cała wiadomość jest prawidłowo zaszyfrowana i podpisana. Na przykład „Odłączone podpisy” nie są traktowane jako bezpieczne.

                +

                Tak, Delta Chat korzysta z bezpiecznego podzbioru OpenPGP, który wymaga prawidłowego zaszyfrowania i podpisania całej wiadomości. Na przykład „Odłączone podpisy” nie są traktowane jako bezpieczne.

                OpenPGP samo w sobie nie jest niebezpieczne. Większość publicznie omawianych problemów związanych z bezpieczeństwem OpenPGP tak naprawdę wynika ze złej użyteczności lub złej implementacji narzędzi, lub aplikacji (lub obu). Szczególnie ważne jest rozróżnienie pomiędzy OpenPGP, standardem szyfrowania IETF, a GnuPG (GPG), narzędziem wiersza poleceń implementującym OpenPGP. Wiele publicznych komentarzy krytycznych na temat OpenPGP tak naprawdę omawia GnuPG, którego Delta Chat nigdy nie używał. Delta Chat korzysta raczej z implementacji OpenPGP Rust rPGP, dostępnej jako niezależny pakiet „pgp” i poddanej audytowi bezpieczeństwa w 2019 i 2024 roku.

                @@ -764,16 +739,14 @@ nadal będziesz mógł pisać, ale nie będziesz już powiadamiany o żadnych no

                - Czy wiadomość jest udostępniana w postaci zwykłego tekstu, jeśli szyfrowanie end-to-end nie jest dostępne? + Czy wiadomości oznaczone ikoną poczty są widoczne w internecie?

                -

                Nawet jeśli nie ma gwarancji, że twoje wiadomości będą zaszyfrowane metodą end-to-end, nadal są chronione przed dostawcami Internetu, takimi jak operatorzy komórkowi lub telewizji kablowej. Jednakże dostawcy poczty e-mail zarówno twoi, jak i twojego odbiorcy mogą czytać, analizować, a nawet modyfikować twoje wiadomości, w tym wszelkie załączniki, jeśli nie są one w pełni zaszyfrowane.

                +

                Jeśli wysyłasz lub odbierasz wiadomości e-mail bez szyfrowania end-to-end (korzystając z klasycznego serwera poczty), są one nadal chronione przed operatorami komórkowymi lub kablowymi, którzy nie mogą ich czytać ani modyfikować. Jednak zarówno twoi dostawcy poczty e-mail, jak i dostawcy poczty e-mail odbiorcy mogą czytać, analizować lub modyfikować twoje wiadomości, w tym wszelkie załączniki.

                Delta Chat domyślnie korzysta ze ścisłego szyfrowania TLS, które zabezpiecza połączenia pomiędzy twoim urządzeniem a dostawcą poczty e-mail. Cała obsługa TLS Delta Chat została poddana niezależnemu audytowi bezpieczeństwa. Co więcej, połączenie między tobą a dostawcą poczty e-mail odbiorcy będzie zazwyczaj również szyfrowane. Jeśli zaangażowane serwery poczty e-mail obsługują MTA-STS, pomiędzy dostawcami poczty e-mail będzie egzekwowane szyfrowanie transportu. W takim przypadku komunikacja Delta Chat nigdy nie będzie udostępniana w Internecie w postaci zwykłego tekstu, nawet jeśli wiadomość nie została zaszyfrowana metodą end-to-end.

                - -

                Pamiętaj, że utrzymywanie gwarantowanego szyfrowania typu end-to-end oprócz szyfrowania TLS zapewnia wszechstronne bezpieczeństwo między urządzeniami twoimi i odbiorców. Nawet twój dostawca poczty e-mail lub Internetu nie będzie w stanie przeczytać ani zmodyfikować twoich wiadomości.

                @@ -783,20 +756,23 @@ nadal będziesz mógł pisać, ale nie będziesz już powiadamiany o żadnych no

                -

                Delta Chat chroni większość metadanych wiadomości, umieszczając następujące informacje w całkowicie zaszyfrowanej części wiadomości:

                +

                W przeciwieństwie do większości innych komunikatorów, aplikacje Delta Chat nie przechowują żadnych metadanych dotyczących kontaktów ani grup na serwerach, również w formie zaszyfrowanej. Zamiast tego wszystkie metadane grup są szyfrowane metodą end-to-end i przechowywane wyłącznie na urządzeniach użytkowników końcowych.

                + +

                Serwery poczty e-mail widzą zatem tylko:

                  -
                • Wiersz tematu
                • -
                • Awatar i nazwa grupy
                • -
                • Żądania MDN (potwierdzenie odczytu) (Chat-Disposition-Notification-To)
                • -
                • Licznik czasu znikania wiadomości (Ephemeral-Timer)
                • -
                • Chat-Group-Member-Removed, Chat-Group-Member-Added
                • -
                • Nagłówek Secure-Join zawierający polecenia bezpiecznego łączenia
                • -
                • Powiadomienie o włączeniu przesyłania strumieniowego lokalizacji
                • -
                • Adres URL pokoju WebRTC
                • +
                • +

                  datę wysłania wiadomości,

                  +
                • +
                • +

                  adresy nadawcy i odbiorcy,

                  +
                • +
                • +

                  oraz rozmiar wiadomości.

                  +
                -

                Serwery poczty e-mail nie mają dostępu do chronionych metadanych, ale widzą datę wiadomości, jej rozmiar oraz, co ważniejsze, adresy nadawcy i odbiorcy. Serwery poczty e-mail potrzebują adresów odbiorców, aby kierować i dostarczać wiadomości do urządzeń odbiorców.

                +

                Wszystkie pozostałe metadane dotyczące wiadomości, kontaktów i grup znajdują się w zaszyfrowanej metodą end-to-end części wiadomości.

                @@ -806,61 +782,21 @@ nadal będziesz mógł pisać, ale nie będziesz już powiadamiany o żadnych no

                -

                Zarówno w celu ochrony przed serwerami poczty e-mail gromadzącymi metadane, jak i przed zagrożeniem przejęcia urządzenia, zalecamy użycie zoptymalizowanej instancji serwera poczty e-mail Delta Chat w celu tworzenia pseudonimowych kont tymczasowych poprzez skanowanie kodów QR. Pamiętaj, że aplikacje Delta Chat na wszystkich platformach obsługują wiele kont, dzięki czemu możesz z łatwością korzystać z kont „1-tygodniowych” lub „1-miesięcznych” związanych z konkretnymi działaniami obok konta „głównego”, wiedząc, że wszystkie tymczasowe dane konta wraz ze wszystkimi metadanymi zostaną usunięte. Co więcej, jeśli urządzenie zostanie przejęte, nie będzie można łatwo zidentyfikować kontaktów korzystających z tymczasowych kont e-mail, w porównaniu z komunikatorami, które ujawniają numery telefonów w grupach czatów, które z kolei często są powiązane z tożsamością prawną.

                +

                Zarówno w celu ochrony przed serwerami poczty e-mail gromadzącymi metadane, jak i przed zagrożeniem przejęcia urządzenia, zalecamy użycie przełącznika chatmail do tworzenia profili czatu z losowymi adresami e-mail do przesyłania. Pamiętaj, że aplikacje Delta Chat na wszystkich platformach obsługują wiele kont, dzięki czemu możesz z łatwością korzystać z kont „1-tygodniowych” lub „1-miesięcznych” związanych z konkretnymi działaniami obok konta „głównego”, wiedząc, że wszystkie tymczasowe dane konta wraz ze wszystkimi metadanymi zostaną usunięte. Co więcej, jeśli urządzenie zostanie przejęte, kontakty czatu korzystające z profili krótkotrwałych nie będą mogły zostać łatwo zidentyfikowane.

                -

                +

                - Jak mogę sprawdzić informacje o szyfrowaniu? + Czy Delta Chat obsługuje funkcję „Sealed Sender”?

                -

                Możesz sprawdzić stan szyfrowania end-to-end ręcznie w oknie dialogowym „Szyfrowanie” (profil użytkownika w systemie Android/iOS lub kliknij prawym przyciskiem myszy element listy czatu użytkownika na komputerze). Delta Chat pokazuje tam dwa odciski palców. Jeśli te same odciski palców pojawią się u ciebie i urządzeniu twojego kontaktu, połączenie jest bezpieczne.

                - -

                - - - Jak mogę sprawdzić stan szyfrowania wiadomości? - - -

                +

                Nie, jeszcze nie.

                -

                Mała kłódka w dymku wiadomości oznacza, że wiadomość od danego nadawcy została prawidłowo zaszyfrowana. Jeśli nie ma kłódki, wiadomość nie została prawidłowo zaszyfrowana metodą end-to-end, najprawdopodobniej dlatego, że nadawca korzysta z aplikacji lub interfejsu poczty internetowej bez obsługi szyfrowania typu end-to-end.

                - -

                - - - Dlaczego widzę niezaszyfrowane wiadomości? - - -

                +

                Komunikator Signal wprowadził funkcję „Sealed Sender” w 2018 roku, aby infrastruktura serwerowa nie wiedziała, kto wysyła wiadomość do grupy odbiorców. Jest to szczególnie ważne, ponieważ serwer Signal zna numer telefonu komórkowego każdego konta, który zazwyczaj jest powiązany z identyfikatorem paszportu.

                -

                Jeśli kontakt korzysta z aplikacji e-mail bez Autocrypt, wszystkie wiadomości od tego kontaktu (w czacie grupowym lub 1:1) nie będą w pełni szyfrowane, w związku z czym nie będą wyświetlane z „kłódką” przy wiadomościach. Pamiętaj, że nawet jeśli twoje kontakty korzystają z Delta Chat na swoim koncie, mogą również używać na tym koncie aplikacji e-mail bez Autocrypt, co może powodować sporadyczne wysyłanie niezaszyfrowanych wiadomości. Odpowiadanie niezaszyfrowanych wiadomości na niezaszyfrowane wiadomości jest wymagane przez funkcję Autocrypt, aby zapobiec nieczytelnym wiadomościom po stronie twoich kontaktów i ich aplikacji e-mail bez Autocrypt.

                - -

                - - - Jak mogę uzyskać zaszyfrowany ened-to-end czat z kontaktem Delta Chat, który czasami korzysta z poczty internetowej lub innej aplikacji e-mail bez Autocrypt? - - -

                - -

                Jeśli potrzebujesz bezpiecznie, kompleksowo zaszyfrowanego czatu z kontaktem, który korzysta ze swojego konta zarówno w Delta Chat, jak i w aplikacjach bez Autocrypt (np. poczta internetowa), najlepiej skonfigurować z nim gwarantowane szyfrowanie typu end-to-end, a następnie utworzyć gwarantowany zaszyfrowany end-to-end czat grupowy z wami dwoma jako członkami. W tym czacie grupowym wszystkie wiadomości będą w pełni szyfrowane, nawet jeśli bezpośredni czat między wami zawiera ostrzeżenie „…wysłano wiadomość z innego urządzenia”.

                - -

                - - - Jak mogę zapewnić kompleksowe szyfrowanie i usuwanie wiadomości? - - -

                - -

                Najlepszym sposobem, aby mieć pewność, że każda wiadomość jest kompleksowo zaszyfrowana, a metadane usunięte tak szybko, jak to możliwe, jest korzystanie z czatów z gwarantowanym szyfrowaniem end-to-end i włączonymi znikającymi wiadomościami.

                - -

                Gwarantowane szyfrowane metodą end-to-end czaty chronią przed atakami MITM attacks, a włączenie znikających wiadomości powoduje usunięcie wiadomości z serwera po upływie czasu skonfigurowanego przez użytkownika.

                - -

                Jeśli nie potrzebujesz dłuższej kopii wiadomości na serwerze, możesz także włączyć opcję „automatycznie usuń wiadomości z serwera”.

                +

                Nawet jeśli przekaźniki chatmail nie proszą o żadne prywatne dane (w tym numery telefonów), warto chronić metadane relacji między adresami. Nie przewidujemy poważniejszych problemów w korzystaniu z losowych, jednorazowych adresów e-mail do wysyłania wiadomości w tajemnicy, ale wdrożenie tej funkcji nie zostało jeszcze uznane za priorytetowe.

                @@ -870,23 +806,33 @@ nadal będziesz mógł pisać, ale nie będziesz już powiadamiany o żadnych no

                -

                Nie, Delta Chat nie obsługuje funkcji Perfect Forward Secrecy (PFS). Oznacza to, że jeśli twój prywatny klucz deszyfrujący Delta Chat wycieknie i ktoś zdobędzie twoje wcześniejsze wiadomości w trakcie przesyłania, będzie mógł je odszyfrować i odczytać przy użyciu ujawnionego klucza deszyfrowania.

                +

                Nie, jeszcze nie.

                -

                Należy jednak pamiętać, że jeśli ktoś zdobędzie twoje klucze deszyfrujące, zazwyczaj będzie mógł również uzyskać twoje wiadomości, niezależnie od tego, czy obowiązuje zasada Perfect Forward Secrecy, czy nie. Typową sytuacją w świecie rzeczywistym w przypadku wycieku kluczy deszyfrujących jest przejęcie urządzenia, które omawiamy w naszej odpowiedzi na temat przejęcia metadanych i urządzenia.

                +

                Delta Chat obecnie nie obsługuje mechanizmu Perfect Forward Secrecy (PFS). Oznacza to, że jeśli twój prywatny klucz deszyfrujący zostanie ujawniony, a ktoś zdobędzie twoje wcześniejsze wiadomości w trakcie transmisji, będzie mógł je odszyfrować i odczytać za pomocą ujawnionego klucza deszyfrującego. Należy pamiętać, że mechanizm Forward Secrecy zwiększa bezpieczeństwo tylko w przypadku usuwania wiadomości. W przeciwnym razie osoba, która uzyska twoje klucze deszyfrujące, zazwyczaj będzie mogła uzyskać dostęp do wszystkich nieusuniętych wiadomości i nie będzie musiała odszyfrowywać żadnych wcześniej zebranych wiadomości.

                -

                Możliwe, że Delta Chat ewoluuje, aby wspierać Perfect Forward Secrecy, ponieważ OpenPGP to tylko kontener na zaszyfrowane wiadomości, ale zarządzanie kluczami szyfrowania (a tym samym rotacja kluczy lub „zapadanie kluczy”) mogłoby być zorganizowane w elastyczny sposób. Zobacz prototyp PFS firmy Seqouia, aby zapoznać się z istniejącymi eksperymentami w społeczności implementatorów OpenPGP.

                +

                Opracowaliśmy metodę Forward Secrecy, która przeszła wstępną analizę niektórych kryptografów i ekspertów ds. wdrożeń, ale oczekuje na bardziej formalne opracowanie, które potwierdzi jej niezawodne działanie w federacyjnym przesyłaniu wiadomości i w przypadku korzystania z wielu urządzeń, zanim zostanie zaimplementowana w rdzeniu chatmail, co uczyniłoby ją dostępną we wszystkich klientach chatmail.

                -

                +

                - Czy szyfrowanie end-to-end Delta Chat jest tak samo bezpieczne jak Signal? + Czy Delta Chat obsługuje kryptografię postkwantową?

                -

                To zależy od tego, co jest dla ciebie ważne. Delta Chat nie obsługuje PFS tak jak Signal, ale zapewnia gwarantowane szyfrowane end-to-end czatów, które jest zabezpieczeniem przed zaatakowanymi serwerami lub uszkodzonymi sieciami. Signal i większość innych komunikatorów obsługujących PFS nie zapewniają praktycznego schematu ochrony czatów grupowych przed atakami sieciowymi, które są prawdopodobnie bardziej niepokojące niż potencjalny atakujący, który przejmuje twój telefon i prywatne ustawienia szyfrowania i w ten sposób nie twoje wiadomości i mimo to ma pełny zapis wszystkich poprzednio zaszyfrowanych wiadomości.

                +

                Nie, jeszcze nie.

                -

                W każdym razie szyfrowanie end-to-end Delta Chat wykorzystuje bezpieczny podzbiór OpenPGP, który został poddany niezależnemu audytowi bezpieczeństwa.

                +

                Delta Chat korzysta z biblioteki Rust OpenPGP rPGP, która obsługuje najnowszy projekt OpenPGP IETF Post-Quantum-Cryptography. Planujemy dodać obsługę PQC do rdzenia chatmail po sfinalizowaniu projektu w IETF we współpracy z innymi implementatorami OpenPGP.

                + +

                + + + Jak mogę ręcznie sprawdzić informacje o szyfrowaniu? + + +

                + +

                Możesz sprawdzić stan szyfrowania end-to-end ręcznie w oknie dialogowym „Szyfrowanie” (profil użytkownika w systemie Android/iOS lub kliknij prawym przyciskiem myszy element listy czatu użytkownika na komputerze). Delta Chat pokazuje tam dwa odciski palców. Jeśli te same odciski palców pojawią się u ciebie i urządzeniu twojego kontaktu, połączenie jest bezpieczne.

                @@ -1094,7 +1040,7 @@ od najnowszych do najstarszych:

              8. Aplikacje webxdc nie mogą wysyłać danych do Internetu ani niczego pobierać.
              9. Aplikacja webxdc może wymieniać dane wyłącznie w ramach czatu Delta Chat, a ich kopie znajdują się na urządzeniach twoich partnerów czatu. Poza tym jest całkowicie odizolowana od Internetu.
              10. Prywatność, jaką oferuje aplikacja webxdc, to prywatność twojego czatu – jeśli ufasz osobom, z którymi rozmawiasz, możesz ufać także aplikacji webxdc.
              11. -
              12. Oznacza to również: otwieranie aplikacji webxdc na czatach, w przypadku których nie ufa się członkom, może stanowić ryzyko dla prywatności – tak jak załączniki do wiadomości e-mail, gdzie otwiera się tylko załączniki od nadawców, którym ufasz, a nie od spamerów.
              13. +
              14. Oznacza to również: otwieranie aplikacji w czatach z niezaufanymi członkami, co może stanowić ryzyko dla prywatności. Podobnie jak w przypadku załączników do wiadomości e-mail, połączeń wideo lub zwykłych linków: otwieraj je tylko od nadawców, którym ufasz, a nie od spamerów. Spamerzy mogą poznać wszelkie dane, które im wysyłasz, a także twój adres IP.
              15. @@ -1161,13 +1107,8 @@ od najnowszych do najstarszych:

                -
                  -
                • Dzięki liście rozgłoszeniowej możesz wysłać wiadomość do wielu odbiorców jednocześnie; kiedy ci odpowiedzą, otrzymasz odpowiedź w bezpośrednim czacie 1: 1 z nimi. Odbiorcy nie widzą siebie nawzajem.
                • -
                • Technicznie, jest to e-mail z wieloma odbiorcami w „ukrytej kopii”.
                • -
                • Możesz włączyć tę funkcję w sekcji „Funkcje eksperymentalne” w ustawieniach zaawansowanych. Następnie możesz utworzyć listę rozgłoszeniową z okna dialogowego „Nowy czat”.
                • -
                • Jeśli używasz więcej niż jednego urządzenia, listy rozgłoszeniowe nie są obecnie synchronizowane między nimi.
                • -
                • Wiadomości wysyłane do list rozgłoszeniowych nie są szyfrowane. Szyfrowanie złamałoby anonimowość, ponieważ wtedy wszyscy odbiorcy wiedzieliby, kto jeszcze je otrzymał (wysyłanie indywidualnych wiadomości do wszystkich byłoby gorsze z powodu limitu prędkości i zużycia sieci).
                • -
                +

                Za pomocą listy rozgłoszeniowej możesz wysłać wiadomość do wielu odbiorców naraz; odbiorcy nie mogą odpowiedzieć na tej liście. +Listy rozgłoszeniowe są nadal wysoce eksperymentalne i bardzo prawdopodobne, że zostaną zastąpione czymś innym, bądźcie czujni :)

                @@ -1213,6 +1154,10 @@ od najnowszych do najstarszych:

                +

                Uwaga: Zmiana adresów e-mail jest tymczasowo wyłączona +z powodu trwających zmian w rdzeniu DeltaChat. +Powinna być ponownie dostępna za kilka miesięcy.

                +
                1. Zmień swój adres w „Ustawienia → Zaawansowane → Hasło i konto” i wprowadź hasło do swojego nowego konta (i jeśli to konieczne, ustawienia serwera). Otrzymasz informację o przeniesieniu na nowy adres. Dodatkowe powiadomienie pojawi się również na czacie „Komunikaty urządzenia”.

                  @@ -1286,17 +1231,17 @@ Oto, co robi Delta Chat z tymi uprawnieniami:

                  Jednak niektórzy dostawcy potrzebują specjalnych opcji, aby działać poprawnie, zobacz Przegląd dostawców
                2. -

                  +

                  - Chcę zarządzać własnym serwerem e-mail dla Delta Chat. Co polecacie? + Chcę zarządzać własnym serwerem dla Delta Chat. Co polecacie?

                  diff --git a/src/main/assets/help/pt/help.html b/src/main/assets/help/pt/help.html index 14d68c8f9..8a34a1eab 100644 --- a/src/main/assets/help/pt/help.html +++ b/src/main/assets/help/pt/help.html @@ -36,27 +36,24 @@
                3. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
                4. -
                5. Encryption and Security +
                6. Encryption and Security @@ -90,7 +87,7 @@
                7. -

                  Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

                  +

                  Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

                  -

                  Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

                  +
                    +
                  • +

                    Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

                    +
                  • +
                  • +

                    Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

                    +
                  • +
                  • +

                    Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

                    +
                  • +
                  + +

                  Delta Chat does not query, publish or interact with any OpenPGP key servers.

                  @@ -757,28 +762,37 @@ guarantee end-to-end encrypted messages.

                  -

                  All end-to-end encrypted messages carry a padlock:

                  - -

                  padlock in bubble

                  - -

                  End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

                  - -

                  green checkmark in title

                  +

                  All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

                  -

                  +

                  - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

                  -

                  If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

                  +

                  If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

                  -

                  If you are together in person, -you can show a QR code to your chat partner.

                  +

                  If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

                  + +

                  + + + How can I establish a chat with a new contact? + + +

                  + +

                  You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

                  • @@ -787,141 +801,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

                  • -

                    For direct 1:1 chat invitations, +

                    For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

                  -

                  Let your chat partner scan the QR image +

                  Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

                  -

                  Now wait while Secure-Join network messages are exchanged between both devices.

                  +

                  Now wait while end-to-end encryption is getting established.

                  • -

                    If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

                    +

                    If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

                  • -

                    If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

                    +

                    If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

                  Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

                  +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

                  - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

                  -

                  Chat titles with green checkmarks +

                  A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

                  - -

                  Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

                  -

                  Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

                  -

                  For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

                  -

                  - - - A contact “sent a message from another device”, what can i do? - - -

                  - -

                  Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

                  - -

                  If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

                  - -

                  Your contact is using Delta Chat on a second device (phone or laptop)

                  - -

                  If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

                  - -

                  Your contact reinstalled Delta Chat using their old account login

                  - -

                  If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

                  - -

                  If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

                  - -

                  Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

                  - -

                  If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

                  - -

                  Your contact stopped using Delta Chat entirely

                  - -

                  Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

                  - -

                  In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

                  - -

                  If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

                  -

                  @@ -946,8 +879,7 @@ and attachment metadata such as filenames.

                  Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

                  OpenPGP is not insecure by itself. @@ -968,7 +900,7 @@ which was thankfully adopted in summer 2023.

                  - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

                  @@ -1011,17 +943,15 @@ as defined by the Autocrypt Level 1 specification.

                  - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

                  -

                  Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

                  +

                  If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

                  Delta Chat by default uses strict TLS encryption @@ -1033,10 +963,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

                  @@ -1046,25 +972,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

                  -

                  Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

                  +

                  Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

                  + +

                  E-mail Servers can therefore only see

                    -
                  • Subject line
                  • -
                  • Group avatar and name
                  • -
                  • MDN (read receipt) requests (Chat-Disposition-Notification-To)
                  • -
                  • Disappearing message timer (Ephemeral-Timer)
                  • -
                  • Chat-Group-Member-Removed, Chat-Group-Member-Added
                  • -
                  • Secure-Join header containing secure join commands
                  • -
                  • Notification about enabling location streaming
                  • -
                  • WebRTC room URL
                  • +
                  • +

                    the message date,

                    +
                  • +
                  • +

                    sender and receiver addresses

                    +
                  • +
                  • +

                    and message size.

                    +
                  -

                  E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

                  +

                  All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

                  @@ -1076,96 +1002,34 @@ deliver messages to recipient’s devices.

                  Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

                  +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

                  -

                  +

                  - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

                  -

                  You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

                  - -

                  - - - How can I check the encryption status of messages? - - -

                  +

                  No, not yet.

                  -

                  A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

                  - -

                  - - - Why do I see unencrypted messages? - - -

                  +

                  The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

                  -

                  If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

                  - -

                  - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

                  - -

                  If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

                  - -

                  - - - How can I ensure message end-to-end encryption and deletion? - - -

                  - -

                  The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

                  - -

                  Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

                  - -

                  If you don’t need a longer-lived copy of your messages on the server, -you can also turn on “delete messages from server automatically”.

                  +

                  Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

                  @@ -1175,45 +1039,52 @@ you can also turn on “delete messages from server automatica

                  -

                  No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

                  No, not yet.

                  + +

                  Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

                  +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

                  -

                  Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

                  - -

                  It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

                  +

                  We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

                  -

                  +

                  - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

                  -

                  It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

                  +

                  No, not yet.

                  -

                  In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

                  +

                  Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

                  + +

                  + + + How can I manually check encryption information? + + +

                  + +

                  You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

                  @@ -1248,7 +1119,7 @@ from most recent to older:

                8. 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

                    @@ -1495,9 +1366,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
                  • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
                  • -
                  • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
                  • +
                  • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

                  @@ -1581,21 +1453,10 @@ this way, you will have a new random Jitsi room every time you call someone.

                9. -
                    -
                  • With a Broadcast List you can send a message to many recipients at once; when -they reply to you, you get the reply in your direct 1:1 chat with them. The -recipients can’t see each other.
                  • -
                  • Technically, it is an E-Mail with many recipients in BCC.
                  • -
                  • You can turn on the feature in the “experimental features” section in the -advanced settings. Then you can create a Broadcast List from the “New Chat” -dialog.
                  • -
                  • In case you are using more than one device, Broadcast Lists are currently not -synced between them.
                  • -
                  • Messages sent to broadcast lists are not encrypted. Encryption would break -anonymity, because then all recipients would know who else received it -(Sending individual mails to everyone would be worse for rate limit and network -consumption reason).
                  • -
                  +

                  With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

                  @@ -1652,6 +1513,11 @@ seria feito pelo aplicativo Delta Chat.

                  +

                  Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

                  +
                  1. Change your address in “Settings → Advanced → Password and Account” and @@ -1752,19 +1618,19 @@ No entanto, alguns provedores precisam de opções especiais para funcionar corr ver Visão Geral dos Provedores

                  2. -

                    +

                    - I want to manage my own e-mail server for Delta Chat. What do you recommend? + I want to manage my own server for Delta Chat. What do you recommend?

                    diff --git a/src/main/assets/help/ru/help.html b/src/main/assets/help/ru/help.html index 4959a6612..e11ab7c3e 100644 --- a/src/main/assets/help/ru/help.html +++ b/src/main/assets/help/ru/help.html @@ -36,27 +36,24 @@
                  3. Почему Delta Chat интегрируется с централизованными проприетарными Push-сервисами Apple/Google?
                  4. -
                  5. Шифрование и безопасность +
                  6. Шифрование и безопасность @@ -90,7 +87,7 @@
                  7. -

                    Autocrypt используется для автоматической -установки сквозного шифрования при работе с контактами и групповыми чатами. -Autocrypt использует ограниченное и безопасное подмножество стандарта OpenPGP. -Сообщения, зашифрованные сквозным шифрованием, помечаются замком -padlock.

                    +

                    Delta Chat использует безопасное подмножество стандарта OpenPGP +для реализации автоматического сквозного шифрования c помощью следующих протоколов:

                    -

                    Протоколы Secure-Join -используются для создания чатов с гарантированным сквозным шифрованием, -которое защищает от сетевых атак и скомпрометированных серверов. -Чаты, отмеченные зелёной галочкой -green checkmark -гарантируют сквозное шифрование сообщений.

                    +
                      +
                    • +

                      Secure-Join +для обмена информацией о настройке шифрования через сканирование QR-кода или “ссылок-приглашений”.

                      +
                    • +
                    • +

                      Autocrypt используется для автоматической +настройки сквозного шифрования между контактами и всеми членами группового чата.

                      +
                    • +
                    • +

                      Обмен контактом в +чате +позволяет получателям настроить сквозное шифрование с этим контактом.

                      +
                    • +
                    + +

                    Delta Chat не запрашивает, не публикует и не взаимодействует с какими-либо серверами ключей OpenPGP.

                    @@ -756,28 +761,37 @@ Autocrypt использует ограниченное и

                    - -

                    Сквозное шифрование гарантировано, если рядом с заголовком чата стоит зелёная галочка:

                    - -

                    Зелёная галочка в заголовке

                    +

                    Все сообщения в Delta Chat по умолчанию шифруются сквозным шифрованием. +С момента выхода серии релизов Delta Chat версии 2 (июль 2025 года) +на сообщениях со сквозным шифрованием больше не отображаются замки или другие подобные индикаторы.

                    -

                    +

                    - Как получить гарантированное сквозное шифрование и зелёные галочки? + Могу ли я получать или отправлять письма без сквозного шифрования?

                    -

                    Если у вас есть второй канал связи с вашим собеседником, -например, видеочат или другой мессенджер, -вы можете создать ссылку-приглашение.

                    +

                    Если вы используете стандартные ретрансляторы chatmail, +невозможно получать или отправлять сообщения без сквозного шифрования.

                    -

                    Если вы встретились лично с собеседником, -вы можете показать ему свой QR-код.

                    +

                    Если же вы создаёте профиль с использованием обычного почтового сервера, +то можете отправлять и получать сообщения без сквозного шифрования. +Такие сообщения, не имеющие сквозного шифрования, отмечаются значком электронной почты +email.

                    + +

                    + + + Как мне установить чат с новым контактом? + + +

                    + +

                    Вы можете отправить ссылку-приглашение через другой личный чат, +показать QR-код приглашения, когда вы рядом или во время видеозвонка, +или нажать на “контакт”, которым поделились в чате.

                    -

                    Позвольте вашему собеседнику отсканировать QR-код +

                    Попросите вашего собеседника отсканировать QR-код с помощью приложения Delta Chat, или нажмите “Копировать” или “Поделиться”, чтобы создать ссылку-приглашение и отправьте её вашему собеседнику.

                    -

                    Теперь ожидайте, пока сообщения Secure-Join будут переданы между обоими устройствами.

                    +

                    Теперь дождитесь, пока устанавливается сквозное шифрование.

                    • -

                      Если оба устройства находятся в сети, -обе стороны в конечном итоге увидят (групповой или прямой) чат с зелёной галочкой -зелёная галочка -рядом с названием.

                      +

                      Если оба участника онлайн, они вскоре увидят (групповой или прямой) чат +и смогут начать защищённую переписку.

                    • -

                      Если одно из устройств не подключено к сети, зелёные галочки появятся только после того, -как устройство снова подключится к Интернету -и сетевой протокол Secure-Join будет завершён.

                      +

                      Если одна из сторон не в сети или имеет плохое соединение, +возможность переписки будет отложена до восстановления связи.

                    Поздравляем! -Теперь вы будете автоматически использовать гарантированное сквозное шифрование -с этим контактом, и вы оба сможете добавлять друг друга в группы, отмеченные зелёной галочкой -зелёная галочка, -тем самым автоматически распространяя гарантированное сквозное шифрование среди её участников.

                    +Теперь вы автоматически будете использовать сквозное шифрование с данным контактом. +Если вы добавите друг друга в групповые чаты, +сквозное шифрование будет настроено для всех участников.

                    - Что означает зелёная галочка и “гарантированное сквозное шифрование”? + Что означает зеленая галочка в профиле контакта?

                    -

                    Чаты, помеченные зелёными галочками +

                    В профиле контакта может отображаться зелёная галочка зелёная галочка -означают, что все сообщения в чате будут зашифрованы сквозным шифрованием -и не могут быть прочитаны или изменены скомпрометированными серверами электронной почты или интернет-провайдерами. -Присоединение к групповым чатам с зелёной галочкой -безопасно распространяет информацию о шифровании всех участников (и зелёные галочки) -таким образом, чтобы гарантировать сквозное шифрование в группе и между её участниками.

                    - -

                    Профили контактов с зелёной галочкой -зелёная галочка -означают, что отправка сообщений контакту в настоящее время гарантированно зашифрована сквозным шифрованием. -Каждый контакт с зелёной галочкой либо совершил с вами прямое QR-сканирование, -либо был представлен другим контактом с зелёной галочкой. -Знакомство происходит автоматически при добавлении участников в группы. -Тот, кто добавляет контакт в группу, отмеченную зелёной галочкой, становится представителем -для тех участников, которые еще не знают о добавленном контакте. -В профиле контакта можно несколько раз нажать на текст “Представлен …” несколько раз -пока не дойдёте до того, с кем вы непосредственно провели QR-сканирование.

                    - -

                    Обратите внимание, что в профиле контакта вы можете увидеть и присоединённых знакомых, -но в заголовке профиля нет зелёной галочки. -Обычно это означает, что контакт “отправил сообщение с другого устройства”.

                    +и строка “Подтверждён пользователем”. +Каждый контакт с зелёной галочкой либо выполнил непосредственное сканирование QR-кода с вами, +либо был подтверждён другим контактом с зелёной галочкой. +Подтверждения происходят автоматически при добавлении участников в группы. +Тот, кто добавляет контакт с зелёной галочкой в группу, где только участники с зелёными галочками, +становится подтверждающим. +В профиле контакта вы можете последовательно нажимать на текст “Подтверждён …” до тех пор, +пока не дойдёте до того, с кем вы напрямую выполнили сканирование QR-кода.

                    Для более подробного обсуждения “гарантированного сквозного шифрования” пожалуйста, обратитесь к протоколам Secure-Join и прочитайте о “Проверенных группах”, техническом термине, который здесь называется “группами с зелёной галочкой” или чатами с “гарантированным сквозным шифрованием”.

                    -

                    - - - Контакт “отправил сообщение с другого устройства”, что делать? - - -

                    - -

                    Ваш чат с контактом утратил гарантированное сквозное шифрование. -Зелёная галочка была удалена для этого чата и контакта, и когда вы увидели предупреждение. -Если вы обнаружили внезапное прекращение гарантированного сквозного шифрования -для этого контакта, не принимайте предупреждение! -Вместо этого свяжитесь со своим контактом по второму каналу, -например, видеозвонок, другой мессенджер или телефонный звонок, -чтобы узнать, что произошло.

                    - -

                    Если ваш контакт стал причиной потери гарантированного сквозного шифрования, -пожалуйста, ознакомьтесь с распространёнными причинами и способами их устранения в следующих параграфах. -Независимо от этого, все остальные чаты, отмеченные зелёной галочкой, остаются гарантированно зашифрованными сквозным шифрованием, -даже если этот контакт является его участником.

                    - -

                    Ваш контакт использует Delta Chat на втором устройстве (телефоне или ноутбуке)

                    - -

                    Если у него есть другое устройство с запущенным приложением Delta Chat, -ему следует удалить учётную запись с нового устройства -и добавить его как второе устройство, как описано здесь. -После того, как он отправит вам сообщение, предупреждение исчезнет -и гарантированное шифрование будет установлено на обоих устройствах вашего собеседника.

                    - -

                    Ваш контакт переустановил Delta Chat, используя старые учетные данные для входа

                    - -

                    Если у него есть файл резервной копии, -ему следует удалить профиль с нового устройства -и вместо этого импортировать резервную копию для восстановления своего профиля. -После того, как он отправит вам сообщение, предупреждение исчезнет, -и гарантированное шифрование будет восстановлено для этого контакта.

                    - -

                    Если у него нет файла резервной копии, лучше всего выполнить сканирование QR-кода -с вашим собеседником, чтобы восстановить гарантированное сквозное шифрование.

                    - -

                    Ваш контакт отправил письмо через интерфейс веб-почты или другое приложение электронной почты -и снова вернулся к использованию Delta Chat.

                    - -

                    Если вы уверены, что ваш контакт иногда использует веб-почту -или другое приложение электронной почты, в котором отсутствует сквозное шифрование, -то вы можете принять предупреждение. -Как только контакт снова начнёт использовать Delta Chat, -гарантированное сквозное шифрование будет автоматически восстановлено.

                    - -

                    Ваш контакт полностью прекратил использование Delta Chat

                    - -

                    Иногда оставаться на связи важнее, чем сквозное шифрование. -“Протокол защиты транспортного уровня” (TLS) всё ещё может существенно защитить -конфиденциальность ваших сообщений между вашим устройством и сервером электронной почты. -Но без сквозного шифрования вы и ваш контакт должны доверять серверу электронной почты, -который не должен читать и манипулировать вашими сообщениями, и не передавать их третьим лицам.

                    - -

                    В любом случае, вы ничего не можете сделать, кроме как принять предупреждение. -Также удалите контакт из любой активной группы, отмеченной зелёной галочкой, -которую можно найти в разделе “Общие чаты” в профиле контакта. -Это избавит ваш контакт от получения “не читаемых” сообщений.

                    - -

                    Если контакт удалил Delta Chat из-за ошибок или нежелательного поведения, -пожалуйста, подумайте о том, чтобы поделиться этой информацией на нашем форуме поддержки, -чтобы помочь нам выявить и устранить общие проблемы. Спасибо!

                    -

                    @@ -945,9 +877,8 @@ Autocrypt использует ограниченное и - Будет ли сообщение передано в открытом виде, если сквозное шифрование недоступно? + Видны ли в Интернете сообщения, отмеченные значком почты?

                    -

                    Даже если не гарантируется сквозное шифрование ваших сообщений, -они все равно защищены от интернет-провайдеров, сотовых операторов или кабельных компаний. -Однако провайдеры электронной почты, ваш и ваших получателей -могут читать, анализировать или даже изменять ваши сообщения, -включая любые вложения, -если они не зашифрованы сквозным шифрованием.

                    +

                    Если вы отправляете или получаете электронные сообщения без сквозного шифрования (используя классический почтовый сервер), +они всё равно защищены от операторов сотовой связи или интернет-провайдеров, которые не могут прочитать или изменить ваши электронные сообщения. +Однако и ваш почтовый провайдер, и почтовый провайдер вашего получателя +могут читать, анализировать или изменять ваши сообщения, включая любые вложения.

                    Delta Chat по умолчанию использует строгое TLS-шифрование, @@ -1032,10 +961,6 @@ Delta Chat вместо этого использует реализацию Ope то между провайдерами электронной почты будет применяться протокол защиты транспортного уровня. В этом случае сообщения Delta Chat никогда не будут переданы в открытом виде через Интернет, даже если сообщение не было зашифровано сквозным шифрованием.

                    - -

                    Обратите внимание, что поддержание гарантированного сквозного шифрования поверх шифрования TLS -обеспечивает полную безопасность между вашими устройствами и устройствами получателя. -Ни ваш провайдер электронной почты, ни провайдер Интернета не смогут прочитать или изменить ваши сообщения.

                    @@ -1045,25 +970,25 @@ Delta Chat вместо этого использует реализацию Ope

                    -

                    Delta Chat защищает большинство метаданных сообщений, помещая следующую информацию, -в зашифрованную сквозным шифрованием часть сообщений:

                    +

                    В отличие от большинства других мессенджеров, +приложения Delta Chat не сохраняют никакие метаданные о контактах или группах на серверах, даже в зашифрованной форме. +Вместо этого все групповые метаданные шифруются сквозным шифрованием и хранятся исключительно на устройствах конечных пользователей.

                    + +

                    Поэтому, почтовые серверы имеют доступ только к

                      -
                    • Тема сообщения
                    • -
                    • Аватар и название группы
                    • -
                    • Запросы MDN (уведомление о прочтении) (Chat-Disposition-Notification-To)
                    • -
                    • Таймер исчезающих сообщений (Ephemeral-Timer)
                    • -
                    • Участник-группы-чата-удалён (Chat-Group-Member-Removed); Участник-группы-чата-добавлен (Chat-Group-Member-Added)
                    • -
                    • Заголовок Secure-Join, содержащий команды безопасного соединения
                    • -
                    • Уведомление о включении потоковой передачи местоположения
                    • -
                    • URL-адрес комнаты WebRTC
                    • +
                    • +

                      дате сообщения,

                      +
                    • +
                    • +

                      адресам отправителя и получателя

                      +
                    • +
                    • +

                      и размеру сообщения.

                      +
                    -

                    Серверы электронной почты не получают доступ к этим защищённым метаданным, -но они видят дату сообщения, а также его размер, -и, что более важно, адреса отправителя и получателя. -Серверам электронной почты нужны адреса получателей для маршрутизации и -доставки сообщений на устройства получателей.

                    +

                    Все прочие метаданные сообщений, контактов и групп содержатся в части сообщений, защищённой сквозным шифрованием.

                    @@ -1075,20 +1000,80 @@ Delta Chat вместо этого использует реализацию Ope

                    Для защиты от серверов электронной почты, собирающих метаданные, а также от угрозы конфискации устройства, -мы рекомендуем использовать сервер chatmail, -для создания безымянных (псевдонимных), временных профилей через сканирование QR-кодов. +мы рекомендуем использовать релей chatmail +для создания чат-профилей с использованием случайных электронных адресов для передачи сообщений. Обратите внимание, что приложения Delta Chat на всех платформах поддерживают несколько профилей, -так что вы можете легко использовать отдельные профили, для конкретной ситуации, -помимо вашего “основного” профиля, +так что вы можете легко использовать отдельные профили, для конкретной ситуации, помимо вашего “основного” профиля, зная, что все их данные, вместе с метаданными, будут удалены. -Кроме того, если устройство будет конфисковано, контакты, использующие временные профили, -не могут быть легко идентифицированы, в отличие от мессенджеров, которые раскрывают -номера телефонов в групповых чатах, которые часто связаны с реальными личностями.

                    +Кроме того, если устройство изъято, контакты, использующие временные профили, +не могут быть легко идентифицированы.

                    -

                    +

                    - Как я могу проверить информацию о шифровании? + Поддерживает ли Delta Chat функцию “Sealed Sender” (Засекреченный отправитель)? + + +

                    + +

                    Нет, пока нет.

                    + +

                    Мессенджер Signal внедрил функцию “Sealed Sender” (Засекреченный отправитель) в 2018 году, +чтобы их серверная инфраструктура не имела информации о том, кто отправляет сообщение группе получателей. +Это особенно важно, поскольку сервер Signal знает мобильный номер каждого аккаунта, +который обычно привязан к паспортным данным.

                    + +

                    Даже если релеи chatmail +не запрашивают никаких личных данных (включая телефонные номера), +всё равно может быть полезно защитить реляционные метаданные между адресами +Мы не видим серьёзных проблем в использовании случайных одноразовых электронных адресов для функции sealed sender, +но реализация пока не определена как приоритетная задача.

                    + +

                    + + + Поддерживает ли Delta Chat свойство Perfect forward secrecy, PFS (Совершенную прямую секретность)? + + +

                    + +

                    Нет, пока нет.

                    + +

                    На данный момент, Delta Chat не поддерживает Perfect Forward Secrecy (PFS) (Совершенную прямую секретность). +Это означает, что если ваш приватный ключ дешифрования будет скомпрометирован, +и кто-то собрал ваши предыдущие сообщения во время передачи, +они смогут расшифровать и прочитать их, используя скомпрометированный ключ дешифрования. +Обратите внимание, что Forward Secrecy (Прямая секретность) повышает безопасность только если вы удаляете сообщения. +В противном случае, тот, кто получает ваши ключи дешифрования +также может получить все ваши не удалённые сообщения +и ему даже не нужно расшифровывать какие-либо ранее собранные сообщения.

                    + +

                    Мы разработали подход к Forward Secrecy (Прямой секретности), который прошёл +первичную проверку некоторыми криптографами и экспертами по реализации +но требует более формального описания +чтобы убедиться, что он надёжно работает в федеративном обмене сообщениями и при использовании нескольких устройств, +прежде чем он может быть внедрён в ядро chatmail, +что сделает его доступным во всех клиентах clients.

                    + +

                    + + + Поддерживает ли Delta Chat Post-Quantum-Cryptography (Постквантовую криптографию)? + + +

                    + +

                    Нет, пока нет.

                    + +

                    Delta Chat использует библиотеку OpenPGP на Rust rPGP, +которая поддерживает последний черновик IETF Post-Quantum-Cryptography OpenPGP. +Мы планируем добавить поддержку PQC в ядро chatmail после того, как черновик будет окончательно утвержден в IETF +в сотрудничестве с другими разработчиками OpenPGP.

                    + +

                    + + + Как можно вручную проверить информацию о шифровании?

                    @@ -1099,121 +1084,6 @@ Delta Chat показывает там два отпечатка. Если на вашем устройстве и на устройстве вашего контакта показаны одинаковые отпечатки, соединение безопасно.

                    -

                    - - - Как я могу проверить статус шифрования сообщений? - - -

                    - -

                    Маленький значок замка в сообщении означает, -что сообщение было правильно зашифровано сквозным шифрованием от данного отправителя. -Если замка нет, сообщение не было правильно зашифровано, -возможно, потому что отправитель использует приложение или веб-интерфейс электронной почты -без поддержки сквозного шифрования.

                    - -

                    - - - Почему я вижу незашифрованные сообщения? - - -

                    - -

                    Если контакт использует приложение электронной почты, не поддерживающее Autocrypt, -все сообщения, включающие этого контакта (в групповом или личном 1:1 чате), -не будут зашифрованы сквозным шифрованием, и поэтому не будут иметь “значок замка” в сообщениях. -Обратите внимание, что даже если ваши контакты используют Delta Chat на своем аккаунте, -они также могут использовать приложение электронной почты, не поддерживающее Autocrypt, -на том же аккаунте, что может привести к периодически незашифрованным сообщениям. -Ответ на незашифрованные сообщения незашифрованным сообщением является обязательным в Autocrypt, -чтобы предотвратить появление нечитаемых сообщений на стороне ваших контактов -и их приложении электронной почты, которое не поддерживает Autocrypt.

                    - -

                    - - - Как я могу получить зашифрованный сквозным шифрованием чат с контактом Delta Chat, который иногда использует веб-почту или другое приложение электронной почты, не поддерживающее Autocrypt? - - -

                    - -

                    Если вам нужен зашифрованный сквозным шифрованием чат с контактом, -который использует свой адрес электронной почты как с Delta Chat, так и с приложениями, не поддерживающими Autocrypt (например, веб-почтой), -лучше всего настроить с ним гарантированное сквозное шифрование -и затем создать гарантированно зашифрованный сквозным шифрованием групповой чат с вами двумя как участниками. -В этом групповом чате все сообщения будут зашифрованы сквозным шифрованием, -даже если прямой чат между вами двумя имеет предупреждение -“… отправил сообщение с другого устройства”.

                    - -

                    - - - Как я могу обеспечить сквозное шифрование и удаление сообщений? - - -

                    - -

                    Лучший способ обеспечить сквозное шифрование каждого сообщения, -где метаданные удаляются как можно быстрее, -это использовать чаты с гарантированным сквозным шифрованием -и включить исчезающие сообщения.

                    - -

                    Чаты с гарантированным сквозным шифрованием защищают от атак “человек посередине”, -а включение исчезающих сообщений удаляет сообщения -на сервере через заданное пользователем время.

                    - -

                    Если вам не нужна долгоживущая копия ваших сообщений на сервере, -вы также можете включить “удалять сообщения с сервера автоматически”.

                    - -

                    - - - Поддерживает ли Delta Chat совершенную прямую секретность (Perfect forward secrecy, PFS)? - - -

                    - -

                    Нет, Delta Chat не поддерживает совершенную прямую секретность (PFS). -Это означает, что если ваш личный ключ дешифрования Delta Chat будет скомпрометирован, -и кто-то собрал ваши предыдущие сообщения, переданные по сети, -то они смогут расшифровать и прочитать их с помощью скомпрометированного ключа дешифрования.

                    - -

                    Обратите внимание, если кто-то получит доступ к вашим ключам дешифрования, -они, как правило, также смогут получить доступ к вашим сообщениям, -независимо от того, используется ли совершенная прямая секретность или нет. -Типичная реальная ситуация для утечки ключей дешифрования - это изъятие устройства, -о чём мы говорим в нашем ответе о метаданных и изъятии устройства.

                    - -

                    Возможно, Delta Chat будет развиваться в направлении поддержки совершенной прямой секретности (PFS), -поскольку OpenPGP является всего лишь контейнером для зашифрованных сообщений, -но управление ключами шифрования (и, следовательно, ротация ключей или “переключение” ключей) -могут быть организованы гибкими способами. -См. прототип PFS Seqouia -для существующих экспериментов в сообществе разработчиков OpenPGP.

                    - -

                    - - - Является ли сквозное шифрование Delta Chat таким же безопасным как Signal? - - -

                    - -

                    Это зависит от того, что для вас важно. -Delta Chat не поддерживает PFS, как Signal, -но обеспечивает гарантированно зашифрованные сквозным шифрованием чаты -защищенные от скомпрометированных серверов или поврежденных сетей. -Signal и большинство других мессенджеров, поддерживающих PFS, -не предоставляют практической схемы защиты групповых чатов от сетевых атак, -которые, возможно, вызывают большее беспокойство, -чем потенциальный злоумышленник, который захватывает ваш телефон и настройки персонального шифрования, -но почему-то не ваши сообщения, но при этом имеет полный отчет обо всех прошлых зашифрованных сообщениях.

                    - -

                    В любом случае, сквозное шифрование Delta Chat использует безопасное подмножество OpenPGP -которое прошло независимую проверку безопасности.

                    -

                    @@ -1488,16 +1358,16 @@ PIN-код разблокировки экрана, графический кл

                      -
                    • Приложения webxdc не могут отправлять данные в Интернет или скачивать что-либо.
                    • -
                    • Приложение webxdc может обмениваться данными только внутри чата Delta Chat, с его -копиями на устройствах ваших собеседников по чату. -В остальном, оно полностью +
                    • Приложения webxdc не имеют доступа к Интернету и не могут ничего загружать.
                    • +
                    • Обмен данными в webxdc-приложении возможен только внутри чата Delta Chat, между +копиями приложения на устройствах участников чата. В остальном оно полностью изолировано от Интернета.
                    • -
                    • Конфиденциальность, которую обеспечивает приложение webxdc — это конфиденциальность вашего чата - пока -вы доверяете людям, с которыми вы общаетесь, вы можете доверять приложению webxdc.
                    • -
                    • Это также означает, что открытие приложений webxdc в чатах с участниками, которым вы -не доверяете, тоже самое, что и с вложениями электронной почты, когда вы открываете -вложения только от тех отправителей, которым доверяете, а не от спамеров.
                    • +
                    • Уровень приватности webxdc-приложения соответствует приватности вашего чата — если вы +доверяете собеседникам, можете доверять и приложению.
                    • +
                    • Это значит, что открывать такие приложения в чатах с незнакомыми или подозрительными участниками может быть небезопасно. +Как и с вложениями, видеозвонками или ссылками: +открывайте их только от тех, кому доверяете, и не открывайте от спамеров. +Спамеры могут получить любые данные, которые вы им отправите, а также узнать ваш IP-адрес.

                    @@ -1580,20 +1450,10 @@ Delta Chat.

                    -
                      -
                    • С помощью списка рассылки вы можете отправить сообщение сразу нескольким получателям; когда -они ответят вам, вы получите ответ в прямом чате с ними 1:1. -Получатели не смогут видеть друг друга.
                    • -
                    • Технически, это электронное письмо с несколькими получателями в поле BCC (скрытая копия).
                    • -
                    • Включить функцию можно в разделе “Экспериментальные функции” в -“Дополнительных параметрах”. Затем вы можете создать список рассылки в диалоге “Новый чат”.
                    • -
                    • Если вы используете более одного устройства, списки рассылки в настоящее время не -синхронизируются между ними.
                    • -
                    • Сообщения, отправленные в списки рассылки, не шифруются. Шифрование нарушит -анонимность, потому что тогда все получатели узнают, кто еще получил сообщение. -(Отправка отдельных писем каждому будет хуже из-за ограничений скорости и -потребления сети).
                    • -
                    +

                    Список рассылки позволяет отправлять сообщения сразу нескольким адресатам; +получатели не могут отвечать в этом списке. +Функция списков рассылки пока что экспериментальная +и, скорее всего, в будущем будет заменена на что-то другое — следите за новостями. :)

                    @@ -1650,6 +1510,11 @@ Delta Chat.

                    +

                    Примечание: +Смена электронных адресов временно отключена +из-за продолжающихся изменений в ядре DeltaChat. +Функция должна снова заработать через несколько месяцев.

                    +
                    1. Измените свой адрес в разделе “Настройки → Дополнительные параметры → Пароль и аккаунт” и @@ -1751,19 +1616,19 @@ Delta Chat.

                    2. см. Обзор провайдеров -

                      +

                      - Я хочу управлять своим собственным почтовым сервером для Delta Chat. Что вы посоветуете? + Я хочу управлять своим собственным сервером для Delta Chat. Что вы посоветуете?

                      diff --git a/src/main/assets/help/sk/help.html b/src/main/assets/help/sk/help.html index c384d8e4f..06521bef9 100644 --- a/src/main/assets/help/sk/help.html +++ b/src/main/assets/help/sk/help.html @@ -36,27 +36,24 @@
                    3. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
                    4. -
                    5. Encryption and Security +
                    6. Encryption and Security @@ -90,7 +87,7 @@
                    7. -

                      Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

                      +

                      Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

                      -

                      Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

                      +
                        +
                      • +

                        Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

                        +
                      • +
                      • +

                        Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

                        +
                      • +
                      • +

                        Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

                        +
                      • +
                      + +

                      Delta Chat does not query, publish or interact with any OpenPGP key servers.

                      @@ -760,28 +765,37 @@ guarantee end-to-end encrypted messages.

                      -

                      All end-to-end encrypted messages carry a padlock:

                      - -

                      padlock in bubble

                      - -

                      End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

                      - -

                      green checkmark in title

                      +

                      All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

                      -

                      +

                      - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

                      -

                      If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

                      +

                      If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

                      -

                      If you are together in person, -you can show a QR code to your chat partner.

                      +

                      If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

                      + +

                      + + + How can I establish a chat with a new contact? + + +

                      + +

                      You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

                      • @@ -790,141 +804,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

                      • -

                        For direct 1:1 chat invitations, +

                        For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

                      -

                      Let your chat partner scan the QR image +

                      Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

                      -

                      Now wait while Secure-Join network messages are exchanged between both devices.

                      +

                      Now wait while end-to-end encryption is getting established.

                      • -

                        If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

                        +

                        If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

                      • -

                        If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

                        +

                        If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

                      Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

                      +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

                      - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

                      -

                      Chat titles with green checkmarks +

                      A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

                      - -

                      Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

                      -

                      Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

                      -

                      For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

                      -

                      - - - A contact “sent a message from another device”, what can i do? - - -

                      - -

                      Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

                      - -

                      If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

                      - -

                      Your contact is using Delta Chat on a second device (phone or laptop)

                      - -

                      If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

                      - -

                      Your contact reinstalled Delta Chat using their old account login

                      - -

                      If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

                      - -

                      If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

                      - -

                      Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

                      - -

                      If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

                      - -

                      Your contact stopped using Delta Chat entirely

                      - -

                      Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

                      - -

                      In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

                      - -

                      If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

                      -

                      @@ -949,8 +882,7 @@ and attachment metadata such as filenames.

                      Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

                      OpenPGP is not insecure by itself. @@ -971,7 +903,7 @@ which was thankfully adopted in summer 2023.

                      - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

                      @@ -1014,17 +946,15 @@ as defined by the Autocrypt Level 1 specification.

                      - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

                      -

                      Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

                      +

                      If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

                      Delta Chat by default uses strict TLS encryption @@ -1036,10 +966,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

                      @@ -1049,25 +975,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

                      -

                      Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

                      +

                      Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

                      + +

                      E-mail Servers can therefore only see

                        -
                      • Subject line
                      • -
                      • Group avatar and name
                      • -
                      • MDN (read receipt) requests (Chat-Disposition-Notification-To)
                      • -
                      • Disappearing message timer (Ephemeral-Timer)
                      • -
                      • Chat-Group-Member-Removed, Chat-Group-Member-Added
                      • -
                      • Secure-Join header containing secure join commands
                      • -
                      • Notification about enabling location streaming
                      • -
                      • WebRTC room URL
                      • +
                      • +

                        the message date,

                        +
                      • +
                      • +

                        sender and receiver addresses

                        +
                      • +
                      • +

                        and message size.

                        +
                      -

                      E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

                      +

                      All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

                      @@ -1079,96 +1005,34 @@ deliver messages to recipient’s devices.

                      Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

                      +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

                      -

                      +

                      - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

                      -

                      You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

                      - -

                      - - - How can I check the encryption status of messages? - - -

                      +

                      No, not yet.

                      -

                      A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

                      - -

                      - - - Why do I see unencrypted messages? - - -

                      +

                      The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

                      -

                      If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

                      - -

                      - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

                      - -

                      If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

                      - -

                      - - - How can I ensure message end-to-end encryption and deletion? - - -

                      - -

                      The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

                      - -

                      Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

                      - -

                      If you don’t need a longer-lived copy of your messages on the server, -you can also turn on “delete messages from server automatically”.

                      +

                      Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

                      @@ -1178,45 +1042,52 @@ you can also turn on “delete messages from server automatica

                      -

                      No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

                      No, not yet.

                      + +

                      Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

                      +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

                      -

                      Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

                      - -

                      It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

                      +

                      We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

                      -

                      +

                      - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

                      -

                      It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

                      +

                      No, not yet.

                      -

                      In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

                      +

                      Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

                      + +

                      + + + How can I manually check encryption information? + + +

                      + +

                      You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

                      @@ -1251,7 +1122,7 @@ from most recent to older:

                    8. 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

                        @@ -1498,9 +1369,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
                      • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
                      • -
                      • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
                      • +
                      • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

                      @@ -1584,21 +1456,10 @@ this way, you will have a new random Jitsi room every time you call someone.

                    9. -
                        -
                      • With a Broadcast List you can send a message to many recipients at once; when -they reply to you, you get the reply in your direct 1:1 chat with them. The -recipients can’t see each other.
                      • -
                      • Technically, it is an E-Mail with many recipients in BCC.
                      • -
                      • You can turn on the feature in the “experimental features” section in the -advanced settings. Then you can create a Broadcast List from the “New Chat” -dialog.
                      • -
                      • In case you are using more than one device, Broadcast Lists are currently not -synced between them.
                      • -
                      • Messages sent to broadcast lists are not encrypted. Encryption would break -anonymity, because then all recipients would know who else received it -(Sending individual mails to everyone would be worse for rate limit and network -consumption reason).
                      • -
                      +

                      With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

                      @@ -1655,6 +1516,11 @@ vykonáva aplikácia Delta Chat.

                      +

                      Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

                      +
                      1. Change your address in “Settings → Advanced → Password and Account” and @@ -1757,19 +1623,19 @@ Niektorí poskytovatelia však potrebujú na správne fungovanie špeciálne mo pozrite si Prehľad poskytovateľa

                      2. -

                        +

                        - I want to manage my own e-mail server for Delta Chat. What do you recommend? + I want to manage my own server for Delta Chat. What do you recommend?

                        diff --git a/src/main/assets/help/sq/help.html b/src/main/assets/help/sq/help.html index 3e8da9bc9..69605c2dc 100644 --- a/src/main/assets/help/sq/help.html +++ b/src/main/assets/help/sq/help.html @@ -36,27 +36,24 @@
                      3. Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
                      4. -
                      5. Fshehtëzim dhe Siguri +
                      6. Fshehtëzim dhe Siguri @@ -90,7 +87,7 @@
                      7. -

                        Autocrypt is used for automatically -establishing end-to-end encryption with contacts and group chats. -Autocrypt uses a limited and secure subset of the OpenPGP standard. -End-to-End encrypted messages are marked with a padlock -padlock.

                        +

                        Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

                        -

                        Secure-Join protocols -are used for establishing chats with guaranteed end-to-end encryption -which protects against network attacks and compromised servers. -Chats marked with a green checkmark -green checkmark -guarantee end-to-end encrypted messages.

                        +
                          +
                        • +

                          Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

                          +
                        • +
                        • +

                          Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

                          +
                        • +
                        • +

                          Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

                          +
                        • +
                        + +

                        Delta Chat does not query, publish or interact with any OpenPGP key servers.

                        @@ -761,28 +766,37 @@ guarantee end-to-end encrypted messages.

                        -

                        All end-to-end encrypted messages carry a padlock:

                        - -

                        padlock in bubble

                        - -

                        End-to-end encryption is guaranteed if there is a green checkmark next to the chat title:

                        - -

                        green checkmark in title

                        +

                        All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

                        -

                        +

                        - How can I get guaranteed end-to-end encryption and green checkmarks? + Can i still receive or send mails without end-to-end encryption?

                        -

                        If you have a second communication channel with your chat partner, -like a video chat or a different messenger, -you can generate an invite link.

                        +

                        If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

                        -

                        If you are together in person, -you can show a QR code to your chat partner.

                        +

                        If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

                        + +

                        + + + How can I establish a chat with a new contact? + + +

                        + +

                        You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

                        • @@ -791,141 +805,60 @@ tap the chat group title to see its member list, and select “QR Invite code”.

                        • -

                          For direct 1:1 chat invitations, +

                          For direct 1:1 chat invitations, tap the QR Code icon on the Delta Chat app main screen.

                        -

                        Let your chat partner scan the QR image +

                        Ask your chat partner to scan the QR image with their Delta Chat app, or click “Copy” or “Share” to create an invite link and share it with your chat partner.

                        -

                        Now wait while Secure-Join network messages are exchanged between both devices.

                        +

                        Now wait while end-to-end encryption is getting established.

                        • -

                          If both devices are online, -both sides will eventually see a (group or direct) chat with a green checkmark -green checkmark -next to the title.

                          +

                          If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

                        • -

                          If one of the devices is offline, the green checkmarks will only -appear later when the device is internet-connected again -and the Secure-Join network protocol completed.

                          +

                          If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

                        Congratulations! -You now will automatically use guaranteed end-to-end encryption -with this contact and both of you can add each other to green-checkmarked groups -green checkmark, -thereby automatically spreading guaranteed end-to-end encryption among its members.

                        +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

                        - What does the green checkmark and “guaranteed end-to-end encryption” mean? + What does the green checkmark in a contact profile mean?

                        -

                        Chat titles with green checkmarks +

                        A contact profile might show a green checkmark green checkmark -mean that all messages in the chat will be end-to-end encrypted -and can not be read or altered by compromised e-mail servers or Internet providers. -Joining green-checkmarked group chats -safely spreads everybody’s encryption information (and green checkmarks) -in a manner that guarantees end-to-end encryption in the group and among members.

                        - -

                        Contact profiles with green checkmarks -green checkmark -mean that messaging a contact is currently guaranteed to be end-to-end encrypted. +and an “Introduced by” line. Every green-checkmarked contact either did a direct QR-scan with you or was introduced by a another green-checkmarked contact. Introductions happen automatically when adding members to groups. -Whoever adds a contact to a green-checkmarked group becomes an introducer -to those members who didn’t yet know about the added contact. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. In a contact profile you can tap on the “Introduced by …” text repeatedly until you get to the one with whom you directly did a QR-scan.

                        -

                        Note that in a contact profile you may see and tap introducers -but there is no green checkmark in the profile title. -This usually means that the contact “sent a message from another device”.

                        -

                        For more in-depth discussion of “guaranteed end-to-end encryption” please see Secure-Join protocols and specifically read about “Verified Groups”, the technical term of what is called here “green-checkmarked” or “guaranteed end-to-end encrypted” chats.

                        -

                        - - - A contact “sent a message from another device”, what can i do? - - -

                        - -

                        Your chat with a contact lost guaranteed end-to-end encryption. -The green checkmark was removed for this chat and contact when you see this warning. -If you find the sudden drop of guaranteed end-to-end encryption -surprising for this contact then don’t accept the warning! -Instead check with your contact through a second channel -like a video call, other messenger or a phone call, -to find out what happened.

                        - -

                        If your contact actually caused the drop of guaranteed end-to-end encryption -please see the next paragraphs for common reasons and their mitigations. -Regardless, all other green-checkmarked chats remain guaranteed end-to-end encrypted -even if the contact is a member there.

                        - -

                        Your contact is using Delta Chat on a second device (phone or laptop)

                        - -

                        If they have another device with a Delta Chat app running, -they should remove the profile from the new device -and add it as a second device as described here. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is established with both devices of your contact.

                        - -

                        Your contact reinstalled Delta Chat using their old account login

                        - -

                        If they have a backup file, -they should remove the profile from the new device -and rather import the backup file to re-create their profile. -As soon as they message you afterwards, the warning will be gone -and guaranteed encryption is re-established for this contact.

                        - -

                        If they don’t have a backup file, it’s best to perform a QR scan -with your chat partner to re-establish guaranteed end-to-end encryption.

                        - -

                        Your contact sent a mail through a webmail interface or another e-mail app -and will get back to using Delta Chat soon again.

                        - -

                        If you are sure that the contact sometimes uses webmail, -or another mail app lacking end-to-end encryption, -then you may accept the warning. -As soon as your contact uses Delta Chat again, -guaranteed end-to-end encryption will be automatically re-established.

                        - -

                        Your contact stopped using Delta Chat entirely

                        - -

                        Sometimes remaining in contact is more important than end-to-end encryption. -“Transport Layer Encryption” (TLS) may still meaningfully protect -the confidentiality of your messages between your device and the e-mail server. -But without end-to-end encryption you and your contact are trusting your e-mail server -to not read or manipulate your messages, and to not hand them to third parties.

                        - -

                        In any case, you can not do much else than accept the warning. -Please also remove the contact from any active green-checkmarked group -which you can find in “Shared chats” in the Contact profile. -This spares your contact from getting “unreadable” messages.

                        - -

                        If the contact removed Delta Chat because of buggy or undesirable behaviour, -please consider posting to our support forum -to help us identify and address common problems. Thanks!

                        -

                        @@ -950,8 +883,7 @@ and attachment metadata such as filenames.

                        Yes, Delta Chat uses a secure subset of OpenPGP -and only displays a padlock security indicator on a message -if the whole message is properly encrypted and signed. +requiring the whole message to be properly encrypted and signed. For example, “Detached signatures” are not treated as secure.

                        OpenPGP is not insecure by itself. @@ -972,7 +904,7 @@ which was thankfully adopted in summer 2023.

                        - Did you consider using alternatives to OpenPGP for end-to-end -encryption? + Did you consider using alternatives to OpenPGP for end-to-end-encryption?

                        @@ -1015,17 +947,15 @@ as defined by the Autocrypt Level 1 specification.

                        - Is a message exposed in cleartext if end-to-end encryption is not available? + Are messages marked with the mail icon exposed on the Internet?

                        -

                        Even if your messages are not guaranteed to be end-to-end encrypted, -they are still protected from Internet providers like cell or cable companies. -However, your and your recipient’s e-mail providers -may read, analyze or even modify your messages, -including any attachments, -if they are not end-to-end encrypted.

                        +

                        If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

                        Delta Chat by default uses strict TLS encryption @@ -1037,10 +967,6 @@ If the involved e-mail servers support maintaining guaranteed end-to-end encryption on top of TLS encryption -provides pervasive safety between your and the recipient’s devices. -Not even your e-mail or Internet provider will be able to read or modify your messages.

                        @@ -1050,25 +976,25 @@ Not even your e-mail or Internet provider will be able to read or modify your me

                        -

                        Delta Chat protects most message metadata by putting the following information -into the end-to-end encrypted part of messages:

                        +

                        Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

                        + +

                        E-mail Servers can therefore only see

                          -
                        • Rresht subjekti
                        • -
                        • Avatar dhe emër grupi
                        • -
                        • Kërkesa MDN (dëftesë leximi) (Chat-Disposition-Notification-To)
                        • -
                        • Afatmatës mesazhesh që zhduken (Ephemeral-Timer)
                        • -
                        • Chat-Group-Member-Removed, Chat-Group-Member-Added
                        • -
                        • Krye Secure-Join që përmban urdhra për pjesëmarrje të siguruar
                        • -
                        • Njoftim mbi aktivizim tregimi vendndodhjeje
                        • -
                        • URL dhome WebRTC
                        • +
                        • +

                          the message date,

                          +
                        • +
                        • +

                          sender and receiver addresses

                          +
                        • +
                        • +

                          and message size.

                          +
                        -

                        E-Mail servers do not get access to this protected metadata -but they do see the message date as well as the message size, -and, more importantly, the sender and receiver addresses. -E-mail servers need receiver addresses to route and -deliver messages to recipient’s devices.

                        +

                        All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

                        @@ -1080,96 +1006,34 @@ deliver messages to recipient’s devices.

                        Both for protecting against metadata-collecting e-mail servers as well as against the threat of device seizure -we recommend to use a chatmail server -to create pseudonymous temporary profiles through QR-code scans. +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. Note that Delta Chat apps on all platforms support multiple profiles so you can easily use situation-specific profiles next to your “main” profile with the knowledge that all their data, along with all metadata, will be deleted. -Moreover, if a device is seized then contacts using temporary profiles -can not be identified easily, as compared to messengers which reveal -phone numbers in chat groups which in turn are often associated with legal identities.

                        +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

                        -

                        +

                        - How can i check encryption information? + Does Delta Chat support “Sealed Sender”?

                        -

                        You may check the end-to-end encryption status manually in the “Encryption” dialog -(user profile on Android/iOS or right-click a user’s chat-list item on desktop). -Delta Chat shows two fingerprints there. -If the same fingerprints appear on your own and your contact’s device, -the connection is safe.

                        - -

                        - - - Si mund ta kontrolloj gjendjen e fshehtëzimit të mesazheve? - - -

                        +

                        No, not yet.

                        -

                        A little padlock in a message bubble denotes -that the message was properly end-to-end encrypted from the given sender. -If there is no padlock, the message was not properly end-to-end encrypted -most likely because the sender uses an app or webmail interface -without support for end-to-end–encryption.

                        - -

                        - - - Pse shoh mesazhe të pafshehtëzuar? - - -

                        +

                        The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

                        -

                        If a contact uses a non-Autocrypt e-mail app, -all messages involving this contact (in a group or 1:1 chat) -will not be end-to-end encrypted, and thus not show a “padlock” with messages. -Note that even if your contacts use Delta Chat on their account, -they might also use a non-Autocrypt e-mail app on that account -which then may cause intermittently unencrypted messages. -Replying unencrypted to unencrypted messages is mandated by Autocrypt -to prevent unreadable messages on the side of your contacts -and their non-Autocrypt e-mail app.

                        - -

                        - - - How can i get an end-to-end encrypted chat with a Delta Chat contact who sometimes uses webmail or another non-Autocrypt e-mail app? - - -

                        - -

                        If you need a safely end-to-end encrypted chat with a contact -who is using their e-mail account both with Delta Chat and non-Autocrypt apps (e.g. webmail), -it’s best to setup guaranteed end-to-end encryption with them -and then create a guaranteed end-to-end encrypted group chat with you two as members. -In this group chat all messages will be end-to-end encrypted -even if the direct chat between you two has a -“… sent a message from another device” warning.

                        - -

                        - - - How can I ensure message end-to-end encryption and deletion? - - -

                        - -

                        The best way to ensure every message is end-to-end encrypted, -and metadata deleted as quickly as possible -is using chats with guaranteed end-to-end encryption -and turning on disappearing messages.

                        - -

                        Guaranteed end-to-end encrypted chats protect against MITM attacks -and turning on disappearing messages deletes the messages -on the server after a user-configured time.

                        - -

                        Nëse s’ju duhet te shërbyesi një kopje jetëgjatë e mesazheve tuaj, -mund edhe të aktivizoni “fshiji automatikisht nga shërbyesi mesazhe”.

                        +

                        Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

                        @@ -1179,45 +1043,52 @@ mund edhe të aktivizoni “fshiji automatikisht nga shërbyes

                        -

                        No, Delta Chat doesn’t support Perfect Forward Secrecy (PFS). -This means that if your Delta Chat private decryption key is leaked, +

                        No, not yet.

                        + +

                        Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, and someone has collected your prior in-transit messages, -they will be able to decrypt and read them using the leaked decryption key.

                        +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

                        -

                        Note, however, that if anyone obtains to your decryption keys, -they will typically also be able to obtain your messages, -irrespective if Perfect Forward Secrecy is in place or not. -The typical real-world situation for leaked decryption keys is device seizure -which we discuss in our answer on metadata and device seizure.

                        - -

                        It is possible that Delta Chat evolves to support Perfect Forward Secrecy, -because OpenPGP is just a container for encrypted messages -but encryption key management (and thus key rotation or key “ratcheting”) -could be organized in flexible ways. -See Seqouia’s PFS prototype -for existing experiments in the OpenPGP implementor community.

                        +

                        We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

                        -

                        +

                        - Is end-to-end encryption of Delta Chat as safe as Signal? + Does Delta Chat support Post-Quantum-Cryptography?

                        -

                        It depends on what is important to you. -Delta Chat does not support PFS like Signal does -but it provides guaranteed end-to-end encrypted chats -that are safe against compromised servers or corrupted networks. -Signal and most other PFS-supporting messengers do not provide -a practical scheme for protecting chat groups from network attacks -which are arguably more worrisome -than a potential attacker who seizes your phone and private encryption setup -but somehow not your messages, yet has a full record of all -past encrypted messages.

                        +

                        No, not yet.

                        -

                        In any case, Delta Chat’s end-to-end encryption uses a secure subset of OpenPGP -which has been independently security-audited.

                        +

                        Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

                        + +

                        + + + How can I manually check encryption information? + + +

                        + +

                        You may check the end-to-end encryption status manually in the “Encryption” dialog +(user profile on Android/iOS or right-click a user’s chat-list item on desktop). +Delta Chat shows two fingerprints there. +If the same fingerprints appear on your own and your contact’s device, +the connection is safe.

                        @@ -1252,7 +1123,7 @@ from most recent to older:

                      8. 2024 December, an NLNET-commissioned Evaluation of rPGP by Radically Open Security took place. -rPGP serves as the end-to-end encyption OpenPGP engine of Delta Chat. +rPGP serves as the end-to-end encryption OpenPGP engine of Delta Chat. Two advisories were released related to the findings of this audit:

                          @@ -1500,9 +1371,10 @@ copies on the devices of your chat partners. Other than that, it’s completely isolated from the Internet.
                        • The privacy a webxdc app offers is the privacy of your chat - as long as you trust the people you chat with, you can trust the webxdc app as well.
                        • -
                        • This also means: it can be a privacy risk to open webxdc apps in chats where -you don’t trust the members - as you know it from e-mail attachments, where -you only open attachments from senders you trust, and not from spammers.
                        • +
                        • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

                        @@ -1584,22 +1456,10 @@ this way, you will have a new random Jitsi room every time you call someone.

                      9. -
                          -
                        • Me një Listë Transmetimi mund të dërgoni një mesazh te shumë marrës njëherësh; -kur ju përgjigjen, përgjigjen e merrni një fjalosjen tuaj të drejtpërdrejt tek për tek -Marrësit s’mund të shohin njëri-tjetrin.
                        • -
                        • Teknikisht, është një email me shumë marrës si BCC.
                        • -
                        • Veçorinë mund ta aktivizoni te ndarja “veçori eksperimentale”, te rregullimet -e mëtejshme. Mandej mund të krijoni një Listë Transmetimi që nga dialogu -“Fjalosje e Re”.
                        • -
                        • Në rast se përdorni më shumë se një pajisje, Listat e Transmetimit aktualisht nuk -njëkohësohen mes tyre.
                        • -
                        • Mesazhet e dërguar te lista transmetimi s’janë të fshehtëzuar. Fshehtëzimi -do të dëmtonte anonimitetin, ngaqë atëherë krejt marrësit do të dinin se cili tjetër -e mori mesazhin. -(Dërgimi i email-eve individualë për këdo do të ishte edhe më keq, për shkak -kufizimesh sasie email-esh që dërgohen dhe konsum trafiku në rrjet).
                        • -
                        +

                        With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

                        @@ -1656,6 +1516,11 @@ DeltaChat. Zakonisht kjo do të bëhej nga aplikacioni Delta Chat.

                        +

                        Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

                        +
                        1. Change your address in “Settings → Advanced → Password and Account” and @@ -1758,19 +1623,19 @@ Sidoqoftë, disa furnizues shërbimesh kanë nevojë për mundësi speciale, që të funksionojnë si duhet, shihni Provider Overview

                        2. -

                          +

                          - Dua të administroj shërbyesin tim email për Delta Chat. Ç’rekomandoni? + I want to manage my own server for Delta Chat. What do you recommend?

                          diff --git a/src/main/assets/help/uk/help.html b/src/main/assets/help/uk/help.html index 3d38b88f6..3fb3894dc 100644 --- a/src/main/assets/help/uk/help.html +++ b/src/main/assets/help/uk/help.html @@ -36,27 +36,24 @@
                        3. Чому Delta Chat інтегрується з централізованими пропрієтарними push-сервісами Apple/Google?
                        4. -
                        5. Шифрування та безпека +
                        6. Шифрування та безпека @@ -90,7 +87,7 @@
                        7. -

                          Autocrypt використовується для автоматичного встановлення наскрізного шифрування з контактами та груповими чатами. -Autocrypt використовує обмежену і безпечну підмножину стандарту OpenPGP. Зашифровані наскрізним шифруванням повідомлення позначаються замком padlock.

                          +

                          Delta Chat використовує [безпечну підмножину стандарту OpenPGP] (#openpgp-secure) для забезпечення автоматичного наскрізного шифрування за допомогою цих протоколів:

                          -

                          Протоколи Secure-Join використовуються для створення чатів з гарантованим наскрізним шифруванням що захищає від мережевих атак і скомпрометованих серверів. Чати, відмічені зеленою галочкою green checkmark гарантують наскрізне шифрування повідомлень.

                          +
                            +
                          • +

                            Використовуйте Secure-Join щоб обмінюватися інформацією про налаштування шифрування, через сканування QR-коду або “посилання-запрошення”.

                            +
                          • +
                          • +

                            Autocrypt використовується для автоматичного встановлення наскрізного шифрування між контактами і всіма учасниками групового чату.

                            +
                          • +
                          • +

                            [Поширення контакту в чаті] (https://github.com/chatmail/core/blob/main/spec.md#attaching-a-contact-to-a-message) дозволяє отримувачам використовувати наскрізне шифрування з контактом.

                            +
                          • +
                          + +

                          Delta Chat не запитує, не публікує і не взаємодіє з будь-якими серверами ключів OpenPGP.

                          @@ -622,102 +630,67 @@ Autocrypt використовує обмежену і -

                          Всі наскрізні зашифровані повідомлення мають навісний замок:

                          - -

                          padlock in bubble

                          - -

                          Наскрізне шифрування гарантується, якщо поруч із заголовком чату стоїть зелена галочка:

                          - -

                          green checkmark in title

                          +

                          Всі повідомлення в Delta Chat за замовчуванням наскрізно зашифровані. Починаючи з версії 2 Delta Chat (липень 2025 року) на наскрізних зашифрованих повідомленнях більше немає замків або інших подібних маркерів.

                          -

                          +

                          - Як отримати гарантоване наскрізне шифрування та зелені галочки? + Чи можу я отримувати та надсилати пошту без наскрізного шифрування?

                          -

                          Якщо у вас є другий канал зв’язку з вашим партнером по чату, наприклад, відеочат або інший месенджер, ви можете згенерувати посилання-запрошення.

                          +

                          Якщо ви використовуєте стандартні ретранслятори чату, неможливо отримувати або надсилати повідомлення без наскрізного шифрування.

                          -

                          Якщо ви разом особисто, ви можете показати QR-код своєму співрозмовнику.

                          +

                          Якщо ви створите профіль за допомогою класичного поштового сервера, ви зможете надсилати та отримувати повідомлення без наскрізного шифрування. Такі повідомлення без наскрізного шифрування позначаються значком електронної пошти email.

                          + +

                          + + + Як створити чат з новим контактом? + + +

                          + +

                          Ви можете надіслати посилання-запрошення через інший приватний чат, показати QR-код запрошення, коли ви знаходитесь поруч один з одним або під час відеодзвінка, або натиснути на “контакт”, яким ви поділилися в чаті.

                          • Для Запрошення до групи, торкніться назви групи чату, щоб побачити список її учасників, і виберіть “QR-код запрошення”.

                          • -

                            Для прямих запрошень у чат 1:1, торкніться іконки QR-коду на головному екрані програми Delta Chat.

                            +

                            Для прямих запрошень у чат один-на-один, торкніться іконки QR-коду на головному екрані програми Delta Chat.

                          -

                          Дозвольте вашому партнеру по чату відсканувати QR-зображення -у своєму додатку Delta Chat, або натисніть “Копіювати” чи “Поділитися”, щоб створити посилання-запрошення і поділитися ним з вашим співрозмовником.

                          +

                          Попросіть вашого партнера по чату відсканувати QR-зображення у своєму додатку Delta Chat, або натисніть “Копіювати” чи “Поділитися”, щоб створити посилання-запрошення і поділитися ним з вашим партнером по чату.

                          -

                          Тепер зачекайте, поки між обома пристроями відбудеться обмін мережевими повідомленнями Secure-Join.

                          +

                          Тепер зачекайте, поки встановиться наскрізне шифрування.

                          • -

                            Якщо обидва пристрої онлайн, обидві сторони зрештою побачать (груповий або прямий) чат із зеленою галочкою green checkmark поруч із заголовком.

                            +

                            Якщо обидві сторони онлайн, вони незабаром побачать (груповий або прямий) чат і можуть почати безпечно обмінюватися повідомленнями.

                          • -

                            Якщо один з пристроїв не в мережі, зелені галочки з’являться пізніше, коли пристрій знову буде підключено до Інтернету а мережевий протокол Secure-Join буде завершено.

                            +

                            Якщо одна зі сторін перебуває в офлайні або в поганій мережі, можливість спілкуватися в чаті затримується до відновлення з’єднання.

                          -

                          Вітаємо! Тепер ви автоматично використовуватимете гарантоване наскрізне шифрування з цим контактом, і ви обидва можете додавати один одного в групи, позначені зеленою галочкою green checkmark, таким чином автоматично поширюючи гарантоване наскрізне шифрування серед її членів.

                          +

                          Вітаємо! +Тепер ви автоматично використовуватимете наскрізне шифрування з цим контактом. Якщо ви додасте один одного в групи чату, наскрізне шифрування буде встановлено між усіма учасниками.

                          - Що означає зелена галочка і “гарантоване наскрізне шифрування”? + Що означає зелена галочка в профілі контакту?

                          -

                          Назви чатів із зеленими галочками green checkmark означають, що всі повідомлення в чаті будуть наскрізно зашифровані і не можуть бути прочитані або змінені скомпрометованими поштовими серверами або інтернет-провайдерами. -Приєднання до групових чатів із зеленими галочками безпечно поширює інформацію про шифрування (і зелені галочки) всіх учасників таким чином, що гарантує наскрізне шифрування в групі та між її учасниками.

                          - -

                          Профілі контактів із зеленими галочками green checkmark означають, що повідомлення контакту наразі гарантовано зашифровані наскрізним шифруванням. Кожен контакт із зеленою галочкою або зробив пряме QR-сканування з вами або був представлений іншим контактом, позначеним зеленою галочкою. Знайомство відбувається автоматично під час додавання учасників до груп. Той, хто додає контакт до групи, позначеної зеленою галочкою, стає представником для тих учасників, які ще не знали про доданий контакт. У профілі контакту ви можете кілька разів натиснути на текст “Представлений …” поки не потрапите до того, з ким ви безпосередньо зробили QR-сканування.

                          - -

                          Зверніть увагу, що в профілі контакту ви можете бачити і натискати рекомендувачів але в заголовку профілю немає зеленої галочки. Зазвичай це означає, що контакт “надіслав повідомлення з іншого пристрою”.

                          +

                          У профілі контакту може відображатися зелена галочка green checkmark і рядок “Представлений”. Кожен контакт із зеленою галочкою або зробив пряме [QR-сканування] (#howtoe2ee) з вами або був представлений іншим контактом, позначеним зеленою галочкою. Знайомство відбувається автоматично під час додавання учасників до груп. Той, хто додає контакт із зеленою галочкою до групи, в якій є лише учасники із зеленою галочкою стає представником. У профілі контакту ви можете кілька разів натиснути на текст “Представлений …” поки не потрапите до того, з ким ви безпосередньо зробили [QR-сканування] (#howtoe2ee).

                          Для більш детального обговорення “гарантованого наскрізного шифрування” будь ласка, перегляньте Протоколи безпечного приєднання і, зокрема, прочитайте про “Перевірені групи”, технічний термін того, що тут називається чатами з “зеленою галочкою” або “гарантованим наскрізним шифруванням”.

                          -

                          - - - Контакт “надіслав повідомлення з іншого пристрою”, що робити? - - -

                          - -

                          Ваш чат з контактом втратив гарантоване наскрізне шифрування. Зелену галочку було знято для цього чату та контакту, коли ви побачили це попередження. **Якщо ви вважаєте раптове зникнення гарантованого наскрізного шифрування несподіваним для цього контакту, не приймайте попередження! Замість цього зв’яжіться з контактом через другий канал наприклад, відеодзвінок, інший месенджер або телефонний дзвінок, щоб з’ясувати, що сталося.

                          - -

                          Якщо ваш контакт дійсно спричинив втрату гарантованого наскрізного шифрування будь ласка, зверніться до наступних параграфів, щоб дізнатися про типові причини та способи їх усунення. Незважаючи на це, всі інші чати, позначені зеленою галочкою, залишаються гарантовано зашифрованими з кінця в кінець навіть якщо контакт є їхнім учасником.

                          - -

                          Ваш контакт використовує Delta Chat на другому пристрої (телефоні або ноутбуці).

                          - -

                          Якщо у них є інший пристрій із запущеним додатком Delta Chat, вони повинні видалити профіль з нового пристрою і додати його як другий пристрій, як описано тут. Як тільки вони напишуть вам повідомлення, попередження зникне і гарантоване шифрування буде встановлено на обох пристроях вашого контакту.

                          - -

                          Ваш контакт перевстановив Delta Chat, використовуючи свій старий логін

                          - -

                          Якщо у них є файл резервної копії, вони повинні видалити профіль з нового пристрою і, замість цього, імпортувати файл резервної копії для відновлення свого профілю. Як тільки вони напишуть вам повідомлення, попередження зникне і гарантоване шифрування буде відновлено для цього контакту.

                          - -

                          Якщо у них немає резервної копії файлу, найкраще виконати QR-сканування з вашим співрозмовником, щоб відновити гарантоване кінцеве шифрування.

                          - -

                          Ваш контакт надіслав листа через веб-інтерфейс або іншу поштову програму і незабаром повернеться до використання Delta Chat.

                          - -

                          Якщо ви впевнені, що контакт іноді користується веб-поштою, або іншу поштову програму без наскрізного шифрування, ви можете прийняти попередження. Як тільки ваш контакт знову скористається Delta Chat, гарантоване наскрізне шифрування буде автоматично відновлено.

                          - -

                          Ваш контакт повністю припинив користуватися Delta Chat.

                          - -

                          Іноді залишатися на зв’язку важливіше, ніж наскрізне шифрування. “Шифрування на транспортному рівні” (TLS) все ще може ефективно захищати конфіденційність ваших повідомлень між вашим пристроєм і сервером електронної пошти. Але без наскрізного шифрування ви та ваш контакт довіряєте серверу електронної пошти не читати і не маніпулювати вашими повідомленнями, а також не передавати їх третім особам.

                          - -

                          У будь-якому випадку, ви не можете зробити нічого іншого, окрім як прийняти попередження. Будь ласка, також видаліть контакт з будь-якої активної групи, позначеної зеленою галочкою які ви можете знайти в розділі “Загальні чати” в профілі контакту. Це позбавить ваш контакт від отримання “нечитабельних” повідомлень.

                          - -

                          Якщо контакт видалив Delta Chat через помилки або небажану поведінку, будь ласка, розгляньте можливість написати повідомлення на нашому форумі підтримки щоб допомогти нам виявити та вирішити загальні проблеми. Дякуємо!

                          -

                          @@ -738,7 +711,7 @@ Autocrypt використовує обмежену і -

                          Так, Delta Chat використовує безпечну підмножину OpenPGP і відображає індикатор безпеки у вигляді замка в повідомленні лише тоді, коли все повідомлення належним чином зашифровано і підписано. Наприклад, “Відокремлені підписи” не вважаються безпечними.

                          +

                          Так, Delta Chat використовує безпечну підмножину OpenPGP яка вимагає, щоб все повідомлення було належним чином зашифровано і підписано. Наприклад, “відокремлені підписи” не вважаються безпечними.

                          OpenPGP сам по собі не є небезпечним. Більшість публічно обговорюваних проблем безпеки OpenPGP насправді виникають через недостатню зручність використання або погану реалізацію інструментів чи програм (або обох). Особливо важливо розрізняти OpenPGP, стандарт шифрування IETF, і GnuPG (GPG), інструмент командного рядка, що реалізує OpenPGP. @@ -771,19 +744,17 @@ Delta Chat скоріше використовує реалізацію OpenPGP

                          Delta Chat також ніколи не був вразливим до EFAIL-атаки “Пряма ексфільтрація” тому що він розшифровує лише “багатокомпонентні/зашифровані” повідомлення, які містять рівно одну зашифровану і підписану частину, як визначено специфікацією Autocrypt Level 1.

                          -

                          +

                          - Чи буде показано повідомлення відкритим текстом, якщо наскрізне шифрування недоступне? + Чи повідомлення, позначені значком пошти, доступні в Інтернеті?{#tls}

                          -

                          Навіть якщо ваші повідомлення не гарантовано зашифровані наскрізним шифруванням, вони все одно захищені від інтернет-провайдерів, таких як мобільні або кабельні компанії. Однак, ваші провайдери та провайдери електронної пошти одержувача можуть читати, аналізувати або навіть змінювати ваші повідомлення, включаючи будь-які вкладення, якщо вони не зашифровані наскрізним шифруванням.

                          +

                          Якщо ви надсилаєте або отримуєте електронні листи без наскрізного шифрування (використовуючи класичний сервер електронної пошти), вони все одно захищені від мобільних або кабельних компаній, які не можуть читати чи змінювати ваші повідомлення. Однак як ваш, так і поштовий провайдер одержувача можуть читати, аналізувати або змінювати ваші листи, включаючи будь-які вкладення.

                          За замовчуванням Delta Chat використовує суворе TLS-шифрування яке захищає з’єднання між вашим пристроєм і провайдером електронної пошти. Вся робота з TLS-шифруванням Delta Chat пройшла незалежний аудит безпеки. Крім того, з’єднання між вашим провайдером та провайдером електронної пошти одержувача зазвичай також шифрується при передачі даних. Якщо задіяні поштові сервери підтримують MTA-STS то між провайдерами електронної пошти буде застосовуватися транспортне шифрування в цьому випадку повідомлення Delta Chat ніколи не будуть доступні в Інтернеті у вигляді відкритого тексту навіть якщо повідомлення не було наскрізь зашифровано.

                          - -

                          Зверніть увагу, що підтримка гарантованого наскрізного шифрування, на додаток до шифрування TLS, забезпечує повну безпеку між вашим пристроєм і пристроєм одержувача. Навіть ваш провайдер електронної пошти або інтернет-провайдер не зможуть прочитати або змінити ваші повідомлення.

                          @@ -793,20 +764,23 @@ Delta Chat скоріше використовує реалізацію OpenPGP

                          -

                          Delta Chat захищає більшість метаданих повідомлень, поміщаючи наступну інформацію в наскрізно зашифровану частину повідомлень:

                          +

                          На відміну від більшості інших месенджерів, додатки Delta Chat не зберігають жодних метаданих про контакти чи групи на серверах, навіть у зашифрованому вигляді. Натомість усі метадані груп наскрізно зашифровані та зберігаються виключно на пристроях користувачів.

                          + +

                          Тому поштові сервери можуть бачити лише

                            -
                          • Тема повідомлення
                          • -
                          • Аватар та назва групи
                          • -
                          • Запити MDN (підтвердження прочитання) (Chat-Disposition-Notification-To)
                          • -
                          • Таймер зникнення повідомлень (Ephemeral-Timer)
                          • -
                          • Chat-Group-Member-Removed, Chat-Group-Member-Added, Chat-Group-Member-Added, Chat-Group-Member-Removed-Member-Added.
                          • -
                          • Заголовок Secure-Join, що містить команди безпечного приєднання
                          • -
                          • Сповіщення про увімкнення потокового передавання місцезнаходження
                          • -
                          • URL-адреса кімнати WebRTC
                          • +
                          • +

                            дату повідомлення,

                            +
                          • +
                          • +

                            адреси відправника та одержувача

                            +
                          • +
                          • +

                            і розмір повідомлення.

                            +
                          -

                          Поштові сервери не мають доступу до цих захищених метаданих але вони бачать дату і розмір повідомлення, і, що важливіше, адреси відправника та отримувача. Поштовим серверам потрібні адреси одержувачів, щоб маршрутизувати і доставляти повідомлення на пристрої одержувача.

                          +

                          Усі інші метадані повідомлень, контактів і груп містяться в наскрізно зашифрованій частині повідомлень.

                          @@ -816,62 +790,21 @@ Delta Chat скоріше використовує реалізацію OpenPGP

                          -

                          Як для захисту від поштових серверів, що збирають метадані а також для захисту від загрози вилучення пристрою ми рекомендуємо використовувати chatmail-сервер для створення псевдонімних тимчасових профілів за допомогою сканування QR-коду. Зверніть увагу, що додатки Delta Chat на всіх платформах підтримують кілька профілів тому ви можете легко використовувати ситуативні профілі поруч з вашим “основним” профілем знаючи, що всі їхні дані, разом з усіма метаданими, будуть видалені. Більше того, якщо пристрій вилучено, то контакти, які використовують тимчасові профілі не можна буде легко ідентифікувати, на відміну від месенджерів, які розкривають номери телефонів у групах чату, які, в свою чергу, часто пов’язані з юридичними особами.

                          +

                          Для захисту як від серверів електронної пошти, що збирають метадані, так і від загрози вилучення пристрою, ми рекомендуємо використовувати чатмейл-релей для створення чат-профілів із випадковими адресами електронної пошти для передавання повідомлень. Зверніть увагу, що додатки Delta Chat на всіх платформах підтримують кілька профілів, тому ви можете легко користуватися профілями, створеними для конкретних ситуацій, поруч із вашим «основним» профілем, з упевненістю, що всі їхні дані, включно з усіма метаданими, буде видалено. Більше того, у разі вилучення пристрою ідентифікувати чат-контакти, які використовують короткочасні профілі, буде вкрай складно.

                          -

                          +

                          - Як перевірити інформацію про шифрування? + Чи підтримує Delta Chat функцію “Запечатаний відправник”?

                          -

                          Ви можете перевірити стан наскрізного шифрування вручну в діалоговому вікні “Шифрування” (профіль користувача на Android/iOS або клацніть правою кнопкою миші на елементі списку чату користувача на робочому столі). Delta Chat показує там два відбитки. Якщо на вашому пристрої та пристрої вашого співрозмовника з’являються однакові відбитки, з’єднання безпечне.

                          - -

                          - - - Як перевірити стан шифрування повідомлень? - - -

                          +

                          Ні, поки ще ні.

                          -

                          Маленький замок в бульбашці повідомлення позначає, що повідомлення було належним чином наскрізно зашифроване від відправника. Якщо немає замка, повідомлення не було належним чином наскрізно зашифровано, найімовірніше, тому що відправник використовує додаток або інтерфейс веб-пошти без підтримки кінцевого шифрування.

                          - -

                          - - - Чому я бачу незашифровані повідомлення? - - -

                          +

                          Месенджер Signal запровадив [“Запечатаного відправника” у 2018 році] (https://signal.org/blog/sealed-sender/) щоб їхня серверна інфраструктура не знала, хто надсилає повідомлення певній групі одержувачів. Це особливо важливо, оскільки сервер Signal знає номер мобільного телефону кожного акаунта, який зазвичай асоціюється з паспортними даними.

                          -

                          Якщо контакт використовує поштову програму, яка не підтримує Autocrypt всі повідомлення за участю цього контакту (в групі або чаті 1:1) не будуть наскрізно зашифровані, а отже, не показуватимуть “висячого замка” з повідомленнями. Зверніть увагу, що навіть якщо ваші контакти використовують Delta Chat у своєму акаунті, вони також можуть використовувати програму електронної пошти без функції шифрування, що може спричинити періодичні незашифровані повідомлення. Відповідати незашифрованими на незашифровані повідомлення вимагає Autocrypt щоб запобігти отриманню нечитабельних повідомлень на стороні ваших контактів та їхніх поштових програм, які не підтримують Autocrypt.

                          - -

                          - - - Як я можу отримати наскрізно зашифрований чат з контактом Delta Chat, який іноді користується веб-поштою або іншим додатком електронної пошти, що не підтримує Autocrypt? - - -

                          - -

                          Якщо вам потрібен безпечний наскрізно зашифрований чат з контактом який використовує свій акаунт як у Delta Chat, так і в інших додатках (наприклад, веб-пошті), що не підтримують автошифрування, найкраще налаштувати гарантоване наскрізне шифрування з ними, а потім створити груповий чат з гарантованим наскрізним шифруванням, учасниками якого будете ви двоє. У цьому груповому чаті всі повідомлення будуть наскрізно зашифровані навіть якщо в прямому чаті між вами буде “… надіслано повідомлення з іншого пристрою”.

                          - -

                          - - - Як забезпечити наскрізне шифрування та видалення повідомлень? - - -

                          - -

                          Найкращий спосіб забезпечити наскрізне шифрування кожного повідомлення, а метадані видалялися якнайшвидше, це використання чатів з гарантованим наскрізним шифруванням -та увімкнення зникаючих повідомлень.

                          - -

                          Гарантований наскрізно шифрований чат захищає від MITM-атак, а увімкнення функції зникнення повідомлень видаляє повідомлення на сервері через певний час, налаштований користувачем.

                          - -

                          Якщо вам не потрібне більш довготривале зберігання копій ваших повідомлень на сервері, ви також можете увімкнути “автоматично видаляти повідомлення з сервера”.

                          +

                          Навіть якщо чат-мейл релей не запитує ніяких приватних даних (в тому числі номерів телефонів), все одно може мати сенс захистити реляційні метадані між адресами. Ми не передбачаємо великих проблем у використанні випадкових одноразових адрес електронної пошти для запечатаних відправлень але реалізація такої можливості ще не є пріоритетною.

                          @@ -881,23 +814,33 @@ Delta Chat скоріше використовує реалізацію OpenPGP

                          -

                          Ні, Delta Chat не підтримує ідеальну пряму секретність (PFS). Це означає, що якщо ваш приватний ключ дешифрування Delta Chat витік, і хтось зібрав ваші попередні транзитні повідомлення, він зможе розшифрувати і прочитати їх за допомогою витоку ключа розшифрування.

                          +

                          Ні, поки ще ні.

                          -

                          Зауважте, однак, що якщо хтось отримає ваші ключі розшифрування, вони, як правило, також зможуть отримати ваші повідомлення, незалежно від того, чи працює Perfect Forward Secrecy чи ні. Типовою реальною ситуацією для витоку ключів дешифрування є вилучення пристрою яку ми обговорюємо в нашій відповіді про метадані та вилучення пристрою.

                          +

                          Delta Chat наразі не підтримує ідеальну пряму секретність (Perfect Forward Secrecy, PFS). Це означає, що якщо ваш приватний ключ для розшифрування буде скомпрометовано, а хтось заздалегідь зібрав ваші повідомлення під час передачі, він зможе розшифрувати та прочитати їх, використовуючи зламаний ключ. Зверніть увагу, що пряма секретність підвищує рівень безпеки лише в тому разі, якщо ви видаляєте повідомлення. Інакше, якщо хтось отримує доступ до ваших ключів розшифрування, він зазвичай також має доступ до всіх ваших невидалених повідомлень і навіть не потребує розшифровувати заздалегідь перехоплені дані.

                          -

                          Можливо, що Delta Chat розвивається для підтримки Perfect Forward Secrecy, тому що OpenPGP - це лише контейнер для зашифрованих повідомлень, але керування ключами шифрування (і, відповідно, ротація ключів або “храповик” ключів) може бути організоване у гнучкий спосіб. Дивіться Прототип PFS від Seqouia щодо існуючих експериментів у спільноті реалізаторів OpenPGP.

                          +

                          Ми розробили підхід Forward Secrecy, який витримав початкову експертизу від деяких криптографів та експертів з реалізації але чекає на більш офіційний звіт щоб переконатися, що він надійно працює в об’єднаних системах обміну повідомленнями та при використанні декількох пристроїв, перш ніж його можна буде реалізувати в ядрі чату, що зробить його доступним у всіх клієнтах чату.

                          -

                          +

                          - Чи є наскрізне шифрування Delta Chat таким же безпечним, як Signal? + Чи підтримує Delta Chat пост-квантову криптографію?

                          -

                          Це залежить від того, що для вас важливо. Delta Chat не підтримує PFS, як Signal але він забезпечує гарантовано наскрізні зашифровані чати які захищені від скомпрометованих серверів або пошкоджених мереж. Signal та більшість інших месенджерів, що підтримують PFS, не надають практичної схеми захисту чат-груп від мережевих атак які, можливо, викликають більше занепокоєння ніж потенційний зловмисник, який заволодіє вашим телефоном і приватними налаштуваннями шифрування, але чомусь не ваші повідомлення, але має повний запис усіх минулих зашифрованих повідомлень.

                          +

                          Ні, поки ще ні.

                          -

                          У будь-якому випадку, наскрізне шифрування Delta Chat використовує безпечну підмножину OpenPGP який пройшов незалежний аудит безпеки.

                          +

                          Delta Chat використовує бібліотеку Rust OpenPGP rPGP яка підтримує останню версію IETF Post-Quantum-Cryptography OpenPGP draft. Ми плануємо додати підтримку PQC у chatmail core після того, як проект буде завершено у IETF у співпраці з іншими розробниками OpenPGP.

                          + +

                          + + + Як я можу вручну перевірити інформацію про шифрування? + + +

                          + +

                          Ви можете перевірити стан наскрізного шифрування вручну в діалоговому вікні “Шифрування” (профіль користувача на Android/iOS або клацніть правою кнопкою миші на елементі списку чату користувача на робочому столі). Delta Chat показує там два відбитки. Якщо на вашому пристрої та пристрої вашого співрозмовника з’являються однакові відбитки, з’єднання безпечне.

                          @@ -1098,9 +1041,12 @@ Delta Chat скоріше використовує реалізацію OpenPGP
                          • Додатки webxdc не можуть надсилати дані в Інтернет або завантажувати щось.
                          • -
                          • Програма webxdc може обмінюватися даними лише в межах чату Delta Chat з її копіями на пристроях ваших партнерів по чату. В іншому, вони повністю ізольовані від Інтернету.
                          • +
                          • Програма webxdc може обмінюватися даними лише в межах чату Delta Chat з її копіями на пристроях ваших партнерів по чату. В іншому, вона повністю ізольована від Інтернету.
                          • Конфіденційність, яку пропонує додаток webxdc, є конфіденційністю вашого чату - доки ви довіряєте людям, з якими ви спілкуєтеся, ви можете довіряти і додатку webxdc.
                          • -
                          • Це також означає, що відкриття додатків webxdc в чатах, де ви не довіряєте учасникам, як ви знаєте з вкладень в електронній пошті, де ви відкриваєте вкладення тільки від відправників, яким довіряєте, а не від спамерів.
                          • +
                          • Це також означає, що відкриття додатків у чатах з користувачами, яким ви не довіряєте, може становити ризик для конфіденційності. +Так само, як і з вкладеннями електронної пошти, відеодзвінками або звичайними посиланнями: +відкривайте їх лише від відправників, яким ви довіряєте, а не від спамерів. +Спамери можуть дізнатися будь-які дані, які ви їм надсилаєте, а також вашу IP-адресу.

                          @@ -1168,13 +1114,9 @@ Delta Chat скоріше використовує реалізацію OpenPGP

                          -
                            -
                          • За допомогою списку розсилки ви можете надіслати повідомлення багатьом одержувачам одночасно; коли вони відповідають вам, ви отримуєте відповідь у своєму прямому чаті 1:1 з ними. Одержувачі не бачать один одного.
                          • -
                          • Технічно це електронний лист із багатьма одержувачами в BCC.
                          • -
                          • Ви можете ввімкнути функцію в розділі «експериментальні функції» в розширених налаштуваннях. Потім ви можете створити список трансляцій у діалоговому вікні «Новий чат».
                          • -
                          • Якщо ви використовуєте більше ніж один пристрій, списки трансляцій наразі не синхронізуються між ними.
                          • -
                          • Повідомлення, надіслані до списків розсилки, не шифруються. Шифрування порушило б анонімність, оскільки тоді всі одержувачі знали б, хто ще його отримав (надсилання окремих листів усім було б гіршим через обмеження швидкості та споживання мережі).
                          • -
                          +

                          За допомогою списку розсилки ви можете надіслати повідомлення одразу багатьом одержувачам; +одержувачі не можуть відповідати у цьому списку. +Списки розсилки все ще дуже експериментальні і, ймовірно, будуть замінені чимось іншим, слідкуйте за новинами :)

                          @@ -1220,6 +1162,11 @@ Delta Chat скоріше використовує реалізацію OpenPGP

                          +

                          Примітка: +Зміна адреси електронної пошти тимчасово відключена +через постійні зміни в ядрі DeltaChat. +Ця функція буде знову доступна через кілька місяців.

                          +
                          1. Змініть свою адресу в розділі “Налаштування → Додатково → Пароль та обліковий запис” та введіть пароль вашого нового поштового акаунта (і, за необхідності, налаштування сервера). Ви отримаєте інформаційне повідомлення про те, що ви переїжджаєте на нову адресу. Додаткове повідомлення також з’явиться у вашому чаті “Повідомлення пристрою”.

                            @@ -1309,17 +1256,17 @@ Delta Chat скоріше використовує реалізацію OpenPGP Проте для коректної роботи деяких провайдерів потрібні специфічні налаштування. Дивіться наш огляд провайдерів
                          2. -

                            +

                            - Я хочу керувати власним сервером електронної пошти для Delta Chat. Що ви порадите? + Я хочу керувати власним сервером для Delta Chat. Що ви порекомендуєте?

                            diff --git a/src/main/assets/help/zh_CN/help.html b/src/main/assets/help/zh_CN/help.html index e0dbbe72e..0c85b7562 100644 --- a/src/main/assets/help/zh_CN/help.html +++ b/src/main/assets/help/zh_CN/help.html @@ -36,27 +36,24 @@
                          3. 为什么 Delta Chat 与集中式专有的 Apple/Google 推送服务集成?
                          4. -
                          5. 加密和安全 +
                          6. 加密和安全 @@ -90,7 +87,7 @@
                          7. -

                            Autocrypt 用于自动 -与联系人和群组聊天建立端到端加密。 -Autocrypt 使用 OpenPGP 标准的有限且安全子集。 -端到端加密消息标有挂锁 -padlock

                            +

                            Delta Chat uses a secure subset of the OpenPGP standard +to provide automatic end-to-end encryption using these protocols:

                            -

                            安全加入协议 -用于建立具有保证的端到端加密的聊天, -从而防止网络攻击和受损服务器。 -标有绿色复选标记的聊天 -green checkmark -保证端到端加密消息。

                            +
                              +
                            • +

                              Secure-Join +to exchange encryption setup information through QR-code scanning or “invite links”.

                              +
                            • +
                            • +

                              Autocrypt is used for automatically +establishing end-to-end encryption between contacts and all members of a group chat.

                              +
                            • +
                            • +

                              Sharing a contact to a +chat +enables receivers to use end-to-end encryption with the contact.

                              +
                            • +
                            + +

                            Delta Chat does not query, publish or interact with any OpenPGP key servers.

                            @@ -723,28 +728,37 @@ Autocrypt 使用 OpenPGP 标准的有限且安全子

                            -

                            所有端到端加密的消息都带有挂锁:

                            - -

                            padlock in bubble

                            - -

                            如果聊天标题旁边有绿色复选标记,则保证端到端加密:

                            - -

                            green checkmark in title

                            +

                            All messages in Delta Chat are end-to-end encrypted by default. +Since the Delta Chat Version 2 release series (July 2025) +there are no lock or similar markers on end-to-end encrypted messages, anymore.

                            -

                            +

                            - 如何获得保证的端到端加密和绿色复选标记? + Can i still receive or send mails without end-to-end encryption?

                            -

                            如果你与你的聊天伙伴有第二个通信渠道, -例如视频聊天或不同的即时通讯应用, -你可以生成邀请链接。

                            +

                            If you use default chatmail relays, +it is impossible to receive or send messages without end-to-end encryption.

                            -

                            如果你们面对面在一起, -你可以向你的聊天伙伴展示二维码。

                            +

                            If you instead create a profile using a classic e-mail server, +you can send and receive messages without end-to-end encryption. +Such messages lacking end-to-end encryption are marked with an e-mail icon +email.

                            + +

                            + + + How can I establish a chat with a new contact? + + +

                            + +

                            You can send an invite link through another private chat, +show an invitation QR code when next to each other or in a video call, +or click on a “contact” that was shared in a chat.

                            -

                            让你的聊天伙伴用他们的 Delta Chat 应用扫描二维码图像, -或点击“复制”或“分享”以创建邀请链接 -并与你的聊天伙伴分享。

                            +

                            Ask your chat partner to scan the QR image +with their Delta Chat app, +or click “Copy” or “Share” to create an invite link +and share it with your chat partner.

                            -

                            现在等待 安全加入网络消息在两个设备之间交换

                            +

                            Now wait while end-to-end encryption is getting established.

                            • -

                              如果两个设备都处于在线状态, -双方最终都会看到一个(群组或直接)聊天,标题旁边带有绿色复选标记 -green checkmark

                              +

                              If both sides are online, they will soon see a (group or direct) chat +and can start messaging securely.

                            • -

                              如果其中一个设备处于离线状态,则只有当设备再次连接互联网且安全加入网络协议完成时,绿色复选标记才会出现。

                              +

                              If one side is offline or in bad network, +the ability to chat is delayed until connectivity is restored.

                            -

                            恭喜! -从现在开始您将会自动使用安全的端到端加密与此联系人联系,并且双方都可以将对方添加到绿色复选标记的群组 -green checkmark,从而自动在其成员之间传播有保障的端到端加密。

                            +

                            Congratulations! +You now will automatically use end-to-end encryption +with this contact. +If you add each other to chat groups, +end-to-end encryption will be established among all members.

                            - 绿色复选标记和“保证的端到端加密”是什么意思? + What does the green checkmark in a contact profile mean?

                            -

                            带有绿色复选标记的聊天标题 -绿色复选标记 -表示聊天中的所有消息都将进行端到端加密, -并且不会被受损的电子邮件服务器或互联网提供商读取或更改。 -加入带有绿色复选标记的群组聊天 -可以安全地传播每个人的加密信息(和绿色复选标记), -从而保证群组和成员之间的端到端加密。

                            - -

                            带有绿色复选标记的联系人配置文件 -绿色复选标记 -表示当前保证与联系人的消息传递是端到端加密的。 -每个带有绿色复选标记的联系人要么直接与你进行了 二维码扫描, -要么由另一个带有绿色复选标记的联系人介绍。 -当向群组添加成员时,介绍会自动发生。 -任何将联系人添加到带有绿色复选标记的群组的人都成为 -那些还不认识添加的联系人的成员的介绍人。 -在联系人配置文件中,你可以反复点击“由…介绍”文本 -,直到你到达直接与你进行 二维码扫描 的那个人。

                            - -

                            请注意,在联系人配置文件中,你可能会看到并点击介绍人,
                            但在配置文件标题中没有绿色复选标记。
                            这通常意味着联系人“从另一台设备发送了消息”。

                            +

                            A contact profile might show a green checkmark +green checkmark +and an “Introduced by” line. +Every green-checkmarked contact either did a direct QR-scan with you +or was introduced by a another green-checkmarked contact. +Introductions happen automatically when adding members to groups. +Whoever adds a green-checkmarked contact to a group with only green-checkmarked members +becomes an introducer. +In a contact profile you can tap on the “Introduced by …” text repeatedly +until you get to the one with whom you directly did a QR-scan.

                            有关“保证的端到端加密”的更深入讨论, 请参阅 安全加入协议, 并专门阅读有关“已验证群组”的内容,这是 此处所谓的“带有绿色复选标记”或“保证的端到端加密”聊天的技术术语。

                            -

                            - - - 联系人“从另一台设备发送了消息”,我该怎么办? - - -

                            - -

                            你与联系人的聊天失去了保证的端到端加密。 -当你看到此警告时,此聊天的绿色复选标记和联系人已被删除。 -如果你发现保证的端到端加密突然下降 -对于此联系人来说很意外,请不要接受警告! -相反,请通过第二个渠道( -如视频通话、其他即时通讯应用或电话)与你的联系人核实 -,以找出发生了什么。

                            - -

                            如果你的联系人实际上导致了保证的端到端加密下降, -请参阅以下段落,了解常见原因及其缓解措施。 -无论如何,所有其他带有绿色复选标记的聊天都保持保证的端到端加密, -即使该联系人是那里的成员。

                            - -

                            你的联系人在第二台设备(手机或笔记本电脑)上使用 Delta Chat

                            - -

                            如果他们有另一台运行 Delta Chat 应用的设备, -他们应该从新设备中删除配置文件, -并按照此处所述将其添加为第二台设备。 -在他们之后给你发消息后,警告将消失, -并且保证的加密将在你的联系人的两台设备之间建立。

                            - -

                            你的联系人使用他们的旧帐户登录名重新安装了 Delta Chat

                            - -

                            如果他们有备份文件, -他们应该从新设备中删除配置文件, -而是导入备份文件以重新创建他们的配置文件。 -在他们之后给你发消息后,警告将消失, -并且保证的加密将为此联系人重新建立。

                            - -

                            如果他们没有备份文件,最好与你的聊天伙伴执行 二维码扫描, -以重新建立保证的端到端加密。

                            - -

                            你的联系人通过 Webmail 界面或其他电子邮件应用发送了邮件, -并且将很快恢复使用 Delta Chat。

                            - -

                            如果你确定联系人有时使用 Webmail, -或其他缺少端到端加密的邮件应用, -那么你可以接受警告。 -一旦你的联系人再次使用 Delta Chat, -保证的端到端加密将自动重新建立。

                            - -

                            你的联系人完全停止使用 Delta Chat

                            - -

                            有时保持联系比端到端加密更重要。 -“传输层加密” (TLS) 可能仍然有意义地保护 -你的设备和电子邮件服务器之间消息的机密性。 -但是,如果没有端到端加密,你和你的联系人将信任你的电子邮件服务器 -不会读取或操纵你的消息,也不会将其交给第三方。

                            - -

                            在任何情况下,你都无法做太多其他事情,只能接受警告。 -另请从任何活动的带有绿色复选标记的群组中删除该联系人, -你可以在联系人配置文件中的“共享聊天”中找到这些群组。 -这可以避免你的联系人收到“无法读取”的消息。

                            - -

                            如果联系人因为错误或不良行为而删除了 Delta Chat, -请考虑发布到我们的 支持论坛, -以帮助我们识别和解决常见问题。 谢谢!

                            -

                            @@ -901,10 +843,9 @@ Autocrypt 使用 OpenPGP 标准的有限且安全子

                            -

                            是的,Delta Chat 使用 OpenPGP 的安全子集, -并且仅在消息上显示挂锁安全指示器 -,前提是整个消息都已正确加密和签名。 -例如,“分离签名”不被视为安全。

                            +

                            Yes, Delta Chat uses a secure subset of OpenPGP +requiring the whole message to be properly encrypted and signed. +For example, “Detached signatures” are not treated as secure.

                            OpenPGP 加密标准本身不存在安全隐患。 目前公众讨论中涉及的 OpenPGP 安全问题, @@ -923,7 +864,7 @@ Delta Chat 实际使用的是 Rust 语言编写的 OpenPGP 实现库 - 你们是否考虑过使用 OpenPGP 的替代方案进行端到端加密? + Did you consider using alternatives to OpenPGP for end-to-end-encryption? @@ -965,17 +906,15 @@ Delta Chat 实际使用的是 Rust 语言编写的 OpenPGP 实现库 - 如果端到端加密不可用,消息是否会以明文形式暴露? + Are messages marked with the mail icon exposed on the Internet? -

                            即使你的消息未保证端到端加密, -它们仍然受到互联网提供商(如手机或有线电视公司)的保护。 -但是,你的和你的接收者的电子邮件提供商 -可能会读取、分析甚至修改你的消息, -包括任何附件, -如果它们未进行端到端加密。

                            +

                            If you are sending or receiving e-mail messages without end-to-end encryption (using a classic e-mail server), +they are still protected from cell or cable companies who can not read or modify your e-mail messages. +But both your and your recipient’s e-mail providers +may read, analyze or modify your messages, including any attachments.

                            Delta Chat 默认使用严格的 TLS 加密, @@ -986,10 +925,6 @@ Delta Chat 的所有 TLS 处理都经过了独立的 如果所涉及的电子邮件服务器支持 MTA-STS, 则将在电子邮件提供商之间强制执行传输加密, 在这种情况下,即使消息未进行端到端加密,Delta Chat 通信也永远不会以明文形式暴露给互联网。

                            - -

                            请注意,在 TLS 加密之上保持保证的端到端加密 -可在你的和接收者的设备之间提供普遍的安全性。 -即使你的电子邮件或互联网提供商也无法读取或修改你的消息。

                            @@ -999,24 +934,25 @@ Delta Chat 的所有 TLS 处理都经过了独立的

                            -

                            Delta Chat 通过将以下信息放入消息的端到端加密部分来保护大多数消息元数据:

                            +

                            Unlike most other messengers, +Delta Chat apps do not store any metadata about contacts or groups on servers, also not in encrypted form. +Instead, all group metadata is end-to-end encrypted and stored on end-user devices, only.

                            + +

                            E-mail Servers can therefore only see

                              -
                            • 主题行
                            • -
                            • 群组头像和名称
                            • -
                            • MDN(已读回执)请求 (Chat-Disposition-Notification-To)
                            • -
                            • 阅后即焚消息计时器 (Ephemeral-Timer)
                            • -
                            • Chat-Group-Member-Removed, Chat-Group-Member-Added
                            • -
                            • 包含安全加入命令的 Secure-Join 标头
                            • -
                            • 关于启用位置流式传输的通知
                            • -
                            • WebRTC 房间 URL
                            • +
                            • +

                              the message date,

                              +
                            • +
                            • +

                              sender and receiver addresses

                              +
                            • +
                            • +

                              and message size.

                              +
                            -

                            电子邮件服务器无法访问此受保护的元数据, -但它们可以看到消息日期以及消息大小, -更重要的是,可以看到发件人和收件人地址。 -电子邮件服务器需要收件人地址来路由和 -将消息传递到接收者的设备。

                            +

                            All other message, contact and group metadata resides in the end-to-end encrypted part of messages.

                            @@ -1026,96 +962,36 @@ Delta Chat 的所有 TLS 处理都经过了独立的

                            -

                            为了防止收集元数据的电子邮件服务器 -以及设备查封的威胁, -我们建议使用 Chatmail 服务器 -通过二维码扫描创建匿名临时配置文件。 -请注意,所有平台上的 Delta Chat 应用都支持多配置文件, -因此你可以轻松地在你“主要”配置文件旁边使用特定于情况的配置文件, -并且知道它们的所有数据以及所有元数据都将被删除。 -此外,如果设备被查封,则与使用临时配置文件的联系人 -相比,无法轻易识别,因为即时通讯应用会在聊天群组中显示 -电话号码,而电话号码通常与合法身份相关联。

                            +

                            Both for protecting against metadata-collecting e-mail servers +as well as against the threat of device seizure +we recommend to use a chatmail relay +to create chat profiles using random e-mail addresses for transport. +Note that Delta Chat apps on all platforms support multiple profiles +so you can easily use situation-specific profiles next to your “main” profile +with the knowledge that all their data, along with all metadata, will be deleted. +Moreover, if a device is seized then chat contacts using short-lived profiles +can not be identified easily.

                            -

                            +

                            - 如何检查加密信息? + Does Delta Chat support “Sealed Sender”?

                            -

                            你可以在“加密”对话框中手动检查端到端加密状态 -(Android/iOS 上的用户配置文件或桌面上的用户聊天列表项上右键单击)。 -Delta Chat 在此处显示两个指纹。 -如果相同的指纹出现在你自己的设备和你联系人的设备上, -则连接是安全的。

                            - -

                            - - - 如何检查消息的加密状态? - - -

                            +

                            No, not yet.

                            -

                            消息气泡中的小挂锁表示 -消息已从给定的发件人正确进行端到端加密。 -如果没有挂锁,则消息未正确进行端到端加密, -最可能是因为发件人使用的应用或 Webmail 界面 -不支持端到端加密。

                            - -

                            - - - 为什么我会看到未加密的消息? - - -

                            +

                            The Signal messenger introduced “Sealed Sender” in 2018 +to keep their server infrastructure ignorant of who is sending a message to a set of recipients. +It is particularly important because the Signal server knows the mobile number of each account, +which is usually associated with a passport identity.

                            -

                            如果联系人使用非 Autocrypt 电子邮件应用, -则涉及此联系人(在群组或 1:1 聊天中)的所有消息 -将不会进行端到端加密,因此消息中不会显示“挂锁”。 -请注意,即使你的联系人在其帐户上使用 Delta Chat, -他们也可能在该帐户上使用非 Autocrypt 电子邮件应用, -这可能会导致间歇性未加密的消息。 -回复未加密的消息是 Autocrypt 强制执行的 -,以防止你的联系人及其非 Autocrypt 电子邮件应用端出现无法读取的消息。

                            - -

                            - - - 如何与有时使用 Webmail 或其他非 Autocrypt 电子邮件应用的 Delta Chat 联系人获得端到端加密的聊天? - - -

                            - -

                            如果你需要与 -同时使用 Delta Chat 和非 Autocrypt 应用(例如 Webmail)的电子邮件帐户的联系人进行安全端到端加密的聊天, -最好与他们设置 保证的端到端加密, -然后创建一个由你二人作为成员的保证的端到端加密的群组聊天。 -在此群组聊天中,所有消息都将进行端到端加密, -即使你二人之间的直接聊天有 -“…从另一台设备发送了消息” 警告

                            - -

                            - - - 如何确保消息端到端加密和删除? - - -

                            - -

                            确保每条消息都进行端到端加密, -并尽快删除元数据的最佳方法是 -使用具有保证的端到端加密的聊天 -并开启 阅后即焚消息

                            - -

                            保证的端到端加密聊天可防止 MITM 攻击, -而开启阅后即焚消息会在用户配置的时间后删除服务器上的消息。

                            - -

                            如果你不需要在服务器上保留消息的长期副本, -你还可以开启 “自动从服务器删除消息”

                            +

                            Even if chatmail relays +do not ask for any private data (including no phone numbers), +it might still be worthwhile to protect relational metadata between addresses. +We don’t foresee bigger problems in using random throw-away e-mail addresses for sealed sending +but an implementation has not been agreed as a priority yet.

                            @@ -1125,45 +1001,52 @@ Delta Chat 在此处显示两个指纹。

                            -

                            不,Delta Chat 不支持完美前向保密 (PFS)。 -这意味着,如果您的 Delta Chat 私人解密密钥泄露, -并且有人收集了您之前传输的消息, -他们将能够使用泄露的解密密钥解密并阅读这些消息。

                            +

                            No, not yet.

                            -

                            但请注意,如果有人获得您的解密密钥, -他们通常也能够获得您的消息, -无论是否实施了完全前向保密。 -泄露解密密钥的典型现实情况是设备扣押, -我们在关于元数据和设备扣押的回答中讨论了这一点。

                            +

                            Delta Chat today doesn’t support Perfect Forward Secrecy (PFS). +This means that if your private decryption key is leaked, +and someone has collected your prior in-transit messages, +they will be able to decrypt and read them using the leaked decryption key. +Note that Forward Secrecy only increases security if you delete messages. +Otherwise, someone obtaining your decryption keys +is typically also able to get all your non-deleted messages +and doesn’t even need to decrypt any previously collected messages.

                            -

                            Delta Chat 可能会发展为支持完美前向保密, -因为 OpenPGP 只是加密消息的容器, -但密钥管理(以及密钥轮换或密钥“棘轮”) -可以以灵活的方式组织。 -请参阅 Seqouia 的 PFS 原型, -了解 OpenPGP 实现者社区中现有的实验。

                            +

                            We designed a Forward Secrecy approach that withstood +initial examination from some cryptographers and implementation experts +but is pending a more formal write up +to ascertain it reliably works in federated messaging and with multi-device usage, +before it could be implemented in chatmail core, +which would make it available in all chatmail clients.

                            -

                            +

                            - Delta Chat 的端到端加密是否与 Signal 一样安全? + Does Delta Chat support Post-Quantum-Cryptography?

                            -

                            这取决于对你而言重要的是什么。 -Delta Chat 不支持像 Signal 那样的 PFS, -但它提供了 保证的端到端加密聊天, -可以安全地抵御受损的服务器或损坏的网络。 -Signal 和大多数其他支持 PFS 的即时通讯应用 -没有提供实用的方案来保护聊天群组免受网络攻击, -而网络攻击可以说比 -潜在的攻击者查封你的手机和私有加密设置 -但不知何故没有你的消息,却完整记录了所有 -过去的加密消息更令人担忧。

                            +

                            No, not yet.

                            -

                            在任何情况下,Delta Chat 的端到端加密都使用 OpenPGP 的安全子集, -该子集已 通过独立的安全审计

                            +

                            Delta Chat uses the Rust OpenPGP library rPGP +which supports the latest IETF Post-Quantum-Cryptography OpenPGP draft. +We aim to add PQC support in chatmail core after the draft is finalized at the IETF +in collaboration with other OpenPGP implementers.

                            + +

                            + + + How can I manually check encryption information? + + +

                            + +

                            你可以在“加密”对话框中手动检查端到端加密状态 +(Android/iOS 上的用户配置文件或桌面上的用户聊天列表项上右键单击)。 +Delta Chat 在此处显示两个指纹。 +如果相同的指纹出现在你自己的设备和你联系人的设备上, +则连接是安全的。

                            @@ -1426,12 +1309,16 @@ Chat 的 PGP

                              -
                            • Webxdc 应用无法向互联网发送数据或下载任何内容。
                            • -
                            • Webxdc 应用只能在 Delta Chat 聊天中与其聊天伙伴设备上的副本交换数据。 除此之外,它与互联网完全隔离。
                            • -
                            • Webxdc 应用提供的隐私性就是你的聊天的隐私性 - 只要你 -信任与你聊天的人,你也可以信任 Webxdc 应用。
                            • -
                            • 这也意味着:在你不信任成员的聊天中打开 WebXDC 应用可能存在隐私风险 - 正如你从电子邮件附件中了解到的那样,你 -只打开来自你信任的发件人的附件,而不是来自垃圾邮件发送者的附件。
                            • +
                            • webxdc apps can not send data to the Internet, or download anything.
                            • +
                            • A webxdc app can only exchange data within a Delta Chat chat, with its +copies on the devices of your chat partners. Other than that, it’s completely +isolated from the Internet.
                            • +
                            • The privacy a webxdc app offers is the privacy of your chat - as long as you +trust the people you chat with, you can trust the webxdc app as well.
                            • +
                            • This also means: it can be a privacy risk to open apps in chats with untrusted members. +Just like with e-mail attachments, video calls or plain links: +open them only from senders you trust, and not from spammers. +Spammers can get to know any data you send to them, as well as your IP address.

                            @@ -1513,13 +1400,10 @@ Chat 的 PGP

                            -
                              -
                            • 使用广播列表,您可以一次性将一条消息发送给多个接收者;当他们回复您时,回复会出现在您与他们的直接 1 对 1 聊天中。 接收者之间无法相互看到。
                            • -
                            • 从技术上讲,它是密件抄送了许多收件人的电子邮件。
                            • -
                            • 您可以在高级设置的“实验性功能”部分启用该功能。启用后,您便能在“新建聊天”对话框中新建广播列表了。
                            • -
                            • 在使用多台设备的情况下,目前广播列表不会在它们之间同步。
                            • -
                            • 发送到广播列表的消息不会被加密。加密会使接收者们知道还有谁收到了消息,进而破坏了匿名性(出于发送速率限制和网络消耗的原因,向每个人发送单独的邮件会更糟)。
                            • -
                            +

                            With a Broadcast List you can send a message to many recipients at once; +the recipients cannot reply in that list. +Broadcast lists are still highly experimental +and will very probably be replaced by something else, stay tuned :)

                            @@ -1570,6 +1454,11 @@ Chat 的 PGP

                            +

                            Note: +Changing email addresses is temporarily disabled +because of ongoing changes to the DeltaChat core. +It should be available again in a few months.

                            +
                            1. 在“设置 → 高级 → 密码和帐户”中更改你的地址, @@ -1651,19 +1540,19 @@ Chat 的 PGP 和 不过,某些提供商需要一些特殊设置才能正常工作,请参阅提供商概览

                            2. -

                              +

                              - 我想管理自己的 Delta Chat 电子邮件服务器。 你有什么建议? + I want to manage my own server for Delta Chat. What do you recommend?

                              diff --git a/src/main/java/com/b44t/messenger/DcChat.java b/src/main/java/com/b44t/messenger/DcChat.java index fa40117aa..7d5e2597d 100644 --- a/src/main/java/com/b44t/messenger/DcChat.java +++ b/src/main/java/com/b44t/messenger/DcChat.java @@ -6,7 +6,8 @@ public class DcChat { public static final int DC_CHAT_TYPE_SINGLE = 100; public static final int DC_CHAT_TYPE_GROUP = 120; public static final int DC_CHAT_TYPE_MAILINGLIST = 140; - public static final int DC_CHAT_TYPE_BROADCAST = 160; + public static final int DC_CHAT_TYPE_OUT_BROADCAST = 160; + public static final int DC_CHAT_TYPE_IN_BROADCAST = 165; public static final int DC_CHAT_NO_CHAT = 0; public final static int DC_CHAT_ID_ARCHIVED_LINK = 6; @@ -38,12 +39,12 @@ public class DcChat { public native String getMailinglistAddr(); public native String getProfileImage (); public native int getColor (); + public native boolean isEncrypted (); public native boolean isUnpromoted (); public native boolean isSelfTalk (); public native boolean isDeviceTalk (); public native boolean canSend (); public native boolean isProtected (); - public native boolean isProtectionBroken(); public native boolean isSendingLocations(); public native boolean isMuted (); public native boolean isContactRequest (); @@ -53,19 +54,18 @@ public class DcChat { public boolean isMultiUser() { int type = getType(); - return type == DC_CHAT_TYPE_GROUP || type == DC_CHAT_TYPE_MAILINGLIST || type == DC_CHAT_TYPE_BROADCAST; + return type != DC_CHAT_TYPE_SINGLE; } public boolean isMailingList() { return getType() == DC_CHAT_TYPE_MAILINGLIST; } - public boolean isBroadcast() { - return getType() == DC_CHAT_TYPE_BROADCAST; + public boolean isInBroadcast() { + return getType() == DC_CHAT_TYPE_IN_BROADCAST; } - - public boolean isHalfBlocked() { - return isProtectionBroken() || isContactRequest(); + public boolean isOutBroadcast() { + return getType() == DC_CHAT_TYPE_OUT_BROADCAST; } // working with raw c-data diff --git a/src/main/java/com/b44t/messenger/DcContact.java b/src/main/java/com/b44t/messenger/DcContact.java index 13f55f993..c1db787df 100644 --- a/src/main/java/com/b44t/messenger/DcContact.java +++ b/src/main/java/com/b44t/messenger/DcContact.java @@ -10,8 +10,9 @@ public class DcContact { public final static int DC_CONTACT_ID_NEW_GROUP = -2; // - " - public final static int DC_CONTACT_ID_ADD_MEMBER = -3; // - " - public final static int DC_CONTACT_ID_QR_INVITE = -4; // - " - - public final static int DC_CONTACT_ID_NEW_BROADCAST_LIST = -5; // - " - + public final static int DC_CONTACT_ID_NEW_BROADCAST = -5; // - " - public final static int DC_CONTACT_ID_ADD_ACCOUNT = -6; // - " - + public final static int DC_CONTACT_ID_NEW_UNENCRYPTED_GROUP = -7; // - " - public DcContact(long contactCPtr) { this.contactCPtr = contactCPtr; @@ -57,6 +58,7 @@ public class DcContact { public native boolean wasSeenRecently(); public native boolean isBlocked (); public native boolean isVerified (); + public native boolean isKeyContact (); public native int getVerifierId (); public native boolean isBot (); diff --git a/src/main/java/com/b44t/messenger/DcContext.java b/src/main/java/com/b44t/messenger/DcContext.java index cec22f0ac..6ddb5b813 100644 --- a/src/main/java/com/b44t/messenger/DcContext.java +++ b/src/main/java/com/b44t/messenger/DcContext.java @@ -43,6 +43,7 @@ public class DcContext { public final static int DC_GCL_VERIFIED_ONLY = 1; public final static int DC_GCL_ADD_SELF = 2; + public final static int DC_GCL_ADDRESS = 0x04; public final static int DC_GCL_ARCHIVED_ONLY = 0x01; public final static int DC_GCL_NO_SPECIALS = 0x02; public final static int DC_GCL_ADD_ALLDONE_HINT = 0x04; diff --git a/src/main/java/com/b44t/messenger/DcMsg.java b/src/main/java/com/b44t/messenger/DcMsg.java index 4bae7fa2d..a19d1d7ce 100644 --- a/src/main/java/com/b44t/messenger/DcMsg.java +++ b/src/main/java/com/b44t/messenger/DcMsg.java @@ -33,11 +33,11 @@ public class DcMsg { public final static int DC_INFO_LOCATION_ONLY = 9; public final static int DC_INFO_EPHEMERAL_TIMER_CHANGED = 10; public final static int DC_INFO_PROTECTION_ENABLED = 11; - public final static int DC_INFO_PROTECTION_DISABLED = 12; public final static int DC_INFO_INVALID_UNENCRYPTED_MAIL = 13; public final static int DC_INFO_WEBXDC_INFO_MESSAGE = 32; - public final static int DC_INFO_OUTGOING_CALL = 50; - public final static int DC_INFO_INCOMING_CALL = 55; + public final static int DC_INFO_CHAT_E2EE = 50; + public final static int DC_INFO_OUTGOING_CALL = 60; + public final static int DC_INFO_INCOMING_CALL = 65; public final static int DC_STATE_UNDEFINED = 0; public final static int DC_STATE_IN_FRESH = 10; diff --git a/src/main/java/com/b44t/messenger/rpc/Rpc.java b/src/main/java/com/b44t/messenger/rpc/Rpc.java index 3eb340889..12fa326b2 100644 --- a/src/main/java/com/b44t/messenger/rpc/Rpc.java +++ b/src/main/java/com/b44t/messenger/rpc/Rpc.java @@ -160,6 +160,18 @@ public class Rpc { getResult("add_or_update_transport", accountId, param); } + public int createBroadcast(int accountId, String chatName) throws RpcException { + return gson.fromJson(getResult("create_broadcast", accountId, chatName), Integer.class); + } + + public int createGroupChatUnencrypted(int accountId, String chatName) throws RpcException { + return gson.fromJson(getResult("create_group_chat_unencrypted", accountId, chatName), Integer.class); + } + + public void setAccountsOrder(List order) throws RpcException { + getResult("set_accounts_order", order); + } + private static class Request { private final String jsonrpc = "2.0"; public final String method; @@ -173,6 +185,10 @@ public class Rpc { } } + public String getMigrationError(int accountId) throws RpcException { + return gson.fromJson(getResult("get_migration_error", accountId), String.class); + } + private static class Response { public final int id; public final JsonElement result; diff --git a/src/main/java/org/thoughtcrime/securesms/AllMediaActivity.java b/src/main/java/org/thoughtcrime/securesms/AllMediaActivity.java new file mode 100644 index 000000000..4fdd996e6 --- /dev/null +++ b/src/main/java/org/thoughtcrime/securesms/AllMediaActivity.java @@ -0,0 +1,196 @@ +package org.thoughtcrime.securesms; + +import android.os.Bundle; +import android.view.MenuItem; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.view.ActionMode; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentStatePagerAdapter; +import androidx.viewpager.widget.ViewPager; + +import com.b44t.messenger.DcChat; +import com.b44t.messenger.DcContext; +import com.b44t.messenger.DcEvent; +import com.b44t.messenger.DcMsg; +import com.google.android.material.tabs.TabLayout; + +import org.thoughtcrime.securesms.connect.DcEventCenter; +import org.thoughtcrime.securesms.connect.DcHelper; +import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; +import org.thoughtcrime.securesms.util.Util; +import org.thoughtcrime.securesms.util.ViewUtil; + +import java.util.ArrayList; + +public class AllMediaActivity extends PassphraseRequiredActionBarActivity + implements DcEventCenter.DcEventDelegate +{ + + public static final String CHAT_ID_EXTRA = "chat_id"; + public static final String CONTACT_ID_EXTRA = "contact_id"; + public static final String FORCE_GALLERY = "force_gallery"; + + static class TabData { + final int title; + final int type1; + final int type2; + final int type3; + TabData(int title, int type1, int type2, int type3) { + this.title = title; + this.type1 = type1; + this.type2 = type2; + this.type3 = type3; + } + }; + + private DcContext dcContext; + private int chatId; + private int contactId; + + private final ArrayList tabs = new ArrayList<>(); + private Toolbar toolbar; + private TabLayout tabLayout; + private ViewPager viewPager; + + @Override + protected void onPreCreate() { + dynamicTheme = new DynamicNoActionBarTheme(); + super.onPreCreate(); + dcContext = DcHelper.getContext(this); + } + + @Override + protected void onCreate(Bundle bundle, boolean ready) { + tabs.add(new TabData(R.string.webxdc_apps, DcMsg.DC_MSG_WEBXDC, 0, 0)); + tabs.add(new TabData(R.string.tab_gallery, DcMsg.DC_MSG_IMAGE, DcMsg.DC_MSG_GIF, DcMsg.DC_MSG_VIDEO)); + tabs.add(new TabData(R.string.files, DcMsg.DC_MSG_FILE, 0, 0)); + tabs.add(new TabData(R.string.audio, DcMsg.DC_MSG_AUDIO, DcMsg.DC_MSG_VOICE, 0)); + + setContentView(R.layout.all_media_activity); + + initializeResources(); + + setSupportActionBar(this.toolbar); + ActionBar supportActionBar = getSupportActionBar(); + if (supportActionBar != null) { + supportActionBar.setDisplayHomeAsUpEnabled(true); + supportActionBar.setTitle(isGlobalGallery() ? R.string.menu_all_media : R.string.apps_and_media); + } + + this.tabLayout.setupWithViewPager(viewPager); + this.viewPager.setAdapter(new AllMediaPagerAdapter(getSupportFragmentManager())); + if (getIntent().getBooleanExtra(FORCE_GALLERY, false)) { + this.viewPager.setCurrentItem(1, false); + } + + DcEventCenter eventCenter = DcHelper.getEventCenter(this); + eventCenter.addObserver(DcContext.DC_EVENT_CHAT_MODIFIED, this); + eventCenter.addObserver(DcContext.DC_EVENT_CONTACTS_CHANGED, this); + } + + @Override + public void onDestroy() { + DcHelper.getEventCenter(this).removeObservers(this); + super.onDestroy(); + } + + @Override + public void handleEvent(@NonNull DcEvent event) { + } + + private void initializeResources() { + chatId = getIntent().getIntExtra(CHAT_ID_EXTRA, 0); + contactId = getIntent().getIntExtra(CONTACT_ID_EXTRA, 0); + + if (contactId!=0) { + chatId = dcContext.getChatIdByContactId(contactId); + } + + if(chatId!=0) { + DcChat dcChat = dcContext.getChat(chatId); + if(!dcChat.isMultiUser()) { + final int[] members = dcContext.getChatContacts(chatId); + contactId = members.length>=1? members[0] : 0; + } + } + + this.viewPager = ViewUtil.findById(this, R.id.pager); + this.toolbar = ViewUtil.findById(this, R.id.toolbar); + this.tabLayout = ViewUtil.findById(this, R.id.tab_layout); + } + + private boolean isGlobalGallery() { + return contactId==0 && chatId==0; + } + + private class AllMediaPagerAdapter extends FragmentStatePagerAdapter { + private Object currentFragment = null; + + AllMediaPagerAdapter(FragmentManager fragmentManager) { + super(fragmentManager); + } + + @Override + public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) { + super.setPrimaryItem(container, position, object); + if (currentFragment != null && currentFragment != object) { + ActionMode action = null; + if (currentFragment instanceof MessageSelectorFragment) { + action = ((MessageSelectorFragment) currentFragment).getActionMode(); + } + if (action != null) { + action.finish(); + } + } + currentFragment = object; + } + + @NonNull + @Override + public Fragment getItem(int position) { + TabData data = tabs.get(position); + Fragment fragment; + Bundle args = new Bundle(); + + if (data.type1 == DcMsg.DC_MSG_IMAGE) { + fragment = new AllMediaGalleryFragment(); + args.putInt(AllMediaGalleryFragment.CHAT_ID_EXTRA, (chatId==0&&!isGlobalGallery())? -1 : chatId); + } else { + fragment = new AllMediaDocumentsFragment(); + args.putInt(AllMediaDocumentsFragment.CHAT_ID_EXTRA, (chatId==0&&!isGlobalGallery())? -1 : chatId); + args.putInt(AllMediaDocumentsFragment.VIEWTYPE1, data.type1); + args.putInt(AllMediaDocumentsFragment.VIEWTYPE2, data.type2); + } + fragment.setArguments(args); + return fragment; + } + + @Override + public int getCount() { + return tabs.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return getString(tabs.get(position).title); + } + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + super.onOptionsItemSelected(item); + + int itemId = item.getItemId(); + if (itemId == android.R.id.home) { + finish(); + return true; + } + + return false; + } +} diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsAdapter.java b/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsAdapter.java similarity index 96% rename from src/main/java/org/thoughtcrime/securesms/ProfileDocumentsAdapter.java rename to src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsAdapter.java index 424547412..c582c7288 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsAdapter.java +++ b/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsAdapter.java @@ -25,7 +25,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; -class ProfileDocumentsAdapter extends StickyHeaderGridAdapter { +class AllMediaDocumentsAdapter extends StickyHeaderGridAdapter { private final Context context; private final ItemClickListener itemClickListener; @@ -57,9 +57,9 @@ class ProfileDocumentsAdapter extends StickyHeaderGridAdapter { } } - ProfileDocumentsAdapter(@NonNull Context context, - BucketedThreadMedia media, - ItemClickListener clickListener) + AllMediaDocumentsAdapter(@NonNull Context context, + BucketedThreadMedia media, + ItemClickListener clickListener) { this.context = context; this.media = media; diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsFragment.java b/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsFragment.java similarity index 81% rename from src/main/java/org/thoughtcrime/securesms/ProfileDocumentsFragment.java rename to src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsFragment.java index 1f2e2688e..96446d6f8 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsFragment.java @@ -11,7 +11,6 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.widget.TextView; import androidx.annotation.NonNull; @@ -33,21 +32,21 @@ import org.thoughtcrime.securesms.util.ViewUtil; import java.util.Set; -public class ProfileDocumentsFragment +public class AllMediaDocumentsFragment extends MessageSelectorFragment implements LoaderManager.LoaderCallbacks, - ProfileDocumentsAdapter.ItemClickListener + AllMediaDocumentsAdapter.ItemClickListener { public static final String CHAT_ID_EXTRA = "chat_id"; - public static final String SHOW_AUDIO_EXTRA = "show_audio"; - public static final String SHOW_WEBXDC_EXTRA = "show_webxdc"; + public static final String VIEWTYPE1 = "viewtype1"; + public static final String VIEWTYPE2 = "viewtype2"; protected TextView noMedia; protected RecyclerView recyclerView; private StickyHeaderGridLayoutManager gridManager; private final ActionModeCallback actionModeCallback = new ActionModeCallback(); - private boolean showAudio; - private boolean showWebxdc; + private int viewtype1; + private int viewtype2; protected int chatId; @@ -57,8 +56,8 @@ public class ProfileDocumentsFragment dcContext = DcHelper.getContext(getContext()); chatId = getArguments().getInt(CHAT_ID_EXTRA, -1); - showAudio = getArguments().getBoolean(SHOW_AUDIO_EXTRA, false); - showWebxdc = getArguments().getBoolean(SHOW_WEBXDC_EXTRA, false); + viewtype1 = getArguments().getInt(VIEWTYPE1, 0); + viewtype2 = getArguments().getInt(VIEWTYPE2, 0); getLoaderManager().initLoader(0, null, this); } @@ -71,7 +70,7 @@ public class ProfileDocumentsFragment this.noMedia = ViewUtil.findById(view, R.id.no_documents); this.gridManager = new StickyHeaderGridLayoutManager(1); - this.recyclerView.setAdapter(new ProfileDocumentsAdapter(getContext(), + this.recyclerView.setAdapter(new AllMediaDocumentsAdapter(getContext(), new BucketedThreadMediaLoader.BucketedThreadMedia(getContext()), this)); this.recyclerView.setLayoutManager(gridManager); @@ -105,32 +104,26 @@ public class ProfileDocumentsFragment @Override public Loader onCreateLoader(int i, Bundle bundle) { - if (showAudio) { - return new BucketedThreadMediaLoader(getContext(), chatId, DcMsg.DC_MSG_AUDIO, DcMsg.DC_MSG_VOICE, 0); - } else if (showWebxdc) { - return new BucketedThreadMediaLoader(getContext(), chatId, DcMsg.DC_MSG_WEBXDC, 0, 0); - } else { - return new BucketedThreadMediaLoader(getContext(), chatId, DcMsg.DC_MSG_FILE, 0, 0); - } + return new BucketedThreadMediaLoader(getContext(), chatId, viewtype1, viewtype2, 0); } @Override public void onLoadFinished(Loader loader, BucketedThreadMediaLoader.BucketedThreadMedia bucketedThreadMedia) { - ((ProfileDocumentsAdapter) recyclerView.getAdapter()).setMedia(bucketedThreadMedia); - ((ProfileDocumentsAdapter) recyclerView.getAdapter()).notifyAllSectionsDataSetChanged(); + ((AllMediaDocumentsAdapter) recyclerView.getAdapter()).setMedia(bucketedThreadMedia); + ((AllMediaDocumentsAdapter) recyclerView.getAdapter()).notifyAllSectionsDataSetChanged(); noMedia.setVisibility(recyclerView.getAdapter().getItemCount() > 0 ? View.GONE : View.VISIBLE); if (chatId == DC_CHAT_NO_CHAT) { - if (showWebxdc) { + if (viewtype1 == DcMsg.DC_MSG_WEBXDC) { noMedia.setText(R.string.all_apps_empty_hint); - } else if (!showAudio){ + } else if (viewtype1 == DcMsg.DC_MSG_FILE){ noMedia.setText(R.string.all_files_empty_hint); } else { noMedia.setText(R.string.tab_all_media_empty_hint); } - } else if (showAudio) { + } else if (viewtype1 == DcMsg.DC_MSG_AUDIO) { noMedia.setText(R.string.tab_audio_empty_hint); - } else if (showWebxdc) { + } else if (viewtype1 == DcMsg.DC_MSG_WEBXDC) { noMedia.setText(R.string.tab_webxdc_empty_hint); } getActivity().invalidateOptionsMenu(); @@ -138,7 +131,7 @@ public class ProfileDocumentsFragment @Override public void onLoaderReset(Loader cursorLoader) { - ((ProfileDocumentsAdapter) recyclerView.getAdapter()).setMedia(new BucketedThreadMediaLoader.BucketedThreadMedia(getContext())); + ((AllMediaDocumentsAdapter) recyclerView.getAdapter()).setMedia(new BucketedThreadMediaLoader.BucketedThreadMedia(getContext())); } @Override @@ -156,7 +149,7 @@ public class ProfileDocumentsFragment } private void handleMediaMultiSelectClick(@NonNull DcMsg mediaRecord) { - ProfileDocumentsAdapter adapter = getListAdapter(); + AllMediaDocumentsAdapter adapter = getListAdapter(); adapter.toggleSelection(mediaRecord); if (adapter.getSelectedMediaCount() == 0) { @@ -188,7 +181,7 @@ public class ProfileDocumentsFragment @Override public void onMediaLongClicked(DcMsg mediaRecord) { if (actionMode == null) { - ((ProfileDocumentsAdapter) recyclerView.getAdapter()).toggleSelection(mediaRecord); + ((AllMediaDocumentsAdapter) recyclerView.getAdapter()).toggleSelection(mediaRecord); actionMode = ((AppCompatActivity) getActivity()).startSupportActionMode(actionModeCallback); } @@ -221,22 +214,17 @@ public class ProfileDocumentsFragment menu.findItem(R.id.menu_add_to_home_screen).setVisible(webxdcApp); } - private ProfileDocumentsAdapter getListAdapter() { - return (ProfileDocumentsAdapter) recyclerView.getAdapter(); + private AllMediaDocumentsAdapter getListAdapter() { + return (AllMediaDocumentsAdapter) recyclerView.getAdapter(); } private class ActionModeCallback implements ActionMode.Callback { - private int originalStatusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.getMenuInflater().inflate(R.menu.profile_context, menu); mode.setTitle("1"); - Window window = getActivity().getWindow(); - originalStatusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); setCorrectMenuVisibility(menu); return true; } @@ -285,8 +273,6 @@ public class ProfileDocumentsFragment public void onDestroyActionMode(ActionMode mode) { actionMode = null; getListAdapter().clearSelection(); - - getActivity().getWindow().setStatusBarColor(originalStatusBarColor); } } } diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileGalleryAdapter.java b/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryAdapter.java similarity index 93% rename from src/main/java/org/thoughtcrime/securesms/ProfileGalleryAdapter.java rename to src/main/java/org/thoughtcrime/securesms/AllMediaGalleryAdapter.java index 1efa30457..85d940625 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileGalleryAdapter.java +++ b/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryAdapter.java @@ -21,7 +21,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; -class ProfileGalleryAdapter extends StickyHeaderGridAdapter { +class AllMediaGalleryAdapter extends StickyHeaderGridAdapter { private final Context context; private final GlideRequests glideRequests; @@ -50,10 +50,10 @@ class ProfileGalleryAdapter extends StickyHeaderGridAdapter { } } - ProfileGalleryAdapter(@NonNull Context context, - @NonNull GlideRequests glideRequests, - BucketedThreadMedia media, - ItemClickListener clickListener) + AllMediaGalleryAdapter(@NonNull Context context, + @NonNull GlideRequests glideRequests, + BucketedThreadMedia media, + ItemClickListener clickListener) { this.context = context; this.glideRequests = glideRequests; diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileGalleryFragment.java b/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryFragment.java similarity index 88% rename from src/main/java/org/thoughtcrime/securesms/ProfileGalleryFragment.java rename to src/main/java/org/thoughtcrime/securesms/AllMediaGalleryFragment.java index 97ad4471e..e9b533699 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileGalleryFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryFragment.java @@ -11,7 +11,6 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.widget.TextView; import androidx.annotation.NonNull; @@ -35,10 +34,10 @@ import org.thoughtcrime.securesms.util.ViewUtil; import java.util.Set; -public class ProfileGalleryFragment +public class AllMediaGalleryFragment extends MessageSelectorFragment implements LoaderManager.LoaderCallbacks, - ProfileGalleryAdapter.ItemClickListener + AllMediaGalleryAdapter.ItemClickListener { public static final String CHAT_ID_EXTRA = "chat_id"; @@ -67,7 +66,7 @@ public class ProfileGalleryFragment this.noMedia = ViewUtil.findById(view, R.id.no_images); this.gridManager = new StickyHeaderGridLayoutManager(getCols()); - this.recyclerView.setAdapter(new ProfileGalleryAdapter(getContext(), + this.recyclerView.setAdapter(new AllMediaGalleryAdapter(getContext(), GlideApp.with(this), new BucketedThreadMediaLoader.BucketedThreadMedia(getContext()), this)); @@ -112,8 +111,8 @@ public class ProfileGalleryFragment @Override public void onLoadFinished(Loader loader, BucketedThreadMediaLoader.BucketedThreadMedia bucketedThreadMedia) { - ((ProfileGalleryAdapter) recyclerView.getAdapter()).setMedia(bucketedThreadMedia); - ((ProfileGalleryAdapter) recyclerView.getAdapter()).notifyAllSectionsDataSetChanged(); + ((AllMediaGalleryAdapter) recyclerView.getAdapter()).setMedia(bucketedThreadMedia); + ((AllMediaGalleryAdapter) recyclerView.getAdapter()).notifyAllSectionsDataSetChanged(); noMedia.setVisibility(recyclerView.getAdapter().getItemCount() > 0 ? View.GONE : View.VISIBLE); if (chatId == DC_CHAT_NO_CHAT) { @@ -124,7 +123,7 @@ public class ProfileGalleryFragment @Override public void onLoaderReset(Loader cursorLoader) { - ((ProfileGalleryAdapter) recyclerView.getAdapter()).setMedia(new BucketedThreadMediaLoader.BucketedThreadMedia(getContext())); + ((AllMediaGalleryAdapter) recyclerView.getAdapter()).setMedia(new BucketedThreadMediaLoader.BucketedThreadMedia(getContext())); } @Override @@ -142,7 +141,7 @@ public class ProfileGalleryFragment } private void handleMediaMultiSelectClick(@NonNull DcMsg mediaRecord) { - ProfileGalleryAdapter adapter = getListAdapter(); + AllMediaGalleryAdapter adapter = getListAdapter(); adapter.toggleSelection(mediaRecord); if (adapter.getSelectedMediaCount() == 0) { @@ -175,7 +174,7 @@ public class ProfileGalleryFragment @Override public void onMediaLongClicked(DcMsg mediaRecord) { if (actionMode == null) { - ((ProfileGalleryAdapter) recyclerView.getAdapter()).toggleSelection(mediaRecord); + ((AllMediaGalleryAdapter) recyclerView.getAdapter()).toggleSelection(mediaRecord); recyclerView.getAdapter().notifyDataSetChanged(); actionMode = ((AppCompatActivity) getActivity()).startSupportActionMode(actionModeCallback); @@ -206,22 +205,17 @@ public class ProfileGalleryFragment menu.findItem(R.id.menu_resend).setVisible(canResend); } - private ProfileGalleryAdapter getListAdapter() { - return (ProfileGalleryAdapter) recyclerView.getAdapter(); + private AllMediaGalleryAdapter getListAdapter() { + return (AllMediaGalleryAdapter) recyclerView.getAdapter(); } private class ActionModeCallback implements ActionMode.Callback { - private int originalStatusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.getMenuInflater().inflate(R.menu.profile_context, menu); mode.setTitle("1"); - Window window = getActivity().getWindow(); - originalStatusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); setCorrectMenuVisibility(menu); return true; } @@ -266,8 +260,6 @@ public class ProfileGalleryFragment public void onDestroyActionMode(ActionMode mode) { actionMode = null; getListAdapter().clearSelection(); - - getActivity().getWindow().setStatusBarColor(originalStatusBarColor); } } } diff --git a/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 84312e6d0..ea465b771 100644 --- a/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -197,30 +197,30 @@ public class ApplicationContext extends MultiDexApplication { } }, filter); - // MAYBE TODO: i think the ApplicationContext is also created - // when the app is stated by FetchWorker timeouts. - // in this case, the normal threads shall not be started. - Constraints constraints = new Constraints.Builder() - .setRequiredNetworkType(NetworkType.CONNECTED) - .build(); - PeriodicWorkRequest fetchWorkRequest = new PeriodicWorkRequest.Builder( - FetchWorker.class, - PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS, // usually 15 minutes - TimeUnit.MILLISECONDS, - PeriodicWorkRequest.MIN_PERIODIC_FLEX_MILLIS, // the start may be preferred by up to 5 minutes, so we run every 10-15 minutes - TimeUnit.MILLISECONDS) - .setConstraints(constraints) - .build(); - WorkManager.getInstance(this).enqueueUniquePeriodicWork( - "FetchWorker", - ExistingPeriodicWorkPolicy.KEEP, - fetchWorkRequest); AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); if (Prefs.isPushEnabled(this)) { FcmReceiveService.register(this); } else { Log.i(TAG, "FCM disabled at build time"); + // MAYBE TODO: i think the ApplicationContext is also created + // when the app is stated by FetchWorker timeouts. + // in this case, the normal threads shall not be started. + Constraints constraints = new Constraints.Builder() + .setRequiredNetworkType(NetworkType.CONNECTED) + .build(); + PeriodicWorkRequest fetchWorkRequest = new PeriodicWorkRequest.Builder( + FetchWorker.class, + PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS, // usually 15 minutes + TimeUnit.MILLISECONDS, + PeriodicWorkRequest.MIN_PERIODIC_FLEX_MILLIS, // the start may be preferred by up to 5 minutes, so we run every 10-15 minutes + TimeUnit.MILLISECONDS) + .setConstraints(constraints) + .build(); + WorkManager.getInstance(this).enqueueUniquePeriodicWork( + "FetchWorker", + ExistingPeriodicWorkPolicy.KEEP, + fetchWorkRequest); } } diff --git a/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java b/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java index 2602dc77e..873b956ae 100644 --- a/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java @@ -73,11 +73,14 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA @Override protected void onCreate(Bundle icicle, boolean ready) { + setContentView(R.layout.activity_application_preferences); + //noinspection ConstantConditions this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead if (icicle == null) { - initFragment(android.R.id.content, new ApplicationPreferenceFragment()); + initFragment(R.id.fragment, new ApplicationPreferenceFragment()); } } @@ -89,7 +92,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA showBackupProvider(); return; } - Fragment fragment = getSupportFragmentManager().findFragmentById(android.R.id.content); + Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment); fragment.onActivityResult(requestCode, resultCode, data); } @@ -262,7 +265,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); - fragmentTransaction.replace(android.R.id.content, fragment); + fragmentTransaction.replace(R.id.fragment, fragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); } diff --git a/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java b/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java index 694911dd2..0af814bed 100644 --- a/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java @@ -7,10 +7,12 @@ import android.view.MenuItem; import android.view.ViewConfiguration; import android.view.WindowManager; +import androidx.activity.EdgeToEdge; import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.WindowCompat; import androidx.fragment.app.Fragment; import org.thoughtcrime.securesms.util.DynamicTheme; @@ -31,7 +33,9 @@ public abstract class BaseActionBarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { onPreCreate(); + EdgeToEdge.enable(this); // docs says to use: WindowCompat.enableEdgeToEdge(getWindow()); but it is not available super.onCreate(savedInstanceState); + WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()).setAppearanceLightStatusBars(false); // force white text in status bar } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/BaseConversationItem.java b/src/main/java/org/thoughtcrime/securesms/BaseConversationItem.java index 6c14bc3c8..8ead4bed5 100644 --- a/src/main/java/org/thoughtcrime/securesms/BaseConversationItem.java +++ b/src/main/java/org/thoughtcrime/securesms/BaseConversationItem.java @@ -81,7 +81,7 @@ public abstract class BaseConversationItem extends LinearLayout protected boolean shouldInterceptClicks(DcMsg messageRecord) { return batchSelected.isEmpty() && (messageRecord.isFailed() - || messageRecord.getInfoType() == DcMsg.DC_INFO_PROTECTION_DISABLED + || messageRecord.getInfoType() == DcMsg.DC_INFO_CHAT_E2EE || messageRecord.getInfoType() == DcMsg.DC_INFO_PROTECTION_ENABLED || messageRecord.getInfoType() == DcMsg.DC_INFO_INVALID_UNENCRYPTED_MAIL); } @@ -129,9 +129,7 @@ public abstract class BaseConversationItem extends LinearLayout .setPositiveButton(R.string.ok, null) .create(); d.show(); - } else if (messageRecord.getInfoType() == DcMsg.DC_INFO_PROTECTION_DISABLED) { - DcHelper.showVerificationBrokenDialog(context, conversationRecipient.getName()); - } else if (messageRecord.getInfoType() == DcMsg.DC_INFO_PROTECTION_ENABLED) { + } else if (messageRecord.getInfoType() == DcMsg.DC_INFO_CHAT_E2EE || messageRecord.getInfoType() == DcMsg.DC_INFO_PROTECTION_ENABLED) { DcHelper.showProtectionEnabledDialog(context); } else if (messageRecord.getInfoType() == DcMsg.DC_INFO_INVALID_UNENCRYPTED_MAIL) { DcHelper.showInvalidUnencryptedDialog(context); diff --git a/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java b/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java index b6cca750f..e2f347f44 100644 --- a/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java @@ -10,9 +10,7 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.res.TypedArray; import android.graphics.Bitmap; -import android.graphics.Color; import android.net.Uri; import android.os.AsyncTask; import android.view.Menu; @@ -401,8 +399,6 @@ public abstract class BaseConversationListFragment extends Fragment implements A mode.setTitle("1"); - requireActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); - return true; } @@ -445,10 +441,6 @@ public abstract class BaseConversationListFragment extends Fragment implements A actionMode = null; getListAdapter().initializeBatchMode(false); - TypedArray color = requireActivity().getTheme().obtainStyledAttributes(new int[]{android.R.attr.statusBarColor}); - requireActivity().getWindow().setStatusBarColor(color.getColor(0, Color.BLACK)); - color.recycle(); - Context context = getContext(); if (context != null) { fab.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_add_white_24dp)); diff --git a/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java b/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java index 388e071af..aef21c16a 100644 --- a/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java @@ -30,9 +30,11 @@ public class BlockedContactsActivity extends PassphraseRequiredActionBarActivity @Override public void onCreate(Bundle bundle, boolean ready) { + setContentView(R.layout.activity_blocked_contacts); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(R.string.pref_blocked_contacts); - initFragment(android.R.id.content, new BlockedAndShareContactsFragment(), getIntent().getExtras()); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead + initFragment(R.id.fragment, new BlockedAndShareContactsFragment(), getIntent().getExtras()); } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java index 82370c2b6..24d1adaf5 100644 --- a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -23,8 +23,6 @@ import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; -import android.content.res.TypedArray; -import android.graphics.Color; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; @@ -35,7 +33,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; @@ -83,6 +80,7 @@ public class ContactSelectionListFragment extends Fragment public static final String MULTI_SELECT = "multi_select"; public static final String SELECT_VERIFIED_EXTRA = "select_verified"; + public static final String SELECT_UNENCRYPTED_EXTRA = "select_unencrypted_extra"; public static final String ALLOW_CREATION = "allow_creation"; public static final String PRESELECTED_CONTACTS = "preselected_contacts"; public static final int CONTACT_ADDR_RESULT_CODE = 61123; @@ -135,7 +133,6 @@ public class ContactSelectionListFragment extends Fragment public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { MenuInflater inflater = getActivity().getMenuInflater(); inflater.inflate(R.menu.contact_list, menu); - getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); setCorrectMenuVisibility(menu); actionMode.setTitle("1"); return true; @@ -166,10 +163,6 @@ public class ContactSelectionListFragment extends Fragment public void onDestroyActionMode(ActionMode actionMode) { ContactSelectionListFragment.this.actionMode = null; getContactSelectionListAdapter().resetActionModeSelection(); - - TypedArray color = getActivity().getTheme().obtainStyledAttributes(new int[]{android.R.attr.statusBarColor}); - getActivity().getWindow().setStatusBarColor(color.getColor(0, Color.BLACK)); - color.recycle(); } }; @@ -251,6 +244,10 @@ public class ContactSelectionListFragment extends Fragment return getActivity().getIntent().getBooleanExtra(SELECT_VERIFIED_EXTRA, false); } + private boolean isUnencrypted() { + return getActivity().getIntent().getBooleanExtra(SELECT_UNENCRYPTED_EXTRA, false); + } + private void initializeCursor() { ContactSelectionListAdapter adapter = new ContactSelectionListAdapter(getActivity(), GlideApp.with(this), @@ -273,11 +270,11 @@ public class ContactSelectionListFragment extends Fragment @Override public Loader onCreateLoader(int id, Bundle args) { final boolean allowCreation = getActivity().getIntent().getBooleanExtra(ALLOW_CREATION, true); - final boolean addCreateContactLink = allowCreation && !isSelectVerfied(); + final boolean addCreateContactLink = allowCreation && isUnencrypted(); final boolean addCreateGroupLinks = allowCreation && !isRelayingMessageContent(getActivity()) && !isMulti(); final boolean addScanQRLink = allowCreation && !isMulti(); - final int listflags = DcContext.DC_GCL_ADD_SELF; + final int listflags = DcContext.DC_GCL_ADD_SELF | (isUnencrypted()? DcContext.DC_GCL_ADDRESS : 0); return new DcContactsLoader(getActivity(), listflags, cursorFilter, addCreateGroupLinks, addCreateContactLink, addScanQRLink, false); } diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java index d090f8284..203e03f1e 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java @@ -59,6 +59,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.StringRes; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.SearchView; @@ -431,7 +432,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity getMenuInflater().inflate(R.menu.conversation, menu); - if (dcChat.isSelfTalk() || dcChat.isBroadcast()) { + if (dcChat.isSelfTalk() || dcChat.isOutBroadcast()) { menu.findItem(R.id.menu_mute_notifications).setVisible(false); } else if(dcChat.isMuted()) { menu.findItem(R.id.menu_mute_notifications).setTitle(R.string.menu_unmute); @@ -441,12 +442,17 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity menu.findItem(R.id.menu_show_map).setVisible(false); } - if (!dcChat.canSend() || dcChat.isBroadcast() || dcChat.isMailingList()) { + if (!dcChat.isEncrypted() || !dcChat.canSend() || dcChat.isMailingList() ) { menu.findItem(R.id.menu_ephemeral_messages).setVisible(false); } if (isMultiUser()) { - if (dcChat.canSend() && !dcChat.isBroadcast() && !dcChat.isMailingList()) { + if (dcChat.isInBroadcast() && !dcChat.isContactRequest()) { + menu.findItem(R.id.menu_leave).setTitle(R.string.menu_leave_channel).setVisible(true); + } else if (dcChat.isEncrypted() + && dcChat.canSend() + && !dcChat.isOutBroadcast() + && !dcChat.isMailingList()) { menu.findItem(R.id.menu_leave).setVisible(true); } } @@ -526,8 +532,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } else if (itemId == R.id.menu_show_map) { WebxdcActivity.openMaps(this, chatId); return true; - } else if (itemId == R.id.menu_show_apps) { - handleProfile(true); + } else if (itemId == R.id.menu_all_media) { + handleAllMedia(); return true; } else if (itemId == R.id.menu_search_up) { handleMenuSearchNext(false); @@ -609,21 +615,29 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } } - private void handleProfile(boolean showApps) { + private void handleProfile() { Intent intent = new Intent(this, ProfileActivity.class); intent.putExtra(ProfileActivity.CHAT_ID_EXTRA, chatId); - intent.putExtra(ProfileActivity.FROM_CHAT, true); - if (showApps) { - intent.putExtra(ProfileActivity.FORCE_TAB_EXTRA, ProfileActivity.TAB_WEBXDC); - } startActivity(intent); - overridePendingTransition(0, 0); + } + + private void handleAllMedia() { + Intent intent = new Intent(this, AllMediaActivity.class); + intent.putExtra(AllMediaActivity.CHAT_ID_EXTRA, chatId); + startActivity(intent); } private void handleLeaveGroup() { + @StringRes int leaveLabel; + if (dcChat.isInBroadcast()) { + leaveLabel = R.string.menu_leave_channel; + } else { + leaveLabel = R.string.menu_leave_group; + } + AlertDialog dialog = new AlertDialog.Builder(this) .setMessage(getString(R.string.ask_leave_group)) - .setPositiveButton(R.string.menu_leave_group, (d, which) -> { + .setPositiveButton(leaveLabel, (d, which) -> { dcContext.removeContactFromChat(chatId, DcContact.DC_CONTACT_ID_SELF); Toast.makeText(this, getString(R.string.done), Toast.LENGTH_SHORT).show(); }) @@ -869,7 +883,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity buttonToggle.getBackground().invalidateSelf(); }); - titleView.setOnClickListener(v -> handleProfile(false)); + titleView.setOnClickListener(v -> handleProfile()); titleView.setOnBackClickedListener(view -> handleReturnToConversationList()); composeText.setOnKeyListener(composeKeyPressedListener); @@ -906,6 +920,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity supportActionBar.setCustomView(R.layout.conversation_title_view); supportActionBar.setDisplayShowCustomEnabled(true); supportActionBar.setDisplayShowTitleEnabled(false); + supportActionBar.setElevation(0); // TODO: use custom toolbar instead Toolbar parent = (Toolbar) supportActionBar.getCustomView().getParent(); parent.setPadding(0,0,0,0); @@ -1601,7 +1616,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } public void initializeContactRequest() { - if (!dcChat.isHalfBlocked()) { + if (!dcChat.isContactRequest()) { messageRequestBottomView.setVisibility(View.GONE); return; } @@ -1614,15 +1629,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity }); - if (dcChat.isProtectionBroken()) { - messageRequestBottomView.setBlockText(R.string.more_info_desktop); - String name = dcContext.getContact(recipient.getDcContact().getId()).getDisplayName(); - messageRequestBottomView.setBlockOnClickListener(v -> DcHelper.showVerificationBrokenDialog(this, name)); - - messageRequestBottomView.setQuestion(getString(R.string.chat_protection_broken, name)); - messageRequestBottomView.setAcceptText(R.string.ok); - - } else if (dcChat.getType() == DcChat.DC_CHAT_TYPE_GROUP) { + if (dcChat.getType() == DcChat.DC_CHAT_TYPE_GROUP) { // We don't support blocking groups yet, so offer to delete it instead messageRequestBottomView.setBlockText(R.string.delete); messageRequestBottomView.setBlockOnClickListener(v -> handleDeleteChat()); diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java index e6daec3b3..a1fb8c28a 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java @@ -32,7 +32,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.TextView; @@ -168,8 +167,8 @@ public class ConversationFragment extends MessageSelectorFragment private void setNoMessageText() { DcChat dcChat = getListAdapter().getChat(); if(dcChat.isMultiUser()){ - if (dcChat.isBroadcast()) { - noMessageTextView.setText(R.string.chat_new_broadcast_hint); + if (dcChat.isInBroadcast() || dcChat.isOutBroadcast()) { + noMessageTextView.setText(R.string.chat_new_channel_hint); } else if (dcChat.isUnpromoted()) { noMessageTextView.setText(R.string.chat_new_group_hint); } @@ -331,8 +330,7 @@ public class ConversationFragment extends MessageSelectorFragment menu.findItem(R.id.menu_context_share).setVisible(messageRecord.hasFile()); boolean canReply = canReplyToMsg(messageRecord); menu.findItem(R.id.menu_context_reply).setVisible(chat.canSend() && canReply); - boolean canEdit = canEditMsg(messageRecord); - menu.findItem(R.id.menu_context_edit).setVisible(chat.canSend() && canEdit); + menu.findItem(R.id.menu_context_edit).setVisible(chat.isEncrypted() && chat.canSend() && canEditMsg(messageRecord)); boolean showReplyPrivately = chat.isMultiUser() && !messageRecord.isOutgoing() && canReply; menu.findItem(R.id.menu_context_reply_privately).setVisible(showReplyPrivately); menu.findItem(R.id.menu_add_to_home_screen).setVisible(messageRecord.getType() == DcMsg.DC_MSG_WEBXDC); @@ -825,7 +823,7 @@ public class ConversationFragment extends MessageSelectorFragment public void onShowFullClicked(DcMsg messageRecord) { Intent intent = new Intent(getActivity(), FullMsgActivity.class); intent.putExtra(FullMsgActivity.MSG_ID_EXTRA, messageRecord.getId()); - intent.putExtra(FullMsgActivity.BLOCK_LOADING_REMOTE, getListAdapter().getChat().isHalfBlocked()); + intent.putExtra(FullMsgActivity.BLOCK_LOADING_REMOTE, getListAdapter().getChat().isContactRequest()); startActivity(intent); getActivity().overridePendingTransition(R.anim.slide_from_right, R.anim.fade_scale_out); } @@ -855,8 +853,6 @@ public class ConversationFragment extends MessageSelectorFragment private class ActionModeCallback implements ActionMode.Callback { - private int statusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = mode.getMenuInflater(); @@ -864,10 +860,6 @@ public class ConversationFragment extends MessageSelectorFragment mode.setTitle("1"); - Window window = getActivity().getWindow(); - statusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); - Util.redMenuItem(menu, R.id.menu_context_delete_message); setCorrectMenuVisibility(menu); ConversationAdaptiveActionsToolbar.adjustMenuActions(menu, 10, requireActivity().getWindow().getDecorView().getMeasuredWidth()); @@ -884,8 +876,6 @@ public class ConversationFragment extends MessageSelectorFragment ((ConversationAdapter)list.getAdapter()).clearSelection(); list.getAdapter().notifyDataSetChanged(); - getActivity().getWindow().setStatusBarColor(statusBarColor); - actionMode = null; hideAddReactionView(); } diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java index a659dca12..0b0902526 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java @@ -109,7 +109,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit // it is not needed to keep all past update messages, however, when deleted, also the strings should be deleted. try { DcContext dcContext = DcHelper.getContext(this); - final String deviceMsgLabel = "update_1_50_0_android"; + final String deviceMsgLabel = "update_2_0_0_android-h"; if (!dcContext.wasDeviceMsgEverAdded(deviceMsgLabel)) { DcMsg msg = null; if (!getIntent().getBooleanExtra(FROM_WELCOME, false)) { @@ -120,7 +120,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit // Util.copy(inputStream, new FileOutputStream(outputFile)); // msg.setFile(outputFile, "image/jpeg"); - msg.setText(getString(R.string.update_1_50_android, "https://get.delta.chat/#changelogs")); + msg.setText(getString(R.string.update_2_0, "https://delta.chat/donate")); } dcContext.addDeviceMsg(deviceMsgLabel, msg); @@ -133,19 +133,6 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit Prefs.setStringPreference(this, Prefs.LAST_DEVICE_MSG_LABEL, deviceMsgLabel); } - // add info about moved "switch profile" option; added 2024-08, can be removed after ~3 months - if (!Prefs.getBooleanPreference(this, "info_about_switch_profile_added", false)) { - final DcAccounts dcAccounts = DcHelper.getAccounts(this); - if (dcAccounts.getAll().length >= 2) { - DcMsg msg = new DcMsg(dcContext, DcMsg.DC_MSG_TEXT); - msg.setText(getString(R.string.update_switch_profile_placement)); - dcContext.addDeviceMsg("info_about_switch_profile", msg); - } - Prefs.setBooleanPreference(this, "info_about_switch_profile_added", true); - } - // /add info - - // remove gmail oauth2 final int serverFlags = dcContext.getConfigInt(CONFIG_SERVER_FLAGS); if ((serverFlags & DcContext.DC_LP_AUTH_OAUTH2)!=0) { @@ -194,6 +181,8 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit refresh(); if (BuildConfig.DEBUG) checkNdkArchitecture(); + + DcHelper.maybeShowMigrationError(this); } /** @@ -447,7 +436,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit onBackPressed(); return true; } else if (itemId == R.id.menu_all_media) { - startActivity(new Intent(this, ProfileActivity.class)); + startActivity(new Intent(this, AllMediaActivity.class)); return true; } diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java index 0d55e3f95..68a29ff78 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java @@ -21,7 +21,9 @@ public class ConversationListArchiveActivity extends PassphraseRequiredActionBar { @Override protected void onCreate(Bundle icicle, boolean ready) { + setContentView(R.layout.activity_conversation_list_archive); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead if (isRelayingMessageContent(this)) { getSupportActionBar().setTitle(isSharing(this) ? R.string.chat_share_with_title : R.string.forward_to); getSupportActionBar().setSubtitle(R.string.chat_archived_label); @@ -31,7 +33,7 @@ public class ConversationListArchiveActivity extends PassphraseRequiredActionBar Bundle bundle = new Bundle(); bundle.putBoolean(ConversationListFragment.ARCHIVE, true); - initFragment(android.R.id.content, new ConversationListFragment(), bundle); + initFragment(R.id.fragment, new ConversationListFragment(), bundle); } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListItem.java b/src/main/java/org/thoughtcrime/securesms/ConversationListItem.java index 360564c9e..ae32e49ac 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListItem.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListItem.java @@ -35,7 +35,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.amulyakhare.textdrawable.TextDrawable; -import com.annimon.stream.Stream; import com.b44t.messenger.DcChat; import com.b44t.messenger.DcContact; import com.b44t.messenger.DcContext; @@ -55,7 +54,6 @@ import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import java.util.Collections; -import java.util.List; import java.util.Set; public class ConversationListItem extends RelativeLayout @@ -134,6 +132,7 @@ public class ConversationListItem extends RelativeLayout this.fromView.setText(recipient, state!=DcMsg.DC_STATE_IN_FRESH); } + subjectView.setVisibility(chatId == DcChat.DC_CHAT_ID_ARCHIVED_LINK? GONE : VISIBLE); this.subjectView.setText(thread.getDisplayBody()); this.subjectView.setTypeface(state==DcMsg.DC_STATE_IN_FRESH ? BOLD_TYPEFACE : LIGHT_TYPEFACE); this.subjectView.setTextColor(state==DcMsg.DC_STATE_IN_FRESH ? ThemeUtil.getThemedColor(getContext(), R.attr.conversation_list_item_unread_color) @@ -164,7 +163,7 @@ public class ConversationListItem extends RelativeLayout fromView.setCompoundDrawablesWithIntrinsicBounds( thread.isMuted()? R.drawable.ic_volume_off_grey600_18dp : 0, 0, - thread.isProtected()? R.drawable.ic_verified : 0, + 0, 0); } @@ -177,7 +176,7 @@ public class ConversationListItem extends RelativeLayout fromView.setText(getHighlightedSpan(contact.getDisplayName(), highlightSubstring)); fromView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); - subjectView.setText(getHighlightedSpan(contact.getAddr(), highlightSubstring)); + subjectView.setVisibility(GONE); dateView.setText(""); dateView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); archivedBadgeView.setVisibility(GONE); @@ -201,6 +200,7 @@ public class ConversationListItem extends RelativeLayout fromView.setText(recipient, true); fromView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); + subjectView.setVisibility(VISIBLE); subjectView.setText(getHighlightedSpan(messageResult.getSummarytext(512), highlightSubstring)); long timestamp = messageResult.getTimestamp(); @@ -316,15 +316,12 @@ public class ConversationListItem extends RelativeLayout String normalizedValue = value.toLowerCase(Util.getLocale()); String normalizedTest = highlight.toLowerCase(Util.getLocale()); - List testTokens; - try (Stream stream = Stream.of(normalizedTest.split(" "))) { - testTokens = stream.filter(s -> !s.trim().isEmpty()).toList(); - } Spannable spanned = new SpannableString(value); int searchStartIndex = 0; - for (String token : testTokens) { + for (String token : normalizedTest.split(" ")) { + if (token.trim().isEmpty()) continue; if (searchStartIndex >= spanned.length()) { break; } diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationTitleView.java b/src/main/java/org/thoughtcrime/securesms/ConversationTitleView.java index 5fb2f14b9..3a46c7c74 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationTitleView.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationTitleView.java @@ -68,17 +68,6 @@ public class ConversationTitleView extends RelativeLayout { title.setText(dcChat.getName()); String subtitleStr = null; - // set icons etc. - int imgLeft = 0; - int imgRight = 0; - - if (dcChat.isMuted()) { - imgLeft = R.drawable.ic_volume_off_white_18dp; - } - if (dcChat.isProtected()) { - imgRight = R.drawable.ic_verified; - } - boolean isOnline = false; int[] chatContacts = dcContext.getChatContacts(chatId); if (dcChat.isMailingList()) { @@ -87,7 +76,9 @@ public class ConversationTitleView extends RelativeLayout { } else { subtitleStr = context.getString(R.string.mailing_list); } - } else if (dcChat.isBroadcast()) { + } else if (dcChat.isInBroadcast()) { + subtitleStr = context.getString(R.string.channel); + } else if (dcChat.isOutBroadcast()) { if (!profileView) { subtitleStr = context.getResources().getQuantityString(R.plurals.n_recipients, chatContacts.length, chatContacts.length); } @@ -106,7 +97,7 @@ public class ConversationTitleView extends RelativeLayout { DcContact dcContact = dcContext.getContact(chatContacts[0]); if (!profileView && dcContact.isBot()) { subtitleStr = context.getString(R.string.bot); - } else if (profileView) { + } else if (profileView || !dcChat.isEncrypted()) { subtitleStr = dcContact.getAddr(); } isOnline = dcContact.wasSeenRecently(); @@ -115,7 +106,8 @@ public class ConversationTitleView extends RelativeLayout { avatar.setAvatar(glideRequests, new Recipient(getContext(), dcChat), false); avatar.setSeenRecently(isOnline); - title.setCompoundDrawablesWithIntrinsicBounds(imgLeft, 0, imgRight, 0); + int imgLeft = dcChat.isMuted()? R.drawable.ic_volume_off_white_18dp : 0; + title.setCompoundDrawablesWithIntrinsicBounds(imgLeft, 0, 0, 0); if (!TextUtils.isEmpty(subtitleStr)) { subtitle.setText(subtitleStr); subtitle.setVisibility(View.VISIBLE); @@ -133,13 +125,7 @@ public class ConversationTitleView extends RelativeLayout { avatar.setAvatar(glideRequests, new Recipient(getContext(), contact), false); avatar.setSeenRecently(contact.wasSeenRecently()); - int imgRight = 0; - if (contact.isVerified()) { - imgRight = R.drawable.ic_verified; - } - title.setText(contact.getDisplayName()); - title.setCompoundDrawablesWithIntrinsicBounds(0, 0, imgRight, 0); subtitle.setText(contact.getAddr()); subtitle.setVisibility(View.VISIBLE); } @@ -157,8 +143,4 @@ public class ConversationTitleView extends RelativeLayout { public void setOnBackClickedListener(@Nullable OnClickListener listener) { this.back.setOnClickListener(listener); } - - public void registerForContextMenu(Activity activity) { - activity.registerForContextMenu(content); - } } diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationUpdateItem.java b/src/main/java/org/thoughtcrime/securesms/ConversationUpdateItem.java index afe25dc8b..4e484a368 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationUpdateItem.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationUpdateItem.java @@ -26,7 +26,6 @@ public class ConversationUpdateItem extends BaseConversationItem { private DeliveryStatusView deliveryStatusView; private AppCompatImageView appIcon; - private AppCompatImageView verifiedIcon; private int textColor; public ConversationUpdateItem(Context context) { @@ -46,7 +45,6 @@ public class ConversationUpdateItem extends BaseConversationItem bodyText = findViewById(R.id.conversation_update_body); deliveryStatusView = new DeliveryStatusView(findViewById(R.id.delivery_indicator)); appIcon = findViewById(R.id.app_icon); - verifiedIcon = findViewById(R.id.verified_icon); bodyText.setOnLongClickListener(passthroughClickListener); @@ -113,16 +111,6 @@ public class ConversationUpdateItem extends BaseConversationItem appIcon.setVisibility(GONE); } - if (infoType == DcMsg.DC_INFO_PROTECTION_ENABLED) { - verifiedIcon.setVisibility(VISIBLE); - verifiedIcon.setImageResource(R.drawable.ic_verified); - } else if (infoType == DcMsg.DC_INFO_PROTECTION_DISABLED) { - verifiedIcon.setVisibility(VISIBLE); - verifiedIcon.setImageResource(R.drawable.ic_verified_broken); - } else { - verifiedIcon.setVisibility(GONE); - } - bodyText.setText(messageRecord.getDisplayBody()); bodyText.setVisibility(VISIBLE); diff --git a/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java b/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java index 18c6b7e83..3f018f935 100644 --- a/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java @@ -35,7 +35,6 @@ import org.thoughtcrime.securesms.mms.AttachmentManager; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.profiles.AvatarHelper; -import org.thoughtcrime.securesms.profiles.ProfileMediaConstraints; import org.thoughtcrime.securesms.scribbles.ScribbleActivity; import org.thoughtcrime.securesms.util.Prefs; import org.thoughtcrime.securesms.util.ViewUtil; @@ -77,6 +76,7 @@ public class CreateProfileActivity extends BaseActionBarActivity { getSupportActionBar().setTitle(R.string.pref_profile_info_headline); getSupportActionBar().setDisplayHomeAsUpEnabled(!this.fromWelcome); getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead attachmentManager = new AttachmentManager(this, () -> {}); avatarChanged = false; @@ -144,14 +144,13 @@ public class CreateProfileActivity extends BaseActionBarActivity { } private void setAvatarView(Uri output) { - final ProfileMediaConstraints constraints = new ProfileMediaConstraints(); GlideApp.with(this) .asBitmap() .load(output) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .centerCrop() - .override(constraints.getImageMaxWidth(this), constraints.getImageMaxHeight(this)) + .override(AvatarHelper.AVATAR_SIZE, AvatarHelper.AVATAR_SIZE) .into(new SimpleTarget() { @Override public void onResourceReady(@NonNull Bitmap resource, Transition transition) { diff --git a/src/main/java/org/thoughtcrime/securesms/EphemeralMessagesDialog.java b/src/main/java/org/thoughtcrime/securesms/EphemeralMessagesDialog.java index 12b09669d..ecc0881cf 100644 --- a/src/main/java/org/thoughtcrime/securesms/EphemeralMessagesDialog.java +++ b/src/main/java/org/thoughtcrime/securesms/EphemeralMessagesDialog.java @@ -67,6 +67,7 @@ public class EphemeralMessagesDialog { case 5: burnAfter = TimeUnit.DAYS.toSeconds(1); break; case 6: burnAfter = TimeUnit.DAYS.toSeconds(7); break; case 7: burnAfter = TimeUnit.DAYS.toSeconds(35); break; + case 8: burnAfter = TimeUnit.DAYS.toSeconds(365); break; default: burnAfter = 0; break; } listener.onTimeSelected(burnAfter); @@ -103,7 +104,10 @@ public class EphemeralMessagesDialog { if (timespan < TimeUnit.DAYS.toSeconds(35)) { return 6; // 1 week } - return 7; // 5 weeks + if (timespan < TimeUnit.DAYS.toSeconds(365)) { + return 7; // 5 weeks + } + return 8; // 1 year } } diff --git a/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java b/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java index 7d6479947..f85a525cd 100644 --- a/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java @@ -23,6 +23,7 @@ import androidx.loader.app.LoaderManager; import com.b44t.messenger.DcChat; import com.b44t.messenger.DcContact; import com.b44t.messenger.DcContext; +import com.b44t.messenger.rpc.RpcException; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; @@ -48,17 +49,18 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity { public static final String EDIT_GROUP_CHAT_ID = "edit_group_chat_id"; - public static final String CREATE_BROADCAST = "group_create_broadcast"; + public static final String CREATE_BROADCAST = "create_broadcast"; + public static final String UNENCRYPTED = "unencrypted"; public static final String CLONE_CHAT_EXTRA = "clone_chat"; private static final int PICK_CONTACT = 1; - public static final int AVATAR_SIZE = 210; private static final int REQUEST_CODE_AVATAR = 2759; private DcContext dcContext; private boolean verified; - private boolean broadcast; + private boolean unencrypted; + private boolean broadcast; private EditText groupName; private ListView lv; private ImageView avatar; @@ -75,8 +77,10 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity setContentView(R.layout.group_create_activity); verified = false; broadcast = getIntent().getBooleanExtra(CREATE_BROADCAST, false); + unencrypted = getIntent().getBooleanExtra(UNENCRYPTED, false); Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead groupChatId = getIntent().getIntExtra(EDIT_GROUP_CHAT_ID, 0); attachmentManager = new AttachmentManager(this, () -> {}); @@ -88,12 +92,15 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity isEdit = true; DcChat dcChat = dcContext.getChat(groupChatId); verified = dcChat.isProtected(); - broadcast = dcChat.isBroadcast(); + broadcast = dcChat.isOutBroadcast(); + unencrypted = !dcChat.isEncrypted(); } int chatId = getIntent().getIntExtra(CLONE_CHAT_EXTRA, 0); if (chatId != 0) { - broadcast = dcContext.getChat(chatId).isBroadcast(); + DcChat dcChat = dcContext.getChat(chatId); + broadcast = dcChat.isOutBroadcast(); + unencrypted = !dcChat.isEncrypted(); } initializeResources(); @@ -120,7 +127,10 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity title = getString(R.string.global_menu_edit_desktop); } else if(broadcast) { - title = getString(R.string.new_broadcast_list); + title = getString(R.string.new_channel); + } + else if(unencrypted) { + title = getString(R.string.new_email); } else { title = getString(R.string.menu_new_group); @@ -136,7 +146,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity initializeAvatarView(); - SelectedContactsAdapter adapter = new SelectedContactsAdapter(this, GlideApp.with(this), broadcast); + SelectedContactsAdapter adapter = new SelectedContactsAdapter(this, GlideApp.with(this), broadcast, unencrypted); adapter.setItemClickListener(this); lv.setAdapter(adapter); @@ -160,9 +170,12 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity } if (broadcast) { + groupName.setHint(R.string.channel_name); + chatHints.setVisibility(View.VISIBLE); + } else if (unencrypted) { avatar.setVisibility(View.GONE); - groupName.setHint(R.string.broadcast_list_name); - chatHints.setVisibility(isEdit()? View.GONE : View.VISIBLE); + groupName.setHint(R.string.subject); + chatHints.setVisibility(View.GONE); } else { chatHints.setVisibility(View.GONE); } @@ -219,7 +232,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity if (groupChatId != 0) { updateGroup(groupName); } else { - verified = !broadcast && allMembersVerified(); + verified = !unencrypted && !broadcast && allMembersVerified(); createGroup(groupName); } @@ -244,6 +257,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity if (contactId == DcContact.DC_CONTACT_ID_ADD_MEMBER) { Intent intent = new Intent(this, ContactMultiSelectionActivity.class); intent.putExtra(ContactSelectionListFragment.SELECT_VERIFIED_EXTRA, verified); + intent.putExtra(ContactSelectionListFragment.SELECT_UNENCRYPTED_EXTRA, unencrypted); ArrayList preselectedContacts = new ArrayList<>(getAdapter().getContacts()); intent.putExtra(ContactSelectionListFragment.PRESELECTED_CONTACTS, preselectedContacts); startActivityForResult(intent, PICK_CONTACT); @@ -257,8 +271,19 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity private void createGroup(String groupName) { if (broadcast) { - groupChatId = dcContext.createBroadcastList(); - dcContext.setChatName(groupChatId, groupName); + try { + groupChatId = DcHelper.getRpc(this).createBroadcast(dcContext.getAccountId(), groupName); + } catch (RpcException e) { + e.printStackTrace(); + return; + } + } else if (unencrypted) { + try { + groupChatId = DcHelper.getRpc(this).createGroupChatUnencrypted(dcContext.getAccountId(), groupName); + } catch (RpcException e) { + e.printStackTrace(); + return; + } } else { groupChatId = dcContext.createGroupChat(verified, groupName); } @@ -351,7 +376,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .centerCrop() - .override(AVATAR_SIZE, AVATAR_SIZE) + .override(AvatarHelper.AVATAR_SIZE, AvatarHelper.AVATAR_SIZE) .into(new CustomTarget() { @Override public void onResourceReady(@NonNull Bitmap resource, Transition transition) { diff --git a/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java b/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java index bc264b516..28b5257f2 100644 --- a/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java @@ -49,7 +49,6 @@ import org.thoughtcrime.securesms.mms.AttachmentManager; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.profiles.AvatarHelper; -import org.thoughtcrime.securesms.profiles.ProfileMediaConstraints; import org.thoughtcrime.securesms.proxy.ProxySettingsActivity; import org.thoughtcrime.securesms.qr.RegistrationQrActivity; import org.thoughtcrime.securesms.scribbles.ScribbleActivity; @@ -99,6 +98,7 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements Objects.requireNonNull(getSupportActionBar()).setTitle(R.string.onboarding_create_instant_account); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead boolean fromWelcome = getIntent().getBooleanExtra(FROM_WELCOME, false); if (DcHelper.getContext(this).isConfigured() == 1) { @@ -284,14 +284,13 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements } private void setAvatarView(Uri output) { - final ProfileMediaConstraints constraints = new ProfileMediaConstraints(); GlideApp.with(this) .asBitmap() .load(output) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .centerCrop() - .override(constraints.getImageMaxWidth(this), constraints.getImageMaxHeight(this)) + .override(AvatarHelper.AVATAR_SIZE, AvatarHelper.AVATAR_SIZE) .into(new CustomTarget() { @Override public void onResourceReady(@NonNull Bitmap resource, Transition transition) { diff --git a/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java b/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java index 0f6ff0b6c..4a08e35a9 100644 --- a/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java @@ -36,6 +36,7 @@ public class LogViewActivity extends BaseActionBarActivity { transaction.commit(); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java b/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java index b603d2eff..c8d46085a 100644 --- a/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java @@ -262,16 +262,16 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity finish(); } else if(conversationRecipient.getAddress().isDcChat()) { - Intent intent = new Intent(this, ProfileActivity.class); - intent.putExtra(ProfileActivity.CHAT_ID_EXTRA, conversationRecipient.getAddress().getDcChatId()); - intent.putExtra(ProfileActivity.FORCE_TAB_EXTRA, ProfileActivity.TAB_GALLERY); + Intent intent = new Intent(this, AllMediaActivity.class); + intent.putExtra(AllMediaActivity.CHAT_ID_EXTRA, conversationRecipient.getAddress().getDcChatId()); + intent.putExtra(AllMediaActivity.FORCE_GALLERY, true); startActivity(intent); finish(); } else if(conversationRecipient.getAddress().isDcContact()) { - Intent intent = new Intent(this, ProfileActivity.class); - intent.putExtra(ProfileActivity.CONTACT_ID_EXTRA, conversationRecipient.getAddress().getDcContactId()); - intent.putExtra(ProfileActivity.FORCE_TAB_EXTRA, ProfileActivity.TAB_GALLERY); + Intent intent = new Intent(this, AllMediaActivity.class); + intent.putExtra(AllMediaActivity.CONTACT_ID_EXTRA, conversationRecipient.getAddress().getDcContactId()); + intent.putExtra(AllMediaActivity.FORCE_GALLERY, true); startActivity(intent); finish(); } @@ -359,7 +359,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity finish(); }); - if(dcChat.canSend() && !dcChat.isSelfTalk() && dcMsg.isOutgoing()) { + if(dcChat.isEncrypted() && dcChat.canSend() && !dcChat.isSelfTalk() && dcMsg.isOutgoing()) { builder.setNegativeButton(R.string.delete_for_everyone, (d, which) -> { Util.runOnAnyBackgroundThread(() -> dcContext.sendDeleteRequest(messageIds)); finish(); diff --git a/src/main/java/org/thoughtcrime/securesms/MessageSelectorFragment.java b/src/main/java/org/thoughtcrime/securesms/MessageSelectorFragment.java index e8c1bd57b..d8513f89f 100644 --- a/src/main/java/org/thoughtcrime/securesms/MessageSelectorFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/MessageSelectorFragment.java @@ -64,7 +64,7 @@ public abstract class MessageSelectorFragment protected void handleDeleteMessages(int chatId, final int[] messageIds) { DcChat dcChat = dcContext.getChat(chatId); boolean canDeleteForAll = true; - if (dcChat.canSend() && !dcChat.isSelfTalk()) { + if (dcChat.isEncrypted() && dcChat.canSend() && !dcChat.isSelfTalk()) { for(int msgId : messageIds) { DcMsg msg = dcContext.getMsg(msgId); if (!msg.isOutgoing() || msg.isInfo()) { @@ -86,7 +86,7 @@ public abstract class MessageSelectorFragment .setCancelable(true) .setNeutralButton(android.R.string.cancel, null) .setPositiveButton(positiveBtnLabel, (d, which) -> { - dcContext.deleteMsgs(messageIds); + Util.runOnAnyBackgroundThread(() -> dcContext.deleteMsgs(messageIds)); if (actionMode != null) actionMode.finish(); }); diff --git a/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java b/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java index b4f7dce4a..d16a986fe 100644 --- a/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/NewConversationActivity.java @@ -102,7 +102,11 @@ public class NewConversationActivity extends ContactSelectionActivity { public void onContactSelected(int contactId) { if(contactId == DcContact.DC_CONTACT_ID_NEW_GROUP) { startActivity(new Intent(this, GroupCreateActivity.class)); - } else if(contactId == DcContact.DC_CONTACT_ID_NEW_BROADCAST_LIST) { + } else if(contactId == DcContact.DC_CONTACT_ID_NEW_UNENCRYPTED_GROUP) { + Intent intent = new Intent(this, GroupCreateActivity.class); + intent.putExtra(GroupCreateActivity.UNENCRYPTED, true); + startActivity(intent); + } else if(contactId == DcContact.DC_CONTACT_ID_NEW_BROADCAST) { Intent intent = new Intent(this, GroupCreateActivity.class); intent.putExtra(GroupCreateActivity.CREATE_BROADCAST, true); startActivity(intent); diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java b/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java index 50a3ddf11..42a419143 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java @@ -11,19 +11,13 @@ import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup; import android.widget.EditText; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; -import androidx.appcompat.view.ActionMode; import androidx.appcompat.widget.Toolbar; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentStatePagerAdapter; -import androidx.viewpager.widget.ViewPager; import com.b44t.messenger.DcChat; import com.b44t.messenger.DcContact; @@ -31,11 +25,9 @@ import com.b44t.messenger.DcContext; import com.b44t.messenger.DcEvent; import com.b44t.messenger.rpc.Rpc; import com.b44t.messenger.rpc.RpcException; -import com.google.android.material.tabs.TabLayout; import org.thoughtcrime.securesms.connect.DcEventCenter; import org.thoughtcrime.securesms.connect.DcHelper; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.Prefs; import org.thoughtcrime.securesms.util.RelayUtil; @@ -43,7 +35,6 @@ import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import java.io.File; -import java.util.ArrayList; public class ProfileActivity extends PassphraseRequiredActionBarActivity implements DcEventCenter.DcEventDelegate @@ -51,16 +42,6 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity public static final String CHAT_ID_EXTRA = "chat_id"; public static final String CONTACT_ID_EXTRA = "contact_id"; - public static final String FORCE_TAB_EXTRA = "force_tab"; - public static final String FROM_CHAT = "from_chat"; - - public static final int TAB_SETTINGS = 10; - public static final int TAB_GALLERY = 20; - public static final int TAB_AUDIO = 25; - public static final int TAB_DOCS = 30; - public static final int TAB_WEBXDC = 35; - public static final int TAB_LINKS = 40; - public static final int TAB_MAP = 50; private static final int REQUEST_CODE_PICK_RINGTONE = 1; @@ -70,15 +51,11 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity private boolean chatIsMultiUser; private boolean chatIsDeviceTalk; private boolean chatIsMailingList; - private boolean chatIsBroadcast; + private boolean chatIsOutBroadcast; + private boolean chatIsInBroadcast; private int contactId; - private boolean fromChat; - - private final ArrayList tabs = new ArrayList<>(); - private Toolbar toolbar; - private ConversationTitleView titleView; - private TabLayout tabLayout; - private ViewPager viewPager; + private boolean contactIsBot; + private Toolbar toolbar; @Override protected void onPreCreate() { @@ -97,38 +74,27 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity setSupportActionBar(this.toolbar); ActionBar supportActionBar = getSupportActionBar(); if (supportActionBar != null) { - if (isGlobalProfile()) { - supportActionBar.setDisplayHomeAsUpEnabled(true); - supportActionBar.setHomeActionContentDescription(getString(R.string.back)); - } else { - supportActionBar.setDisplayHomeAsUpEnabled(false); - supportActionBar.setCustomView(R.layout.conversation_title_view); - supportActionBar.setDisplayShowCustomEnabled(true); - supportActionBar.setDisplayShowTitleEnabled(false); - Toolbar parent = (Toolbar) supportActionBar.getCustomView().getParent(); - parent.setPadding(0,0,0,0); - parent.setContentInsetsAbsolute(0,0); - - titleView = (ConversationTitleView) supportActionBar.getCustomView(); - titleView.setOnBackClickedListener(view -> onBackPressed()); - titleView.setOnClickListener(view -> onEnlargeAvatar()); - if (isContactProfile() && !isSelfProfile() && !chatIsDeviceTalk) { - titleView.registerForContextMenu(this); - } + String title = getString(R.string.profile); + if (chatIsMailingList) { + title = getString(R.string.mailing_list); + } else if (chatIsOutBroadcast || chatIsInBroadcast) { + title = getString(R.string.channel); + } else if (chatIsMultiUser) { + title = getString(R.string.tab_group); + } else if (contactIsBot) { + title = getString(R.string.bot); + } else if (!chatIsDeviceTalk && !isSelfProfile()) { + title = getString(R.string.tab_contact); } + + supportActionBar.setDisplayHomeAsUpEnabled(true); + supportActionBar.setTitle(title); } - updateToolbar(); - - this.tabLayout.setupWithViewPager(viewPager); - this.viewPager.setAdapter(new ProfilePagerAdapter(getSupportFragmentManager())); - int forceTab = getIntent().getIntExtra(FORCE_TAB_EXTRA, -1); - if (forceTab != -1) { - int forceIndex = tabs.indexOf(forceTab); - if (forceIndex != -1) { - this.viewPager.setCurrentItem(forceIndex); - } - } + Bundle args = new Bundle(); + args.putInt(ProfileFragment.CHAT_ID_EXTRA, (chatId == 0) ? -1 : chatId); + args.putInt(ProfileFragment.CONTACT_ID_EXTRA, (contactId == 0) ? -1 : contactId); + initFragment(R.id.fragment_container, new ProfileFragment(), args); DcEventCenter eventCenter = DcHelper.getEventCenter(this); eventCenter.addObserver(DcContext.DC_EVENT_CHAT_MODIFIED, this); @@ -137,22 +103,25 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity @Override public boolean onCreateOptionsMenu(Menu menu) { - if (!isSelfProfile() && !isGlobalProfile()) { + if (!isSelfProfile()) { getMenuInflater().inflate(R.menu.profile_common, menu); boolean canReceive = true; if (chatId != 0) { + DcChat dcChat = dcContext.getChat(chatId); menu.findItem(R.id.menu_clone).setVisible(chatIsMultiUser && !chatIsMailingList); if (chatIsDeviceTalk) { menu.findItem(R.id.edit_name).setVisible(false); menu.findItem(R.id.show_encr_info).setVisible(false); menu.findItem(R.id.share).setVisible(false); } else if (chatIsMultiUser) { - if (chatIsBroadcast) { + menu.findItem(R.id.edit_name).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); + if (chatIsOutBroadcast) { canReceive = false; } else { - DcChat dcChat = dcContext.getChat(chatId); - if (!chatIsMailingList && !dcChat.canSend()) { + if (!dcChat.isEncrypted() + || !dcChat.canSend() + || chatIsMailingList) { menu.findItem(R.id.edit_name).setVisible(false); } } @@ -205,21 +174,6 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity getMenuInflater().inflate(R.menu.profile_title_context, menu); } - boolean backPressed = false; - @Override - public void onBackPressed() { - backPressed = true; - super.onBackPressed(); - } - - @Override - protected void onPause() { - super.onPause(); - if (backPressed && fromChat) { - overridePendingTransition(0, 0); - } - } - @Override public void onDestroy() { DcHelper.getEventCenter(this).removeObservers(this); @@ -228,65 +182,38 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity @Override public void handleEvent(@NonNull DcEvent event) { - updateToolbar(); } private void initializeResources() { chatId = getIntent().getIntExtra(CHAT_ID_EXTRA, 0); contactId = getIntent().getIntExtra(CONTACT_ID_EXTRA, 0); + contactIsBot = false; chatIsMultiUser = false; chatIsDeviceTalk = false; chatIsMailingList= false; - chatIsBroadcast = false; - fromChat = getIntent().getBooleanExtra(FROM_CHAT, false); + chatIsInBroadcast = false; + chatIsOutBroadcast = false; if (contactId!=0) { + DcContact dcContact = dcContext.getContact(contactId); chatId = dcContext.getChatIdByContactId(contactId); + contactIsBot = dcContact.isBot(); } - else if(chatId!=0) { + + if(chatId!=0) { DcChat dcChat = dcContext.getChat(chatId); chatIsMultiUser = dcChat.isMultiUser(); chatIsDeviceTalk = dcChat.isDeviceTalk(); chatIsMailingList = dcChat.isMailingList(); - chatIsBroadcast = dcChat.isBroadcast(); + chatIsInBroadcast = dcChat.isInBroadcast(); + chatIsOutBroadcast = dcChat.isOutBroadcast(); if(!chatIsMultiUser) { final int[] members = dcContext.getChatContacts(chatId); contactId = members.length>=1? members[0] : 0; } } - if(!isGlobalProfile() && !isSelfProfile() && !chatIsMailingList) { - tabs.add(TAB_SETTINGS); - } - tabs.add(TAB_GALLERY); - tabs.add(TAB_AUDIO); - tabs.add(TAB_DOCS); - tabs.add(TAB_WEBXDC); - //tabs.add(TAB_LINKS); - //if(Prefs.isLocationStreamingEnabled(this)) { - // tabs.add(TAB_MAP); - //} - - this.viewPager = ViewUtil.findById(this, R.id.pager); this.toolbar = ViewUtil.findById(this, R.id.toolbar); - this.tabLayout = ViewUtil.findById(this, R.id.tab_layout); - } - - private void updateToolbar() { - if (isGlobalProfile()){ - getSupportActionBar().setTitle(R.string.menu_all_media); - } - else if (chatId > 0) { - DcChat dcChat = dcContext.getChat(chatId); - titleView.setTitle(GlideApp.with(this), dcChat, true); - } - else if (isContactProfile()){ - titleView.setTitle(GlideApp.with(this), dcContext.getContact(contactId)); - } - } - - private boolean isGlobalProfile() { - return contactId==0 && chatId==0; } private boolean isContactProfile() { @@ -298,124 +225,6 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity return isContactProfile() && contactId==DcContact.DC_CONTACT_ID_SELF; } - private class ProfilePagerAdapter extends FragmentStatePagerAdapter { - private Object currentFragment = null; - - ProfilePagerAdapter(FragmentManager fragmentManager) { - super(fragmentManager); - } - - @Override - public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) { - super.setPrimaryItem(container, position, object); - if (currentFragment != null && currentFragment != object) { - ActionMode action = null; - if (currentFragment instanceof MessageSelectorFragment) { - action = ((MessageSelectorFragment) currentFragment).getActionMode(); - } else if (currentFragment instanceof ProfileSettingsFragment) { - action = ((ProfileSettingsFragment) currentFragment).getActionMode(); - } - if (action != null) { - action.finish(); - } - } - currentFragment = object; - } - - @NonNull - @Override - public Fragment getItem(int position) { - int tabId = tabs.get(position); - Fragment fragment; - Bundle args = new Bundle(); - - switch(tabId) { - case TAB_SETTINGS: - fragment = new ProfileSettingsFragment(); - args.putInt(ProfileSettingsFragment.CHAT_ID_EXTRA, (chatId==0&&!isGlobalProfile())? -1 : chatId); - args.putInt(ProfileSettingsFragment.CONTACT_ID_EXTRA, (contactId==0&&!isGlobalProfile())? -1 : contactId); - break; - - case TAB_GALLERY: - fragment = new ProfileGalleryFragment(); - args.putInt(ProfileGalleryFragment.CHAT_ID_EXTRA, (chatId==0&&!isGlobalProfile())? -1 : chatId); - break; - - case TAB_AUDIO: - fragment = new ProfileDocumentsFragment(); - args.putInt(ProfileDocumentsFragment.CHAT_ID_EXTRA, (chatId==0&&!isGlobalProfile())? -1 : chatId); - args.putBoolean(ProfileDocumentsFragment.SHOW_AUDIO_EXTRA, true); - break; - - case TAB_WEBXDC: - fragment = new ProfileDocumentsFragment(); - args.putInt(ProfileDocumentsFragment.CHAT_ID_EXTRA, (chatId==0&&!isGlobalProfile())? -1 : chatId); - args.putBoolean(ProfileDocumentsFragment.SHOW_WEBXDC_EXTRA, true); - break; - - default: - fragment = new ProfileDocumentsFragment(); - args.putInt(ProfileGalleryFragment.CHAT_ID_EXTRA, (chatId==0&&!isGlobalProfile())? -1 : chatId); - break; - } - - fragment.setArguments(args); - return fragment; - } - - @Override - public int getCount() { - return tabs.size(); - } - - @Override - public CharSequence getPageTitle(int position) { - int tabId = tabs.get(position); - switch(tabId) { - case TAB_SETTINGS: - if (chatIsDeviceTalk) { - return getString(R.string.profile); - } else if(isContactProfile()) { - if (dcContext.getContact(contactId).isBot()) { - return getString(R.string.bot); - } else { - return getString(R.string.tab_contact); - } - } - else if (chatIsBroadcast) { - return getString(R.string.broadcast_list); - } - else if (chatIsMailingList) { - return getString(R.string.mailing_list); - } else { - return getString(R.string.tab_group); - } - - case TAB_GALLERY: - return getString(R.string.tab_gallery); - - case TAB_AUDIO: - return getString(R.string.audio); - - case TAB_DOCS: - return getString(R.string.files); - - case TAB_WEBXDC: - return getString(R.string.webxdc_apps); - - case TAB_LINKS: - return getString(R.string.tab_links); - - case TAB_MAP: - return getString(R.string.tab_map); - - default: - throw new AssertionError(); - } - } - } - - // handle events // ========================================================================= @@ -425,7 +234,6 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity int itemId = item.getItemId(); if (itemId == android.R.id.home) { - backPressed = true; finish(); return true; } else if (itemId == R.id.menu_mute_notifications) { @@ -503,14 +311,16 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity .show(); } - private void onEnlargeAvatar() { + public void onEnlargeAvatar() { String profileImagePath; String title; Uri profileImageUri; + boolean enlargeAvatar = true; if(chatId!=0) { DcChat dcChat = dcContext.getChat(chatId); profileImagePath = dcChat.getProfileImage(); title = dcChat.getName(); + enlargeAvatar = dcChat.isEncrypted() && !dcChat.isSelfTalk() && !dcChat.isDeviceTalk(); } else { DcContact dcContact = dcContext.getContact(contactId); profileImagePath = dcContact.getProfileImage(); @@ -519,16 +329,19 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity File file = new File(profileImagePath); - if (file.exists()) { + if (enlargeAvatar && file.exists()) { profileImageUri = Uri.fromFile(file); String type = "image/" + profileImagePath.substring(profileImagePath.lastIndexOf(".") + 1); Intent intent = new Intent(this, MediaPreviewActivity.class); intent.setDataAndType(profileImageUri, type); intent.putExtra(MediaPreviewActivity.ACTIVITY_TITLE_EXTRA, title); - intent.putExtra(MediaPreviewActivity.EDIT_AVATAR_CHAT_ID, chatIsMultiUser ? chatId : 0); // shows edit-button, might be 0 for a contact-profile + intent.putExtra( // show edit-button, if the user is allowed to edit the name/avatar + MediaPreviewActivity.EDIT_AVATAR_CHAT_ID, + (chatIsMultiUser && !chatIsInBroadcast && !chatIsMailingList) ? chatId : 0 + ); startActivity(intent); - } else { + } else if (chatIsMultiUser){ onEditName(); } } @@ -577,7 +390,12 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity private void onShare() { Intent composeIntent = new Intent(); - RelayUtil.setSharedContactId(composeIntent, contactId); + DcContact dcContact = dcContext.getContact(contactId); + if (dcContact.isKeyContact()) { + RelayUtil.setSharedContactId(composeIntent, contactId); + } else { + RelayUtil.setSharedText(composeIntent, dcContact.getAddr()); + } ConversationListRelayingActivity.start(this, composeIntent); } diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileAdapter.java b/src/main/java/org/thoughtcrime/securesms/ProfileAdapter.java new file mode 100644 index 000000000..fc9946eae --- /dev/null +++ b/src/main/java/org/thoughtcrime/securesms/ProfileAdapter.java @@ -0,0 +1,379 @@ +package org.thoughtcrime.securesms; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.RecyclerView; + +import com.b44t.messenger.DcChat; +import com.b44t.messenger.DcChatlist; +import com.b44t.messenger.DcContact; +import com.b44t.messenger.DcContext; +import com.b44t.messenger.DcLot; +import com.b44t.messenger.DcMsg; + +import org.thoughtcrime.securesms.connect.DcHelper; +import org.thoughtcrime.securesms.contacts.ContactSelectionListItem; +import org.thoughtcrime.securesms.mms.GlideRequests; +import org.thoughtcrime.securesms.util.DateUtils; +import org.thoughtcrime.securesms.util.Util; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +public class ProfileAdapter extends RecyclerView.Adapter +{ + public static final int ITEM_AVATAR = 10; + public static final int ITEM_DIVIDER = 20; + public static final int ITEM_SIGNATURE = 25; + public static final int ITEM_ALL_MEDIA_BUTTON = 30; + public static final int ITEM_SEND_MESSAGE_BUTTON = 35; + public static final int ITEM_LAST_SEEN = 40; + public static final int ITEM_INTRODUCED_BY = 45; + public static final int ITEM_ADDRESS = 50; + public static final int ITEM_HEADER = 53; + public static final int ITEM_MEMBERS = 55; + public static final int ITEM_SHARED_CHATS = 60; + + private final @NonNull Context context; + private final @NonNull Fragment fragment; + private final @NonNull DcContext dcContext; + private @Nullable DcChat dcChat; + private @Nullable DcContact dcContact; + + private final @NonNull ArrayList itemData = new ArrayList<>(); + private DcChatlist itemDataSharedChats; + private String itemDataStatusText; + private boolean isOutBroadcast; + private int memberCount; + private final Set selectedMembers; + + private final LayoutInflater layoutInflater; + private final ItemClickListener clickListener; + private final GlideRequests glideRequests; + + static class ItemData { + final int viewType; + final int contactId; + final int chatlistIndex; + final String label; + final int icon; + + ItemData(int viewType, String label, int icon) { + this(viewType, 0, 0, label, icon); + } + + ItemData(int viewType, int contactId, int chatlistIndex) { + this(viewType, contactId, chatlistIndex, null, 0); + } + + private ItemData(int viewType, int contactId, int chatlistIndex, @Nullable String label, int icon) { + this.viewType = viewType; + this.contactId = contactId; + this.chatlistIndex = chatlistIndex; + this.label = label; + this.icon = icon; + } + }; + + public ProfileAdapter(@NonNull Fragment fragment, + @NonNull GlideRequests glideRequests, + @Nullable ItemClickListener clickListener) + { + super(); + this.fragment = fragment; + this.context = fragment.requireContext(); + this.glideRequests = glideRequests; + this.clickListener = clickListener; + this.dcContext = DcHelper.getContext(context); + this.layoutInflater = LayoutInflater.from(context); + this.selectedMembers= new HashSet<>(); + } + + @Override + public int getItemCount() { + return itemData.size(); + } + + @Override + public int getItemViewType(int i) { + return itemData.get(i).viewType; + } + + public static class ViewHolder extends RecyclerView.ViewHolder { + public ViewHolder(View itemView) { + super(itemView); + } + } + + @NonNull + @Override + public ProfileAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + if (viewType == ITEM_HEADER) { + final View item = LayoutInflater.from(context).inflate(R.layout.contact_selection_list_divider, parent, false); + return new ViewHolder(item); + } else if (viewType == ITEM_DIVIDER) { + final View item = LayoutInflater.from(context).inflate(R.layout.profile_divider, parent, false); + return new ViewHolder(item); + } else if (viewType == ITEM_MEMBERS) { + final ContactSelectionListItem item = (ContactSelectionListItem)layoutInflater.inflate(R.layout.contact_selection_list_item, parent, false); + return new ViewHolder(item); + } else if (viewType == ITEM_SHARED_CHATS) { + final ConversationListItem item = (ConversationListItem)layoutInflater.inflate(R.layout.conversation_list_item_view, parent, false); + item.hideItemDivider(); + return new ViewHolder(item); + } else if (viewType == ITEM_SIGNATURE) { + final ProfileStatusItem item = (ProfileStatusItem)layoutInflater.inflate(R.layout.profile_status_item, parent, false); + return new ViewHolder(item); + } else if (viewType == ITEM_AVATAR) { + final ProfileAvatarItem item = (ProfileAvatarItem)layoutInflater.inflate(R.layout.profile_avatar_item, parent, false); + return new ViewHolder(item); + } else if (viewType == ITEM_ALL_MEDIA_BUTTON || viewType == ITEM_SEND_MESSAGE_BUTTON) { + final ProfileTextItem item = (ProfileTextItem)layoutInflater.inflate(R.layout.profile_text_item_button, parent, false); + return new ViewHolder(item); + } else if (viewType == ITEM_LAST_SEEN || viewType == ITEM_INTRODUCED_BY || viewType == ITEM_ADDRESS) { + final ProfileTextItem item = (ProfileTextItem)layoutInflater.inflate(R.layout.profile_text_item_small, parent, false); + return new ViewHolder(item); + } else { + final ProfileTextItem item = (ProfileTextItem)layoutInflater.inflate(R.layout.profile_text_item, parent, false); + return new ViewHolder(item); + } + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { + ViewHolder holder = (ViewHolder) viewHolder; + ItemData data = itemData.get(i); + if (holder.itemView instanceof ContactSelectionListItem) { + ContactSelectionListItem contactItem = (ContactSelectionListItem) holder.itemView; + + int contactId = data.contactId; + DcContact dcContact = null; + String label = null; + String name; + String addr = null; + + if (contactId == DcContact.DC_CONTACT_ID_ADD_MEMBER) { + if (isOutBroadcast) { + name = context.getString(R.string.add_recipients); + } else { + name = context.getString(R.string.group_add_members); + } + } + else if (contactId == DcContact.DC_CONTACT_ID_QR_INVITE) { + name = context.getString(R.string.qrshow_title); + } + else { + dcContact = dcContext.getContact(contactId); + name = dcContact.getDisplayName(); + addr = dcContact.getAddr(); + } + + contactItem.unbind(glideRequests); + contactItem.set(glideRequests, contactId, dcContact, name, addr, label, false, true); + contactItem.setSelected(selectedMembers.contains(contactId)); + contactItem.setOnClickListener(view -> clickListener.onMemberClicked(contactId)); + contactItem.setOnLongClickListener(view -> {clickListener.onMemberLongClicked(contactId); return true;}); + } + else if (holder.itemView instanceof ConversationListItem) { + ConversationListItem conversationListItem = (ConversationListItem) holder.itemView; + int chatlistIndex = data.chatlistIndex; + + int chatId = itemDataSharedChats.getChatId(chatlistIndex); + DcChat chat = dcContext.getChat(chatId); + DcLot summary = itemDataSharedChats.getSummary(chatlistIndex, chat); + + conversationListItem.bind(DcHelper.getThreadRecord(context, summary, chat), + itemDataSharedChats.getMsgId(chatlistIndex), summary, glideRequests, + Collections.emptySet(), false); + conversationListItem.setOnClickListener(view -> clickListener.onSharedChatClicked(chatId)); + } + else if(holder.itemView instanceof ProfileStatusItem) { + ProfileStatusItem item = (ProfileStatusItem) holder.itemView; + item.setOnLongClickListener(view -> {clickListener.onStatusLongClicked(); return true;}); + item.set(data.label); + } + else if(holder.itemView instanceof ProfileAvatarItem) { + ProfileAvatarItem item = (ProfileAvatarItem) holder.itemView; + item.setAvatarClickListener(view -> clickListener.onAvatarClicked()); + item.set(glideRequests, dcChat, dcContact, memberCount); + } + else if(holder.itemView instanceof ProfileTextItem) { + ProfileTextItem item = (ProfileTextItem) holder.itemView; + item.setOnClickListener(view -> clickListener.onSettingsClicked(data.viewType)); + boolean tintIcon = data.viewType != ITEM_INTRODUCED_BY; + item.set(data.label, data.icon, tintIcon); + if (data.viewType == ITEM_LAST_SEEN || data.viewType == ITEM_ADDRESS) { + int padding = (int)((float)context.getResources().getDimensionPixelSize(R.dimen.contact_list_normal_padding) * 1.2); + item.setPadding(item.getPaddingLeft(), item.getPaddingTop(), item.getPaddingRight(), padding); + if (data.viewType == ITEM_ADDRESS) { + fragment.registerForContextMenu(item); + } + } else if (data.viewType == ITEM_INTRODUCED_BY) { + int padding = context.getResources().getDimensionPixelSize(R.dimen.contact_list_normal_padding); + item.setPadding(item.getPaddingLeft(), padding, item.getPaddingRight(), item.getPaddingBottom()); + } else if (data.viewType == ITEM_ALL_MEDIA_BUTTON && dcChat != null) { + Util.runOnAnyBackgroundThread(() -> { + String c = getAllMediaCountString(dcChat.getId()); + Util.runOnMain(() -> { + item.setValue(c); + }); + }); + } + } else if (data.viewType == ITEM_HEADER) { + TextView textView = holder.itemView.findViewById(R.id.label); + textView.setText(data.label); + } + } + + public interface ItemClickListener { + void onSettingsClicked(int settingsId); + void onStatusLongClicked(); + void onSharedChatClicked(int chatId); + void onMemberClicked(int contactId); + void onMemberLongClicked(int contactId); + void onAvatarClicked(); + } + + public void toggleMemberSelection(int contactId) { + if (!selectedMembers.remove(contactId)) { + selectedMembers.add(contactId); + } + notifyDataSetChanged(); + } + + @NonNull + public Collection getSelectedMembers() { + return new HashSet<>(selectedMembers); + } + + public int getSelectedMembersCount() { + return selectedMembers.size(); + } + + @NonNull + public String getStatusText() { + return itemDataStatusText; + } + + public void clearSelection() { + selectedMembers.clear(); + notifyDataSetChanged(); + } + + public void changeData(@Nullable int[] memberList, @Nullable DcContact dcContact, @Nullable DcChatlist sharedChats, @Nullable DcChat dcChat) { + this.dcChat = dcChat; + this.dcContact = dcContact; + itemData.clear(); + itemDataSharedChats = sharedChats; + itemDataStatusText = ""; + isOutBroadcast = dcChat != null && dcChat.isOutBroadcast(); + boolean isMailingList = dcChat != null && dcChat.isMailingList(); + boolean isSelfTalk = dcChat != null && dcChat.isSelfTalk(); + boolean isDeviceTalk = dcChat != null && dcChat.isDeviceTalk(); + memberCount = memberList!=null ? memberList.length : 0; + + itemData.add(new ItemData(ITEM_AVATAR, null, 0)); + + if (isSelfTalk || dcContact != null && !dcContact.getStatus().isEmpty()) { + itemDataStatusText = isSelfTalk ? context.getString(R.string.saved_messages_explain) : dcContact.getStatus(); + itemData.add(new ItemData(ITEM_SIGNATURE, itemDataStatusText, 0)); + } else { + itemData.add(new ItemData(ITEM_DIVIDER, null, 0)); + } + + itemData.add(new ItemData(ITEM_ALL_MEDIA_BUTTON, context.getString(R.string.apps_and_media), R.drawable.ic_apps_24)); + + if (dcContact != null && !isDeviceTalk && !isSelfTalk) { + itemData.add(new ItemData(ITEM_SEND_MESSAGE_BUTTON, context.getString(R.string.send_message), R.drawable.ic_send_sms_white_24dp)); + } + + if (dcContact != null && !isDeviceTalk && !isSelfTalk) { + long lastSeenTimestamp = dcContact.getLastSeen(); + String lastSeenTxt; + if (lastSeenTimestamp == 0) { + lastSeenTxt = context.getString(R.string.last_seen_unknown); + } + else { + lastSeenTxt = context.getString(R.string.last_seen_at, DateUtils.getExtendedTimeSpanString(context, lastSeenTimestamp)); + } + itemData.add(new ItemData(ITEM_LAST_SEEN, lastSeenTxt, 0)); + } + + if (memberList!=null && !isMailingList) { + itemData.add(new ItemData(ITEM_DIVIDER, null, 0)); + if (dcChat != null) { + if (dcChat.canSend() && dcChat.isEncrypted()) { + itemData.add(new ItemData(ITEM_MEMBERS, DcContact.DC_CONTACT_ID_ADD_MEMBER, 0)); + if (!isOutBroadcast) { + itemData.add(new ItemData(ITEM_MEMBERS, DcContact.DC_CONTACT_ID_QR_INVITE, 0)); + } + } + } + for (int value : memberList) { + itemData.add(new ItemData(ITEM_MEMBERS, value, 0)); + } + } + + if (!isDeviceTalk && sharedChats != null && sharedChats.getCnt() > 0) { + itemData.add(new ItemData(ITEM_HEADER, context.getString(R.string.profile_shared_chats), 0)); + for (int i = 0; i < sharedChats.getCnt(); i++) { + itemData.add(new ItemData(ITEM_SHARED_CHATS, 0, i)); + } + } + + if (dcContact != null && !isDeviceTalk && !isSelfTalk) { + int verifierId = dcContact.getVerifierId(); + if (verifierId != 0) { + String introducedBy; + if (verifierId == DcContact.DC_CONTACT_ID_SELF) { + introducedBy = context.getString(R.string.verified_by_you); + } else { + introducedBy = context.getString(R.string.verified_by, dcContext.getContact(verifierId).getDisplayName()); + } + itemData.add(new ItemData(ITEM_INTRODUCED_BY, introducedBy, dcContact.isVerified()? R.drawable.ic_verified : 0)); + } else if (dcContact.isVerified()) { + String introducedBy = context.getString(R.string.verified_by_unknown); + itemData.add(new ItemData(ITEM_INTRODUCED_BY, introducedBy, R.drawable.ic_verified)); + } + + if (dcContact != null) { + itemData.add(new ItemData(ITEM_ADDRESS, dcContact.getAddr(), 0)); + } + } + + notifyDataSetChanged(); + } + + public int ALL_MEDIA_COUNT_MAX = 500; + public int getAllMediaCount(int chatId) { + int c = dcContext.getChatMedia(chatId, DcMsg.DC_MSG_IMAGE, DcMsg.DC_MSG_GIF, DcMsg.DC_MSG_VIDEO).length; + if (c < ALL_MEDIA_COUNT_MAX) { + c += dcContext.getChatMedia(chatId, DcMsg.DC_MSG_AUDIO, DcMsg.DC_MSG_VOICE, 0).length; + } + if (c < ALL_MEDIA_COUNT_MAX) { + c += dcContext.getChatMedia(chatId, DcMsg.DC_MSG_FILE, DcMsg.DC_MSG_WEBXDC, 0).length; + } + return c; + } + + public String getAllMediaCountString(int chatId) { + final int c = getAllMediaCount(chatId); + if (c == 0) { + return context.getString(R.string.none); + } else if (c >= ALL_MEDIA_COUNT_MAX) { + return ALL_MEDIA_COUNT_MAX + "+"; + } else { + return c + ""; + } + } +} diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileAvatarItem.java b/src/main/java/org/thoughtcrime/securesms/ProfileAvatarItem.java new file mode 100644 index 000000000..8a031f8b0 --- /dev/null +++ b/src/main/java/org/thoughtcrime/securesms/ProfileAvatarItem.java @@ -0,0 +1,108 @@ +package org.thoughtcrime.securesms; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.b44t.messenger.DcChat; +import com.b44t.messenger.DcContact; + +import org.thoughtcrime.securesms.components.AvatarView; +import org.thoughtcrime.securesms.mms.GlideRequests; +import org.thoughtcrime.securesms.recipients.Recipient; +import org.thoughtcrime.securesms.recipients.RecipientModifiedListener; +import org.thoughtcrime.securesms.util.Util; +import org.thoughtcrime.securesms.util.ViewUtil; + +public class ProfileAvatarItem extends LinearLayout implements RecipientModifiedListener { + + private AvatarView avatarView; + private TextView nameView; + private TextView subtitleView; + + private Recipient recipient; + private GlideRequests glideRequests; + + public ProfileAvatarItem(Context context) { + super(context); + } + + public ProfileAvatarItem(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + avatarView = findViewById(R.id.avatar); + nameView = findViewById(R.id.name); + subtitleView = findViewById(R.id.subtitle); + + ViewUtil.setTextViewGravityStart(nameView, getContext()); + } + + public void set(@NonNull GlideRequests glideRequests, @Nullable DcChat dcChat, @Nullable DcContact dcContact, int memberCount) { + this.glideRequests = glideRequests; + + String name = ""; + String subtitle = null; + if (dcChat != null) { + recipient = new Recipient(getContext(), dcChat); + name = dcChat.getName(); + + if (dcChat.isMailingList()) { + subtitle = dcChat.getMailinglistAddr(); + } else if (dcChat.isOutBroadcast()) { + subtitle = getContext().getResources().getQuantityString(R.plurals.n_recipients, memberCount, memberCount); + } else if (dcChat.getType() == DcChat.DC_CHAT_TYPE_GROUP) { + subtitle = getContext().getResources().getQuantityString(R.plurals.n_members, memberCount, memberCount); + } + } else if (dcContact != null) { + recipient = new Recipient(getContext(), dcContact); + name = dcContact.getDisplayName(); + } + + recipient.addListener(this); + avatarView.setAvatar(glideRequests, recipient, false); + avatarView.setSeenRecently(dcContact != null && dcContact.wasSeenRecently()); + + nameView.setText(name); + + if (subtitle != null) { + subtitleView.setVisibility(View.VISIBLE); + subtitleView.setText(subtitle); + } else { + subtitleView.setVisibility(View.GONE); + } + } + + public void setAvatarClickListener(OnClickListener listener) { + avatarView.setAvatarClickListener(listener); + } + + public void unbind(GlideRequests glideRequests) { + if (recipient != null) { + recipient.removeListener(this); + recipient = null; + } + + avatarView.clear(glideRequests); + } + + @Override + public void onModified(final Recipient recipient) { + if (this.recipient == recipient) { + Util.runOnMain(() -> { + avatarView.setAvatar(glideRequests, recipient, false); + DcContact contact = recipient.getDcContact(); + avatarView.setSeenRecently(contact != null && contact.wasSeenRecently()); + nameView.setText(recipient.toShortString()); + }); + } + } +} diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileSettingsFragment.java b/src/main/java/org/thoughtcrime/securesms/ProfileFragment.java similarity index 86% rename from src/main/java/org/thoughtcrime/securesms/ProfileSettingsFragment.java rename to src/main/java/org/thoughtcrime/securesms/ProfileFragment.java index 649a6e2e0..8f072a3cb 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileSettingsFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ProfileFragment.java @@ -3,14 +3,12 @@ package org.thoughtcrime.securesms; import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.res.Configuration; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.widget.Toast; import androidx.annotation.NonNull; @@ -31,7 +29,6 @@ import org.thoughtcrime.securesms.connect.DcEventCenter; import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.qr.QrShowActivity; -import org.thoughtcrime.securesms.util.StickyHeaderDecoration; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; @@ -39,16 +36,15 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -public class ProfileSettingsFragment extends Fragment - implements ProfileSettingsAdapter.ItemClickListener, DcEventCenter.DcEventDelegate { +public class ProfileFragment extends Fragment + implements ProfileAdapter.ItemClickListener, DcEventCenter.DcEventDelegate { public static final String CHAT_ID_EXTRA = "chat_id"; public static final String CONTACT_ID_EXTRA = "contact_id"; private static final int REQUEST_CODE_PICK_CONTACT = 2; - private StickyHeaderDecoration listDecoration; - private ProfileSettingsAdapter adapter; + private ProfileAdapter adapter; private ActionMode actionMode; private final ActionModeCallback actionModeCallback = new ActionModeCallback(); @@ -57,10 +53,6 @@ public class ProfileSettingsFragment extends Fragment protected int chatId; private int contactId; - protected ActionMode getActionMode() { - return actionMode; - } - @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); @@ -72,14 +64,12 @@ public class ProfileSettingsFragment extends Fragment @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.profile_settings_fragment, container, false); - adapter = new ProfileSettingsAdapter(requireContext(), GlideApp.with(this), this); + View view = inflater.inflate(R.layout.profile_fragment, container, false); + adapter = new ProfileAdapter(this, GlideApp.with(this), this); RecyclerView list = ViewUtil.findById(view, R.id.recycler_view); list.setAdapter(adapter); list.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); - listDecoration = new StickyHeaderDecoration(adapter, false, true); - list.addItemDecoration(listDecoration); update(); @@ -97,12 +87,6 @@ public class ProfileSettingsFragment extends Fragment super.onDestroyView(); } - @Override - public void onConfigurationChanged(@NonNull Configuration newConfig) { - super.onConfigurationChanged(newConfig); - listDecoration.onConfigurationChanged(newConfig); - } - @Override public void handleEvent(@NonNull DcEvent event) { update(); @@ -121,12 +105,11 @@ public class ProfileSettingsFragment extends Fragment if(dcChat!=null && dcChat.isMultiUser()) { memberList = dcContext.getChatContacts(chatId); } - else if(contactId>0) { + else if(contactId>0 && contactId!=DcContact.DC_CONTACT_ID_SELF) { sharedChats = dcContext.getChatlist(0, null, contactId); } adapter.changeData(memberList, dcContact, sharedChats, dcChat); - listDecoration.invalidateLayouts(); } @@ -136,10 +119,17 @@ public class ProfileSettingsFragment extends Fragment @Override public void onSettingsClicked(int settingsId) { switch(settingsId) { - case ProfileSettingsAdapter.INFO_SEND_MESSAGE_BUTTON: + case ProfileAdapter.ITEM_ALL_MEDIA_BUTTON: + if (chatId > 0) { + Intent intent = new Intent(getActivity(), AllMediaActivity.class); + intent.putExtra(AllMediaActivity.CHAT_ID_EXTRA, chatId); + startActivity(intent); + } + break; + case ProfileAdapter.ITEM_SEND_MESSAGE_BUTTON: onSendMessage(); break; - case ProfileSettingsAdapter.INFO_VERIFIED: + case ProfileAdapter.ITEM_INTRODUCED_BY: onVerifiedByClicked(); break; } @@ -166,7 +156,7 @@ public class ProfileSettingsFragment extends Fragment if (contactId>DcContact.DC_CONTACT_ID_LAST_SPECIAL || contactId==DcContact.DC_CONTACT_ID_SELF) { if (actionMode==null) { DcChat dcChat = dcContext.getChat(chatId); - if (dcChat.canSend()) { + if (dcChat.canSend() && dcChat.isEncrypted()) { adapter.toggleMemberSelection(contactId); actionMode = ((AppCompatActivity) requireActivity()).startSupportActionMode(actionModeCallback); } @@ -202,6 +192,12 @@ public class ProfileSettingsFragment extends Fragment } } + @Override + public void onAvatarClicked() { + ProfileActivity activity = (ProfileActivity)getActivity(); + activity.onEnlargeAvatar(); + } + public void onAddMember() { DcChat dcChat = dcContext.getChat(chatId); Intent intent = new Intent(getContext(), ContactMultiSelectionActivity.class); @@ -251,8 +247,6 @@ public class ProfileSettingsFragment extends Fragment private class ActionModeCallback implements ActionMode.Callback { - private int originalStatusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.getMenuInflater().inflate(R.menu.profile_context, menu); @@ -265,9 +259,6 @@ public class ProfileSettingsFragment extends Fragment menu.findItem(R.id.menu_select_all).setVisible(false); mode.setTitle("1"); - Window window = requireActivity().getWindow(); - originalStatusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); return true; } @@ -296,7 +287,7 @@ public class ProfileSettingsFragment extends Fragment mode.finish(); }) .setNegativeButton(android.R.string.cancel, null) - .setMessage(getString(dcChat.isBroadcast() ? R.string.ask_remove_from_broadcast : R.string.ask_remove_members, readableToDelList)) + .setMessage(getString(dcChat.isOutBroadcast() ? R.string.ask_remove_from_channel : R.string.ask_remove_members, readableToDelList)) .show(); Util.redPositiveButton(dialog); return true; @@ -308,7 +299,6 @@ public class ProfileSettingsFragment extends Fragment public void onDestroyActionMode(ActionMode mode) { actionMode = null; adapter.clearSelection(); - requireActivity().getWindow().setStatusBarColor(originalStatusBarColor); } } diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileSettingsAdapter.java b/src/main/java/org/thoughtcrime/securesms/ProfileSettingsAdapter.java deleted file mode 100644 index dd04ba374..000000000 --- a/src/main/java/org/thoughtcrime/securesms/ProfileSettingsAdapter.java +++ /dev/null @@ -1,352 +0,0 @@ -package org.thoughtcrime.securesms; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - -import com.b44t.messenger.DcChat; -import com.b44t.messenger.DcChatlist; -import com.b44t.messenger.DcContact; -import com.b44t.messenger.DcContext; -import com.b44t.messenger.DcLot; - -import org.thoughtcrime.securesms.connect.DcHelper; -import org.thoughtcrime.securesms.contacts.ContactSelectionListItem; -import org.thoughtcrime.securesms.mms.GlideRequests; -import org.thoughtcrime.securesms.util.DateUtils; -import org.thoughtcrime.securesms.util.StickyHeaderDecoration.StickyHeaderAdapter; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -public class ProfileSettingsAdapter extends RecyclerView.Adapter - implements StickyHeaderAdapter -{ - public static final int INFO_VERIFIED = 118; - public static final int INFO_LAST_SEEN = 119; - public static final int INFO_SEND_MESSAGE_BUTTON = 120; - - private final @NonNull Context context; - private final @NonNull DcContext dcContext; - - private final @NonNull ArrayList itemData = new ArrayList<>(); - private int itemDataMemberCount; - private DcChatlist itemDataSharedChats; - private String itemDataStatusText; - private boolean isMailingList; - private boolean isBroadcast; - private final Set selectedMembers; - - private final LayoutInflater layoutInflater; - private final ItemClickListener clickListener; - private final GlideRequests glideRequests; - - static class ItemData { - static final int CATEGORY_INFO = 1; - static final int CATEGORY_SIGNATURE = 2; - static final int CATEGORY_MEMBERS = 3; - static final int CATEGORY_SHARED_CHATS = 4; - final int type; - final int contactId; - final int chatlistIndex; - final int settingsId; - final String label; - final int labelColor; - final int iconLeft; - - ItemData(int type, int settingsId, String label, int labelColor, int iconLeft) { - this(type, 0, 0, settingsId, label, labelColor, iconLeft); - } - - ItemData(int type, int contactId, int chatlistIndex) { - this(type, contactId, chatlistIndex, 0, null, 0, 0); - } - - ItemData(int type, int contactId, int chatlistIndex, int settingsId, @Nullable String label, int labelColor, int iconLeft) { - this.type = type; - this.contactId = contactId; - this.chatlistIndex = chatlistIndex; - this.settingsId = settingsId; - this.label = label; - this.labelColor = labelColor; - this.iconLeft = iconLeft; - } - }; - - public ProfileSettingsAdapter(@NonNull Context context, - @NonNull GlideRequests glideRequests, - @Nullable ItemClickListener clickListener) - { - super(); - this.context = context; - this.glideRequests = glideRequests; - this.clickListener = clickListener; - this.dcContext = DcHelper.getContext(context); - this.layoutInflater = LayoutInflater.from(context); - this.selectedMembers= new HashSet<>(); - } - - @Override - public int getItemCount() { - return itemData.size(); - } - - public static class ViewHolder extends RecyclerView.ViewHolder { - public ViewHolder(View itemView) { - super(itemView); - } - } - - static class HeaderViewHolder extends RecyclerView.ViewHolder { - final TextView textView; - HeaderViewHolder(View itemView) { - super(itemView); - textView = itemView.findViewById(R.id.label); - } - } - - @NonNull - @Override - public ProfileSettingsAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - if (viewType == ItemData.CATEGORY_MEMBERS) { - final ContactSelectionListItem item = (ContactSelectionListItem)layoutInflater.inflate(R.layout.contact_selection_list_item, parent, false); - item.setNoHeaderPadding(); - return new ViewHolder(item); - } - else if (viewType == ItemData.CATEGORY_SHARED_CHATS) { - final ConversationListItem item = (ConversationListItem)layoutInflater.inflate(R.layout.conversation_list_item_view, parent, false); - item.hideItemDivider(); - return new ViewHolder(item); - } - else if (viewType == ItemData.CATEGORY_SIGNATURE) { - final ProfileStatusItem item = (ProfileStatusItem)layoutInflater.inflate(R.layout.profile_status_item, parent, false); - return new ViewHolder(item); - } - else { - final ProfileSettingsItem item = (ProfileSettingsItem)layoutInflater.inflate(R.layout.profile_settings_item, parent, false); - return new ViewHolder(item); - } - } - - @Override - public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { - ViewHolder holder = (ViewHolder) viewHolder; - if (holder.itemView instanceof ContactSelectionListItem) { - ContactSelectionListItem contactItem = (ContactSelectionListItem) holder.itemView; - - int contactId = itemData.get(i).contactId; - DcContact dcContact = null; - String label = null; - String name; - String addr = null; - - if (contactId == DcContact.DC_CONTACT_ID_ADD_MEMBER) { - if (isBroadcast) { - name = context.getString(R.string.add_recipients); - } else { - name = context.getString(R.string.group_add_members); - } - } - else if (contactId == DcContact.DC_CONTACT_ID_QR_INVITE) { - name = context.getString(R.string.qrshow_title); - } - else { - dcContact = dcContext.getContact(contactId); - name = dcContact.getDisplayName(); - addr = dcContact.getAddr(); - } - - contactItem.unbind(glideRequests); - contactItem.set(glideRequests, contactId, dcContact, name, addr, label, false, true); - contactItem.setSelected(selectedMembers.contains(contactId)); - contactItem.setOnClickListener(view -> clickListener.onMemberClicked(contactId)); - contactItem.setOnLongClickListener(view -> {clickListener.onMemberLongClicked(contactId); return true;}); - } - else if (holder.itemView instanceof ConversationListItem) { - ConversationListItem conversationListItem = (ConversationListItem) holder.itemView; - int chatlistIndex = itemData.get(i).chatlistIndex; - - int chatId = itemDataSharedChats.getChatId(chatlistIndex); - DcChat chat = dcContext.getChat(chatId); - DcLot summary = itemDataSharedChats.getSummary(chatlistIndex, chat); - - conversationListItem.bind(DcHelper.getThreadRecord(context, summary, chat), - itemDataSharedChats.getMsgId(chatlistIndex), summary, glideRequests, - Collections.emptySet(), false); - conversationListItem.setOnClickListener(view -> clickListener.onSharedChatClicked(chatId)); - } - else if(holder.itemView instanceof ProfileStatusItem) { - ProfileStatusItem item = (ProfileStatusItem) holder.itemView; - item.setOnLongClickListener(view -> {clickListener.onStatusLongClicked(); return true;}); - item.set(itemData.get(i).label); - } - else if(holder.itemView instanceof ProfileSettingsItem) { - int settingsId = itemData.get(i).settingsId; - ProfileSettingsItem profileSettingsItem = (ProfileSettingsItem) holder.itemView; - profileSettingsItem.setOnClickListener(view -> clickListener.onSettingsClicked(settingsId)); - profileSettingsItem.set(itemData.get(i).label, itemData.get(i).labelColor, itemData.get(i).iconLeft); - } - } - - @Override - public int getItemViewType(int i) { - return itemData.get(i).type; - } - - public interface ItemClickListener { - void onSettingsClicked(int settingsId); - void onStatusLongClicked(); - void onSharedChatClicked(int chatId); - void onMemberClicked(int contactId); - void onMemberLongClicked(int contactId); - } - - @Override - public long getHeaderId(int position) { - return getItemViewType(position); - } - - @Override - public HeaderViewHolder onCreateHeaderViewHolder(ViewGroup parent) { - return new HeaderViewHolder(LayoutInflater.from(context).inflate(R.layout.contact_selection_list_divider, parent, false)); - } - - @Override - public void onBindHeaderViewHolder(HeaderViewHolder viewHolder, int position) { - String txt = ""; - switch(getItemViewType(position)) { - case ItemData.CATEGORY_MEMBERS: - if (isMailingList) { - txt = context.getString(R.string.contacts_headline); - } else if (isBroadcast) { - txt = context.getResources().getQuantityString(R.plurals.n_recipients, (int) itemDataMemberCount, (int) itemDataMemberCount); - } else { - txt = context.getResources().getQuantityString(R.plurals.n_members, (int) itemDataMemberCount, (int) itemDataMemberCount); - } - break; - case ItemData.CATEGORY_SHARED_CHATS: - txt = context.getString(R.string.profile_shared_chats); - break; - case ItemData.CATEGORY_INFO: - txt = context.getString(R.string.info); - break; - case ItemData.CATEGORY_SIGNATURE: - txt = context.getString(R.string.pref_default_status_label); - break; - default: - txt = context.getString(R.string.menu_settings); - break; - } - viewHolder.textView.setText(txt); - } - - public void toggleMemberSelection(int contactId) { - if (!selectedMembers.remove(contactId)) { - selectedMembers.add(contactId); - } - notifyDataSetChanged(); - } - - @NonNull - public Collection getSelectedMembers() { - return new HashSet<>(selectedMembers); - } - - public int getSelectedMembersCount() { - return selectedMembers.size(); - } - - @NonNull - public String getStatusText() { - return itemDataStatusText; - } - - public void clearSelection() { - selectedMembers.clear(); - notifyDataSetChanged(); - } - - public void changeData(@Nullable int[] memberList, @Nullable DcContact dcContact, @Nullable DcChatlist sharedChats, @Nullable DcChat dcChat) { - itemData.clear(); - itemDataMemberCount = 0; - itemDataSharedChats = null; - itemDataStatusText = ""; - isMailingList = false; - isBroadcast = false; - - if (memberList!=null) { - itemDataMemberCount = memberList.length; - if (dcChat != null) { - if (dcChat.isBroadcast()) { - isBroadcast = true; - } - - if (dcChat.isMailingList()) { - isMailingList = true; - } else if (dcChat.canSend()) { - itemData.add(new ItemData(ItemData.CATEGORY_MEMBERS, DcContact.DC_CONTACT_ID_ADD_MEMBER, 0)); - if (!isBroadcast) { - itemData.add(new ItemData(ItemData.CATEGORY_MEMBERS, DcContact.DC_CONTACT_ID_QR_INVITE, 0)); - } - } - } - - for (int value : memberList) { - itemData.add(new ItemData(ItemData.CATEGORY_MEMBERS, value, 0)); - } - } - else if (sharedChats!=null && dcContact!=null) { - boolean chatIsDeviceTalk = dcChat != null && dcChat.isDeviceTalk(); - - if (!chatIsDeviceTalk) { - int verifierId = dcContact.getVerifierId(); - if (verifierId != 0) { - String verifiedInfo; - if (verifierId == DcContact.DC_CONTACT_ID_SELF) { - verifiedInfo = context.getString(R.string.verified_by_you); - } else { - verifiedInfo = context.getString(R.string.verified_by, dcContext.getContact(verifierId).getDisplayName()); - } - itemData.add(new ItemData(ItemData.CATEGORY_INFO, INFO_VERIFIED, verifiedInfo, 0, R.drawable.ic_verified)); - } - - long lastSeenTimestamp = dcContact.getLastSeen(); - String lastSeenTxt; - if (lastSeenTimestamp == 0) { - lastSeenTxt = context.getString(R.string.last_seen_unknown); - } - else { - lastSeenTxt = context.getString(R.string.last_seen_at, DateUtils.getExtendedTimeSpanString(context, lastSeenTimestamp)); - } - itemData.add(new ItemData(ItemData.CATEGORY_INFO, INFO_LAST_SEEN, lastSeenTxt, 0, 0)); - - - itemData.add(new ItemData(ItemData.CATEGORY_INFO, INFO_SEND_MESSAGE_BUTTON, context.getString(R.string.send_message), R.color.delta_accent, 0)); - } - - itemDataStatusText = dcContact.getStatus(); - if (!itemDataStatusText.isEmpty()) { - itemData.add(new ItemData(ItemData.CATEGORY_SIGNATURE, 0, itemDataStatusText, 0, 0)); - } - - itemDataSharedChats = sharedChats; - if (!chatIsDeviceTalk) { - int sharedChatsCnt = sharedChats.getCnt(); - for (int i = 0; i < sharedChatsCnt; i++) { - itemData.add(new ItemData(ItemData.CATEGORY_SHARED_CHATS, 0, i)); - } - } - } - - notifyDataSetChanged(); - } -} diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileSettingsItem.java b/src/main/java/org/thoughtcrime/securesms/ProfileSettingsItem.java deleted file mode 100644 index 8b113c29d..000000000 --- a/src/main/java/org/thoughtcrime/securesms/ProfileSettingsItem.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.thoughtcrime.securesms; - -import android.content.Context; -import android.util.AttributeSet; -import android.widget.LinearLayout; -import android.widget.TextView; - -import androidx.core.content.ContextCompat; - -import org.thoughtcrime.securesms.util.ResUtil; - -public class ProfileSettingsItem extends LinearLayout { - - private TextView labelView; - - public ProfileSettingsItem(Context context) { - super(context); - } - - public ProfileSettingsItem(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - labelView = findViewById(R.id.label); - } - - public void set(String label, int labelColor, int iconLeft) { - labelView.setText(label==null? "" : label); - labelView.setCompoundDrawablesWithIntrinsicBounds(iconLeft, 0,0,0); - - // we need different color getters as `labelColor` is `R.color.name` while default is `R.attr.name` - if (labelColor != 0) { - labelView.setTextColor(ContextCompat.getColor(getContext(), labelColor)); - } else { - labelView.setTextColor(ResUtil.getColor(getContext(), R.attr.emoji_text_color)); - } - } -} diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileTextItem.java b/src/main/java/org/thoughtcrime/securesms/ProfileTextItem.java new file mode 100644 index 000000000..d44ff4a75 --- /dev/null +++ b/src/main/java/org/thoughtcrime/securesms/ProfileTextItem.java @@ -0,0 +1,59 @@ +package org.thoughtcrime.securesms; + +import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.core.graphics.drawable.DrawableCompat; + +import org.thoughtcrime.securesms.util.ResUtil; + +public class ProfileTextItem extends LinearLayout { + + private TextView labelView; + private @Nullable TextView valueView; + + public ProfileTextItem(Context context) { + super(context); + } + + public ProfileTextItem(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + labelView = findViewById(R.id.label); + valueView = findViewById(R.id.value); + } + + public void set(String label, int icon, boolean tint) { + labelView.setText(label); + + if (icon != 0) { + Drawable orgDrawable = ContextCompat.getDrawable(getContext(), icon); + if (orgDrawable != null) { + Drawable drawable = orgDrawable.mutate(); // avoid global state modification and showing eg. app-icon tinted also elsewhere + drawable = DrawableCompat.wrap(drawable); + if (tint) { + DrawableCompat.setTint(drawable, getResources().getColor(R.color.delta_accent)); + } + labelView.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null); + } + } + } + + public void setValue(String value) { + if (valueView != null) { + valueView.setText(value); + valueView.setVisibility(View.VISIBLE); + } + } +} diff --git a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java index 7b6a405d4..019cedd33 100644 --- a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java @@ -135,6 +135,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve actionBar.setTitle(R.string.login_header); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + actionBar.setElevation(0); // TODO: use custom toolbar instead } emailInput.addTextChangedListener(new TextWatcher() { diff --git a/src/main/java/org/thoughtcrime/securesms/ShareActivity.java b/src/main/java/org/thoughtcrime/securesms/ShareActivity.java index bcf396a4b..35b65bd22 100644 --- a/src/main/java/org/thoughtcrime/securesms/ShareActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ShareActivity.java @@ -32,6 +32,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.Toolbar; +import androidx.core.content.pm.ShortcutManagerCompat; import com.b44t.messenger.DcContext; @@ -209,6 +210,16 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity implement int accId = intent.getIntExtra(EXTRA_ACC_ID, -1); int chatId = intent.getIntExtra(EXTRA_CHAT_ID, -1); + // the intent coming from shortcuts in the share selector might not include the custom extras but the shortcut ID + String shortcutId = intent.getStringExtra(ShortcutManagerCompat.EXTRA_SHORTCUT_ID); + if ((chatId == -1 || accId == -1) && shortcutId != null && shortcutId.startsWith("chat-")) { + String[] args = shortcutId.split("-"); + if (args.length == 3) { + accId = Integer.parseInt(args[1]); + chatId = Integer.parseInt(args[2]); + } + } + String[] extraEmail = getIntent().getStringArrayExtra(Intent.EXTRA_EMAIL); /* usually, external app will try to start "e-mail sharing" intent, providing it: diff --git a/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java b/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java index e6e870343..7cc852310 100644 --- a/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java @@ -55,6 +55,7 @@ public class WebViewActivity extends PassphraseRequiredActionBarActivity ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setElevation(0); // TODO: use custom toolbar instead } webView = findViewById(R.id.webview); diff --git a/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java b/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java index 2c840ceec..2bb90a7e4 100644 --- a/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java @@ -48,6 +48,7 @@ public class WebxdcStoreActivity extends PassphraseRequiredActionBarActivity { if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setTitle(R.string.webxdc_apps); + actionBar.setElevation(0); // TODO: use custom toolbar instead } webView.setWebViewClient(new WebViewClient() { diff --git a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java index 073ebe58b..8f0231a01 100644 --- a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java @@ -96,6 +96,8 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen intent.setAction(DC_REQUEST_ACCOUNT_DATA); sendBroadcast(intent); } + + DcHelper.maybeShowMigrationError(this); } protected void initializeActionBar() { @@ -105,6 +107,7 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen boolean canGoBack = AccountManager.getInstance().canRollbackAccountCreation(this); supportActionBar.setDisplayHomeAsUpEnabled(canGoBack); getSupportActionBar().setTitle(canGoBack? R.string.add_account : R.string.welcome_desktop); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead } private void registerForEvents() { diff --git a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java index 008760d2b..b9256b1b2 100644 --- a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java @@ -41,6 +41,8 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; +import java.util.Arrays; + public class AccountSelectionListFragment extends DialogFragment implements DcEventCenter.DcEventDelegate { private static final String TAG = AccountSelectionListFragment.class.getSimpleName(); @@ -134,9 +136,35 @@ public class AccountSelectionListFragment extends DialogFragment implements DcEv onToggleMute(accountId); } else if (itemId == R.id.menu_set_tag) { onSetTag(accountId); + } else if (itemId == R.id.menu_move_to_top) { + onMoveToTop(accountId); } } + private void onMoveToTop(int accountId) { + Activity activity = getActivity(); + if (activity == null) return; + + int[] accountIds = DcHelper.getAccounts(activity).getAll(); + Integer[] ids = new Integer[accountIds.length]; + ids[0] = accountId; + int j = 1; + for (int accId : accountIds) { + if (accId != accountId) { + ids[j++] = accId; + } + } + + Rpc rpc = DcHelper.getRpc(activity); + try { + rpc.setAccountsOrder(Arrays.asList(ids)); + } catch (RpcException e) { + Log.e(TAG, "Error calling rpc.setAccountsOrder()", e); + } + + refreshData(); + } + private void onSetTag(int accountId) { Activity activity = getActivity(); if (activity == null) return; diff --git a/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java b/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java index 9b354fb53..8caa030f8 100644 --- a/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java +++ b/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java @@ -22,7 +22,7 @@ public class ConversationItemFooter extends LinearLayout { private TextView dateView; private TextView editedView; private ImageView bookmarkIndicatorView; - private ImageView secureIndicatorView; + private ImageView emailIndicatorView; private ImageView locationIndicatorView; private DeliveryStatusView deliveryStatusView; private Integer textColor = null; @@ -48,7 +48,7 @@ public class ConversationItemFooter extends LinearLayout { dateView = findViewById(R.id.footer_date); editedView = findViewById(R.id.footer_edited); bookmarkIndicatorView = findViewById(R.id.footer_bookmark_indicator); - secureIndicatorView = findViewById(R.id.footer_secure_indicator); + emailIndicatorView = findViewById(R.id.footer_email_indicator); locationIndicatorView = findViewById(R.id.footer_location_indicator); deliveryStatusView = new DeliveryStatusView(findViewById(R.id.delivery_indicator)); @@ -65,7 +65,14 @@ public class ConversationItemFooter extends LinearLayout { boolean bookmark = messageRecord.getOriginalMsgId() != 0 || messageRecord.getSavedMsgId() != 0; bookmarkIndicatorView.setVisibility(bookmark ? View.VISIBLE : View.GONE); editedView.setVisibility(messageRecord.isEdited() ? View.VISIBLE : View.GONE); - secureIndicatorView.setVisibility(messageRecord.isSecure() ? View.VISIBLE : View.GONE); + + int downloadState = messageRecord.getDownloadState(); + if (messageRecord.isSecure() || downloadState == DcMsg.DC_DOWNLOAD_AVAILABLE || downloadState == DcMsg.DC_DOWNLOAD_FAILURE || downloadState == DcMsg.DC_DOWNLOAD_IN_PROGRESS) { + emailIndicatorView.setVisibility(View.GONE); + } else { + emailIndicatorView.setVisibility(View.VISIBLE); + } + locationIndicatorView.setVisibility(messageRecord.hasLocation() ? View.VISIBLE : View.GONE); presentDeliveryStatus(messageRecord); } @@ -74,7 +81,7 @@ public class ConversationItemFooter extends LinearLayout { dateView.setTextColor(color); editedView.setTextColor(color); bookmarkIndicatorView.setColorFilter(color); - secureIndicatorView.setColorFilter(color); + emailIndicatorView.setColorFilter(color); locationIndicatorView.setColorFilter(color); deliveryStatusView.setTint(color); } diff --git a/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java b/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java index 4c4ac3558..b4ba1ad84 100644 --- a/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java +++ b/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java @@ -16,7 +16,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.annimon.stream.Stream; import com.b44t.messenger.DcContact; import com.b44t.messenger.DcMsg; import com.b44t.messenger.rpc.RpcException; @@ -194,18 +193,17 @@ public class QuoteView extends FrameLayout implements RecipientForeverObserver { } private void setQuoteAttachment(@NonNull GlideRequests glideRequests, @NonNull SlideDeck slideDeck) { - List thumbnailSlides = Stream.of(slideDeck.getSlides()).filter(s -> s.hasImage() || s.hasVideo() || s.hasSticker() || s.isWebxdcDocument() || s.isVcard()).limit(1).toList(); - List audioSlides = Stream.of(slideDeck.getSlides()).filter(s -> s.hasAudio()).limit(1).toList(); - List documentSlides = Stream.of(attachments.getSlides()).filter(Slide::hasDocument).limit(1).toList(); + List slides = slideDeck.getSlides(); + Slide slide = slides.isEmpty()? null : slides.get(0); attachmentVideoOverlayView.setVisibility(GONE); - if (!thumbnailSlides.isEmpty() && thumbnailSlides.get(0).getUri() != null) { + if (slide != null && slide.hasQuoteThumbnail()) { thumbnailView.setVisibility(VISIBLE); attachmentContainerView.setVisibility(GONE); dismissView.setBackgroundResource(R.drawable.dismiss_background); - if (thumbnailSlides.get(0).isWebxdcDocument()) { + if (slide.isWebxdcDocument()) { try { JSONObject info = quotedMsg.getWebxdcInfo(); byte[] blob = quotedMsg.getWebxdcBlob(info.getString("icon")); @@ -218,7 +216,7 @@ public class QuoteView extends FrameLayout implements RecipientForeverObserver { Log.e(TAG, "failed to get webxdc icon", e); thumbnailView.setVisibility(GONE); } - } else if (thumbnailSlides.get(0).isVcard()) { + } else if (slide.isVcard()) { try { VcardContact vcardContact = DcHelper.getRpc(getContext()).parseVcard(quotedMsg.getFile()).get(0); Recipient recipient = new Recipient(getContext(), vcardContact); @@ -233,22 +231,24 @@ public class QuoteView extends FrameLayout implements RecipientForeverObserver { thumbnailView.setVisibility(GONE); } } else { - Uri thumbnailUri = thumbnailSlides.get(0).getUri(); - if (thumbnailSlides.get(0).hasVideo()) { + Uri thumbnailUri = slide.getUri(); + if (slide.hasVideo()) { attachmentVideoOverlayView.setVisibility(VISIBLE); - MediaUtil.createVideoThumbnailIfNeeded(getContext(), thumbnailSlides.get(0).getUri(), thumbnailSlides.get(0).getThumbnailUri(), null); - thumbnailUri = thumbnailSlides.get(0).getThumbnailUri(); + MediaUtil.createVideoThumbnailIfNeeded(getContext(), slide.getUri(), slide.getThumbnailUri(), null); + thumbnailUri = slide.getThumbnailUri(); + } + if (thumbnailUri != null) { + glideRequests.load(new DecryptableUri(thumbnailUri)) + .centerCrop() + .override(getContext().getResources().getDimensionPixelSize(R.dimen.quote_thumb_size)) + .diskCacheStrategy(DiskCacheStrategy.RESOURCE) + .into(thumbnailView); } - glideRequests.load(new DecryptableUri(thumbnailUri)) - .centerCrop() - .override(getContext().getResources().getDimensionPixelSize(R.dimen.quote_thumb_size)) - .diskCacheStrategy(DiskCacheStrategy.RESOURCE) - .into(thumbnailView); } - } else if(!audioSlides.isEmpty()) { + } else if(slide != null && slide.hasAudio()) { thumbnailView.setVisibility(GONE); attachmentContainerView.setVisibility(GONE); - } else if (!documentSlides.isEmpty()) { + } else if (slide != null && slide.hasDocument()) { thumbnailView.setVisibility(GONE); attachmentContainerView.setVisibility(VISIBLE); } else { diff --git a/src/main/java/org/thoughtcrime/securesms/connect/DcContactsLoader.java b/src/main/java/org/thoughtcrime/securesms/connect/DcContactsLoader.java index 685279c42..3715819f3 100644 --- a/src/main/java/org/thoughtcrime/securesms/connect/DcContactsLoader.java +++ b/src/main/java/org/thoughtcrime/securesms/connect/DcContactsLoader.java @@ -51,8 +51,13 @@ public class DcContactsLoader extends AsyncLoader { } if (query == null && addCreateGroupLinks) { additional_items = Util.appendInt(additional_items, DcContact.DC_CONTACT_ID_NEW_GROUP); - final boolean broadcastsEnabled = Prefs.isNewBroadcastListAvailable(getContext()); - if (broadcastsEnabled) additional_items = Util.appendInt(additional_items, DcContact.DC_CONTACT_ID_NEW_BROADCAST_LIST); + + final boolean broadcastsEnabled = Prefs.isNewBroadcastAvailable(getContext()); + if (broadcastsEnabled) additional_items = Util.appendInt(additional_items, DcContact.DC_CONTACT_ID_NEW_BROADCAST); + + if (!dcContext.isChatmail()) { + additional_items = Util.appendInt(additional_items, DcContact.DC_CONTACT_ID_NEW_UNENCRYPTED_GROUP); + } } int[] all_ids = new int[contact_ids.length + additional_items.length]; System.arraycopy(additional_items, 0, all_ids, 0, additional_items.length); diff --git a/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java b/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java index f4dec06d1..57dbb94d7 100644 --- a/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java +++ b/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java @@ -23,6 +23,7 @@ import com.b44t.messenger.DcContext; import com.b44t.messenger.DcLot; import com.b44t.messenger.DcMsg; import com.b44t.messenger.rpc.Rpc; +import com.b44t.messenger.rpc.RpcException; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.BuildConfig; @@ -36,6 +37,7 @@ import org.thoughtcrime.securesms.qr.QrActivity; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.FileUtils; import org.thoughtcrime.securesms.util.MediaUtil; +import org.thoughtcrime.securesms.util.Util; import java.io.File; import java.util.Date; @@ -150,11 +152,8 @@ public class DcHelper { dcContext.setStockTranslation(11, context.getString(R.string.audio)); dcContext.setStockTranslation(12, context.getString(R.string.file)); dcContext.setStockTranslation(23, context.getString(R.string.gif)); - dcContext.setStockTranslation(24, context.getString(R.string.encrypted_message)); dcContext.setStockTranslation(29, context.getString(R.string.systemmsg_cannot_decrypt)); dcContext.setStockTranslation(35, context.getString(R.string.contact_verified)); - dcContext.setStockTranslation(36, context.getString(R.string.contact_not_verified)); - dcContext.setStockTranslation(37, context.getString(R.string.contact_setup_changed)); dcContext.setStockTranslation(40, context.getString(R.string.chat_archived_label)); dcContext.setStockTranslation(60, context.getString(R.string.login_error_cannot_login)); dcContext.setStockTranslation(66, context.getString(R.string.location)); @@ -188,7 +187,6 @@ public class DcHelper { dcContext.setStockTranslation(112, context.getString(R.string.error_x)); dcContext.setStockTranslation(113, context.getString(R.string.not_supported_by_provider)); dcContext.setStockTranslation(114, context.getString(R.string.messages)); - dcContext.setStockTranslation(115, context.getString(R.string.broadcast_list)); dcContext.setStockTranslation(116, context.getString(R.string.part_of_total_used)); dcContext.setStockTranslation(117, context.getString(R.string.secure_join_started)); dcContext.setStockTranslation(118, context.getString(R.string.secure_join_replies)); @@ -228,28 +226,24 @@ public class DcHelper { dcContext.setStockTranslation(155, context.getString(R.string.ephemeral_timer_days_by_other)); dcContext.setStockTranslation(156, context.getString(R.string.ephemeral_timer_weeks_by_you)); dcContext.setStockTranslation(157, context.getString(R.string.ephemeral_timer_weeks_by_other)); + dcContext.setStockTranslation(158, context.getString(R.string.ephemeral_timer_1_year_by_you)); + dcContext.setStockTranslation(159, context.getString(R.string.ephemeral_timer_1_year_by_other)); // HACK: svg does not handle entities correctly and shows `"` as the text `quot;`. // until that is fixed, we fix the most obvious errors (core uses encode_minimal, so this does not affect so many characters) // cmp. https://github.com/deltachat/deltachat-android/issues/2187 dcContext.setStockTranslation(120, context.getString(R.string.qrshow_join_group_hint).replace("\"", "")); dcContext.setStockTranslation(121, context.getString(R.string.connectivity_not_connected)); - dcContext.setStockTranslation(122, context.getString(R.string.aeap_addr_changed)); dcContext.setStockTranslation(162, context.getString(R.string.multidevice_qr_subtitle)); dcContext.setStockTranslation(163, context.getString(R.string.multidevice_transfer_done_devicemsg)); - - // The next two strings should only be set if the UI actually shows more info when the user clicks on the - // DC_INFO_PROTECTION_{EN|DIS}ABLED info message dcContext.setStockTranslation(170, context.getString(R.string.chat_protection_enabled_tap_to_learn_more)); - dcContext.setStockTranslation(171, context.getString(R.string.chat_protection_broken_tap_to_learn_more)); - dcContext.setStockTranslation(172, context.getString(R.string.chat_new_group_hint)); dcContext.setStockTranslation(173, context.getString(R.string.member_x_added)); dcContext.setStockTranslation(174, context.getString(R.string.invalid_unencrypted_tap_to_learn_more)); dcContext.setStockTranslation(176, context.getString(R.string.reaction_by_you)); dcContext.setStockTranslation(177, context.getString(R.string.reaction_by_other)); dcContext.setStockTranslation(190, context.getString(R.string.secure_join_wait)); - dcContext.setStockTranslation(192, context.getString(R.string.secure_join_takes_longer)); + dcContext.setStockTranslation(193, context.getString(R.string.donate_device_msg)); } public static File getImexDir() { @@ -461,20 +455,10 @@ public class DcHelper { } } - public static void showVerificationBrokenDialog(Context context, String name) { - new AlertDialog.Builder(context) - .setMessage(context.getString(R.string.chat_protection_broken_explanation, name)) - .setNeutralButton(R.string.learn_more, (d, w) -> openHelp(context, "#nocryptanymore")) - .setNegativeButton(R.string.qrscan_title, (d, w) -> context.startActivity(new Intent(context, QrActivity.class))) - .setPositiveButton(R.string.ok, null) - .setCancelable(true) - .show(); - } - public static void showProtectionEnabledDialog(Context context) { new AlertDialog.Builder(context) .setMessage(context.getString(R.string.chat_protection_enabled_explanation)) - .setNeutralButton(R.string.learn_more, (d, w) -> openHelp(context, "#e2eeguarantee")) + .setNeutralButton(R.string.learn_more, (d, w) -> openHelp(context, "#e2ee")) .setPositiveButton(R.string.ok, null) .setCancelable(true) .show(); @@ -495,4 +479,62 @@ public class DcHelper { if (section != null) { intent.putExtra(LocalHelpActivity.SECTION_EXTRA, section); } context.startActivity(intent); } + + /** + * For the PGP-Contacts migration, things can go wrong. + * The migration happens when the account is setup, at which point no events can be sent yet. + * So, instead, if something goes wrong, it's returned by getLastError(). + * This function shows the error message to the user. + *

                              + * A few releases after the PGP-contacts migration (which happened in 2025-05), + * we can remove this function again. + */ + public static void maybeShowMigrationError(Context context) { + try { + String lastError = DcHelper.getRpc(context).getMigrationError(DcHelper.getContext(context).getAccountId()); + + if (lastError != null && !lastError.isEmpty()) { + Log.w(TAG, "Opening account failed, trying to share error: " + lastError); + + String subject = "Delta Chat failed to update"; + String email = "delta@merlinux.eu"; + + new AlertDialog.Builder(context) + .setMessage(context.getString(R.string.error_x, lastError)) + .setNeutralButton(R.string.global_menu_edit_copy_desktop, (d, which) -> { + Util.writeTextToClipboard(context, lastError); + }) + .setPositiveButton(R.string.menu_send, (d, which) -> { + Intent sharingIntent = new Intent( + Intent.ACTION_SENDTO, Uri.fromParts( + "mailto", email, null + ) + ); + sharingIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{email}); + sharingIntent.putExtra(Intent.EXTRA_SUBJECT, subject); + sharingIntent.putExtra(Intent.EXTRA_TEXT, lastError); + + if (sharingIntent.resolveActivity(context.getPackageManager()) == null) { + Log.w(TAG, "No email client found to send crash report"); + sharingIntent = new Intent(Intent.ACTION_SEND); + sharingIntent.setType("text/plain"); + sharingIntent.putExtra(Intent.EXTRA_SUBJECT, subject); + sharingIntent.putExtra(Intent.EXTRA_TEXT, lastError); + sharingIntent.putExtra(Intent.EXTRA_EMAIL, email); + } + + Intent chooser = + Intent.createChooser(sharingIntent, "Send using..."); + chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + chooser.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + + context.startActivity(chooser); + }) + .setCancelable(false) + .show(); + } + } catch (RpcException e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/org/thoughtcrime/securesms/connect/DirectShareUtil.java b/src/main/java/org/thoughtcrime/securesms/connect/DirectShareUtil.java index 64657aed9..a9343226b 100644 --- a/src/main/java/org/thoughtcrime/securesms/connect/DirectShareUtil.java +++ b/src/main/java/org/thoughtcrime/securesms/connect/DirectShareUtil.java @@ -128,7 +128,7 @@ public class DirectShareUtil { Recipient recipient = new Recipient(context, chat); Bitmap avatar = getIconForShortcut(context, recipient); - results.add(new ShortcutInfoCompat.Builder(context, Integer.toString(chat.getId())) + results.add(new ShortcutInfoCompat.Builder(context, "chat-" + dcContext.getAccountId() + "-" + chat.getId()) .setShortLabel(chat.getName()) .setLongLived(true) .setRank(i+1) diff --git a/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java b/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java index 56cd0e765..300afece7 100644 --- a/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java +++ b/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java @@ -268,8 +268,10 @@ public class ContactSelectionListAdapter extends RecyclerView.Adapter !timeBucket.isEmpty()) - .count() + - OLDER.getSectionCount(); + int count = 0; + for (TimeBucket section : TIME_SECTIONS) { + if (!section.isEmpty()) count++; + } + return count + OLDER.getSectionCount(); } public int getSectionItemCount(int section) { - List activeTimeBuckets = Stream.of(TIME_SECTIONS).filter(timeBucket -> !timeBucket.isEmpty()).toList(); + List activeTimeBuckets = new ArrayList<>(); + for (TimeBucket bucket : TIME_SECTIONS) { + if (!bucket.isEmpty()) activeTimeBuckets.add(bucket); + } if (section < activeTimeBuckets.size()) return activeTimeBuckets.get(section).getItemCount(); else return OLDER.getSectionItemCount(section - activeTimeBuckets.size()); } public DcMsg get(int section, int item) { - List activeTimeBuckets = Stream.of(TIME_SECTIONS).filter(timeBucket -> !timeBucket.isEmpty()).toList(); + List activeTimeBuckets = new ArrayList<>(); + for (TimeBucket bucket : TIME_SECTIONS) { + if (!bucket.isEmpty()) activeTimeBuckets.add(bucket); + } if (section < activeTimeBuckets.size()) return activeTimeBuckets.get(section).getItem(item); else return OLDER.getItem(section - activeTimeBuckets.size(), item); } public String getName(int section) { - List activeTimeBuckets = Stream.of(TIME_SECTIONS).filter(timeBucket -> !timeBucket.isEmpty()).toList(); + List activeTimeBuckets = new ArrayList<>(); + for (TimeBucket bucket : TIME_SECTIONS) { + if (!bucket.isEmpty()) activeTimeBuckets.add(bucket); + } if (section < activeTimeBuckets.size()) return activeTimeBuckets.get(section).getName(); else return OLDER.getName(section - activeTimeBuckets.size()); diff --git a/src/main/java/org/thoughtcrime/securesms/mms/Slide.java b/src/main/java/org/thoughtcrime/securesms/mms/Slide.java index 56fd0d842..4b3c1ea9a 100644 --- a/src/main/java/org/thoughtcrime/securesms/mms/Slide.java +++ b/src/main/java/org/thoughtcrime/securesms/mms/Slide.java @@ -76,6 +76,11 @@ public abstract class Slide { return attachment.getSize(); } + /* Return true if this slide has a thumbnail when being quoted, false otherwise */ + public boolean hasQuoteThumbnail() { + return (hasImage() || hasVideo() || hasSticker() || isWebxdcDocument() || isVcard()) && getUri() != null; + } + public boolean hasImage() { return false; } diff --git a/src/main/java/org/thoughtcrime/securesms/permissions/Permissions.java b/src/main/java/org/thoughtcrime/securesms/permissions/Permissions.java index 38011590b..42becce2b 100644 --- a/src/main/java/org/thoughtcrime/securesms/permissions/Permissions.java +++ b/src/main/java/org/thoughtcrime/securesms/permissions/Permissions.java @@ -21,15 +21,13 @@ import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; -import com.annimon.stream.Stream; -import com.annimon.stream.function.Consumer; - import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.util.LRUCache; import org.thoughtcrime.securesms.util.ServiceUtil; import java.lang.ref.WeakReference; import java.security.SecureRandom; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -70,10 +68,6 @@ public class Permissions { private Runnable anyPermanentlyDeniedListener; private Runnable anyResultListener; - private Consumer> someGrantedListener; - private Consumer> someDeniedListener; - private Consumer> somePermanentlyDeniedListener; - private @DrawableRes int[] rationalDialogHeader; private String rationaleDialogMessage; @@ -148,29 +142,13 @@ public class Permissions { return this; } - public PermissionsBuilder onSomeGranted(Consumer> someGrantedListener) { - this.someGrantedListener = someGrantedListener; - return this; - } - - public PermissionsBuilder onSomeDenied(Consumer> someDeniedListener) { - this.someDeniedListener = someDeniedListener; - return this; - } - - public PermissionsBuilder onSomePermanentlyDenied(Consumer> somePermanentlyDeniedListener) { - this.somePermanentlyDeniedListener = somePermanentlyDeniedListener; - return this; - } - public void execute() { if (alwaysGranted) { allGrantedListener.run(); return; } - PermissionsRequest request = new PermissionsRequest(allGrantedListener, anyDeniedListener, anyPermanentlyDeniedListener, anyResultListener, - someGrantedListener, someDeniedListener, somePermanentlyDeniedListener); + PermissionsRequest request = new PermissionsRequest(allGrantedListener, anyDeniedListener, anyPermanentlyDeniedListener, anyResultListener); if (ifNecesary && (permissionObject.hasAll(requestedPermissions) || !condition)) { executePreGrantedPermissionsRequest(request); @@ -183,7 +161,7 @@ public class Permissions { private void executePreGrantedPermissionsRequest(PermissionsRequest request) { int[] grantResults = new int[requestedPermissions.length]; - for (int i=0;i PackageManager.PERMISSION_DENIED).toArray(); + int[] grantResults = new int[permissions.length]; + Arrays.fill(grantResults, PackageManager.PERMISSION_DENIED); boolean[] showDialog = new boolean[permissions.length]; Arrays.fill(showDialog, true); @@ -236,22 +215,29 @@ public class Permissions { } private static String[] filterNotGranted(@NonNull Context context, String... permissions) { - return Stream.of(permissions) - .filter(permission -> ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) - .toList() - .toArray(new String[0]); + List notGranted = new ArrayList<>(); + for (String permission : permissions) { + if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { + notGranted.add(permission); + } + } + return notGranted.toArray(new String[0]); } public static boolean hasAny(@NonNull Context context, String... permissions) { - return Build.VERSION.SDK_INT < Build.VERSION_CODES.M || - Stream.of(permissions).anyMatch(permission -> ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED); - + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return true; + for (String permission : permissions) { + if (ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED) return true; + } + return false; } public static boolean hasAll(@NonNull Context context, String... permissions) { - return Build.VERSION.SDK_INT < Build.VERSION_CODES.M || - Stream.of(permissions).allMatch(permission -> ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED); - + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return true; + for (String permission : permissions) { + if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) return false; + } + return true; } public static void onRequestPermissionsResult(Fragment fragment, int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { diff --git a/src/main/java/org/thoughtcrime/securesms/permissions/PermissionsRequest.java b/src/main/java/org/thoughtcrime/securesms/permissions/PermissionsRequest.java index 2bc0812fe..1bc24d9aa 100644 --- a/src/main/java/org/thoughtcrime/securesms/permissions/PermissionsRequest.java +++ b/src/main/java/org/thoughtcrime/securesms/permissions/PermissionsRequest.java @@ -5,8 +5,6 @@ import android.content.pm.PackageManager; import androidx.annotation.Nullable; -import com.annimon.stream.function.Consumer; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -22,27 +20,16 @@ class PermissionsRequest { private final @Nullable Runnable anyPermanentlyDeniedListener; private final @Nullable Runnable anyResultListener; - private final @Nullable Consumer> someGrantedListener; - private final @Nullable Consumer> someDeniedListener; - private final @Nullable Consumer> somePermanentlyDeniedListener; - PermissionsRequest(@Nullable Runnable allGrantedListener, @Nullable Runnable anyDeniedListener, @Nullable Runnable anyPermanentlyDeniedListener, - @Nullable Runnable anyResultListener, - @Nullable Consumer> someGrantedListener, - @Nullable Consumer> someDeniedListener, - @Nullable Consumer> somePermanentlyDeniedListener) + @Nullable Runnable anyResultListener) { this.allGrantedListener = allGrantedListener; this.anyDeniedListener = anyDeniedListener; this.anyPermanentlyDeniedListener = anyPermanentlyDeniedListener; this.anyResultListener = anyResultListener; - - this.someGrantedListener = someGrantedListener; - this.someDeniedListener = someDeniedListener; - this.somePermanentlyDeniedListener = somePermanentlyDeniedListener; } void onResult(String[] permissions, int[] grantResults, boolean[] shouldShowRationaleDialog) { @@ -56,9 +43,9 @@ class PermissionsRequest { } else { boolean preRequestShouldShowRationaleDialog = PRE_REQUEST_MAPPING.get(permissions[i]); - if ((somePermanentlyDeniedListener != null || anyPermanentlyDeniedListener != null) && - !preRequestShouldShowRationaleDialog && !shouldShowRationaleDialog[i]) - { + if (anyPermanentlyDeniedListener != null + && !preRequestShouldShowRationaleDialog + && !shouldShowRationaleDialog[i]) { permanentlyDenied.add(permissions[i]); } else { denied.add(permissions[i]); @@ -68,18 +55,14 @@ class PermissionsRequest { if (allGrantedListener != null && !granted.isEmpty() && (denied.isEmpty() && permanentlyDenied.isEmpty())) { allGrantedListener.run(); - } else if (someGrantedListener != null && !granted.isEmpty()) { - someGrantedListener.accept(granted); } if (!denied.isEmpty()) { if (anyDeniedListener != null) anyDeniedListener.run(); - if (someDeniedListener != null) someDeniedListener.accept(denied); } if (!permanentlyDenied.isEmpty()) { if (anyPermanentlyDeniedListener != null) anyPermanentlyDeniedListener.run(); - if (somePermanentlyDeniedListener != null) somePermanentlyDeniedListener.accept(permanentlyDenied); } if (anyResultListener != null) { diff --git a/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java index a41f302ed..63d980aa1 100644 --- a/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java @@ -176,9 +176,8 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment newBroadcastList.setOnPreferenceChangeListener((preference, newValue) -> { if ((Boolean)newValue) { new AlertDialog.Builder(requireActivity()) - .setTitle("Thanks for trying out \"Broadcast Lists\"!") - .setMessage("• You can now create new \"Broadcast Lists\" from the \"New Chat\" dialog\n\n" - + "• In case you are using more than one device, broadcast lists are currently not synced between them\n\n" + .setTitle("Thanks for trying out \"Channels\"!") + .setMessage("• You can now create new \"Channels\" from the \"New Chat\" dialog\n\n" + "• If you want to quit the experimental feature, you can disable it at \"Settings / Advanced\"") .setCancelable(false) .setPositiveButton(R.string.ok, null) diff --git a/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java b/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java index f4b58b581..b2d85c0d5 100644 --- a/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java @@ -71,6 +71,7 @@ public class ChatBackgroundActivity extends PassphraseRequiredActionBarActivity actionBar.setTitle(R.string.pref_background); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + actionBar.setElevation(0); // TODO: use custom toolbar instead } } diff --git a/src/main/java/org/thoughtcrime/securesms/profiles/AvatarHelper.java b/src/main/java/org/thoughtcrime/securesms/profiles/AvatarHelper.java index 2ebe7afa7..bf98af3d4 100644 --- a/src/main/java/org/thoughtcrime/securesms/profiles/AvatarHelper.java +++ b/src/main/java/org/thoughtcrime/securesms/profiles/AvatarHelper.java @@ -20,6 +20,8 @@ import java.io.FileOutputStream; import java.io.IOException; public class AvatarHelper { + /* the maximum width/height an avatar should have */ + public static final int AVATAR_SIZE = 640; public static void setGroupAvatar(Context context, int chatId, Bitmap bitmap) { DcContext dcContext = DcHelper.getContext(context); @@ -30,7 +32,7 @@ public class AvatarHelper { try { File avatar = File.createTempFile("groupavatar", ".jpg", context.getCacheDir()); FileOutputStream out = new FileOutputStream(avatar); - bitmap.compress(Bitmap.CompressFormat.JPEG, 85, out); + bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); out.close(); dcContext.setChatProfileImage(chatId, avatar.getPath()); // The avatar is copied to the blobs directory here... //noinspection ResultOfMethodCallIgnored diff --git a/src/main/java/org/thoughtcrime/securesms/profiles/ProfileMediaConstraints.java b/src/main/java/org/thoughtcrime/securesms/profiles/ProfileMediaConstraints.java deleted file mode 100644 index 72da12bcf..000000000 --- a/src/main/java/org/thoughtcrime/securesms/profiles/ProfileMediaConstraints.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.thoughtcrime.securesms.profiles; - - -import android.content.Context; - -import org.thoughtcrime.securesms.mms.MediaConstraints; - -public class ProfileMediaConstraints extends MediaConstraints { - @Override - public int getImageMaxWidth(Context context) { - return 640; - } - - @Override - public int getImageMaxHeight(Context context) { - return 640; - } - - @Override - public int getImageMaxSize(Context context) { - return 5 * 1024 * 1024; - } -} diff --git a/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java b/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java index 6a9e8b63c..e21fe2404 100644 --- a/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java @@ -50,6 +50,7 @@ public class ProxySettingsActivity extends BaseActionBarActivity if (actionBar != null) { actionBar.setTitle(R.string.proxy_settings); actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setElevation(0); // TODO: use custom toolbar instead } adapter = new ProxyListAdapter(this); diff --git a/src/main/java/org/thoughtcrime/securesms/qr/BackupReceiverFragment.java b/src/main/java/org/thoughtcrime/securesms/qr/BackupReceiverFragment.java index 1dfb677b4..9dc659633 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/BackupReceiverFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/BackupReceiverFragment.java @@ -80,6 +80,7 @@ public class BackupReceiverFragment extends Fragment implements DcEventCenter.Dc Log.i(TAG,"DC_EVENT_IMEX_PROGRESS, " + permille); if (permille == 0) { + DcHelper.maybeShowMigrationError(getTransferActivity()); getTransferActivity().setTransferError("Receiving Error"); } else if (permille < 1000) { percent = permille/10; diff --git a/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java b/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java index 428b0ab33..6673c5999 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java @@ -73,11 +73,11 @@ public class BackupTransferActivity extends BaseActionBarActivity { switch(transferMode) { case SENDER_SHOW_QR: - initFragment(android.R.id.content, new BackupProviderFragment(), icicle); + initFragment(R.id.backup_provider_fragment, new BackupProviderFragment(), icicle); break; case RECEIVER_SCAN_QR: - initFragment(android.R.id.content, new BackupReceiverFragment(), icicle); + initFragment(R.id.backup_provider_fragment, new BackupReceiverFragment(), icicle); break; } @@ -85,6 +85,7 @@ public class BackupTransferActivity extends BaseActionBarActivity { supportActionBar.setDisplayHomeAsUpEnabled(true); supportActionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); supportActionBar.setTitle(title); + supportActionBar.setElevation(0); // TODO: use custom toolbar instead } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java b/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java index ba27ce4a1..20d76ace3 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java @@ -42,6 +42,7 @@ public class RegistrationQrActivity extends BaseActionBarActivity { getSupportActionBar().setTitle(R.string.scan_invitation_code); } getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead barcodeScannerView = findViewById(R.id.zxing_barcode_scanner); barcodeScannerView.setStatusText(getString(R.string.qrscan_hint) + "\n "); diff --git a/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java b/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java index 3aaf91267..b822122df 100644 --- a/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java +++ b/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java @@ -179,7 +179,7 @@ final class UriGlideRenderer implements Renderer { .diskCacheStrategy(DiskCacheStrategy.NONE) .override(width, height) .centerInside() - .load(decryptable ? new DecryptableStreamUriLoader.DecryptableUri(imageUri) : imageUri); + .load(decryptable && imageUri!=null ? new DecryptableStreamUriLoader.DecryptableUri(imageUri) : imageUri); } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/util/LongClickCopySpan.java b/src/main/java/org/thoughtcrime/securesms/util/LongClickCopySpan.java index 6da6511cf..7f64ca54f 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/LongClickCopySpan.java +++ b/src/main/java/org/thoughtcrime/securesms/util/LongClickCopySpan.java @@ -58,7 +58,12 @@ public class LongClickCopySpan extends ClickableSpan { String addr = prepareUrl(url); Activity activity = (Activity) widget.getContext(); DcContext dcContext = DcHelper.getContext(activity); - DcContact contact = dcContext.getContact(dcContext.createContact(null, addr)); + + int contactId = dcContext.lookupContactIdByAddr(addr); + if (contactId == 0 && dcContext.mayBeValidAddr(addr)) { + contactId = dcContext.createContact(null, addr); + } + DcContact contact = dcContext.getContact(contactId); if (contact.getId() != 0 && !contact.isBlocked() && dcContext.getChatIdByContactId(contact.getId()) != 0) { openChat(activity, contact); } else { diff --git a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java index 12234829f..4df6b2deb 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java +++ b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java @@ -172,7 +172,7 @@ public class Prefs { return getBooleanPreference(context, "pref_developer_mode_enabled", false); } - public static boolean isNewBroadcastListAvailable(Context context) { + public static boolean isNewBroadcastAvailable(Context context) { return getBooleanPreference(context, "pref_new_broadcast_list", false); } diff --git a/src/main/java/org/thoughtcrime/securesms/util/SelectedContactsAdapter.java b/src/main/java/org/thoughtcrime/securesms/util/SelectedContactsAdapter.java index a4c670533..887e07c80 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/SelectedContactsAdapter.java +++ b/src/main/java/org/thoughtcrime/securesms/util/SelectedContactsAdapter.java @@ -36,17 +36,19 @@ public class SelectedContactsAdapter extends BaseAdapter { @NonNull private final Context context; @Nullable private ItemClickListener itemClickListener; @NonNull private final List contacts = new LinkedList<>(); - private final boolean isBroadcast; + private final boolean isBroadcast; + private final boolean isUnencrypted; @NonNull private final DcContext dcContext; @NonNull private final GlideRequests glideRequests; public SelectedContactsAdapter(@NonNull Context context, @NonNull GlideRequests glideRequests, - boolean isBroadcast) + boolean isBroadcast, boolean isUnencrypted) { this.context = context; this.glideRequests = glideRequests; this.isBroadcast = isBroadcast; + this.isUnencrypted = isUnencrypted; this.dcContext = DcHelper.getContext(context); } @@ -109,10 +111,9 @@ public class SelectedContactsAdapter extends BaseAdapter { final int contactId = (int)getItem(position); final boolean modifiable = contactId != DC_CONTACT_ID_ADD_MEMBER && contactId != DC_CONTACT_ID_SELF; Recipient recipient = null; - boolean verified = false; if(contactId == DcContact.DC_CONTACT_ID_ADD_MEMBER) { - name.setText(context.getString(isBroadcast? R.string.add_recipients : R.string.group_add_members)); + name.setText(context.getString(isBroadcast || isUnencrypted? R.string.add_recipients : R.string.group_add_members)); name.setTypeface(null, Typeface.BOLD); phone.setVisibility(View.GONE); } else { @@ -122,12 +123,10 @@ public class SelectedContactsAdapter extends BaseAdapter { name.setTypeface(null, Typeface.NORMAL); phone.setText(dcContact.getAddr()); phone.setVisibility(View.VISIBLE); - verified = dcContact.isVerified(); } avatar.clear(glideRequests); avatar.setAvatar(glideRequests, recipient, false); - name.setCompoundDrawablesWithIntrinsicBounds(0, 0, verified? R.drawable.ic_verified : 0, 0); delete.setVisibility(modifiable ? View.VISIBLE : View.GONE); delete.setColorFilter(DynamicTheme.isDarkTheme(context)? Color.WHITE : Color.BLACK); delete.setOnClickListener(view -> { diff --git a/src/main/res/drawable-hdpi/msg_encr_out.png b/src/main/res/drawable-hdpi/msg_encr_out.png deleted file mode 100644 index af0aeee91..000000000 Binary files a/src/main/res/drawable-hdpi/msg_encr_out.png and /dev/null differ diff --git a/src/main/res/drawable-mdpi/msg_encr_out.png b/src/main/res/drawable-mdpi/msg_encr_out.png deleted file mode 100644 index 760538192..000000000 Binary files a/src/main/res/drawable-mdpi/msg_encr_out.png and /dev/null differ diff --git a/src/main/res/drawable-xhdpi/msg_encr_out.png b/src/main/res/drawable-xhdpi/msg_encr_out.png deleted file mode 100644 index 2e94856eb..000000000 Binary files a/src/main/res/drawable-xhdpi/msg_encr_out.png and /dev/null differ diff --git a/src/main/res/drawable-xxhdpi/msg_encr_out.png b/src/main/res/drawable-xxhdpi/msg_encr_out.png deleted file mode 100644 index 758198e40..000000000 Binary files a/src/main/res/drawable-xxhdpi/msg_encr_out.png and /dev/null differ diff --git a/src/main/res/drawable/baseline_qr_code_24.xml b/src/main/res/drawable/baseline_qr_code_24.xml deleted file mode 100644 index e7edb465f..000000000 --- a/src/main/res/drawable/baseline_qr_code_24.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/main/res/drawable/ic_outline_email.xml b/src/main/res/drawable/ic_outline_email.xml new file mode 100644 index 000000000..19ab62ba4 --- /dev/null +++ b/src/main/res/drawable/ic_outline_email.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/main/res/drawable/ic_qr_code_24.xml b/src/main/res/drawable/ic_qr_code_24.xml new file mode 100644 index 000000000..f95c18d61 --- /dev/null +++ b/src/main/res/drawable/ic_qr_code_24.xml @@ -0,0 +1,3 @@ + + + diff --git a/src/main/res/drawable/ic_verified_broken.xml b/src/main/res/drawable/ic_verified_broken.xml deleted file mode 100644 index 170164366..000000000 --- a/src/main/res/drawable/ic_verified_broken.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - diff --git a/src/main/res/layout/activity_application_preferences.xml b/src/main/res/layout/activity_application_preferences.xml new file mode 100644 index 000000000..5dc280304 --- /dev/null +++ b/src/main/res/layout/activity_application_preferences.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/src/main/res/layout/activity_blocked_contacts.xml b/src/main/res/layout/activity_blocked_contacts.xml new file mode 100644 index 000000000..5dc280304 --- /dev/null +++ b/src/main/res/layout/activity_blocked_contacts.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/src/main/res/layout/activity_conversation_list_archive.xml b/src/main/res/layout/activity_conversation_list_archive.xml new file mode 100644 index 000000000..5dc280304 --- /dev/null +++ b/src/main/res/layout/activity_conversation_list_archive.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/src/main/res/layout/activity_qr.xml b/src/main/res/layout/activity_qr.xml index 68530d76c..5420180f9 100644 --- a/src/main/res/layout/activity_qr.xml +++ b/src/main/res/layout/activity_qr.xml @@ -3,11 +3,14 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" + android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" xmlns:app="http://schemas.android.com/apk/res-auto"> + android:layout_height="wrap_content" + app:elevation="0dp"> - + + + android:gravity="center_horizontal"> + + diff --git a/src/main/res/layout/activity_registration_qr.xml b/src/main/res/layout/activity_registration_qr.xml index e520327ec..a55cec9a3 100644 --- a/src/main/res/layout/activity_registration_qr.xml +++ b/src/main/res/layout/activity_registration_qr.xml @@ -1,11 +1,17 @@ - + + + android:gravity="center_horizontal"> + + diff --git a/src/main/res/layout/activity_select_chat_background.xml b/src/main/res/layout/activity_select_chat_background.xml index 8175e2b72..aaec2e2d3 100644 --- a/src/main/res/layout/activity_select_chat_background.xml +++ b/src/main/res/layout/activity_select_chat_background.xml @@ -2,6 +2,8 @@ diff --git a/src/main/res/layout/all_media_activity.xml b/src/main/res/layout/all_media_activity.xml new file mode 100644 index 000000000..d09463246 --- /dev/null +++ b/src/main/res/layout/all_media_activity.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + diff --git a/src/main/res/layout/avatar_view.xml b/src/main/res/layout/avatar_view.xml index f175f8c8b..cb28e84dc 100644 --- a/src/main/res/layout/avatar_view.xml +++ b/src/main/res/layout/avatar_view.xml @@ -25,6 +25,8 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/top_guideline" app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintWidth_max="34dp" + app:layout_constraintHeight_max="34dp" android:src="@drawable/ic_circle_status_online" android:contentDescription="@null" diff --git a/src/main/res/layout/backup_provider_activity.xml b/src/main/res/layout/backup_provider_activity.xml index f1d2ec44c..41852e1a3 100644 --- a/src/main/res/layout/backup_provider_activity.xml +++ b/src/main/res/layout/backup_provider_activity.xml @@ -1,5 +1,15 @@ - + android:layout_height="match_parent"> + + + + diff --git a/src/main/res/layout/contact_selection_activity.xml b/src/main/res/layout/contact_selection_activity.xml index 748fef44c..34b7c13cb 100644 --- a/src/main/res/layout/contact_selection_activity.xml +++ b/src/main/res/layout/contact_selection_activity.xml @@ -2,6 +2,8 @@ @@ -16,9 +18,16 @@ android:theme="?attr/actionBarStyle" app:contentInsetStartWithNavigation="0dp"/> - + + + + \ No newline at end of file diff --git a/src/main/res/layout/contact_selection_list_item.xml b/src/main/res/layout/contact_selection_list_item.xml index 0d2f5243f..2b01e070c 100644 --- a/src/main/res/layout/contact_selection_list_item.xml +++ b/src/main/res/layout/contact_selection_list_item.xml @@ -8,8 +8,8 @@ android:gravity="center_vertical" android:focusable="true" android:background="?attr/conversation_list_item_background" - android:paddingLeft="24dp" - android:paddingRight="24dp"> + android:paddingLeft="16dp" + android:paddingRight="16dp"> - diff --git a/src/main/res/layout/conversation_item_footer.xml b/src/main/res/layout/conversation_item_footer.xml index 43ed98cb0..4016775f0 100644 --- a/src/main/res/layout/conversation_item_footer.xml +++ b/src/main/res/layout/conversation_item_footer.xml @@ -1,6 +1,7 @@ + tools:visibility="visible" /> + tools:visibility="visible" /> + tools:visibility="visible" /> + tools:text="30 mins" /> + tools:visibility="gone" /> - + diff --git a/src/main/res/layout/conversation_item_update.xml b/src/main/res/layout/conversation_item_update.xml index 47fa6db8a..f2de99413 100644 --- a/src/main/res/layout/conversation_item_update.xml +++ b/src/main/res/layout/conversation_item_update.xml @@ -13,15 +13,6 @@ android:paddingLeft="28dp" android:paddingRight="28dp"> - - @@ -93,7 +95,9 @@ + android:layout_height="match_parent" + android:background="?android:attr/windowBackground" + /> + - + + android:text="@string/chat_new_channel_hint" /> + + diff --git a/src/main/res/layout/instant_onboarding_activity.xml b/src/main/res/layout/instant_onboarding_activity.xml index 2cfac5d46..6921c8b6b 100644 --- a/src/main/res/layout/instant_onboarding_activity.xml +++ b/src/main/res/layout/instant_onboarding_activity.xml @@ -1,7 +1,15 @@ - + + + android:background="?android:attr/windowBackground"> + + diff --git a/src/main/res/layout/log_view_activity.xml b/src/main/res/layout/log_view_activity.xml index d17fd7a87..9d6e1f4eb 100644 --- a/src/main/res/layout/log_view_activity.xml +++ b/src/main/res/layout/log_view_activity.xml @@ -1,9 +1,16 @@ - - - \ No newline at end of file + + + diff --git a/src/main/res/layout/new_contact_activity.xml b/src/main/res/layout/new_contact_activity.xml index 75d230350..52bd86423 100644 --- a/src/main/res/layout/new_contact_activity.xml +++ b/src/main/res/layout/new_contact_activity.xml @@ -4,14 +4,17 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" android:fillViewport="true" tools:context=".contacts.NewContactActivity"> + android:layout_height="wrap_content" + app:elevation="0dp"> - - - - diff --git a/src/main/res/layout/profile_avatar_item.xml b/src/main/res/layout/profile_avatar_item.xml new file mode 100644 index 000000000..ab7ed97bb --- /dev/null +++ b/src/main/res/layout/profile_avatar_item.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + diff --git a/src/main/res/layout/profile_create_activity.xml b/src/main/res/layout/profile_create_activity.xml index ef06b9259..4bebd6258 100644 --- a/src/main/res/layout/profile_create_activity.xml +++ b/src/main/res/layout/profile_create_activity.xml @@ -2,14 +2,17 @@ + + + + + diff --git a/src/main/res/layout/profile_settings_fragment.xml b/src/main/res/layout/profile_fragment.xml similarity index 100% rename from src/main/res/layout/profile_settings_fragment.xml rename to src/main/res/layout/profile_fragment.xml diff --git a/src/main/res/layout/profile_settings_item.xml b/src/main/res/layout/profile_settings_item.xml deleted file mode 100644 index 1a57eec3a..000000000 --- a/src/main/res/layout/profile_settings_item.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/main/res/layout/profile_status_item.xml b/src/main/res/layout/profile_status_item.xml index fbeace308..0dc5e6158 100644 --- a/src/main/res/layout/profile_status_item.xml +++ b/src/main/res/layout/profile_status_item.xml @@ -4,15 +4,18 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:focusable="true" - android:padding="16dp"> + android:paddingTop="8dp" + android:paddingBottom="8dp"> + android:textColorLink="?attr/emoji_text_color" + android:background="?attr/contact_list_divider"/> diff --git a/src/main/res/layout/profile_text_item.xml b/src/main/res/layout/profile_text_item.xml new file mode 100644 index 000000000..bd7e2b9f2 --- /dev/null +++ b/src/main/res/layout/profile_text_item.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/src/main/res/layout/profile_text_item_button.xml b/src/main/res/layout/profile_text_item_button.xml new file mode 100644 index 000000000..027cf5180 --- /dev/null +++ b/src/main/res/layout/profile_text_item_button.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/src/main/res/layout/profile_text_item_small.xml b/src/main/res/layout/profile_text_item_small.xml new file mode 100644 index 000000000..ff0cf958d --- /dev/null +++ b/src/main/res/layout/profile_text_item_small.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/src/main/res/layout/proxy_settings_activity.xml b/src/main/res/layout/proxy_settings_activity.xml index 4570f22f4..45dae97a3 100644 --- a/src/main/res/layout/proxy_settings_activity.xml +++ b/src/main/res/layout/proxy_settings_activity.xml @@ -1,9 +1,16 @@ - + + @@ -21,3 +28,5 @@ android:layout_height="wrap_content" /> + + diff --git a/src/main/res/layout/registration_activity.xml b/src/main/res/layout/registration_activity.xml index e6047c32e..500387aae 100644 --- a/src/main/res/layout/registration_activity.xml +++ b/src/main/res/layout/registration_activity.xml @@ -1,10 +1,18 @@ - + + + + diff --git a/src/main/res/layout/scribble_select_sticker_activity.xml b/src/main/res/layout/scribble_select_sticker_activity.xml index 6cb5b84d6..50b2e07cf 100644 --- a/src/main/res/layout/scribble_select_sticker_activity.xml +++ b/src/main/res/layout/scribble_select_sticker_activity.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" android:orientation="vertical"> + - + - + + + diff --git a/src/main/res/layout/web_view_activity.xml b/src/main/res/layout/web_view_activity.xml index ccb617a01..7dccdb72a 100644 --- a/src/main/res/layout/web_view_activity.xml +++ b/src/main/res/layout/web_view_activity.xml @@ -3,6 +3,8 @@ - + + + diff --git a/src/main/res/menu/account_item_context.xml b/src/main/res/menu/account_item_context.xml index 32a27fae3..f29516dd5 100644 --- a/src/main/res/menu/account_item_context.xml +++ b/src/main/res/menu/account_item_context.xml @@ -8,6 +8,9 @@ + + diff --git a/src/main/res/menu/conversation.xml b/src/main/res/menu/conversation.xml index d21b28434..2cbf9a2c9 100644 --- a/src/main/res/menu/conversation.xml +++ b/src/main/res/menu/conversation.xml @@ -25,10 +25,10 @@ android:visible="false" app:showAsAction="always"/> - + app:showAsAction="always" /> diff --git a/src/main/res/menu/group_create.xml b/src/main/res/menu/group_create.xml index 34eee4d8e..3d96c1e46 100644 --- a/src/main/res/menu/group_create.xml +++ b/src/main/res/menu/group_create.xml @@ -2,7 +2,7 @@

                              - diff --git a/src/main/res/menu/profile_common.xml b/src/main/res/menu/profile_common.xml index 2ae4969d3..7ec7330a6 100644 --- a/src/main/res/menu/profile_common.xml +++ b/src/main/res/menu/profile_common.xml @@ -8,7 +8,8 @@ + android:icon="@drawable/ic_create_white_24dp" + app:showAsAction="always"/> منح إحدى الأذونات مطلو استمر - + رسالة مشفرة اختر اللغة… diff --git a/src/main/res/values-az/strings.xml b/src/main/res/values-az/strings.xml index c3127d11c..36e2aec07 100644 --- a/src/main/res/values-az/strings.xml +++ b/src/main/res/values-az/strings.xml @@ -168,8 +168,6 @@ 2 saat üçün 6 saat üçün - - Bu qrupu tərk etmək istədiyinizə əminsiniz? Mesajları yönləndirin %1$sə-? Faylı ixrac etmək? Faylların ixracı cihazınızdakı hər hansı digər tətbiqlərə daxil olmağa imkan verəcəkdir. \n\n Razısan? Bu kontaktı bloklamaq? Bu kontaktdan artıq mesaj qəbul etməyəcəksiniz. @@ -398,8 +396,9 @@ %1$silə əlaqə qurmaq üçün bunu skan edin İnternet bağlantısı yoxdur, QR kodunu qura bilmir. %1$s yoxlanıldı. + %1$sDoğrula bilmir - + %1$süçün quraşdırma dəyişdirildi Cavab ver @@ -418,7 +417,7 @@ Delta Chat yer əlavə etmək üçün yer icazə tələb edir, lakin daimi olaraq rədd edilmişdir. \"İcazələr\"-i seçin və\"Yerləşmə\" izni verin. Delta Chat, fotoşəkilləri, videoları və ya səsləri əlavə etmək və ya ixrac etmək üçün saxlama icazəsini tələb edir, lakin bu daimi olaraq rədd edildi. Xahiş edirik tətbiq ayarları menyusuna davam edin, \"İzinlər\" seçin və \"Yaddaş\" funksiyasını aktivləşdirin. Delta Chat yer əlavə etmək üçün yer icazə tələb edir, lakin daimi olaraq rədd edilmişdir. \"İcazələr\"-i seçin və\"Yerləşmə\" izni verin. - + Şifrələnmiş mesaj Dil səç diff --git a/src/main/res/values-bg/strings.xml b/src/main/res/values-bg/strings.xml index 43fe5dc0d..7cdd0eec9 100644 --- a/src/main/res/values-bg/strings.xml +++ b/src/main/res/values-bg/strings.xml @@ -135,7 +135,6 @@ %d избрани %d избрани - Аз Чернова Изображение @@ -200,13 +199,18 @@ Нов чат Нова група Клониране на чат - + Списък за разпространение + Списъци за разпространение + Нов списък за разпространение Добавяне на получатели + Редактиране на списък за разпространение + Име на списък за разпространение + Моля, въведете име за списъка за разпространение Изпращане Включване/изключване на Emoji клавиатура @@ -290,7 +294,6 @@ Добавяне към началния екран Дарение - Спиране на звука за 1 час Спиране на звука за 8 часа Спиране на звука за 1 ден @@ -325,8 +328,6 @@ Покана за видеочат Поканени сте във видеочат, натиснете върху%1$s, за да се присъедините - - Сигурни ли сте, че искате да напуснете тази група? Да бъде ли изтрито %d съобщение? @@ -342,7 +343,7 @@ Чат с %1$s? Премахване на %1$s от групата? - + Да бъдат ли премахнати %1$s от списъка за разпространение? Искате ли да отворите тази връзка? @@ -373,6 +374,7 @@ Изпращане на съобщение до %1$s. + Получателите в един списък за разпространение получават съобщения в чат \"само за четене\" с Вас. Другите ще виждат тази група едва след като изпратите първо съобщение. Приплъзнете, за да откажете @@ -471,7 +473,7 @@ Мрежа от квадрати Изпращане на съобщение - + %1$s промени своя адрес от %2$s на %3$s Променихте своя email адрес от %1$s на %2$s.\n\nАко от тук нататък изпратите съобщение до проверена група, контактите в нея автоматично ще заменят стария с новия Ви адрес.\n\nСилно се препоръчва да извършите настройка в предишния си доставчик на електронна поща така, че всички email съобщения да се препращат към новия Ви email адрес. В противен случай е възможно да не получавате съобщения от контакти, които все още не са получили новия Ви адрес. @@ -799,8 +801,6 @@ Премахнахте члена %1$s Членът %1$s е премахнат от %2$s - - Напуснахте групата. Групата е напусната от %1$s. Изтрихте изображението на групата. @@ -844,11 +844,13 @@ Установихте таймера на изчезващите съобщения на %1$s седмици. Таймерът на изчезващите съобщения е установен на %1$s седмици от %2$s. - + %1$s изпрати съобщение от друго устройство. От тук нататък е гарантирано, че съобщенията ще бъдат криптирани от край до край. Докоснете, за да научите повече. От тук нататък е гарантирано, че всички съобщения в този чат са криптирани от край до край.\n\nКриптирането от край до край запазва поверителността на съобщенията между вас и вашите партньори в чата. Дори Вашият e-mail доставчик не може да ги прочете. + %1$s изпрати съобщение от друго съобщение. Докоснете, за да научите повече. + Криптирането от край до край повече не може да бъде гарантирано, вероятно защото %1$s преинсталира Delta Chat или изпрати съобщение от друго устройство.\n\nБихте могли да се срещнете с него/нея лично, да сканирате неговия/нейния QR код отново и отново да установите гарантирано криптиране от край до край. ⚠️%1$s изисква криптиране от край до край, което все още не е установено за този чат. Докоснете, за да научите повече. За да установите криптиране от край до край, бихте могли да се срещате с лицата, с които желаете да контактувате, лично и да сканирате техните QR кодове, за да ги въведете. @@ -911,11 +913,12 @@ Все още не може да бъде установено гарантирано криптиране от край до край, но вече можете да пратите съобщение. %1$s е проверен. + Не може да бъде проверен %1$s. Проверен от%1$s Представен от мен - + Настройката за %1$s е сменена. За да се гарантира криптирането от край до край, можете да добавяте в тази група само контакти, отбелязани със зелена отметка.\n\nБихте могли да се срещнете с лицата, с които желаете да контактувате, лично и да сканирате техните QR кодове, за да ги въведете. Изберете чат, към който да бъде пратено съобщението @@ -959,7 +962,7 @@ Обръщане Завъртане - + Криптирано съобщение diff --git a/src/main/res/values-bqi/strings.xml b/src/main/res/values-bqi/strings.xml index 93bb0cb04..aab6c60fd 100644 --- a/src/main/res/values-bqi/strings.xml +++ b/src/main/res/values-bqi/strings.xml @@ -5,6 +5,10 @@ خا رڌ روفتن پیتینیڌن + + لینگ + + اسکن هری ن پسند @@ -24,28 +28,46 @@ ٱووڌن ز نۊ ٱووڌن پاک کردن + پاک کردن سی مو + پاک کردن سی پوی زبار ورۊ کردن ایموجی زمینه + + «%1$s» پیوست بۊ؟ وورگشتن بستن + بستن نیمدری + فوروارد + وورکل + وورنشۊوی + دیندا ز نۊ بفشن + آلشت وابیڌه + آلشت پیوم بایگۊوی و در زیڌن ز بایگۊوی بؽ دونگ + بؽ دونگ + پیوما بؽڌارکۊنی + یو ری پوی منتورا ای گوفت ۉ لوفت، ٱر دلتا چت ن و کار بگرن ائمال ابۊ. ولی هنی ترن پیوما ن لف گیری، زفت وو فوروارد کونن. زفت کردن گوفت ۉ لوفت وارسگر + برنومه یل وو وارسگرا پوروفایل + پوی پوروفایلا + پوروفایل هیم سکویی نومگه ٱسلی ناڌن پا گوفت ۉ لوفت نشۉ داڌن پیوم کامل... پوی ن خونده بیڌه بزݩ + نشووه ناڌن و عونوان خونده وابیڌه علامت و عونوان خونده بیڌه @@ -54,6 +76,7 @@ فعال کردن بار ونی شؽواتا ز در همیشه + شؽواتا دیر ز دسرس هی بوگوئشن هیم ی کرت نشۉ داڌن هوشدار نشۉ داڌن رزم @@ -62,15 +85,21 @@ هیچ ی دمۉ... ٱنجوم وابی + وورگندن آفلاین نیایی ختا ختا: %1$s + برنومه ای سی ای نوع داده نجۊرست. + هیچ گشت گری نپۊرسته. %1$s ن نجوست. + + نتره %1$s ن زفت کونه. من ویرگه لف گیری وابی. هومدنگۉݩ نشۊوی ایمیل + نشۊوی ایمیل موشکل داره. رزم رزم مۉجۊڌ سکو @@ -109,6 +138,10 @@ %d پیوم %d پیوم + + %d کار ولوم + %d کار ولوم + %d منتور %d منتور @@ -118,7 +151,7 @@ %d تا پسند وابی %d تا پسند وابی - + پسند وابیڌه: مو پؽش هؽل شؽوات @@ -127,12 +160,20 @@ گیف استیکر + ٱووردن و مجمۊعه استیکر + سی ٱووردن برچسب ری «گۊشیڌن دوبلگه برچسب» بزنین، ی لم دوبلگه ای سی کتن برچسب خوتووݩ وورکل کۊنین وو برچسبا ن و اوچو بکشین + گۊشیڌن دوبلگه استیکر شؽواتا دونگ پیوم دونگ + فوروارد وابیڌه + پیوم فوروارد وابیڌه + + و دست %1$s فوروارد وابیڌه فیلم سندا هومدنگ + روبات شؽواتگر گرؽڌن @@ -144,16 +185,33 @@ شؽواتا وو فیلما فایل فایلا + فشناڌن فایلا ٱسلی وو شؽواتا تپنیڌه نوابیڌه + + پسند ز من فایلا برنومه برنومه یل + نشۊوی پسند کوݩ برنومه + ٱر سامووݩ بۊ، URL و جا URL پؽش فرز، و عونوان پسند کوݩ برنومه و کار اروه. + سی یک رسۊوی ری «فشناڌن» بزنین + هووه + بازی یل + ٱوزار + هندا + تیجنیڌن + ٱووردن و گوفت ۉ لوفت + + پیتینیڌن ناشناس سوز سوئر کوۊ + نارنجی + یشمی بنوش + سوئرکوۊ اسبؽڌ گپ کردن @@ -168,12 +226,20 @@ هومدنگ نۊ + ٱووردن هومدنگ و هالت دستی گوفت ۉ لوفت نۊ جرگه نۊ - + + ناڌن پا گوفت ۉ لوفت وا... + وورکل گوفت ۉ لوفت نۊ ز ای گوفت ۉ لوفت + نومگه Broadcast + نومگه یل Broadcast + نومگه Broadcast نۊ + + آلشت نومگه Broadcast فشناڌن آلشت جرگه نوم وو شؽوات جرگه @@ -249,7 +315,7 @@ گوفت ۉ لوفت وا %1$s؟ پاک کردن %1$s ز جرگه؟ - + %1$s ز نومگه Broadcast پاک بۊ؟ اخۊی ای لینگن بۊگۊشی؟ diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml index 13455e0be..8806e6e2b 100644 --- a/src/main/res/values-ca/strings.xml +++ b/src/main/res/values-ca/strings.xml @@ -150,7 +150,6 @@ %d triat %d seleccionats - Jo Esborrany Imatge @@ -228,13 +227,18 @@ Xateja amb… Clona el xat - + Llista de difusió + Llistes de difusió + Llista de difusió nova Afegeix destinataris + Edita la llista de difusió + Nom de la llista de difusió + Poseu el nom de la llista de difusió. Envia Canvia al teclat d\'emojis @@ -328,7 +332,6 @@ Afegeix a la pantalla d\'inici Feu un donatiu - Silencia 1 hora Silencia 8 hores Silencia 1 dia @@ -363,8 +366,6 @@ Invitació a un xat de vídeo Us han convidat a un xat de vídeo, feu clic a %1$s per unir-vos-hi. - - Segur que voleu deixar aquest grup? ¿Esborrar %d xat de tots els teus dispositius? ¿Esborrar %d xats de tots els teus dispositius? @@ -390,7 +391,7 @@ Voleu xatejar amb %1$s? Voleu eliminar %1$s del grup? - + Voleu eliminar %1$s de la llista de difusió? Voleu obrir aquest enllaç? @@ -421,6 +422,7 @@ Envia un missatge a %1$s. + En una llista de difusió, els destinataris rebran missatges en mode de només lectura en un xat amb tu. Els altres membres només veuran aquest grup després que hi envieu el primer missatge. Llisca per cancel·lar @@ -529,7 +531,7 @@ Graella quadrada Envia el missatge - + %1$s ha canviat la seva adreça de %2$s a %3$s Heu canviat la vostra adreça de correu electrònic de %1$s a %2$s.\n\nSi ara envieu un missatge a un grup verificat, els contactes del grup canviaran de forma automàtica l\'adreça antiga per la nova.\n\nUs recomanem que configureu el compte antic a fi que us reenvïi els missatges a l\'adreça nova. Si no ho feu, podríeu perdre missatges de contactes que encara no hagin actualitzat la vostra adreça. @@ -886,8 +888,6 @@ Heu eliminat el membre %1$s. Membre %1$s eliminat per %2$s. - - Heu abandonat el grup. %1$sha abandonat el grup Heu esborrat la imatge de grup. @@ -931,11 +931,13 @@ Heu definit el temporitzador dels missatges fonedissos a %1$s setmanes. %2$s ha definit el temporitzador dels missatges efímers a %1$s setmanes. - + %1$s ha enviat un missatge des d\'un altre dispositiu. Us garantim que a partir d\'ara els missatges són xifrats d\'extrem a extrem. Toqueu per a obtenir més informació. Ara es garanteix que tots els missatges d\'aquest xat són xifrats d\'extrem a extrem.\n\nEl xifratge d\'extrem a extrem manté privats els missatges entre vós i els companys de xat. Ni tan sols el vostre proveïdor de correu electrònic pot llegir-los. + %1$s ha enviat un missatge des d\'un altre dispositiu. Toqueu per a obtenir més informació. + No es pot garantir el xifrat d\'extrem a extrem, probablement perquè %1$s ha reinstal·lat Delta Chat o ha enviat un missatge des d\'un altre dispositiu.\n\n Podeu trobar-vos físicament amb la persona i tornar a escanejar el seu codi QR per tomar-hi a tenir xifrat d\'extrem a extrem. %1$srequereix xifratge d\'extrem a extrem, que encara no s\'ha configurat per a aquest xat. Toqueu per a obtenir més informació. Per a establir xifratge d\'extrem a extrem, heu de trobar-vos amb els contactes en persona i escanejar el seu codi QR per a poder afegir-los. @@ -998,11 +1000,12 @@ Encara no es pot garantir el xifrat punt-a-punt, però ja podeu enviar un missatge. %1$s verificat. + No es pot verificar%1$s Afegit per %1$s Afegit per mi - + Configuració canviada per %1$s Per a garantir el xifrat extrem a extrem, només podeu afegir a aquest grup contactes que tinguin la marca verda.\n\nPodeu trobar-vos en persona amb els contactes per a escanejar els seus codis QR i poder-los afegir. Trieu el xat on enviar el missatge @@ -1046,7 +1049,7 @@ Capgira Gira - + Missatge encriptat @@ -1176,7 +1179,8 @@ Prem aquí per rebre missatges mentre Delta Chat és en segon pla. Ja heu autoritzat Delta Chat a rebre missatges en segon pla.\n\nSi encara no us arriben els missatge, reviseu els paràmetres de sistema. - + Què hi ha de nou?\n\n❤️‍🔥 Un selector d\'emojis nou amb més emojis\n\n🎮 Aplicacions al xat millorades: rebeu notificacions i obriu les aplicacions suportades segons el context. P. ex. obriu una entrada afegida al calendari directament.\n\n👍 Rebeu notificacions de les reaccions dels vostres missatges\n\n... 🛠️ Correccions i moltes coses més a %1$s + ℹ️ S\'ha mogut l\'opció «Canvia el perfil»: toqueu en la vostra imatge de perfil en la cantonada superior de la finestra principal per a afegir o canviar perfils 💡 diff --git a/src/main/res/values-ckb/strings.xml b/src/main/res/values-ckb/strings.xml index fb06eddf4..d0c7788f6 100644 --- a/src/main/res/values-ckb/strings.xml +++ b/src/main/res/values-ckb/strings.xml @@ -233,8 +233,6 @@ بانگهێشتی وتووێژی ڤیدیۆیی تۆ بانگهێشت کراوی بۆ وتووێژێکی ڤیدیۆیی، بۆ بەشدار بوون لەسەر %1$s کرتە بکە. - - دڵنیای دەتەوێت ئەم کۆڕە بەجێ بێڵیت؟ ئەو پەیامانە دەنێریت بۆ %1$s؟ ئەو پەیامانە دەنێریت بۆ نێو %1$dوتووێژ؟ پێوەلکاوەکە هەناردە دەکەیت؟ هەناردەکردنی پێوەلکاوەکان وادەکات نەرمامێرەکانی دیکەی سەر مۆبایلەکەت بتوانن دەستیان بەو بەڵگە هەناردەکراوە بگات.\n\n بەردەوام دەبیت؟ @@ -497,8 +495,9 @@ دەتەوێت ناونیشانی ئیمەیلێکی نوێ لەسەر \"%1$s\" درووست بکەیت و لەوێ بچیتە ژوورەوە؟ ناتوانی لە کۆدی QRە سکان کراوەکە کەڵک بگریت بۆ پێکهێنانی هەژمارێکی نوێ. %1$s پشتڕاست کرایەوە + %1$s پشتڕاست ناکرێتەوە. - + ڕێکخستن بۆ %1$s گۆڕا. وەڵام دانەوە @@ -517,7 +516,7 @@ بۆ هەناردنی پەیامی دەنگی، بچۆ بەشی ڕێکخستنەکانی نەرمامێرەکە، لە بەشی \"ڕێگەپێدان\"دا، \"مایک\" چالاک بکەوە. بۆ هەناردن و وەرگرتنی پەڕگەکان، بچۆ بەشی ڕێکخستنەکانی نەرمامێرەکە، لە بەشی \"ڕێگەپێدان\"دا، \"بیرگە\" چالاک بکەوە. بۆ لکاندنی شوێنێک، بچۆ بەشی ڕێکخستنەکانی نەرمامێرەکە، لە بەشی \"ڕێگەپێدان\"دا، \"شوێن\" چالاک بکەوە. - + پەیامی شفرەکراو diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml index adfe95370..17edffafb 100644 --- a/src/main/res/values-cs/strings.xml +++ b/src/main/res/values-cs/strings.xml @@ -56,6 +56,7 @@ Uložit Chat Multimédia + Aplikace a multimédia Profil Hlavní nabídka Chatovat @@ -168,7 +169,6 @@ %d vybráno %d vybráno - Rozepsané Obrázek @@ -212,6 +212,7 @@ Aplikace Adresa URL výběru aplikací Pokud je nastavena, tato URL adresa bude použita pro výběr aplikací namísto té výchozí + Pro sdílení stiskněte „Odeslat” Domů Hry Nástroje @@ -250,13 +251,18 @@ Chatovat s... Klonovat chat - + Seznam vysílání + Seznamy vysílání + Nový seznam vysílání Přidat příjemce + Upravit seznam vysílání + Název seznamu vysílání + Prosím, zadejte název seznamu vysílání. Odeslat Přepnout emoji klávesnici @@ -293,6 +299,7 @@ Exportovat přílohu Exportovat přílohy Všechna multimédia + Všechny aplikace a multimédia Ukázat v chatu Zobrazit aplikaci v chatu @@ -350,7 +357,6 @@ Přidat na domovskou obrazovku Darovat - Ztlumit na 1 hodinu Ztlumit na 8 hodin Ztlumit na 1 den @@ -387,8 +393,6 @@ Pozvánka k videohovoru Byli jste pozváni k videohovoru, připojte se stisknutím %1$s - - Opravdu si přejete opustit tuto skupinu? Smazat %d chat ze všech vašich zařízení? Smazat %d chaty ze všech vašich zařízení? @@ -420,7 +424,7 @@ Přejete si chatovat s uživatelem %1$s? Přejete si odstranit uživatele %1$s ze skupiny? - + Přejete si odstranit uživatele %1$s ze seznamu vysílání? Přejete si otevřít tento odkaz? @@ -457,6 +461,7 @@ Poslat zprávu uživateli %1$s. + Seznam vysílání slouží k posílání zpráv příjemcům v chatu, který je pro ně pouze pro čtení. Ostatní tuto skupinu uvidí až poté, co odešlete první zprávu. Zrušit tahem @@ -565,7 +570,7 @@ Mřížka čtverců Odeslat zprávu - + Uživatel %1$s změnil svou adresu z %2$s na %3$s Změnili jste svou e-mailovou adresu z %1$s na %2$s.\n\nPokud nyní pošlete zprávu ověřené skupině, všem kontaktům v ní se vaše adresa aktualizuje na novou.\n\nJe důrazně doporučeno, abyste u svého starého poskytovatele nastavili přesměrování všech e-mailů na novou adresu, jinak byste mohli přijít o zprávy od kontaktů, které vaši novou adresu dosud nedostaly. @@ -922,8 +927,6 @@ Odebrali jste člena %1$s. Člen %1$s byl odebrán uživatelem %2$s. - - Opustili jste skupinu. Uživatel %1$s opustil skupinu. Smazali jste obrázek skupiny. @@ -967,11 +970,13 @@ Samomazací zprávy vyprší po %1$s týdnech ode mě. Uživatel %2$s změnil časovač mizejících zpráv na %1$s týdnů. - + Uživatel %1$s odeslal zprávu z jiného zařízení. Nyní je garantováno koncové šifrování vašich zpráv. Stiskněte pro více informací. Nyní je garantováno, že všechny zprávy v tomto chatu jsou koncově šifrovány.\n\nKoncové šifrování zajišťuje soukromí mezi vámi a vašimi kontakty. Nedokáže je přečíst ani váš poskytovatel e-mailu. + Uživatel %1$s odeslal zprávu z jiného zařízení. Stiskněte pro více informací. + Koncové šifrování již nemůže být garantováno, pravděpodobně protože uživatel %1$s přeinstaloval Delta Chat nebo odeslal zprávu z jiného zařízení.\n\nPro obnovení garantovaného koncového šifrování se sejděte osobně a naskenujte si své QR kódy. ⚠️%1$s vyžaduje koncové šifrování, které pro tento chat ještě není nastaveno. Stiskněte pro více informací. Pro navázání koncově šifrovaného spojení se můžete se svými kontakty setkat osobně a naskenovat jejich QR kódy. @@ -1033,13 +1038,15 @@ Navazování koncově šifrovaného spojení, prosím, čekejte... Zatím nebylo navázáno koncově šifrované spojení, ale již nyní můžete posílat zprávy. + Vypadá to, že to trvá trochu déle. Možná jste vy nebo váš kontakt offline.\n\nProces však pokračuje na pozadí. Zatím můžete dělat něco jiného... Uživatel %1$s ověřen. + Navázání garantovaného koncově šifrovaného spojení s uživatelem %1$s selhalo. Ověřeni uživatelem %1$s. Ověřeni mnou - + Nastavení pro uživatele %1$s změněno. Aby mohlo být garantováno koncové šifrování, můžete do této skupiny přidávat pouze uživatele se zeleným zaškrtávátkem.\n\nSe svými kontakty se můžete setkat osobně a naskenovat jejich QR kód, abyste je ověřili. Vyberte chat, do kterého chcete zprávu poslat @@ -1083,7 +1090,7 @@ Zrcadlení Otočení - + Šifrovaná zpráva @@ -1213,7 +1220,8 @@ Stiskem nastavíte přijímání zpráv, když je aplikace Delta Chat na pozadí. Přijímání zpráv na pozadí jste již aplikaci Delta Chat povolili.\n\nV případě, že vám zprávy na pozadí stále nechodí, prosím zkontrolujte svá systémová nastavení. - + Co je nového?\n\n❤️‍🔥 Nová nabídka emoji s více druhy emoji\n\n🎮 Vylepšené aplikace v chatu: Oznámení a podpůrné aplikace přímo v kontextu chatu, např. odkaz na novou nové položky z kalendáři\n\n👍 Oznámení o reakcích na zprávy\n\n... 🛠️ OPRAVY a DALŠÍ na %1$s + ℹ️ Volba \"Přepnout profil\" byla přesunuta: Pro přidávání či přepínání profilů stiskněte svůj profilový obrázek v horním rohu hlavní obrazovky. diff --git a/src/main/res/values-da/strings.xml b/src/main/res/values-da/strings.xml index 531074b5d..9ee07b761 100644 --- a/src/main/res/values-da/strings.xml +++ b/src/main/res/values-da/strings.xml @@ -252,8 +252,6 @@ Videochat-invitation Du er inviteret til en videochat, klik %1$s for at tilslutte dig. - - Forlad denne gruppe? Slet %d besked? @@ -633,8 +631,9 @@ Opret ny e-mail adresse på \"%1$s\" og log ind der?\n\nDin eksisterende konto bliver ikke slettet. Brug \"Skift konto\" for at skifte imellem dine konti. Den skannede QR-kode kan ikke bruges til at opsætte en ny konto. %1$s bekræftet. + Kan ikke bekræfte %1$s - + Ændret opsætning for %1$s Svar @@ -657,7 +656,7 @@ Tegn hvor som helst for at sløre Roter - + Krypteret besked diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 83b1cc0db..4265e2905 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -34,6 +34,8 @@ Aktualisieren Emoji Anhang + + \"%1$s\" anhängen? Zurück Schließen Fenster schließen @@ -58,6 +60,8 @@ Medien Apps & Medien Profil + Alle Profile + Aktuelles Profil Hauptmenü Chat starten Ganze Nachricht anzeigen… @@ -92,6 +96,8 @@ Keine passende App zum Öffnen dieses Dateityps gefunden Kein Internetbrowser installiert. Kann %1$s nicht finden + + Kann \"%1$s\" nicht speichern. In Zwischenablage kopiert. Kontakte E-Mail-Adresse @@ -151,7 +157,7 @@ %d ausgewählt %d ausgewählt - + Ausgewählt: Ich Entwurf Bild @@ -195,6 +201,7 @@ Apps App-Picker-URL Wenn gesetzt, wird diese URL als App-Picker anstelle der Voreinstellung verwendet. + Zum Teilen auf \"Senden\" klicken Start Spiele Tools @@ -233,14 +240,32 @@ Chatte mit… Chat klonen - + Broadcast-Liste + Broadcast-Listen + Neue Broadcast-Liste + + Kanal + + Kanäle + + Neuer Kanal Empfänger hinzufügen + Broadcast-Liste bearbeiten + Broadcast-Listen-Name + Bitten einen Namen für die Broadcast-Liste eingeben. + + Name des Kanals + E-Mail + + Neue E-Mail + + Betreff Senden Emojis einblenden Gruppe bearbeiten @@ -250,6 +275,7 @@ Archivieren rückgängig Dateien anhängen Gruppe verlassen + Kanal verlassen Chat löschen Chat leeren @@ -334,6 +360,7 @@ Zum Startbildschirm hinzufügen Spenden + ❤️ Delta Chat gefällt Ihnen anscheinend sehr gut!\n\nBitte spenden Sie, damit Delta Chat weiterhin kostenlos bleibt.\n\nDelta Chat ist zwar kostenlos und Open Source, die Entwicklung kostet jedoch Geld. Helfen Sie uns, Delta Chat unabhängig zu halten und in Zukunft noch besser zu machen.\n\nhttps://delta.chat/donate Stumm für 1 Stunde Stumm für 8 Stunden @@ -370,7 +397,8 @@ Sie sind zu einem Videochat eingeladen, klicken Sie auf %1$s , um teilzunehmen. - Diese Gruppe verlassen? + + Diesen Chat verlassen? %d Chat von allen Geräten löschen? %d Chats von allen Geräten löschen? @@ -396,8 +424,10 @@ Chat mit %1$s starten? %1$s aus der Gruppe löschen? - + %1$s von der Broadcast-Liste entfernen? + + %1$s vom Kanal entfernen? Diesen Link öffnen? @@ -427,7 +457,10 @@ Senden Sie eine Nachricht an %1$s. + In Broadcast-Listen erhalten die Empfänger die Nachrichten in einem Nur-Lesen-Chat. + + Kanäle dienen der Verbreitung von Nachrichten an viele Empfänger. Andere sehen diese Gruppe erst, nachdem Sie eine erste Nachricht gesendet haben. Schieben, um abzubrechen Tippen und halten, um eine Sprachnachricht aufzunehmen, loslassen um zu senden. @@ -437,6 +470,7 @@ Nachricht Archiviert Anfrage + Anfragen in Zählern und Notifications anzeigen Keine Nachrichten. Nachrichten an mich selbst Archivierte Chats werden hier angezeigt. @@ -535,7 +569,7 @@ Quadratisches Raster Nachricht senden - + %1$s hat die E-Mail-Adresse von %2$s nach %3$s geändert Sie haben Ihre E-Mail-Adresse von %1$s auf %2$s geändert.\n\nWenn Sie jetzt eine Nachricht an eine verifizierte Gruppe senden, wird dort automatisch die alte durch die neue Adresse ersetzt.\n\nEs wird dringend empfohlen, Ihren alten E-Mail-Anbieter so einzurichten, dass er alle E-Mails an Ihre neue E-Mail-Adresse weiterleitet. Andernfalls könnten Sie Nachrichten von Kontakten verpassen, die Ihre neue E-Mail-Adresse noch nicht erhalten haben. @@ -806,6 +840,7 @@ %1$s Nachricht Download max. verfügbar bis %1$s + Profil auswählen Profilbild auswählen Wählen Sie Ihr Profilbild aus Profilbild löschen @@ -892,8 +927,8 @@ Sie haben %1$s entfernt. %1$s entfernt von %2$s. - - Sie haben die Gruppe verlassen. + + Sie haben den Chat verlassen. Gruppe verlassen von %1$s. Sie haben das Gruppenbild gelöscht. @@ -937,11 +972,13 @@ Sie haben die Ablaufzeit verschwindender Nachrichten auf %1$s Wochen gesetzt. Ablaufzeit verschwindender Nachrichten auf %1$s Wochen gesetzt von %2$s. - + %1$s hat eine Nachricht von einem anderen Gerät gesendet. - Nachrichten sind von nun an garantiert Ende-zu-Ende-verschlüsselt. Tippen, um mehr zu erfahren. - Es ist nun garantiert, dass alle Nachrichten in diesem Chat Ende-zu-Ende verschlüsselt sind.\n\nDurch die Ende-zu-Ende-Verschlüsselung bleiben die Nachrichten zwischen Ihnen und Ihren Chat-Partnern privat. Nicht einmal Server, Provider order Relays können sie lesen. + Nachrichten sind Ende-zu-Ende-verschlüsselt. Tippen, um mehr zu erfahren. + Alle Nachrichten in diesem Chat sind Ende-zu-Ende verschlüsselt.\n\nDurch die Ende-zu-Ende-Verschlüsselung bleiben die Nachrichten zwischen Ihnen und Ihren Chat-Partnern privat. Nicht einmal Server, Provider oder Relays können sie lesen. + %1$s hat eine Nachricht von einem anderen Gerät gesendet. Tippen, um mehr zu erfahren. + Die Ende-zu-Ende-Verschlüsselung kann nicht mehr garantiert werden, wahrscheinlich weil %1$s Delta Chat neu installiert oder eine Nachricht von einem anderen Gerät gesendet hat.\n\nSie können sich persönlich treffen und den QR-Code erneut scannen, um die garantierte Ende-zu-Ende-Verschlüsselung wiederherzustellen. ⚠️ %1$s verlangt eine Ende-zu-Ende-Verschlüsselung, die für diesen Chat noch nicht hergestellt wurde. Tippen, um mehr zu erfahren. Um eine Ende-zu-Ende-Verschlüsselung herzustellen, können Sie Kontakte persönlich treffen und ihren QR-Code scannen. @@ -1000,16 +1037,19 @@ %1$s hat dich zu dieser Gruppe eingeladen.\n\nWarte auf die Antwort des Gerätes von %2$s... %1$s antwortet. Warte, zur Gruppe hinzugefügt zu werden... - Garantierte Ende-zu-Ende-Verschlüsselung wird aufgebaut, bitte warten... + Ende-zu-Ende-Verschlüsselung wird aufgebaut, bitte warten... Noch konnte keine garantierte Ende-zu-Ende-Verschlüsselung aufgebaut werden, aber Sie können bereits eine Nachricht senden. + Der Kontakt muss online sein, um fortzufahren.\n\nDieser Vorgang wird automatisch im Hintergrund fortgesetzt. %1$s eingeführt. - Kann keine garantierte Ende-zu-Ende-Verschlüsselung mit %1$s herstellen. + + Kann keine Ende-zu-Ende-Verschlüsselung mit %1$s herstellen. Eingeführt von %1$s Durch mich eingeführt - + Eingeführt + Geändertes Setup für %1$s Um Ende-zu-Ende-Verschlüsselung zu gewährleisten, können nur Kontakte mit grünem Häkchen zu dieser Gruppe hinzugefügt werden.\n\nSie könne Kontakte persönlich treffen und ihren QR-Code scannen, um sie einzuführen. Wählen Sie den Chat, an den die Nachricht gesendet werden soll @@ -1053,7 +1093,7 @@ Spiegeln Drehen - + Verschlüsselte Nachricht @@ -1184,6 +1224,9 @@ Sie haben Delta Chat bereits erlaubt, Nachrichten im Hintergrund zu empfangen.\n\nFalls keine Nachrichten eingehen, überprüfen Sie bitte auch Ihre Systemeinstellungen. + Was ist neu?\n\n💯 Die Ende-zu-Ende-Verschlüsselung ist jetzt dauerhaft. Vorhängeschlösser 🔒 gibt es nicht mehr!\n\n✉️ Klassische E-Mails ohne Ende-zu-Ende-Verschlüsselung sind mit einem Umschlag-Symbol gekennzeichnet\n\n😻 Neues, verbessertes Profil für alle Kontakte\n\n🔲 Neue Schaltfläche für den schnellen Zugriff auf Apps, die in einem Chat verwendet werden\n\n❤️ Bitte Spenden Sie und helfen uns, unabhängig zu bleiben und weiterhin Verbesserungen zu bringen: %1$s + Was ist neu?\n\n❤️‍🔥 Neuer Emoji-icker mit mehr Emojis\n\n🎮 In-Chat-App Verbesserungen: Benachrichtigungen erhalten und Apps im Kontext öffnen, z.B. einen hinzugefügten Kalendereintrag direkt anzeigen\n\n👍 Lassen Sie sich über Reaktionen auf Ihre Nachrichten benachrichtigen\n\n... 🛠️ FIXES und NOCH MEHR unter %1$s + ℹ️ \"Profil wechseln\" verschoben: Tippen Sie auf Ihr Profilbild in der oberen Ecke des Hauptbildschirms, um Profile hinzuzufügen oder zu wechseln 💡. diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml index 86d34f668..b32b7748a 100644 --- a/src/main/res/values-el/strings.xml +++ b/src/main/res/values-el/strings.xml @@ -124,7 +124,6 @@ %d επιλεγμένο %d επιλεγμένα - Εγώ Πρόχειρο Εικόνα @@ -182,9 +181,11 @@ Νέα Επαφή Νέα Συνομιλία Νέα ομάδα - + Λίστα Μέσων + Λίστες Μέσων + Νέα Λίστα Μέσων Προσθήκη Παραλήπτη Αποστολή @@ -295,8 +296,6 @@ Πρόσκληση Βιντεοκλήσης Έχετε προσκληθεί σε βινετοκλήση, πατήστε %1$s για να συμμετέχετε - - Είστε σίγουρος/-η ότι θέλετε να βγείτε από αυτή την ομάδα; Διαγραφή %d μηνύματος; @@ -312,7 +311,7 @@ Συνομιλία με %1$s; Αφαίρεση του/της %1$s από την ομάδα; - + Αφαίρεση %1$s από την λίστα εκπομπών; Θέλετε να ανοίξετε αυτό τον σύνδεσμό; @@ -428,7 +427,7 @@ Οι ιδιωτικές εφαρμογές που λαμβάνονται ή αποστέλλονται σε οποιαδήποτε συνομιλία θα εμφανίζονται εδώ. Προεπισκόπιση Αποστολή μηνύματος - + %1$s άλλαξαν την διεύθυνσή τους από %2$s σε %3$s Αλλάξατε την διεύθυνσή σας από %1$s σε %2$s.\n\nΤώρα, εάν στείλετε ένα μήνυμα σε μια επαληθευμένη ομάδα, οι επαφές εκεί θα αντικαταστήσουν αυτόματα την παλιά με τη νέα σας διεύθυνση.\n\nΣυνιστάται ιδιαίτερα να ρυθμίσετε τον παλιό σας πάροχο email ώστε να προωθεί όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου στη νέα σας διεύθυνση ηλεκτρονικού ταχυδρομείου. Διαφορετικά, ενδέχεται να χάσετε μηνύματα επαφών που δεν έχουν λάβει ακόμη τη νέα σας διεύθυνση. @@ -680,8 +679,6 @@ Αφαίρεσες τον/την %1$s. Ο/Η %2$s αφαίρεσε τον/την %1$s. - - Έφυγες απ\' την ομάδα. Ο/Η %1$s έφυγε απ\' την ομαδα. Διαγράψατε την εικόνα της ομάδας. @@ -776,8 +773,9 @@ %1$s απάντησε, αναμονή για να προστεθεί στην ομάδα… %1$s επαληθεύτηκε. + Αδυναμία επαλήθευσης %1$s. - + Άλλαξε η ρύθμιση για %1$s. Επιλέξτε συνομιλία για να στείλετε το μήνυμα @@ -811,7 +809,7 @@ Εναλλαγή Περιστροφή - + Κρυπτογραφημένο μήνυμα diff --git a/src/main/res/values-eo/strings.xml b/src/main/res/values-eo/strings.xml index 7e41494ff..66d441dcf 100644 --- a/src/main/res/values-eo/strings.xml +++ b/src/main/res/values-eo/strings.xml @@ -130,7 +130,6 @@ %delektitaj %delektita - Mi Malneto Bildo @@ -189,9 +188,11 @@ Nova kontakto Nova babilo Nova grupo - + Elsenda Listo + Elsendaj Listoj + Nova Elsenda Listo Aldoni Ricevantojn Sendi @@ -278,8 +279,6 @@ Dosiero konservita kiel \"%1$s\". - - Ĉu vi estas certa, ke vi volas forlasi tiun ĉi grupon? Plusendi mesaĝojn al %1$s? Babili kun %1$s? diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index f34c88544..02a951d11 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -34,6 +34,8 @@ Actualización Emoji Adjunto + + ¿Adjunta \"%1$s\"? Atrás Cerrar Cerrar ventana @@ -56,7 +58,10 @@ Guardar Chat Multimedia + Apps y multimedia Perfil + Todos perfiles + Perfil actual Menú principal Comenzar chat Mostrar mensaje completo… @@ -91,6 +96,8 @@ No se puede encontrar una aplicación compatible con este tipo de contenido No hay ningún navegador instalado. No se pudo encontrar %1$s. + + No se puede guardar %1$s. Copiado al portapapeles. Contactos Dirección de correo @@ -159,7 +166,7 @@ %d seleccionados %d seleccionados - + Seleccionado: Yo Borrador Imagen @@ -203,6 +210,7 @@ Aplicaciones App Picker URL Si se establece, la URL se utilizará como App Picker en lugar de la predeterminada + Pulsa \"Enviar\" para compartir Inicio Juegos Herramientas @@ -241,14 +249,32 @@ Chatear con... Clonar chat - + Difusión + Difusiones + Nueva difusión + + Canal + + Canales + + Nuevo canal Agregar destinatarios + Editar difusión + Nombre de difusión + Por favor, introduce un nombre para la difusión. + + Nombre del canal + Correo electrónico + + Nuevo correo electrónico + + Asunto Enviar Alternar teclado emoji Editar grupo @@ -258,6 +284,7 @@ Des-archivar chat Añadir adjunto Abandonar grupo + Abandonar canal Eliminar chat Vaciar chat @@ -284,6 +311,7 @@ Exportar adjunto Exportar adjuntos Toda la multimedia + Todas las apps y multimedia Mostrar en el chat Mostrar en el chat @@ -341,6 +369,7 @@ Añadir a la pantalla principal Donar + ❤️ ¡Parece que disfrutas de Delta Chat!\n\nPor favor, considera donar para ayudar a garantizar que Delta Chat siga siendo gratuito para todos.\n\nAunque Delta Chat es gratuito y de código abierto, su desarrollo cuesta dinero. Ayúdanos a mantener la independencia de Delta Chat y a hacerlo aún mejor en el futuro.\n\nhttps://delta.chat/donate Silenciar por 1 hora Silenciar por 8 horas @@ -378,7 +407,8 @@ Fuiste invitado a una videollamada, click en %1$s para unirse. - ¿Seguro que deseas abandonar este grupo? + + ¿Seguro que quieres abandonar este canal? ¿Eliminar %d chat de todos tus dispositivos? ¿Eliminar %d chats de todos tus dispositivos? @@ -407,8 +437,10 @@ ¿Chatear con %1$s? ¿Eliminar a %1$s del grupo? - + ¿Eliminar %1$s de la lista de difusión? + + ¿Quita %1$s del canal? ¿Quieres abrir este enlace? @@ -441,7 +473,10 @@ Envíe un mensaje a %1$s. + En una difusión, los destinatarios recibirán mensajes en un chat de solo lectura contigo. + + Canales son una herramienta para comunicación de uno a muchos para crear un transmisión de mensajes. Los demás sólo verán este grupo después de que hayas enviado un primer mensaje. Deslice para cancelar Mantenga pulsado para grabar un mensaje de voz, suelte para enviar @@ -451,6 +486,7 @@ Mensaje Archivado Solicitud + Incluir solicitudes en contadores y notificaciones No hay mensajes. Mensajes que envié a mí mismo Chats arquivados se mostrarán aquí. @@ -524,7 +560,7 @@ Añadir miembros Debes ser un miembro del grupo para realizar esta acción. Cifrado - Chats compartidos + Chats en común Chats similares Miembros anteriores @@ -549,7 +585,7 @@ Cuadrícula cuadrada Enviar mensaje - + %1$s cambió su dirección de %2$s a %3$s Has cambiado tu dirección de correo electrónico de %1$s a %2$s.\n\nSi ahora envías un mensaje a un grupo verificado, los contactos de éste sustituirán automáticamente la antigua por tu nueva dirección.\n\nEs muy recomendable que configures tu antiguo proveedor de correo electrónico para que reenvíe todos los mensajes a tu nueva dirección. De lo contrario, podrías perderte los mensajes de los contactos que aún no han recibido tu nueva dirección. @@ -820,6 +856,7 @@ Mensaje de %1$s Descarga disponible hasta %1$s + Seleccionar perfil Seleccionar imagen de perfil Seleccionar tu nueva imagen de perfil Borrar imagen de perfil @@ -906,8 +943,8 @@ Eliminaste al miembro %1$s. Miembro %1$s eliminado por %2$s. - - Abandonaste el grupo. + + Abandonaste. Grupo abandonado por %1$s. Eliminaste la imagen del grupo. @@ -951,11 +988,13 @@ Estableciste el temporizador de la desaparición de mensajes en %1$s semanas. Temporizador de la desaparición de mensajes establecido en %1$s semanas por %2$s. - + %1$s envió un mensaje desde otro dispositivo. A partir de ahora se garantiza que los mensajes están cifrados de extremo a extremo . Toca para obtener más información. Ahora se garantiza que todos los mensajes en este chat están cifrados de extremo a extremo.\n\nEl cifrado de extremo a extremo mantiene los mensajes privados entre tú y tus compañeros de chat. Ni siquiera tu proveedor de correo electrónico puede leerlos. + %1$s envió un mensaje desde otro dispositivo. Toca para obtener más información. + El cifrado de extremo a extremo ya no se puede garantizar, probablemente porque %1$s reinstaló Delta Chat o envió un mensaje desde otro dispositivo.\n\nPueden encontrarse en persona y escanear su código QR nuevamente para restablecer el cifrado de extremo a extremo garantizado. ⚠️ %1$s requiere cifrado de extremo a extremo que aún no está configurado para este chat. Toca para obtener más información. Para establecer un cifrado de extremo a extremo, puede reunirse con los contactos en persona y escanear su código QR. @@ -1017,13 +1056,16 @@ Estableciendo cifrado de extremo a extremo garantizado, por favor, espere... No se pudo aún establecer el cifrado de extremo a extremo garantizado, pero ya puede enviar mensajes. + El contacto debe estar en línea para continuar.\n\nEste proceso continuará automáticamente en segundo plano. %1$s verificado. + No se pudo verificar %1$s. Verificado por %1$s Verificado por ti - + Introducido + Configuración cambiada para %1$s. Para garantizar el cifrado de extremo a extremo, solo puedes añadir contactos con una marca de verificación verde Seleccione el chat para enviar el mensaje @@ -1067,7 +1109,7 @@ Voltear Rotar - + Mensaje cifrado @@ -1198,6 +1240,9 @@ Ya has permitido que Delta Chat reciba mensajes en segundo plano.\n\nSi los mensajes aún no llegan en segundo plano, compruebe también la configuración de su sistema. + ¿Qué hay de nuevo?\n\n💯 El cifrado de extremo a extremo es fiable y para siempre. ¡Se acabaron los candados 🔒!\n\n✉️ El correo electrónico clásico sin cifrado de extremo a extremo es marcado con un símbolo de carta.\n\n😻 Nueva pantalla de perfil mejorada para todos tus contactos.\n\n🔲 Nuevo botón para acceder rápidamente a las apps usadas en el chat.\n\n❤️ Dona para ayudarnos a mantener nuestra independencia y seguir mejorando: %1$s + ¿Qué hay de nuevo?\n\n❤️‍🔥 Nuevo selector de emojis con más emojis\n\n🎮 Aplicaciones de chat mejoradas: recibe notificaciones y abre aplicaciones en contexto, por ejemplo, abre una entrada de calendario agregada directamente\n\n👍 Recibe notificaciones sobre las reacciones a tus mensajes\n\n... 🛠️ CORRECCIONES y AÚN MÁS en %1$s + ℹ️ Se movió la opción \"Cambiar perfil\": toca tu imagen de perfil en la esquina superior de la pantalla principal para agregar o cambiar perfiles 💡 diff --git a/src/main/res/values-et/strings.xml b/src/main/res/values-et/strings.xml new file mode 100644 index 000000000..4c20534d1 --- /dev/null +++ b/src/main/res/values-et/strings.xml @@ -0,0 +1,968 @@ + + + + Delta Chat + Sobib + Katkesta + Eemalda otsing + + Link + + Skaneeri + Jah + Ei + Vali + Sees + Väljas + Vaikimisi + Vaikimisi (%1$s) + Vaikimisi (sama, kui ülal) + Kohandatud + Puudub + Automaatne + Range + Ava + Laadi alla + Allalaadimisel… + Ava manus + Liitu + Liitu uuesti + Kustuta + Kustuta minu jaoks + Kustuta kõigi jaoks + Teave + Uuenda + Emoji + Manus + + Kas lisame manusena: „%1$s“? + Tagasi + Sulge + Sulge aken + Edasta + Koosta + Lähtesta + Hiljem + + Saada uuesti + Muudetud + Muuda sõnumit + + Arhiveeri + + Tõsta arhiivist välja + Summuta + Summutatud + Kaduvad sõnumid + Kehtib kõikidele selles vestluses osalejatele - aga siiski saavad nad sõnumeid kopeerida, salvestada ja edastada. + Salvesta + Vestlus + Meedia + Rakendused ja meedia + Profiil + Kõik profiilid + Praegune profiil + Põhimenüü + Alusta vestlust + Näita sõnumit täismahus… + + Märgi kõik loetuks + Märgi loetuks + + Märgi loetuks + + Laadimisel… + Peida + Võta kasutusele + Laadi kaugseadmes asuvaid pilte + + Kaugseadmes asuvate piltide abil saab sinu tegevust jälgida.\n\nAga selle seadistuse abil laaditakse ka kirjatüüpide faile ja muud sisu.Kui see eelistus pole kasutusel, siis võidakse kuvada lõimitud või puhverdatud pilte.\n\nKas soovid laadida kaugseadmes asuvaid pilte? + Alati + Alati laadi kaugseadmes asuvaid pilte + Vaid see kord + Näita hoiatust + Näita salasõna + Peida salasõna + Mitte praegu + Mitte kunagi + Üks hetk… + Valmis + Võta tegevus tagasi + Pole võrgus + + Järgmine + Viga + Viga: %1$s + Ei leidu rakendust, mis oskaks sellist tüüpi andmeid kasutada. + Ühtegi veebibrauserit pole paigaldatud. + Ei õnnestunud leida: %1$s. + + „%1$s“ faili salvestamine ei õnnestunud. + Kopeeritud lõikelauale. + Kontaktid + E-posti aadressid + Vigane e-posti aadress. + Salasõna + Olemasolev salasõna + Praegu + + Ohtlik + Täna + Eile + Sel nädalal + Sel kuul + Eelmisel nädalal + Eelmisel kuul + + Viimati nähtud: %1$s + + Viimati nähtud: %1$s + Viimati nähtud: pole teada + + + %d min + %d min + + + + %d tund + %d tundi + + + %d vestlus + %d vestlust + + + %d kontakt + %d kontakti + + + %d sõnum + %d sõnumit + + + %d reageerimine + %d reageerimist + + + %d liige + %d liiget + + + %d saaja + %d saajat + + + + Valitud: %d + Valitud: %d + + Valitud: + Mina + Kavand + Polt + + Vastus + GIF-pilt + + Kleeps + Lisa kleepsude kogumikku + Kleepsude lisamiseks klõpsi valikut „Ava kleepsude kaust“, loo oma kleepsupaki jaoks sinna alamkaust ning lohista pildi- ja kleepsufailid sinna + Ava kleepsude kaust + Pildid + Heli + Hääsõnum + Edastatud + Edastatud sõnum + + Edastaja: %1$s + Video + Dokumendid + Kontakt + Robot + Kaamera + + Salvesta pilt või video + Vaheta kaamerat + Lülita täisekraanivaate sisse/välja + Asukoht + Asukohad + Galerii + Pildid ja videod + Fail + Failid + Saada faile algsetena ja pilte pakkimata + + Vali failihaldurist + Vali galeriist + + Rakendus + + Rakendused + Rakendustevalija võrguaadress + Selle eelistusega saad sisestada rakendustevalija jaoks oma võrguaadressi, mida kasutatakse vaikimisi valiku asemel + Jagamiseks klõpsi nuppu „Saada“ + Avaleht + Mängud + Tarvikud + Suurus + Avaldatud + Lisa vestlusele + + Sirvi + Teadmata + + Roheline + Punane + Sinine + Oranž + Rohekassinine + Purpurpunane + Fuksiapunane + Valge + + Suumitase + Eriti väike + Väike + Tavaline + Suur + Eriti suur + + Kiire + Aeglane + + + Uus kontakt + Lisa kontakt käsitsi + Käsitsi lisatud kontakte saad kasutada sõnumite saatmiseks klassikalistele e-posti kontodele ning nende sõnumite läbiv krüptimine pole tagatud. + Uus vestlus + Uus grupp + + Saada sõnum… + + Kanal + + Kanalid + + Uus kanal + Lisa saajaid + + Kanali nimi + E-post + + Uus e-kiri + + Teema + Saada + Lülita emojide klahvistik sisse/välja + Muuda gruppi + Grupi nimi ja pilt + Kõik asukohad + Tõsta vestlus arhiivi + Eemalda vestlus arhiivist + Lisa manus + Lahku grupist + Lahku kanalist + Kustuta vestlus + + Eemalda vestluse sisu + Kustuta kontakt + Kas kustutame selle asukoha? + Sõnumi teave + Kopeeri lõikelauale. + Jaga kutselinki + Kellel iganes on see link, saab vaadata sinu profiili ja alustada sinuga vestlust. Jaga seda nendega, keda sa tõeliselt usaldad. + Kutsu sõptu + + Suhtle minuga Delta Chati abil:\n%1$s + Kopeeri valik + Kopeeri link + Kopeeri tekst + Kopeeri pilt + Kopeeri e-posti aadress + Aseta lõikelaualt + „%1$d“ lingi avamine veebibrauseris pole võimalik. Kas sa selle asemel soovid lingi kopeerida lõikelauale? + Edasta sõnum + Vasta sõnumile + Summuta teaavitused + Lõpeta summutamine + Ekspordi manus + Ekspordi manused + Kõik meediumid + Kõik rakendused ja meediumid + + Näita vestluses + Näita rakendust vestluses + Jaga + + Blokeeri + Blokeeri kontakt + Lõpeta kontakti blokeerimine + Nõustu + Esita + eata + Keri lõpuni + Keri algusesse + Abiteave + Mis on Webxdc? + Privaatsusreeglid + Vali kõik + Vali vestlus + Vali veel + Muuda nime + + Sisesta hüüdnimi, millisena näed kasutajat „%1$s“. Kui jätad tühjaks, siis näed seda nime, mille ta ise on valinud. + + Kasutaja „%1$s“ hüüdnimi + Seadistused + Vaata profiili + Suumi sisse + Suumi välja + Salvesta logi + Täiendavad valikud + Õpi õigekirja + Vestluse kontroll-logi + Mine sõnumi juurde + Mine algse sõnumi juurde + Kopeeri JSON-vormingus + Jaga asukohta kõikide grupi liikmetega + Seadme sõnumid + Muuda kontakti + + Tõsta vestlus esile + + Lõpeta vestluse esiletõstmine + + Tõste esile + + Lõpeta esiletõstmine + Algset sõnumit ei leidu + Vasta privaatselt + Lähtekood + + Lisa avaekraanile + Toeta arendust + ❤️ Tundub, et Delta Chat meeldib sulle!\n\nTagamaks, et Delta Chat jääb kõigi jaoks vabaks ning tasuta kasutatavaks, palun kaalu projekti rahalist toetamist.\n\nKuigi Delta Chat on vabalt pruugitav ja põhineb avatud lähtekoodil, siis arenduseks kulub paratamatult raha. Sinu toetus võimaldab Delta Chatil jääda sõltumatuks ning iga uue versiooniga muutuda aina paremaks.\n\nhttps://delta.chat/donate + + Summuta üheks tunniks + Summuta kaheksaks tunniks + Summuta üheks päevaks + Summuta seitsmeks päevaks + Summuta alatiseks + + Fail on salvestatud: „%1$s“. + + Videovestlus + Kas kutsud %1$s osalema videovestluses? + See eeldab, et mõlemal poolel on kasutusel ühilduv rakendus või veebibrauser. + %1$s on kutsutud osalema videovestluses. + Sa saatsid videovestluse kutse. + Liitumiseks klõpsi + Avamiseks klõpsi + Videovestluse server + Sinu videovestluse server + + Näide: https://sinu-server.org/$ROOM + + + Kas oled kindel, et soovid lahkuda? + + Kas kustutad %d vestluse kõikidest oma seadmetest? + Kas kustutad %d vestlust kõikidest oma seadmetest? + + Kas kustutad „%1$s“ vestluse kõikidest oma seadmetest? + Kas kustutad selle sõnumi kõikidest oma seadmetest? + + Kas kustutad %d sõnumi kõikidest oma seadmetest? + Kas kustutad %d sõnumit kõikidest oma seadmetest? + + Kas edastad sõnumi kasutajale %1$s? + Kas lõpetad kontakti blokeerimise? + Kas soovid vestelda kasutajaga %1$s? + + Kas eemaldad järgnevad kasutajad kanalilt: %1$s? + Sisesta nimi või e-posti aadress + Palun sisesta ülale e-posti aadress + Kontakte pole. + + + + + %d vestlus on arhiveeritud + %d vestlust on arhiveeritud + + + %d vestlus on arhiivist eemaldatud + %d vestlust on arhiivist eemaldatud + + Arhiveeritud vestlused + Palun koosta sõnum. + Kaamera pole saadaval. + Heli salvestamine ei õnnestu. + + %d uus sõnum + %d uut sõnumit + + + Saada sõnum kasutajale %1$s. + + Kanalid on üks-mitmele suhtlusviisid oma sõnumite levitamiseks. + Katkestamiseks viipa + Vestlusi pole.\nUue vestluse loomiseks klõpsi + ikooni. + Kõik vestlused on arhiveeritud.\nUue vestluse algatamiseks klõpsi + ikooni. + Lisa päringud nii loenduritesse kui teavitustesse + Salvestatud sõnumid + + Salvestatud + Salvesta kui + + Postiloend + + Saada sõnum… + + Otsi + Otsi vestlusest + Otsi failidest + Otsi vestlusi, kontakte või sõnumeid + „%s“ otsingul pole tulemusi + + Lugemata + + + + Grupi nimi + Grupi tunnuspilt + Eemalda grupi tunnuspilti + Muuda grupi tunnuspilti + Loo grupp + Palun sisesta grupi nimi. + Lisa liikmeid + Selle tegevuse jaoks pead olemagrupi liige. + Krüptimine + Ühised vestlused + Sarnased vestlused + + Varasemad liikmed + Kontakt + Grupp + Galerii + Dokumendid + Lingid + Kaart + Sellele vestlusele lisatud pildid ja videod saavad olema nähtavad siin. + Sellele vestlusele lisatud dokumendid ja muud failid saavad olema nähtavad siin. + Sellele vestlusele lisatud pildid saavad olema nähtavad siin. + Sellele vestlusele lisatud videod saavad olema nähtavad siin. + Sellele vestlusele lisatud helifailid ja häälsõnumid saavad olema nähtavad siin. + Sellele vestlusele lisatud rakendused saavad olema nähtavad siin. + Ükspuha mis vestlusele lisatud meediumid saavad olema nähtavad siin. + Ükspuha mis vestlusele lisatud dokumendid ja muud failid saavad olema nähtavad siin. + Ükspuha mis vestlusele lisatud rakendused saavad olema nähtavad siin. + Meediumi eelvaade + Saada sõnum + + + Lisa täiendav seade + Palun vaat, et mõlemad seadmed oleks samas WiFi võrgus + Sellega luuakse QR-kood, mida täiendavast seadmest skaneerides on võimalik sinna kopeerida sinu profiili.\n\nPalun kontrolli, et ükski kõrvaline vaataja ega kaamera ei näeks järgnevat ekraanivaadet. + Paigalda teise seadmesse Delta Chat (https://get.delta.chat) + + Klõpsi valikut „Mul juba on profiil olemas / Lisa täiendava seadmena“ ja skaneeri siin näidatud koodi. + + Skaneeri täiendava seadme lisamiseks kasutajale %1$s + Lisa täiendava seadmena + Oma esimeses seadmes ava „Seadistused / Lisa täiendav seade“ ja skaneeri siintoodud koodi + Kas kopeerid oma profiili teisest seadmest sellesse seadmesse? + Profiil, mida soovid importida, on pärit uuemast Delta Chati versioonist.\n\nJätkamaks täiendava seadme seadistamist palun uuenda selle seadme Delta Chat viimase versioonini. + Kas katkestad täiendava seadme lisamise? + Sellega muutub lõikelauale kopeeritud QR-kood mittekehtivaks. + ℹ️ Profiil on kopeeritud sinu täiendavasse seadmesse. + + Valendan profiili… + + Teisaldan… + Veaotsing + + + + Saabuvad sõnumid + + Väljuvad sõnumid + + Andmeruum domeenis %1$s + Ühenduvus + + Pole ühendatud + + Ühendan… + + Uuendan… + + Ühendatud + Saadan… + Viimase sõnumi saatmine õnnestus. + Sinu teenusepakkuja ei toeta seda võimalust. + + Sõnumid + + Kasutusel %1$s / %2$s + + + + + Loo uus profiil + + Mul juba on profiil olemas + + Sisselogimine klassikalise e-postiga + + Sinu profiil + + %1$s teenuse privaatsusreeglid + + Teave %1$s teenuse profiilide kohta + + Nõustun ja alustan profiili loomist + + Kasuta muud serverid + + „%1$s“ grupiga liitumiseks loo profiil. + + „%1$s“ kasutajaga vestlemiseks loo profiil. + + Kas sa soovid luua uue profiili ja alustada vestlemist %1$s kasutajaga? + + Kas sa soovid luua uue profiili ja liituda „%1$s“ grupiga? + + Turvaline hajutatud vestluslahendus + Skaneeri kutsekoodi + Logi sisse + Logi sisse oma e-postikontoga + Logi sisse olemasoleva e-postikontoga + Delta Chat ei kogu kasutajate andmeid - kogu teave jääb sinu seadmesse. + Saabuvad kirjad + IMAP-i kasutajanimi + IMAP-i server + IMAP-i port + IMAP-i turvalisus + Saadetud kirjad + SMTP kasutajanimi + SMTP salasõna + SMTP server + SMTP port + SMTP turvalisus + + Proksiserver + Kasuta proksiserverit + Lisa proksiserver + Toetatud prokside tüübid: HTTP(S), SOCKS5 ja Shadowsocks. + Lisa proksiserveri link siia + Vigane või mittetoetatud proksiserver + Salvestatud proksiserverid + Kustuta proksiserver + Kas oled kindel, et soovid kustutada „%1$s“ proksiserveri? + Kas soovid kasutada „%1$s“ proksiserverit? + Sinu sõbrad saavad selle proksiserveri lisada skaneerides QR-koodi. + Jaga linki + + Kas jätkame lihtsustatud seadistamisega? + Sertifikaadikontrollid + Palun sisesta korrektne e-posti aadress + Palun sisesta korrektne serveri täisnimi või ip-aadress + Palun sisesta korrektne pordi number (1–65535) + Palun sisesta kehtiv e-posti aadress ja salasõna + Taasta varukoopiast + + E-posti aadressiga „%1$s“ ei õnnestu sisse logida. Palun kontrolli, kas aadress ja salasõna on õiged. + + Luba kasutada vigaseid sertifikaate + Vaheta profiili + Lisa profiil + + Profiili kirjeldus + nt. Töö, Perekond + Lisa silt, mida vaid sina näed - see aitab sul profiile paremini eristada. + + Tõsta ülemiseks + Kustuta profiil + Kas oled kindel, et soovid kustutadaoma profiili andmed? + Kõik „%s“ kasutaja profiiliandmed sellest seadmest kustutatakse, sealhulgas läbiva krüptimise seadistus, kontaktid, vestlused, sõnumid ja meediumid. Seda tegevust ei saa tagasi pöörata. + Seadistamata profiil + Seadistamiseks ava profiil. + Proovi ühendus luua nüüd + Sünkrooni kõik + + Seadistamine ei õnnestunud: Viga: %1$s + + + Kas saadad %1$d faili „%2$s“ vestlusesse? + (Videod saadetakse algupäraste suurte failidena. Videote mahu vähendamiseks lisa nad manustena ükshaaval) + Sinu profiil + Blokeeritud kontaktid + Salasõna ja kasutajakonto + Sinu nimi + Saadetava meediumi kvaliteet + Teavitused + Privaatsus + Vestlused ja meediumid + Süsteemi vaikimisi valik + + Hele kujundus + Tume kujundus + Välimus + Kujundus + Keel + Kasuta süsteemi kirjatüüpi + Lugemisteatised + Kui sinu lugemisteatised on lülitatud välja, siis ka sina ei näe teiste lugemisteatisi. + Server + Krüptimine + Halda võtmeid + Kasuta süsteemi emojisid + Lülita välja Delta Chati omad emojid + Kasuta süsteemi aadressiraamatut + Paku võimalust lisada vestlusi süsteemi aadressiraamatus leiduvate kontaktide alusel. + Vestlused + Helid vestluses + Vaata logi + Logi on salvestatud allalaadimiste kausta + Logi salvestamine ei õnnestunud + Logi + Muu + Varundus + Varunda vestlused välisesse andmeruumi + + Ekspordi %1$s + + Ekspordi kõik %1$d profiili + Alusta varundamist + Varukoopia tegemine asukohta „%1$s“ õnnestus. + Halda võtmeid + Ekspordi salavõtmed + Kas ekspordime salavõtmed siia: %1$s? + Impordi salavõtmed + Kas impordime salavõtmed siit: %1$s?\n\n• Olemasolevaid võtmeid ei kustutata\n\n• Kui failinimes pole sõna legacy, siis viimati imporditud võtmeid kasutatakse vaikimisi võtmetena. + Salavõtmete salvestamine asukohta „%1$s“ õnnestus. + Salavõtmete import asukohast „%1$s“ õnnestus. + + Taustapilt + Kasuta vaikimisi pilti + Vali galeriist + Välju saadetud sõnumite kausta + Saada koopia iseendale + Vajalik, kui kasutad seda kontot mitmes seadmes. + Katselised funktsionaalsused + Arendaja režiim + Lülitab sisse veaotsingu tarvikud ja see võib rakenduse töökindlust vähendada. Sobib arendajatele. + Vaikimisi pilt + Vaikimisi värv + Sinu valitud pilt + Sinu valitud värv + Eksportimine on katkestatud + Laadi sõnumid alla automaatselt + + Suurusega kuni %1$s + Suurusega kuni %1$s, üldjuhul kehva kvaliteediga pildid + Suurusega kuni %1$s, üldjuhul mõistliku kvaliteediga pildid + Allalaadimine ei õnnestunud + + Sõnum suurusega %1$s + + Allalaadimise ülempiir on saadaval kuni %1$s + Vali profiil + Vali profiilipilt + Vali oma uus profiilipilt + Kustuta profiilipilt + Näita süsteemisalve ikooni + Muuda profiili + Saada statistikat Delta Chati kasutajatele + + + + Otsingutulemused + Ühtegi emojit ei leidu + Viimatikasutatud + Inimesed ja keha + Loomad ja loodus + Toit ja jook + Tegevused + Reisimine ja kohad + Objektid + Sümbolid + Lipud + + + Reageerimised + + Reageeri + + Sina lisasid %1$s sõnumile: „%2$s“ + + %1$s lisas %2$s sõnumile: „%3$s“ + + + Kustuta vanad sõnumid + Kustuta sõnumid seadmest + Kustuta sõnumid serverist + + Kohe peale allalaadimist + Eelista läbivat krüptimist + + Sõnum kasutajalt %1$s + Sõnumi saatmine kasutajale %1$s ei õnnestunud. + + Sa muutsid grupi nime: „%1$s“ → „%2$s“. + + %3$s muutis grupi nime: „%1$s“ → „%2$s“. + Sina muutsid grupi tunnuspilti. + + %1$s muutis grupi tunnuspilti. + + Lisanudus uus liige: %1$s. + + Sina lisasid uue liikme: %1$s. + + %2$s lisas uue liikme: %1$s. + + Sina eemaldasid liikme: %1$s. + + %2$s eemaldas liikme: %1$s. + + Sa lahkusid. + + %1$s lahkus grupist. + Sina kustutasid grupi tunnuspildi. + + %1$s kustutas grupi tunnuspildi. + Sina lülitasid sisse oma asukoha jagamise reaalajas. + + %1$s lülitas sisse oma asukoha jagamise reaalajas. + + %1$s saatis sõnumi muust seadmest. + Sõnumid on läbivalt krüptitud. Lisateabe ligemiseks klõpsi. + Kõik selle vestluse sõnumid on läbivalt krüptitud.\n\nSee tagab, et sõnumid on loetavad vaid sinu ja vestluse teis(t)e osapool(t)e poolt. Ei teenusepakkujad, serverihaldajad, ega põrgatajad ei saa neid sõnumeid lugeda. + + %1$s saatis sõnumi muust seadmest. Lisateabeks klõpsi. + + Läbiv krüptimine pole enam garanteeritud. Ilmselt on põhjuseks see, et %1$s on Delta Chati uuesti paigaldanud või saatnud sõnumi muust seadmest.\n\nParim viis olukorra lahendamiseks on see, kui kohtute omavahel ja sa skaneerid tema QR-koodi ning sellega korrektselt lisad ta uuesti läbivalt krüptitud vestlusesse. + ⚠️ %1$s eeldab läbiva krüptimise kasutamist, aga see pole veel antud vestluse jaoks seadistatud. Lisateabe ligemiseks klõpsi. + Läbiva krüptimise kasutuselevõtmiseks oarim viis on omavahel kohtuda ning teise osapoole QR-koodi skaneerimisega lisada ta vestlusesse. + Lisateave + + + ⚠️ Sinu seadme kuupäev või kellaaeg tundub olema ebatäpne (%1$s).\n\nPalun seadista kella ⏰🔧 ja taga, et sõnumivahetus, sh selle krüptimine toimib korrektselt. + ⚠️ Sinu kasutatav Delta Chati versioon võib olla aegunud.\n\nKuna sinu vestluspartnerid ilmselt kasutavad uuemaid versioone, ja sinu oma ei oska uuemaid funktsionaalsusi, siis võib tekkida probleeme 😳\nUuenduste teavet leiad https://get.delta.chat saidist või oma rakendustepoest. + + + Jätkamiseks eemalda lukustus + + + QR-kood + Laadi QR-kood pildina + Skaneeri QR-koodi + Hoia oma kaamerat QR-koodi kohal + Liiguta QR-kood kaamera poole + QR-koodi dekodeerimine ei õnnestunud + Kas soovid liituda „%1$s“ grupiga? + Skaneeritud sõrmejälg ei vasta %1$s viimati nähtud sõrmejäljele. + Selles QR-koois on sõrmejälg, kuid pole aadressi.\n\nTavakanalivälise verifitseerimise jaoks palun esmalt loo teise osapoolega krüptitud ühendus. + Skaneeritud QR-koodi tekst:\n\n%1$s + Skaneeritud QR-koodi võrguaadress:\n\n%1$s + Sõrmejälg + Seda QR-koodi saavad teised skaneerida nii sinuga suhtlema hakata\n\nKui sa ta lähtestad, siis ei QR-kood ega kutse link pole enam kasutatavad. + Seda QR-koodi saab kasutada „%1$s“ grupiga liitumiseks.\n\nKui sa ta lähtestad, siis ei QR-kood ega kutse link pole enam kasutatavad. + Lähtesta QR-kood + See QR-kood on lähtestatud ega pole enam kasutatav. + See QR-kood, mis oli mõeldud „%1$s“ grupiga liitumiseks, on lähtestatud ega pole enam kasutatav. + Aktiveeri QR-kood + Kutse QR-koodina + %1$s liitus. + %1$s lisas vestlusesse. + %1$s liitus grupiga. + Kutse QR-koodina + + Skaneeri liitumaks „%1$s“ grupiga + Kutse QR-koodina + + Skaneeri vestlemaks kasutajaga „%1$s“ + Internetiühendus puudub ja QR-koodil põhinevat seadistamist kasutada ei saa. + Kas lood uue profiili nimega „%1$s“ ja logid sinna sisse? + Palun sisesta nimi. + Selle skaneeritud QR-koodi abil ei saa uut profiili kasutusele võtta. + + Kas logid sisse „%1$s“ profiili? + Panen aluse läbivale krüptimisele… + + Tagatud läbivat krüptimist ei saa veel luua, aga sa võid juba sõnumit saata. + + Jätkamaks peab kontakt olema hetkel võrgus.\n\nProtsess jätkub automaatselt taustal. + %1$s lisas vestlusesse. + + Läbivat krüptimist teise osapoolega (%1$s) ei õnnestu luua. + + %1$s lisas kontakti vestlusesse + Mina lisasin kontakti vestlusesse + Vestlusesse lisatud + + %1$s seadistus on muutunud + Selleks, et läbiv krüptimine toimiks garanteeritult, sa võid sellesse vestlusesse lisada vaid rohelise linnukesega kontakte.\n\nParim viis on omavahel kohtuda ning teise osapoole QR-koodi skaneerimisega lisada ta vestlusesse. + Vali vestlus, kuhu soovid sõnumi saata + + Vestluses „%1$s“ juba on üks sõnumi kavand, kas sa soovid selle asendada? + mailto lingi dekodeerimine ei õnnestunud: %1$s + + + Vasta + Uus sõnum + Nimi ja sõnum + Vaid nimi + Ei nime ega sõnumit + Teavitused pole kasutusel + Uued sõnumid + + Sulle on uusi sõnumeid + %1$d sõnumit %2$d-s vestluses + + + + Õigused on vajalikud + Jätka + Pildistamiseks ja videote salvestamiseks ava rakenduse seadistused, sealt „Õigused“ / „Load“ ning luba „Kaamera“. + + Häälsõnumite saatmiseks ava süsteemi või rakenduse seadistused, vali „Õigused“ / „Load“ või „Privaatsus ja turvalisus“ ning lülita sisse „Mikrofon“. + Failide saatmiseks ja vastuvõtmiseks ava rakenduse seadistused, sealt „Õigused“ / „Load“ ning luba „Mäluruum“. + Asukoha tuvastamiseks ava rakenduse seadistused, sealt „Õigused“ / „Load“ ning luba „Asukoht“. + Teavituste saamiseks ava rakenduse seadistused, sealt „Õigused“ / „Load“ ning luba „Märguanded“. + + + Hägustamiseks joonista kusagil + Lisa tekst + Hägusta + Markeri pintsel + Esiletõstmise pintsel + Kadreeri + Pööra teistpidi + Pööra + + + Krüptitud sõnum + + + See on Delta Chati ametlik töölauarakendus. + See tarkvara on litsentseeritud GNU GPL versiooni 3 alusel ning rakenduse lähtekood on saadaval GitHubis. + Tere tulemast, see on Delta Chat + Keel + Fail + Välju + Muuda + Võta tegevus tagasi + Korda tegevust + Lõika + Kopeeri + Aseta + Vaata + Näita kõige peal + Arendaja + Arendustarvikud + Abiteave + Delta Chati koduleht + Tee kaastööd + Teata veast + Rakenduse teave: Delta Chat + Ava Delta Chat + Minimeeri + Vali olemasolev vestlus või liitu uuega + Koosta sõnum + Krüptimise teave + Kustuta sõnum + Lisateave + D. MMM + Eemalda + Salvesta + + Ära enam salvesta + Nimi + Vali grupi tunnuspilti + Ekspordi varukoopia + Autocrypti seadistused on edastatud. + Kas kustutad selle profiili? Kõik profiiliandmed kaovad sellest seadmest, sealhulgas läbiva krüptimise seadistus, kontaktid, vestlused, sõnumid ja meediumid. Seda tegevust ei saa tagasi pöörata. + saadetud + vastuvõetud + Ava logifailide kaust + Ava praegune logifail + Kuna Delta Chat juba käivitati --minimized argumendiga, siis süsteemisalve ikooni ei saa välja lülitada. + Õigekirjasoovitusi ei leidu. + Näita akent + + + Klahvide seosed + Vaheta vestlusi + Keri sõnumeid + + Säti fookus otsinguväljale + + Säti fookus sõnumi koostamise väljale + Laadi võrgu andmed sundkorras uuesti + Lisa reavahetus + + + Kohaletoimetamise olek: viga + Krüptimise lukuikoon + Kohaletoimetamise olek: saatmisel + Kohaletoimetamise olek: kavand + Kohaletoimetamise olek: kohal + Kohaletoimetamise olek: loetud + Vigane kohaletoimetamise olek + Tegevused sõnumiga + Taustapildi eelvaade + + Lõpeta asukoha jagamine + Peale salvestamist saad topeltpuudutusega saata. Salvestisest saad loobuda hõõrudes kahe sõrmega. + Võrguühenduse üksikasjade vaatamiseks klõpsa kaks korda. + Internetiühendus puudub, sisselogimine ei õnnesti. + Profiil pole seadistatud + Helifaili esitamine ei õnnestu. + + Pildistamiseks, videote salvestamiseks ja QR-koodide skaneerimiseks ava süsteemi seadistused ja luba rakendusel kasutada kaamerat. + Ava seadistused + + Impordi seadme kontaktid + Selleks, et saaksid suhelda oma nutiseame kontaktidega, ava seadistused ja lülita sisse valik „Kontaktid“. + + Pole Delta Chatis kasutusel + On süsteemi seadistustest välja lülitatud + + Edasilükatud + Keskmiselt iga %1$d minuti järel + Keskmiselt iga %1$d tunni järel + Kontrollitud %1$s + Süsteemi seadistused + + Muuda tüüpi, silti, eelvaadet ja nii mõndagi veel + + + Otseteed + + Objektide lisamiseks kasuta Delta Chati „Lisa vidinale“ võimalust + + Eemalda vidinast + + Lisa vidinale + + Delta Chat kasutab sinu nutiseadme kaamerat pildistamiseks, videote salvestamiseks ja QR-koodide skaneerimiseks. + Delta Chat kasutab sinu kontakte aadressiloendi kuvamiseks eesmärgiga leida osapooli, kellele saad kirjutada. Kuna rakendusel puudub keskne server, siis sinu kontakte ei saadeta väljaspoole nutiseadet. + Delta Chat vajab õigust sinu asukoha jagamiseks nii kaua, kui sul see teenus on sisse lülitatud. + Delta Chat vajab õigust sinu asukoha jagamiseks nii kaua, kui sul see teenus on sisse lülitatud. + Delta Chat kasutab sinu nutiseadme mikrofoni häälsõnumite ja videote heliriba salvestamiseks. + Delta Chat võimaldab sul valida fotosid teistele edastamiseks. + Delta Chat soovib pilte salvestada sinu fotode kogusse. + Delta Chat võib kasutada Face ID teenust sinu kohaliku profiili kaitsmiseks, varukoopia tegemiseks ja täiendavate seadmete seadistamiseks. + + + + Mida on meil uut?\n\n💯 Läbiv krüptimine on töökindel ja seda nüüd igaveseks. Tabalukud 🔒 on läinud!\n\n✉️ Klassikalised e-kirjad, kus läbiv krüptimine on puudu, on märgitud ümbriku ikooniga\n\n😻 Uus ja tõhusam profiilivaade kõikide sinu kontaktide jaoks\n\n🔲 Uus nupp kiireks ligipääsuks vestluses kasutatavate rakendusteni\n\n❤️ Palun toeta meie arendust rahaliselt - nii saame jääda sõltumatuteks ja jätkata selle rakenduse täiustamist: %1$s + + Mida on meil uut?\n\n❤️‍🔥 Uus emojide valija lisaemojidega\n\n🎮 Paremad vestlusesisesed rakendused: saa teavitusi ja ava kontekstuaalseid tugirakendusi, nt. ava otse vajalik kalendrikirje\n\n👍 Teavitused, kui keegi reageerib sinu sõnumitele\n\n... 🛠️ PARANDUSED ja PALJUGI VEEL siin %1$s + + ℹ️ Valik „Vaheta profiili“ on uues kohas: Profiilide lisamiseks ja vahetamiseks klõpsi põhivate ülanurgas asuvat tunnuspilti💡 + diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml index aeca72055..92fb1f6e4 100644 --- a/src/main/res/values-eu/strings.xml +++ b/src/main/res/values-eu/strings.xml @@ -188,8 +188,6 @@ Fitxategia \"%1$s\" helbidean gordeta - - Ziur talde honetatik atera nahi duzula? Birbidali mezuak %1$s erabiltzaileari? Esportatu eranskina? Eranskinak esportatzeak zure beste gailuko beste aplikazioek atzitzea ahalbidetuko du.\n\nJarraitu? Blokeatu kontaktu hau? Ez dituzu kontaktu honen mezu gehiago jasoko. @@ -449,8 +447,9 @@ Sortu kontu berria \"%1$s\" zerbitzarian eta saioa han hasi? Eskaneatutako QR kodea ezin da kontu berri bat ezartzeko erabili. %1$s egiaztatuta. + Ezin da %1$s egiaztatu - + Aldatu %1$s(r)en ezarpena Erantzun @@ -469,7 +468,7 @@ Delta Chat-ek mikrofonoa erabiltzeko baimena behar du ahots-mezuak bidali ahal izateko, baina behin betiko ukatu zaio. Joan aplikazioaren ezarpenetara, hautatu \"Baimenak\" eta gaitu \"Mikrofonoa\". Delta Chat-ek biltegiratze baimena behar du argazkiak, bideoak edo audioa erantsi edo esportatzeko, baina behin betiko ukatu zaio. Joan aplikazioaren ezarpen menura, hautatu \"baimenak\", eta gaitu \"Biltegiratzea\" Delta Chat-ek kokaleku aatzitzeko baimena behar du kokalekua eransteko, baina behin betiko ukatu zaio. Joan aplikazioaren ezarpen menura, hautatu \"baimenak\", eta gaitu \"Kokalekua\". - + Zifratutako mezua Ongi etorri Delta Chat-era diff --git a/src/main/res/values-fa/strings.xml b/src/main/res/values-fa/strings.xml index a92dac6d9..eb4e4b193 100644 --- a/src/main/res/values-fa/strings.xml +++ b/src/main/res/values-fa/strings.xml @@ -34,11 +34,14 @@ به‌‌روزرسانی شکلک پیوست + + پیوست کردن «%1$s»؟ بازگشت بستن بستن پنجره هدایت ایجاد + بازنشانی بعدا ارسال مجدد @@ -51,11 +54,14 @@ سکوت بی‌صدا پیام‌های ناپدید شونده - روی تمام اعضای این گپ، اگر از دلتاچت استفاده کنند، اعمال می‌شود؛ ولی همچنان می‌توانند پیام‌ها را رونوشت، ذخیره و هدایت کنند یا از کارخواه‌های رایانامهٔ دیگر استفاده کنند. + این روی تمام عضو‌های این گپ، اگر از دلتاچت استفاده کنند، اعمال می‌شود. ولی همچنان می‌توانند پیام‌ها را رونوشت، ذخیره و هدایت کنند. ذخیره گپ رسانه + برنامه‌ها و رسانه‌ها نمایه + تمام نمایه‌ها + نمایهٔ فعلی فهرست اصلی شروع گپ نمایش پیام کامل... @@ -90,6 +96,8 @@ نرم‌افزاری برای باز کردن این نوع داده یافت نشد هیچ مرورگری نصب نیست. عدم یافتن %1$s + + نمی‌توان %1$s را ذخیره کرد. در حافظه کپی شد. مخاطبین نشانی رایانامه @@ -149,7 +157,7 @@ تعداد %d انتخاب شده است تعداد %dانتخاب شده است - + انتخاب شده‌ها: من پیش‌نویس تصویر @@ -183,10 +191,15 @@ تصاویر و فیلم‌ها پوشه پرونده‌ها + ارسال پرونده‌های اصلی و تصویر‌های فشرده‌نشده + + انتخاب از میان پرونده‌ها + انتخاب از گالری برنامه برنامه‌ها + برای به اشتراک گذاری روی «ارسال» بزنید خانه بازی‌ها ابزار @@ -226,14 +239,31 @@ شروع گفتگو با... درست کردن گپ جدید از این گپ - + لیست Broadcast + لیست‌های Broadcast + لیست Broadcast جدید + + کانال + + کانال‌ها + + کانال جدید افزودن گیرنده + ویرایش فهرست Broadcast + نام فهرست BroadCast + وارد کردن نام برای فهرست Broadcast. + + نام کانال + + رایانامه جدید + + موضوع ارسال تعییر صفحه کلید شکلک‌ها ویرایش گروه @@ -243,6 +273,7 @@ خروج چت از بایگانی افزودن ضمیمه ترک گروه + ترک کانال حذف گپ پاک کردن چت @@ -270,6 +301,7 @@ صادر کردن ضمیمه صادر کردن ضمیمه همه رسانه‌ها + همهٔ برنامه‌ها و رسانه‌ها نمایش در گپ نمایش برنامه در گفتگو @@ -304,14 +336,15 @@ یادگرفتن املا گزارش بررسی گپ رفتن به پیام + پرش به پیام اصلی JSON رونوشت برداری از جایگزین کردن پیش‌نویس اشتراک موقعیت مکانی با همه اعضای گروه پیام‌های دستگاه پیام‌های داخلی پیام‌ها در این گپ به صورت داخلی و توسط نرم‌افزار دلتاچت تولید شده‌اند. سازنده‌ها از این محل برای اعلان به روز‌رسانی‌ها و مشکلات پیش آمده حین کار استفاده می‌کنند. - برقراری مکالمه!\n\n -روی «کد QR» در صفحهٔ اصلی هر دو دستگاه بزنید. روی یکی از دستگاه‌ها «اسکن کد QR» را انتخاب کنید و با آن روی دستگاه دیگر بگیرید\n\nاگر در یک مکان نیستید، از طریق تماس تصویری اسکن کنید یا این‌که یک پیوند دعوت از «اسکن کد QR» به اشتراک بگذارید.\n\n.سپس از تجربه کردن پیام‌رسان بر روی بزرگترین شبکهٔ نامتمرکزی که تا به حال وجود داشته یعنی رایانامه لذت ببرید. در مقایسه با دیگر پیام‌رسان‌های محبوب، دلتاچت هیچ کنترل مرکزی‌ای ندارد. و شما، دوستهایتان، همکارهایتان یا خانواده‌هایتان را ردیابی نمی‌کند یا این‌که به سازمان‌های بزرگ نمی‌فروشد. + مکالمه برقرار کنید!\n\n +روی «کد کیوآر» در صفحهٔ اصلی هر دو دستگاه بزنید. روی یکی از دستگاه‌ها «اسکن کد کیوآر» را انتخاب کنید و با آن روی دستگاه دیگر بگیرید\n\nاگر در یک مکان نیستید، از طریق تماس تصویری اسکن کنید یا این‌که یک پیوند دعوت از «اسکن کد کیوآر» به اشتراک بگذارید.\n\n.سپس از تجربه کردن پیام‌رسان بر روی بزرگ‌ترین شبکهٔ نامتمرکزی که تا به حال وجود داشته یعنی رایانامه لذت ببرید. در مقایسه با دیگر پیام‌رسان‌های محبوب، دلتاچت هیچ کنترل مرکزی‌ای ندارد. شما، دوست‌هایتان، همکارهایتان یا خانواده‌هایتان را ردیابی نمی‌کند یا این‌که داده‌هایتان را به سازمان‌های بزرگ نمی‌فروشد. ویرایش مخاطب سنجاق کردن گپ @@ -327,6 +360,7 @@ افزودن به صفحه خانه حمایت مالی + ❤️ بنظر می‌آید شما در حال لذت بردن از دلتاچت هستید!\n\nلطفا هدیه دهید تا مطمئن باشیم دلتاچت برای همه آزاد باقی می‌ماند.\n\nبا وجودی که دلتاچت برای استفاده رایگان است و یک نرم‌افزار آزاد نیز هست، توسعهٔ آن هزینه دارد. به ما کمک کنید تا دلتاچت را مستقل نگه‌داریم و در آینده حتی آن‌را خفن‌تر کنیم. هدایا از طریق رمزارز نیز پذیرفته می‌شوند.\n\nhttps://delta.chat/donate ساکت کردن به مدت۱ ساعت بی‌صدا کردن به مدت ۸ ساعت @@ -366,26 +400,39 @@ https://meet.jit.si/$ROOM شما به مکالمه تصویری دعوت شده اید برای پیوستن%1$s را بزنید. - مطمئن هستید می‌خواهید این گروه را ترک کنید؟ - حذف گفتگو «%1$s» از همه‌ی دستگاه‌های شما؟ - می‌خواهید این پیام را از همه‌ی دستگاه‌هایتان حذف کنید؟ + + آیا مطمئنید می‌خواهید بروید؟ + + آیا می‌خواهید از روی همهٔ دستگاه‌هایتان %d گپ را حذف کنید؟ + آیا می‌خواهید از روی همهٔ دستگاه‌هایتان %d گپ را حذف کنید؟ + + حذف گفتگوی «%1$s» از همه‌ی دستگاه‌های شما؟ + می‌خواهید این پیام را از همهٔ دستگاه‌هایتان حذف کنید؟ + + آیا می‌خواهید از روی تمام دستگاه‌هایتان %d پیام را حذف کنید؟ + آیا می‌خواهید از روی تمام دستگاه‌هایتان %d پیام را حذف کنید؟ + می‌خواهید %dپیام پاک شود؟ می‌خواهید %d پیام پاک شود؟ - پیام‌ها به %1$sهدایت شوند؟ + پیام‌ها به %1$s هدایت شوند؟ انتقال پیام‌ها به %1$d گپ؟ ضمیمه صادر شود؟ صادر کردن ضمیمه باعث می‌شود دیگر نرم‌افزارهای روی دستگاه شما بتوانند به آن دسترسی داشته باشند. \n\nادامه می‌دهید؟ - مخاطب مسدود شود؟ شما دیگر پیامی از این مخاطب دریافت نخواهید کرد. - رفع مسدودیت مخاطب؟ دوباره قادر خواهید بود پیام‌های ارسال شده توسط این مخاطب را دریافت کنید. + مخاطب مسدود شود؟\n\n +شما دیگر پیامی به صورت مستقیم از این مخاطب دریافت نخواهید کرد. همچنین گروه‌های ایجاد شده توسط این مخاطب نمایش داده نخواهند شد.\n\n +با این وجود، گروه‌هایی که این مخاطب در آن حضور دارند نمایش داده خواهد شد. + رفع مسدودیت این مخاطب؟ مخاطبین حذف شوند؟\n\nمخاطبینی که گپ فعال دارند و مخاطبینی که در دفتر تلفن سامانه هستند را نمی‌توان به صورت دائمی حذف کرد. حذف مخاطب %1$s؟ \n\nمخاطبین با گپ فعال و مخاطبینی که در دفتر تلفن سامانه هستند را نمی‌توان به صورت دائمی حذف کرد. گپ زدن با %1$s؟ حذف %1$s از گروه؟ - + آيا%1$s از لیست Broadcast پاک شود؟ + + حذف %1$s از کانال؟ آیا می‌خواهید این لینک را باز کنید؟ @@ -415,7 +462,10 @@ https://meet.jit.si/$ROOM ارسال پیام. مشکلی نیست اگر %1$s از دلتاچت استفاده نمی‌کند. + در یک فهرست Broadcast گیرنده‌ها در یک گپ فقط خواندنی با شما، پیام‌ها را دریافت می‌کنند. + + کانال‌ها یک ابزار یک به چند برای اعلام عمومی پیام‌هایتان هستند. نوشتن اولین پیام به دیگران امکان می‌دهد در این گروه پاسخ دهند. \n\n• مشکلی نیست اگر همه اعضا از دلتاچت استفاده نکنند\n\n• دریافت اولین پیام ممکن است به زمان بیشتری نیاز داشته باشد. برای لغو بکشید. برای ضبط پیام صوتی فشار داده و نگهدارید، برای ارسال رها کنید. @@ -425,6 +475,7 @@ https://meet.jit.si/$ROOM پیام بایگانی شد درخواست + حساب کردن درخواست‌ها در شمارنده‌ها و اعلان‌ها پیامی نیست. پیام‌هایی که برای خودم ارسال کرده‌ام. اگر گپ‌ها را بایگانی کنید در اینجا نمایش داده می‌شوند. @@ -500,6 +551,8 @@ https://meet.jit.si/$ROOM رمزگذاری گپ‌های هم‌رسانده گفتگوهای مرتبط + + عضو‌های پیشین مخاطب گروه گالری @@ -508,19 +561,20 @@ https://meet.jit.si/$ROOM نقشه تصاویر و ویدیوهای هم‌رسانده در این گپ اینجا نمایش داده می‌شوند. اسناد و پرونده‌های هم‌رساندهٔ دیگر در این گپ اینجا نمایش داده می‌شوند. - تصاویر هم‌رسانده در این گپ اینجا نمایش داده می‌شوند. + تصویر‌های هم‌رسانده در این گپ اینجا نمایش داده می‌شوند. ویدیوهای هم‌رسانده در این گپ اینجا نمایش داده می‌شوند. پرونده‌های صوتی و پیام‌های صوتی هم‌رسانده در این گپ اینجا نمایش داده می‌شوند. - برنامه‌هایی که در این چت به اشتراک گذاشته شده‌اند، این‌جا نمایش داده خواهند شد. - رسانه‌های به اشتراک گذاشته شده همه چت‌ها در اینجا ظاهر می‌شود. - برنامه‌هایی که در هر گفتگویی ارسال شده باشند در اینجا ظاهر خواهند شد. + برنامه‌هایی که در این گپ به اشتراک گذاشته شده‌اند، این‌جا نمایش داده خواهند شد. + رسانه‌های به اشتراک گذاشته شده همهٔ چت‌ها در اینجا ظاهر می‌شود. + سند‌ها و دیگر پرونده‌هایی که در هر چپ پیوست شده‌اند این‌جا ظاهر خواهند شد. + برنامه‌های ارسال شده در همهٔ گپ‌ها اینجا ظاهر خواهند شد. نمایش رسانه حفظ مقیاس تصویر جدول مربعی ارسال پیام - + مخاطب %1$s نشانی خود را از %2$s به %3$s تغییر داده است. شما نشانی رایانامهٔ خود را از %1$s به %2$s تغییر دادید.\n\nاگر به یک گروه تأیید شده پیام بفرستید، مخاطبان آن به صورت خودکار نشانی جدید را جایگزین نشانی پیشین می‌کنند.\n\nبه شدت توصیه می‌شود که نشانی رایانامهٔ پیشین خود را به نحوی تنظیم کنید که تمام رایانامه‌ها را به نشانی جدید شما هدایت کند؛ در غیر این صورت ممکن است پیام‌های مخاطبانی که از تغییر نشانی شما مطلع نشده‌اند را از دست بدهید. @@ -539,6 +593,8 @@ https://meet.jit.si/$ROOM افزودن به عنوان دستگاه دوم در دستگاه اول، به \"تنظیم‌ها / افزودن دستگاه دوم\" بروید و کد نشان داده شده در آنجا را اسکن کنید از حساب دستگاه دیگر رونوشتی برای این دستگاه گرفته شود؟ + نمایه‌ای که می‌خواهید وارد کنید از یک نسخهٔ جدید‌تر دلتاچت است.\n\n +برای پیکره‌بندی یک دستگاه دوم، لطفا این دستگاه را به جدیدترین نسخهٔ دلتاچت بروزرسانی کنید. راه اندازی دستگاه دوم لغو شود؟ این کار رمزینهٔ پاس رونوشت شده در تخته‌گیره را باطل می کند. ℹ️ حساب به دستگاه دوم شما منتقل شد. @@ -636,7 +692,7 @@ https://meet.jit.si/$ROOM با تنظیم‌ها ساده‌ شده ادامه می‌دهید؟ نشانی رایانامه وارد شده از تنظیم‌های ساده پشتیبانی می‌کند (OAuth 2.0).\n\nIn - لطفا در مرحله بعد، به دلتاچت اجازه دهید که به عنوان نرم‌افزار رایانامه شما عمل نماید\n\n دلتاچت سرور ندارد؛ داده‌های شما در دستگاه خودتان باقی می‌ماند. + لطفا در مرحله بعد، به دلتاچت اجازه دهید که به عنوان نرم‌افزار رایانامه شما عمل نماید\n\n دلتاچت کارساز(سرور) ندارد؛ داده‌های شما در دستگاه خودتان باقی می‌ماند. بررسی‌های گواهینامه لطفاً یک نشانی رایانامهٔ معتبر وارد کنید لطفا یک کارساز / نشانی آی‌پی صحیح وارد کنید @@ -646,12 +702,17 @@ https://meet.jit.si/$ROOM نسخه پشتیبانی در\"%1$s\" پیدا شد.\n\n آیا می‌خواهید همه داده‌ها و تنظیم‌ها از آن وارد شود؟ نسخه پشتیبانی پیدا نشد.\n\n نسخه پشتیبانی را در\"%1$s\" کپی کرده و دوباره امتحان کنید. در غیر این صورت می‌توانید \"شروع پیام‌رسانی\" را فشار دهید دا فرایند به صورت عادی ادامه یابد. - نتوانست به عنوان «%1$s» وارد شود. لطفاً صحت نشانی رایانامه و گذرواژه را بررسی کنید. + نمی‌توانیم به عنوان «%1$s» وارد شویم. لطفاً درستی نشانی رایانامه و گذرواژه را بررسی کنید. پذیرش گواهینامه‌های نامعتبر تغییر حساب کاربری افزودن حساب کاربری + + برچسب حساب مثل «کار» یا «خانواده» + یک برچسب انتخاب کنید که تنها به شما نمایش داده می‌شود. این به شما کمک می‌کند حساب‌های مختلف خود را از هم تشخیص دهید. + + رفتن به بالا حذف حساب کاربری آیا از حذف حساب کاربری اطمینان دارید؟ همه اطلاعات حساب مربوط به «%s» روی این دستگاه پاک می‌شود. این شامل تنظیم‌های رمزگذاری سراسری، مخاطبین، گفتگوها، پیام‌ها و رسانه‌ها می‌شود. این عمل قابل بازگردانی نیست. @@ -696,6 +757,7 @@ https://meet.jit.si/$ROOM درخواست مسدود کردن عکس گرفتن از صفحه در لیست اخیر و درون نرم‌افزار برای اعمال کردن تنظیم‌های امنیت صفحه لطفا نرم‌افزار را بسته و دوباره باز کنید. اعلان‌ها + در گروه‌های بی‌صدا شده، برای پیام‌های مستقیم به خودتان، مانند پاسخ‌ها یا واکنش‌ها، اعلان دریافت کنید. نمایش اولویت فعال کردن اعلان‌های سیستم برای پیام‌های جدید @@ -713,7 +775,7 @@ https://meet.jit.si/$ROOM ظاهر قالب زبان - استفاده از فونت سیستم + استفاده از قلم سیستم صفحه کلید ناشناس درخواست دهید که صفحه کلید رفتارهای شخصی شما را یاد نگیرد @@ -784,6 +846,7 @@ https://meet.jit.si/$ROOM پیام %1$s سقف دانلود تا %1$s فعال خواهد بود + انتخاب نمایه انتخاب تصویر نمایه تصویر نمایهٔ جدیدتان را برگزینید حذف تصویر نمایه @@ -822,9 +885,9 @@ https://meet.jit.si/$ROOM آیا می‌خواهید %1$d پیام جدید و دریافت شده را در زمان%2$s در آینده پاک کنید؟\n\n• این شامل همه رسانه‌ها هم می‌شود\n\n• پیام‌ها جدای از اینکه دیده شده باشند یا نه پاک می‌شوند. \"پیام های ذخیره شده\" شامل این پاک کردن محلی نمی‌شوند. - آیا می‌خواهید %1$dپیام را اکنون و تمام پیام‌های آیندهٔ «%2$s» را پاک کنید؟/n/n⚠️ این شامل رایانامه‌ها، رسانه و «پیام‌های ذخیره شده» در همه پوشه‌های کارساز می‌شود/n/n⚠️ اگر می‌خواهید داده‌ها در کارساز باقی بمانند از این قابلیت استفاده نکنید/n/n⚠️ اگر به‌جز دلتاچت از دیگر نرم‌افزارهای رایانامه هم استفاده می‌کنید این قابلیت را به کار نگیرید. + آیا می‌خواهید %1$d پیام را اکنون و تمام پیام‌های آیندهٔ «%2$s» را پاک کنید؟/n/n⚠️ این شامل رایانامه‌ها، رسانه و «پیام‌های ذخیره شده» در همه پوشه‌های کارساز(سرور) می‌شود/n/n⚠️ اگر می‌خواهید داده‌ها در کارساز باقی بمانند از این قابلیت استفاده نکنید/n/n⚠️ اگر به‌جز دلتاچت از دیگر نرم‌افزارهای رایانامه هم استفاده می‌کنید این قابلیت را به کار نگیرید. - این شامل رایانامه‌ها، رسانه و «پیام‌های ذخیره شده» در تمام پوشه‌های کارساز می‌شود. اگر می‌خواهید داده‌ها را در کارساز نگه دارید از این قابلیت استفاده نکنید. اگر از دیگر نرم‌افزارهای رایانامه به‌جز دلتاچت استفاده می‌کنید از این قابلیت استفاده نکنید. + این شامل رایانامه‌ها، رسانه‌ها و «پیام‌های ذخیره شده» در تمام پوشه‌های کارساز(سرور) می‌شود. اگر می‌خواهید داده‌ها را در کارساز نگه دارید از این قابلیت استفاده نکنید. اگر از دیگر نرم‌افزارهای رایانامه به‌جز دلتاچت استفاده می‌کنید از این قابلیت استفاده نکنید. متوجه هستم، همه پیام‌ها حذف شوند یک بار بعد از بارگیری @@ -840,7 +903,7 @@ https://meet.jit.si/$ROOM ارسال پیام برپاسازی اتوکریپت - پیام برپاسازی اتوکریپت تنظیم‌های رمزگذاری سرتاسر شما را به شکلی امن با دیگر برنامه‌ها به اشتراک می‌گذارد.\n\n تنظیم‌ها با یک کد برپاسازی که در اینجا نمایش داده می‌شود رمزگذاری می‌شوند و باید در دستگاه دیگر تایپ شود. + پیام برپاسازی آتوکریپت تنظیم‌های رمزگذاری سراسری شما را به شکلی امن با دیگر برنامه‌ها به اشتراک می‌گذارد.\n\n تنظیم‌ها با یک کد برپاسازی که در اینجا نمایش داده می‌شود رمزگذاری می‌شوند و باید در دستگاه دیگر تایپ شود. ارسال پیام برپاسازی اتوکریپت تنظیم‌های شما برای خودتان ارسال شدند. پیام تنظیم‌ها را در دستگاه دیگر باز کنید. یک کد نصب از شما خواسته می‌شود. این ارقام را وارد کنید ترجیح رمزگذاری گیرنده به گیرنده @@ -848,9 +911,9 @@ https://meet.jit.si/$ROOM این پیام قابل رمزگشایی نیست. می‌توانید با پاسخ به این پیام از فرستنده درخواست کنید پیام را مجدد ارسال کند. -اگر دلتاچت را به تازگی دوباره نصب کرده‌اید بهتر است آن را مجدد راه‌اندازی کرده و از گزینه‌ی «افزودن به عنوان دستگاه دوم» استفاده کنید یا از نسخه‌ی پشتیبان بازیابی کنید. +اگر دلتاچت را به تازگی دوباره نصب کرده‌اید بهتر است آن را مجدد راه‌اندازی کرده و از گزینه‌ی «افزودن به عنوان دستگاه دوم» استفاده کنید، یا از نسخه‌ی پشتیبان بازیابی کنید. فرستنده در این گفت و گو ناشناس است. برای جزئیات بیشتر به \"اطلاعات\" مراجعه کنید. - پیام از%1$s + پیام از %1$s ارسال ناموفق پیام به %1$s. شما نام گروه را از «%1$s» به «%2$s» تغییر دادید. @@ -869,8 +932,8 @@ https://meet.jit.si/$ROOM شما عضو گروه، %1$s، را حذف کردید. عضو گروه، %1$s، توسط %2$s حذف شد. - - شما گروه را ترک کردید. + + شما این‌جا را ترک کردید. ترک گروه توسط %1$s. شما تصویر گروه را حذف کردید. @@ -914,12 +977,14 @@ https://meet.jit.si/$ROOM زمان‌سنج ناپدید شدن پیام‌ها را روی %1$s هفته تنظیم کردید. زمان‌سنج ناپدید شدن پیام‌ها توسط %2$s روی %1$s هفته تنظیم شد. - + %1$s پیامی را از دستگاه دیگری ارسال کرد. رمزنگاری سرتاسر پیام ها از این به بعد تضمین می شود. برای اطلاعات بیشتر ضربه بزنید. - رمزنگاری سراسری پیام‌های این گفتگو اکنون تضمین می‌شود. رمزنگاری سراسری باعث می‌شود پیام‌هایتان بین شما و مخاطبین شما محرمانه بماند. حتی ارائه‌دهنده رایانامه شما هم نمی‌تواند آن‌ها را بخواند. + رمزنگاری سراسری پیام‌های این گفتگو اکنون تضمین می‌شود. رمزنگاری سراسری باعث می‌شود پیام‌هایتان بین شما و مخاطبین شما محرمانه بماند. حتی ارائه‌دهندهٔ رایانامه شما هم نمی‌تواند آن‌ها را بخواند. + %1$s پیامی را از دستگاه دیگری ارسال کرد. برای اطلاعات بیشتر ضربه بزنید. ⚠️ %1$s به رمزنگاری سراسری نیاز دارد که هنوز برای این گپ پیکره‌بندی نشده است. برای یادگیری بیش‌تر این‌جا بزنید. + برای برقراری رمزنگاری سراسری، می‌توانید به صورت حضوری با مخاطب‌های خود دیدار کنید و کد کیوآر آن‌ها را برای معرفی اسکن کنید. بیشتر بدانید شما گپ «پیام‌های ذخیره شده» را پاک کردید.\n\nℹ️ برای استفادهٔ دوباره از «پیام‌های ذخیره شده» کافی است یک گپ جدید با خودتان درست کنید. @@ -942,18 +1007,19 @@ https://meet.jit.si/$ROOM بارگیری کیو آر کد به صورت تصویر اسکن کردن کد کیو آر دوربین خود را روی کد کیوآر نگه دارید. + کد کیو‌آر را زیر دوربین بگیرید امکان رمزگشایی کد کیوآر وجود ندارد آیا می خواهید به گروه\"%1$s\" ملحق شوید؟ اثرانگشت اسکن شده با انچه که برای %1$sمشاهده شده بود انطباق ندارد. - این کیوآر حاوی یک شناساگر است ولی ادرس رایانامه‌ای در آن نیست. \n\n برای یک تأییدیه به روش‌های دیگر لطفا ابتدا یک ارتباط رمزگذاری شده با دریافت کننده برقرار کنید. + این کیوآر حاوی یک شناساگر است. ولی آدرس رایانامه‌ای در آن نیست. \n\n برای یک تأییدیه به روش‌های دیگر لطفا ابتدا یک ارتباط رمزگذاری شده با دریافت کننده برقرار کنید. کیوآر کد اسکن شده:\n\n %1$s آدرس اینترنتی کیوآر اسکن شده:\n\n %1$s اثر انگشت دیگران برای ارتباط با شما می‌توانند این کد کیوآر را اسکن کنند. \n\n می‌توان کد کیوآر را در اینجا غیر فعال کنید و با اسکن کردن مجدد، آن را فعال کنید. - این کد کیوآر می‌تواند توسط دیگران و برای پیوستن به گروه \"%1$s\" اسکن شود.\n\n شما می‌تواند این کد کیوآر را در اینجا غیرفعال کنید و با اسکن کردن مجدد، آن را فعال نمایید. + این کد کیوآر می‌تواند توسط دیگران و برای پیوستن به گروه «%1$s» اسکن شود.\n\n شما می‌تواند این کد کیوآر را در اینجا غیرفعال کنید و با اسکن کردن مجدد، آن را فعال نمایید. غیرفعال کردن کد کیوآر - دیگران برای تماس با شما می‌توانند این کد کیوآر را اسکن کنند. \n\n این کد کیوآر در این دستگاه فعال نیست. - دیگران می‌توانند برای پیوستن به گروه \"%1$s\" این کد کیوآر را اسکن کنند. این کد کیوآر روی این دستگاه فعال نیست. + این کد کیو‌آر بازنشانی شده است و دیگر فعال نیست. + این کد کیوآر برای پیوستن به گروه «%1$s» بازنشانی شده‌است و دیگر فعال نیست. فعال کردن کد کیوآر کد دعوت کیوآر %1$sعضو شد. @@ -984,12 +1050,15 @@ https://meet.jit.si/$ROOM در حال برقراری رمزگذاری سراسری تضمین‌شده، لطفا صبر کنید... اکنون نمی توانیم رمزگذاری سراسری تضمین‌شده را برقرار کنیم. با این وجود می‌توانید پیام ارسال کنید. + + برای ادامه، مخاطب باید برخط باشد.\n\nاین فرآیند به صورت خودکار در پس‌زمینه ادامه خواهد داشت. %1$s تأیید شد. + امکان تایید رمزگذاری در مبدا، برای %1$sوجود ندارد. احراز هویت شده توسط %1$s تأیید شده توسط من - + تنظیم‌ها برای %1$s تغییر کرد. برای تضمین رمزنگاری سراسری شما تنها می‌توانید مخاطب‌هایی که یک تیک سبز دارند به این گروه اضافه کنید.\n\nمی‌توانید با مخاطب‌هایتان حضوری ملاقات کنید و برای معرفی، کد QR آن‌ها را اسکن کنید. گپ را برای ارسال پیام انتخاب کنید @@ -1024,7 +1093,7 @@ https://meet.jit.si/$ROOM \"Camera\" را فعال کنید. - برای ارسال پیام صوتی به تنظیم‌های نرم‌افزار رفته و پس از انتخاب «دسترسی‌ها» + برای ارسال پیام صوتی به تنظیم‌های نرم‌افزار یا سیستم رفته و پس از انتخاب «دسترسی‌ها» یا «اجازه‌ها» گزینه «میکروفن» را فعال نمایید. برای دریافت یا ارسال پرونده به تنظیم‌های برنامه بروید، «اجازه‌ها» را برگزینید و «ذخیره‌گاه» را به کار بیندازید. @@ -1045,7 +1114,7 @@ https://meet.jit.si/$ROOM برعکس کردن چرخاندن - + پیام رمزگذاری شده @@ -1070,6 +1139,8 @@ GNU GPL ورژن ۳ برنامه‌نویس ابزار برنامه نویس کمک + صفحهٔ خانگی دلتاچت + مشارکت گزارش یک مشکل درباره دلتاچت بازکردن دلتاچت @@ -1140,17 +1211,21 @@ GNU GPL ورژن ۳ به صورت متوسط هر%1$d دقیقه به صورت متوسط هر %1$d ساعت بررسی شده در %1$s + تنظیم‌های سیستم میانبرها دلتاچت برای گرفتن و ارسال عکس و فیلم و برای اسکن کردن کیوآر کد از دوربین شما استفاده می‌کند. - دلتاچت از مخاطبین شما برای نمایش فهرست رایانامه‌هایی که می‌توانید برایشان پیام ارسال کنید استفاده می‌کند. دلتاچت کارساز ندارد، مخاطبین شما به جایی ارسال نمی‌شوند. + دلتاچت از مخاطبین شما برای نمایش فهرست رایانامه‌هایی که می‌توانید برایشان پیام ارسال کنید استفاده می‌کند. دلتاچت کارساز(سرور) ندارد، مخاطبین شما به جایی ارسال نمی‌شوند. دلتاچت برای هم‌رسانی مکان شما در زمانی که آن به کار انداخته‌اید، به مجوز نیاز دارد. دلتاچت برای اشتراک موقعیت مکانی شما در زمانی که اشتراک موقعیت مکانی را فعال کرده‌ باشید به مجوز نیاز دارد. دلتاچت از میکروفون برای ذخیره و ارسال پیام صوتی یا فیلم دارای صدا استفاده می‌کند. دلتاچت به شما اجازه می دهد تصویر موردنظر برای ارسال را انتخاب کنید. دلتاچت میخواهد تصاویر را در آلبوم شما ذخیره کند. + دلتاچت می‌تواند از عکس چهرهٔ شما برای محافظت از نمایهٔ محلی، ساخت نسخهٔ پشتیبان و پیکره‌بندی دستگاه دوم استفاده کند. + + تحویل آنی استفاده از اتصال پس‌زمینه @@ -1158,7 +1233,7 @@ GNU GPL ورژن ۳ اجبار کردن اتصال پس‌زمینه اعلانی دائمی نشان می‌دهد - برای حفظ ارتباطتان با سرور رایانامه و دریافت پیامها در پیش زمینه، در گام بعدی، تنظیم‌های بهینه سازی باتری را نادیده بگیرید. \n\n دلتاچت از منابع کمی استفاده میکند و مراقب است باتری شما را بیش از حد مصرف نکند. + برای حفظ ارتباطتان با کارساز(سرور) رایانامه و دریافت پیامها در پیش زمینه، در گام بعدی، تنظیم‌های بهینه سازی باتری را نادیده بگیرید. \n\n دلتاچت از منابع کمی استفاده میکند و مراقب است باتری شما را بیش از حد مصرف نکند. برای دریافت پیام‌ها به صورت پس زمینه در دلتاچت این جا را ضربه بزنید. قبلا اجازه دسترسی به فعالیت در پس زمینه را به دلتاچت داده‌اید. \n\n اگر پیام‌ها هنوز هم در شرایط پس زمینه نمی‌آمد لطفا تنظیم‌های سیستم را نیز بررسی نمایید. diff --git a/src/main/res/values-fi/strings.xml b/src/main/res/values-fi/strings.xml index 344cf62d3..150b1f608 100644 --- a/src/main/res/values-fi/strings.xml +++ b/src/main/res/values-fi/strings.xml @@ -135,7 +135,6 @@ %d valittu %d valittu - Minä Luonnos Kuva @@ -200,13 +199,18 @@ Uusi keskustelu Uusi ryhmä Kloonaa keskustelu - + Kuulutuslista + Kuulutuslistat + Uusi kuulutuslista Lisää vastaanottajia + Muokkaa kuulutuslistaa + Kuulutuslistan nimi + Anna kuulutuslistalle nimi. Lähetä Näytä emoji-näppäimistö @@ -290,7 +294,6 @@ Lisää aloitusnäytölle Lahjoita - Mykistä 1 tunniksi Mykistä 8 tunniksi Mykistä 1 päiväksi @@ -325,8 +328,6 @@ Videokeskustelukutsu Sinut on kutsuttu videokeskusteluun, klikkaa %1$s liittyäksesi. - - Haluatko varmasti poistua tästä ryhmästä? Poista %d viesti? @@ -342,7 +343,7 @@ Aloita keskustelu yhteystiedon %1$s kanssa? Poista %1$s ryhmästä? - + Poista %1$s kuulutuslistalta? Haluatko avata tämän linkin? @@ -373,6 +374,7 @@ Lähetä viesti. Ei haittaa, vaikka %1$s ei käyttäisi Delta Chatia. + Kuulutuslistalla vastaanottajat saavat viestit keskusteluna kanssasi, jossa heillä on vain lukuoikeus. Muut näkevät ryhmän vasta, kun lähetät ensimmäisen viestin. Pyyhkäise peruuttaaksesi @@ -471,7 +473,7 @@ Neliöruudukko Lähetä viesti - + %1$s vaihtui osoitteesta %2$s osoitteeksi %3$s Vaihdoit sähköpostiosoitteesi osoitteesta %1$s osoitteeksi %2$s.\n\nJos lähetät viestin vahvistettuun ryhmään, ryhmän jäsenet saavat automaattisesti uuden osoitteesi.\n\nOn suositeltavaa asettaa vanha tilisi välittämään kaikki viestit uuteen osoitteeseesi. Muuten et välttämättä saa viestejä niiltä yhteystiedoiltasi, joilla ei ole uutta osoitettasi. @@ -799,8 +801,6 @@ Jäsen %1$s poistettu minun toimestani. Jäsen %1$s poistettu käyttäjän %2$s toimesta. - - Poistuit ryhmästä. %1$s poistui ryhmästä. Ryhmän kuva poistettu minun toimestani. @@ -844,11 +844,13 @@ Katoavien viestien ajastin asetettu %1$s viikkoon minun toimestani. Katoavien viestien ajastin asetettu %1$s viikkoon käyttäjän %2$s toimesta. - + %1$s lähetti viestin toiselta laitteelta. Tästä eteenpäin viestit on taatusti päästä-päähän salattuja. Lisätietoja napauttamalla. Kaikki viestit tässä keskustelussa ovat taatusti päästä-päähän salattuja.\n\nPäästä-päähän -salaus pitää viestisi sinun ja keskustelukumppanisi välillä. Edes sähköpostipalveluntarjoaja ei pysty niitä lukemaan. + %1$s lähetti viestin toiselta laitteelta. Lue lisää napauttamalla. + Päästä päähän salausta ei voida enää taata, todennäköisesti koska %1$s uudelleenasensi Delta Chatin tai lähetti viestin toiselta laitteelta.\n\nTapaamalla hänet voit skannata hänen QR -koodinsa uudelleen päästä-päähän salauksen palauttamiseksi. ⚠️ %1$s vaatii päästä-päähän -salausta joka ei enää ole käytössä tässä keskustelussa. Lue lisää napauttamalla. Päästä-päähän salauksen saat käyttöön tapaamalla yhteystietosi ja skannaamalla hänen QR -koodinsa. @@ -911,11 +913,12 @@ Taattua päästä päähän salausta ei vielä voitu ottaa käyttöön, mutta voit jo lähettää viestin. %1$s varmistettu. + Keskustelun päästä-päähän -salausta ei voida taata henkilön %1$s kanssa. %1$s lisäsi Lisäämäni - + Asetukset muutettu kohteessa %1$s. Päästä-päähän -salauksen takaamiseksi, voit lisätä ryhmään ainoastaan yhteystietoja joilla on vihreä \"oikein\" -merkki.\n\nVoit tavata yhteystietoja kasvotusten ja skannata heidän QR -koodinsa niin saat lisättyä salauksen käyttöön Valitse keskustelu viestien lähettämiseen @@ -959,7 +962,7 @@ Käännä Pyöritä - + Salattu viesti diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index 3b9f60340..5d9864712 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -159,7 +159,6 @@ %d Sélectionnés %d Sélectionnés - Moi Brouillon Image @@ -234,13 +233,18 @@ Discuter avec... Cloner la discussion - + Liste de diffusion + Listes de diffusion + Nouvelle liste de diffusion Ajouter des destinataires + Modifier la liste de diffusion + Nom de la liste de diffusion + Entrez un nom pour la liste de diffusion. Envoyer Basculer le clavier emoji @@ -333,7 +337,6 @@ Ajouter à l\'écran d\'accueil Faire un don - Désactiver pour 1 heure Désactiver pour 8 heures Désactiver pour 1 jour @@ -369,8 +372,6 @@ Invitation à une discussion vidéo Vous êtes invité à une discussion vidéo, cliquez sur %1$s pour la rejoindre. - - Voulez-vous vraiment quitter ce groupe ? Effacer %d message ici et sur le serveur ? Effacer %d messages ici et sur le serveur ? @@ -392,7 +393,7 @@ Discuter avec %1$s ? Retirer %1$s du groupe ? - + Retirer %1$s de la liste de diffusion ? Voulez-vous ouvrir ce lien ? @@ -426,6 +427,7 @@ Envoyez un message. Il n\'y a pas de problème si %1$s n\'utilise pas Delta Chat. + Dans une liste de diffusion, les destinataires reçoivent les messages dans une discussion avec vous en lecture seule. Les autres participants ne verront ce groupe qu\'après que vous avez envoyé un premier message. Glisser pour annuler @@ -534,7 +536,7 @@ Grille de photos carrées Envoyer message - + %1$s a changé son adresse de %2$s à %3$s Vous avez changé votre adresse courriel de %1$s à %2$s.\n\nSi vous envoyez maintenant un message à un groupe connu, votre ancienne adresse sera automatiquement remplacée par la nouvelle chez tous vos contacts dans ce groupe.\n\nIl est fortement conseillé de configurer votre ancien fournisseur de courriel de sorte à transférer tous vos courriels à votre nouvelle adresse. Sinon, vous risquez de manquer des messages de contacts qui n\'ont pas encore reçu votre nouvelle adresse. @@ -883,8 +885,6 @@ Membre %1$s retiré par vous. Membre %1$s retiré par %2$s. - - Vous avez quitté le groupe. %1$s a quitté le groupe. Vous avez supprimé l\'image du groupe. @@ -928,11 +928,13 @@ Vous avez réglé le temps d\'affichage des messages éphémères à %1$s semaines. Minuterie des messages éphémères réglée à %1$s semaines par %2$s. - + %1$s a envoyé un message depuis un nouvel appareil. Les messages sont désormais garantis chiffrés de bout en bout. Appuyer pour en savoir plus. Il n\'est pas garanti que tous les messages de cette discussion sont chiffrés de bout en bout.\n\nLe chiffrement de bout en bout assure la confidentialité des messages échangés par les membres d\'une discussion. Même votre fournisseur de courriel ne peut pas les lire. + %1$s a envoyé un message depuis un nouvel appareil. Appuyez pour en savoir plus. + Le chiffrement de bout en bout ne peut plus être garanti, probablement parce que %1$s a réinstallé Delta Chat ou envoyé un message depuis un nouvel appareil.\n\nVous pouvez convenir d\'une rencontre physique afin de scanner à nouveau son code QR pour ré-instaurer la garantie du chiffrement de bout en bout. ⚠️ %1$s nécessite un chiffrement de bout en bout qui n\'est pas encore configuré sur cette discussion. Appuyez pour en savoir plus. Pour établir un chiffrement de bout en bout vous pouvez rencontrer vos contacts en personne et scanner leur code QR. @@ -995,11 +997,12 @@ Le chiffrement de bout en bout n\'est pas encore garanti, mais vous pouvez déjà envoyer un message. %1$s connu. + Impossible de garantir le chiffrement de bout en bout avec %1$s. Connu par %1$s Connu par vous - + Configuration modifiée pour %1$s Pour garantir le chiffrement de bout en bout, vous pouvez ajouter à ce groupe uniquement les contacts avec un badge vert.\n\nVous pouvez rencontrer ces contacts en personne pour scanner leur code QR et les ajouter à votre liste de contacts connus. Sélectionnez une discussion à qui envoyer le message @@ -1043,7 +1046,7 @@ Tourner Pivoter - + Message chiffré diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml index 8e87113f6..6c736bfae 100644 --- a/src/main/res/values-gl/strings.xml +++ b/src/main/res/values-gl/strings.xml @@ -150,7 +150,6 @@ %d Seleccionados %d Seleccionado - Eu Borrador Imaxe @@ -228,9 +227,11 @@ Conversar con… Clonar conversa - + Lista de difusión + Listas de difusión + Nova lista de difusión Engadir correspondentes Enviar @@ -324,7 +325,6 @@ Engadir á pantalla de Inicio Doar - Acalar durante 1 h. Acalar durante 8 horas Acalar durante 1 día @@ -359,8 +359,6 @@ Convite a chat de vídeo Convidáronte a un chat de vídeo, preme %1$s para unirte. - - Seguro que desexa abandonar o grupo? Eliminar %d conversa en todos os teus dispositivos? Eliminar %d conversas en todos os teus dispositivos? @@ -386,7 +384,7 @@ Conversa con %1$s? Eliminar %1$s do grupo? - + Eliminar %1$s da lista de difusión? Queres abrir esta ligazón? @@ -524,7 +522,7 @@ Grella cadrada Enviar mensaxe - + %1$s cambiou o seu enderezo de %2$s a %3$s Cambiaches o teu enderezo de email de %1$s a %2$s.\n\nSe envías unha mensaxe a un grupo verificado os contactos cambiarán automáticamente o enderezo antigo polo novo.\n\nÉ moi recomendable que configures o email antigo para que che reenvíe todo o correo ao novo enderezo. De non facelo poderías perder mensaxes de contactos que aínda non coñezan o teu novo enderezo. @@ -838,8 +836,6 @@ Eliminaches a %1$s. %1$s eliminado por %2$s. - - Saíches do grupo %1$s deixou o grupo. Eliminaches a imaxe do grupo @@ -903,8 +899,9 @@ %1$s respondeu, agardando a que sexa engadido ao grupo... %1$s verificado. + Non se puido verificar %1$s. - + Cambiaron os axustes para %1$s. Elexir chat ao que enviar a mensaxe @@ -938,7 +935,7 @@ Voltear Rotar - + Mensaxe cifrada diff --git a/src/main/res/values-hu/strings.xml b/src/main/res/values-hu/strings.xml index 08bdae61b..87c1acd92 100644 --- a/src/main/res/values-hu/strings.xml +++ b/src/main/res/values-hu/strings.xml @@ -18,7 +18,7 @@ Alapértelmezett (%1$s) Alapértelmezett (ugyanaz, mint fentebb) Egyéni - Egyik sem + Semmi Automatikus Szigorú Megnyitás @@ -34,6 +34,8 @@ Frissítés Emodzsi Melléklet + + Mellékeli a következőt: „%1$s”? Vissza Bezárás Ablak bezárása @@ -52,11 +54,14 @@ Némítás Némított Eltűnő üzenetek - A csevegés összes tagjára vonatkozik, ha a Delta Chatet használják; az üzeneteket továbbra is másolhatják, menthetik és továbbíthatják, vagy más e-mail klienseket használhatnak. + A csevegés összes tagjára vonatkozik; az üzeneteket továbbra is másolhatják, menthetik és továbbíthatják. Mentés Csevegés Média + Alkalmazások & média Profil + Összes profil + Jelenlegi profil Főmenü Csevegés indítása Teljes üzenet megjelenítése… @@ -68,10 +73,10 @@ Betöltés… Elrejtés - Bekapcsolás + Aktiválás Távoli képek betöltése - A távoli képek követhetik Önt.\n\nEz a beállítás betűtípusokat és egyéb tartalmakat is betölthet. Ha letiltja, beágyazott vagy gyorsítótárazott képek jelenhetnek meg.\n\nTávoli képek betöltése? + A távoli képek követhetik Önt.\n\nEz a beállítás betűtípusokat és egyéb tartalmakat is betölthet. Ha letiltja, beágyazott vagy gyorsítótárazott képek jelenhetnek meg.\n\nBetölti a távoli képeket? Mindig Mindig töltse be a távoli képeket Azonnal @@ -85,12 +90,14 @@ Visszavonás Offline - Tovább + Következő Hiba Hiba: %1$s Nem található alkalmazást az ilyen típusú adatok kezeléséhez. - Nincs böngésző telepítve. + Nincs telepítve böngésző. %1$s nem található. + + Nem lehet menteni a következőt: %1$s. Vágólapra másolva. Névjegyek E-mail-cím @@ -107,7 +114,7 @@ Múlt héten Múlt hónapban - Utolsó megtekintés ideje: %1$s + Utoljára látta: %1$s Utoljára látta: %1$s Utoljára látta: - (ismeretlen) @@ -150,7 +157,7 @@ %d kiválasztva %d kiválasztva - + Kiválasztva: Ön Piszkozat Kép @@ -159,7 +166,7 @@ Gif Matrica - Hozzáadás a matrica gyűjteményhez + Hozzáadás a matricagyűjteményhez A matricák hozzáadásához koppintson a „Matricamappa megnyitása” lehetőségre, hozzon létre egy almappát a matricacsomagnak, és húzza oda a kép- és matricafájlokat. Matricamappa megnyitása Képek @@ -176,7 +183,7 @@ Kamera Rögzítés - Kamera váltás + Kameraváltás Váltás teljes képernyős módra Helyszín Helyszínek @@ -194,7 +201,8 @@ Alkalmazások Alkalmazásválasztó webcíme Ha be van állítva, akkor a webcím lesz használva mint alkalmazásválasztó az alapértelmezett helyett - Főoldal + Koppintson a „Küldésre” a megosztáshoz + Kezdőlap Játékok Eszközök Méret @@ -226,22 +234,40 @@ Új névjegy Új névjegy hozzáadása kézzel - A kézzel hozzáadott névjegyek szöveges üzenetek küldésére használhatók a klasszikus e-mailekhez és nem garantált a végpontok közöttii titkosításuk. + A kézzel hozzáadott névjegyek szöveges üzenetek küldésére használhatók a klasszikus e-mailekhez és nem garantált a végpontok közötti titkosításuk. Új csevegés Új csoport Csevegés vele… Csevegés klónozása - + Adáslista + Adásliták + Új adáslista + + Csatorna + + Csatornák + + Új csatorna Címzettek hozzáadása + Adáslista szerkesztése + Adáslista neve + Adjon meg egy nevet az adáslistának + + Csatorna neve + E-mail + + Új e-mail + + Tárgy Küldés - Váltás emodzsi-billentyűzetre + Váltás emodzsibillentyűzetre Csoport szerkesztése Csoportnév és -kép Az összes helyszín megjelenítése @@ -249,14 +275,15 @@ Archiválás visszavonása Fájl mellékelése Csoport elhagyása + Csatorna elhagyása Csevegés törlése Csevegés kiürítése Névjegy törlése Biztosan törli ezt a helyszínt? - Üzenet részletei - Vágólapra másolás - Meghívó-hivatkozás megosztása + Üzenetinformáció + Másolás a vágólapra + Meghívási hivatkozás megosztása Ezen a hivatkozáson keresztül bárki megtekintheti az Ön profilját, és csevegést kezdeményezhet Önnel. Csak olyan emberekkel ossza meg, akikben megbízik. Partnerek meghívása @@ -275,6 +302,7 @@ Melléklet exportálása Mellékletek exportálása Összes média + Összes alkalmazás & média Megjelenítés a csevegésben Alkalmazás megjelenítése a csevegésben @@ -316,7 +344,7 @@ Eszközüzenetek Helyben előállított üzenetek Az üzenetek ebben a csevegésben az Ön készülékén kerülnek előállításra, hogy tájékoztassák Önt az alkalmazás frissítéseiről és a használat közben felmerülő problémákról. - Lépjen kapcsolatba a partnereivel!\n\n🙌 Koppintson a „QR-kódra” mind a két eszköz főképernyőjén. Válassza a „QR-kód beolvasása” lehetőséget az egyik eszközön, és irányítsa a másik eszközre\n\n🌍 Ha nem ugyanabban a szobában tartózkodnak a partnerével, akkor olvassa be a QR-kódját egy videohíváson keresztül, vagy ossza meg a meghívó-hivatkozást a „QR-kód bolvasása”-ból.\n\nMajd: Élvezze az üzenetküldés-élményt a valaha létezett legnagyobb decentralizált hálózaton keresztül, ami az e-mail és - más népszerű alkalmazásokkal ellentétben - központi kiszolgáló vagy nyomon követés nélkül, illetve anélkül, hogy önt, partnereit, kollégáit vagy családját nagy szervezeteknek adná el. + Lépjen kapcsolatba a partnereivel!\n\n🙌 Koppintson a QR-kódra mindkét eszköz főképernyőjén. Az egyik eszközön válassza a „QR-kód beolvasása” lehetőséget, majd irányítsa a másik eszköz képernyőjére\n\n🌍 Ha nincsenek egy helyiségben, olvassa be egy videohívás segítségével, vagy küldjön egy meghívási hivatkozást a „QR-kód beolvasása” menüpontból\n\nÉlvezze az üzenetküldési élményt a valaha létezett legnagyobb decentralizált hálózaton: az e-mailen. És más népszerű alkalmazásokkal ellentétben központi kiszolgáló vagy nyomon követés nélkül, illetve anélkül, hogy Önt, partnereit, kollégáit vagy családját nagy szervezeteknek adná el. Névjegy szerkesztése Csevegés kitűzése @@ -332,6 +360,7 @@ Hozzáadás a kezdőképernyőhöz Adományozás + ❤️ Úgy tűnik, hogy tetszik önnek a Delta Chat!\n\nFontolja meg az adományozást, hogy a Delta Chat mindenki számára ingyenes maradhasson.\n\nUgyan a Delta Chat szabadon használható és nyílt forráskódú, de a fejlesztés pénzbe kerül. Segítsen nekünk, hogy a Delta Chat független maradhasson, és a jövőben még fantasztikusabbá váljon.\n\nhttps://delta.chat/donate Némítás 1 órára Némítás 8 órára @@ -349,26 +378,27 @@ A következő fájl elküldése neki: %s? A következő %d fájl elküldése „%s” számára? - A fájl mentve ide: „%1$s”. + Fájl mentve ide: „%1$s”. Videócsevegés Meghívja egy videócsevegésbe őt: %1$s? Ehhez mindkét oldalon kompatibilis alkalmazás vagy böngésző szükséges. %1$s meg lett híva egy videócsevegésbe. - Ön elküdött egy videócsevegés-meghívót. + Ön elküdött egy videócsevegési meghívót. Koppintson ide a csatlakozáshoz. Koppintson ide a megnyitáshoz. - Videócsevegés-példány - Az Ön videócsevegés-példánya + Videócsevegési példány + Az Ön videócsevegési példánya Például: https://your-server.org/$ROOM Ha engedélyezve van, akkor az összes csevegésből indíthat videócsevegést. Kompatibilis alkalmazást vagy böngészőt igényel mindkét oldalon. „%1$s” használata mások meghívásához a videócsevegésekbe?\n\nAmint beállította, az összes csevegésből indíthat videócsevegést. Ez az összes korábbi beállítás helyébe lép a videócsevegéseknél. - Videócsevegés-meghívó + Videócsevegési meghívó Ön meg lett híva egy videócsevegésbe, kattintson ide: %1$s a csatlakozáshoz. - Biztosan ki akar lépni a csoportból? + + Biztosan elhagyja a csatornát? Töröl %d csevegést az összes eszközén? Töröl %d csevegést az összes eszközén? @@ -394,8 +424,10 @@ Csevegés vele: %1$s? Eltávolítja a csoportból őt: %1$s? - + Eltávolítja az adáslistából őt: %1$s? + + Eltávolítja a csatornából a következőt: %1$s? Biztosan megnyitja ezt a hivatkozást? @@ -425,7 +457,10 @@ Üzenet küldése „%1$s” számára. + Az adáslistán a címzettek csak olvasható módban kapják meg az üzeneteket öntől. + + A csatornák egy blogszerű eszköz az üzenetek megosztására a közönséggel. Mások csak az első üzenet elküldése után fogják látni ezt a csoportot. Visszavonás csúsztatással Hangüzenet rögzítéséhez koppintson és tartsa lenyomva; Az elküldéshez engedje el. @@ -435,8 +470,9 @@ Üzenet… Archivált Kérés + Kérések felvétele a számlálókba és értesítésekbe Nincsenek üzenetek. - Magamnak küldött üzenetek + Önmagamnak küldött üzenetek Az archivált csevegések itt fognak megjelenni. Mentett üzenetek • Üzenetek továbbítása az egyszerű hozzáférés érdekében\n\n• Jegyzetek vagy hangjegyzetek készítése\n\n• Médiaanyagok mellékelése a mentéshez @@ -466,7 +502,7 @@ Üzenet küldése… Valós idejű alkalmazások - Valós idejű kapcsolatok engedélyezése a csevegésekben megosztott alkalmazásokhoz. Ha engedélyezve van, a partnerei képesek lehetnek felfedezni az Ön IP-címét, amikor elindít egy alkalmazást. + Valós idejű kapcsolatok engedélyezése a csevegésekhez mellékelt alkalmazások számára. Ha engedélyezve van, a csevegési partnerei képesek lehetnek felfedezni az Ön IP-címét, amikor elindít egy alkalmazást. Helyszínek megjelenítése időkeretben @@ -505,10 +541,10 @@ Csoport profilképének megváltoztatása Csoport készítése Csoport nevének magadása. - Tagok felvétele + Tagok hozzáadása A csoport tagjának kell lennie, ahhoz, hogy ezt megtehesse. Titkosítás - Megosztott csevegések + Közös csevegések Kapcsolódó csevegések Már nem tagok @@ -527,13 +563,13 @@ A bármelyik csevegésben megosztott média itt fog megjelenni. A csevegésekben megosztott dokumentumok és egyéb fájlok itt jelennek meg. A bármelyik csevegésben kapott vagy küldött alkalmazások itt fognak megjelenni. - Média előnézete + Médiaelőnézet Tengelyarányrács Négyzetrács Üzenet küldése - + %1$s megváltoztatta a címét következőről: %2$s, erre: %3$s Ön megváltoztatta a saját e-mail-címét erről: %1$s erre: %2$s.\n\nHa most üzenetet küld egy hitelesített csoportba, az ottani partnerei automatikusan lecserélik az Ön régi címét az új címére.\n\nEzért nagyon ajánlott beállítani, hogy a régi e-mail-szolgáltatója továbbítsa-e az összes e-mailt az e-mail-címére. Ellenkező esetben lemaradhat azoknak a partnereinek az üzeneteiről, akik még nem kapták meg az új címét. @@ -543,7 +579,7 @@ Második eszköz hozzáadása Győződjön meg arról, hogy mindkét eszköz ugyanazon a Wi-Fi-n vagy hálózaton van-e - Ez egy QR-kódot hoz létre, amelyet a második eszközön beolvashat a profil másolásához. + Ez létrehoz egy QR-kódot, amit a második eszközön beolvashat a profil másolásához.\n\nÜgyeljen arra, hogy egy nem kívánatos megfigyelő vagy kamera ne láthassa a következő képernyőt. Telepítse a Delta Chatet a másik eszközére (https://get.delta.chat) Indítsa el a Delta Chatet, koppintson a „Már van profilom / Hozzáadás második eszközként” lehetőségre, és olvassa be az itt megjelenő QR-kódot. @@ -648,7 +684,7 @@ Hivatkozás megosztása Folytatja az egyszerűsített beállítást? - A megadott e-mail-cím támogatja az egyszerűsített beállítást (OAuth 2.0).\n\nA következő lépésben engedélyezze a Delta Chat számára, hogy az e-mailen keresztüli csevegés alkalmazásaként működjön.\n\nA Delta Chat nem gyűjt felhasználói adatokat, az Ön összes adata az eszközén van tárolva. + A megadott e-mail cím támogatja az egyszerűsített beállítást (OAuth 2.0).\n\nA következő lépésben engedélyezze a Delta Chat számára, hogy e-mailen keresztüli csevegésre szolgáló alkalmazásként működjön.\n\nA Delta Chat nem gyűjt felhasználói adatokat, az Ön összes adata kizárólag az eszközén tárolódik. Tanúsítvány ellenőrzése Adjon meg egy érvényes e-mail-címet Adjon meg egy érvényes kiszolgáló- vagy IP-címet @@ -691,7 +727,7 @@ - Egyedi használata: %s + Egyéni használata: %s Alapértelmezett használata: %s Profiladatok Profilkép @@ -713,7 +749,7 @@ Képernyőképek készítésének megakadályozása a futó alkalmazások listájában és az alkalmazáson belül A képernyő biztonsági beállításának alkalmazásához indítsa újra az alkalmazást. Értesítések - Megemlítések + Említések A némított csoportokban csak az Önnek címzett üzenetek, (például válaszok vagy reakciók) esetén küld értesítést. Megjelenítés Prioritás @@ -740,16 +776,16 @@ Ha az olvasási visszaigazolások le vannak tiltva, így Ön sem fogja látni mások olvasási visszaigazolásait. Kiszolgáló Titkosítás - Privát kulcsok kezelése + Kulcsok kezelése Rendszeremodzsik használata - A Delta Chat beépített emodzsi-támogatásának letiltása + A Delta Chat beépített emodzsitámogatásának letiltása A rendszer névjegyzékének olvasása - Csevegések létrehozása a névjegyzékéből származó partnereivel. Egyes szolgáltatóknál először a végpontok közötti titkosítás beállítására van szükség. + Beszélgetések létrehozásának felajánlása az eszköz névjegyzékében lévő partnerekkel. Csevegések Csevegésen belüli hangok Naplófájl megtekintése - A naplófájl elmentve a „Letöltések” nevű mappába - Nem sikerült elmenteni a naplófájlt + A naplófájl mentve a „Letöltések” nevű mappába + Nem sikerült menteni a naplófájlt Naplófájl Egyéb Biztonsági mentés @@ -758,13 +794,13 @@ %1$s exportálása - Mind a(z) %1$d profil exportálása + Az összes (%1$d) profil exportálása Biztonsági mentés készítése A biztonsági mentés sikeresen létrehozva itt: „%1$s”. - Privát kulcsok kezelése - Privát kulcsok exportálása + Kulcsok kezelése + Titkos kulcsok exportálása Privát kulcsok exportálása ide: „%1$s”? - Privát kulcsok importálása + Titkos kulcsok importálása Titkosítási kulcsok importálása innen: „%1$s”?\n\n• A meglévő titkosítási kulcsok nem törlődnek\n\n• Az utoljára importált kulcs lesz az új alapértelmezett kulcs, kivéve, ha a fájlnévben szerepel a „legacy” szó. A titkosítási kulcsok sikeresen beíródtak ide: „%1$s”. Titkosítási kulcsok importálva innen: „%1$s”. @@ -791,8 +827,8 @@ A hibakeresési beállítások bekapcsolásával instabillá teheti az alkalmazást. Csak fejlesztőknek ajánlott a bekapcsolása. Alapértelmezett kép Alapértelmezett szín - Egyedi kép - Egyedi szín + Egyéni kép + Egyéni szín Exportálás megszakítva. Üzenetek automatikus letöltése @@ -804,6 +840,7 @@ %1$s üzenet Letöltés maximum ennyi ideig visszamenőleg: %1$s + Profil kiválasztása Profilkép kiválasztása Válassza ki az új profilképet Profilkép törlése @@ -843,9 +880,9 @@ Szeretné törölni a %1$d üzenetet most és az összes újonnan érkező üzenetet a jövőben ekkor: „%2$s”?\n\n• Ez magában foglalja az összes médiát is\n\n• Az üzenetek törlésre kerülnek, akár látták őket, akár nem\n\n• A „Mentett üzenetek” nem kerülnek törlésre a helyi törlésből. - Szeretné törölni a %1$d üzenetet most és az összes újonnan érkező üzenetet a jövőben ekkor: „%2$s”?\n\n⚠️ Ez magába foglalja az e-maileket, a médiát és a „Mentett üzeneteket” az összes mappából a kiszolgálón\n\n⚠️ Ne használja ezt a funkciót, ha az adatokat a kiszolgálón szeretné tartani\n\n⚠️ Ne használja ezt a funkciót, ha a Delta Chat mellett más e-mail klienseket is használ. + Biztosan törölni szeretne %1$d üzenetet most, és a jövőben minden újonnan lekérdezett „%2$s” üzenetet?\n\n⚠️ Ez magába foglalja az e-maileket, a médiatartalmakat és a „Mentett üzeneteket” az összes kiszolgálómappában.\n\n⚠️ Ne használja ezt a funkciót, ha meg akarja tartani az adatokat a kiszolgálón, vagy ha klasszikus e-mail-klienseket is használ. - Ez magában foglalja az e-maileket, a médiát és a „Mentett üzeneteket” és az összes mappát a kiszolgálón. Ne használja ezt a funkciót, ha a kiszolgálón szeretné megtartani az adatokat, vagy ha a Delta Chat mellett más e-mail klienseket is használ. + Ez magába foglalja az e-maileket, a médiatartalmakat és a „Mentett üzeneteket” az összes kiszolgálómappában. Ne használja ezt a funkciót, ha meg akarja tartani az adatokat a kiszolgálón, vagy ha klasszikus e-mail-klienseket is használ. A „Törlés a letöltés után azonnal” bekapcsolása Ha a „Törlés a letöltés után azonnal” engedélyezve van, akkor nem használhatja ezt a profilt több eszközről. Értem, törölje ezeket az üzeneteket @@ -862,9 +899,9 @@ 1 év elteltével - Autocryptbeállító-üzenet küldése - Egy autocryptbeállító-üzenet biztonságosan megosztja az ön végpontok közötti beállításait más autocrypt-kompatibilis alkalmazásokkal.\n\nA beállítás titkosítása egy, itt megjelenő beállítási kóddal történik, amelyet a másik eszközön kell begépelni. - Autocryptbeállító-üzenet küldése + Autocrypt-beállítási üzenet küldése + Az Autocrypt-beállítási üzenet biztonságosan megosztja a végponttól-végpontig titkosított beállításait más Autocrypt-kompatibilis alkalmazásokkal.\n\nHa a másik eszközön is a Delta Chat alkalmazást használja, akkor válassza inkább a „Beállítások / Második eszköz hozzáadása” lehetőséget helyette. + Autocrypt-beállítási üzenet küldése A beállításokat elküldtük önnek. Váltson a másik eszközre, és nyissa meg a beállítási üzenetet. Meg kell adnia a beállítási kódot. Írja be a következő számjegyeket: Végpontok közötti titkosítás előnyben részesítése @@ -890,8 +927,8 @@ Ön eltávolította őt: %1$s. %2$s eltávolította őt: %1$s. - - Ön elhagyta a csoportot. + + Ön elhagyta a csevegést. %1$s elhagyta a csoportot. Ön törölte a csoport profilképét. @@ -935,11 +972,13 @@ Ön az eltűnő üzenetek időzítőjét %1$s hétre állította be. %2$s az eltűnő üzenetek időzítőjét%1$s hétre állította be. - + %1$s egy másik eszközről küldött üzenetet. Az üzenetek mostantól garantáltan titkosítva lesznek a végpontok között. Koppintson, ha többet szeretne tudni. Mostantól garantált, hogy ebben a csevegésben az összes üzenet végpontok közötti titkosítással rendelkezik.\n\nA végpontok közötti titkosítással az üzenetek bizalmasak maradnak Ön és a partnerei között. Még az e-mail-szolgáltatója sem tudja elolvasni őket. + %1$s egy másik eszközről küldött üzenetet. Koppintson, ha többet szeretne tudni. + A végpontok közötti titkosítás már nem garantálható, valószínűleg azért, mert %1$s újratelepítette a Delta Chatet, vagy egy másik eszközről küldött üzenetet.\n\n Személyesen találkozhat vele, és újra beolvashatja a QR-kódját a garantált végpontok közötti titkosítás visszaállításához. ⚠️ A(z) %1$s végpontok közötti titkosítást igényel, ami még nincs beállítva erre a csevegésre. Koppintson, ha többet szeretne megtudni. A végpontok közötti titkosítás létrehozásához személyesen is találkozhat a partnereivel, és a QR-kódjukat beolvasva bemutathatja őket. @@ -1001,13 +1040,16 @@ Garantált végpontok közötti titkosítás létrehozása, várjon… Még nem sikerült a garantált végpontok közötti titkosítást létrehozni, de már küldhet üzenetet. + Úgy tűnik, hogy ez tovább tart, mint gondoltuk, talán a partnere vagy Ön offline állapotban van.\n\nMindenesetre a folyamat a háttérben folytatódik, eközben csinálhat valami mást… %1$s bemutatva. + Nem lehet garantált végpontok közötti titkosítást létrehozni vele: %1$s. %1$s által bemutatva Ön által bemutatva - + Bemutatva + Megváltoztatta a beállításokat %1$s számára. A végpontok közötti titkosítás garantálása érdekében csak zöld jelöléssel rendelkező névjegyeket adhat hozzá ehhez a csoporthoz.\n\n Személyesen is találkozhat a partnereivel és beolvashatja a QR-kódjukat, hogy bemutassa őket. Válassza ki a csevegést az üzenet elküldéséhez @@ -1051,7 +1093,7 @@ Tükrözés Forgatás - + Titkosított üzenet @@ -1091,7 +1133,7 @@ Név Csoport képének kiválasztása Biztonsági mentés exportálása - Autocrypt beállítások átvitele. + Autocrypt-beállítások átvitele. Törli ezt a profilt? Az összes adata törlődni fog, beleértve a végpontok közötti titkosítási beállításokat, névjegyeket, csevegéseket, üzeneteket és médiát. Ez a művelet nem vonható vissza. elküldött érkezett @@ -1182,7 +1224,10 @@ Már engedélyezve van a Delta Chat számára, hogy a háttérben üzeneteket fogadjon.\n\nHa az üzenetek még mindig nem érkeznek meg a háttérben, ellenőrizze a rendszerbeállításokat is. + Újdonságok:\n\n💯 A végpontok közötti titkosítás most már megbízható és örökre megmarad. A lakatok 🔒 eltűntek!\n\n✉️ A végpontok közötti titkosítás nélküli klasszikus e-mailek betűszimbólummal vannak jelölve\n\n😻 Új, továbbfejlesztett profilképernyő az összes névjegyhez\n\n🔲 Új gomb a csevegésben használt alkalmazások gyors eléréséhez\n\n❤️ Ha teheti, adományozzon nekünk, hogy függetlenek maradhassunk és továbbra is fejlesztéseket tudjunk végrehajtani: %1$s + Mik az újdonságok?\n\n❤️‍🔥 Új emodzsi-választó még több emodzsival\n\n🎮 Továbbfejlesztett, a csevegésben használható alkalmazások: Értesítéseket kaphat és megnyithatja az azokat támogató alkalmazásokban, azaz közvetlenül megnyithat egy hozzáadott naptárbejegyzést\n\n👍 Értesítést kaphat az üzeneteire adott reakciókról\n\n… 🛠️ Egyéb javítások, tudjon meg többet itt: %1$s + ℹ️ A „Profilváltás” beállítás át lett helyezve: Érintse meg a főképernyő felső sarkában lévő profilképet a profilok hozzáadásához vagy váltásához 💡 diff --git a/src/main/res/values-in/strings.xml b/src/main/res/values-in/strings.xml index ed0947d74..3a30b5055 100644 --- a/src/main/res/values-in/strings.xml +++ b/src/main/res/values-in/strings.xml @@ -122,7 +122,6 @@ %d Dipilih - Saya Draf Gambar @@ -283,8 +282,6 @@ Undangan obrolan video Anda diundang ke obrolan video, klik %1$s untuk bergabung. - - Apakah anda yakin untuk keluar dari grup ini? Menghapus pesan %d? @@ -569,8 +566,9 @@ Buat alamat email baru di\"%1$s\" dan masuk ke sana?\n\nAkun yang sudah ada tidak akan di hapus. Gunakankan item \"Ganti akun\" untuk mengganti akun anda Kode QR yang dipindai tidak dapat digunakan untuk mengatur akun baru. %1$sdiverifikasi. + Tidak bisa memverifikasi %1$s. - + Ubah pengaturan untuk %1$s. Balasan @@ -591,7 +589,7 @@ Untuk melampirkan lokasi, lihat pengaturan aplikasi, pilih \"Perizinan\", dan aktifkan \"Lokasi\". Gambar di mana saja untuk diburamkan - + Pesan terenkripsi diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index 76f64d137..8e83f64c5 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -34,6 +34,8 @@ Aggiorna Emoji Allegato + + Allega \"%1$s\"? Indietro Chiudi Chiudi Finestra @@ -56,7 +58,10 @@ Salva Chat Media + Apps & Media Profilo + Tutti i Profili + Profilo Corrente Menu Principale Inizia Chat Mostra Messaggio Completo… @@ -91,6 +96,8 @@ Non ho trovato un\'app per gestire questo tipo di dati. Nessun browser installato. Non ho trovato %1$s. + + Impossibile salvare%1$s. Copiato negli appunti. Contatti Indirizzo E-Mail @@ -159,7 +166,7 @@ %d Selezionati %d Selezionati - + Selezionato: Io Bozza Immagine @@ -192,7 +199,7 @@ Galleria Immagini e Video File - Files + File Manda file originali e immagini non compresse Scegli da File @@ -200,9 +207,10 @@ App - Apps + App URL Selettore App Se impostato, l\'URL verrà utilizzato come Selettore App anziché quello predefinito + Premi \"Invia\" per condividere Inizio Giochi Strumenti @@ -241,14 +249,32 @@ Chatta con… Clona Chat - + Lista Trasmissione + Liste Trasmissioni + Nuova Lista Trasmissione + + Canale + + Canali + + Nuovo Canale Aggiungi Destinatari + Modifica Lista Trasmissione + Nome Lista Trasmissione + Per piacere inserisci un nome per la lista trasmissione. + + Nome Canale + E-Mail + + Nuova E-Mail + + Oggetto Invia Attiva/Disattiva Tastiera Emoji Modifica Gruppo @@ -258,6 +284,7 @@ Ripristina Chat Aggiungi Allegato Abbandona Gruppo + Abbandona Canale Elimina Chat Cancella Messaggi @@ -284,6 +311,7 @@ Esporta Allegato Esporta Allegati Tutti i Media + Tutte le Apps & Media Mostra in Chat Mostra App in Chat @@ -341,6 +369,7 @@ Aggiungi alla Schermata Iniziale Dona + ❤️ Sembra che Delta Chat ti piaccia!\n\nConsidera una donazione per contribuire a garantire che Delta Chat rimanga gratuita per tutti.\n\nSebbene Delta Chat sia gratuita e open source, lo sviluppo richiede soldi. Aiutaci a mantenere Delta Chat indipendente e a renderla ancora più fantastica in futuro.\n\nhttps://delta.chat/donate Silenzia per 1 ora Silenzia per 8 ore @@ -378,7 +407,8 @@ Sei invitato a una chat video, fai clic %1$s per partecipare. - Sei sicuro di voler abbandonare questo gruppo? + + Sei sicuro di voler abbandonare? Eliminare %d chat su tutti i tuoi dispositivi? Eliminare %d chats su tutti i tuoi dispositivi? @@ -407,8 +437,10 @@ Chattare con %1$s? Rimuovere %1$s dal gruppo? - + Rimuovere %1$s dalla lista di trasmissione? + + Rimuovere %1$s dal canale? Vuoi aprire questo collegamento? @@ -441,7 +473,10 @@ Invia un messaggio a %1$s. + In una lista di trasmissione, i destinatari riceveranno i messaggi in una chat di sola lettura con te. + + I canali sono uno strumento uno-a-molti per trasmettere i tuoi messaggi. Gli altri vedranno questo gruppo solo dopo che avrai inviato un primo messaggio. Scorri per annullare Tocca e mantieni per registrare un messaggio vocale, rilascia per inviare @@ -451,6 +486,7 @@ Messaggio Archiviato Richiesta + Includi le richieste nel contatore e nelle notifiche Nessun messaggio. Messaggi a Me Le chat archiviate verranno mostrate qui. @@ -481,8 +517,8 @@ Invia \"%1$s\" a… Invia Messaggio a... - Apps in Tempo Reale - Abilita connessioni in tempo reale per app condivise nelle chat. Se abilitato, i partner della chat potrebbero essere in grado di scoprire il tuo indirizzo IP quando avvii un\'app. + App in Tempo Reale + Abilita connessioni in tempo reale per apps condivise nelle chats. Se abilitato, i partner della chat potrebbero essere in grado di scoprire il tuo indirizzo IP quando avvii un\'app. Mostra le posizioni nell\'intervallo di tempo @@ -507,7 +543,7 @@ Cerca Cerca nella Chat - Cerca Files + Cerca File Cerca chat, contatti e messaggi Nessun risultato trovato per \"%s\" @@ -524,7 +560,7 @@ Aggiungi Membri Devi essere un membro del gruppo per fare questa azione. Crittografia - Chat Condivise + Chats in Comune Chat Correlate Membri Passati @@ -535,21 +571,21 @@ Collegamenti Mappa Immagini e video condivisi in questa chat verranno mostrate qui. - Documenti e altri files condivisi in questa chat verranno mostrate qui. - Le immagini condivise in questa chat verranno mostrate qui. - I video condivisi in questa chat verranno mostrate qui. - I files audio e i messaggi vocali condivisi in questa chat verranno mostrati qui. - Le app condivise in questa chat verranno mostrate qui. - I media condivisi in qualsiasi chat verranno mostrate qui. - Qui verranno visualizzati i documenti e gli altri file condivisi in qualsiasi chat. - Le apps condivise in qualsiasi chat appariranno qui. + Documenti e altri file allegati in questa chat verranno mostrate qui. + Le immagini allegate in questa chat verranno mostrate qui. + I video allegati in questa chat verranno mostrati qui. + I files audio e i messaggi vocali allegati in questa chat verranno mostrati qui. + Le apps allegate in questa chat verranno mostrate qui. + I media allegati in qualsiasi chat verranno mostrati qui. + Qui verranno visualizzati i documenti e gli altri file allegati in qualsiasi chat. + Le apps allegate n qualsiasi chat appariranno qui. Anteprima Media Aspetto Griglia Proporzioni Griglia Quadrata Invia Messaggio - + %1$s ha cambiato il suo indirizzo da %2$s a %3$s Hai cambiato il tuo indirizzo email da %1$s a %2$s.\n\nSe ora invii un messaggio a un gruppo verificato, i contatti sostituiranno automaticamente il vecchio indirizzo con il tuo nuovo indirizzo.\n\nSi consiglia vivamente di impostare il tuo vecchio fornitore email per inoltrare tutte le email al tuo nuovo indirizzo. Altrimenti potresti perdere i messaggi di contatti che non hanno ancora ricevuto il tuo nuovo indirizzo. @@ -699,7 +735,7 @@ Inoltra a… - Inviare %1$d files a \"%2$s\"? + Inviare %1$d file a \"%2$s\"? Invia %1$d file(s) a %2$d chat? (I video vengono inviati come file originali, di grandi dimensioni. Per inviare i video come file più piccoli, allegali separatamente) Invia questo testo a %1$d chat?\n\n\"%2$s\" @@ -820,6 +856,7 @@ %1$s messaggio Scaricamento disponibile massimo fino a %1$s + Seleziona il Profilo Seleziona Immagine Profilo Seleziona la tua nuova immagine profilo Elimina Immagine Profilo @@ -906,8 +943,8 @@ Hai rimosso il membro %1$s. Membro %1$s rimosso da %2$s. - - Hai lasciato il gruppo. + + Hai abbandonato. Gruppo lasciato da %1$s. Hai eliminato l\'immagine del gruppo. @@ -951,11 +988,13 @@ Hai impostato il timer dei messaggi a scomparsa su %1$s settimane. Timer messaggi a scomparsa impostato su %1$s settimane da %2$s. - + %1$s ha inviato un messaggio da un altro dispositivo. - D\'ora in poi i messaggi saranno garantiti crittografati end-to-end. Tocca per saperne di più. - Ora è garantito che tutti i messaggi in questa chat siano cifrati end-to-end.\n\nLa crittografia end-to-end mantiene privati i messaggi ​​tra te e i tuoi partner di chat. Nemmeno il server, il fornitore o il trasmettitore di e-mail può leggerli. + I messaggi sono crittografati end-to-end. Tocca per saperne di più. + Tutti i messaggi in questa chat sono crittografati end-to-end. La crittografia end-to-end mantiene privati i messaggi tra te e i tuoi interlocutori. Nemmeno servers, providers o relays possono leggerli. + %1$s ha inviato un messaggio da un altro dispositivo. Tocca per saperne di più. + La crittografia end-to-end non può più essere garantita, probabilmente perché %1$s ha reinstallato Delta Chat o inviato un messaggio da un altro dispositivo.\n\nPuoi incontrarlo di persona e scansionare nuovamente il suo Codice QR per ristabilire la crittografia end-to-end garantita. ⚠️ %1$s richiede la crittografia end-to-end che non è ancora configurata per questa chat. Tocca per saperne di più. Per stabilire la crittografia end-to-end, potresti incontrare i contatti di persona e scansionare il loro Codice QR per verificarli. @@ -1014,16 +1053,19 @@ %1$s ti ha invitato ad unirti a questo gruppo.\n\nIn attesa che il dispositivo di %2$s risponda… %1$s ha risposto, in attesa di essere aggiunto al gruppo… - Creazione della crittografia end-to-end garantita, per piacere attendere... + Impostazione della crittografia end-to-end, attendere... Non è ancora possibile stabilire la crittografia end-to-end garantita, ma potresti già inviare un messaggio. + Il contatto deve essere in linea per proseguire.\n\nQuesto processo continuerà automaticamente in sottofondo. %1$s verificato. - Impossibile stabilire una crittografia end-to-end garantita con %1$s. + + Impossibile stabilire una crittografia end-to-end con %1$s. Verificato da %1$s Verificato da me - + Presentato + Impostazioni modificate per %1$s Per garantire la crittografia end-to-end, puoi aggiungere a questo gruppo solo i contatti con un segno di spunta verde.\n\nPuoi incontrare i contatti di persona e scansionare il loro Codice QR per verificarli. Seleziona la chat a cui inviare il messaggio @@ -1052,8 +1094,8 @@ Continua Per scattare foto o registrare video, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Fotocamera\". - Per inviare messaggi audio, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Microfono\". - Per ricevere o inviare files, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Archiviazione\". + Per inviare messaggi audio, vai nelle impostazioni di sistema o dell\'app, seleziona \"Autorizzazioni\" o \"Privacy & Sicurezza\" e abilita \"Microfono\". + Per ricevere o inviare file, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Archiviazione\". Per allegare una posizione, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Posizione\". Per ricevere le notifiche, vai su \"Impostazioni di Sistema / App / Delta Chat\" e attiva \"Notifiche\". @@ -1067,7 +1109,7 @@ Capovolgi Ruota - + Messaggio cifrato @@ -1198,6 +1240,9 @@ Hai già autorizzato Delta Chat a ricevere messaggi in secondo piano.\n\nSe i messaggi non arrivano in secondo piano, per piacere controlla anche le impostazioni di sistema. + Novità?\n\n💯 La crittografia end-to-end è ora affidabile e definitiva. I lucchetti 🔒 sono spariti!\n\n✉️ Le email classiche senza crittografia end-to-end sono contrassegnate dal simbolo di una lettera\n\n😻 Nuova schermata del profilo migliorata per tutti i tuoi contatti\n\n🔲 Nuovo pulsante per l\'accesso rapido alle app utilizzate in una chat\n\n❤️ Dona per aiutarci a rimanere indipendenti e continuare a migliorare: %1$s + Novità?\n\n❤️‍🔥 Nuovo selettore di emoji con più emoji\n\n🎮 App in chat migliorate: ricevi notifiche e apri le app supportate nel contesto, es. apri una voce del calendario cliccando direttamente sul messaggio\n\n👍 Ricevi notifiche sulle reazioni ai tuoi messaggi...\n\n🛠️ CORREZIONI e ANCORA DI PIÙ su %1$s + ℹ️ Opzione \"Cambia Profilo\" spostata: Tocca l\'immagine del tuo profilo nell\'angolo superiore della schermata principale per aggiungere o cambiare profili 💡 diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 1352918e0..a100f532f 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -248,8 +248,6 @@ ビデオ通話に招待 ビデオ通話に招待されて、%1$sで参加 - - 本当に退室しますか %1$sにメッセージを転送しますか? %1$dチャットにメッセージを転送しますか? 添付ファイルをエクスポートしますか?添付ファイルをエクスポートすると、他のアプリからもアクセスできるようになります。\n\nよろしいですか? @@ -597,8 +595,9 @@ インターネットに接続されていないので、QRコードの設定ができません。 %1$sに新しいメールアドレスを作ってログしますか。 %1$sを確認しました。 + %1$sを確認できません。 - + 設定が%1$sに変わりました。 返信 @@ -617,7 +616,7 @@ 反転 回転 - + 暗号化されたメッセージ Delta Chatにようこそ diff --git a/src/main/res/values-km/strings.xml b/src/main/res/values-km/strings.xml deleted file mode 100644 index a013841ce..000000000 --- a/src/main/res/values-km/strings.xml +++ /dev/null @@ -1,805 +0,0 @@ - - - - Delta Chat - យល់ព្រម - ចោល - លុបការស្វែងរក - បាទ/ចាស - ទេ - សំរាំង - បើក - បិទ - លំនាំដើម - លំនាំដើម (%1$s) - លំនាំដើម (ដូចខាងលើ) - តាមទម្លាប់ - គ្មាន - ដោយស្វ័យប្រវត្ដិ - យ៉ាង ដិតដល - បើក - ទាញយក - កំពុងទាញយក… - បើកឯកសារភ្ជាប់ - ចូលរួម - ចូលរួមម្តងទៀត - លុបចោល - ការពន្យល់ - ធ្វើឱ្យទាន់សម័យ - សញ្ញាអារម្មណ៍ - ឯកសារ​ភ្ជាប់ - ត្រឡប់មកវិញ - បិទ - ទៅមុខ - - ទុកក្នុងប័ណ្ណសារ - - ផ្តល់ឱ្យចេញពីប័ណ្ណសារ - ធ្វើឲ្យមិនឃើញមិនលឺ - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈ - ការកំណត់ទាំងនេះអនុវត្តចំពោះសមាជិកទាំងអស់ដែលកំពុងប្រើ សា Delta Chat ។ ទោះយ៉ាងណា គេអាចថតចម្លង រក្សាទុក និង បញ្ជូនសារបន្ត រឺ ប្រើប្រាស់បណ្តាអុីម៉េលផ្សេងៗបាន។ - រក្សាទុក - សន្ទនា - ផ្សព្វផ្សាយ - ពត៌មានផ្ទាល់ខ្លួន - បញ្ជីដើម - ចាប់ផ្តើមសន្ទនា - បង្ហាញសារទាំងស្រុង… - - កំពុងផ្ទុក… - លាក់ - ធ្វើឲ្យសកម្ម - ផ្ទុករូបភាពពីខាងក្រៅ - - រូបភាពពីខាងក្រៅអាចប្រើបានប្រើដើម្បីតាមដានអ្នក។\n\nការកំណត់នេះក៏អនុញ្ញាតឱ្យផ្ទុកពុម្ពអក្សរនិងមាតិកាផ្សេងទៀត។ ទោះបីជាវាត្រូវបានបិទក៏ដោយអ្នកនៅតែអាចមើលឃើញរូបភាពដែលបានបង្កប់ឬលាក់ទុក។\n\nផ្ទុករូបភាពពីខាងក្រៅ? - ជារហូត - ម្តង - បង្ហាញពាក្យសម្ងាត់ - លាក់ពាក្យសម្ងាត់ - មិនឥឡូវនេះទេ - មិនដែលទេ - សូមមួយភ្លែត... - រួចរាល់ - ធ្វើឡើងវិញ - ក្រៅបណ្តាញ - - បន្ទាប់ - កំហុស - កំហុស: %1$s - មិនអាចរកឃើញកម្មវិធីសម្រាប់ដំណើរការលើទិន្ន័យប្រភេទនេះទេ - គ្មានកម្មវិធីរុករកត្រូវបានដំឡើងទេ - រកមិនឃើញឯកសា %1$s។ - បានចម្លងទុកទៅក្តារបណ្តោះអាសន្ន - ឈ្មោះទំនាក់ទំនង - អាសយដ្ឋានអុីមែល - អាសយដ្ឋានអុីមែលមិនល្អ - ពាក្យសម្ងាត់ - ពាក្យសម្ងាត់ដែលមានស្រាប់ - ឥឡូវនេះ - - ភយន្តរាយ - ថ្ងៃនេះ - ម្សិលមិញ - ស​ប្តា​ហ៍​នេះ - ខែ​នេះ - ស​ប្តា​ហ៍​មុន - ខែមុន - - - %d នាទី - - - - %d ម៉ោង - - - សន្ទនា %d - - - ទំនាក់ទំនង %d - - - សារ %d - - - សមាជិក %d - - - %d អ្នកទទួល - - ខ្ញុំ - ពង្រាង - រូបភាព - - ចម្លើយតប - រូបភាពចលនា - - ស្លាក - រូបភាព - សម្លេង - សារជាសម្លេង - បានបញ្ជូនបន្ត - សារដែលបានបញ្ជូនបន្ត - - បញ្ជូនបន្តពី %1$s - វីដេអូ - ឯកសារ - ទំនាក់ទំនង - កាមេរ៉ា - - ចាប់យក - ប្តូរកាមេរ៉ា - បិទបើករបៀបពេញអេក្រង់ - ទីតាំង - វិចិត្រសាល - រូបភាព និងវីដេអូ - ឯកសារ - ឯកសារ - មិនស្គាល់ - - ពណ៌បៃតង - ក្រហម - ពណ៌ខៀវ - ពណ៌ក្រូច - ពណ៌ខៀវខ្ចី - ពណ៌ស្វាយ - ពណ៌ស្វាយខ្ចី - ពណ៌ស - - ពង្រីក - តូចបំផុត - តូច - ធម្មតា - ធំ - ធំបំផុត - - រហ័ស - យឺត - - - ទំនាក់ទំនងថ្មី - សន្ទនាថ្មី - ក្រុមថ្មី - - បញ្ជីចាក់ផ្សាយ - បញ្ជីចាក់ផ្សាយ - បញ្ជីចាក់ផ្សាយថ្មី - បន្ថែមអ្នកទទួល - ផ្ញើ - ក្តារចុចបើក/បិទរូបសញ្ញាអារម្មណ៍ - កែក្រុម - ក្រុមឈ្មោះ និងរូបភាព - បង្ហាញទីតាំងទាំងអស់ - លាក់សារសន្ទនា - បង្ហាញសារសន្ទនា - បន្ថែមឯកសារភ្ជាប់ - ចាកចេញពីក្រុម - លុបសារសន្ទនា - លុបទំនាក់ទំនង - លុបទីតាំងនេះ? - លំអិតសារ - ចម្លងទៅក្តារខ្ទាស់ឯកសារ - ចម្លងផ្នែកខ្លះ - ចម្លងតំណភ្ជាប់ - ចម្លងអក្សរ - ចម្លងរូបភាព - បិទភ្ជាប់ ពីក្តារខ្ទាស់ - បញ្ជូនបន្តសារ - ឆ្លើយតបសារ - ធ្វើឲ្យមិនឃើញមិនលឺការជូនដំណឹង - ចេញពីមិនឃើញមិនលឺ - នាំចេញឯកសារភ្ជាប់ - នាំចេញ ឯកសារភ្ជាប់ - ប្រព័ន្ធផ្សព្វផ្សាយទាំងអស់ - - បង្ហាញនៅក្នុងសន្ទនា - ចែករំលែក - - រារាំង - រារាំងទំនាក់ទំនង - មិនរារាំងទំនាក់ទំនង - ទទួលយក - ចាក់ - ផ្អាក - រំកិលចុះទៅក្រោម - រំកិលឡើងទៅលើ - ជំនួយ - គោលការណ៍ភាពឯកជន - ជ្រើសរើសទាំងអស់ - ជ្រើសរើសថែមទៀត - កែឈ្មោះ - ការកំណត់ - ដែលបន្ថែមទៅទៀត - មើលពត៌មានផ្ទាល់ខ្លួន - បង្រួមទំហំ - ពង្រីកទំហំ - រក្សាទុកកំណត់ហេតុ - ជម្រើសជាច្រើនទៀត - រៀនប្រកបអក្សរ - កំណត់ហេតុសវនកម្មជជែកកំសាន្ត - លោតទៅកាន់សារ - ចម្លង JSON - បន្លាស់សេចក្តីព្រាង - ចែករំលែក ទីតាំងជាមួយសមាជិកក្រុមទាំងអស់ - សារពីឧបករណ៍ - សារដែលបានបង្កើតពីសា Delta Chat - សារក្នុងការសន្ទនានេះ បានបង្កើតទិនេះដោយ សា Delta Chat ។ អ្នកបង្កើតវា ប្រើវាដើម្បីជូនដំណឹងពីការធ្វើបច្ចុប្បន្នភាពកម្មវិធី និងបញ្ហាកំឡុងពេលប្រើ។ - កែសម្រួល ទំនាក់ទំនង - - ខ្ទាស់សន្ទនា - - ដកខ្ទាស់សន្ទនា - - ខ្ទាស់ - - ដកខ្ទាស់ - រកមិនឃើញសារដើម - ឆ្លើយតបដោយឯកជន - ធ្វើឲ្យមិនឃើញមិនលឺរយៈពេល១ម៉ោង - ធ្វើឲ្យមិនឃើញមិនលឺរយៈពេល១ថ្ងៃ - ធ្វើឲ្យមិនឃើញមិនលឺរយៈពេល៧ថ្ងៃ - ធ្វើឲ្យមិនឃើញមិនលឺរយៈរហូត - - រយៈពេល៥នាទី - រយៈពេល៣០នាទី - រយៈពេល១ម៉ោង - រយៈពេល២ម៉ោង - រយៈពេល៦ម៉ោង - - - ផ្ញើឯកសារ %d ខាងក្រោមទៅ %s? - - ឯកសារបានរក្សាទុកនៅ \"%1$s\"។ - - សន្ទនាវីដេអូ - អញ្ជើញ %1$s ទៅកាន់សន្ទនាវីដេអូ? - តម្រូវឲ្យមានកម្មវិធីដែលមានសមត្ថភាព រឺកម្មវិធីរុករកដែលស្របគ្នាដល់ទីបញ្ចប់ - %1$s បានអញ្ជើញចូលរួមសន្ទនាជាវីដេអូ - អ្នកបានអញ្ជើញចូលរួមសន្ទនាជាវីដេអូ - ប៉ៈដើម្បីចូលរូម - ប៉ៈដើម្បីបើក - សន្ទនាវីដេអូផុសឡើង - សន្ទនាវីដេអូរបស់អ្នកផុសឡើង - ប្រើ \"%1$s\" ដើម្បីអញ្ជើញអ្នកផ្សេងទៀតទៅកាន់សន្ទនាវីដេអូ?\n\nកំណត់ម្តង អ្នកអាចចាប់ផ្តើមសន្ទនាវីដេអូ ពីការសន្ទនាមួយទៅមួយទៀត។ បើធ្វើសន្ទនាវីដេអូនេះនឹងជំនួសការកំណត់មុនៗ។ - ការអញ្ជើញសន្ទនាវីដេអូ - អ្នកត្រូវបានអញ្ជើញដើម្បីសន្ទនាជាវីដេអូ។ ចុច %1$s ដើម្បីចូលរួម។ - - - តើអ្នកប្រាកដហើយថាចង់ចាកចេញពីក្រុមនេះ? - - - លុបសារ %d - - បញ្ជូនសារទៅកាន់ %1$s? - បញ្ជូនសារទាំងនេះទៅកាន់សន្ទនា %1$d? - នាំចេញឯកសារភ្ជាប់? ការនាំចេញឯកសារភ្ជាប់ នឹងអនុញ្ញាតឲ្យកម្មវិធីផ្សេងទៀត ដំណើរការនៅលើឧបករណ៍របស់អ្នក។\n\nបន្ត? - បង្ខាំងទំនាក់ទំនងនេះ? អ្នកនឹងមិនបានសារពីទំនាក់ទំនងនេះទៀត - ដកបង្ខាំងទំនាក់ទំនងនេះ? អ្នកនឹងអាចទទួលសារពីទំនាក់ទំនងនេះម្តងទៀត។ - លុបការទំនាក់ទំនង?\n\nទំនាក់ទំនងដែលកំពុងបន្ត និងទំនាក់ទំនង ពីសៀវភៅអសយដ្ឋានពីម៉ាសុីន មិនអាចលុបចេញបានដាច់ខាត។ - លុបទំនាក់ទំនង %1$s?\n\nទំនាក់ទំនងដែលកំពុងបន្ត និងទំនាក់ទំនង ពីសៀវភៅអសយដ្ឋានពីម៉ាសុីន មិនអាចលុបចេញបានដាច់ខាត។ - សន្ទនាជាមួយ %1$s? - - លុប %1$s ពីក្រុមសន្ទនានេះ? - - លុប %1$s ពីបញ្ជីចាក់ផ្សាយ? - តើអ្នកចង់បើកតំណនេះ? - - - - បញ្ជីទំនាក់ទំនង - សរសេរឈ្មោះឬអាសយដ្ឋានអ៊ីមែលនៅទីនេះ - វាយបញ្ចូលអាសយដ្ឋានអ៊ីមែលខាងលើ - មិនមានទំនាក់ទំនងទេ។ - - - - - បានទុកសារសន្ទនា %d ក្នុងប័ណ្ណ - - - បានយកចេញសារសន្ទនា %d ពីប័ណ្ណ - - ការសន្ទនាដែលបានទុកក្នុងប័ណ្ណសារ - សូមសរសេរសារមួយ។ - កាមេរ៉ាមិនអាចរកឃើញទេ។ - មិនអាចថតសំលេងបានទេ។ - - មានសារថ្មី %d - - បង្កើតសារដំបូងនឹងអនុញ្ញាតិឲ្យអ្នកផ្សេងទៀតឆ្លើយតបនៅក្នុងក្រុមនេះ។\n\n• មិនអីទេ ប្រសិនបើមិនមែនសមាជិកទាំងអស់ប្រើប្រាស់សា Delta Chat ។\n\n• ការទទួលបានសារដំបូងអាចចំណាយពេលមួយស្របក់។ - អូសដើម្បីផ្អាកសិន - ប៉ៈ និងសង្កត់ដើម្បីថតសារសម្លេង លែងដើម្បីផ្ញើ។ - ប្រអប់ទទួលគឺទទេ។\nចុច \"+\" ដើម្បីចាប់ផ្តើមការការសន្ទនាថ្មី។ - សន្ទនាទាំងអស់បានកំណត់ទុក។\nចុច \"+\" ដើម្បីចាប់ផ្តើមការសន្ទនាថ្មី។ - ចែករំលែកជាមួយ - សារ - បានរក្សាទុកជាឯកសារ - សំណើ - គ្មានសារ - សារខ្ញុំបានផ្ញើទៅខ្លួនឯង - ប្រសិនបើអ្នករក្សាទុកប័ណ្ណសារសន្ទនា សារនឹងបង្ហាញនៅទីនេះ។ - សារដែលបានរក្សាទុករួចហើយ - • បញ្ជូនសារនៅទីនេះដើម្បីងាយស្រួលចូល\n\n• កត់សម្គាល់ រឺកំណត់ត្រាសម្លេង\n\n• ភ្ជាប់ឯកសារដើម្បីរក្សាទុក។ - - រក្សាទុកហើយ - ព្យាយាមម្តងទៀតដើម្បីផ្ញើសារ - - អ្នកមិនអាចសរសេរ ពីព្រោះអ្នកមិននៅក្នុងក្រុមនេះ។ ដើម្បីចូលរួម សុំសមាជិកផ្សេងទៀត។ - ការផ្ញើសារ នៅក្នុងបញ្ជីប៉ុស្តិ៍សំបុត្រ មិនទាន់ត្រូវបានគាំទ្រនៅឡើយ។ - មិនអាចបង្ហាញប្រភេទឯកសារនេះ៖ %s - បានបរាជ័យ ក្នុងការផ្ទុកឯកសារភ្ជាប់។ - - ចាក់សោរ ការថត - - - អ៊ីម៉ែលការផ្សាយ - ការផ្លាស់ប្តូរឈ្មោះឬរូបភាពនៅលើ បញ្ជីប៉ុស្តិ៍សំបុត្រ អនុវត្តចំពោះឧបករណ៍នេះប៉ុណ្ណោះ។ - - - បង្ហាញទីតាំងនៅក្នុងស៊ុមពេលវេលា - បង្ហាញដាន - ផ្ញើចំណុចចំណាប់អារម្មណ៍ - - - សារប្រព័ន្ធ នៃសន្ទនានេះ នឹងបង្ហាញនៅទីនេះ។ - កំណត់ហេតុសវនកម្មជជែកកំសាន្តសម្រាប់ %1$s - ទិដ្ឋភាពនេះ បង្ហាញតែប្រព័ន្ធ និងពត៌មានសារ។ ប្រយោជន៍សម្រាប់ការស្វែងរកសកម្មភាពសារចុងក្រោយ ដោយគ្មានរមូរតាមសារធម្មតា។ - - - - កុំសួរម្តងទៀតសម្រាប់ %1$s - បានរកឃើញតំណគួរឱ្យសង្ស័យ - - តើអ្នកប្រាកដថា អ្នកចង់ទៅលេង %1$s? - - អ្នកបានធ្វើតាមតំណ ដែលអាចបង្ហាញពីតួអក្សរខុស ដោយប្រើរូបស្រដៀងគ្នាពីអក្ខរក្រមផ្សេងៗ។ ការធ្វើតាមតំណភ្ជាប់ដែលមានស្លាក %1$s នឹងនាំទៅដល់ %2$s ដែលមិនមែនជាតួអក្សរឡាតាំងធម្មតា។ ប្រសិនបើអ្នកមិនបាន រំពឹងគិតថាមានតួអក្សរបែបនេះ តំណនេះអាចបង្កគ្រោះថ្នាក់។ - - - - ស្វែងរក - ស្វែងរកការសន្ទនា ទំនាក់ទំនង និងសារ។ - រកមិនឃើញលទ្ធផលសម្រាប់ \"%s\" - - ឈ្មោះរបស់ក្រុម - រូបភាពរបស់ក្រុម - លុបរូបភាពរបស់ក្រុម - ផ្លាស់ប្តូររូបភាពរបស់ក្រុម - បង្កើតក្រុម - សូមបញ្ចូលឈ្មោះសម្រាប់ក្រុមនេះ - បន្ថែមសមាជិក - អ្នកត្រូវតែជាសមាជិកម្នាក់របស់ក្រុមដើម្បីអនុវត្តសកម្មភាពនេះ។ - ការអ៊ិនគ្រីប - សន្ទនាដែលបានចែករំលែក - ទំនាក់ទំនង - ក្រុម - វិចិត្រសាលរូបភាពនិងវីដេអូ - វិចិត្រសាលឯកសារ - វិចិត្រសាលតំណខ្ពស់ - វិចិត្រសាលផែនទី - រូបភាព និងវីដេអូដែលបានចែករំលែកនៅក្នុងការសន្ទនានេះ បង្ហាញនៅទីនេះ។ - ឯកសារ និងសំលេងដែលបានចែករំលែកនៅក្នុងការសន្ទនានេះ បង្ហាញនៅទីនេះ។ - ការមើលប្រព័ន្ធផ្សព្វផ្សាយជាមុន - ផ្ញើ​សារ - - - សារចូល - - សារចេញ - - ទំហំផ្ទុកនៅលើ %1$s - ការតភ្ជាប់និងសេវាកម្ម - - មិនបានតភ្ជាប់ - - កំពុងស្វែងរកការតភ្ជាប់… - - កំពុងធ្វើបច្ចុប្បន្នភាព… - - បានតភ្ជាប់ - កំពុងបញ្ជូន… - បានផ្ញើសារចុងក្រោយដោយជោគជ័យ។ - មិនត្រូវបានគាំទ្រ ដោយកម្មវិធីផ្តល់សេវារបស់អ្នកទេ។ - - សារ - - បានប្រើ %1$s នៃ %2$s - - - កត់ចូល - កត់ចូលទៅម៉ាសុីនមេរបស់អ្នក - កត់ចូលជាមួយគណនីយដែលមានស្រាប់ - សម្រាប់លក្ខខណ្ឌអុីម៉េលដែលស្គាល់ស្រាប់ នឹងត្រួវបានដំឡើងដោយស្វ័យប្រវត្តិខ្លួនឯង។ ពេលខ្លះ IMAP ត្រូវការបើកដំណើរការនៅក្នុងការកំណត់គេហទំព័រ។ ពិគ្រោះជាមួយអ្នកផ្តល់អុីម៉េលរបស់អ្មក ឬ មិត្តរបស់អ្នកសម្រាប់ជួយ។ - គ្មានម៉ាសុីនមេពី សាហារីសង្ឃទេ ទិន្ន័យរបស់អ្នកស្ថិតនៅលើឧបករណ៍របស់អ្នក។ - ប្រអប់ទទួលសារ - កត់ឈ្មោះចូលរបស IMAP - ម៉ាសុីនមេរបស IMAP - ច្រក របស IMAP - សន្តិសុខ របស IMAP - ប្រអប់ចេញ - កត់ឈ្មោះចូលរបស SMTP - ពាក្យសម្ងាត់ SMTP - ម៉ាសុីនមេរបស SMTP - ច្រករបស SMTP - សន្តិសុខ SMTP - ការចុះបញ្ជី - បន្តជាមួយការដំឡើងសាមញ្ញ? - អស័យដ្ឋានអុីម៉េលដែលបានបញ្ចូល គាំទ្រការដំឡើងសាមញ្ញ (OAuth 2.0)\n\nនៅជំហានបន្ទាប់ សូមអនុញ្ញាតឲ្យសាហារីសង្ឃ ដើរតួជាការសន្ទនារបស់អ្នកនៅលើកម្មវិធីអុីម៉េល។\n\nមិនមាន ម៉ាសុីនមេ សាហារីសង្ឃទេ។ ទិន្ន័យរបស់អ្នកស្ថិតនៅលើឧបករណ៍របស់អ្នក។ - ការត្រួតពិនិត្យលិខិតបញ្ជាក់ - សូមបញ្ចូលអាស័យដ្ឋាន់អ៊ីមែលត្រឹមត្រូវ - សូមបញ្ចូលម៉ាសុីន ឬ IP អស័យដ្ឋាន ដែលសុពលភាព - សូមបញ្ចូលច្រកដែលសុពលភាព (1-65535) - សូមបញ្ចូលអ៊ីម៉េលអាស័យដ្ឋាននិងពាក្យសម្ងាត់ដែលសុពលភាព។ - នាំចូលពត៌មានចម្លងទុក - រកឃើញពត៌មានចម្លងទុកនៅ \"%1s\".\n\nតើអ្នកចង់នាំចូល និងប្រើប្រាស់ទិន្នន័យទាំងអស់ និងការកំណត់ពីវា? - រក​មិន​ឃើញពត៌មានចម្លងទុកទេ\n\nចម្លង ពត៌មានចម្លងទុកទៅ \"%1$s\" និងសាកល្បងម្តងទៀត\n\nចុច \"ចាប់ផ្តើមផ្ញើសារ\" ដើម្បីបន្តជាមួយដំណើរការរៀបចំធម្មតា។ - - មិនអាចកត់ចូលជា \"%1$s\" ។ សូមផ្ទៀតផ្ទាត់មើលអស័យដ្ឋានអុីម៉េល និងពាក្យសម្ងាត់ឲ្យបានត្រឹមត្រូវ។ - - ទទួលយកលិខិតបញ្ជាក់មិនត្រឹមត្រូវ - ប្តូរឆ្លាស់គណនី - បន្ថែមគណនី - លុបគណនី - តើអ្នកប្រាកដហើយថាចង់លុបទិន្នន័យគណនីរបស់អ្នក? - ទិន្នន័យគណនីទាំងអស់របស់ \"%s\" នៅលើឧបករណ៍នេះនឹងបានលុប រួមបញ្ចូលទាំងការរៀបចំ ទៅបញ្ចប់ការអុិនគ្រឹបឧបករណ៍ដល់ឧបករណ៍ ទំនាក់ទំនង សន្ទនា សារ និងសម្លេង។ សកម្មភាពនេះមិនអាចធ្វើឡើងវិញបានទេ។ - គណនីដែលមិនបានកំណត់រចនាសម្ព័ន្ - បើកគណនី ដើម្បីកំណត់រចនាសម្ព័ន្ធវា។ - ព្យាយាមភ្ជាប់ឥលូវនេះ - ធ្វើសមកាលកម្មទាំងអស់ - - ការកំណត់រចនាសម្ព័ន្ឌ បរាជ័យ។ កំហុស៖ %1$s - - - - បញ្ជូនទៅ… - ផ្ញើឯកសារ %1$d ទៅ សន្ទនា %2$d? - ផ្ញើអត្ថបទនេះទៅសន្ទនា %1$d?\n\n\"%2$s\" - ការខកខានចែករំលែក ដល់ពេលកំណត់បាត់បង់សិទ្ធ។ - - - - ដោយប្រើតាមទម្លាប់: %s - ដោយប្រើលំនាំដើម - ពត៌មានទិន្នន័យផ្ទាល់ខ្លួនរបស់អ្នក - រូបភាពទិន្ន័យផ្ទាល់ខ្លួន - ទំនាក់ទំនងដែលបានរារាំង - ប្រសិនបើអ្នករារាំងទំនាក់ទំ នងពួកទំនាក់ទំនងនេះនឹងត្រូវបានដាកបង្ហាញនៅទីនេះ។ - ពាក្យសម្ងាត់ និងគណនី - រូបភាពទិន្ន័យផ្ទាល់ខ្លួនរបស់អ្នក និងឈ្មោះនឹងត្រូវបានបង្ហាញនៅក្បែរសាររបស់អ្នក នៅពេល ទនំាក់ទំនងជាមួយអ្នកប្រើប្រាស់ផ្សេងទៀត។ ដំណឹងដែលបានផ្ញើរួចមិនអាចលុបចោល ឬដកចេញបានទេ។ - ឈ្មោះរបស់អ្នក - - ហត្ថលេខាជាអក្សរ - គ្រាប់​ចុច​ បញ្ចូលធ្វើឱ្យផ្ញើសារ - ចុច គ្រាប់​ចុច​ បញ្ចូល (Enter key) នឹងផ្ញើអត្ថបទសារ។ - គុណភាពប្រពន្ធ័សម្លេងផ្សាយចេញ - មានតុល្យភាព - គុណភាពកាន់តែអាក្រក់ ទំហំតូច - ញ័រ - សុវត្ថិភាពអេក្រង់ - - ស្នើសុំរារាំងរូបថតអេក្រង់ នៅក្នុងបញ្ជីបច្ចុប្បន្ន និងខាងក្នុងកម្មវិធី។ - ដើម្បីកំណត់សុវត្ថិភាពអេក្រង់ សូមចាប់ផ្តើមកម្មវិធីឡើងវិញ។ - ការជូនដំណឹង - បង្ហាញ - អាទិភាព - បើកប្រពន្ធ័ការជូនដំណឹងសម្រាប់សារថ្មី - បង្ហាញមាតិកាសារក្នុងការជូនដំណឹង - បង្ហាញអ្នកផ្ញើ និងពាក្យដំបូងនៃសារក្នុងការជូនដំណឹង - ពណ៌ LED - សម្លេង - ស្ងាត់សម្លេង - ភាពឯកជន - សន្ទនា និងប្រពន្ធ័សម្លេង - លំនាំដើមប្រព័ន្ធ - - ពន្លឺ - ងងឹត - រូបរាង - ស្បែក - ភាសា - ក្តារចុចអនាមិក - - ស្នើសុំក្តារចុចដើម្បីបិទការរៀនផ្ទាល់ខ្លួនបាន - អានវិក័យបត្រ - ប្រសិនបើអានវិក័យបត្តិ ត្រូវបានបិទ អ្នកមិនអាចឃើញ អានវិក័យវត្រពីអ្នកផ្សេងទៀតទេ។ - កាន់កាប់គ្រាប់​ចុច - ប្រើប្រាស់រូបសញ្ញាអារម្មណ៍របសប្រពន្ធ័ - បិទការប្រើប្រាស់រូបសញ្ញាអារម្មណ៍ ពិសា Delta Chat - សន្ទនា - សម្លេងនៅក្នុងសន្ទនា - មើលកំណត់ហេតុ - បានរក្សាទុក កំណត់ហេតុទៅថតឯកសារ \"ទាញយក\" - បានបរាជ័យក្នុងការរក្សាទុកកំណត់ហេតុ - កំណត់ហេតុ - ផ្សេងទៀត - បម្រុងទុក - បម្រុងទុកការសន្ទនាទៅឧបករណ៍ខាងក្រៅ - ការបម្រុងទុកជួយអ្នករៀបចំការដំឡើងថ្មីលើឧបករណ៍នេះ ឬលើឧបករណ៍ផ្សេងទៀត។\n\nការបម្រុងទុក នឹងផ្ទុកសារទាំងអស់ ទំនាក់ទំនង និងសន្ទនា និងការរៀបចំអ៊ិនគ្រីបស្វ័យប្រវត្តិឧបករណ៍ដល់ឧបករណ៍របសអ្នក។ ថែរក្សាឯកសារបម្រុងទុក ក្នុងទីតាំងសុវត្ថិភាព ឬលុបវាឆាប់ៗតាមដែលអាចធ្វើទៅបាន។ - ចាប់ផ្តើមការបម្រុងទុក - បានសរសេរការបម្រុងទុកដោយជោគជ័យទៅ \"%1$s\" - គ្រប់គ្រងកូនសោរ - នាំចេញកូនសោរសម្ងាត់ - នាំចេញកូនសោរសម្ងាត់ទៅ \"%1s\"? - នាំចូលកូនសោរសម្ងាត់ - នាំចូលកូនសោរសម្ងាត់ពី \"%1$s\"?\n\n• កូនសោរសម្ងាត់ដែលមានស្រាប់នឹងមិនបានលុបទេ\n\n•កូនសោរដែលនាំចូលចុងក្រោយនឹងបានប្រើប្រាស់ដូចជា លំនាំថ្មីលើកលែងតែវាមានពាក្យ \"legacy\" ក្នុងឈ្មោះឯកសាររបស់វា។ - បានសរសេរកូនសោរសម្ងាត់ ដោយជោគជ័យទៅ \"%1$s\" - បាននាំចូលកូនសោរសម្ងាត់ពី \"%1$s\" - - ផ្ទៃខាងក្រោយ - ប្រើប្រាស់រូបភាពលំនាំដើម - ជ្រើសរើសពីវិចិត្រសាល - ការប្រគល់ឯកសារ IMAP - ប្រសិនបើអ្នកបិទជម្រើសនេះ ត្រូវប្រាកដថា ម៉ាសុីនបម្រើរបស់អ្នក និងសេវាបម្រើផ្សេងទៀតរបស់អ្នក បានដំឡើងតាម\n\nបើមិនដូច្នោះទេ អ្វីៗនឹងមិនដំណើរការទាល់តែសោះ។ - មើលថតប្រអប់បានផ្ញើ - ផ្ញើចម្លងទៅខ្លួនឯង - ផ្លាស់ទីដោយស្វ័យប្រវត្តិទៅ ប្រអប់សា Delta Chat - ការនិយាយសន្ទនា បានផ្លាស់ទីដើម្បីជៀសវាងការប៉ៈពាល់ប្រអប់ទទួល។ - បង្ហាញអុីម៉េលដែលធម្មតា - ទេ។ សន្ទនាតែម្តង។ - សម្រាប់ទំនាក់ទំនងដែលបានទទួលយក - ទាំងអស់ - ពិសោធន៍លក្ខណៈពិសេស - ការផ្សាយផ្ទាល់តទីតាំងតាមម្រូវការ - ផ្ទៃខាងក្រោយលំនាំដើម - ពណ៌លំនាំដើម - រួបភាពផ្ទាល់ខ្លួន - ពណ៌ផ្ទាល់ខ្លួន - ការនាំចេញបានបញ្ឈប់ - ទាញយកសារដោយស្វ័យប្រវត្តិ - - រហូតដល់ %1$s - រហូតដល់ %1$s រូបភាពគុណភាពអាក្រក់បំផុត - រហូតដល់ %1$s រូបភាពដែលមានគុណភាពមានតុល្យភាពបំផុត - - សារ %1$s - - ទាញយកអតិបរមា អាចប្រើបានរហូតដល់ %1$s - ជ្រើសរើសរូបភាពទិន្ន័យផ្ទាល់ខ្លួន - ជ្រើសរើសរូបភាពទិន្នន័យផ្ទាល់ខ្លួនថ្មី - លុបរូបភាពទិន្នន័យផ្ទាល់ខ្លួន - បង្ហាញរូបតំណាងថាស - កែសម្រួល ទិន្នន័យផ្ទាល់ខ្លួន - - លទ្ធផលស្វែងរក - រកមិនឃើញរូបសញ្ញាអារម្មណ៍ - ទើបបានប្រើថ្មីៗ - មនុស្សនិងរាងកាយ - សត្វនិងធម្មជាតិ - អាហារនិងភេសជ្ជៈ - សកម្មភាព - ការធ្វើដំណើរនិងទីកន្លែង - វត្ថុ - និមិត្តសញ្ញា - ទង់ជាតិ - - - លុបសារចាស់ - លុបសារពីឧបករណ៍ - លុបសារពីម៉ាសុីនមេ - - តើអ្នកចង់លុបសារ %1$d ឥលូវ និងសារដែលបានទទួលថ្មីៗ នៅពេលពេល \"%2$s\" ខាងមុខ?\n\n• នេះធ្វើឱ្យរួមបញ្ចូលទាំងប្រពន្ធ័ផ្សព្វផ្សាយទាំងអស់\n\nសារនឹងត្រូវបានលុប បើទោះបីជាពួកគេបានឃើញ ឬមិនបានឃើញក៏ដោយ\n\n• \"សារដែលបានរក្សាទុក\" និងបានរំលងពីការរុករកក្នុងតំបន់។ - - តើអ្នកចង់លុបសារ %1$d ឥឡូវនេះ និងសារដែលបានប្រមូលថ្មីៗទាំងអស់ នៅពេល \"%2$s\" ទៅមុខ?\n\n⚠️ រួមទាំងអុីម៉រល ប្រពន្ធ័ផ្សព្វផ្សាយ និង \"សារដែលបានរក្សាទុក\" នៅថតម៉ាសុីនមេទាំងអស់\n\n⚠️ កុំប្រើមុខងារនេះ ប្រសិនបើអ្នកចង់រក្សាទុកទិន្ន័យនៅលើម៉ាសុីនមេ\n\n⚠️ កុំប្រើមុខងារនេះ ប្រសិនបើអ្នកកំពុងប្រើសេវាអុីម៉េលផ្សេងពី សា Delta Chat ។ - - នេះរួមបញ្ចូលទាំងអុីម៉ែល ប្រពន្ធ័ផ្សព្វផ្សាយ និង \"សារដែលបានរក្សាទុក\" ក្នុងថតទាំងអស់របស់ម៉ាសុីនមេ។ កុំប្រើមុខងារនេះ ប្រសិនបើអ្នកចង់រក្សាទិន្ន័យនៅលើម៉ាសុីនមេ ឬប្រសិនបើអ្នកកំពុងប្រើសេវាកម្មអុីម៉េលផ្សេងពី សា Delta Chat ។ - ខ្ញុំយល់។ លុបសារទាំងអស់នេះ - - នៅពេលតែមួយ - បន្ទាប់ពី ៣០វិនាទី - បន្ទាប់ពី ១នាទី - ក្រោយរយៈពេល៥នាទី - ក្រោយរយៈពេល៣០នាទី - បន្ទាប់ពី ១ម៉ោង - បន្ទាប់ពី ១ថ្ងៃ - បន្ទាប់ពី ១អាទិត្យ - ក្រោយរយៈពេល៣០៥សប្តាហ៍ - បន្ទាប់ពី ១ឆ្នាំ - - - ផ្ញើសារអ៊ិនគ្រីបស្វ័យប្រវត្តិសម្រាប់ការរៀបចំ - សារអ៊ិនគ្រីបស្វ័យប្រវត្តិសម្រាប់ការរៀបចំចែកចាយចាត់របសឧបករណ៍ដល់ឧបករណ៍ជាមួយកម្មវិធីដែលមានអ៊ិនគ្រីបស្វ័យប្រវត្តិផ្សេងទៀត។\n\n ការចាត់នឹងបានអ៊ិនគ្រីប (ការធ្វើឲ្យការផ្ញើសារជាសារដាយសញ្ញាសម្ងាត់) នៅទីនេះ នឹងត្រូវតែបានវាយបញ្ចូលនៅលើឧបករណ៍ផ្សេង។ - ផ្ញើសារអ៊ិនគ្រីបស្វ័យប្រវត្តិសម្រាប់ការរៀបចំ - ការរៀបចំរបស់អ្នកត្រូវបានផ្ញើទៅខ្លួនឯងហើយ។ ប្តូរឆ្លាស់ឧបករណ៍ផ្សេង និងបើកសារការរៀបចំ។ អ្នកនឹងទទួលសំណួរពីកូដរៀបចំ។ បញ្ចូលលេខដូចខាងក្រោម: - ចូលចិត្តការអ៊ិនគ្រីបច្រើនជាង - - មិនស្គាល់អ្នកផ្ញើការសន្ទនានេះ។ មើល \'ពត៌មាន\' សម្រាប់ពត៌មានលំអិត - សារពី %1$s - បានបរាបានក្នុងការផ្ញើសារទៅ %1$s - - ឈ្មោះក្រុមត្រូវបានប្តូរពី \"%1$s\" ទៅកាន់ \"%2$s\" ដោយខ្ញុំ - - ឈ្មោះក្រុមត្រូវបានប្តូរពី \"%1$s\" ទៅកាន់ \"%2$s\" ដោយ %3$s - រូបភាពក្រុមត្រូវបានប្តូរ ដោយខ្ញុំ - - រូបភាពក្រុមត្រូវបានប្តូរ ដោយ %1$s - - សមាជិក %1$s ត្រូវបានបន្ថែម ដោយខ្ញុំ - - សមាជិក %1$s ត្រូវបានបន្ថែម ដោយ %2$s - - សមាជិក %1$s ត្រូវបានយកចេញ ដោយខ្ញុំ - - សមាជិក %1$s ត្រូវបានយកចេញ ដោយ %2$s - រូបភាពក្រុមត្រូវបានលុប ដោយខ្ញុំ - - រូបភាពក្រុមត្រូវបានលុប ដោយ %1$s - បានបិទបាត់កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈ ដោយខ្ញុំ - - បានបិទបាត់កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈ ដោយ %1$s - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s វិនាទី។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s វិនាទី។ ដោយ %2$s - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១នាទី។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១នាទី។ ដោយ %1$s - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១ម៉ោង។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១ម៉ោង។ ដោយ %1$s - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១ថ្ងៃ។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១ថ្ងៃ។ ដោយ %1$s - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១សប្តាហ៍។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ ១សប្តាហ៍។ ដោយ %1$s - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s នាទី។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s នាទី។ ដោយ %2$s - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s ម៉ោង។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s ម៉ោង។ ដោយ %2$s - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s ថ្ងៃ។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s ថ្ងៃ។ ដោយ %2$s - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s ថ្ងៃ។ ដោយខ្ញុំ - - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈបាន កំណត់ទៅ %1$s ថ្ងៃ។ ដោយ %2$s - អ្នកបានលុប \"សារដែលបានរក្សាទុក\" សន្ទនា។\n\nℹ️ ដើម្បីប្រើមុខងារ \"សារដែលបានរក្សាទុក\" ជាថ្មីម្តងទៀត សូមបង្កើតសន្ទនាថ្មីជាមួយខ្លួនអ្នក។ - - ⚠️️ឃ្លាំងផ្ទុករបស់កម្មវិធីផ្តល់សេវាឲ្យអ្នក ជិតអស់ហើយត្រូវបានប្រើ %1$s%% រួចហើយ។\n\n អ្នកប្រហែលជាមិនអាចទទួលបានសារទេនៅពេលប្រើទំហំផ្ទុក ១០០%% ។\n\n👉 សូមពិនិត្យមើលថាតើ អ្នកអាចលុបទិន្នន័យចាស់នៅក្នុងចំណុចប្រទាក់គេហទំព័ររបស់កម្មវិធីផ្តល់សេវាកម្មហើយពិចារណាបើក \"ការកំណត់ / លុបសារចាស់ \"។ អ្នកអាចពិនិត្យមើលការប្រើប្រាស់ទំហំផ្ទុកបច្ចុប្បន្នរបស់អ្នកបានគ្រប់ពេលនៅ \"ការកំណត់ / ការតភ្ជាប់និងសេវាកម្ម\" ។ - - ⚠️ កាលបរិច្ឆេទ ឬពេលវេលានៃឧបករណ៍របស់អ្នកហាក់ដូចជាមិនត្រឹមត្រូវ (%1$s)។\n\n កែតម្រូវនាឡិការបស់អ្នក ⏰🔧 ដើម្បីធានាថា សាររបស់អ្នកត្រូវបានទទួលត្រឹមត្រូវ។ - ⚠️កំណែ Delta Chat របស់អ្នកប្រហែលជាហួសសម័យហើយ។\n\n នេះអាចបណ្តាលឱ្យមានបញ្ហាដោយសារតែដៃគូជជែករបស់អ្នកប្រើកំណែថ្មីជាង - ហើយអ្នកកំពុងបាត់លក្ខណៈពិសេសចុងក្រោយ 😳\n សូមពិនិត្យមើល https://get.delta.chat ឬហាងកម្មវិធីរបស់អ្នកដើម្បីទទួលបានព័ត៌មានថ្មីៗ ។ - - - សូមបញ្ចូល ប្រព័ន្ធកំណត់ដោយសម្ងាត់របស់អ្នក ដើម្បីបន្ត។ - - - QR កូដ - ផ្ទុកកូដ QR ជារូបភាព - ស្គេនកូដQR - កាន់កាម៉េរ៉ារបស់អ្នកពីលើកូដ QR - កូដ QR មិនអាចបានឌិកូដទេ - តើអ្នកចង់ចូលរួមក្រុម \"%1$s\" ទេ? - ស្នាមម្រាមដៃដែលបានស្គេន មិនផ្គូរផ្គងគ្នាទេនឹងការបានឃើញចុងក្រោយសម្រាប់ %1$s - កូដ QR នេះផ្ទុកស្នាមម្រាមដៃ ប៉ុន្តែគ្មានអស័យដ្ឋានអុីម៉េលទេ\n\nសម្រាប់ក្រុម ក្រៅក្រុម ការផ្ទៀងផ្ទាត់ សូមបង្កើត ការតភ្ជាប់ជាអ៊ិនគ្រីបទៅអ្នកទទួលជាមុនសិន។ - អក្សរពិកូដ QR ដែលបានស្គេន:\n\n%1$s - URL ពិកូដ QR ដែលបានស្គេន:\n\n%1$s - ស្នាមម្រាមដៃ - អ្នកផ្សេងទៀតអាចស្កេនលេខកូដ QR នេះដើម្បីទាក់ទងអ្នក។\n\nអ្នកអាចធ្វើឱ្យកូដ QR អសកម្មនៅទីនេះហើយបើកដំណើរ។ - អ្នកផ្សេងទៀតអាចស្កេនលេខកូដ QR នេះដើម្បីចូលរួមក្រុម \"%1$s\"។\n\nអ្នកអាចធ្វើឱ្យកូដ QR អសកម្មនៅទីនេះ ហើយធ្វើឱ្យវាសកម្មឡើងវិញដោយស្កេនម្តងទៀត។ - ធ្វើឱ្យកូដ QR អសកម្ម - អ្នកផ្សេងទៀតអាចស្កេនលេខកូដ QR នេះដើម្បីទាក់ទងអ្នក។\n\nកូដ QR មិនសកម្មនៅលើឧបករណ៍នេះទេ។ - អ្នកផ្សេងទៀតអាចស្កេនលេខកូដ QR នេះដើម្បីចូលរួមក្រុម \"%1$s \"។\n\n កូដ QR មិនសកម្មនៅលើឧបករណ៍នេះទេ។ - ធ្វើឱ្យកូដ QR សកម្ម - កូដ QR សម្រាប់ការអញ្ជើញ - %1$s ចូលរួម - %1$s បានផ្ទៀងផ្ទាត់ - %1$s បានចូលរួមក្រុមនេះ - កូដ QR សម្រាប់ការអញ្ជើញ - - ស្គេនទីនេះដើម្បីចូលរួមក្រុម \"%1$s\" នេះ។ - កូដ QR សម្រាប់ការអញ្ជើញ - - ស្គេនទីនេះដើម្បីរៀបចំទំនាក់ទំនងជាមួយ %1$s - គ្មានសេវាអុិនធ័រណេត មិនអាចអនុវត្ត ការរៀបចំកូដ QR - បង្កើតអស័យដ្ឋានអុីម៉េលថ្មីនៅលើ \"%1$s\" និងកត់ចូលនៅទីនោះ? - បង្កើតអស័យដ្ឋានអុីម៉េលថ្មីនៅលើ \"%1$s\" និងកត់ចូលនៅទីនោះ?\n\nគណនីរបស់អ្នកដែលមានស្រាប់ នឹងមិនត្រូវបានលុបចោលទេ។ ប្រើប្រាស់ ការ \"ឆ្លាស់ប្តូរគណនី\" ដើម្បីធាតុប្តូររវាងគណនីរបស់អ្នក។ - កូដ QR ដែលបានស្គេន មិនអាចត្រូវបានប្រើប្រាស់ដើម្បីរៀបចំគណនីថ្មីមួយទេ។ - %1$s បានផ្ទៀងផ្ទាត់ - មិនអាចផ្ទៀងផ្ទាត់ %1$s - - បានដូរការរៀបចំសម្រាប់ %1$s - ជ្រើសរើសការជជែក ដើម្បីផ្ញើសារទៅកាន់ - សំបុត្រទៅតំណភ្ជាប់ មិនអាចឌិកូដទេ: %1$s - - - ឆ្លើយតប - សារថ្មី - តំណភ្ជាប់ផ្ទៃខាងក្រោយបានបើក - ខ្ពស់ - អតិប្បរមា - ឈ្មោះ និងសារ - តែឈ្មោះ - មិនឈ្មោះ ឬសារ - - ត្រូវបានការអនុញ្ញាត - បន្ត - ដើម្បីថតរូប រឺថតវីដេអូ ចូលទៅកាន់ការកំណត់កម្មវិធី ជ្រើសរើស \" ការអនុញ្ញាត\" និងបើកដំណើរការ \"ម៉ាសុីនថត\"។ - - ដើម្បីផ្ញើ សារសំឡេង ចូលទៅកាន់ការកំណត់កម្មវិធី ជ្រើសរើស \"ការអនុញ្ញាត\" និងបើកដំណើរការ \"មីក្រូហ្វូន\"។ - ដើម្បីទទួល រឺផ្ញើឯកសារ ចូលទៅកាន់ការកំណត់កម្មវិធី ជ្រើសរើស \"ការអនុញ្ញាត\" និងបើកដំណើរការ \"ការផ្ទុក\"។ - ដើម្បីភ្ជាប់ទីតាំង ចូលទៅកាន់ការកំណត់កម្មវិធី ជ្រើសរើស\"ការកំណត់\" និងបើកដំណើរការ \"ទីតាំង\"។ - - គូកន្លែងណាដើម្បីឲ្យព្រិលៗ - បន្ថែមអក្សរ - ព្រាល - ជក់ផាត់ សម្គាល់ - ជក់ផាត់ ធ្វើឲ្យលេចឡើង - កាត់ - ត្រឡប់ - បង្វិល - - - សារដែលបានធ្វើឲ្យសម្ងាត់ - - - នេះគឺជាសា Delta Chat ផ្លូវការ នៅលើកម្មវិធីកុំព្យូទ័រលើតុ - សូហ្វវែ Delta Chat នេះគឺបានអាជ្ញាប័ណ្ណនៅក្រោម GNU GPL ជំនាន់ ៣ និងប្រភពកូដ គឺអាចរកបាននៅលើ GitHub - ស្វាគមន៍មកកាន់សា Delta Chat - ភាសា - ឯកសារ - ឈប់ - កែ - ធ្វើឡើងវិញ - ធ្វើម្តងទៀត - កាត់ - ចម្លង - បិទភ្ជាប់ - ការមើល - អណ្តែតនៅខាងលើ - អ្នកអភិវឌ្ឍន៍ - ឧបករណ៍អភិវឌ្ឍន៍ - ជួយ - រាយការណ៍ពីបញ្ហា - អំពីសា Delta Chat - បើក Delta Chat - ធ្វើឲ្យអប្បបរមា - ជ្រើសរើសសន្ទនា ឬបង្កើតសន្ទនាថ្មី - សរសេរសារ - ពត៌មានពីការធ្វើឲ្យសារជាសម្ងាត់ - លុបសារ - ពត៌មានបន្ថែម - MMM D - យកចេញ - រក្សាទុក - ឈ្មោះ - ជ្រើសរើសរូបភាពរបស់ក្រុម - នាំចេញការបម្រុងទុក - ការរៀវចំចាក់អ៊ិនគ្រីបស្វ័យប្រវត្តិបានផ្ទេរហើយ។ - លុបការកត់ចូលនេះ? គ្រប់យ៉ាងនឹងត្រូវបានលុប រួមបញ្ចូលទាំងការរៀបចំ ទៅបញ្ចប់ការអុិនគ្រឹបឧបករណ៍ដល់ឧបករណ៍ ទំនាក់ទំនង សន្ទនា សារ និងប្រពន្ធ័ផ្សព្វផ្សាយ។ សកម្មភាពនេះមិនអាចធ្វើឡើងវិញបានទេ។ - បានផ្ញើ - បានទទួល - បើកថតឯកសារកត់ - បើកឯកសារកត់បច្ចុប្បន្ន - រូបតំណាងថាស មិនអាចបិទបានទេដោយសារ Delta Chat ត្រូវបានចាប់ផ្តើមជាមួយជម្រើសបង្រួមអប្បបរមា។ - រកមិនឃើញការណែនាំអក្ខរាវិរុទ្ធទេ។ - បង្ហាញក្របខ័ណ្ឌ - - - ស្ថានភាពចែកចាយ៖ មានកំហុស - សោត្រដោកការអ៊ិនគ្រីប - ស្ថានភាពចែកចាយ៖ កំពុងផ្ញើសារ - ស្ថានភាពចែកចាយ៖ ពង្រាង - ស្ថានភាពចែកចាយ៖ បានប្រគល់ - ស្ថានភាពចែកចាយ៖ បានអាន - ស្ថានភាពចែកចាយមិនត្រឹមត្រូវ - សកម្មភាពសារ - ការមើលផ្ទៃខាងក្រោយ - កម្មវិធីសារដែលនឹងបាត់បន្ទាប់ពីមួយរយៈ បានធ្វើឱ្យសកម្ម - - - សាហារីសង្ឃ ប្រើកាម៉េរ៉ារបស់អ្នកដើម្បីថតរូប និងផ្ញើរូបថត និងវីដេអូ និងស្កេនកូដ QR។ - សា Delta Chat ប្រើទំនាក់ទំនងរបស់អ្នកដើម្បីបង្ហាញបញ្ជីអស័យដ្ឋានអុីម៉េល ដែលអ្នកអាចសរសេរទៅ។ សា Delta Chat គ្មានម៉ាសុីនមេទេ។ ទំនាក់ទំនងរបស់អ្នកមិនត្រូវបានផ្ញើទៅណាទេ។ - សា Delta Chat ប្រើមីក្រូហ្វូនរបស់អ្នកដើម្បីថត និងផ្ញើសារជាសម្លេង និងវីដេអូជាមួយសម្លេង។ - សា Delta Chat នឹងអនុញ្ញាតឲ្យអ្នកជ្រើសរើសរូបថតមួយណា ពីបណ្ណាល័យរូបថតរបស់អ្នកដើម្បីផ្ញើ។ - សា Delta Chat ចង់រក្សាទុករូបភាពទៅបណ្ណាល័យរូបថតរបស់អ្មក។ - ដើម្បីថែរក្សាតំណភ្ជាប់ទៅម៉ាសុីនបម្រើអុីម៉េលរបស់អ្នក និងទទួលសារនៅផ្ទៃខាងក្រោយ។ បដិសេធការបង្កើនប្រសិទ្ធភាពថ្ម នៅក្នុងជំហានបន្ទាប់។\n\nសាហារីសង្ឃ ប្រើធនធានបន្តិចបន្តួច និងយកចិត្តទុកដាក់មិនបង្ហូរថ្មរបស់អ្នក។ - - ប៉ះទីនេះដើម្បីទទួលសារកំឡុងពេល សា Delta Chat គឺស្ថិតនៅក្នុងផ្ទៃខាងក្រោយ។ - អ្នកបានអនុញ្ញាតរួចរាល់ហើយឲ្យសា Delta Chat ដើម្បីទទួលសារនៅផ្ទៃខាងក្រោយ\n\nប្រសិនបើ សារនៅតែមិនមកដល់ផ្ទៃខាងក្រោយ សូមពិនិត្យការការកំណត់ប្រពន្ធ័របស់អ្នកផងដែរ។ - - diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml index 436808cf4..f8f8ff4e9 100644 --- a/src/main/res/values-ko/strings.xml +++ b/src/main/res/values-ko/strings.xml @@ -116,7 +116,6 @@ %d 선택됨 - 임시 저장 이미지 @@ -174,9 +173,11 @@ 대화상대 추가 채팅 시작 새 그룹 - + 방송 목록 + 방송 목록 + 새 방송 목록 수신자 추가 보내기 @@ -285,8 +286,6 @@ 비디오 채팅 초대 당신은 비디오 채팅에 초대되었습니다. 참여를 위해 %1$s를 클릭하세요. - - 이 그룹에서 나가시겠습니까? %d개의 메시지를 삭제하시겠습니까? @@ -301,7 +300,7 @@ %1$s와 채팅하시겠습니까? 그룹에서 %1$s을/를 제거하시겠습니까? - + 브로드 캐스트 목록에서 %1$s을/를 제거하시겠습니까? 이 링크를 여시겠습니까? @@ -409,7 +408,7 @@ 채팅에서 보내거나 받은 개인 앱들이 여기에 나타납니다. 미디어 미리보기 메시지 전송 - + %1$s의 주소가 %2$s에서 %3$s로 변경됨. 이메일 주소를 %1$s에서 %2$s로 바꿨습니다.\n\n확인된 그룹으로 메시지를 보내면 해당 그룹의 연락처가 자동으로 이전 주소를 새 주소로 대체합니다.\n\n모든 이메일을 새 이메일 주소로 전달하도록 이전 이메일 공급자를 설정하는 것이 좋습니다. 그렇지 않으면 새 주소를 받지 못한 연락처의 메시지를 놓칠 수 있습니다. @@ -646,8 +645,6 @@ %1$s를 멤버에서 제거함. %2$s가 %1$s를 멤버에서 제거함. - - 그룹을 나갔습니다. 그룹 이미지를 지움. %1$s이 그룹 이미지를 지움. @@ -740,8 +737,9 @@ %1$s이 응하여, 그룹에 추가되기를 기다리는 중입니다... %1$s이 확인됨 + %1$s 확인할 수 없음 - + %1$s에 대한 설정이 변경되었습니다. 메시지를 보내려면 채팅을 선택하십시오 @@ -775,7 +773,7 @@ 뒤집기 돌리기 - + 암호화된 메시지 diff --git a/src/main/res/values-lt/strings.xml b/src/main/res/values-lt/strings.xml index f49497985..e48267ade 100644 --- a/src/main/res/values-lt/strings.xml +++ b/src/main/res/values-lt/strings.xml @@ -277,7 +277,6 @@ Atsakyti privačiai Pirminis kodas Paaukoti - Išjungti 1 valandai Išjungti 8 valandoms Išjungti 1 dienai @@ -306,8 +305,6 @@ Pakvietimas į vaizdo pokalbį Jūs esate kviečiami į vaizdo pokalbį. Spustelėkite %1$s jei norite prisijungti. - - Ar tikrai norite išeiti iš šios grupės? Ištrinti %d žinutę? @@ -418,7 +415,7 @@ Čia bus rodoma bet kuriame pokalbyje bendrinama medija. Medijos peržiūra Siųsti žinutę - + %1$s pasikeitė adresą iš %2$s į %3$s @@ -670,8 +667,6 @@ Jūs pakeitėte grupės pavadinimą iš „%1$s“ į „%2$s“. %3$s pakeitė grupės pavadinimą iš „%1$s“ į „%2$s“. - - Jūs išėjote iš grupės. %1$s išėjo iš grupės. Jūs ištrynėte grupės paveikslą. @@ -712,8 +707,9 @@ Jūs nustatėte išnykstančių žinučių laikmatį į %1$s sav. %2$s nustatė išnykstančių žinučių laikmatį į %1$s sav. - + %1$s išsiuntė žinutę iš kito įrenginio. + %1$s išsiuntė žinutę iš kito įrenginio. Bakstelėkite norėdami sužinoti daugiau. Sužinoti daugiau @@ -750,8 +746,9 @@ Prisijungti prie „%1$s“? %1$s patvirtintas. + Nepavyksta patvirtinti %1$s - + Pakeista sąranka, skirta %1$s. Pasirinkite pokalbį, į kurį siųsti žinutę nepavyko dekoduoti mailto nuorodos: %1$s @@ -780,7 +777,7 @@ Apversti Pasukti - + Šifruota žinutė Ši programinė įranga yra licencijuota pagal GNU GPL versiją 3, o pirminis kodas yra prieinamas „GitHub“ internetinėje svetainėje. diff --git a/src/main/res/values-nb/strings.xml b/src/main/res/values-nb/strings.xml index 73e6982f6..39575cd2e 100644 --- a/src/main/res/values-nb/strings.xml +++ b/src/main/res/values-nb/strings.xml @@ -207,8 +207,6 @@ Videochatinvitasjon Du er invitert til en videochat, klikk %1$s for å bli med. - - Er du sikker på at du vil forlate denne gruppen? Videresend meldinger til %1$s? Videresend meldinger til %1$d chatter? Eksporter vedlegg? Eksport av vedlegg vil gi andre apper på din enhet tilgang til dem\n\nFortsett? @@ -388,7 +386,7 @@ Tillatelse kreves Fortsett - + Kryptert melding Velkommen til Delta Chat diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml index f20ddccb3..c2b242424 100644 --- a/src/main/res/values-nl/strings.xml +++ b/src/main/res/values-nl/strings.xml @@ -34,6 +34,8 @@ Bijwerken Emoji Bijlage + + Wil je ‘%1$s’ bijvoegen? Terug Sluiten Venster sluiten @@ -56,7 +58,10 @@ Opslaan Gesprek Media + Apps en media Profiel + Alle profielen + Huidig profiel Hoofdmenu Gesprek beginnen Volledig bericht tonen… @@ -91,6 +96,8 @@ Er is geen app die deze inhoud kan openen. Er is geen webbrowser geïnstalleerd. ‘%1$s’ kan niet worden gevonden. + + “%1$s” kan niet worden opgeslagen. Gekopieerd naar het klembord. Contactpersonen E-mailadres @@ -150,7 +157,7 @@ %d geselecteerd %d geselecteerd - + Gekozen: Ik Concept Afbeelding @@ -194,6 +201,7 @@ Privé-apps Appkiezer-url Stel in om apps te kiezen vanaf een url in plaats van de standaard appkiezer + Druk op ‘versturen’ om te delen Overzicht Games Hulpmiddelen @@ -232,14 +240,32 @@ Gesprek voeren met… Gesprek klonen - + Verzendlijst + Verzendlijsten + Nieuwe verzendlijst + + Kanaal + + Kanalen + + Nieuw kanaal Ontvangers toevoegen + Verzendlijst bewerken + Naam van verzendlijst + Geef de verzendlijst een naam. + + Kanaalnaam + E-mail + + Nieuwe e-mail + + Onderwerp Versturen Emojitoetsenbord tonen/verbergen Groep aanpassen @@ -249,6 +275,7 @@ Gesprek de-archiveren Bijlage toevoegen Groep verlaten + Kanaal verlaten Gesprek verwijderen Ale berichten wissen @@ -275,6 +302,7 @@ Bijlage exporteren Bijlagen exporteren Alle media + Alle apps en media Tonen in bijbehorend gesprek App tonen in gesprek @@ -332,6 +360,7 @@ Toevoegen aan startscherm Doneren + ❤️ Het lijkt er op dat je blij bent met Delta Chat!\n\nAls dat zo is, zouden we je vriendelijk willen vragen om een donatie, zodat Delta Chat gratis beschikbaar kan blijven.\n\n Ook al is Delta Chat gratis en opensource, de ontwikkeling ervan kost wél geld. Jouw donatie kan het verschil maken!\n\nhttps://delta.chat/donate 1 uur lang uitschakelen 8 uur lang uitschakelen @@ -368,7 +397,8 @@ Je bent uitgenodigd voor een videogesprek. Druk op %1$s om deel te nemen. - Weet je zeker dat je deze groep wilt verlaten? + + Weet je zeker dat je dit kanaal wilt verlaten? Wil je %d gesprek verwijderen van al je apparaten? Wil je %d gesprekken verwijderen van al je apparaten? @@ -394,8 +424,10 @@ Wil je een gesprek voeren met %1$s? Wil je %1$s verwijderen uit de groep? - + Wil je %1$s verwijderen van de verzendlijst? + + Weet je zeker dat je %1$s van het kanaal wilt verwijderen? Weet je zeker dat je deze link wilt openen? @@ -425,7 +457,10 @@ Stuur een bericht aan %1$s . + Op een verzendlijst hebben ontvangers niet de mogelijkheid om te reageren op je berichten. + + Kanalen zijn bedoeld om te gebruiken als verzendlijsten. Stel het eerste bericht op zodat anderen binnen deze groep kunnen reageren. Veeg opzij om te annuleren Houd ingedrukt om een spraakbericht op te nemen; laat los om te versturen @@ -435,6 +470,7 @@ Bericht Gearchiveerd Verzoek + Gespreksverzoeken tonen op meldingen en emblemen Er zijn geen berichten. Aan mijzelf gestuurde berichten Gearchiveerde gesprekken worden hier getoond. @@ -508,7 +544,7 @@ Deelnemers toevoegen Om deze actie uit te kunnen voeren moet je deelnemen aan de groep. Versleuteling - Gedeelde gesprekken + Gemeenschappelijke gesprekken Verwante gesprekken Voormalige deelnemers @@ -533,7 +569,7 @@ Vierkant rooster Bericht versturen - + %1$s heeft zijn/haar adres veranderd van %2$s naar %3$s Je hebt je e-mailadres veranderd van %1$s naar %2$s.\n\nAls je een bericht stuurt aan een goedgekeurde groep, dan zien contactpersonen in de groep je nieuwe adres.\n\nWel raden we aan om bij je oude provider in te stellen dat je e-mails wilt doorsturen naar je nieuwe adres, anders missen sommige contactpersonen mogelijk je berichten. @@ -804,6 +840,7 @@ %1$s bericht Maximaal downloaden tot en met een aantal van %1$s + Kies een profiel Profielfoto kiezen Kies een nieuwe profielfoto Profielfoto verwijderen @@ -890,8 +927,8 @@ Je hebt ‘%1$s’ verwijderd. ‘%1$s’ is verwijderd door %2$s. - - Je hebt de groep verlaten. + + Je hebt het kanaal verlaten. De groep is verlaten door %1$s. Je hebt de groepsfoto verwijderd. @@ -935,11 +972,13 @@ Je hebt de tijdklok van verdwijnende berichten ingesteld op %1$s weken. De tijdklok van verdwijnende berichten is door %2$s ingesteld op %1$s weken. - + %1$s heeft een bericht verstuurd vanaf een ander apparaat. - Berichten zijn vanaf nu gegarandeerd van eind-tot-eindversleuteling voorzien. Druk hier voor meer informatie. - Alle berichten in dit gesprek zijn vanaf nu gegarandeerd van eind-tot-eindversleuteling voorzien.\n\nMet behulp van deze versleuteling blijven berichten tussen jou en je gesprekspartners geheim - zelfs je e-mailprovider kan ze niet uitlezen. + Berichten zijn gegarandeerd van eind-tot-eindversleuteling voorzien. Druk hier voor meer informatie. + Alle berichten in dit gesprek zijn gegarandeerd van eind-tot-eindversleuteling voorzien.\n\nMet behulp van deze versleuteling blijven berichten tussen jou en je gesprekspartners geheim - zelfs je e-mailprovider kan ze niet uitlezen. + %1$s heeft een bericht verstuurd vanaf een ander apparaat. Druk hier voor meer informatie. + Eind-tot-eindversleuteling kan niet meer worden gegarandeerd, omdat %1$s Delta Chat opnieuw heeft geïnstalleerd of een bericht vanaf een ander apparaat heeft verstuurd.\n\nMaak een afspraak met hem/haar en scan de QR-code opnieuw om eind-tot-eindversleuteling weer in te schakelen. ⚠️ Voor %1$s is eind-tot-eindversleuteling vereist, maar dit is nog niet ingesteld in het huidige gesprek. Druk voor meer informatie. Spreek met elkaar af en scan elkaars QR-code om eind-tot-eindversleuteling op te zetten. @@ -1001,13 +1040,16 @@ Bezig met opzetten van eind-tot-eindversleuteling… Er kan nog geen eind-tot-eindversleuteling worden gegarandeerd, maar je kunt wel alvast een bericht sturen. + Het lijkt langer te duren dan verwacht - wellicht is een van jullie offline.\n\nHet proces wordt echter op de achtergrond voortgezet. %1$s is goedgekeurd. + Er kan geen eind-tot-eindversleuteling met %1$s worden gegarandeerd. Geïntroduceerd door %1$s Geïntroduceerd door mij - + Geïntroduceerd + Gewijzigde instellingen voor %1$s Om de eind-tot-eindversleuteling te garanderen, kun je alleen contactpersonen met een groen vinkje toevoegen aan deze groep.\n\nVan niet-goedgekeurde contactpersonen kun je de QR-code scannen om ze goed te keuren. Kies in welk gesprek je dit bericht wilt delen @@ -1051,7 +1093,7 @@ Spiegelen Draaien - + Versleuteld bericht @@ -1182,6 +1224,9 @@ Je hebt al toestemming gegeven voor het ophalen van berichten op de achtergrond.\n\nAls het nog steeds niet werkt, controleer dan de systeeminstellingen. + Wijzigingslog:\n\n💯 Eind-tot-eindversleuteling is voortaan betrouwbaarder én standaard. Slotjes 🔒 zijn verleden tijd!\n\n✉️ Klassieke e-mails zonder eind-tot-eindversleuteling worden voortaan gemarkeerd met een letter\n\n😻 Nieuwe, mooiere profielpagina\'s van al je contactpersonen\n\n🔲 Nieuwe knop voor snelle toegang tot apps in gesprekken\n\n❤️ Overweeg een donatie, zodat we onafhankelijk kunnen blijven en verbeteringen kunnen blijven aanbrengen: %1$s + Wijzigingslog:\n\n❤️‍🔥 Nieuwe emojikiezer met veel meer emojis\n\n🎮 Verbeterde apps in gesprekken: ontvang meldingen open ondersteunde apps met links, bijv. een agenda-uitnodiging\n\n👍 Ontvang meldingen bij reacties op berichten\n\n… 🛠️ Opgeloste fouten en VEEL MEER op %1$s + ℹ️ De optie om een ander profiel te kiezen is verplaatst: druk op je profielfoto op het hoofdscherm om het profielmenu te openen.💡 diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 4e34bf01c..d49f58981 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -34,6 +34,8 @@ Aktualizacja Emoji Załącznik + + Załączyć „%1$s”? Wróć Zamknij Zamknij okno @@ -56,7 +58,10 @@ Zapisz Czat Multimedia + Aplikacje i multimedia Profil + Wszystkie profile + Aktualny profil Menu główne Rozpocznij czat Pokaż całą wiadomość… @@ -91,6 +96,8 @@ Nie można znaleźć aplikacji do obsługi tego typu danych. Nie zainstalowano przeglądarki. Nie znaleziono pliku %1$s. + + Nie można zapisać %1$s. Skopiowano do schowka Kontakty Adres e-mail @@ -168,7 +175,7 @@ Wybrano %d Wybrano %d - + Wybrane: Ja Szkic Obraz @@ -212,6 +219,7 @@ Prywatne aplikacje Adres URL selektora aplikacji Jeśli ustawiony, adres URL będzie używany jako selektor aplikacji zamiast domyślnego + Dotknij „Wyślij”, aby udostępnić Główna Gry Narzędzia @@ -250,14 +258,32 @@ Czat z… Klonuj czat - + Lista rozgłoszeniowa + Lista rozgłoszeniowa + Nowa lista rozgłoszeniowa + + Kanał + + Kanały + + Nowy kanał Dodaj odbiorców + Edytuj listę rozgłoszeniową + Nazwa listy rozgłoszeniowej + Wpisz nazwę listy rozgłoszeniowej + + Nazwa kanału + E-mail + + Nowy e-mail + + Temat Wyślij Przełącz klawiaturę emoji Edytuj grupę @@ -267,6 +293,7 @@ Przywróć czat z archiwum Dodaj załącznik Opuść grupę + Opuść kanał Usuń czat Wyczyść czat @@ -293,6 +320,7 @@ Eksportuj załącznik Eksportuj załączniki Wszystkie multimedia + Wszystkie aplikacje i multimedia Pokaż w czacie Pokaż aplikację w czacie @@ -350,6 +378,7 @@ Dodaj do ekranu głównego Wspomóż + ❤️ Wygląda na to, że podoba ci się Delta Chat!\n\nProsimy o przekazanie darowizny, abyśmy mogli zapewnić, że Delta Chat pozostanie darmowy dla wszystkich.\n\nChociaż Delta Chat jest darmowy i ma otwarte oprogramowanie, jego rozwój kosztuje. Pomóż nam zachować niezależność Delta Chat i uczynić go w przyszłości jeszcze lepszym.\n\nhttps://delta.chat/pl/donate Wyłącz na 1 godzinę Wyłącz na 8 godzin @@ -388,7 +417,8 @@ Masz zaproszenie do czatu wideo, naciśnij %1$s, aby dołączyć. - Czy na pewno chcesz opuścić tę grupę? + + Na pewno chcesz opuścić? Usunąć %d czat ze wszystkich urządzeń? Usunąć %d czaty ze wszystkich urządzeń? @@ -420,8 +450,10 @@ Rozpocząć czat z %1$s? Usunąć %1$s z grupy? - + Usunąć odbiorcę %1$s z listy rozgłoszeniowej? + + Usunąć %1$s z kanału? Czy chcesz otworzyć ten link? @@ -457,7 +489,10 @@ Wyślij wiadomość do %1$s. + Na liście rozgłoszeniowej odbiorcy będą otrzymywać wiadomości w czacie tylko do odczytu. + + Kanały są narzędziem typu „jeden do wielu” do nadawania wiadomości. Napisz pierwszą wiadomość, by inni mogli odpowiedzieć w tej grupie.\n\n• Nie ma problemu, jeśli nie wszyscy członkowie korzystają z Delta Chat.\n\n• Dostarczenie pierwszej wiadomości może chwilę potrwać. PRZESUŃ, BY ANULOWAĆ Dotknij i przytrzymaj, aby nagrać wiadomość głosową, zwolnij, aby wysłać @@ -467,6 +502,7 @@ Wiadomość Zarchiwizowane Prośba + Uwzględnij żądania w licznikach i powiadomieniach Brak wiadomości. Wiadomości wysłane do siebie Jeśli zarchiwizujesz czaty, zostaną one pokazane tutaj. @@ -498,7 +534,7 @@ Wyślij wiadomość do… Aplikacje w czasie rzeczywistym - Włącz połączenia w czasie rzeczywistym dla aplikacji udostępnianych na czatach. Jeśli ta opcja jest włączona, partnerzy czatu mogą być w stanie wykryć twój adres IP, gdy uruchamiasz aplikację. + Włącz połączenia w czasie rzeczywistym dla aplikacji dołączonych do tego czatu. Jeśli ta opcja jest włączona, partnerzy czatu mogą być w stanie wykryć twój adres IP, gdy uruchamiasz aplikację. Pokaż lokalizacje w ramach czasowych @@ -515,7 +551,7 @@ Nie pytaj ponownie dla %1$s Wykryto podejrzany link - Czy na pewno chcesz odwiedzić %1$s? + Na pewno chcesz odwiedzić %1$s? Wybrano link, który może przekłamywać znaki poprzez użycie podobnie wyglądających znaków z różnych alfabetów. Podążanie za linkiem oznaczonym %1$s doprowadzi do %2$s, co jest normalne dla znaków niełacińskich. Jeśli nie spodziewałeś się takich znaków, ten link może być szkodliwy. @@ -550,22 +586,22 @@ Dokumenty Linki Mapa - Tutaj pojawią się zdjęcia i filmy udostępnione na tym czacie. - Tutaj pojawią się dokumenty, muzyka i inne pliki udostępnione na tym czacie. - Tutaj pojawią się zdjęcia udostępnione w tym czacie. - Tutaj pojawią się filmy udostępnione w tym czacie. - Tutaj pojawią się pliki dźwiękowe i wiadomości głosowe udostępnione w tym czacie. - Tutaj pojawią się prywatne aplikacje udostępnione na tym czacie. - Tutaj pojawią się multimedia udostępnione w dowolnym czacie. - Tutaj pojawią się dokumenty, muzyka i inne pliki udostępnione w dowolnym czacie. - Tutaj pojawią się prywatne aplikacje otrzymane lub wysłane w dowolnym czacie. + Tutaj pojawią się zdjęcia i filmy dołączone do tego czatu. + Tutaj pojawią się dokumenty, muzyka i inne pliki dołączone do tego czatu. + Tutaj pojawią się zdjęcia dołączone do tego czatu. + Tutaj pojawią się filmy dołączone do tego czatu. + Tutaj pojawią się pliki dźwiękowe i wiadomości głosowe dołączone do tego czatu. + Tutaj pojawią się aplikacje dołączone do tego czatu. + Tutaj pojawią się multimedia dołączone do tego czatu. + Tutaj pojawią się dokumenty, muzyka i inne pliki dołączone do tego czatu. + Tutaj pojawią się aplikacje dołączone w dowolnym czacie. Podgląd multimediów Siatka proporcjonalna Siatka kwadratowa Wyślij wiadomość - + %1$s zmieniła swój adres z %2$s na %3$s Zmieniłeś swój adres e-mail z %1$s na %2$s.\n\nJeśli teraz wyślesz wiadomość do zweryfikowanej grupy, kontakty tam zawarte automatycznie zastąpią stary adres Twoim nowym.\n\nBardzo zalecane jest, aby ustawić swojego starego dostawcę emaila tak, aby przekazywał wszystkie emaile na Twój nowy adres email. W przeciwnym razie możesz przegapić wiadomości od kontaktów, które jeszcze nie dostały Twojego nowego adresu. @@ -694,7 +730,7 @@ Zaakceptuj nieprawidłowe certyfikaty Przełącz konto - Dodaj konto + Dodaj profil Etykieta profilu np. Praca, Rodzina @@ -702,7 +738,7 @@ Przenieś na górę Usuń konto - Czy na pewno chcesz usunąć dane swojego konta? + Na pewno chcesz usunąć dane swojego konta? Wszystkie dane konta „%s” na tym urządzeniu zostaną usunięte, w tym konfiguracja szyfrowania end-to-end, kontakty, czaty, wiadomości i multimedia. Tej operacji nie można cofnąć. Nieskonfigurowane konto Otwórz konto, aby je skonfigurować @@ -836,6 +872,7 @@ Wiadomość %1$s Maksymalna ilość do pobrania dostępna do %1$s + Wybierz profil Wybierz zdjęcie profilowe Wybierz nowe zdjęcie profilowe Usuń zdjęcie profilowe @@ -922,8 +959,8 @@ Usunięto członka %1$s. Użytkownik %2$s usunął członka %1$s. - - Opuszczono grupę + + Opuszczono Grupa opuszczona przez %1$s. Usunięto obraz grupy. @@ -967,14 +1004,16 @@ Ustawiono zegar znikających wiadomości na %1$s tyg. Użytkownik %2$s ustawił zegar znikających wiadomości na %1$s tyg. - + Użytkownik %1$s wysłał wiadomość z innego urządzenia. - Od teraz gwarantujemy, że wiadomości będą szyfrowane metodą end-to-end. Dotknij, aby przeczytać więcej. - Teraz gwarantujemy, że wszystkie wiadomości w tym czacie są szyfrowane metodą end-to-end.\n\nSzyfrowanie end-to-end zapewnia prywatność wiadomości między tobą a twoimi partnerami czatów. Nawet serwery, dostawcy i pośrednicy nie są w stanie ich odczytać. + Wiadomości będą szyfrowane metodą end-to-end. Dotknij, aby przeczytać więcej. + Wszystkie wiadomości w tym czacie są szyfrowane metodą end-to-end.\n\nSzyfrowanie end-to-end zapewnia prywatność wiadomości między tobą a twoimi partnerami czatów. Nawet serwery, dostawcy i pośrednicy nie są w stanie ich odczytać. + Użytkownik %1$s wysłał wiadomość z innego urządzenia. Dotknij, aby przeczytać więcej. + Nie można już zagwarantować szyfrowania end-to-end, prawdopodobnie z powodu ponownej instalacji Delta Chat przez %1$s lub wysłania wiadomości z innego urządzenia.\n\nMożesz spotkać się z tą osobą osobiście i ponownie zeskanować jej kod QR, aby przywrócić gwarantowane szyfrowanie end-to-end. ⚠️ %1$s wymaga szyfrowania end-to-end, które nie zostało jeszcze skonfigurowane dla tego czatu. Dotknij, aby dowiedzieć się więcej. - Aby ustanowić szyfrowanie end-to-end, możesz spotkać się z kontaktami osobiście i zeskanować ich kod QR, żeby ich wprowadzić. + Aby ustanowić szyfrowanie end-to-end, możesz spotkać się z kontaktami osobiście i zeskanować ich kod QR, żeby ich zweryfikować. Czytaj więcej Usunięto czat „Zapisane wiadomości”.\n\nℹ️ Aby ponownie użyć funkcji „Zapisane wiadomości”, utwórz nowy czat ze sobą. @@ -1030,18 +1069,21 @@ Użytkownik %1$s zaprosił cię do dołączenia do tej grupy.\n\nCzekam na odpowiedź urządzenia %2$s… Użytkownik %1$s odpowiedział, czekając na dodanie do grupy… - Ustanawiam gwarantowane szyfrowanie typu end-to-end, proszę czekać… + Ustanawiam szyfrowanie typu end-to-end, proszę czekać… Nie można jeszcze ustanowić gwarantowanego szyfrowania typu end-to-end, ale być może już wysłałeś wiadomość. + Aby kontynuować, kontakt musi być online.\n\nTen proces będzie kontynuowany automatycznie w tle. Kontakt %1$s zweryfikowany. - Nie można zweryfikować szyfrowania typu end-to-end %1$s + + Nie można ustanowić szyfrowania typu end-to-end z %1$s - Zweryfikowano przez %1$s - Zweryfikowane przez ciebie - + Kontakt zweryfikowany przez %1$s + Kontakt zweryfikowany przez ciebie + Zweryfikowano + Zmieniono konfigurację dla %1$s - Aby zagwarantować szyfrowanie end-to-end, do tej grupy możesz dodawać wyłącznie kontakty oznaczone zielonym znacznikiem wyboru.\n\nMożesz spotkać się z kontaktami osobiście i zeskanować ich kod QR, aby je przedstawić. + Aby zagwarantować szyfrowanie end-to-end, do tej grupy możesz dodawać wyłącznie kontakty oznaczone zielonym znacznikiem wyboru.\n\nMożesz spotkać się z kontaktami osobiście i zeskanować ich kod QR, aby je zweryfikować. Wybierz czat, do którego chcesz wysłać wiadomość Na czacie %1$s jest już wersja robocza wiadomości, czy chcesz ją zastąpić? @@ -1083,7 +1125,7 @@ Przełącz Obróć - + Zaszyfrowana wiadomość @@ -1214,6 +1256,9 @@ Pozwolono już Delta Chat na odbieranie wiadomości w tle.\n\nJeśli wiadomości nadal nie docierają w tle, sprawdź też ustawienia systemu. + Co nowego?\n\n💯 Szyfrowanie end-to-end jest niezawodne i na zawsze. Kłódki 🔒 odchodzą w zapomnienie!\n\n✉️ Klasyczna poczta e-mail bez szyfrowania end-to-end jest oznaczona symbolem litery.\n\n😻 Nowy, ulepszony ekran profilu dla wszystkich kontaktów.\n\n🔲 Nowy przycisk szybkiego dostępu do aplikacji używanych na czacie.\n\n❤️ Prosimy o darowizny, które pomogą nam zachować niezależność i stale wprowadzać ulepszenia: %1$s + Co nowego?\n\n❤️‍🔥 Nowy selektor emoji z większą liczbą emoji\n\n🎮 Ulepszone aplikacje czatu: Otrzymuj powiadomienia i otwieraj aplikacje pomocnicze w kontekście, np. otwieraj dodany wpis kalendarza bezpośrednio\n\n👍 Otrzymuj powiadomienia o reakcjach na swoje wiadomości\n\n... 🛠️ POPRAWKI i JESZCZE WIĘCEJ na %1$s + ℹ️ Opcja „Przełącz profil” została przeniesiona: Dotknij swojego zdjęcia profilowego w górnym rogu ekranu głównego, aby dodać lub przełączyć profile 💡 diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index 70016d2a0..3b4ed5afa 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -146,7 +146,6 @@ %d selecionados %d selecionados - Eu Rascunho Imagem @@ -205,9 +204,11 @@ Novo contato Nova conversa Novo grupo - + Lista de Transmissão + Listas de Transmissão + Nova Lista de Transmissão Adicionar Destinatários Enviar @@ -322,8 +323,6 @@ Convite para conversa de vídeo Você foi convidado para uma conversa de vídeo, clique %1$s para ingressar. - - Quer mesmo sair do grupo? Apagar %d mensagem? @@ -340,7 +339,7 @@ Conversar com %1$s? Remover %1$s do grupo? - + Remover %1$s da lista de transmissão? Você quer abrir este link? @@ -464,7 +463,7 @@ Apps recebidas ou enviadas em qualquer bate-papo aparecerão aqui. Pré-visualização. Enviar mensagem - + %1$s mudou seu endereço de %2$s para %3$s Você mudou seu endereço de e-mail de %1$s para %2$s.\n\nSe você agora enviar uma mensagem para um grupo verificado, os contatos lá substituirão automaticamente o antigo por seu novo endereço.\n\nÉ altamente recomendável configurar seu antigo provedor de e-mail para encaminhar todos os e-mails para seu novo endereço de e-mail. Caso contrário, você pode perder mensagens de contatos que ainda não receberam seu novo endereço. @@ -738,8 +737,6 @@ Você removeu o membro %1$s. Membro %1$s removido por %2$s. - - Você saiu do grupo. Grupo deixado por %1$s. Você removeu a imagem do grupo. @@ -834,10 +831,11 @@ %1$srespondeu, esperando para ser adicionado ao grupo... %1$s verificado. + Impossível verificar %1$s Verificado por %1$s - + A configuração Autocrypt mudou para %1$s Selecione o bate-papo para enviar a mensagem @@ -871,7 +869,7 @@ Girar Rodar - + Mensagem criptografada diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml index 15d584c9c..a1115361f 100644 --- a/src/main/res/values-pt/strings.xml +++ b/src/main/res/values-pt/strings.xml @@ -139,8 +139,6 @@ por 2 horas por 6 horas - - Tem certeza que deseja deixar este grupo? Reencaminhar mensages para %1$s? Exportar anexo? A exportação de anexos permitirá o seu acesso a qualquer outra aplicação no seu dispositivo.\n\nContinuar? Bloquear este contacto? Não receberá mais mensagens deste contacto. @@ -331,8 +329,9 @@ Digitalize para configurar um contato com %1$s %1$s verificado. + Não é possível verificar %1$s - + Configuração alterada para %1$s Responder @@ -351,7 +350,7 @@ O Delta Chat necessita de permissão de acesso ao microfone para enviar mensagens de áudio, mas foi negado. Por favor, continue com as configurações do aplicativo, selecione \"Permissões\" e active \"Microfone\". O Delta Chat necessita da permissão de armazenamento para anexar ou exportar fotos, vídeos ou áudio, mas foi negado. Por favor, continue no menu de configurações do aplicativo, seleccione \"Permissões\" e active \"Armazenamento\". O Delta Chat necessita permissão de acesso à localização para anexar um local, mas ele negado. Por favor, continue no menu de configurações do aplicativo, selecione \"Permissões \"e ative \"Localização\". - + Mensagem encriptada Escolha o seu idioma... diff --git a/src/main/res/values-ro/strings.xml b/src/main/res/values-ro/strings.xml index e5481bd9b..ea1e2ef05 100644 --- a/src/main/res/values-ro/strings.xml +++ b/src/main/res/values-ro/strings.xml @@ -138,7 +138,6 @@ %d Selectate %d De Selecții - Eu Schiță Imagine @@ -196,9 +195,11 @@ Contact Nou Chat Nou Grup Nou - + Listă de difuzare + Liste de difuzare + Noua Listă de Difuzare Adăugați Destinatari Trimiteți @@ -312,8 +313,6 @@ Invitație la chat video Sunteți invitat la un chat video, faceți clic %1$s pentru a vă alătura. - - Ești sigur că vrei să părăsești acest grup? Ștergeți %d mesaj? @@ -330,7 +329,7 @@ Chat cu %1$s? Scoateți %1$s din grup? - + Eliminați %1$s din lista de difuzare? Doriți să deschideți acest link? @@ -449,7 +448,7 @@ Materialele media partajate în orice chat vor apărea aici. Previzualizare Media Trimiteți Mesaj - + %1$s și-au schimbat adresa de la %2$s la %3$s V-ați schimbat adresa de e-mail de la %1$s la %2$s.\n\nDacă trimiteți acum un mesaj către un grup verificat, contactele de acolo vor înlocui automat vechea adresă cu noua dumneavoastră adresă.\n\nSe recomandă să vă configurați vechiul furnizor de e-mail pentru a redirecționa toate e-mailurile către noua dumneavoastră adresă de e-mail. În caz contrar, s-ar putea să pierdeți mesaje ale contactelor care nu au primit încă noua dumneavoastră adresă. diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index c616ccaa5..54086f5e9 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -34,6 +34,8 @@ Обновить Эмодзи Вложение + + Прикрепить \"%1$s\"? Назад Закрыть Закрыть окно @@ -56,7 +58,10 @@ Сохранить Чат Медиафайлы + Приложения и медиафайлы Профиль + Все профили + Текущий профиль Главное меню Начать чат Показать сообщение полностью… @@ -91,6 +96,8 @@ Не удалось найти приложение для обработки этого типа данных. Браузер не установлен. Не удалось найти %1$s. + + Невозможно сохранить %1$s. Скопировано в буфер обмена. Контакты Адрес электронной почты @@ -168,7 +175,7 @@ %d выбрано %d выбрано - + Выбрано: Я Черновик Изображение @@ -212,6 +219,7 @@ Приложения URL селектора приложений Если установлено, URL будет использоваться в качестве селектора приложений вместо стандартного + Нажмите \"Отправить\", чтобы поделиться Домой Игры Инструменты @@ -250,14 +258,32 @@ Начать чат с… Клонировать чат - + Список рассылки + Списки рассылки + Новый список рассылки + + Канал + + Каналы + + Новый канал Добавить получателей + Редактировать список рассылки + Название списка рассылки + Введите название списка рассылки. + + Название канала + Электронная почта + + Новое письмо + + Тема Отправить Эмодзи клавиатура Редактировать группу @@ -267,6 +293,7 @@ Вернуть чат из архива Добавить вложение Покинуть группу + Покинуть канал Удалить чат Очистить чат @@ -293,6 +320,7 @@ Экспорт вложения Экспорт вложений Все медиафайлы + Все приложения и медиафайлы Показать в чате Показать приложение в чате @@ -350,6 +378,7 @@ Добавить на главный экран Пожертвовать + ❤️ Кажется, вам нравится Delta Chat!\n\nРассмотрите возможность сделать пожертвование, чтобы Delta Chat и дальше оставался бесплатным для всех пользователей.\n\nDelta Chat — это бесплатное приложение с открытым исходным кодом, но его разработка требует денег. Поддержите нас, чтобы сохранить независимость Delta Chat и сделать его ещё более крутым в будущем.\n\nhttps://delta.chat/donate На 1 час На 8 часов @@ -388,7 +417,8 @@ Вы приглашены в видеочат, нажмите %1$s, чтобы присоединиться. - Вы уверены, что хотите покинуть эту группу? + + Вы действительно хотите выйти? Удалить %d чат на всех ваших устройствах? Удалить %d чата на всех ваших устройствах? @@ -420,8 +450,10 @@ Создать чат с %1$s? Удалить %1$s из группы? - + Удалить %1$s из списка рассылки? + + Удалить %1$s из канала? Вы хотите открыть эту ссылку? @@ -457,7 +489,10 @@ Отправьте сообщение %1$s. + В списке рассылки получатели будут получать сообщения в чате с вами, доступном только для чтения. + + Каналы представляют собой инструмент одностороннего вещания ваших сообщений множеству получателей. Другие пользователи увидят эту группу только после того, как вы отправите первое сообщение. Смахните для отмены Нажмите и удерживайте для записи голосового сообщения, отпустите для отправки @@ -467,6 +502,7 @@ Сообщение Архивировано Запрос + Включать запросы в счётчики и уведомления Нет сообщений. Сообщения, отправленные себе Здесь можно просмотреть архивные чаты. @@ -565,7 +601,7 @@ Сетка квадратов Отправить сообщение - + %1$s меняет адрес с %2$s на %3$s Вы изменили свой адрес электронной почты с %1$s на %2$s.\n\nЕсли вы отправите сообщение в подтвержденную группу, контакты в ней автоматически обновят ваш старый адрес на новый.\n\nНастоятельно рекомендуется настроить старого поставщика электронной почты на пересылку всех писем на новый адрес. Иначе вы можете пропустить сообщения от контактов, которые еще не получили ваш новый адрес. @@ -836,6 +872,7 @@ %1$s сообщение Максимальная загрузка доступна до %1$s + Выбрать профиль Выбрать изображение профиля Выбрать новое изображение профиля Удалить изображение профиля @@ -922,8 +959,8 @@ Вы удалили участника %1$s. %2$s удаляет участника %1$s. - - Вы покинули группу. + + Вы покинули. %1$s покидает группу. Вы удалили изображение группы. @@ -938,40 +975,42 @@ Вы включили автоудаление сообщений через %1$s сек - %2$s включил(а) автоудаление сообщений через %1$s сек + %2$s включает автоудаление сообщений через %1$s сек Вы включили автоудаление сообщений через 1 минуту. - %1$s включил(а) автоудаление сообщений через 1 минуту. + %1$s включает автоудаление сообщений через 1 минуту. Вы включили автоудаление сообщений через 1 час. - %1$s включил(а) автоудаление сообщений через 1 час. + %1$s включает автоудаление сообщений через 1 час. Вы включили автоудаление сообщений через 1 день. - %1$s включил(а) автоудаление сообщений через 1 день. + %1$s включает автоудаление сообщений через 1 день. Вы включили автоудаление сообщений через 1 неделю. - %1$s включил(а) автоудаление сообщений через 1 неделю. + %1$s включает автоудаление сообщений через 1 неделю. Вы включили автоудаление сообщений через %1$s минут. - %2$s включил(а) автоудаление сообщений через %1$s минут. + %2$s включает автоудаление сообщений через %1$s минут. Вы включили автоудаление сообщений через %1$s часов. - %2$s включил(а) автоудаление сообщений через %1$s часов. + %2$s включает автоудаление сообщений через %1$s часов. Вы включили автоудаление сообщений через %1$s дней. - %2$s включил(а) автоудаление сообщений через %1$s дней. + %2$s включает автоудаление сообщений через %1$s дней. Вы включили автоудаление сообщений через %1$s недель. - %2$s включил(а) автоудаление сообщений через %1$s недель. - + %2$s включает автоудаление сообщений через %1$s недель. + %1$s отправил сообщение с другого устройства. - Теперь сообщения гарантированно шифруются сквозным шифрованием. Нажмите, чтобы узнать больше. - Теперь сообщения в этом чате гарантированно шифруются сквозным шифрованием.\n\nСквозное шифрование гарантирует, что сообщения остаются конфиденциальными между вами и вашими собеседниками. Даже ваш провайдер электронной почты не имеет доступа к ним. + Сообщения защищены сквозным шифрованием. Нажмите, чтобы узнать больше. + Все сообщения в этом чате защищены сквозным шифрованием.\n\nСквозное шифрование гарантирует, что сообщения остаются конфиденциальными между вами и вашими собеседниками. Ни серверы, ни провайдеры, ни ретрансляторы не смогут их прочитать. + %1$s отправил сообщение с другого устройства. Нажмите, чтобы узнать больше. + Сквозное шифрование больше не может быть гарантировано, вероятно, потому что %1$s переустановил Delta Chat или отправил сообщение с другого устройства.\n\nВы можете встретиться с ним лично и отсканировать QR-код снова чтобы восстановить гарантированное сквозное шифрование. ⚠️ %1$s требуется сквозное шифрование, которое ещё не настроено для данного чата. Нажмите, чтобы узнать больше. Чтобы установить сквозное шифрование, вы можете встретиться с контактами лично и отсканировать их QR-код, чтобы подтвердить их личность. @@ -1030,16 +1069,19 @@ %1$s приглашает вас в группу.\n\nОжидаем ответ от %2$s… %1$s ответил(а), ожидаем добавления в группу… - Устанавливается гарантированное сквозное шифрование, пожалуйста, подождите... + Устанавливается сквозное шифрование, пожалуйста, подождите… Не удалось установить гарантированное сквозное шифрование, но вы уже можете отправить сообщение. + Контакт должен быть в режиме онлайн, чтобы продолжить.\n\nЭтот процесс будет автоматически продолжен в фоновом режиме. %1$s подтверждён. - Невозможно установить гарантированное сквозное шифрование с %1$s. + + Невозможно установить сквозное шифрование с %1$s. Подтверждён: %1$s Подтверждён: Лично - + Подтверждён + Изменены настройки для %1$s Чтобы обеспечить сквозное шифрование, вы можете добавлять в эту группу только контакты с зеленой галочкой.\n\nВы можете встретиться с контактами лично и отсканировать их QR-код, чтобы подтвердить их личность. Выберите чат, чтобы отправить сообщение @@ -1083,7 +1125,7 @@ Отразить Вращать - + Зашифрованное сообщение @@ -1214,6 +1256,9 @@ Вы уже разрешили Delta Chat получать сообщения в фоновом режиме.\n\nЕсли сообщения не приходят в фоновом режиме, проверьте также системные настройки. + Что нового?\n\n💯 Сквозное шифрование стало постоянной и надёжной функцией. 🔒 Замков больше нет!\n\n✉️ Обычные письма без сквозного шифрования помечены значком конверта\n\n😻 Обновлённый экран профиля для всех контактов\n\n🔲 Новая кнопка быстрого доступа к приложениям, используемым в чате\n\n❤️ Поддержите нас финансово, чтобы мы сохранили независимость и продолжали вносить улучшения: %1$s + Что нового?\n\n❤️‍🔥 Обновленный выбор эмодзи с еще большим выбором эмодзи\n\n🎮 Расширенные приложения в чате: получайте уведомления и открывайте поддерживаемые приложения в нужном контексте, например, открывайте добавленную запись в календаре напрямую\n\n👍 Получайте уведомления о реакциях на ваши сообщения\n\n... 🛠️ ИСПРАВЛЕНИЯ и ЕЩЁ БОЛЬШЕ в %1$s + ℹ️ \"Сменить профиль\" перемещено: Нажмите на изображение вашего профиля в верхнем углу главного экрана, чтобы добавить или переключить профили. 💡 diff --git a/src/main/res/values-sc/strings.xml b/src/main/res/values-sc/strings.xml index df04eed01..ae5938b9b 100644 --- a/src/main/res/values-sc/strings.xml +++ b/src/main/res/values-sc/strings.xml @@ -215,8 +215,6 @@ Invitu a sa vìdeu-tzarrada Ses invitadu a una vìdeu-tzarrada. Incarca %1$s pro bi pigare parte. - - Ses seguru de chèrrere lassare custu grupu? Inoltrare su messàgiu a %1$s? Inoltrare messàgios a %1$d tzarradas? Esportare sos allegados? S\'esportatzione de sos allegados at a permìtere a cale si siat àtera aplicatzione in su dispositivu tuo de b\'atzèdere.\n\nSighire? diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml index 2db3c2c46..dc634137d 100644 --- a/src/main/res/values-sk/strings.xml +++ b/src/main/res/values-sk/strings.xml @@ -5,6 +5,10 @@ OK Zrušiť Zrušiť hľadanie + + Odkaz + + Skenovať Áno Nie Vybrať @@ -24,15 +28,24 @@ Spojiť Znovu spojiť Odstrániť + Odstrániť pre mňa + Odstrániť pre všetkých Informácia Aktualizovať Smajlíci Príloha + + Priložiť „%1$s“? Späť Zatvoriť + Zavrieť okno Vpred + Vytvoriť + Neskôr Znovu poslať + Upravená + Upraviť správu Archivovať @@ -43,10 +56,18 @@ Uložiť Konverzácia Médiá - Profil + Aplikácie a médiá + Účet + Všetky účty + Aktuálny účet Hlavné menu Začať konverzáciu Zobraziť celú správu ... + + Všetko prečítané + Označiť ako prečítané + + Prečítané Načítam… Skryť @@ -56,6 +77,7 @@ Na sledovanie vás možno použiť obrázky nadiaľku.\n\nToto nastavenie tiež umožňuje načítať písma a ďalší obsah. Aj keď je vypnutá, stále sa vám môžu zobrazovať vložené alebo uložené obrázky.\n\nNačítať vzdialené obrázky? Vždy Raz + Zobraziť varovanie Ukáž heslo Skryť heslo Teraz nie @@ -71,9 +93,11 @@ Nemôžem nájsť aplikáciu na spracovanie tohto typu údajov. Nie je nainštalovaný žiadny prehliadač. Nemohol nájsť %1$s. + + Nepodarilo sa uložiť %1$s. Skopírované do schránky. Kontakty - Emailová adresa + E-mailová adresa Zlá e-mailová adresa Heslo Existujúce heslo @@ -88,6 +112,8 @@ Minulý mesiac Naposledy videné o%1$s + + Naposledy online %1$s Naposledy videné: Neznáme @@ -121,6 +147,12 @@ %d správy %d správa + + %d reakcia + %d reakcie + %d reakcií + %d reakcií + %d používateľ %d používatelia @@ -140,7 +172,7 @@ %d vybraných %d vybraných - + Vybrané: Ja Návrh Obrázok @@ -149,6 +181,9 @@ Gif Nálepka + Pridať do zbierky nálepiek + Pre pridanie nálepiek, ťuknite na \"Otvoriť priečinok s nálepkami\", vytvorte priečinok pre svoju sadu nálepiek a prekopírujte doň nálepky + Otvoriť priečinok s nálepkami Snímky Zvuk Hlasová správa @@ -159,6 +194,7 @@ Video Dokumenty Kontakt + Bot Fotoaparát Zachytiť @@ -169,10 +205,18 @@ Obrázky a videá Súbor Súbory + + Vybrať zo súborov + Vybrať z galérie Súkromná aplikácia Súkromné aplikácie + Domov + Hry + Nástroje + Veľkosť + Pridať do konverzácie Neznáme Zelená @@ -196,13 +240,30 @@ Nový kontakt + Pridať kontakt ručne Nová konverzácia Nová skupina - + Kopírovať konverzáciu + Zoznam Rozosielania + Zoznamy Rozosielania + Nový Zoznam Rozosielania + + Kanál + + Kanály + + Nový kanál Pridať Príjemcov + + Názov kanálu + E-mail + + Nový e-mail + + Predmet Poslať Prepnúť klávesnicu emodži Upraviť skupinu @@ -212,17 +273,25 @@ Zrušiť archiváciu konverzácie Pridať prílohu Opustiť skupinu + Opustiť kanál Odstrániť konverzáciu + + Vyčistiť konverzáciu Odstrániť kontakt Odstrániť toto miesto? Podrobnosti správy Skopírovať do schránky + Pozvať priateľov + + Kontaktujte ma na Delta Chat: +%1$s Kopírovať výber Skopírovať odkaz Kopírovať text Kopírovať obrázok - Kopírovať E-Mail + Kopírovať e-mail Prilepiť zo schránky + Odkaz \"%1$d\" nie je možné otvoriť vo webovom prehliadači. Chcete ho skopírovať do schránky? Preposlať správu Odpovedať na správu Ignorovať upozornenia @@ -230,8 +299,10 @@ Exportovať prílohu Exportovať príloh Všetky médiá + Všetky aplikácie a médiá Zobraziť v konverzácií + Zobraziť aplikáciu v konverzácii Zdieľam Blokovať @@ -243,13 +314,19 @@ Posuňte sa nadol Prejdite hore Pomocník + Čo je Webxdc? Zásady súkromia Vybrať všetko + Vybrať konverzáciu Vyberte viac Upraviť meno + + Nastavte prezývku, ktorá sa vám bude zobrazovať miesto \"%1$s\". Ak neuvediete prezývku, použije sa meno kontaktu. + + Prezývka pre \"%1$s\" Nastavenia Pokročilé - Prezrieť profil + Zobraziť účet Priblížiť Oddialiť Uložiť záznam @@ -257,6 +334,7 @@ Naučiť sa pravopis Auditovací protokol konverzácie Prejsť na správu + Zobraziť pôvodnú správu Kopírovať JSON Nahradiť koncept Zdieľať polohu so všetkými členmi skupiny @@ -277,6 +355,7 @@ Zdrojový kód Pridať na domovskú obrazovku + Prispieť Stíšiť na 1 hodinu Stíšiť na 8 hodiny Stíšiť na 1 deň @@ -313,8 +392,20 @@ Pozvánka na videohovor Ste pozvaní na videohovor, kliknutím %1$s sa pripojíte. - - Naozaj chcete opustiť túto skupinu? + + Odstrániť %d konverzáciu zo všetkých vašich zariadení? + Odstrániť %d konverzácie zo všetkých vašich zariadení? + Odstrániť %d konverzácii zo všetkých vašich zariadení? + Odstrániť %d konverzácii zo všetkých vašich zariadení? + + Odstrániť konverzáciu \"%1$s\" zo všetkých vašich zariadení? + Odstrániť túto správu zo všetkých vašich zariadení? + + Odstrániť %d správu zo všetkých vašich zariadení? + Odstrániť %d správy zo všetkých vašich zariadení? + Odstrániť %d správ zo všetkých vašich zariadení? + Odstrániť %d správ zo všetkých vašich zariadení? + Odstrániť %d správu? @@ -332,8 +423,10 @@ Písať si s %1$s? Odstrániť %1$s zo skupiny? - + Odstrániť %1$s zo zoznamu rozosielania? + + Odstrániť %1$s z kanálu? Chcete otvoriť tento odkaz? @@ -404,6 +497,10 @@ Spustiť... Prosím, najprv prijmite požiadavku na konverzáciu. + + Poslať \"%1$s\"... + + Poslať správu... Zobraziť polohy v časovom rámci Zobraziť stopy @@ -426,8 +523,14 @@ Vyhľadávanie + Hľadať v konverzácii + Hľadať súbory Vyhľadajte konverzácie, kontakty a správy Neboli nájdené žiadne výsledky pre \"%s\" + + Neprečítané + + Názov skupiny Obrázok skupiny @@ -453,8 +556,31 @@ Tu sú zobrazené súkromné aplikácie zdieľané v rámci tejto konverzácie. Ukážka pre médiá Odoslanie správy - + %1$s zmenil(a) svoju adresu z %2$s na %3$s + + + Pridať ďalšie zariadenie + Uistite sa, že obe zariadenia sú na rovnakej Wi-Fi sieti. + Nainštalujte Delta Chat na vašom ďalšom zariadení (https://get.delta.chat) + + Otvorte Delta Chat, ťuknite na \"Existujúci účet / Pridať ako ďalšie zariadenie\" a naskenujte zobrazený kód + + Naskenujte pre nastavenie ďalšieho zariadenia pre %1$s + Pridať ako ďalšie zariadenie + Na pôvodnom zariadení, choďte do \"Nastavenia / Pridať ďalšie zariadenie\" a naskenujte zobrazený kód + Skopírovať účet na toto zariadenie? + Účet, ktorý sa snažíte importovať bol vytvorený novšou verziou Delta Chat. + +Ak chcete pokračovať, aktualizujte toto zariadenie na najnovšiu verziu Delta Chat. + Zrušiť pridávanie nového zariadenia? + ℹ️ Účet pridaný do ďalšieho zariadenia. + + Pripravuje sa účet... + + Prenos dát... + Riešenie problémov + Prichádzajúce Správy @@ -480,6 +606,26 @@ %1$s z %2$svyužitých + + + Nový účet + + Existujúci účet + + Použiť bežné e-mailové konto + + Váš účet + + Zásady ochrany osobných údajov na %1$s + + O účtoch na %1$s + + Súhlasím, vytvoriť účet + + Použiť iný server + Zoznam Chatmail serverov + + Chcete vytvoriť nový účet a začať konverzáciu s %1$s? Skenovať kód pozvánky Prihlásiť sa Prihláste sa na server @@ -498,6 +644,20 @@ Port SMTP Zabezpečenie SMTP Metóda autorizácie + + Proxy + Použiť proxy + Pridať proxy + Podporované typy proxy serverov: HTTP(S), SOCKS5 and Shadowsocks. + Sem vložte odkaz na proxy server + Neplatný alebo nepodporovaný proxy server + Uložené proxy servery + Odstrániť proxy + Naozaj chcete odstrániť \"%1$s\"? + Chcete použiť proxy \"%1$s\"? + Vaši priatelia si môžu pridať túto proxy naskenovaním QR kódu. + Zdieľať odkaz + Pokračovať v zjednodušenom nastavovaní? Zadaná e-mailová adresa podporuje zjednodušené nastavenie (OAuth 2.0).\n\nV ďalšom kroku povoľte aplikácii Delta Chat, aby fungovala ako vaša aplikácia Chat cez e-mail.\n\nNie sú k dispozícii servery Delta Chat, vaše dáta zostanú vo vašom zariadení . Osvedčovacie kontroly @@ -517,8 +677,8 @@ Odstrániť účet Naozaj chcete odstrániť údaje svojho účtu? Budú odstránené všetky údaje účtu používateľa „%s“ z tohto zariadenia vrátane vášho kompletného nastavenia šifrovania, kontaktov, konverzácií, správ a médií. Túto akciu nie je možné vrátiť späť. - Nekonfigurovaný účet - Otvorte účet aby ste ho nakonfigurovali. + Nenastavený účet + Otvoriť účet pre nastavenie. Skúste sa teraz pripojiť Synchronizovať Všetko @@ -535,7 +695,7 @@ Používa sa vlastné: %s Používa sa predvolené nastavenie: %s - Informácie o vašom profile + Informácie o vašom účte Profilový obrázok Blokované kontakty Ak zablokujete kontakty, zobrazia sa tu. @@ -572,11 +732,14 @@ Vzhľad Motív Jazyk + Používať systémový štýl písma Inkognito klávesnica Požiadajte o klávesnicu, aby deaktivovala prispôsobené učenie Prečítajte si potvrdenia Ak sú potvrdenia o prečítaní zakázané, neuvidíte potvrdenia o prečítaní od ostatných. + Server + Šifrovanie Správa kľúčov Používajte systémové emodži Vypnite vstavanú podporu emodži v aplikácii Delta Chat @@ -590,6 +753,10 @@ Zálohovanie Zálohujte konverzácie na externé úložisko Záloha vám pomôže nastaviť novú inštaláciu na tomto alebo na inom zariadení.\n\nZáloha bude obsahovať všetky správy, kontakty a konverzácie a vaše úplné nastavenie automatického šifrovania. Uložte záložný súbor na bezpečnom mieste alebo ho čo najskôr odstráňte. + + Exportovať %1$s + + Exportovať %1$d účty/účtov Spustiť zálohovanie Záloha bola úspešne zapísaná do priečinka „%1$s“. Správa kľúčov @@ -635,11 +802,15 @@ %1$s správa Maximálny počet stiahnutí k dispozícii do %1$s + Vybrať účet Vyberte profilový obrázok Vyberte svoj nový profilový obrázok Odstrániť profilový obrázok Zobraziť ikonu v systémovej lište - Upraviť profil + Upraviť účet + Zasielať štatistické údaje Delta Chat vývojárom + + Výsledky vyhľadávania Nenašli sa žiadne emodži @@ -653,6 +824,15 @@ Symboly Vlajky + + Reakcie + + Pridať reakciu + + Reagovali ste %1$s na \"%2$s\" + + %1$s reagoval/a %2$s na \"%3$s\" + Odstraňovať staré správy Odstráňte správy zo zariadenia @@ -701,8 +881,8 @@ Člen %1$s bol odstránený mnou. Člen %1$s bol odstránený od %2$s. - - Opustili ste skupinu + + Opustili ste konverzáciu. Skupinu opustil(a) %1$s. Odstránili ste obrázok skupiny. @@ -746,6 +926,9 @@ Časovač zmiznutia správ nastavený na %1$s týždne mnou. Časovač zmiznutia správ nastavený na %1$s týždne od %2$s. + Správy sú šifrované. Ťuknite pre viac informácií. + Zistiť viac + Odstránili ste konverzáciu \"Uložené správy\".\n\nℹ️ Aby ste využili funkciu \"Uložené správy\" znova, vytvorte novú konverzáciu so sebou. ⚠️ Úložisko vašeho poskytovateľa čoskoro prekročí limit, už%1$s%% sú využité.\n\n Je možné, že nebudete môcť prijímať správy, ak bude úložisko 100 %% využité.\n\n👉 Prosím skontrolujte, či môžete vo webovom rozhraní poskytovateľa vymazať staré údaje, a zvážte aktiváciu „Nastavenia / Odstrániť Staré Správy“. Aktuálne využitie úložiska si môžete kedykoľvek skontrolovať v časti „Nastavenia / Pripojenie“. @@ -785,18 +968,27 @@ Naskenujte a vytvorte kontakt s %1$s . Nie je pripojenie na internet, nedá sa nastaviť kód QR. - Vytvoriť novú e-mailovú adresu na „%1$s“ a prihlásiť sa tam? - Vytvorte novú e-mailovú adresu na „%1$s“ a prihláste sa tam?\n\nVáš existujúci účet nebude odstránený. Medzi položkami môžete prepínať pomocou položky „Prepnúť účet“. + Vytvoriť nový účet na „%1$s“ a prihlásiť sa? + Vytvoriť nový účet na „%1$s“ a prihlásiť sa? + +Váš existujúci účet nebude odstránený. Medzi účtami môžete prepínať pomocou „Prepnúť účet“. + Prosím, zadajte meno. Naskenovaný QR kód nie je možné použiť na založenie nového účtu. Prihlásiť sa na \"%1$s\"? + + Prihlásiť sa do „%1$s“? + +Váš existujúci účet nebude odstránený. Medzi účtami môžete prepínať pomocou „Prepnúť účet“. %1$s vás pozval, aby ste sa pripojili k tejto skupine.\n\nČaká sa na odpoveď zo zariadenia používateľa %2$s... %1$sodpovedal a čaká sa na pridanie do skupiny... + Nadväzovanie šifrovaného spojenia, počkajte prosím... %1$s overené. + Cannot verify %1$s. - + Zmena nastavenia pre %1$s. Vyberte konverzáciu, kam bude správa odoslaná @@ -812,6 +1004,9 @@ Meno a správa Iba meno Žiadne meno ani správa + Nové správy + + Máte nové správy Vyžaduje sa povolenie ďalej @@ -830,7 +1025,7 @@ Preklopiť Otočiť - + Zašifrovaná správa @@ -851,6 +1046,7 @@ Vývojár Nástroje pre vývojárov Pomocník + Stránka Delta Chat Nahlásiť problém O spoločnosti Delta Chat Otvoriť Delta Chat @@ -921,6 +1117,7 @@ V priemere každých %1$d minút V priemere každých %1$d hodín Skontrolované %1$s + Systémové nastavenia Delta Chat používa váš fotoaparát na snímanie a odosielanie fotografií a videí a na skenovanie QR kódov. Delta Chat používa vaše kontakty na zobrazenie zoznamu e-mailových adries, na ktoré môžete písať. Delta Chat nemá žiadny server, vaše kontakty sa nikam neposielajú. diff --git a/src/main/res/values-sq/strings.xml b/src/main/res/values-sq/strings.xml index bf0fba032..9c49334cc 100644 --- a/src/main/res/values-sq/strings.xml +++ b/src/main/res/values-sq/strings.xml @@ -34,6 +34,8 @@ Përditësoje Emoji Bashkëngjitje + + Të bashkëngjitet “%1$s”? Mbrapsht Mbylle Mbylle Dritaren @@ -55,7 +57,10 @@ Ruaje Fjalosje Media + Aplikacione & Media Profil + Krejt Profilet + Profili i Tanishëm Menuja Kryesore Nisni Fjalosje Shfaq Mesazhin e Plotë… @@ -90,6 +95,8 @@ S\’gjendet dot një aplikacion për trajtimin e këtij lloji të dhënash. S\’ka shfletues të instaluar. S\’u gjet dot %1$s. + + S’ruhet dot %1$s. U kopjua në të papastër. Kontakte Adresë Email @@ -149,7 +156,7 @@ %d e Përzgjedhur %d të Përzgjedhur - + Të përzgjedhur: Unë Skicë Figurë @@ -191,6 +198,7 @@ Aplikacione URL Marrësi Aplikacioni Në u ujdistë, URL-ja do të përdoret si Marrës Aplikacioni, në vend të atij parazgjedhje + Për ta ndarë me të tjerë, prekni “Dërgoje” Kreu Lojëra Mjete @@ -228,13 +236,18 @@ Bisedoni me… Klononi Fjalosjen - + Listë Transmetimi + Lista Transmetimi + Listë e Re Transmetimi Shtoni Marrës + Përpunoni Listë Transmetimesh + Emër Liste Transmetimesh + Ju lutemi, jepni një emër për listën e transmetimeve Dërgoje Shfaq/fshih Tastierë Emoji-sh @@ -271,6 +284,7 @@ Eksporto Bashkëngjitje Eksporto Bashkëngjitje Krejt Mediat + Krejt Aplikacionet & Mediat Shfaqe në Fjalosje Shfaqe Aplikacionin në Fjalosje @@ -328,7 +342,6 @@ Shtoje te Skena e Kreut Dhuroni - Heshtoji për 1 orë Heshtoje për 8 orë Heshtoji për 1 ditë @@ -363,8 +376,6 @@ Ftesë për fjalosje me video Jeni ftuar në një fjalosje video, klikoni mbi %1$s që të hyni në të. - - Jeni i sigurt se doni ta braktisni këtë grup? Të fshihet %d fjalosje në krejt pajisjet tuaja? Të fshihen %d fjalosje në krejt pajisjet tuaja? @@ -390,7 +401,7 @@ Të bisedohet me %1$s? Të hiqet %1$s nga grupi? - + Të hiqen %1$s prej liste transmetimi? Doni të hapet kjo lidhje? @@ -421,6 +432,7 @@ Dërgoni një mesazh për %1$s. + Në një listë transmetimesh, marrësit do të marrin mesazhe në një fjalosje të llojit “vetëm lexim” me ju. Të tjerët do ta shohin këtë grup pasi të keni dërguar një mesazh të parë. Rrëshqiteni që të anulohet @@ -431,6 +443,7 @@ Mesazh Arkivuar Kërkesë + Përfshi kërkesa në numëratorë dhe njoftime S\’ka mesazhe. Mesazhe Vetes Nëse arkivoni fjalosje, ato do të shfaqen këtu. @@ -528,7 +541,7 @@ Mozaik Katror Dërgo Mesazh - + %1$s ndryshoi adresën e vet nga %2$s në %3$s Ndryshuat adresën tuaj nga %1$s në %2$s.\n\nNëse dërgoni tani një mesazh te një grup i verifikuar, kontaktet atje do të zëvendësojnë automatikisht adresën tuaj të vjetër me të renë.\n\nËshtë tejet e këshillueshme të ujdisni shërbimin tuaj të vjetër të email-it të përcjellë krejt email-et te adresa juaj e re email. Përndryshe, mund të humbni mesazhe të kontakteve që s’e kanë marrë ende adresën tuaj të re. @@ -798,6 +811,7 @@ Mesazh %1$s Shkarko maksimumin e mundshëm deri më %1$s + Përzgjidhni Profil Përzgjidhni Figurë Profili Përzgjidhni figurën tuaj të re të profilit Fshini Figurën e Profilit @@ -884,8 +898,6 @@ Hoqët anëtarin %1$s. Anëtari %1$s u hoq nga %2$s. - - E braktisët grupin. Grupi u braktis nga %1$s. Fshitë figurën e grupit. @@ -929,11 +941,13 @@ E vutë kohëmatësin e zhdukjes së mesazheve në %1$s javë. Kohëmatësi i zhdukjes së mesazheve u vu në %1$s javë nga %2$s. - + %1$s dërgoi një mesazh nga një pajisje tjetër. Nga sot e tutje për mesazhet garantohet fshehtëzimi skaj-më-skaj. Prekeni, që të mësoni më tepër. Tanimë për mesazhet në këtë fjalosje garantohet fshehtëzimi skaj-më-skaj.\n\nFshehtëzimi skaj-më-skaj i mban private mesazhet mes jush dhe partnerëve tuaj të fjalosjes. Ato s’mund t’i lexojë as furnizuesi i shërbimit tuaj email. + %1$s dërgoi një mesazh nga një pajisje tjetër. Prekeni, që të mësoni më tepër. + Fshehtëzimi skaj-më-skaj s’mund të garantohet më, ngaqë, sipas gjasash, %1$s riinstaloi Delta Chat-in, ose dërgoi një mesazh nga një tjetër pajisje.\n\nMund ta takoni dhe të skanoni sërish KODIN e tij QR, që të rivendoset fshehtëzim skaj-më-skaj i garantuar. ⚠️ %1$s lyp fshehtëzim, i cili s’është ujdisur ende për këtë fjalosje. Që të mësoni më tepër, prekeni. Për të vendosur fshehtëzim skaj-më-skaj, mund të takoheni personalisht me kontaktet dhe të skanoni kodin e tyre QR, për t’i pranuar. @@ -995,13 +1009,15 @@ Po vendoset fshehtëzim skaj-më-skaj i garantuar, ju lutemi, pritni… S’u vendos dot fshehtëzim skaj-më-skaj i garantuar, por mundeni tashmë të dërgoni një mesazh. + Duket se po zgjat ca, mos ndoshta kontakti juaj, ose vetë ju s’jeni lidhur në internet.\n\nSidoqoftë, procesi vazhdon në prapaskenë, mund të merreni me diçka tjetër… %1$s u verifikua. + S’vendoset dot fshehtëzim i garantuar skaj-më-skaj me %1$s. Sjellë nga %1$s Sjellë nga unë - + U ndryshua udjisja për %1$s Që të garantohet fshehtëzim skaj-më-skaj, mund të shtoni në këtë grup vetëm kontakte me shenjën e gjelbër të verifikimit.\n\nMund të takoheni drejtpërsëdrejti me kontakte të paverifikuar dhe të skanoni kodin e tyre QR për t’i verifikuar ata. Përzgjidhni fjalosje ku të dërgohet mesazhi @@ -1045,7 +1061,7 @@ Ktheje në anë tjetër Rrotulloje - + Mesazh i fshehtëzuar @@ -1171,7 +1187,8 @@ Prekeni këtu që të merrni mesazhe, teksa Delta Chat rri në prapaskenë. E keni lejuar tashmë Delta Chat-in të marrë mesazhe në prapaskenë.\n\nNëse mesazhet prapë nuk mbërrijnë në prapaskenë, ju lutemi, kontrolloni edhe rregullimet e sistemit tuaj. - + Ç’ka të re?\n\n❤️‍🔥 Zgjedhës i ri emoji-sh, me më shumë të tillë\n\n🎮 Zgjerim aplikacionesh brenda fjalosjesh: Merrni njoftim dhe hapni aplikacionet përkatës sipas kontekstit, p.sh., hapni drejtpërdrejt një zë të saposhtuar kalendari\n\n👍 Merrni njoftim mbi reagime te mesazhet tuaj\n\n… 🛠️ NDREQJE DHE MË TEPËR te %1$s + ℹ️ Mundësia “Ndërroni Profil” u hoq: Që të shtoni, ose ndërroni profile, prekni figurën e profilit tuaj në cepin e sipërm të skenës kryesore 💡 diff --git a/src/main/res/values-sr/strings.xml b/src/main/res/values-sr/strings.xml index c0122e936..cfd6dcbff 100644 --- a/src/main/res/values-sr/strings.xml +++ b/src/main/res/values-sr/strings.xml @@ -139,7 +139,6 @@ означено: %d означено: %d - Ја Нацрт Слика @@ -198,9 +197,11 @@ Нови контакт Ново ћаскање Нова група - + Листа за емитовање + Листе за емитовање + Нова листа за емитовање Додај примаоце Пошаљи @@ -315,8 +316,6 @@ Позив за видео ћаскање Позвани сте у видео ћаскање, кликни %1$sда придружиш. - - Да ли заиста желите да напустите ову групу? Да ли желите да избришите %d поруку? @@ -333,7 +332,7 @@ Да ли желите да ћаскате са %1$s? Да ли желите да уклонитите %1$s из групе? - + Да ли желите да уклоните %1$s са листе за емитовање? Да ли желите да отворите ову везу? @@ -452,7 +451,7 @@ Приватне апликације примљене или послате у било ком ћаскању ће се појавити овде. Преглед медијума Пошаљи поруку - + %1$sје променио њихову адресу %2$sу %3$s Ви сте променили вашу имејл адресу %1$sу %2$s.\n\nАко сада пошаљете поруку провереној групи, тамошњи контакти ће аутоматски заменити стару адресу новом.\n\nПрепоручљиво је да подесите свог предходног имејл провајдера да прослеђује све имејл поруке на вашу нову имејл адресу. У супротном бисте могли да пропустите поруке од контаката који још нису добили вашу нову адресу. @@ -704,8 +703,6 @@ Члан %1$s је уклоњен од мене. Члан %1$s је уклоњен од стране %2$s. - - Напустили сте групу. %1$s је напустио групу. Ви сте обрисали слику групе. @@ -800,10 +797,11 @@ %1$s је одговорио и чека да буде додат у групу... %1$s потврђен. + Немогуће је проверити %1$s. Проверено од %1$s - + Подешавања су се променила за %1$s. Изабери ћаскање у које желите да пошаљете поруку @@ -837,7 +835,7 @@ Окрени Обрни - + Шифрована порука diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml index e0ad806b5..e9525947c 100644 --- a/src/main/res/values-sv/strings.xml +++ b/src/main/res/values-sv/strings.xml @@ -136,7 +136,6 @@ %dmarkerade %d markerad - Jag Utkast Bild @@ -202,13 +201,18 @@ Ny chatt Ny grupp Klona chatt - + Sändlista + Sändlistor + Ny sändlista Lägg till mottagare + Redigera sändlista + Sändlistans namn + Ange ett namn på sändlistan Skicka Byt emoji-tangentbord @@ -296,7 +300,6 @@ Lägg till på hemskärmen Donera - Tysta 1 timma Tysta 8 timmar Tysta 1 dag @@ -331,8 +334,6 @@ Videochattinbjudan Du är inbjuden till en videochatt, klicka på %1$s för att ansluta. - - Är du säker på att du vill lämna den här gruppen? Vill du ta bort %d meddelande? @@ -348,7 +349,7 @@ Chatta med %1$s ? Ta bort %1$s från gruppen? - + Vill du ta bort %1$s från sändlistan? Vill du öppna denna länk? @@ -379,6 +380,7 @@ Skicka ett meddelande till %1$s. + I en sändlista kommer mottagarna att få meddelanden i en skrivskyddad chatt med dig. Komponera det första meddelandet, så att andra kan svara inom denna grupp.\n\n• Det är okej om inte alla medlemmar använder Delta Chat.\n\n• Det kan ta en stund innan det första meddelandet levereras. Svep för att avbryta @@ -477,7 +479,7 @@ Kvadratiskt rutnät Skicka meddelande - + %1$s ändrade sin adress från %2$s till %3$s Du har ändrat din e-postadress från %1$s till %2$s.\n\nOm du nu skickar ett meddelande till en verifierad grupp kommer kontakterna där automatiskt att ersätta den gamla med din nya adress. Vi rekommenderar starkt att du ställer in din gamla e-postleverantör så att den vidarebefordrar alla e-postmeddelanden till din nya e-postadress. Annars kan du missa meddelanden från kontakter som inte har fått din nya adress ännu. @@ -807,8 +809,6 @@ Medlemmen %1$s togs bort av mig. Medlemmen %1$s togs bort av %2$s. - - Du lämnade gruppen. Gruppen lämnades av %1$s. Gruppbilden togs bort av mig. @@ -852,11 +852,13 @@ Du satte tiduret för meddelandeborttagning till %1$s veckor. Tiduret för meddelandeborttagning är satt till %1$s veckor av %2$s. - + %1$s skickade ett meddelande från en annan enhet. Meddelanden är garanterat totalsträckskrypterade från och med nu. Tryck för att få veta mer. Det är nu garanterat att alla meddelanden i den här chatten är totalsträckskrypterade.\n\nTotalsträckskryptering håller meddelanden privata mellan dig och dina chattpartners. Inte ens din e-postleverantör kan läsa dem. + %1$s skickade ett meddelande från en annan enhet. Tryck för att läsa mer. + Totalsträckskryptering kan inte garanteras längre, troligen för att %1$s installerade om Delta Chat eller skickade ett meddelande från en annan enhet.\n\nDu kan träffa dem personligen och skanna deras QR-kod igen för att återupprätta garanterad totalsträckskryptering. ⚠️ %1$s kräver totalsträckskryptering som inte är kofigurerad för den här chatten ännu. Tryck för att lära dig mer. För att skapa totalsträckskryptering kan du träffa kontakter personligen och skanna deras QR-kod för att introducera dem. @@ -919,11 +921,12 @@ Kunde ännu inte upprätta garanterad totalsträckskryptering, men du kan redan skicka ett meddelande. %1$s verifierad. + Kan inte verifiera %1$s. Introducerad av %1$s Introducerad av mig - + Ändrade inställningarna för %1$s. För att garantera totalsträckskryptering kan du bara lägga till kontakter med en grön bock i den här gruppen.\n\nDu kan träffa kontakter personligen och skanna deras QR-kod för att introducera dem. Välj chatt för att skicka meddelandet till @@ -967,7 +970,7 @@ Vänd Rotera - + Krypterat meddelande @@ -1078,5 +1081,6 @@ Tryck här för att ta emot meddelanden medan Delta Chat är i bakgrunden. Du har redan gett Delta Chatt tillstånd att ta emot meddelanden i bakgrunden.\n\nKontrollera dina systeminställningar också, om det fortfarande inte kommer några meddelanden i bakgrunden. + ℹ️ Alternativet \"Byt profil\" har flyttats: Tryck på din profilbild i det övre hörnet av huvudskärmen för att lägga till eller byta profil 💡 diff --git a/src/main/res/values-ta/strings.xml b/src/main/res/values-ta/strings.xml index ec04ec6fd..f8e7b3ad9 100644 --- a/src/main/res/values-ta/strings.xml +++ b/src/main/res/values-ta/strings.xml @@ -144,8 +144,6 @@ 2 மணிகள் 6 மணிகள் - - இந்த குழுவில் இருந்து வெளியேறவா ? தேர்வு செய்யப்பட்ட செய்திகளை இவற்றுக்கு %1$s முன்னோக்கி அனுப்பவா ? இந்த தொடர்பை முடக்கவா ? @@ -228,7 +226,7 @@ அனுமதி தேவை தொடர் - + மறைகுறியாக்கப்பட்ட செய்தி Delta Chat க்கு வரவேற்கிறது. diff --git a/src/main/res/values-te/strings.xml b/src/main/res/values-te/strings.xml index aa428fe4b..d259b061d 100644 --- a/src/main/res/values-te/strings.xml +++ b/src/main/res/values-te/strings.xml @@ -120,8 +120,6 @@ 8 గంటలు నిశబ్దంగా ఉంచు 1 రోజు నిశబ్దంగా ఉంచు 7 రోజులు నిశబ్దంగా ఉంచు - - మీరు ఈ సమూహాన్ని వదిలిపెట్టాలనుకుంటున్నారా? సందేశాలు %1$s ఫార్వర్డ్ చేయాలా? మీరు ఈ పరిచయాన్ని రద్దుచేయాలని నిర్ణయించుకున్నారా? @@ -197,7 +195,7 @@ అనుమతి అవసరం కొనసాగించు - + ఎంక్రిప్ట్ చెసిన సందేశం Delta Chat కి స్వాగతం. diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml index db44910a9..ec784079a 100644 --- a/src/main/res/values-tr/strings.xml +++ b/src/main/res/values-tr/strings.xml @@ -34,6 +34,8 @@ Güncelleştir Emoji İlişik + + “%1$s” iliştirilsin mi? Geri Kapat Pencereyi Kapat @@ -56,7 +58,10 @@ Kaydet Sohbet Ortam + Uygulamalar ve Ortamlar Profil + Tüm Profiller + Şu Anki Profil Ana Menü Sohbet Başlat Tam İletiyi Göster… @@ -91,6 +96,8 @@ Bu veri türünü işleyen bir uygulama bulunamıyor. Kurulu tarayıcı yok. %1$s bulunamadı. + + %1$s kaydedilemiyor. Panoya kopyalandı. Kişiler E-Posta Adresi @@ -150,7 +157,7 @@ %d Seçildi %d Seçildi - + Seçilen: Ben Taslak Görsel @@ -194,6 +201,7 @@ Uygulamalar Uygulama Seçici URL\'si Ayarlanırsa URL, varsayılan birinin yerine Uygulama Seçici olarak kullanılacak + Paylaşmak için “Gönder”e dokunun Ana Sayfa Oyunlar Araçlar @@ -232,14 +240,32 @@ Sohbet et… Sohbeti Çoğalt - + Yayın Listesi + Yayın Listeleri + Yeni Yayın Listesi + + Kanal + + Kanallar + + Yeni Kanal Alıcılar Ekle + Yayın Listesini Düzenle + Yayın Listesi Adı + Lütfen yayın listesi için bir ad girin. + + Kanal Adı + E-Posta + + Yeni E-Posta + + Konu Gönder Emoji Klavyesine Geç Öbeği Düzenle @@ -249,6 +275,7 @@ Sohbeti Arşivleme İlişik Ekle Öbekten Ayrıl + Kanaldan Ayrıl Sohbeti Sil Sohbeti Temizle @@ -275,6 +302,7 @@ İlişiği Dışa Aktar İlişikleri Dışa Aktar Tüm Ortamlar + Tüm Uygulamalar ve Ortamlar Sohbette Göster Uygulamayı Sohbette Göster @@ -332,6 +360,7 @@ Ana Ekrana Ekle Bağış + ❤️ Delta Chat\'in tadını çıkarıyor gibisiniz!\n\nDelta Chat\'in herkes için ücretsiz kalmasını sağlamak için lütfen bağış yapmayı düşünün.\n\nDelta Chat, kullanımı ücretsiz ve açık kaynaklıdır, geliştirme paraya mâl olur. Delta Chat\'in bağımsızlığını korumak ve onu gelecekte daha da harika yapmak için bize yardımcı olun.\n\nhttps://delta.chat/donate 1 saatliğine sessize al 8 saatliğine sessize al @@ -368,7 +397,8 @@ Bir video sohbetine çağrıldınız; katılmak için %1$s öğesini tıklayın. - Bu öbekten ayrılmak istediğinizden emin misiniz? + + Ayrılmak istediğinizden emin misiniz? Tüm aygıtlarınızdaki %d sohbet silinsin mi? Tüm aygıtlarınızdaki %d sohbet silinsin mi? @@ -394,8 +424,10 @@ %1$s ile sohbet edilsin mi? %1$s öbekten kaldırılsın mı? - + %1$s yayın listesinden kaldırılsın mı? + + %1$s kanaldan kaldırılsın mı? Bu bağlantıyı açmak istiyor musunuz? @@ -425,7 +457,10 @@ %1$s kişisine bir ileti gönderin. + Bir yayın listesinde, alıcılar sizinle salt okunur bir sohbette iletiler alacak. + + Kanallar, iletilerinizi yayınlamak için birden çoğa bir araçtır. Diğerleri, yalnızca siz bir ilk ileti gönderdikten sonra bu öbeği görecek. İptal etmek için kaydırın Bir sesli ileti kaydetmek için dokunun ve basılı tutun, göndermek için bırakın @@ -435,6 +470,7 @@ İleti Arşivlenen İstek + Sayaçlarda ve bildirimlerde istekleri kapsa İleti yok. Kendime İletiler Arşivlenen sohbetler burada görünecek. @@ -466,7 +502,7 @@ İletiyi gönder… Gerçek Zamanlı Uygulamalar - Sohbetlerde paylaşılan uygulamalar için gerçek zamanlı bağlantıları etkinleştirin. Etkinleştirilirse, bir uygulama başlattığınızda sohbet ortakları IP adresinizi bulabilir. + Sohbetlere iliştirilen uygulamalar için gerçek zamanlı bağlantıları etkinleştirin. Etkinleştirilirse, bir uygulamayı başlattığınızda sohbet ortakları IP adresinizi keşfedebilir. Konumları zaman çerçevesinde göster @@ -508,7 +544,7 @@ Üyeler Ekle Bu eylemi gerçekleştirmek için öbeğin bir üyesi olmalısınız. Şifreleme - Paylaşılan Sohbetler + Ortak\'taki Sohbetler İlgili Sohbetler Geçmişteki Üyeler @@ -518,22 +554,22 @@ Belgeler Bağlantılar Harita - Bu sohbette paylaşılan görseller ve videolar burada görünecek. - Bu sohbette paylaşılan belgeler ve diğer dosyalar burada görünecek. - Bu sohbette paylaşılan görseller burada görünecek. - Bu sohbette paylaşılan videolar burada görünecek. - Bu sohbette paylaşılan ses dosyaları ve sesli iletiler burada görünecek. - Bu sohbette paylaşılan uygulamalar burada görünecek. - Herhangi bir sohbette paylaşılan ortamlar burada görünecek. - Herhangi bir sohbette paylaşılan belgeler ve diğer dosyalar burada görünecek. - Herhangi bir sohbette paylaşılan uygulamalar burada görünecek. + Bu sohbete iliştirilen görseller ve videolar burada görünecek. + Bu sohbete iliştirilen belgeler ve diğer dosyalar burada görünecek. + Bu sohbete iliştirilen görseller burada görünecek. + Bu sohbete iliştirilen videolar burada görünecek. + Bu sohbete iliştirilen ses dosyaları ve sesli iletiler burada görünecek. + Bu sohbete iliştirilen uygulamalar burada görünecek. + Herhangi bir sohbete iliştirilen ortamlar burada görünecek. + Herhangi bir sohbete iliştirilen belgeler ve diğer dosyalar burada görünecek. + Herhangi bir sohbete iliştirilen uygulamalar burada görünecek. Ortam Önizlemesi En Boy Oranı Izgarası Kare Izgara İleti Gönder - + %1$s, %2$s adresini %3$s olarak değiştirdi %1$s e-posta adresinizi %2$s olarak değiştirdiniz.\n\nŞimdi bir doğrulanan öbeğe ileti gönderirseniz, oradaki kişiler yeni adresinizle eskisini otomatik olarak değiştirecek.\n\nTüm e-postaları yeni e-posta adresinize iletmek için eski e-posta sağlayıcınızı ayarlamanız önemle önerilir. Yoksa henüz yeni adresinizi almamış olan kişilerin iletilerini kaçırabilirsiniz. @@ -804,6 +840,7 @@ %1$s ileti İndirme en fazla %1$s zamanına kadar kullanılabilir + Profil Seç Profil Görseli Seç Yeni profil görselinizi seçin Profil Görselini Sil @@ -890,8 +927,8 @@ %1$s üyesini kaldırdınız. %2$s tarafından %1$s üyesi kaldırıldı. - - Öbekten ayrıldınız. + + Ayrıldınız. %1$s tarafından öbekten ayrılındı. Öbek görselini sildiniz. @@ -935,11 +972,13 @@ Kaybolan iletiler zamanlayıcısını %1$s hafta olarak ayarladınız. %2$s tarafından kaybolan iletiler zamanlayıcısı %1$s hafta olarak ayarlandı. - + %1$s başka bir aygıttan bir ileti gönderdi. - Bundan böyle iletiler uçtan uca şifreleme güvencelidir. Daha fazlasını öğrenmek için dokunun. - Artık bu sohbetteki tüm iletiler uçtan uca şifreleme güvencelidir.\n\nUçtan uca şifreleme, iletilerinizi sizin ve sohbet ortaklarınızın arasında özel tutar. Sunucular, sağlayıcılar ya da aktarıcılar bile onları okuyamaz. + İletiler uçtan uca şifreleniyor. Daha fazlasını öğrenmek için dokunun. + Bu sohbetteki tüm iletiler uçtan uca şifreleniyor.\n\nUçtan uca şifreleme, iletilerinizi sizin ve sohbet ortaklarınızın arasında özel tutar. Sunucular, sağlayıcılar ya da aktarıcılar bile onları okuyamaz. + %1$s başka bir aygıttan bir ileti gönderdi. Daha fazlasını öğrenmek için dokunun. + Uçtan uca şifreleme artık güvencelenemiyor; çünkü büyük olasılıkla %1$s Delta Chat\'i yeniden yükledi ya da başka bir aygıttan ileti gönderdi.\n\nOnlarla kişisel olarak tanışabilir ve güvenceli uçtan uca şifrelemeyi yeniden kurmak için onların QR kodunu yeniden tarayabilirsiniz. ⚠️ %1$s, bu sohbet için henüz ayarlanmayan uçtan uca şifrelemeyi gerektirir. Daha fazlasını öğrenmek için dokunun. Uçtan uca şifrelemeyi kurmak için kişilerle kişisel olarak tanışabilir ve onları tanıtmak için onların QR kodunu tarayabilirsiniz. @@ -998,16 +1037,19 @@ %1$s sizi bu öbeğe katılmaya çağırdı.\n\n%2$s kişisinin aygıtının yanıt vermesi bekleniyor… %1$s yanıtladı; öbeğe eklenmesi bekleniyor… - Güvencelenen uçtan uca şifreleme kuruluyor, lütfen bekleyin… + Uçtan uca şifreleme kuruluyor, lütfen bekleyin… Henüz güvencelenen uçtan uca şifreleme kurulamadı; ama zaten bir ileti gönderebilirsiniz. + Sürdürmek için kişi çevrimiçi olmalıdır.\n\nBu işlem, arka planda otomatik olarak sürecek. %1$s tanıtıldı. - %1$s ile güvencelenen uçtan uca şifreleme kurulamıyor. + + %1$s ile uçtan uca şifreleme kurulamıyor. %1$s tarafından tanıtıldı Benim tarafımdan tanıtıldı - + Tanıtıldı + %1$s için ayarlama değiştirildi. Uçtan uca şifrelemeyi güvencelemek için bu öbeğe yalnızca yeşil bir onay imi olan kişileri ekleyebilirsiniz.\n\nDoğrulanmayan kişilerle kişisel olarak tanışabilir ve onları tanıtmak için onların QR kodunu tarayabilirsiniz. İletiyi göndermek için sohbet seçin @@ -1051,7 +1093,7 @@ Çevir Döndür - + Şifrelenen ileti @@ -1182,6 +1224,9 @@ Delta Chat\'in arka planda iletileri almasına zaten izin verdiniz.\n\nİletiler arka planda hâlâ gelmiyorsa, lütfen sistem ayarlarınızı da denetleyin. + Ne yeni?\n\n💯 Uçtan uca şifreleme artık güvenilir ve sonsuza kadar geçerli. Asma kilitlerle 🔒 anlaşılabilir!\n\n✉️ Uçtan uca şifrelemeli olmayan klasik e-posta bir mektup sembolü olarak işaretlenir\n\n😻 Tüm kişileriniz için yeni geliştirilen profil ekranı\n\n🔲 Bir sohbette kullanılan uygulamalara hızlı erişim için yeni düğme\n\n❤️ Bağımsız kalmamız ve yeni geliştirmeler getirmemiz için lütfen bize yardım edin: %1$s + Ne yeni?\n\n❤️‍🔥 Daha fazla emojiyle yeni emoji seçicisi\n\n🎮 Geliştirilen sohbet içi uygulamalar: Bildirimler alın ve destekleyen uygulamaları bağlamda açın, yani eklenen bir takvim girdisini doğrudan açın\n\n👍 İletilerinize verilen tepkiler hakkında bildirimler alın\n\n... 🛠️ DÜZELTMELER ve HATTA DAHA FAZLASI için %1$s + ℹ️ “Profili Değiştir” seçeneği taşındı: Yeni profil eklemek ya da profilleri değiştirmek için ana ekranın üst köşesindeki profil görselinize dokunun 💡 diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml index 62aaedb46..5d331d889 100644 --- a/src/main/res/values-uk/strings.xml +++ b/src/main/res/values-uk/strings.xml @@ -11,29 +11,31 @@ Сканувати Так Ні - Обрати - Увімкн. - Вимкн. - За замовчуванням - За замовчуванням (%1$s) - За замовчуванням (так само, як вказано вище) - Персональне налаштування + Вибрати + Увімкнено + Вимкнено + За замовчуванням + За замовчуванням (%1$s) + За замовчуванням (так, як вище зазначено) + На користувацький вибір Не задано Автоматично - Суворо - Відкрити - Завантажити - Завантаження... - Відкрити вкладення - Приєднатися - Заново приєднатися + Строго + Відчинити + Скачати + Скачується… + Відчинити прикріплене + Долучитися + Передолучитися Видалити Видалити для мене Видалити для всіх - Інформація + Відомості Оновити Емодзі Вкладення + + Прикріпити \"%1$s\"? Назад Закрити Закрити вікно @@ -42,7 +44,7 @@ Скинути Пізніше - Відправити знову + Перенадіслать Відредаговано Редагувати повідомлення @@ -56,7 +58,10 @@ Зберегти Чат Медіа + Додатки й медіа Профіль + Усі профілі + Поточний Профіль Головне меню Почати розмову Показати повне повідомлення... @@ -91,8 +96,10 @@ Додаток, що дозволяє обробляти цей тип даних, не знайдено. Не встановлено браузер. Не вдалося знайти %1$s. + + Не можливо зберегти файл %1$s. Скопійовано до буферу обміну. - Контакти + Контактні особи Адреса електронної пошти Неправильна адреса електронної пошти. Пароль @@ -107,7 +114,7 @@ Останнього тижня Останнього місяця - З\'являвся зʼявлялася востаннє %1$s + Востаннє %1$s Останній раз бачили %1$s Останній раз бачили: Невідомо. @@ -132,10 +139,10 @@ %d чатів - %d контакт - %d контакти - %d контактів - %d контактів + %d контактна особа + %d контактні особи + %d контактних осіб + %d контактних осіб %d повідомлення @@ -144,31 +151,31 @@ %d повідомлень - %d реакція - %d реакції - %d реакцій - %d реакції + %d реакція + %d реакції + %d реакцій + %d реакцій - %d учасник - %d учасники - %d учасників - %d учасників + %d участвує + %d участвують + %d участвують + %d участвують - %d одержувач - %d одержувачі - %d одержувачів - %d одержувачів + %d одержувач(ка) + %d одержувачі й одержувачки + %d одержувачок і одержувачів + %d одержувачок і одержувачів - %d обраний - %d обрано - %d обрано - %d обрано + %d вибрано + %d вибрано + %d вибрано + %d вибрано - + Вибрано: Я Чернетка Зображення @@ -181,7 +188,7 @@ Аби додати стікери, торкніться \"Відкрити директорію наклейок\", створіть субдерикторію для вашого стікерпаку та перетягніть туди зображення і файли стікерів Відкрити директорію наклейок Зображення - Аудіо + Авдійо Голосове повідомлення Переслане Переслане повідомлення @@ -189,7 +196,7 @@ Переслано від %1$s Відео Документи - Контакт + Контактна особа Бот Камера @@ -202,7 +209,7 @@ Зображення та відео Файл Файли - Надсилати оригінальні файли та нестиснуті зображення + Відправити оригінальні файли чи нестиснуті картинки Вибрати з Файлів Вибрати з Галереї @@ -212,6 +219,7 @@ Застосунки URL-адреса для вибору додатків Якщо встановлено, URL-адреса буде використовуватися для вибору додатків, а не за замовчуванням + Натисніть «Надіслати», щоби поділитись Домівка Ігри Інструменти @@ -250,23 +258,42 @@ Повідомлення до... Клонувати чат - + Список трансляцій + Списки трансляцій + Новий Список трансляцій + + Канал + + Канали + + Новий Канал Додати одержувачів + Редагувати список трансляцій + Назва списку трансляцій + Будь ласка, введіть назву для списку трансляцій. - Відправити + + Назва Каналу + E-Mail + + Новий E-Mail + + Тема + Послати Увімкнути емодзі-клавіатуру Редагувати групу - Назва та зображення групи + Назва й емблема групи Показати всі місця Архівувати чат Розархівувати чат Додати вкладення Залишити групу + Покинути Канал Видалити чат Очистити чат @@ -293,6 +320,7 @@ Експортувати вкладення Експортувати вкладення Всі матеріали + Усі додатки й медіа Показати в чаті Показати Застосунок у чаті @@ -346,15 +374,16 @@ Відкрипити Первісне повідомлення не знайдено Відповісти приватно - Вихідний код + Джерельний код - Додати на домашній екран - Пожертвувати + Додати на стартовий екран + Задонатити + ❤️ Здається, вам подобається Delta Chat!\n\nПодумайте про пожертвування, щоб допомогти забезпечити безкоштовність Delta Chat для всіх.\n\nХоча Delta Chat є безкоштовним у використанні та з відкритим вихідним кодом, розробка коштує грошей. Допоможіть нам зберегти незалежність Delta Chat і зробити його ще більш чудовим у майбутньому.\n\nhttps://delta.chat/donate - Відключити сповіщення на 1 годину - Відключити сповіщення на 8 годин - Відключити сповіщення на 1 день - Відключити сповіщення на 7 днів + Вимкнути сповіщення на годину + Вимкнути сповіщення на 8 годин + Вимкнути сповіщення на добу + Вимкнути сповіщення на 7 днів Вимкнути сповіщення назавжди на 5 хвилин @@ -364,51 +393,52 @@ на 6 годин - Надіслати наступний файл %s? - Надіслати наступні %d файли до %s? - Надіслати наступні %d файлів до %s? - Надіслати наступні %d файлів до %s? + Надіслати цей файл → %s? + Надіслати ці %d файли → %s? + Надіслати ці %d файлів → %s? + Надіслати ці %d файлів → %s? Файл збережено до \"%1$s\". - Відео чат + Відеоконференція Запросити %1$s у відео чат? Для цього обидві сторони повинні встановити сумісний додаток або браузер. %1$s запрошено у відео чат. Ви надіслали запрошення у відео чат. Торкніться, щоб приєднатися Торкніться, щоб відкрити - Відео чат - Ваш відео чат + Інстанція відеоконференцій + Ваш сервер відеочатів - Приклад: https://your-server.org/$ROOM + Приклад: http://jitsi.random-redirect.de/$ROOM Якщо ввімкнено, Ви можете почати відеочат із кожного чату. Обидві сторони повинні встановити сумісний додаток або браузер. Використовувати \"%1$s\" аби запросити інших у відеочат?\n\nПісля встановлення Ви можете розпочати відеочат із кожного індивідуального чату. Це замінить попереднє налаштування для відеочату, якщо воно є. Запрошення до відео чату Вас запрошено у відео-чат, клікніть %1$s аби приєднатися. - Ви впевнені, що хочете залишити цю групу? + + Ви впевнені, що хочете піти? - Видалити %d чат на всіх ваших пристроях? - Видалити %d чати на всіх ваших пристроях? - Видалити %d чатів на всіх ваших пристроях? - Видалити %d чатів на всіх ваших пристроях? + ¿Видалити %d чат на всіх Ваших пристроях? + ¿Видалити %d чати на всіх Ваших пристроях? + ¿Видалити %d чатів на всіх Ваших пристроях? + ¿Видалити %d чатів на всіх Ваших пристроях? Видалити чат \"%1$s\" на всіх ваших пристроях? Видалити повідомлення на всіх ваших пристроях? - Видалити %d повідомлення на всіх ваших пристроях? - Видалити %d повідомлення на всіх ваших пристроях? - Видалити %d повідомлень на всіх ваших пристроях? - Видалити %d повідомлення на всіх ваших пристроях? + ¿Видалити %d повідомлення на всіх Ваших пристроях? + ¿Видалити %d повідомлення на всіх Ваших пристроях? + ¿Видалити %d повідомлень на всіх Ваших пристроях? + ¿Видалити %d повідомлень на всіх Ваших пристроях? - Видалити %d повідомлення? - Видалити %d повідомлення? - Видалити %d повідомлень? - Видалити %d повідомлення? + Видалити %d повідомлення? + Видалити %d повідомлення? + Видалити %d повідомлень? + Видалити %d повідомлень? Переслати повідомлення %1$s? Переслати повідомлення в %1$d? @@ -420,13 +450,15 @@ Створити чат з %1$s? Видалити %1$s із групи? - + Видалити %1$s зі списку трансляцій? + + Видалити %1$s з каналу? Ви впевнені, що хочете відкрити це посилання? - Контакти + Контактні особи Введіть ім\'я або адресу електронної пошти Введіть адресу електронної пошти вище Немає контактів. @@ -434,16 +466,16 @@ - %d чат заархівовано - %d чати заархівовано - %d чатів заархівовано - %d чатів заархівовано + %d чат заархівовано + %d чати заархівовано + %d чатів заархівовано + %d чатів заархівовано - %d чат розпаковано - %d чати розпаковано - %d чатів розпаковано - %d чатів розпаковано + %d чат розархівовано + %d чати розархівовано + %d чатів розархівовано + %d чатів розархівовано Заархівовані чати Будь ласка, введіть повідомлення. @@ -456,17 +488,21 @@ %d нових повідомлень - Надіслати повідомлення до %1$s. + Відправити повідомлення → %1$s. + У списку трансляцій одержувачі будуть отримувати повідомлення в чаті з Вами в режимі тільки-для-читання. + + Канали - це інструмент \"один до багатьох\" для трансляції ваших повідомлень. Інші побачать цю групу лише після того, як ви надішлете перше повідомлення. Рухайте для скасування - Натисніть й утримуйте для запису голосового повідомлення, відпустіть для відправки + Натиснувши втримуйте, щоби записати голосове повідомлення, а для відправки відпустіть Немає вхідних повідомлень.\nНатисніть \"+\" щоб почати новий чат. Всі чати заархівовано.\nНатисніть \"+\", щоб почати новий чат. Поділитися Повідомлення Заархівовано Запит + Включайте запити в лічильники та сповіщення Немає повідомлень. Повідомлення, відправлені самому собі Заархівовані Вами чати будуть відображені тут. @@ -475,10 +511,10 @@ Збережені Зберегти як - Спробувати надіслати повідомлення ще раз + Спробуйте знову послати повідомлення Ви не можете нічого писати, бо Ви не в цій групі. Запитайте іншого члена групи про приєднання. - Надсилання повідомлень у списках розсилки поки не підтримується + У списах розсилки ще не підтримується надсилання повідомлень Неможливо відобразити цей тип файлів: %s Не вдалося завантажити вкладення @@ -494,16 +530,16 @@ Будь ласка, спочатку прийміть запит на чат. - Надіслати \"%1$s\" до… + Послати «%1$s» комусь… - Надіслати повідомлення до... + Послати повідомлення комусь… Додатки реального часу - Увімкнути з\'єднання в режимі реального часу для застосунків, якими діляться в чатах. Якщо ввімкнено, співрозмовники можуть отримати доступ до вашої IP-адреси, коли ви запускаєте застосунок. + Увімкніть з\'єднання в режимі реального часу для додатків, прикріплених до чатів. Якщо увімкнено, учасники чату можуть дізнатися вашу IP-адресу, коли ви запускаєте додаток. Показати місця у часовому проміжку Показати треки - Надіслати точку інтересу + Послати географійні координати Тут відображатимуться системні повідомлення для цього чату @@ -532,31 +568,31 @@ Назва групи - Аватар групи - Видалити зображення групи - Змінити зображення групи + Емблема групи + Видалить емблему групи + Ізміни́ть емблему групи Створити групу - Введіть назву групи. - Додати учасників - Щоб виконати цю дію, Ви повинні бути учасником групи. + Уведіть назву групі. + Додати учасництво + Потрібно участвувати в групі, щоби виконати цю дію. Шифрування - Розшарені чати - Пов\'язані чати + Спільні з вами чати + Повʼязані чати - Колишні учасники - Контакт + Колишнє учасництво + Контактні відомості Група Галерея Документи Посилання - Карта + Мапа Зображення та відео, якими поділилися у цьому чаті, будуть відображатися тут. Документи та інші файли, якими поділилися у цьому чаті, будуть відображатися тут. Зображення, якими поділилися у цьому чаті, будуть відображатися тут. Відео, якими поділилися у цьому чаті, будуть відображатися тут. Аудіозаписи та голосові повідомлення, якими поділилися у цьому чаті, будуть відображатися тут. Застосунки, якими поділилися у цьому чаті, будуть відображатися тут. - Тут відображатимуться медіафайли, якими Ви ділилися в будь-якому чаті. + Тут з\'являться медіа, які прикріплені до будь-якого чату. Документи та інші файли, якими поділилися в будь-якому чаті, з’являться тут. Програми, якими поділилися в будь-якому чаті, з’являться тут. Попередній перегляд медіа @@ -565,10 +601,10 @@ Квадратна сітка Надіслати повідомлення - + %1$s змінили їх адресу з %2$s на %3$s - Ви змінили електронну адресу з %1$s на %2$s.\n\nЯкщо зараз Ви відправите повідомлення в підтверджену групу, контакти в ній автоматично замінять Вашу стару адресу на нову.\n\nРекомендується налаштувати старий обліковий запис електронної пошти на пересилання всіх електронних листів на Вашу нову електронну адресу. Інакше Ви можете пропустити повідомлення контактів, які ще не отримали Вашу нову адресу. + Ви змінили свою електронну поштову адресу з %1$s на %2$s.\n\nЯкщо тепер відправите повідомлення в підтверджену групу, контакти в ній автоматично замінять стару адресу новою.\n\nРекомендується налаштувати стару поштову скриньку на пересилання всіх електронних листів на Вашу нову скриньку. Інакше Ви можете пропустити повідомлення від контактних осіб, які ще не довідалися вашої нової адреси. @@ -610,7 +646,7 @@ Оновлення… Підключено - Надсилання... + Шлеться… Останнє повідомлення успішно надіслано. Не підтримується вашим провайдером електронної пошти. @@ -680,7 +716,7 @@ Поділитися посиланням Продовжити спрощене налаштування? - Введена адреса підтримує спрощене налаштування (OAuth 2.0).\n\nНа наступному кроці, будь ласка, дозвольте Delta Chat надсилати та отримувати повідомлення.\n\nDelta Chat не збирає дані користувача, все залишається на вашому пристрої. + Дана скринька підтримує спрощене налаштовування (OAuth 2.0).\n\nНаступним кроком, будь‐ласка, дозвольте Дельта‐чатові надсилати й одержувати повідомлення.\n\nДельта‐чат не збирає користувацьких даних: усе лишається на вашім пристрої. Перевірки сертифікатів Вкажіть дійсну адресу електронної пошти Вкажіть дійсний сервер / IP-адресу @@ -715,10 +751,10 @@ Переслати... - Надіслати %1$d файли до \"%2$s\"? - Надіслати %1$d файл (файлів) у %2$d чати? - (Відео надсилаються у вигляді оригінальних великих файлів. Щоб надіслати відео у вигляді менших файлів, прикріпіть їх окремо) - Надіслати цей текст у %1$d чати?\n\n\"%2$s\" + Послати %1$d файл·и·ів у «%2$s»? + Послати %1$d файл·и·ів у %2$d чати? + (Відеозаписи надішлються ориґінальними, обсяжними файлами. Щоби надіслати відео меншими файлами, прикріпіть їх окремо) + Надіслати це́й текст у %1$d чат·и·ів?\n\n«%2$s» Надсилання обірване через відсутність дозволів. @@ -730,12 +766,12 @@ Заблоковані контакти Заблоковані Вами контакти будуть відображені тут. Пароль та обліковий запис - Зображення профілю та ім\'я будуть відображатися в чатах з іншими користувачами. Відправлена інформація не може бути видалена або відкликана. + Ваш аватарка, ім\'я та біографія будуть надіслані разом з вашим повідомлення при спілкуванні з іншими користувачами. Ваше ім\'я Текст підпису - Відправлення клавішею Enter - Натискання клавіші Enter відправить текстові повідомлення + Відправляти клявішею 
 Enter + Натискаючи клявішу 
 Enter відправлятимете текстові повідомлення Якість вихідних медіа файлів Збалансована якість Гірша якість, менший розмір @@ -772,7 +808,7 @@ Якщо сповіщення про прочитання відключені, Ви не будете бачити підтвердження прочитання повідомлень іншими користувачами. Сервер Шифрування - Управління ключами + Розпорядження ключами Використовувати системні емодзі Вимкнути вбудовану підтримку емодзі Прочитати адресну книгу системи @@ -793,7 +829,7 @@ Експортувати всі %1$d профілі Почати резервне копіювання Резервна копія успішно записана на %1$s - Управління ключами + Розпорядження ключами Експорт секретних ключів Експортувати секретні ключі до \"%1$s\"? Імпорт секретних ключів @@ -802,7 +838,7 @@ Секретні ключі імпортовані з \"%1$s\". Фон - Використовувати зображення за замовчуванням + Використовувати тло за замовчуванням Вибрати з галереї Параметри IMAP-папок Якщо ви змінюєте цей параметр, переконайтеся, що Ваш сервер та інші Ваші клієнти налаштовані відповідним чином.\n\nІнакше щось може взагалі не працювати. @@ -821,9 +857,9 @@ Стримінг геоданих за вимогою Режим розробника Активує опції режиму налагодження та може зробити програму менш стабільною. Тільки для розробників. - Фон за замовчуванням + Тло за замовчуванням Колір за замовчуванням - Персональне зображення + Користувацьке тло Персональний колір Експорт припинено. Автоматично завантажувати повідомлення @@ -836,8 +872,9 @@ Повідомлення розміром %1$s\' Доступний для завантаження максимум до %1$s + Вибрати Профіль Вибрати зображення профілю - Вибрати нове зображення профілю + Вибрати ваше нове зображення профілю Видалити зображення профілю Показати іконку в треї Редагувати профіль @@ -894,24 +931,24 @@ Через 1 рік - Надіслати повідомлення з налаштуваннями Autocrypt + Відправлення повідомлення для налаштування Autocrypt Повідомлення про налаштування Autocrypt безпечно передає ваші налаштування наскрізного шифрування іншим програмам, що підтримують Autocrypt.\n\nЯкщо ви використовуєте Delta Chat і на іншому пристрої, скористайтеся \"Налаштування / Додати другий пристрій\" замість цього. - Надіслати повідомлення з налаштуваннями Autocrypt + Надіслати повідомлення для налаштування Autocrypt Налаштування було Вам надіслано. Перейдіть на інший пристрій і відкрийте повідомлення про налаштування. У Вас має з\'явитися запит на введення коду налаштування. Введіть наступні цифри: Віддавати перевагу наскрізному шифруванню Це повідомлення неможливо розшифрувати.\n\n- Можливо, допоможе просто відповісти на це повідомлення і попросити відправника надіслати повідомлення ще раз.\n\n- Якщо ви щойно переінсталювали Delta Chat, то краще за все переналаштувати Delta Chat зараз і вибрати \"Додати як другий пристрій\" або імпортувати резервну копію. Невідомий відправник для цього чату. Дивіться \"Інформацію\" для деталей. - Повідомлення від %1$s + %1$s шле повідомлення Неможливо надіслати повідомлення до %1$s. Ви змінили назву групи з \"%1$s\" на \"%2$s\". %3$s змінив (-ла) назву групи з \"%1$s\" на \"%2$s\". - Ви змінили зображення групи. + Ви змінили емблему групи. - %1$s змінив (-ла) зображення групи. + Емблему групи %1$s міняє. Додано учасника %1$s. @@ -922,13 +959,13 @@ Ви видалили учасника %1$s. %2$s видалив (-ла) учасника %1$s. - - Ви залишили групу. + + Ви пішли %1$s залишив (-ла) групу. - Ви видалили зображення групи. + Ви видалили емблему групи. - Зображення групи видалено користувачем %1$s. + Емблему групи видаляє %1$s. Ви увімкнули стримінг геоданих. %1$s увімкнув (-ла) стримінг геоданих. @@ -967,14 +1004,16 @@ Ви встановили таймер зникнення повідомлень на %1$s тижнів. %2$s встановив (-ла) таймер зникнення повідомлень на %1$s тижнів. - - %1$s відправив (-ла) повідомлення з іншого пристрою. + + %1$s тепер шле повідомлення з іншого пристрою. Відтепер повідомлення гарантовано будуть мати наскрізне шифрування. Торкніться, щоб дізнатися більше. Тепер гарантовано, що всі повідомлення в цьому чаті наскрізь зашифровані.\n\nНаскрізне шифрування зберігає конфіденційність повідомлень між вами і вашими партнерами по чату. Навіть сервери, провайдери або ретранслятори не можуть їх прочитати. + %1$s відправив (-ла) повідомлення з іншого пристрою. Торкніться, щоб дізнатися більше. + Наскрізне шифрування більше не гарантується, імовірно, через те, що %1$s перевстановив (-ла) Delta Chat або надіслав (-ла) повідомлення з іншого пристрою.\n\nВи можете зустрітися з ним (нею) особисто та знову відсканувати його (її) QR-код, щоб відновити гарантоване наскрізне шифрування. ⚠️ %1$s вимагає наскрізного шифрування, яке ще не налаштоване для цього чату. Натисніть, щоб дізнатися більше. - Щоб установити наскрізне шифрування, Ви можете зустрітися з контактами особисто та відсканувати їхній QR-код, щоб додати їх. + Для налагодження наскрізного шифрування можна зустрітись із контактною особою та відсканувати баркод із її пристрою, щоби представити її. Дізнатися більше Ви видалили чат \"Збережені повідомлення\".\n\nℹ️ Аби використовувати функцію \"Збережені повідомлення\" знову, створіть новий чат самі із собою. @@ -1006,20 +1045,20 @@ Цей QR-код було скинуто і він більше не активний. Цей QR-код для приєднання до групи \"%1$s\" було скинуто, і він більше не активний. Активувати QR-код - QR-код запрошення + Баркод із запрошенням %1$s приєднався(-лася). - %1$s перевірено. + %1$s представлено. %1$s приєднався(-лася) до групи. - QR-код запрошення + Баркод із запрошенням Відскануйте код, щоб приєднатися до групи \"%1$s\". - QR-код запрошення + Запрошувальний баркод Відскануйте код, щоб спілкуватись з %1$s Відсутнє інтернет з\'єднання, не вдалося налаштувати QR-код. Створити новий профіль на \"%1$s\" і увійти в нього? Створити новий профіль на \"%1$s\" і увійти в нього?\n\nВаш поточний профіль не буде видалено. Використовуйте \"Перемкнути профіль\". - Встановіть ім’я, яке зможуть розпізнати Ваші контакти. Ви також можете встановити зображення профілю. + Встановіть ім’я, яке розпізнають ваші контакти. Ви також можете встановити зображення профілю. Будь ласка, введіть ім\'я. Вісканований QR-код не може бути використаний для створення нового профілю. @@ -1033,15 +1072,18 @@ Встановлення гарантованого наскрізного шифрування, будь ласка, зачекайте... Ще не вдалося встановити гарантоване наскрізне шифрування, але ви вже можете надсилати повідомлення. + Щоб продовжити, контакт повинен бути онлайн.\n\nЦей процес продовжиться автоматично у фоновому режимі. - %1$s представив (-ла). + %1$s представлено! + Не вдається встановити гарантоване наскрізне шифрування з %1$s - Представлено %1$s + Представни·ця: %1$s Представлено мною - + Представлено + Змінені параметри для %1$s - Щоб гарантувати наскрізне шифрування, Ви можете додавати до цієї групи лише контакти із зеленою галочкою.\n\nВи можете зустрітися з контактами особисто та відсканувати їхній QR-код, щоб представити їх. + Аби наскрізне шифрування лишалося ґарантованим, у цю групу можна додавати лише контактних осіб із зеленою галочкою.\n\nМожна зустрітись із контактною особою та відсканувати баркод із її пристрою, щоби представити її. Виберіть чат, куди потрібно надіслати повідомлення %1$s уже містить чернетку повідомлення, бажаєте її замінити? @@ -1083,14 +1125,14 @@ Обернути Обертати - + Зашифроване повідомлення Це офіційний додаток Delta Chat для ПК. Це програмне забезпечення ліцензується за GNU GPL версії 3, а початковий код доступний на GitHub. Вітаємо у Delta Chat - Вибір мови + Мова Файл Вийти Редагувати @@ -1120,8 +1162,8 @@ Зберегти Відмінити збереження - Ім\'я - Вибрати зображення групи + Імʼя + Вибрати емблему групи Експорт резервної копії Налаштування Autocrypt успішно передані! Видалити цей профіль? Все буде видалено, включно з усіма вашими налаштуваннями, контактами, чатами, повідомленнями та медіа. Цю дію неможливо скасувати. @@ -1193,8 +1235,8 @@ Delta Chat використовує вашу камеру для знімання та надсилання фото та відео, а також для сканування QR-кодів. Delta Chat використовує ваші контакти, щоб показати список адрес, на які ви можете писати. Delta Chat не має сервера, ваші контакти нікуди не надсилаються. - Delta Chat потребує дозволу на доступ до геоданих, щоб ділитися місцезнаходженням протягом часу, який Ви встановили в налаштуваннях місцезнаходження. - Delta Chat потребує дозволу на доступ до геоданих, щоб ділитися вашим місцезнаходженням протягом часу, який Ви встановили в налаштуваннях місцезнаходження. + Дельта-чатові потрібно дозволити доступ до місцезнаходження пристрою протягом часу, на який Ви ввімкнули транслювання геолокації. + Дельта-чатові потрібно дозволити доступ до місцезнаходження пристрою протягом часу, на який Ви ввімкнули транслювання геолокації. Delta Chat використовує Ваш мікрофон для запису й надсилання голосових повідомлень та відео зі звуком. Delta Chat дасть Вам обрати, які фото з Вашої бібліотеки надіслати. Delta Chat хоче зберігати зображення до Вашої фото-бібліотеки. @@ -1214,6 +1256,9 @@ Ви вже дозволили Delta Chat отримувати повідомлення у фоновому режимі.\n\nЯкщо повідомлення досі не приходять у фоновому режимі, перевірте налаштування системи. + Що нового?\n\n💯 Наскрізне шифрування тепер надійне і завжди. Навісні замки 🔒 зникли!\n\n✉️ Класична електронна пошта без наскрізного шифрування позначається символом листа\n\n😻 Новий покращений екран профілю для всіх ваших контактів\n\n🔲 Нова кнопка для швидкого доступу до додатків, що використовуються в чаті\n\n❤️ Будь ласка, пожертвуйте, щоб допомогти нам залишатися незалежними та продовжувати вдосконалюватися: %1$s + Що нового? \n\n❤️‍🔥 Новий вибірник емодзі з більшою кількістю смайликів \n\n🎮 Покращені програми в чаті: отримуйте сповіщення та відкривайте додатки безпосередньо в контексті, наприклад, доданий запис у календарі \n\n👍 Отримуйте сповіщення про реакції на ваші повідомлення \n\n... 🛠️ ВИПРАВЛЕННЯ та ЩЕ БІЛЬШЕ на %1$s + ℹ️ Опцію \"Перемкнути профіль\" переміщено: Торкніться зображення свого профілю у верхньому кутку головного екрану, щоб додати або перемкнути профіль 💡. diff --git a/src/main/res/values-vi/strings.xml b/src/main/res/values-vi/strings.xml index 6a7eb377d..4430eb7cf 100644 --- a/src/main/res/values-vi/strings.xml +++ b/src/main/res/values-vi/strings.xml @@ -127,7 +127,6 @@ %d đã chọn - Tôi Bản nháp Hình ảnh @@ -190,13 +189,18 @@ Trò chuyện mới Nhóm mới Sao chép cuộc trò chuyện - + Danh sách phát sóng + Danh sách phát sóng + Danh sách phát sóng mới Thêm người nhận + Chỉnh sửa danh sách phát sóng + Tên danh sách phát sóng + Vui lòng nhập tên cho danh sách phát sóng. Gửi Chuyển đổi Bàn phím Emoji @@ -279,7 +283,6 @@ Thêm vào Màn hình chính Quyên tặng - Tắt tiếng trong 1 giờ Tắt tiếng trong 8 giờ Tắt tiếng trong 1 ngày @@ -313,8 +316,6 @@ Lời mời trò chuyện video Bạn được mời tham gia cuộc trò chuyện video, hãy nhấp vào %1$s để tham gia. - - Bạn có chắc chắn muốn rời khỏi nhóm này không? Xóa %d tin nhắn? @@ -329,7 +330,7 @@ Trò chuyện với %1$s? Loại %1$s khỏi nhóm? - + Loại %1$s khỏi danh sách phát sóng? Bạn có muốn mở liên kết này không? @@ -357,6 +358,7 @@ Gửi tin nhắn tới %1$s. + Trong danh sách phát sóng, người nhận sẽ nhận được tin nhắn trong cuộc trò chuyện chỉ đọc với bạn. Những người khác sẽ chỉ nhìn thấy nhóm này sau khi bạn gửi tin nhắn đầu tiên. Trượt để hủy @@ -455,7 +457,7 @@ Lưới vuông Gửi tin nhắn - + %1$s đã thay đổi địa chỉ của họ từ %2$s thành %3$s Bạn đã thay đổi địa chỉ email của mình từ %1$s thành %2$s.\n\nNếu bây giờ bạn gửi thư đến một nhóm đã được xác minh, những người liên hệ ở đó sẽ tự động thay thế địa chỉ cũ bằng địa chỉ mới của bạn.\n\nĐiều đó thật tuyệt vời khuyên bạn nên thiết lập nhà cung cấp email cũ để chuyển tiếp tất cả email đến địa chỉ email mới của bạn. Nếu không, bạn có thể bỏ lỡ tin nhắn của những người chưa nhận được địa chỉ mới của bạn. @@ -741,8 +743,6 @@ Bạn đã loại bỏ thành viên %1$s. Thành viên %1$s đã bị xóa bởi %2$s. - - Bạn đã rời nhóm. Nhóm bỏ lại bởi %1$s. Bạn đã xóa hình ảnh nhóm. @@ -786,11 +786,13 @@ Bạn đặt bộ hẹn giờ cho tin nhắn biến mất thành %1$s tuần. Bộ hẹn giờ cho tin nhắn biến mất được %2$s đặt thành %1$s tuần. - + %1$s đã gửi tin nhắn từ một thiết bị khác. Tin nhắn được đảm bảo sẽ được mã hóa hai đầu kể từ bây giờ. Nhấn để tìm hiểu thêm. Hiện tại, chúng tôi đảm bảo rằng tất cả tin nhắn trong cuộc trò chuyện này đều được mã hóa hai đầu.\n\nMã hóa hai đầu giúp giữ tin nhắn giữa bạn và đối tác trò chuyện của bạn ở chế độ riêng tư. Ngay cả nhà cung cấp email của bạn cũng không thể đọc được chúng. + %1$s đã gửi tin nhắn từ một thiết bị khác. Nhấn để tìm hiểu thêm. + Mã hóa hai đầu không còn được đảm bảo nữa, có thể vì %1$s đã cài đặt lại Delta Chat hoặc đã gửi tin nhắn từ một thiết bị khác.\n\nBạn có thể gặp trực tiếp họ và quét lại mã QR của họ để thiết lập lại tính năng mã hóa hai đầu được đảm bảo kết thúc mã hóa. Tìm hiểu thêm @@ -845,11 +847,12 @@ %1$s đã trả lời, đang chờ được thêm vào nhóm… %1$s đã được giới thiệu. + Không thể thiết lập mã hóa đầu cuối được đảm bảo với %1$s. Được giới thiệu bởi %1$s Được tôi giới thiệu - + Đã thay đổi thiết lập cho %1$s. Để đảm bảo mã hóa hai đầu, bạn chỉ có thể thêm những người liên hệ có dấu kiểm màu xanh lục vào nhóm này.\n\nBạn có thể gặp trực tiếp những người liên hệ và quét Mã QR của họ để giới thiệu họ. Chọn trò chuyện để gửi tin nhắn tới @@ -891,7 +894,7 @@ Lật Xoay - + Tin nhắn được mã hóa diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index 9f49fa5e4..80145f368 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -32,8 +32,10 @@ 为所有人删除 信息 更新 - Emoji + 表情符号 附件 + + 附加“%1$s”? 返回 关闭 关闭窗口 @@ -56,7 +58,10 @@ 保存 聊天 媒体 + 应用和媒体 账号 + 所有账号 + 当前账号 主菜单 开始聊天 显示完整消息… @@ -91,6 +96,8 @@ 找不到用于处理此类数据的应用。 没有安装浏览器。 无法找到 %1$s。 + + 无法保存 %1$s。 已复制到剪贴板。 联系人 电子邮件地址 @@ -141,7 +148,7 @@ %d 已选择 - + 已选择: 草稿 图片 @@ -151,7 +158,7 @@ 贴纸 添加到贴纸收藏集 - 要添加贴纸,请点击“打开贴纸文件夹”,为贴纸包创建一个子文件夹,然后将图片和贴纸文件拖动到那里 + 要添加贴纸,请点按“打开贴纸文件夹”,为贴纸包创建一个子文件夹,然后将图片和贴纸文件拖动到那里 打开贴纸文件夹 图片 音频 @@ -185,6 +192,7 @@ 私人应用 应用选择器 URL 设置后,该 URL 而不是默认的 URL 将被用作“应用选择器” + 点按“发送”即可分享 首页 游戏 工具 @@ -223,16 +231,34 @@ 聊天… 克隆聊天 - + 广播列表 + 广播列表 + 新建广播列表 + + 频道 + + 频道 + + 新建频道 添加接收者 + 编辑广播列表 + 广播列表名称 - 请属于广播列表的名称 + + 请输入广播列表的名称。 + + 频道名称 + 邮件 + + 新建邮件 + + 主题 发送 - 切换 emoji 键盘 + 切换表情符号键盘 编辑群组 群组名称和图像 显示所有位置 @@ -240,6 +266,7 @@ 取消归档聊天 添加附件 离开群组 + 离开频道 删除聊天 清空聊天记录 @@ -266,6 +293,7 @@ 导出附件 导出附件 所有媒体 + 所有应用和媒体 在聊天中显示 在聊天中显示应用 @@ -323,6 +351,7 @@ 添加到主屏幕 捐赠 + ❤️ 看起来您很喜欢 Delta Chat!\n\n恳请您考虑捐款支持,让 Delta Chat 始终保持自由开放。\n\n虽然 Delta Chat 是自由且开源的,但开发仍需资金支持。请帮助我们保持 Delta Chat 的独立性,并在未来让它变得更加出色。\n\nhttps://delta.chat/donate 静音 1 小时 静音 8 小时 @@ -346,8 +375,8 @@ 需要双方均装有兼容的应用或浏览器。 %1$s 发出了视频聊天邀请。 您发出了视频聊天邀请。 - 点击来加入 - 点击来打开 + 点按即可加入 + 点按即可打开 视频聊天实例 您的视频聊天实例 @@ -358,7 +387,8 @@ 您被邀请参加视频聊天,点击 %1$s 来加入。 - 您确定要离开此群组吗? + + 是否确定要离开? 是否删除所有设备上的 %d 个聊天? @@ -381,8 +411,10 @@ 与 %1$s 聊天? 将 %1$s 从群组中移除? - + 从广播列表中移除 %1$s? + + 从频道中移除 %1$s? 您要打开此链接吗? @@ -409,16 +441,20 @@ 发一条消息给 %1$s。 + 在广播列表中,收件人会在和你进行的只读聊天中收到消息 + + 频道是广播消息的一对多工具。 在您发出第一条消息后,其他人才会看到此群组。 滑动来取消 - 按住来录制语音消息,松开来发送 + 按住即可录制语音消息,松开即可发送 收件箱为空。\n按“+”来开始新聊天。 所有聊天已归档。\n按“+”来开始新聊天。 分享给 输入消息… 已归档 请求 + 在计数器和通知中包含请求 没有消息。 发给自己的消息 已归档的聊天将显示在此处。 @@ -467,7 +503,7 @@ 不再询问 %1$s 检测到可疑链接 - 您确定要访问 %1$s 吗? + 是否确定要访问 %1$s? 你将被转到一个链接,该链接可能通过使用来自不同字母表的相似字符对自己进行了伪装。打开标记为 %1$s 的链接将把你带到以 ascii 码编码的 %2$s 。如果这样的字符出乎你的意料,那么这个链接可能是有害的。 @@ -517,7 +553,7 @@ 方形网格 发送消息 - + %1$s 将邮箱从 %2$s 更改为 %3$s 你将邮箱从 %1$s 改为了 %2$s。\n\n如果你现在发送一条消息到已验证群组,那里的联系人将自动用你的新邮箱替换旧邮箱。\n\n我们建议你将旧邮箱配置为转发所有邮件到新邮箱。否则,你可能收不到还不知道你新邮箱的联系人发过来的消息。 @@ -530,7 +566,7 @@ 这将创建一个二维码,第二台设备可以扫描该二维码来复制配置文件。\n\n请确保没有不必要的观察者或摄像机可以看到以下屏幕。 在你的其他设备上安装 Delta Chat (https://get.delta.chat) - 启动 Delta Chat,点击“我已有账号/添加为第二台设备”,扫描此处显示的二维码 + 启动 Delta Chat,点按“我已有账号/添加为第二台设备”,然后扫描此处显示的二维码 扫描此处为 %1$s 设置第二台设备 添加为第二台设备 @@ -626,7 +662,7 @@ 无效或不受支持的代理 已保存的代理 删除代理 - 你确定要删除 \"%1$s\"吗? + 是否确定要删除“%1$s”? 你想使用代理“%1$s”吗? 你的好友可以扫描二维码添加此代理 分享链接 @@ -725,8 +761,8 @@ 服务器 加密 管理密钥 - 使用系统 emoji - 关闭 Delta Chat 内置 emoji 支持 + 使用系统表情符号 + 关闭 Delta Chat 内置的表情符号支持 读取系统通讯录 提供与通讯录中的联系人创建聊天的功能。 聊天 @@ -788,6 +824,7 @@ %1$s 消息 下载最晚于 %1$s 前可用 + 选择账号 选择个人资料图片 选择新的个人资料图片 删除个人资料图片 @@ -800,8 +837,8 @@ 搜索结果 - 未找到 emoji - 最近使用 + 未找到表情符号 + 最近用过 人物与身体 动物与自然 食品与饮料 @@ -874,8 +911,8 @@ 你移除了成员 %1$s %2$s 移除了成员 %1$s - - 你退出了群组 + + 您已离开。 %1$s 退出了群组 你删除了群组图像 @@ -919,13 +956,15 @@ 你将消息定时销毁计时器设为 %1$s 周 %2$s 将消息定时销毁计时器设为 %1$s 周 - + %1$s 从另一台设备发送了消息 - 从现在起,消息保证都是端到端加密。轻按了解更多。 - 现在可以保证此聊天中的所有消息都是端到端加密的。\n\n端到端加密可确保您和您的聊天伙伴之间的消息私密性。即使是服务器、提供者或中继也无法读取它们。 - %1$s 从另一台设备发送了一则消息。轻按了解更多。 + 消息是端到端加密的。点按即可了解详情。 + 此聊天中的所有消息都经过端到端加密。\n\n端到端加密可确保您与聊天对象之间的消息保持私密。即使是服务器、提供者或中继也无法读取。 + + %1$s 从另一台设备发送了一条消息。点按即可了解详情。 + 无法再确保端到端加密,可能的原因是 %1$s 重新安装了 Delta Chat 或从其他设备发送了一则消息。\n\n你可以和联系人线下见面并再次扫描联系人的二维码重新建立端到端加密的通信。 - ⚠️ %1$s要求端到端加密,而此聊天尚未建立端到端加密。轻按了解更多。 + ⚠️ %1$s 需要端到端加密,但此聊天尚未设置。点按即可了解详情。 要建立端到端加密,你可以亲自和联系人碰面并扫描联系人的二维码 了解更多 @@ -982,16 +1021,19 @@ %1$s 邀请你加入此群组。\n\n等待 %2$s 的设备回复… %1$s 已回复,等待被加入群组… - 正在建立有保证的端到端加密,请稍候… + 正在建立端到端加密,请稍候… 无法建立有保证的端到端加密,但您可能已经发送了一条消息。 + 联系人必须在线才能继续。\n\n此过程将在后台自动继续。 %1$s 已验证。 - 无法与 %1$s 建立有保证的端到端加密。 + + 无法与 %1$s 建立端到端加密。 验证人 %1$s 由您验证 - + 已验证 + %1$s 的加密设置已更改。 要确保端到端加密,你只能将带有绿色验证标识的联系人到此群中。\n\n你可以亲自和未验证联系人线下碰面并扫描联系人二维码来验证。 选择要发送消息的聊天 @@ -1035,7 +1077,7 @@ 翻转 旋转 - + 加密的消息 @@ -1110,8 +1152,8 @@ 停止共享位置 - 录音后轻按两次发送。要丢弃录音,用两根手指左右滑动。 - 轻按两次查看连接详情 + 录制后,点按两次即可发送。如需舍弃录制内容,请双指滑动。 + 点按两次即可查看连接详情 无互联网连接,登录失败。 账号未配置。 无法播放音频文件。 @@ -1162,10 +1204,13 @@ 为了保持连接并在后台接收消息,请在下一步中忽略电池优化。\n\nDelta Chat 使用的资源很少,并且会注意不去耗尽电池电量。 - 点击此处以在 Delta Chat 处于后台时接收消息。 + 点按此处即可在 Delta Chat 处于后台时接收消息。 您已允许 Delta Chat 在后台接收消息。\n\n若 Delta Chat 在后台时消息仍未到达,请检查系统设置。 + 新版变化?\n\n💯 端到端加密现在可靠且永久。挂锁图标 🔒 没有了!\n\n✉️ 没有端到端加密的经典电子邮件用字母符号标记l\n\n😻 所有联系人的新的增强的个人资料屏\n\n🔲 新增快速访问聊天中所用应用的按钮\n\n❤️ 请捐赠帮助我们保持独立并继续带来改进: %1$s + 有什么新功能?\n\n❤️‍🔥 新的表情符号选择器,包含更多表情符号\n\n🎮 增强的聊天应用:获取通知并在上下文中打开支持应用,即直接打开添加的日历条目\n\n👍 收到有关对您的消息的回应的通知\n\n…🛠️ %1$s 上的修复和更多内容 + ℹ️ “切换账号”选项已移动:点击主屏幕上角的个人资料图片以添加或切换账号 💡 diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml index 8729ad294..dbdb4d29f 100644 --- a/src/main/res/values-zh-rTW/strings.xml +++ b/src/main/res/values-zh-rTW/strings.xml @@ -34,6 +34,8 @@ 更新 表情符號 附件 + + 附加“%1$s”? 返回 關閉 關閉視窗 @@ -56,7 +58,10 @@ 儲存 聊天 多媒體 + 應用程式和媒體 賬戶 + 所有賬戶 + 當前賬戶 主選單 開始聊天 顯示完整訊息⋯ @@ -91,6 +96,8 @@ 沒有可以處理這種資料的應用程式. 沒有安裝瀏覽器。 找不到 %1$s + + 無法儲存 %1$s。 已複製至剪貼簿 聯絡人 電子郵件位址 @@ -141,7 +148,7 @@ 已選取 %d 個 - + 已選擇: 草稿 圖片 @@ -175,12 +182,17 @@ 圖片和影片 檔案 檔案 + 傳送原始檔和未壓縮的圖像 + + 從檔案中選擇 + 從圖庫中選擇 小程式 小程式 應用選取器連結 如果設定,該連接將用作應用選擇器而不是預設連結 + 點擊「傳送」進行共享 主頁 游戲 工具 @@ -219,13 +231,18 @@ 與……聊天 克隆聊天 - + 廣播列表 + 廣播列表 + 新增廣播列表 新增對象 + 編輯廣播列表 + 廣播列表名稱 + 請為廣播列表輸入名稱。 送出 切換表情符號鍵盤 @@ -262,6 +279,7 @@ 另存附件 另存附件 所有媒體 + 所有應用程式和媒體 在對話中顯示 在對話中顯示應用程式 @@ -319,7 +337,6 @@ 新增至主畫面 捐贈 - 靜音1小時 靜音8小時 靜音1天 @@ -353,8 +370,6 @@ 視訊通話邀請 你被邀請至視訊電話,點擊%1$s以加入。 - - 確定要離開本群組? 刪除您所有裝置上的%d個聊天記錄? @@ -377,7 +392,7 @@ 要和%1$s開始對話嗎? 要把%1$s移出群組嗎? - + 將%1$s自廣播列表中移除? 你想開啟此連結嗎? @@ -405,6 +420,7 @@ 向 %1$s 傳送訊息。 + 在廣播清單中,收件者將在與您的只讀聊天中收到消息。 只有在你傳送第一條訊息後,其他人才會看到此群組。 滑動以取消 @@ -415,6 +431,7 @@ 訊息 封存 請求 + 在計數器和通知中包含請求 沒有訊息。 傳送給自己的訊息 存檔的聊天記錄將在此處顯示。 @@ -513,7 +530,7 @@ 方形網格 傳送訊息 - + %1$s 已將他的位址從 %2$s更改 為 %3$s 您已將電子郵件位址從%1$s更改為%2$s 。\n\n如果您現在向已驗證的群組發送消息,那裡的聯絡人會自動將舊位址替換為您的新位址。\n\n強烈建議您將舊電子郵件供應商設置為將所有電子郵件轉發到您的新電子郵件位址。否則,您可能會錯過尚未獲得新地址的聯絡人的消息。 @@ -784,6 +801,7 @@ %1$s 訊息 下載有效期至%1$s + 選擇賬戶 選擇大頭貼 選擇新的大頭貼 刪除大頭貼 @@ -870,8 +888,6 @@ 我已移除成員 %1$s %2$s已移除成員 %1$s - - 你離開了群組。 %1$s 退出了群組。 我已刪除群組圖片。 @@ -915,11 +931,13 @@ 您將自動刪除訊息計時器設置為%1$s週。 %2$s將自動刪除訊息計時器設置為%1$s週。 - + %1$s從另一台裝置傳送了一條訊息。 從現在開始,保證消息進行端到端加密。輕觸以瞭解更多資訊。 現在可以保證此聊天中的所有消息都是端到端加密的。\n\n端到端加密使您和您的聊天夥伴之間的消息保持私密。甚至您的電子郵件供應商也無法讀取它們。 + %1$s從另一台裝置傳送了一條訊息。輕觸以瞭解更多資訊。 + 無法再保證端到端加密,可能是因為%1$s重新安裝了 Delta Chat 或從其他裝置傳送了訊息\n\n您可以再次當面掃描他們的QR碼,以重新建立有保證的端到端加密。 ⚠️ %1$s需要端到端加密,但尚未為此聊天設置。輕觸以瞭解更多資訊。 要建立端到端加密,您可以當面掃描聯絡人的QR碼。 @@ -981,12 +999,15 @@ 正在建立有保證的端到端加密,請稍候... 尚無法建立有保證的端到端加密,但您可能已經送出了一條訊息。 + + 聯繫人必須處於連線狀態才能繼續。\n\n此過程將在後台自動繼續。 %1$s已介紹。 + 無法與%1$s建立有保證的端到端加密。 由%1$s介紹 由我介紹 - + 已爲%1$s更改設定。 為了保證端到端加密,您只能將帶有綠色驗證標識的聯絡人添加到此群組。\n\n您可以當面掃描聯絡人的QR碼以介紹他們。 選擇要將消息發送到的聊天 @@ -1030,7 +1051,7 @@ 翻轉 旋轉 - + 已加密的訊息 @@ -1160,7 +1181,8 @@ 點擊此處可在 Delta Chat 處於後台時接收訊息。 您已經允許 Delta Chat 在後台接收訊息。\n\n如果消息仍未在後台到達,請同時檢查您的系統設定。 - + 新功能\n\n❤️ 🔥 新的表情符號選擇器,包含更多表情符號\n\n🎮 增強的聊天應用程式:在上下文中獲取通知並打開支援應用程式,即直接打開添加的日曆條目\n\n👍獲取有關對您的消訊息的回應的通知\n\n...🛠️ 修復以及更多在%1$s + ℹ️「切換賬戶」選項已移動:點擊主螢幕右上角的賬戶大頭貼以添加或切換賬戶 💡 diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml index 29ba4a0a5..c48e1bf4f 100644 --- a/src/main/res/values/arrays.xml +++ b/src/main/res/values/arrays.xml @@ -56,6 +56,7 @@ @string/autodel_after_1_day @string/autodel_after_1_week @string/after_5_weeks + @string/autodel_after_1_year diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 949e9d498..cced2242a 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -240,14 +240,32 @@ Chat with… Clone Chat - + Broadcast List + Broadcast Lists + New Broadcast List + + Channel + + Channels + + New Channel Add Recipients + Edit Broadcast List + Broadcast List Name + Please enter a name for the broadcast list. + + Channel Name + E-Mail + + New E-Mail + + Subject Send Toggle Emoji Keyboard Edit Group @@ -257,6 +275,7 @@ Unarchive Chat Add Attachment Leave Group + Leave Channel Delete Chat Clear Chat @@ -341,6 +360,7 @@ Add to Home Screen Donate + ❤️ Seems you\'re enjoying Delta Chat!\n\nPlease consider donating to help ensure that Delta Chat stays free for everyone.\n\nWhile Delta Chat is free to use and open source, development costs money. Help us to keep Delta Chat independent and make it even more awesome in the future.\n\nhttps://delta.chat/donate Mute for 1 hour Mute for 8 hours @@ -377,7 +397,8 @@ You are invited to a video chat, click %1$s to join. - Are you sure you want to leave this group? + + Are you sure you want to leave? Delete %d chat on all your devices? Delete %d chats on all your devices? @@ -403,8 +424,10 @@ Chat with %1$s? Remove %1$s from group? - + Remove %1$s from broadcast list? + + Remove %1$s from channel? Do you want to open this link? @@ -434,7 +457,10 @@ Send a message to %1$s. + In a broadcast list, recipients will receive messages in a read-only chat with you. + + Channels are a one-to-many tool for broadcasting your messages. Others will only see this group after you sent a first message. Slide to cancel Tap and hold to record a voice message, release to send @@ -543,7 +569,7 @@ Square Grid Send Message - + %1$s changed their address from %2$s to %3$s You changed your email address from %1$s to %2$s.\n\nIf you now send a message to a verified group, contacts there will automatically replace the old with your new address.\n\nIt\'s highly advised to set up your old email provider to forward all emails to your new email address. Otherwise you might miss messages of contacts who did not get your new address yet. @@ -901,8 +927,8 @@ You removed member %1$s. Member %1$s removed by %2$s. - - You left the group. + + You left. Group left by %1$s. You deleted the group image. @@ -930,6 +956,9 @@ You set disappearing messages timer to 1 week. Disappearing messages timer set to 1 week by %1$s. + You set disappearing messages timer to 1 year. + + Disappearing messages timer set to 1 year by %1$s. You set disappearing messages timer to %1$s minutes. @@ -946,11 +975,13 @@ You set disappearing messages timer to %1$s weeks. Disappearing messages timer set to %1$s weeks by %2$s. - + %1$s sent a message from another device. - Messages are guaranteed to be end-to-end encrypted from now on. Tap to learn more. - It is now guaranteed that all messages in this chat are end-to-end encrypted.\n\nEnd-to-end encryption keeps messages private between you and your chat partners. Not even servers, providers or relays can read them. + Messages are end-to-end encrypted. Tap to learn more. + All messages in this chat are end-to-end encrypted.\n\nEnd-to-end encryption keeps messages private between you and your chat partners. Not even servers, providers or relays can read them. + %1$s sent a message from another device. Tap to learn more. + End-to-end encryption cannot be guaranteed anymore, likely because %1$s reinstalled Delta Chat or sent a message from another device.\n\nYou may meet them in person and scan their QR code again to reestablish guaranteed end-to-end encryption. ⚠️ %1$s requires end-to-end encryption which is not setup for this chat yet. Tap to learn more. To establish end-to-end-encryption, you may meet contacts in person and scan their QR Code to introduce them. @@ -1009,16 +1040,19 @@ %1$s invited you to join this group.\n\nWaiting for the device of %2$s to reply… %1$s replied, waiting for being added to the group… - Establishing guaranteed end-to-end encryption, please wait… + Establishing end-to-end encryption, please wait… Could not yet establish guaranteed end-to-end encryption, but you may already send a message. + The contact must be online to proceed.\n\nThis process will continue automatically in background. %1$s introduced. - Cannot establish guaranteed end-to-end encryption with %1$s. + + Cannot establish end-to-end encryption with %1$s. Introduced by %1$s Introduced by me - + Introduced + Changed setup for %1$s. To guarantee end-to-end-encryption, you can only add contacts with a green checkmark to this group.\n\nYou may meet contacts in person and scan their QR Code to introduce them. Select chat to send the message to @@ -1062,7 +1096,7 @@ Flip Rotate - + Encrypted message @@ -1193,6 +1227,9 @@ You already allowed Delta Chat to receive messages in the background.\n\nIf messages still do not arrive in background, please also check your system settings. + What\'s new?\n\n💯 End-to-end encryption is reliable and forever now. Padlocks 🔒 are gone!\n\n✉️ Classic email without end-to-end encryption is marked with a letter symbol\n\n😻 New enhanced profile screen for all your contacts\n\n🔲 New button for quick access to apps used in a chat\n\n❤️ Please donate to help us remain independent and continue to bring improvements: %1$s + What\'s new?\n\n❤️‍🔥 New emojis picker with more emoji\n\n🎮 Enhanced in-chat apps: Get notifications and open supporting apps in context, i.e. open an added calendar entry directly\n\n👍 Get notified about reactions to your messages\n\n... 🛠️ FIXES and EVEN MORE at %1$s + ℹ️ \"Switch Profile\" option moved: Tap your profile image in the upper corner of the main screen to add or switch profiles 💡 diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml index 1d665fc92..d12710d85 100644 --- a/src/main/res/values/themes.xml +++ b/src/main/res/values/themes.xml @@ -37,7 +37,7 @@ light @style/TextSecure.LightActionBar @style/TextSecure.LightActionBar.TabBar - @color/action_mode_status_bar + @color/delta_primary @color/delta_primary @color/delta_primary @@ -152,7 +152,7 @@ @color/gray95 @color/gray95 @style/ThemeOverlay.AppCompat.Dark - @color/action_mode_status_bar + @color/gray95 @color/text_color_dark_theme @color/text_color_secondary_dark_theme @@ -189,7 +189,7 @@ @color/light_pink @color/universal_overlay - @color/core_light_35 + @color/white @drawable/conversation_item_sent_indicator_text_shape_dark @color/core_dark_55 diff --git a/src/main/res/xml/preferences_advanced.xml b/src/main/res/xml/preferences_advanced.xml index 69cf8a872..3b310679a 100644 --- a/src/main/res/xml/preferences_advanced.xml +++ b/src/main/res/xml/preferences_advanced.xml @@ -27,7 +27,7 @@ + android:title="@string/channels"/>