mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
Compare commits
100 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e1c92712a0 | |||
| 6ec0f1bfce | |||
| db410d8b44 | |||
| cd07f3de96 | |||
| 12072a0342 | |||
| c6f3761bb9 | |||
| 673f0e78b1 | |||
| 65c8960ec8 | |||
| 089ecc67d1 | |||
| 0f84af5b32 | |||
| 710ed6dd56 | |||
| 335aabd4ff | |||
| 98c97a8aed | |||
| 23d18d2ac5 | |||
| a136b8b1e5 | |||
| 7f8b71cf28 | |||
| 9e5f2b18b9 | |||
| bdfeddecd5 | |||
| 23cbe63cd4 | |||
| f0f53455a5 | |||
| d8b49f57a9 | |||
| 7eaaf3bbb4 | |||
| d4f83cd38b | |||
| 9eca5f518e | |||
| d17bed02e6 | |||
| b4b194a59b | |||
| c6f62a2b81 | |||
| e3a9f42a56 | |||
| 323bcef1fe | |||
| 095b92b498 | |||
| 18c2ccd66c | |||
| 28fdeac01c | |||
| a7e4267b9b | |||
| d6837aa121 | |||
| 5a2913b36f | |||
| 20180fa89c | |||
| c6b89055d8 | |||
| bfda7ab2c3 | |||
| 953ce32bea | |||
| 961fa5ffe6 | |||
| b1b2959bcb | |||
| 70ef715dc6 | |||
| ffa58aae34 | |||
| 24f5209c03 | |||
| 7fd96732d6 | |||
| 6e0759f719 | |||
| 63434e1e2f | |||
| 9c17bc412a | |||
| d40144d50c | |||
| 131c0f5a37 | |||
| 7086314d8b | |||
| d75b2c2bb7 | |||
| c46d174869 | |||
| 17e03f2903 | |||
| 2c12a34051 | |||
| 2d3dde2101 | |||
| d539f5ecf2 | |||
| b17d6be4fc | |||
| 3c737f2360 | |||
| 9ac5e714b8 | |||
| 94defa3091 | |||
| 052ada221e | |||
| 1d5e4cf2a9 | |||
| c46aef3ea0 | |||
| d30e141693 | |||
| 305940396e | |||
| 2ab567a9d3 | |||
| a9c488ff03 | |||
| 8817b50c95 | |||
| 84c3710a35 | |||
| be7be9bba4 | |||
| b50ae284fb | |||
| 97716d5c26 | |||
| e77253c843 | |||
| 6aed8d003f | |||
| 0083e60c49 | |||
| 0fc79fd845 | |||
| a7c3bc7ac5 | |||
| 83b16e5f4b | |||
| ee17c6d75e | |||
| c0525ac69c | |||
| e9d2a39098 | |||
| 4d6fd16767 | |||
| b398870823 | |||
| e68c50d614 | |||
| f6a27718a2 | |||
| f136fa3e3a | |||
| 8e55a3dbf3 | |||
| 923227a0e8 | |||
| 14ecafe0e2 | |||
| b93f8323ab | |||
| 77f43cde9a | |||
| e4d018393d | |||
| 9a816090de | |||
| 4b04aa65be | |||
| 489bb55788 | |||
| 9d244611bc | |||
| 3533916149 | |||
| 66fd795763 | |||
| a58de2278b |
@@ -0,0 +1,3 @@
|
||||
ko_fi: adbenitez
|
||||
liberapay: adbenitez
|
||||
custom: "https://arcanechat.me/#contribute"
|
||||
@@ -1 +1 @@
|
||||
blank_issues_enabled: true
|
||||
blank_issues_enabled: false
|
||||
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
run: ./gradlew --no-daemon -PABI_FILTER=armeabi-v7a assembleFossDebug
|
||||
|
||||
- name: Upload APK
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: app-preview.apk
|
||||
path: 'build/outputs/apk/foss/debug/*.apk'
|
||||
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
body: '[<img src="store/get-it-on-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite) [<img src="store/get-it-on-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite) [<img src="store/get-it-on-apklis.png" alt="Disponible en Apklis" height="48">](https://www.apklis.cu/application/chat.delta.lite) [<img src="store/get-it-on-github.png" alt="Get it on GitHub" height="48">](https://github.com/ArcaneChat/android/releases/latest/download/ArcaneChat-gplay.apk)'
|
||||
body: '[<img src="store/get-it-on-gplay.png" alt="Get it on Google Play" height="48">](https://play.google.com/store/apps/details?id=com.github.arcanechat) [<img src="store/get-it-on-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite) [<img src="store/get-it-on-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite) [<img src="store/get-it-on-apklis.png" alt="Disponible en Apklis" height="48">](https://www.apklis.cu/application/chat.delta.lite) [<img src="store/get-it-on-github.png" alt="Get it on GitHub" height="48">](https://github.com/ArcaneChat/android/releases/latest/download/ArcaneChat-gplay.apk)'
|
||||
prerelease: ${{ contains(github.event.ref, '-beta') }}
|
||||
fail_on_unmatched_files: true
|
||||
files: build/outputs/apk/foss/release/*.apk
|
||||
|
||||
@@ -1,5 +1,32 @@
|
||||
# ArcaneChat Android Changelog
|
||||
|
||||
## v1.52.1
|
||||
2025-01
|
||||
|
||||
* the app now requires less storage on your SD card by deduplicating newly received/sent files
|
||||
* some small bug fixes
|
||||
* update translations
|
||||
* update to core 1.155.1
|
||||
|
||||
## v1.52.0
|
||||
2025-01
|
||||
|
||||
* new group consistency algorithm
|
||||
* fix: don't show animated .webp stickers as static stickers
|
||||
* fix the chat shortcuts (created via long-press in launcher) to properly support multi-profile
|
||||
* fix some small bugs in certain android versions and special situations
|
||||
* avoid the app freezing in slow phones in some situations
|
||||
* improve menu in the help screen
|
||||
* update translations
|
||||
* update to core 1.155.0
|
||||
|
||||
## v1.50.5
|
||||
2025-01
|
||||
|
||||
* fix push-notifications handling for certain devices where it was not working correctly
|
||||
* update translations
|
||||
* using core 1.153.0
|
||||
|
||||
## v1.50.4
|
||||
2025-01
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
## ArcaneChat Android Client
|
||||
|
||||
A [Delta Chat](https://delta.chat/) client for Android.
|
||||
A [Delta Chat](https://delta.chat/) client for Android. Learn more at: https://arcanechat.me
|
||||
|
||||
[<img src="store/get-it-on-gplay.png" alt="Get it on Google Play" height="48">](https://play.google.com/store/apps/details?id=com.github.arcanechat)
|
||||
[<img src="store/get-it-on-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite)
|
||||
[<img src="store/get-it-on-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite)
|
||||
[<img src="store/get-it-on-apklis.png" alt="Disponible en Apklis" height="48">](https://www.apklis.cu/application/chat.delta.lite)
|
||||
|
||||
+19
-12
@@ -1,5 +1,5 @@
|
||||
plugins {
|
||||
id 'com.android.application' version '8.1.4'
|
||||
id 'com.android.application' version '8.5.2'
|
||||
id 'com.google.gms.google-services' version '4.4.1'
|
||||
}
|
||||
|
||||
@@ -33,8 +33,8 @@ android {
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
defaultConfig {
|
||||
versionCode 30000704
|
||||
versionName "1.50.8"
|
||||
versionCode 30000708
|
||||
versionName "1.52.2"
|
||||
|
||||
applicationId "chat.delta.lite"
|
||||
multiDexEnabled true
|
||||
@@ -96,7 +96,7 @@ android {
|
||||
keyPassword DC_RELEASE_KEY_PASSWORD
|
||||
}
|
||||
}
|
||||
releaseGplay {
|
||||
releaseApk {
|
||||
// can be defined at `~/.gradle/gradle.properties` or at "Build/Generate signed APK"
|
||||
if(project.hasProperty("DC_RELEASE_STORE_FILE")) {
|
||||
storeFile file(DC_RELEASE_STORE_FILE)
|
||||
@@ -105,6 +105,14 @@ android {
|
||||
keyPassword DC_RELEASE_KEY_PASSWORD
|
||||
}
|
||||
}
|
||||
releaseBundle {
|
||||
if(project.hasProperty("DC_BUNDLE_STORE_FILE")) {
|
||||
storeFile file(DC_BUNDLE_STORE_FILE)
|
||||
storePassword DC_BUNDLE_STORE_PASSWORD
|
||||
keyAlias DC_BUNDLE_KEY_ALIAS
|
||||
keyPassword DC_BUNDLE_STORE_PASSWORD
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
@@ -137,7 +145,7 @@ android {
|
||||
// otherwise problems might be noticed delayed only
|
||||
minifyEnabled true
|
||||
productFlavors.foss.signingConfig signingConfigs.releaseFdroid
|
||||
productFlavors.gplay.signingConfig signingConfigs.releaseGplay
|
||||
productFlavors.gplay.signingConfig signingConfigs.releaseApk
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
@@ -201,7 +209,7 @@ dependencies {
|
||||
implementation 'com.airbnb.android:lottie:4.2.2' // Lottie animations support.
|
||||
|
||||
implementation 'androidx.sharetarget:sharetarget:1.2.0'
|
||||
implementation 'androidx.webkit:webkit:1.11.0'
|
||||
implementation 'androidx.webkit:webkit:1.12.1'
|
||||
implementation 'androidx.multidex:multidex:2.0.1'
|
||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
@@ -221,7 +229,7 @@ dependencies {
|
||||
implementation 'com.google.guava:guava:31.1-android'
|
||||
implementation 'com.google.android.exoplayer:exoplayer-core:2.19.1' // plays video and audio
|
||||
implementation 'com.google.android.exoplayer:exoplayer-ui:2.19.1'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
|
||||
implementation 'com.google.zxing:core:3.3.0' // fixed version to support SDK<24
|
||||
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
|
||||
@@ -229,14 +237,13 @@ dependencies {
|
||||
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.chrisbanes:PhotoView:2.1.3' // does the zooming on photos / media
|
||||
implementation 'com.github.penfeizhou.android.animation:glide-plugin:2.25.0' // APNG & animated webp support.
|
||||
implementation 'com.github.penfeizhou.android.animation:glide-plugin:3.0.2' // APNG & 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'
|
||||
annotationProcessor 'androidx.annotation:annotation:1.8.2'
|
||||
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.soundcloud.android:android-crop:1.0.1@aar' // used for profile and group avatar selection in Android SDK<19
|
||||
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
|
||||
@@ -251,7 +258,7 @@ dependencies {
|
||||
// <https://github.com/cketti/SafeContentResolver>
|
||||
implementation 'de.cketti.safecontentresolver:safe-content-resolver-v14:1.0.0'
|
||||
|
||||
gplayImplementation('com.google.firebase:firebase-messaging:24.0.0') { // for PUSH notifications
|
||||
gplayImplementation('com.google.firebase:firebase-messaging:24.1.0') { // for PUSH notifications
|
||||
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'
|
||||
@@ -265,7 +272,7 @@ dependencies {
|
||||
testImplementation 'org.powermock:powermock-module-junit4-rule:1.6.1'
|
||||
testImplementation 'org.powermock:powermock-classloading-xstream:1.6.1'
|
||||
|
||||
androidTestImplementation 'androidx.test:runner:1.6.1'
|
||||
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'
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
pkgs = import nixpkgs { inherit system overlays; };
|
||||
android-sdk = android.sdk.${system} (sdkPkgs:
|
||||
with sdkPkgs; [
|
||||
build-tools-33-0-1
|
||||
build-tools-34-0-0
|
||||
cmdline-tools-latest
|
||||
platform-tools
|
||||
platforms-android-34
|
||||
|
||||
@@ -1,205 +0,0 @@
|
||||
# Privacy Policy ArcaneChat Apps
|
||||
|
||||
**This is the privacy policy for the ArcaneChat (Delta Chat client) apps.**
|
||||
|
||||
## Summary
|
||||
|
||||
ArcaneChat is an e-mail app that follows a strict privacy-by-design approach. All communication data remains on the end devices or on the e-mail servers selected by the user.
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Requirement</th>
|
||||
<th>Implementation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Confidentiality</td>
|
||||
<td>
|
||||
<b>End-to-end encryption</b> by implementing <a href="https://autocrypt.org">Autocrypt</a> and <a href="https://securejoin.delta.chat/en/latest/new.html">Verified groups</a>. User-friendly end-to-end encryption means that the requirements of the GDPR are already implemented at the technical level, <b>Privacy by Design</b>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Data minimization</td>
|
||||
<td><b>No upload</b> of contact lists from your phone.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Data avoidance</td>
|
||||
<td><b>No ArcaneChat servers</b>, no processing of personal data. All data remains with your e-mail provider.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Legal basis</td>
|
||||
<td>
|
||||
There is no need to obtain consent for address book matching, <a href="https://gdpr-info.eu/art-7-gdpr/">Art.7 GDPR</a>, as no address book data is transferred. Therefore, <b>no additional legal basis</b> is required.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Data to third parties</td>
|
||||
<td>We only receive the <b>token for the push notification</b> and forward it to the provider of your operating system. If you don't want to receive push notifications, we won't forward a token.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Data from third parties</td>
|
||||
<td>
|
||||
Easy implementation in companies: ArcaneChat does not process personal data on behalf of the controller and therefore <b>does not require any instruction or data processing agreement</b>. Easy connection with the own corporate e-mail server.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
DPIA
|
||||
</td>
|
||||
<td>
|
||||
No <b>data protection impact assessment</b> needs to be carried out for ArcaneChat <a href="https://gdpr-info.eu/art-35-gdpr/">Art.35 GDPR</a>, as no specific additional data is processed beyond the e-mail messenger process.
|
||||
|
||||
The risk to the rights and freedoms of natural persons is limited to the internal company data processing of the e-mail communication and that of the e-mail providers.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Documentation
|
||||
</td>
|
||||
<td>
|
||||
Inclusion of the measures implemented by ArcaneChat in the <b>record of processing activities</b> may have a positive impact on possible evidence, <a href="https://gdpr-info.eu/art-30-gdpr/">Art.30 GDPR</a> as well as certification processes, <a href="https://gdpr-info.eu/art-25-gdpr/">Art.25 (4) GDPR</a>,<a href="https://gdpr-info.eu/art-42-gdpr/">Art.42 GDPR</a>.
|
||||
|
||||
The <b>documentation of processing activities</b> related to Messenger communication is omitted and shifts only to the record of processing activities of your e-mail provider, <a href="https://gdpr-info.eu/art-30-gdpr/">Art.30(2) GDPR</a>.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Detailed data protection information
|
||||
|
||||
### 1. Name and contact information of the data controller
|
||||
|
||||
Responsible for the processing of your personal data is
|
||||
```
|
||||
Asiel Diaz Benitez
|
||||
Reichsgrafen Str. 20
|
||||
79102 Freiburg
|
||||
Germany
|
||||
```
|
||||
E-mail: [adbenitez@duck.com](mailto:adbenitez@duck.com)
|
||||
|
||||
### 2. Processing when using the ArcaneChat e-mail messenger
|
||||
|
||||
All data is stored locally on your device or with your e-mail provider. Neither we nor ArcaneChat developers have any possibility to access the end user's data, as all communication and data processing takes place on the end user's device without ArcaneChat servers being involved. Only for the optional Push Notification (see 2.2) the Push Notification Token is processed by Delta Chat servers without them having any knowledge about the messages themselves, not even in encrypted form.
|
||||
|
||||
#### 2.1 Sign up with your e-mail provider
|
||||
|
||||
ArcaneChat communication works through your e-mail account. In order to establish the connection, the app needs the access data. These are only stored locally on your end device:
|
||||
|
||||
- e-mail address
|
||||
- your password
|
||||
|
||||
The legal basis for the processing is [Art.6 (1) lit.b GDPR](https://gdpr-info.eu/art-6-gdpr/), as you have a usage contract with us by using our services.
|
||||
|
||||
Security procedures are in place to protect the confidentiality of the data:
|
||||
Only the bare data needed to fulfil the user request of login are stored,
|
||||
encryption takes place as well as local sandboxing,
|
||||
see 2.3 for further details.
|
||||
|
||||
#### 2.2 Heartbeat push notification
|
||||
|
||||
Push notifications can be sent to the user's phone at regular intervals to enable receipt of messages while the ArcaneChat app is not currently active. Current messages can then be retrieved on the end device. The token is only created if the user wants reliable receipt of messages even when the app is not active.
|
||||
|
||||
In order to use push notifications, a unique identifier or token (Push Notification Token) is created after the app is downloaded and installed. This token allows Delta Chat servers to send notifications to the user's device. The token is generated and provided by the provider. The token is then stored on our systems and sent to the device at regular intervals to cause the app to retrieve new messages from the e-mail provider. Our systems have no knowledge of whether a message arrives or who may have sent a message.
|
||||
|
||||
The aforementioned data will only be processed with your consent, in accordance with [Art.6 (1) lit.a GDPR](https://gdpr-info.eu/art-6-gdpr/).
|
||||
|
||||
#### 2.3 Data in the app
|
||||
|
||||
The ArcaneChat app works in a data-saving way. All relevant data is stored exclusively on the respective end devices:
|
||||
|
||||
```
|
||||
- chat histories (text messages, voice messages, media, ...).
|
||||
- contacts
|
||||
- settings
|
||||
```
|
||||
ArcaneChat servers have no access to this data, not even in encrypted form, as data processing takes place only on the end devices.
|
||||
|
||||
#### 2.4 App permissions
|
||||
|
||||
Within the app, you can enter, manage, and edit various information, tasks, and activities. The app also requires the following permissions:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Permission</th>
|
||||
<th>Reason</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Internet access</td>
|
||||
<td>This is needed to send the messages to the communication partner. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Camera access</td>
|
||||
<td>
|
||||
This is needed for you to take photos and send them via the app. In addition, the camera access allows you to scan QR codes.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Microphone access (optional)</td>
|
||||
<td>
|
||||
This permission allows you to send voice messages.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Location access (optional)</td>
|
||||
<td>
|
||||
This is needed if you want to share your location with a communication partner.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Background location access (optional)</td>
|
||||
<td>
|
||||
This will be needed if you want to share your location over a certain period of time.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Contact access (optional)</td>
|
||||
<td>
|
||||
This allows you to load and save contacts from your phone book into the app. The contact data is stored locally in the app and not forwarded and stored on ArcaneChat server.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Storage (optional)
|
||||
</td>
|
||||
<td>You can save images and files from the app to your device.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
The processing and use of the above permissions are performed to provide the service. The internet access is necessary for the use, therefore the legal basis of the processing is [Art.6 (1) lit.a GDPR](https://gdpr-info.eu/art-6-gdpr/), as you have a usage contract with us by using our services.
|
||||
|
||||
The optional permissions only take place based on your consent according to [Art.6 (1) lit.a GDPR](https://gdpr-info.eu/art-6-gdpr/) and can also be reduced to individual services, e.g. only internet usage to send messages without pictures or location data. ArcaneChat does not receive any access to this data.
|
||||
|
||||
### 3. Platform dependent processing
|
||||
|
||||
Certain information is already processed automatically as soon as you use the app. We have listed below which personal data is processed exactly:
|
||||
|
||||
When you download the app, certain required information is transmitted to the app store you use ( e.g. Google Play or Apple App Store), in particular the username, the email address, the customer number of your account, the time of the download, payment information as well as the individual device identification number may be processed. The processing of this data is carried out exclusively by the respective app store and is beyond our control.
|
||||
|
||||
For the rest, we refer to the data protection policies of the respective app store providers or responsible parties of the operating systems. We do not collect and/or process any other data.
|
||||
|
||||
Your personal data will not be transferred to third parties for purposes other than those listed below.
|
||||
|
||||
# 4. Rights of the data subject
|
||||
|
||||
As a data subject of a processing of personal data, you have the right to
|
||||
|
||||
1. request information about your personal data processed by us in accordance with [Art.15 GDPR](https://gdpr-info.eu/art-15-gdpr/). In particular, you can request information about the processing purposes, the category of personal data, the categories of recipients to whom your data have been or will be disclosed, the planned storage period, the existence of a right to rectification, erasure, restriction of processing or objection, the existence of a right of complaint, the origin of your data if it has not been collected by us, as well as the existence of automated decision-making including profiling and, if applicable, meaningful information about its details;
|
||||
2. in accordance with [Art.16 GDPR](https://gdpr-info.eu/art-16-gdpr/) of the GDPR, immediately request the correction of inaccurate or incomplete personal data stored by us;
|
||||
3. pursuant to [Art.17 GDPR](https://gdpr-info.eu/art-17-gdpr/) of the GDPR, to request the erasure of your personal data stored by us, unless the processing is necessary for the exercise of the right to freedom of expression and information, for compliance with a legal obligation, for reasons of public interest, or for the establishment, exercise or defence of legal claims;
|
||||
4. pursuant to [Art.18 GDPR](https://gdpr-info.eu/art-18-gdpr/), to request the restriction of the processing of your personal data, insofar as the accuracy of the data is disputed by you, the processing is unlawful, but you object to its erasure and we no longer require the data, but you need it for the assertion, exercise or defence of legal claims or you have objected to the processing pursuant to [Art.21 GDPR](https://gdpr-info.eu/art-21-gdpr/);
|
||||
5. pursuant to [Art.20 GDPR](https://gdpr-info.eu/art-20-gdpr/), to receive your personal data that you have provided to us in a structured, common and machine-readable format or to request that it be transferred to another controller;
|
||||
6. in accordance with [Art.7 (3) GDPR](https://gdpr-info.eu/art-7-gdpr/), to revoke your consent given to us at any time. This has the consequence that we may no longer continue the data processing based on this consent in the future; and
|
||||
7. complain to a supervisory authority in accordance with [Art.77 GDPR](https://gdpr-info.eu/art-77-gdpr/) of the GDPR. As a rule, you can contact the supervisory authority of your usual place of residence or workplace.
|
||||
|
||||
|
||||
# 5. Up-to-dateness and modification of this data protection declaration
|
||||
|
||||
This data protection declaration is valid as of January 2025. Due to the further development of our website and offers or due to changed legal or official requirements, it may become necessary to revise this data protection declaration from time to time.
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=ff7bf6a86f09b9b2c40bb8f48b25fc19cf2b2664fd1d220cd7ab833ec758d0d7
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
|
||||
distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
|
||||
networkTimeout=10000
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -1667,6 +1667,18 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcMsg_getPOILocation(JNIEnv *env, jobj
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcMsg_setFileAndDeduplicate(JNIEnv *env, jobject obj, jstring file, jstring name, jstring filemime)
|
||||
{
|
||||
CHAR_REF(file);
|
||||
CHAR_REF(name);
|
||||
CHAR_REF(filemime);
|
||||
dc_msg_set_file_and_deduplicate(get_dc_msg(env, obj), filePtr, namePtr, filemimePtr);
|
||||
CHAR_UNREF(filemime);
|
||||
CHAR_UNREF(name);
|
||||
CHAR_UNREF(file);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcMsg_setDimension(JNIEnv *env, jobject obj, int width, int height)
|
||||
{
|
||||
dc_msg_set_dimension(get_dc_msg(env, obj), width, height);
|
||||
|
||||
+1
-1
Submodule jni/deltachat-core-rust updated: 7da0662be0...e98f6a2c9b
+4
-4
@@ -126,7 +126,7 @@ if test -z $1 || test $1 = armeabi-v7a; then
|
||||
TARGET_CC="$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang" \
|
||||
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
|
||||
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
|
||||
cargo build $RELEASEFLAG --target armv7-linux-androideabi -p deltachat_ffi --features jsonrpc
|
||||
cargo build $RELEASEFLAG --target armv7-linux-androideabi -p deltachat_ffi
|
||||
cp $CARGO_TARGET_DIR/armv7-linux-androideabi/$RELEASE/libdeltachat.a $jnidir/armeabi-v7a
|
||||
fi
|
||||
|
||||
@@ -135,7 +135,7 @@ if test -z $1 || test $1 = arm64-v8a; then
|
||||
TARGET_CC="$TOOLCHAIN/bin/aarch64-linux-android21-clang" \
|
||||
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
|
||||
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
|
||||
cargo build $RELEASEFLAG --target aarch64-linux-android -p deltachat_ffi --features jsonrpc
|
||||
cargo build $RELEASEFLAG --target aarch64-linux-android -p deltachat_ffi
|
||||
cp $CARGO_TARGET_DIR/aarch64-linux-android/$RELEASE/libdeltachat.a $jnidir/arm64-v8a
|
||||
fi
|
||||
|
||||
@@ -144,7 +144,7 @@ if test -z $1 || test $1 = x86; then
|
||||
TARGET_CC="$TOOLCHAIN/bin/i686-linux-android21-clang" \
|
||||
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
|
||||
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
|
||||
cargo build $RELEASEFLAG --target i686-linux-android -p deltachat_ffi --features jsonrpc
|
||||
cargo build $RELEASEFLAG --target i686-linux-android -p deltachat_ffi
|
||||
cp $CARGO_TARGET_DIR/i686-linux-android/$RELEASE/libdeltachat.a $jnidir/x86
|
||||
fi
|
||||
|
||||
@@ -153,7 +153,7 @@ fi
|
||||
TARGET_CC="$TOOLCHAIN/bin/x86_64-linux-android21-clang" \
|
||||
TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \
|
||||
TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
|
||||
cargo build $RELEASEFLAG --target x86_64-linux-android -p deltachat_ffi --features jsonrpc
|
||||
cargo build $RELEASEFLAG --target x86_64-linux-android -p deltachat_ffi
|
||||
cp $CARGO_TARGET_DIR/x86_64-linux-android/$RELEASE/libdeltachat.a $jnidir/x86_64
|
||||
fi
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@ echo ""
|
||||
echo "and now: here is Delta Chat $VERSION - choose your flavour and mind your backups:"
|
||||
echo "- 🍋 https://download.delta.chat/android/beta/deltachat-gplay-release-$VERSION.apk (google play candidate, overwrites existing installs, should keep data)"
|
||||
echo "- 🍉 https://download.delta.chat/android/beta/deltachat-foss-debug-$VERSION.apk (f-droid candidate, can be installed beside google play)"
|
||||
echo "- 🍏 https://testflight.apple.com/join/uEMc1NxS (ios, update to $VERSION may take a day or so)"
|
||||
echo ""
|
||||
echo "what to test: PLEASE_FILL_OUT"
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ public class SharingTest {
|
||||
}
|
||||
}
|
||||
Uri uri = Uri.parse("content://" + BuildConfig.APPLICATION_ID + ".attachments/" + Uri.encode(pngImage));
|
||||
DcHelper.sharedFiles.put("/" + pngImage, 1);
|
||||
DcHelper.sharedFiles.put(pngImage, 1);
|
||||
|
||||
Intent i = new Intent(Intent.ACTION_SEND);
|
||||
i.setType("image/png");
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
@@ -329,8 +328,6 @@
|
||||
android:theme="@style/TextSecure.ScribbleTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name="com.soundcloud.android.crop.CropImageActivity" />
|
||||
|
||||
<activity android:name=".InstantOnboardingActivity"
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize"
|
||||
|
||||
@@ -599,16 +599,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -621,14 +621,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -557,16 +557,15 @@ an irgendein System, das an der Zustellung von Push-Benachrichtigungen beteiligt
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Eine Delta-Chat-Anwendung erhält lokal ein „Geräte-Token“ (eine zufällige Zahl) und speichert es
|
||||
<p>Eine Delta-Chat-Anwendung erhält lokal ein „Geräte-Token“, verschlüsselt und speichert es
|
||||
auf dem <a href="https://delta.chat/chatmail">Chatmail</a>-Server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Wenn ein <a href="https://delta.chat/chatmail">Chatmail</a>-Server eine E-Mail für einen Delta-Chat-Benutzer erhält
|
||||
erhält, leitet er den „Geräte-Token“ an den zentralen Delta-Chat-Benachrichtigungs-Proxy weiter.</p>
|
||||
erhält, leitet er das verschlüsselte Geräte-Token an den zentralen Delta-Chat-Benachrichtigungs-Proxy weiter.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Der zentrale Delta-Chat-Benachrichtigungs-Proxy leitet
|
||||
das „Geräte-Token“ an den jeweiligen Push-Dienst (Apple, Google, etc.) weiter,
|
||||
<p>Der zentrale Delta-Chat-Benachrichtigungs-Proxy entschlüsselt das Geräte-Token und leitet es an den jeweiligen Push-Dienst (Apple, Google, etc.) weiter,
|
||||
ohne jemals die IP- oder E-Mail-Adresse des Delta-Chat-Benutzers zu kennen.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -578,14 +577,15 @@ und auch nie den Inhalt einer Nachricht (auch nicht in verschlüsselter Form).</
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Stand Mai 2024 kennen die Chatmail-Server die Geräte-Token,
|
||||
aber wir planen, diese Informationen an den Benachrichtigungs-Proxy zu verschlüsseln
|
||||
zu verschlüsseln, so dass der Chatmail-Server niemals das „Geräte-Token“ erfährt.</p>
|
||||
|
||||
<p>Der zentrale Delta-Chat-Benachrichtigungs-Proxy <a href="https://github.com/deltachat/notifiers">ist klein und vollständig in Rust implementiert</a>
|
||||
und vergisst die Geräte-Token, sobald Apple/Google/etc. sie verarbeitet hat,
|
||||
normalerweise innerhalb weniger Millisekunden.</p>
|
||||
|
||||
<p>Beachten Sie, dass das Geräte-Token zwischen Anwendungen und dem Benachrichtigungs-Proxy verschlüsselt,
|
||||
aber nicht signiert ist.
|
||||
Der Benachrichtigungs-Proxy sieht also niemals E-Mail-Adressen, IP-Adressen oder
|
||||
irgendwelche kryptografischen Identitätsinformationen, die mit dem Gerät oder dem Geräte-Token eines Nutzers verbunden sind.</p>
|
||||
|
||||
<p>Aufgrund dieses umfassenden Datenschutzkonzepts würde sogar die Beschlagnahmung eines Chatmail-Servers,
|
||||
oder die vollständige Beschlagnahmung des zentralen Delta-Chat-Benachrichtigungsproxys
|
||||
keine privaten Informationen preisgeben, die den zentralen Push-Diensten nicht bereits vorliegen.</p>
|
||||
|
||||
@@ -603,16 +603,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -625,14 +625,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -597,16 +597,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -619,14 +619,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<li><a href="#delta-chat-prend-il-en-charge-les-images-vidéos-et-autres-pièces-jointes-">Delta Chat prend-il en charge les images, vidéos et autres pièces jointes ?</a></li>
|
||||
<li><a href="#multiple-accounts">What are profiles? How can I switch between them?</a></li>
|
||||
<li><a href="#qui-peut-voir-ma-photo-de-profil-">Qui peut voir ma photo de profil ?</a></li>
|
||||
<li><a href="#signature">Can I set a Bio/Signature/Status/Motto with Delta Chat?</a></li>
|
||||
<li><a href="#signature">Puis-je afficher une Bio/Signature ou un Status/Motto avec Delta Chat?</a></li>
|
||||
<li><a href="#que-signifient-épingler-sourdine-et-archiver-">Que signifient “épingler”, “sourdine” et “archiver” ?</a></li>
|
||||
<li><a href="#que-signifie-le-point-vert-">Que signifie le point vert ?</a></li>
|
||||
<li><a href="#ephemeralmsgs">How do disappearing messages work?</a></li>
|
||||
@@ -115,14 +115,14 @@
|
||||
|
||||
</h2>
|
||||
|
||||
<p>Delta Chat is a reliable, decentralized and secure messaging app,
|
||||
available for mobile and desktop platforms.</p>
|
||||
<p>Delta Chat est une application de messagerie fiable, décentralisée et sécurisée,
|
||||
Disponible pour les plateformes smartphone et ordinateurs de bureau.</p>
|
||||
|
||||
<p>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 <a href="https://delta.chat/chatmail">interoperable chatmail servers</a>
|
||||
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.</p>
|
||||
<p>Delta Chat ressemble à Whatsapp ou Telegram mais vous pouvez aussi l’utiliser et la considérer comme une application e-mail.
|
||||
Vous pouvez vous inscrire anonymement à une variété <a href="https://delta.chat/chatmail">de serveurs chatmail interéopérables</a>
|
||||
Qui sont des serveurs e-mails minimalistes optimisés pour des opérations rapides et sécurisées.
|
||||
Ou vous pouvez utiliser des serveurs e-mail classiques et utiliser votre compte e-mail
|
||||
dans ce cas Delta Chat agit comme une application de courriel.</p>
|
||||
|
||||
<p><img style="float:right; width:50%; max-width:360%; margin:1em;" src="../delta-what-optim.png" /></p>
|
||||
|
||||
@@ -134,15 +134,15 @@ in which case Delta Chat acts as an e-mail app.</p>
|
||||
|
||||
</h3>
|
||||
|
||||
<p>To securely setup contact with others <a href="#howtoe2ee">scan an invite QR code
|
||||
or share an invite link</a>.
|
||||
This is required when using a (default) chatmail-based chat profile
|
||||
because chatmail servers reject un-encrypted outgoing messages.</p>
|
||||
<p>Pour établir un contact en toute sécurité avec d’autres personnes <a href="#howtoe2ee">scanner un code QR d’invitation
|
||||
ou partager un lien d’invitation</a>.
|
||||
Cette opération est nécessaire lors de l’utilisation d’un profil de discussion basé sur le chatmail (par défaut).
|
||||
car les serveurs de chatmail rejettent les messages sortants non chiffrés.</p>
|
||||
|
||||
<p>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.</p>
|
||||
<p>Si vous créez un profil discussion avec une adresse courriel classique
|
||||
vous pouvez créer manuellement un contact si vous connaissez son adresse courriel
|
||||
et lui écrire un message
|
||||
même si le destinataire n’utilise pas Delta Chat.</p>
|
||||
|
||||
<h3 id="quels-sont-les-avantages-de-delta-chat-par-rapport-aux-autres-messageries-">
|
||||
|
||||
@@ -154,23 +154,23 @@ even if the recipient is not using Delta Chat.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Anonymous chat profiles with fast, secure and interoperable <a href="https://delta.chat/chatmail">chatmail servers</a>
|
||||
which offer instant Push Notifications for iOS and Android devices.</p>
|
||||
<p>Profils anonymes de discussion avec des <a href="https://delta.chat/chatmail">serveurs de chatmail</a> rapides, sécurisés et interopérables
|
||||
qui offrent des notifications push instantanées pour les appareils iOS et Android.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Pervasive <a href="#multiple-accounts">multi-profile</a> and multi-device support on all platforms.</p>
|
||||
<p>Fonctionnalités de <a href="#multiple-accounts">multi-profil</a> et de multi-appareil supportées sur toutes les plateformes.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Interactive <a href="https://webxdc.org/apps">web apps in chats</a> for gaming and collaboration</p>
|
||||
<p><a href="https://webxdc.org/apps">web apps dans les chats</a> interactifs pour le gaming et la collaboration</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="#security-audits">Audited end-to-end encryption</a>
|
||||
safe against network and server attacks.</p>
|
||||
<p><a href="#security-audits">Chiffrement de bout en bout audité</a>
|
||||
contre les attaques ciblées sur le réseau et les serveurs.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Free and Open Source software, both app and server side.
|
||||
Built on <a href="https://github.com/deltachat/deltachat-core-rust/blob/master/standards.md">E-mail and Web Internet Standards</a>,
|
||||
<a href="https://xkcd.com/927/">to avoid “yet another standard syndrome (xkcd 927)”</a></p>
|
||||
<p>Logiciel libre et open source, à la fois appli et côté serveur.
|
||||
Construit sur des <a href="https://github.com/deltachat/deltachat-core-rust/blob/master/standards.md">Standards d’Internet et d’e-mail</a>,
|
||||
<a href="https://xkcd.com/927/">pour éviter le syndrome du “standard de plus” (xkcd 927)</a></p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -256,16 +256,16 @@ that tend to cause unsolicited messages (“spam”) sooner or later.</p>
|
||||
<h3 id="signature">
|
||||
|
||||
|
||||
Can I set a Bio/Signature/Status/Motto with Delta Chat? <a href="#signature" class="anchor"></a>
|
||||
Puis-je afficher une Bio/Signature ou un Status/Motto avec Delta Chat? <a href="#signature" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>Yes,
|
||||
you can do so under <strong>Settings → Profile → Bio</strong>.
|
||||
Your contacts who use Delta Chat will see it
|
||||
when they view your contact details.
|
||||
Moreover, it will appear as a classic e-mail signature.</p>
|
||||
<p>Oui,
|
||||
vous pouvez le faire sous <strong>Paramètres → Profil → Bio</strong>.
|
||||
Vos contacts qui utilisent Delta Chat le verront
|
||||
lorsqu’ils consulteront vos coordonnées.
|
||||
De plus, elle apparaîtra sous la forme d’une signature classique sur vos courriels.</p>
|
||||
|
||||
<h3 id="que-signifient-épingler-sourdine-et-archiver-">
|
||||
|
||||
@@ -578,16 +578,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -600,14 +600,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -603,16 +603,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -625,14 +625,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -597,17 +597,17 @@ a qualsiasi sistema coinvolto nella consegna di Notifiche Push.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Un’app Delta Chat ottiene un “gettone del dispositivo” localmente e lo memorizza
|
||||
sul server <a href="https://delta.chat/chatmail">chatmail</a>.</p>
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Quando un server <a href="https://delta.chat/chatmail">chatmail</a> riceve un’e-mail per un utente Delta Chat
|
||||
inoltra il “gettone del dispositivo” al proxy di notifica centrale di Delta Chat.</p>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Il proxy di notifica centrale di Delta Chat inoltra
|
||||
il “gettone del dispositivo” al rispettivo servizio Push (Apple, Google, ecc.),
|
||||
senza mai conoscere l’IP o l’indirizzo e-mail degli utenti Delta Chat.</p>
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Il Servizio Push centrale (Apple, Google, ecc.)
|
||||
@@ -619,14 +619,15 @@ e inoltre non vedono mai il contenuto del messaggio (anche non in forma crittogr
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>A partire da Maggio 2024, i server chatmail conoscono i “gettoni del dispositivo”
|
||||
ma prevediamo di crittografare queste informazioni nel proxy di notifica
|
||||
in modo tale che il server chatmail non apprenda mai il gettone del dispositivo.</p>
|
||||
|
||||
<p>Il proxy di notifica centrale di Delta Chat <a href="https://github.com/deltachat/notifiers">è piccolo e completamente implementato in Rust</a>
|
||||
e si dimentica dei gettoni del dispositivo non appena Apple/Google/ecc li elabora,
|
||||
di solito nel giro di pochi millisecondi.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Come risultato di questo disegno complessivo sulla riservatezza, anche il sequestro di un server chatmail,
|
||||
o il sequestro totale del proxy di notifica centrale di Delta Chat
|
||||
non rivelerebbe informazioni private che i servizi Push non abbiano già.</p>
|
||||
|
||||
@@ -597,16 +597,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -619,14 +619,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -494,23 +494,23 @@ nadal będziesz mógł pisać, ale nie będziesz już powiadamiany o żadnych no
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Aplikacja Delta Chat uzyskuje lokalnie „token urządzenia” i przechowuje go na serwerze <a href="https://delta.chat/chatmail">chatmail</a>.</p>
|
||||
<p>Aplikacja Delta Chat uzyskuje lokalnie „token urządzenia”, szyfruje i przechowuje go na serwerze <a href="https://delta.chat/chatmail">chatmail</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Kiedy serwer <a href="https://delta.chat/chatmail">chatmail</a> odbierze wiadomość e-mail od użytkownika Delta Chat, przekazuje „token urządzenia” do centralnego serwera proxy powiadomień Delta Chat.</p>
|
||||
<p>Kiedy serwer <a href="https://delta.chat/chatmail">chatmail</a> odbierze wiadomość e-mail od użytkownika Delta Chat, przekazuje zaszyfrowany token urządzenia do centralnego serwera proxy powiadomień Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Centralny serwer proxy powiadomień Delta Chat przekazuje „token urządzenia” do odpowiedniej usługi Push (Apple, Google itp.), nie znając nawet adresu IP ani adresu e-mail użytkowników Delta Chat.</p>
|
||||
<p>Centralny serwer proxy powiadomień Delta Chat deszyfruje token urządzenia i przekazuje go do odpowiedniej usługi Push (Apple, Google itp.), nie znając nawet adresu IP ani adresu e-mail użytkowników Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Centralna usługa Push (Apple, Google itp.) budzi aplikację Delta Chat na twoim urządzeniu, aby sprawdzić w tle nowe wiadomości. Nie zna chatmaila ani adresu e-mail urządzenia, na którym się budzi. Centralne usługi push Apple/Google nigdy nie widzą adresu e-mail (nadawcy ani odbiorcy), a także nigdy nie widzą treści wiadomości (również w formie zaszyfrowanej).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Od maja 2024 r. serwery chatmail znają „tokeny urządzenia”, ale planujemy szyfrować te informacje na serwerze proxy powiadomień, tak aby serwer chatmail nigdy nie poznał tokena urządzenia.</p>
|
||||
|
||||
<p>Centralny serwer proxy powiadomień Delta Chat <a href="https://github.com/deltachat/notifiers">jest mały i w pełni zaimplementowany w Rust</a> i zapomina o tokenach urządzeń zaraz po ich przetworzeniu przez Apple/Google/itp, zwykle w ciągu kilku milisekund.</p>
|
||||
|
||||
<p>Pamiętaj, że token urządzenia jest szyfrowany między aplikacjami a serwerem proxy powiadomień, ale nie jest podpisany. Serwer proxy powiadomień nigdy nie widzi adresów e-mail, adresów IP ani żadnych kryptograficznych informacji identyfikujących powiązanych z urządzeniem użytkownika (tokenem).</p>
|
||||
|
||||
<p>W wyniku tego ogólnego projektu ochrony prywatności nawet przejęcie serwera chatmail lub pełne przejęcie centralnego serwera proxy powiadomień Delta Chat nie spowodowałoby ujawnienia prywatnych informacji, których usługi Push jeszcze nie posiadają.</p>
|
||||
|
||||
<h3 id="dlaczego-delta-chat-integruje-się-ze-scentralizowanymi-zastrzeżonymi-usługami-push-applegoogle">
|
||||
@@ -945,7 +945,7 @@ W przypadku innych programów można znaleźć rozwiązanie online.</p>
|
||||
<p>W systemie <strong>iOS</strong> upewnij się, że jest przydzielony dostęp do opcji „Ustawienia » Aplikacje » Delta Chat » <strong>Sieć lokalna</strong>”</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>W systemie <strong>macOS</strong> włącz „Ustawienia systemowe » Prywatność i bezpieczeństwo » <strong>Sieć lokalna</strong> » Delta Chat”</p>
|
||||
<p>W systemie <strong>macOS</strong> włącz „Preferencje systemowe » Ochrona i prywatność » <strong>Sieć lokalna</strong> » Delta Chat”</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Twój system może mieć „zaporę ogniową”, o której wiadomo, że powoduje problemy (szczególnie w systemie Windows).
|
||||
|
||||
@@ -597,16 +597,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -619,14 +619,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -600,16 +600,16 @@ Push-уведомления недоступны.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Приложение Delta Chat локально получает “токен устройства” и сохраняет его
|
||||
<p>Приложение Delta Chat локально получает “токен устройства” шифрует его и сохраняет
|
||||
на сервере <a href="https://delta.chat/chatmail">chatmail</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Когда сервер <a href="https://delta.chat/chatmail">chatmail</a> получает электронную почту для пользователя Delta Chat
|
||||
он пересылает “токен устройства” центральному прокси-серверу уведомлений Delta Chat.</p>
|
||||
он пересылает “зашифрованный токен устройства” центральному прокси-серверу уведомлений Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Центральный прокси-сервер уведомлений Delta Chat пересылает
|
||||
“токен устройства” в соответствующую службу Push (Apple, Google и т. д.),
|
||||
<p>Центральный прокси-сервер уведомлений Delta Chat расшифровывает “токен устройства” и
|
||||
пересылает его в соответствующую службу Push (Apple, Google и т. д.),
|
||||
даже не зная IP-адрес или адрес электронной почты пользователей Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -622,14 +622,15 @@ Push-уведомления недоступны.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>По состоянию на май 2024 года серверы chatmail знают о “токенах устройства”,
|
||||
но мы планируем зашифровать эту информацию для прокси-сервера уведомлений
|
||||
так, чтобы сервер chatmail не смог получить доступ к токену устройства.</p>
|
||||
|
||||
<p>Центральный прокси-сервер уведомлений Delta Chat <a href="https://github.com/deltachat/notifiers">небольшой и полностью реализован на Rust</a>
|
||||
забывает о токенах устройств, как только Apple/Google/и т. д. обработали их,
|
||||
обычно за несколько миллисекунд.</p>
|
||||
|
||||
<p>Обратите внимание, что токен устройства шифруется между приложениями и прокси-сервером уведомлений,
|
||||
но не подписывается.
|
||||
Прокси-сервер уведомлений не получает доступ к адресам электронной почты, IP-адресам
|
||||
или криптографическим идентификационным данным устройства пользователя (токену).</p>
|
||||
|
||||
<p>В результате такого общего подхода к обеспечению конфиденциальности, даже захват почтового сервера chatmail,
|
||||
или полный захват центрального прокси-сервера уведомлений Delta Chat
|
||||
не раскроет конфиденциальную информацию, которой сервисы Push уже не обладают.</p>
|
||||
|
||||
@@ -603,16 +603,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -625,14 +625,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -605,16 +605,16 @@ to any system involved in the delivery of Push Notifications.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>A Delta Chat app obtains a “device token” locally and stores it
|
||||
<p>A Delta Chat app obtains a “device token” locally, encrypts it and stores it
|
||||
on the <a href="https://delta.chat/chatmail">chatmail</a> server.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives an e-mail for a Delta Chat user
|
||||
it forwards the “device token” to the central Delta Chat notification proxy.</p>
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Delta Chat notification proxy forwards
|
||||
the “device token” to the respective Push service (Apple, Google, etc.),
|
||||
<p>The central Delta Chat notification proxy decrypts the device token
|
||||
and forwards it to the respective Push service (Apple, Google, etc.),
|
||||
without ever knowing the IP or e-mail address of Delta Chat users.</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -627,14 +627,15 @@ and also never see any message content (also not in encrypted forms).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>As of May 2024, chatmail servers know about “device tokens”
|
||||
but we plan to encrypt this information to the notification proxy
|
||||
such that the chatmail server never learns the device token.</p>
|
||||
|
||||
<p>The central Delta Chat notification proxy <a href="https://github.com/deltachat/notifiers">is small and fully implemented in Rust</a>
|
||||
and forgets about device-tokens as soon as Apple/Google/etc processed them,
|
||||
usually in a matter of milliseconds.</p>
|
||||
|
||||
<p>Note that the device token is encrypted between apps and notification proxy
|
||||
but it is not signed.
|
||||
The notification proxy thus never sees e-mail addresses, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
|
||||
<p>Resulting from this overall privacy design, even the seizure of a chatmail server,
|
||||
or the full seizure of the central Delta Chat notification proxy
|
||||
would not reveal private information that Push services do not already have.</p>
|
||||
|
||||
@@ -498,23 +498,23 @@ Push-сповіщення автоматично активуються для
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Додаток Delta Chat отримує “токен пристрою” локально і зберігає його на сервері <a href="https://delta.chat/chatmail">chatmail</a>.</p>
|
||||
<p>Додаток Delta Chat отримує “токен пристрою” локально, шифрує його і зберігає на сервері <a href="https://delta.chat/chatmail">chatmail</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Коли <a href="https://delta.chat/chatmail">chatmail</a>-сервер отримує електронний лист від користувача Delta Chat він пересилає “токен пристрою” до центрального проксі-сповіщення Delta Chat.</p>
|
||||
<p>Коли сервер <a href="https://delta.chat/chatmail">chatmail</a> отримує електронний лист від користувача Delta Chat він пересилає зашифрований токен пристрою до центрального проксі-сервера сповіщень Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Центральний проксі-сервер сповіщень Delta Chat пересилає “токен пристрою” до відповідного Push-сервісу (Apple, Google тощо), навіть не знаючи IP-адреси чи електронної пошти користувачів Delta Chat.</p>
|
||||
<p>Центральний проксі-сервер сповіщень Delta Chat розшифровує токен пристрою і пересилає його до відповідного Push-сервісу (Apple, Google тощо), навіть не знаючи IP-адреси або електронної пошти користувачів Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Центральний Push-сервіс (Apple, Google тощо) запускає додаток Delta Chat на вашому пристрої щоб перевірити наявність нових повідомлень у фоновому режимі. Він не знає про пошту чату або адресу електронної пошти пристрою, який він пробуджує. Центральні служби Apple/Google Push ніколи не бачать адресу електронної пошти (відправника або одержувача) а також ніколи не бачать жодного вмісту повідомлення (навіть в зашифрованому вигляді).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Станом на травень 2024 року chatmail-сервери знають про “токени пристроїв” але ми плануємо зашифрувати цю інформацію для проксі-сповіщень таким чином, щоб сервер чату ніколи не дізнався токен пристрою.</p>
|
||||
|
||||
<p>Центральний проксі для сповіщень Delta Chat <a href="https://github.com/deltachat/notifiers">невеликий і повністю реалізований на Rust</a> забуває про токени пристроїв, як тільки Apple/Google/etc обробили їх, зазвичай за лічені мілісекунди.</p>
|
||||
|
||||
<p>Зверніть увагу, що токен пристрою шифрується між програмами та проксі-сповіщеннями але не підписується. Таким чином, проксі-служба сповіщень ніколи не бачить адреси електронної пошти, IP-адреси або будь-яку криптографічну ідентифікаційну інформацію, пов’язану з пристроєм користувача (токеном).</p>
|
||||
|
||||
<p>В результаті цього загального дизайну конфіденційності, навіть захоплення chatmail-сервера, або повне вилучення центрального проксі-сервера повідомлень Delta Chat не призведе до розкриття приватної інформації, якої ще не мають Push-сервіси.</p>
|
||||
|
||||
<h3 id="чому-delta-chat-інтегрується-з-централізованими-пропрієтарними-push-сервісами-applegoogle">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -161,6 +161,7 @@ public class DcMsg {
|
||||
public native void setHtml (String text);
|
||||
public native void setFile (String file, String filemime);
|
||||
public native void forceSticker ();
|
||||
public native void setFileAndDeduplicate(String file, String name, String filemime);
|
||||
public native void setDimension (int width, int height);
|
||||
public native void setDuration (int duration);
|
||||
public native void setLocation (float latitude, float longitude);
|
||||
|
||||
@@ -120,7 +120,6 @@ import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import org.thoughtcrime.securesms.util.concurrent.AssertedSuccessListener;
|
||||
import org.thoughtcrime.securesms.util.guava.Optional;
|
||||
import org.thoughtcrime.securesms.util.views.ProgressDialog;
|
||||
import org.thoughtcrime.securesms.util.views.Stub;
|
||||
import org.thoughtcrime.securesms.video.recode.VideoRecoder;
|
||||
import org.thoughtcrime.securesms.videochat.VideochatUtil;
|
||||
|
||||
@@ -740,8 +739,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
handleReplyMessage(quote);
|
||||
}
|
||||
|
||||
String filename = draft.getFile();
|
||||
if (filename.isEmpty() || !new File(filename).exists()) {
|
||||
String file = draft.getFile();
|
||||
if (file.isEmpty() || !new File(file).exists()) {
|
||||
future.set(!text.isEmpty());
|
||||
updateToggleButtonState();
|
||||
return future;
|
||||
@@ -761,26 +760,21 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
}
|
||||
};
|
||||
|
||||
File file = new File(filename);
|
||||
Uri uri = Uri.fromFile(file);
|
||||
switch (draft.getType()) {
|
||||
case DcMsg.DC_MSG_IMAGE:
|
||||
setMedia(uri, MediaType.IMAGE).addListener(listener);
|
||||
setMedia(draft, MediaType.IMAGE).addListener(listener);
|
||||
break;
|
||||
case DcMsg.DC_MSG_GIF:
|
||||
setMedia(uri, MediaType.GIF).addListener(listener);
|
||||
setMedia(draft, MediaType.GIF).addListener(listener);
|
||||
break;
|
||||
case DcMsg.DC_MSG_AUDIO:
|
||||
setMedia(uri, MediaType.AUDIO).addListener(listener);
|
||||
setMedia(draft, MediaType.AUDIO).addListener(listener);
|
||||
break;
|
||||
case DcMsg.DC_MSG_VIDEO:
|
||||
setMedia(uri, MediaType.VIDEO).addListener(listener);
|
||||
break;
|
||||
case DcMsg.DC_MSG_WEBXDC:
|
||||
setMedia(draft, MediaType.DOCUMENT).addListener(listener);
|
||||
setMedia(draft, MediaType.VIDEO).addListener(listener);
|
||||
break;
|
||||
default:
|
||||
setMedia(uri, MediaType.DOCUMENT).addListener(listener);
|
||||
setMedia(draft, MediaType.DOCUMENT).addListener(listener);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1034,7 +1028,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
msg = new DcMsg(dcContext, DcMsg.DC_MSG_FILE);
|
||||
}
|
||||
String path = attachment.getRealPath(this);
|
||||
msg.setFile(path, null);
|
||||
msg.setFileAndDeduplicate(path, attachment.getFileName(), null);
|
||||
}
|
||||
}
|
||||
msg.setText(body);
|
||||
@@ -1287,7 +1281,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
if (quote.isPresent()) {
|
||||
msg.setQuote(quote.get().getQuotedMsg());
|
||||
}
|
||||
msg.setFile(path, null);
|
||||
msg.setFileAndDeduplicate(path, null, null);
|
||||
msg.forceSticker();
|
||||
dcContext.sendMsg(chatId, msg);
|
||||
}
|
||||
|
||||
@@ -704,7 +704,7 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
index++;
|
||||
}
|
||||
}
|
||||
dcContext.markseenMsgs(ids);
|
||||
Util.runOnAnyBackgroundThread(() -> dcContext.markseenMsgs(ids));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -89,7 +89,6 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
||||
public static final String CLEAR_NOTIFICATIONS = "clear_notifications";
|
||||
public static final String ACCOUNT_ID_EXTRA = "account_id";
|
||||
public static final String FROM_WELCOME = "from_welcome";
|
||||
public static final String WARN_CANNOT_ENCRYPT = "warn_cannot_encrypt";
|
||||
|
||||
private ConversationListFragment conversationListFragment;
|
||||
public TextView title;
|
||||
@@ -278,11 +277,6 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
||||
AccountManager.getInstance().switchAccountAndStartActivity(this, accountId);
|
||||
}
|
||||
|
||||
String warnAddr = getIntent().getStringExtra(WARN_CANNOT_ENCRYPT);
|
||||
if (!TextUtils.isEmpty(warnAddr)) {
|
||||
DcHelper.showEncryptionRequiredDialog(this, warnAddr);
|
||||
}
|
||||
|
||||
refreshAvatar();
|
||||
refreshUnreadIndicator();
|
||||
refreshTitle();
|
||||
@@ -463,7 +457,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
||||
startActivity(new Intent(this, ProfileActivity.class));
|
||||
return true;
|
||||
case R.id.menu_public_bots:
|
||||
handleShowBot("puente@buzon.uy", "OPENPGP4FPR:4B41E5AFAF78A0C71DB56138D5BEFED00A45F97A#a=puente%40buzon.uy&n=Public%20Bots&i=ZC_oaJtuvJP&s=5SE96rRovsK");
|
||||
handleShowBot("botsindex@arcanechat.me", "https://i.delta.chat/#67889B0362BEDBFEE05ACD92C1D737FA632A9582&a=botsindex%40arcanechat.me&n=Public%20Bots&i=336MTEz38EH-RJxM9OKWygYK&s=TpVVGK6C4KrJmRG0bwHLalXt");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.google.android.material.textfield.TextInputLayout;
|
||||
import com.soundcloud.android.crop.Crop;
|
||||
|
||||
import org.thoughtcrime.securesms.components.AvatarSelector;
|
||||
import org.thoughtcrime.securesms.components.InputAwareLayout;
|
||||
@@ -147,10 +146,6 @@ public class CreateProfileActivity extends BaseActionBarActivity {
|
||||
case ScribbleActivity.SCRIBBLE_REQUEST_CODE:
|
||||
setAvatarView(data.getData());
|
||||
break;
|
||||
|
||||
case Crop.REQUEST_CROP:
|
||||
setAvatarView(Crop.getOutput(data));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@ import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
|
||||
import com.b44t.messenger.DcChat;
|
||||
@@ -26,7 +25,6 @@ import com.b44t.messenger.DcContext;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.soundcloud.android.crop.Crop;
|
||||
|
||||
import org.thoughtcrime.securesms.components.AvatarSelector;
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
@@ -221,22 +219,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
||||
updateGroup(groupName);
|
||||
} else {
|
||||
verified = !broadcast && allMembersVerified();
|
||||
if (verified && getAdapter().getContacts().size() == 1) {
|
||||
new AlertDialog.Builder(this)
|
||||
.setMessage(R.string.create_verified_group_ask)
|
||||
.setNeutralButton(R.string.learn_more, (d, w) -> DcHelper.openHelp(this, "#e2eeguarantee"))
|
||||
.setPositiveButton(R.string.yes, (d, w) -> {
|
||||
createGroup(groupName);
|
||||
})
|
||||
.setNegativeButton(R.string.no, (d, w) -> {
|
||||
verified = false;
|
||||
createGroup(groupName);
|
||||
})
|
||||
.setCancelable(true)
|
||||
.show();
|
||||
} else {
|
||||
createGroup(groupName);
|
||||
}
|
||||
createGroup(groupName);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -360,10 +343,6 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
||||
case ScribbleActivity.SCRIBBLE_REQUEST_CODE:
|
||||
setAvatarView(data.getData());
|
||||
break;
|
||||
|
||||
case Crop.REQUEST_CROP:
|
||||
setAvatarView(Crop.getOutput(data));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ import com.bumptech.glide.request.target.CustomTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.google.zxing.integration.android.IntentIntegrator;
|
||||
import com.google.zxing.integration.android.IntentResult;
|
||||
import com.soundcloud.android.crop.Crop;
|
||||
|
||||
import org.thoughtcrime.securesms.components.AvatarSelector;
|
||||
import org.thoughtcrime.securesms.connect.AccountManager;
|
||||
@@ -56,6 +55,7 @@ import org.thoughtcrime.securesms.profiles.ProfileMediaConstraints;
|
||||
import org.thoughtcrime.securesms.proxy.ProxySettingsActivity;
|
||||
import org.thoughtcrime.securesms.qr.RegistrationQrActivity;
|
||||
import org.thoughtcrime.securesms.scribbles.ScribbleActivity;
|
||||
import org.thoughtcrime.securesms.util.IntentUtils;
|
||||
import org.thoughtcrime.securesms.util.Prefs;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.views.ProgressDialog;
|
||||
@@ -71,7 +71,7 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
|
||||
private static final String DCACCOUNT = "dcaccount";
|
||||
private static final String DCLOGIN = "dclogin";
|
||||
private static final String INSTANCES_URL = "https://delta.chat/chatmail";
|
||||
private static final String DEFAULT_CHATMAIL_HOST = "nine.testrun.org";
|
||||
private static final String DEFAULT_CHATMAIL_HOST = "arcanechat.me";
|
||||
|
||||
public static final String QR_ACCOUNT_EXTRA = "qr_account_extra";
|
||||
public static final String FROM_WELCOME = "from_welcome";
|
||||
@@ -191,10 +191,6 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
|
||||
setAvatarView(data.getData());
|
||||
break;
|
||||
|
||||
case Crop.REQUEST_CROP:
|
||||
setAvatarView(Crop.getOutput(data));
|
||||
break;
|
||||
|
||||
case IntentIntegrator.REQUEST_CODE:
|
||||
String qrRaw = data.getStringExtra(RegistrationQrActivity.QRDATA_EXTRA);
|
||||
if (qrRaw == null) {
|
||||
@@ -333,14 +329,14 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
|
||||
|
||||
privacyPolicyBtn.setOnClickListener(view -> {
|
||||
if (!isDcLogin) {
|
||||
WebViewActivity.openUrlInBrowser(this, "https://" + providerHost + "/privacy.html");
|
||||
IntentUtils.showInBrowser(this, "https://" + providerHost + "/privacy.html");
|
||||
}
|
||||
});
|
||||
|
||||
signUpBtn.setOnClickListener(view -> createProfile());
|
||||
|
||||
findViewById(R.id.use_other_server).setOnClickListener((v) -> {
|
||||
WebViewActivity.openUrlInBrowser(this, INSTANCES_URL);
|
||||
IntentUtils.showInBrowser(this, INSTANCES_URL);
|
||||
});
|
||||
findViewById(R.id.login_button).setOnClickListener((v) -> {
|
||||
startRegistrationActivity();
|
||||
|
||||
@@ -62,16 +62,16 @@ public class LocalHelpActivity extends WebViewActivity
|
||||
webView.scrollTo(0, 0);
|
||||
return true;
|
||||
case R.id.learn_more:
|
||||
openOnlineUrl("https://delta.chat");
|
||||
openOnlineUrl("https://arcanechat.me");
|
||||
return true;
|
||||
case R.id.privacy_policy:
|
||||
openOnlineUrl("https://delta.chat/gdpr");
|
||||
openOnlineUrl("https://arcanechat.me/privacy.html");
|
||||
return true;
|
||||
case R.id.contribute:
|
||||
openOnlineUrl("https://github.com/deltachat/deltachat-android");
|
||||
openOnlineUrl("https://arcanechat.me/#contribute");
|
||||
return true;
|
||||
case R.id.report_issue:
|
||||
openOnlineUrl("https://github.com/deltachat/deltachat-android/issues");
|
||||
openOnlineUrl("https://github.com/ArcaneChat/android/issues");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -207,7 +207,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
messageRecord = null;
|
||||
long date = getIntent().getLongExtra(DATE_EXTRA, 0);
|
||||
long size = getIntent().getLongExtra(SIZE_EXTRA, 0);
|
||||
initialMedia = new MediaItem(null, getIntent().getData(), getIntent().getType(),
|
||||
initialMedia = new MediaItem(null, getIntent().getData(), null, getIntent().getType(),
|
||||
DcMsg.DC_MSG_NO_ID, date, size, false);
|
||||
|
||||
if (address != null) {
|
||||
@@ -218,7 +218,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
} else {
|
||||
messageRecord = dcContext.getMsg(msgId);
|
||||
initialMedia = new MediaItem(Recipient.fromChat(context, msgId), Uri.fromFile(messageRecord.getFileAsFile()),
|
||||
messageRecord.getFilemime(), messageRecord.getId(), messageRecord.getDateReceived(),
|
||||
messageRecord.getFilename(), messageRecord.getFilemime(), messageRecord.getId(), messageRecord.getDateReceived(),
|
||||
messageRecord.getFilebytes(), messageRecord.isOutgoing());
|
||||
conversationRecipient = Recipient.fromChat(context, msgId);
|
||||
}
|
||||
@@ -232,12 +232,11 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
// if you search for the place where the media are loaded, go to 'onCreateLoader'.
|
||||
|
||||
Log.w(TAG, "Loading Part URI: " + initialMedia);
|
||||
|
||||
if (messageRecord != null) {
|
||||
getSupportLoaderManager().restartLoader(0, null, this);
|
||||
} else {
|
||||
mediaPager.setAdapter(new SingleItemPagerAdapter(this, GlideApp.with(this),
|
||||
getWindow(), initialMedia.uri, initialMedia.type, initialMedia.size));
|
||||
getWindow(), initialMedia.uri, initialMedia.name, initialMedia.type, initialMedia.size));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,7 +312,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
private void performSavetoDisk(@NonNull MediaItem mediaItem) {
|
||||
SaveAttachmentTask saveTask = new SaveAttachmentTask(MediaPreviewActivity.this);
|
||||
long saveDate = (mediaItem.date > 0) ? mediaItem.date : System.currentTimeMillis();
|
||||
saveTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new Attachment(mediaItem.uri, mediaItem.type, saveDate, null));
|
||||
saveTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new Attachment(mediaItem.uri, mediaItem.type, saveDate, mediaItem.name));
|
||||
}
|
||||
|
||||
private void showInChat() {
|
||||
@@ -473,9 +472,12 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
MediaItemAdapter adapter = (MediaItemAdapter)mediaPager.getAdapter();
|
||||
|
||||
if (adapter != null) {
|
||||
MediaItem item = adapter.getMediaItemFor(position);
|
||||
if (item.recipient != null) item.recipient.removeListener(MediaPreviewActivity.this);
|
||||
|
||||
try {
|
||||
MediaItem item = adapter.getMediaItemFor(position);
|
||||
if (item.recipient != null) item.recipient.removeListener(MediaPreviewActivity.this);
|
||||
} catch (IllegalArgumentException e) {
|
||||
Log.w(TAG, "Ignoring invalid position index");
|
||||
}
|
||||
adapter.pause(position);
|
||||
}
|
||||
}
|
||||
@@ -486,18 +488,20 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
private final GlideRequests glideRequests;
|
||||
private final Window window;
|
||||
private final Uri uri;
|
||||
private final String name;
|
||||
private final String mediaType;
|
||||
private final long size;
|
||||
|
||||
private final LayoutInflater inflater;
|
||||
|
||||
SingleItemPagerAdapter(@NonNull Context context, @NonNull GlideRequests glideRequests,
|
||||
@NonNull Window window, @NonNull Uri uri, @NonNull String mediaType,
|
||||
@NonNull Window window, @NonNull Uri uri, @Nullable String name, @NonNull String mediaType,
|
||||
long size)
|
||||
{
|
||||
this.glideRequests = glideRequests;
|
||||
this.window = window;
|
||||
this.uri = uri;
|
||||
this.name = name;
|
||||
this.mediaType = mediaType;
|
||||
this.size = size;
|
||||
this.inflater = LayoutInflater.from(context);
|
||||
@@ -519,7 +523,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
MediaView mediaView = itemView.findViewById(R.id.media_view);
|
||||
|
||||
try {
|
||||
mediaView.set(glideRequests, window, uri, mediaType, size, true);
|
||||
mediaView.set(glideRequests, window, uri, name, mediaType, size, true);
|
||||
} catch (IOException e) {
|
||||
Log.w(TAG, e);
|
||||
}
|
||||
@@ -539,7 +543,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
|
||||
@Override
|
||||
public MediaItem getMediaItemFor(int position) {
|
||||
return new MediaItem(null, uri, mediaType, DcMsg.DC_MSG_NO_ID, -1, -1, true);
|
||||
return new MediaItem(null, uri, name, mediaType, DcMsg.DC_MSG_NO_ID, -1, -1, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -604,7 +608,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
|
||||
try {
|
||||
//noinspection ConstantConditions
|
||||
mediaView.set(glideRequests, window, Uri.fromFile(msg.getFileAsFile()),
|
||||
mediaView.set(glideRequests, window, Uri.fromFile(msg.getFileAsFile()), msg.getFilename(),
|
||||
msg.getFilemime(), msg.getFilebytes(), autoplay);
|
||||
} catch (IOException e) {
|
||||
Log.w(TAG, e);
|
||||
@@ -633,6 +637,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
|
||||
return new MediaItem(Recipient.fromChat(context, msg.getId()),
|
||||
Uri.fromFile(msg.getFileAsFile()),
|
||||
msg.getFilename(),
|
||||
msg.getFilemime(),
|
||||
msg.getId(),
|
||||
msg.getDateReceived(),
|
||||
@@ -655,6 +660,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
private static class MediaItem {
|
||||
private final @Nullable Recipient recipient;
|
||||
private final @NonNull Uri uri;
|
||||
private final @Nullable String name;
|
||||
private final @NonNull String type;
|
||||
private final int msgId;
|
||||
private final long date;
|
||||
@@ -663,6 +669,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
|
||||
private MediaItem(@Nullable Recipient recipient,
|
||||
@NonNull Uri uri,
|
||||
@Nullable String name,
|
||||
@NonNull String type,
|
||||
int msgId,
|
||||
long date,
|
||||
@@ -671,6 +678,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
||||
{
|
||||
this.recipient = recipient;
|
||||
this.uri = uri;
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
this.msgId = msgId;
|
||||
this.date = date;
|
||||
|
||||
@@ -111,8 +111,6 @@ public class NewConversationActivity extends ContactSelectionActivity {
|
||||
int contactId = dcContext.lookupContactIdByAddr(addr);
|
||||
if (contactId!=0 && dcContext.getChatIdByContactId(contactId)!=0) {
|
||||
openConversation(dcContext.getChatIdByContactId(contactId));
|
||||
} else if (contactId == 0 && dcContext.isChatmail()) {
|
||||
DcHelper.showEncryptionRequiredDialog(this, addr);
|
||||
} else {
|
||||
String nameNAddr = contactId == 0 ? addr : dcContext.getContact(contactId).getNameNAddr();
|
||||
new AlertDialog.Builder(this)
|
||||
|
||||
@@ -122,7 +122,13 @@ public class ProfileDocumentsFragment
|
||||
|
||||
noMedia.setVisibility(recyclerView.getAdapter().getItemCount() > 0 ? View.GONE : View.VISIBLE);
|
||||
if (chatId == DC_CHAT_NO_CHAT) {
|
||||
noMedia.setText(R.string.tab_all_media_empty_hint);
|
||||
if (showWebxdc) {
|
||||
noMedia.setText(R.string.all_apps_empty_hint);
|
||||
} else if (!showAudio){
|
||||
noMedia.setText(R.string.all_files_empty_hint);
|
||||
} else {
|
||||
noMedia.setText(R.string.tab_all_media_empty_hint);
|
||||
}
|
||||
} else if (showAudio) {
|
||||
noMedia.setText(R.string.tab_audio_empty_hint);
|
||||
} else if (showWebxdc) {
|
||||
|
||||
@@ -16,7 +16,6 @@ import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_PROXY_ENABLED;
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.getContext;
|
||||
import static org.thoughtcrime.securesms.service.IPCAddAccountsService.ACCOUNT_DATA;
|
||||
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
@@ -438,7 +437,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
|
||||
.setPositiveButton(R.string.perm_continue, (dialog, which)-> {
|
||||
// pass control to browser, we'll be back in business at (**)
|
||||
activity.oauth2Requested = System.currentTimeMillis();
|
||||
IntentUtils.showBrowserIntent(activity, oauth2url);
|
||||
IntentUtils.showInBrowser(activity, oauth2url);
|
||||
oauth2started.set(true);
|
||||
})
|
||||
.setCancelable(false)
|
||||
@@ -493,11 +492,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
|
||||
if (provider!=null) {
|
||||
String url = provider.getOverviewPage();
|
||||
if(!url.isEmpty()) {
|
||||
try {
|
||||
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(this, R.string.no_browser_installed, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
IntentUtils.showInBrowser(this, url);
|
||||
} else {
|
||||
// this should normally not happen
|
||||
Toast.makeText(this, "ErrProviderWithoutUrl", Toast.LENGTH_LONG).show();
|
||||
|
||||
@@ -58,6 +58,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity implement
|
||||
{
|
||||
private static final String TAG = ShareActivity.class.getSimpleName();
|
||||
|
||||
public static final String EXTRA_ACC_ID = "acc_id";
|
||||
public static final String EXTRA_CHAT_ID = "chat_id";
|
||||
public static final String EXTRA_MSG_TYPE = "msg_type";
|
||||
public static final String EXTRA_MSG_SUBJECT = "msg_subject";
|
||||
@@ -213,14 +214,10 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity implement
|
||||
}
|
||||
|
||||
private void handleResolvedMedia(Intent intent) {
|
||||
int accId = intent.getIntExtra(EXTRA_ACC_ID, -1);
|
||||
int chatId = intent.getIntExtra(EXTRA_CHAT_ID, -1);
|
||||
String msgType = intent.getStringExtra(EXTRA_MSG_TYPE);
|
||||
|
||||
String shortcutId = intent.getStringExtra(ShortcutManagerCompat.EXTRA_SHORTCUT_ID);
|
||||
if (chatId == -1 && shortcutId != null) {
|
||||
chatId = Integer.parseInt(shortcutId);
|
||||
}
|
||||
|
||||
String[] extraEmail = getIntent().getStringArrayExtra(Intent.EXTRA_EMAIL);
|
||||
/*
|
||||
usually, external app will try to start "e-mail sharing" intent, providing it:
|
||||
@@ -259,28 +256,21 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity implement
|
||||
}
|
||||
*/
|
||||
|
||||
String addr = null;
|
||||
if(chatId == -1 && extraEmail != null && extraEmail.length > 0) {
|
||||
addr = extraEmail[0];
|
||||
final String addr = extraEmail[0];
|
||||
int contactId = dcContext.lookupContactIdByAddr(addr);
|
||||
|
||||
if(contactId != 0 || !dcContext.isChatmail()) {
|
||||
if(contactId == 0) {
|
||||
contactId = dcContext.createContact(null, addr);
|
||||
}
|
||||
|
||||
chatId = dcContext.createChatByContactId(contactId);
|
||||
addr = null;
|
||||
if(contactId == 0) {
|
||||
contactId = dcContext.createContact(null, addr);
|
||||
}
|
||||
|
||||
chatId = dcContext.createChatByContactId(contactId);
|
||||
}
|
||||
Intent composeIntent;
|
||||
if (addr != null) {
|
||||
composeIntent = new Intent(this, ConversationListActivity.class);
|
||||
composeIntent.putExtra(ConversationListActivity.WARN_CANNOT_ENCRYPT, addr);
|
||||
startActivity(composeIntent);
|
||||
} else if (chatId != -1) {
|
||||
if (accId != -1 && chatId != -1) {
|
||||
composeIntent = getBaseShareIntent(ConversationActivity.class);
|
||||
composeIntent.putExtra(ConversationActivity.CHAT_ID_EXTRA, chatId);
|
||||
composeIntent.putExtra(ConversationActivity.ACCOUNT_ID_EXTRA, accId);
|
||||
RelayUtil.setSharedType(composeIntent, msgType);
|
||||
RelayUtil.setSharedUris(composeIntent, resolvedExtras);
|
||||
startActivity(composeIntent);
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.webkit.ProxyController;
|
||||
import androidx.webkit.ProxyConfig;
|
||||
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
import org.thoughtcrime.securesms.util.IntentUtils;
|
||||
|
||||
public class WebViewActivity extends PassphraseRequiredActionBarActivity
|
||||
implements SearchView.OnQueryTextListener,
|
||||
@@ -278,16 +279,8 @@ public class WebViewActivity extends PassphraseRequiredActionBarActivity
|
||||
// onBackPressed() can be overwritten by derived classes as needed.
|
||||
// the default behavior (close the activity) is just fine eg. for Webxdc, Connectivity, HTML-mails
|
||||
|
||||
public static void openUrlInBrowser(Context context, String url) {
|
||||
try {
|
||||
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(context, R.string.no_browser_installed, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean openOnlineUrl(String url) {
|
||||
openUrlInBrowser(this, url);
|
||||
IntentUtils.showInBrowser(this, url);
|
||||
// returning `true` causes the WebView to abort loading
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Base64;
|
||||
@@ -46,6 +45,7 @@ import org.json.JSONObject;
|
||||
import org.thoughtcrime.securesms.connect.AccountManager;
|
||||
import org.thoughtcrime.securesms.connect.DcEventCenter;
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.util.IntentUtils;
|
||||
import org.thoughtcrime.securesms.util.JsonUtils;
|
||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||
import org.thoughtcrime.securesms.util.Prefs;
|
||||
@@ -294,7 +294,7 @@ public class WebxdcActivity extends WebViewActivity implements DcEventCenter.DcE
|
||||
addToHomeScreen(this, dcAppMsg.getId());
|
||||
return true;
|
||||
case R.id.source_code:
|
||||
openUrlInBrowser(this, sourceCodeUrl);
|
||||
IntentUtils.showInBrowser(this, sourceCodeUrl);
|
||||
return true;
|
||||
case R.id.show_in_chat:
|
||||
showInChat();
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.b44t.messenger.rpc.RpcException;
|
||||
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.providers.PersistentBlobProvider;
|
||||
import org.thoughtcrime.securesms.util.IntentUtils;
|
||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||
import org.thoughtcrime.securesms.util.Prefs;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
@@ -68,7 +69,7 @@ public class WebxdcStoreActivity extends PassphraseRequiredActionBarActivity {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
WebViewActivity.openUrlInBrowser(WebxdcStoreActivity.this, url);
|
||||
IntentUtils.showInBrowser(WebxdcStoreActivity.this, url);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -93,7 +93,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().setTitle(canGoBack? R.string.add_account : R.string.app_name);
|
||||
}
|
||||
|
||||
private void registerForEvents() {
|
||||
|
||||
@@ -48,7 +48,7 @@ public class AudioRecorder {
|
||||
ParcelFileDescriptor fds[] = ParcelFileDescriptor.createPipe();
|
||||
|
||||
captureUri = blobProvider.create(context, new ParcelFileDescriptor.AutoCloseInputStream(fds[0]),
|
||||
MediaUtil.AUDIO_AAC, null, null);
|
||||
MediaUtil.AUDIO_AAC, "voice.aac", null);
|
||||
audioCodec = new AudioCodec(context);
|
||||
|
||||
audioCodec.start(new ParcelFileDescriptor.AutoCloseOutputStream(fds[1]));
|
||||
|
||||
@@ -87,11 +87,14 @@ public class AudioSlidePlayer {
|
||||
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
|
||||
if (playbackState == Player.STATE_READY) {
|
||||
Util.runOnMain(() -> {
|
||||
Log.d(TAG, "request duration " + durationCalculator.getDuration());
|
||||
getListener().onReceivedDuration(Long.valueOf(durationCalculator.getDuration()).intValue());
|
||||
durationCalculator.release();
|
||||
durationCalculator.removeListener(this);
|
||||
durationCalculator = null;
|
||||
synchronized (AudioSlidePlayer.this) {
|
||||
if (durationCalculator == null) return;
|
||||
Log.d(TAG, "request duration " + durationCalculator.getDuration());
|
||||
getListener().onReceivedDuration(Long.valueOf(durationCalculator.getDuration()).intValue());
|
||||
durationCalculator.release();
|
||||
durationCalculator.removeListener(this);
|
||||
durationCalculator = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,8 @@ package org.thoughtcrime.securesms.components;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
@@ -55,6 +53,7 @@ public class MediaView extends FrameLayout {
|
||||
public void set(@NonNull GlideRequests glideRequests,
|
||||
@NonNull Window window,
|
||||
@NonNull Uri source,
|
||||
@Nullable String fileName,
|
||||
@NonNull String mediaType,
|
||||
long size,
|
||||
boolean autoplay)
|
||||
@@ -68,7 +67,7 @@ public class MediaView extends FrameLayout {
|
||||
imageView.setVisibility(View.GONE);
|
||||
videoView.get().setVisibility(View.VISIBLE);
|
||||
videoView.get().setWindow(window);
|
||||
videoView.get().setVideoSource(new VideoSlide(getContext(), source, size), autoplay);
|
||||
videoView.get().setVideoSource(new VideoSlide(getContext(), source, fileName, size), autoplay);
|
||||
} else {
|
||||
throw new IOException("Unsupported media type: " + mediaType);
|
||||
}
|
||||
|
||||
@@ -29,7 +29,12 @@ public class AttachmentsContentProvider extends ContentProvider {
|
||||
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
|
||||
DcContext dcContext = DcHelper.getContext(getContext());
|
||||
|
||||
String path = uri.getPath();
|
||||
// `uri` originally comes from DcHelper.openForViewOrShare() and
|
||||
// looks like `content://chat.delta.attachments/ef39a39/text.txt`
|
||||
// where ef39a39 is the file in the blob directory
|
||||
// and text.txt is the original name of the file, as returned by `msg.getFilename()`.
|
||||
// `uri.getPathSegments()` returns ["ef39a39", "text.txt"] in this example.
|
||||
String path = uri.getPathSegments().get(0);
|
||||
if (!DcHelper.sharedFiles.containsKey(path)) {
|
||||
throw new FileNotFoundException("File was not shared before.");
|
||||
}
|
||||
|
||||
@@ -284,6 +284,7 @@ public class DcHelper {
|
||||
|
||||
DcMsg msg = dcContext.getMsg(msg_id);
|
||||
String path = msg.getFile();
|
||||
String filename = msg.getFilename();
|
||||
String mimeType = msg.getFilemime();
|
||||
try {
|
||||
File file = new File(path);
|
||||
@@ -294,8 +295,11 @@ public class DcHelper {
|
||||
|
||||
Uri uri;
|
||||
if (path.startsWith(dcContext.getBlobdir())) {
|
||||
uri = Uri.parse("content://" + BuildConfig.APPLICATION_ID + ".attachments/" + Uri.encode(file.getName()));
|
||||
sharedFiles.put("/" + file.getName(), 1); // as different Android version handle uris in putExtra differently, we also check them on our own
|
||||
// Build a Uri that will later be passed to AttachmentsContentProvider.openFile().
|
||||
// The last part needs to be `filename`, i.e. the original, user-visible name of the file,
|
||||
// so that the external apps show the name of the file correctly.
|
||||
uri = Uri.parse("content://" + BuildConfig.APPLICATION_ID + ".attachments/" + Uri.encode(file.getName()) + "/" + Uri.encode(filename));
|
||||
sharedFiles.put(file.getName(), 1); // as different Android version handle uris in putExtra differently, we also check them on our own
|
||||
} else {
|
||||
if (Build.VERSION.SDK_INT >= 24) {
|
||||
uri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".fileprovider", file);
|
||||
@@ -305,7 +309,7 @@ public class DcHelper {
|
||||
}
|
||||
|
||||
if (cmd.equals(Intent.ACTION_VIEW)) {
|
||||
mimeType = checkMime(path, mimeType);
|
||||
mimeType = checkMime(filename, mimeType);
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setDataAndType(uri, mimeType);
|
||||
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
@@ -377,6 +381,13 @@ public class DcHelper {
|
||||
return mimeType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the path of a not-yet-existing file in the blobdir with roughly the given filename
|
||||
* and the given extension.
|
||||
* In many cases, since we're using setFileAndDeduplicate now, this wouldn't be necessary anymore
|
||||
* and we could just create a file with a random filename,
|
||||
* but there are a few usages that still need the current behavior (like `openMaps()`).
|
||||
*/
|
||||
public static String getBlobdirFile(DcContext dcContext, String filename, String ext) {
|
||||
filename = FileUtils.sanitizeFilename(filename);
|
||||
ext = FileUtils.sanitizeFilename(ext);
|
||||
@@ -494,16 +505,6 @@ public class DcHelper {
|
||||
.show();
|
||||
}
|
||||
|
||||
public static void showEncryptionRequiredDialog(Context context, String addr) {
|
||||
new AlertDialog.Builder(context)
|
||||
.setMessage(context.getString(R.string.encryption_required_for_new_contact, addr))
|
||||
.setNeutralButton(R.string.learn_more, (d, w) -> openHelp(context, "#howtoe2ee"))
|
||||
.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 openWebxdc(Context context, DcMsg dcMsg) {
|
||||
JSONObject info = dcMsg.getWebxdcInfo();
|
||||
if (JsonUtils.optBoolean(info, "community")) {
|
||||
|
||||
@@ -125,6 +125,7 @@ public class DirectShareUtil {
|
||||
|
||||
Intent intent = new Intent(context, ShareActivity.class);
|
||||
intent.setAction(Intent.ACTION_SEND);
|
||||
intent.putExtra(ShareActivity.EXTRA_ACC_ID, dcContext.getAccountId());
|
||||
intent.putExtra(ShareActivity.EXTRA_CHAT_ID, chat.getId());
|
||||
|
||||
Recipient recipient = new Recipient(context, chat);
|
||||
|
||||
@@ -23,7 +23,6 @@ import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
@@ -67,7 +66,6 @@ import org.thoughtcrime.securesms.permissions.Permissions;
|
||||
import org.thoughtcrime.securesms.providers.PersistentBlobProvider;
|
||||
import org.thoughtcrime.securesms.scribbles.ScribbleActivity;
|
||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import org.thoughtcrime.securesms.util.guava.Optional;
|
||||
import org.thoughtcrime.securesms.util.views.Stub;
|
||||
@@ -256,11 +254,11 @@ public class AttachmentManager {
|
||||
return new DocumentSlide(context, msg);
|
||||
}
|
||||
else if (PartAuthority.isLocalUri(uri)) {
|
||||
return getManuallyCalculatedSlideInfo(uri, width, height);
|
||||
return getManuallyCalculatedSlideInfo(uri, width, height, msg);
|
||||
} else {
|
||||
Slide result = getContentResolverSlideInfo(uri, width, height, chatId);
|
||||
|
||||
if (result == null) return getManuallyCalculatedSlideInfo(uri, width, height);
|
||||
if (result == null) return getManuallyCalculatedSlideInfo(uri, width, height, msg);
|
||||
else return result;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
@@ -361,16 +359,21 @@ public class AttachmentManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
private @NonNull Slide getManuallyCalculatedSlideInfo(Uri uri, int width, int height) throws IOException {
|
||||
private @NonNull Slide getManuallyCalculatedSlideInfo(Uri uri, int width, int height, @Nullable DcMsg msg) throws IOException {
|
||||
long start = System.currentTimeMillis();
|
||||
Long mediaSize = null;
|
||||
String fileName = null;
|
||||
String mimeType = null;
|
||||
|
||||
if (msg != null) {
|
||||
fileName = msg.getFilename();
|
||||
mimeType = msg.getFilemime();
|
||||
}
|
||||
|
||||
if (PartAuthority.isLocalUri(uri)) {
|
||||
mediaSize = PartAuthority.getAttachmentSize(context, uri);
|
||||
fileName = PartAuthority.getAttachmentFileName(context, uri);
|
||||
mimeType = PartAuthority.getAttachmentContentType(context, uri);
|
||||
if (fileName == null) fileName = PartAuthority.getAttachmentFileName(context, uri);
|
||||
if (mimeType == null) mimeType = PartAuthority.getAttachmentContentType(context, uri);
|
||||
}
|
||||
|
||||
if (mediaSize == null) {
|
||||
@@ -675,10 +678,10 @@ public class AttachmentManager {
|
||||
}
|
||||
|
||||
switch (this) {
|
||||
case IMAGE: return new ImageSlide(context, uri, dataSize, width, height);
|
||||
case GIF: return new GifSlide(context, uri, dataSize, width, height);
|
||||
case IMAGE: return new ImageSlide(context, uri, fileName, dataSize, width, height);
|
||||
case GIF: return new GifSlide(context, uri, fileName, dataSize, width, height);
|
||||
case AUDIO: return new AudioSlide(context, uri, dataSize, false, fileName);
|
||||
case VIDEO: return new VideoSlide(context, uri, dataSize);
|
||||
case VIDEO: return new VideoSlide(context, uri, fileName, dataSize);
|
||||
case DOCUMENT:
|
||||
// We have to special-case Webxdc slides: The user can interact with them as soon as a draft
|
||||
// is set. Therefore we need to create a DcMsg already now.
|
||||
@@ -687,7 +690,7 @@ public class AttachmentManager {
|
||||
DcMsg msg = new DcMsg(dcContext, DcMsg.DC_MSG_WEBXDC);
|
||||
Attachment attachment = new UriAttachment(uri, null, MediaUtil.WEBXDC, AttachmentDatabase.TRANSFER_PROGRESS_STARTED, 0, 0, 0, fileName, null, false);
|
||||
String path = attachment.getRealPath(context);
|
||||
msg.setFile(path, MediaUtil.WEBXDC);
|
||||
msg.setFileAndDeduplicate(path, fileName, MediaUtil.WEBXDC);
|
||||
dcContext.setDraft(chatId, msg);
|
||||
return new DocumentSlide(context, msg);
|
||||
}
|
||||
|
||||
@@ -14,8 +14,8 @@ public class GifSlide extends ImageSlide {
|
||||
super(context, dcMsg);
|
||||
}
|
||||
|
||||
public GifSlide(Context context, Uri uri, long size, int width, int height) {
|
||||
super(context, constructAttachmentFromUri(context, uri, MediaUtil.IMAGE_GIF, size, width, height, uri, null, false));
|
||||
public GifSlide(Context context, Uri uri, String fileName, long size, int width, int height) {
|
||||
super(context, constructAttachmentFromUri(context, uri, MediaUtil.IMAGE_GIF, size, width, height, uri, fileName, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -39,8 +39,8 @@ public class ImageSlide extends Slide {
|
||||
super(context, attachment);
|
||||
}
|
||||
|
||||
public ImageSlide(Context context, Uri uri, long size, int width, int height) {
|
||||
super(context, constructAttachmentFromUri(context, uri, MediaUtil.IMAGE_JPEG, size, width, height, uri, null, false));
|
||||
public ImageSlide(Context context, Uri uri, String fileName, long size, int width, int height) {
|
||||
super(context, constructAttachmentFromUri(context, uri, MediaUtil.IMAGE_JPEG, size, width, height, uri, fileName, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -15,8 +15,6 @@ import com.bumptech.glide.Registry;
|
||||
import com.bumptech.glide.annotation.GlideModule;
|
||||
import com.bumptech.glide.load.model.UnitModelLoader;
|
||||
import com.bumptech.glide.module.AppGlideModule;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.github.penfeizhou.animation.glide.AnimationDecoderOption;
|
||||
|
||||
import com.caverock.androidsvg.SVG;
|
||||
|
||||
@@ -42,7 +40,6 @@ public class SignalGlideModule extends AppGlideModule {
|
||||
@Override
|
||||
public void applyOptions(Context context, GlideBuilder builder) {
|
||||
builder.setLogLevel(Log.ERROR);
|
||||
builder.setDefaultRequestOptions(new RequestOptions().set(AnimationDecoderOption.DISABLE_ANIMATION_APNG_DECODER, true));
|
||||
// builder.setDiskCache(new NoopDiskCacheFactory());
|
||||
}
|
||||
|
||||
|
||||
@@ -30,16 +30,16 @@ import java.io.File;
|
||||
|
||||
public class VideoSlide extends Slide {
|
||||
|
||||
private static Attachment constructVideoAttachment(Context context, Uri uri, long dataSize)
|
||||
private static Attachment constructVideoAttachment(Context context, Uri uri, String fileName, long dataSize)
|
||||
{
|
||||
Uri thumbnailUri = Uri.fromFile(new File(DcHelper.getBlobdirFile(DcHelper.getContext(context), "temp-preview.jpg")));
|
||||
MediaUtil.ThumbnailSize retWh = new MediaUtil.ThumbnailSize(0, 0);
|
||||
MediaUtil.createVideoThumbnailIfNeeded(context, uri, thumbnailUri, retWh);
|
||||
return constructAttachmentFromUri(context, uri, MediaUtil.VIDEO_UNSPECIFIED, dataSize, retWh.width, retWh.height, thumbnailUri, null, false);
|
||||
return constructAttachmentFromUri(context, uri, MediaUtil.VIDEO_UNSPECIFIED, dataSize, retWh.width, retWh.height, thumbnailUri, fileName, false);
|
||||
}
|
||||
|
||||
public VideoSlide(Context context, Uri uri, long dataSize) {
|
||||
super(context, constructVideoAttachment(context, uri, dataSize));
|
||||
public VideoSlide(Context context, Uri uri, String fileName, long dataSize) {
|
||||
super(context, constructVideoAttachment(context, uri, fileName, dataSize));
|
||||
}
|
||||
|
||||
public VideoSlide(Context context, DcMsg dcMsg) {
|
||||
|
||||
@@ -12,7 +12,6 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.b44t.messenger.DcContext;
|
||||
import com.soundcloud.android.crop.Crop;
|
||||
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.scribbles.ScribbleActivity;
|
||||
|
||||
@@ -72,6 +72,9 @@ public class PersistentBlobProvider {
|
||||
@Nullable String fileName)
|
||||
{
|
||||
final long id = System.currentTimeMillis();
|
||||
if (fileName == null) {
|
||||
fileName = "file." + MediaUtil.getExtensionFromMimeType(mimeType);
|
||||
}
|
||||
return create(context, new ByteArrayInputStream(blobBytes), id, mimeType, fileName, (long) blobBytes.length);
|
||||
}
|
||||
|
||||
@@ -81,6 +84,9 @@ public class PersistentBlobProvider {
|
||||
@Nullable String fileName,
|
||||
@Nullable Long fileSize)
|
||||
{
|
||||
if (fileName == null) {
|
||||
fileName = "file." + MediaUtil.getExtensionFromMimeType(mimeType);
|
||||
}
|
||||
return create(context, input, System.currentTimeMillis(), mimeType, fileName, fileSize);
|
||||
}
|
||||
|
||||
|
||||
@@ -113,9 +113,12 @@ public class QrActivity extends BaseActionBarActivity implements View.OnClickLis
|
||||
menu.clear();
|
||||
getMenuInflater().inflate(R.menu.qr_show, menu);
|
||||
menu.findItem(R.id.new_classic_contact).setVisible(!DcHelper.getContext(this).isChatmail());
|
||||
|
||||
Util.redMenuItem(menu, R.id.withdraw);
|
||||
if(tabLayout.getSelectedTabPosition() == TAB_SCAN) {
|
||||
menu.findItem(R.id.withdraw).setVisible(false);
|
||||
}
|
||||
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ public class QrCodeHandler {
|
||||
showDoneToast(activity);
|
||||
});
|
||||
if (rawString.toLowerCase().startsWith("http")) {
|
||||
builder.setNeutralButton(R.string.open, (d, b) -> IntentUtils.showBrowserIntent(activity, rawString));
|
||||
builder.setNeutralButton(R.string.open, (d, b) -> IntentUtils.showInBrowser(activity, rawString));
|
||||
}
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
builder.setCancelable(false);
|
||||
@@ -115,35 +115,27 @@ public class QrCodeHandler {
|
||||
break;
|
||||
|
||||
case DcContext.DC_QR_WITHDRAW_VERIFYCONTACT:
|
||||
builder.setMessage(activity.getString(R.string.withdraw_verifycontact_explain));
|
||||
builder.setPositiveButton(R.string.withdraw_qr_code, (dialog, which) -> {
|
||||
case DcContext.DC_QR_WITHDRAW_VERIFYGROUP:
|
||||
String message = qrParsed.getState() == DcContext.DC_QR_WITHDRAW_VERIFYCONTACT ? activity.getString(R.string.withdraw_verifycontact_explain)
|
||||
: activity.getString(R.string.withdraw_verifygroup_explain, qrParsed.getText1());
|
||||
builder.setTitle(R.string.qrshow_title);
|
||||
builder.setMessage(message);
|
||||
builder.setNeutralButton(R.string.reset, (dialog, which) -> {
|
||||
dcContext.setConfigFromQr(rawString);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
break;
|
||||
builder.setPositiveButton(R.string.ok, null);
|
||||
AlertDialog withdrawDialog = builder.show();
|
||||
Util.redButton(withdrawDialog, AlertDialog.BUTTON_NEUTRAL);
|
||||
return;
|
||||
|
||||
case DcContext.DC_QR_REVIVE_VERIFYCONTACT:
|
||||
builder.setMessage(activity.getString(R.string.revive_verifycontact_explain));
|
||||
builder.setPositiveButton(R.string.revive_qr_code, (dialog, which) -> {
|
||||
dcContext.setConfigFromQr(rawString);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
break;
|
||||
|
||||
case DcContext.DC_QR_WITHDRAW_VERIFYGROUP:
|
||||
builder.setMessage(activity.getString(R.string.withdraw_verifygroup_explain, qrParsed.getText1()));
|
||||
builder.setPositiveButton(R.string.withdraw_qr_code, (dialog, which) -> {
|
||||
dcContext.setConfigFromQr(rawString);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
break;
|
||||
|
||||
case DcContext.DC_QR_REVIVE_VERIFYGROUP:
|
||||
builder.setMessage(activity.getString(R.string.revive_verifygroup_explain, qrParsed.getText1()));
|
||||
builder.setPositiveButton(R.string.revive_qr_code, (dialog, which) -> {
|
||||
builder.setTitle(R.string.qrshow_title);
|
||||
builder.setMessage(activity.getString(R.string.revive_verifycontact_explain));
|
||||
builder.setNeutralButton(R.string.revive_qr_code, (dialog, which) -> {
|
||||
dcContext.setConfigFromQr(rawString);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
builder.setPositiveButton(R.string.ok, null);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -182,7 +174,7 @@ public class QrCodeHandler {
|
||||
final String url = qrParsed.getText1();
|
||||
String msg = String.format(activity.getString(R.string.qrscan_contains_url), url);
|
||||
builder.setMessage(msg);
|
||||
builder.setPositiveButton(R.string.open, (dialog, which) -> IntentUtils.showBrowserIntent(activity, url));
|
||||
builder.setPositiveButton(R.string.open, (dialog, which) -> IntentUtils.showInBrowser(activity, url));
|
||||
builder.setNegativeButton(android.R.string.cancel, null);
|
||||
builder.setNeutralButton(R.string.menu_copy_to_clipboard, (dialog, which) -> {
|
||||
Util.writeTextToClipboard(activity, url);
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.connect.DcEventCenter;
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
|
||||
public class QrShowActivity extends AppCompatActivity {
|
||||
|
||||
@@ -68,6 +69,7 @@ public class QrShowActivity extends AppCompatActivity {
|
||||
menu.findItem(R.id.new_classic_contact).setVisible(false);
|
||||
menu.findItem(R.id.paste).setVisible(false);
|
||||
menu.findItem(R.id.load_from_image).setVisible(false);
|
||||
Util.redMenuItem(menu, R.id.withdraw);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
|
||||
@@ -139,15 +139,19 @@ public class QrShowFragment extends Fragment implements DcEventCenter.DcEventDel
|
||||
|
||||
public void withdrawQr() {
|
||||
Activity activity = getActivity();
|
||||
String message = chatId == 0 ? activity.getString(R.string.withdraw_verifycontact_explain)
|
||||
: activity.getString(R.string.withdraw_verifygroup_explain, dcContext.getChat(chatId).getName());
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
builder.setMessage(activity.getString(R.string.withdraw_verifycontact_explain));
|
||||
builder.setPositiveButton(R.string.withdraw_qr_code, (dialog, which) -> {
|
||||
builder.setTitle(R.string.withdraw_qr_code);
|
||||
builder.setMessage(message);
|
||||
builder.setPositiveButton(R.string.reset, (dialog, which) -> {
|
||||
DcContext dcContext = DcHelper.getContext(activity);
|
||||
dcContext.setConfigFromQr(dcContext.getSecurejoinQr(chatId));
|
||||
activity.finish();
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
builder.create().show();
|
||||
AlertDialog dialog = builder.show();
|
||||
Util.redPositiveButton(dialog);
|
||||
}
|
||||
|
||||
public void showInviteLinkDialog() {
|
||||
|
||||
@@ -49,14 +49,14 @@ public final class FetchForegroundService extends Service {
|
||||
// The background fetch was successful, but we need to wait until all events were processed.
|
||||
// After all events were processed, we will get DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE,
|
||||
// and stop() will be called.
|
||||
while (fetchingSynchronously) {
|
||||
try {
|
||||
// The `wait()` needs to be enclosed in a while loop because there may be
|
||||
// "spurious wake-ups", i.e. `wait()` may return even though `notifyAll()` wasn't called.
|
||||
synchronized (STOP_NOTIFIER) {
|
||||
synchronized (STOP_NOTIFIER) {
|
||||
while (fetchingSynchronously) {
|
||||
try {
|
||||
// The `wait()` needs to be enclosed in a while loop because there may be
|
||||
// "spurious wake-ups", i.e. `wait()` may return even though `notifyAll()` wasn't called.
|
||||
STOP_NOTIFIER.wait();
|
||||
}
|
||||
} catch (InterruptedException ex) { }
|
||||
} catch (InterruptedException ex) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,18 @@ package org.thoughtcrime.securesms.util;
|
||||
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class IntentUtils {
|
||||
@@ -19,9 +23,13 @@ public class IntentUtils {
|
||||
return resolveInfoList != null && resolveInfoList.size() > 1;
|
||||
}
|
||||
|
||||
public static void showBrowserIntent(Context context, String url) {
|
||||
public static void showInBrowser(Context context, String url) {
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
||||
context.startActivity(browserIntent);
|
||||
try {
|
||||
context.startActivity(browserIntent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Toast.makeText(context, R.string.no_browser_installed, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
public static int FLAG_MUTABLE() {
|
||||
|
||||
@@ -58,18 +58,14 @@ public class LongClickCopySpan extends ClickableSpan {
|
||||
String addr = prepareUrl(url);
|
||||
Activity activity = (Activity) widget.getContext();
|
||||
DcContext dcContext = DcHelper.getContext(activity);
|
||||
int contactId = dcContext.lookupContactIdByAddr(addr);
|
||||
DcContact contact = (contactId != 0)? dcContext.getContact(contactId) : null;
|
||||
if (contact != null && !contact.isBlocked() && dcContext.getChatIdByContactId(contactId) != 0) {
|
||||
DcContact contact = dcContext.getContact(dcContext.createContact(null, addr));
|
||||
if (contact.getId() != 0 && !contact.isBlocked() && dcContext.getChatIdByContactId(contact.getId()) != 0) {
|
||||
openChat(activity, contact);
|
||||
} else if (contact == null && dcContext.isChatmail()) {
|
||||
DcHelper.showEncryptionRequiredDialog(activity, addr);
|
||||
} else {
|
||||
String nameNAddr = contact != null ? contact.getNameNAddr() : addr;
|
||||
new AlertDialog.Builder(activity)
|
||||
.setMessage(activity.getString(R.string.ask_start_chat_with, nameNAddr))
|
||||
.setMessage(activity.getString(R.string.ask_start_chat_with, contact.getNameNAddr()))
|
||||
.setPositiveButton(android.R.string.ok, (dialog, which) -> {
|
||||
openChat(activity, contact == null? dcContext.getContact(dcContext.createContact(null, addr)) : contact);
|
||||
openChat(activity, contact);
|
||||
})
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.show();
|
||||
@@ -87,7 +83,7 @@ public class LongClickCopySpan extends ClickableSpan {
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(activity);
|
||||
qrCodeHandler.handleQrData(url);
|
||||
} else {
|
||||
IntentUtils.showBrowserIntent(widget.getContext(), url);
|
||||
IntentUtils.showInBrowser(widget.getContext(), url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ public class Prefs {
|
||||
}
|
||||
|
||||
public static boolean isLocationStreamingEnabled(Context context) {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isDeveloperModeEnabled(Context context) {
|
||||
|
||||
@@ -122,7 +122,7 @@ public class SendRelayedMessageUtil {
|
||||
}
|
||||
|
||||
if (uri != null) {
|
||||
message.setFile(getRealPathFromUri(context, uri), mimeType);
|
||||
setFileFromUri(context, uri, message, mimeType);
|
||||
}
|
||||
if (html != null) {
|
||||
message.setHtml(html);
|
||||
@@ -136,11 +136,12 @@ public class SendRelayedMessageUtil {
|
||||
return message;
|
||||
}
|
||||
|
||||
private static String getRealPathFromUri(Context context, Uri uri) throws NullPointerException {
|
||||
private static void setFileFromUri(Context context, Uri uri, DcMsg message, String mimeType) {
|
||||
String path;
|
||||
DcContext dcContext = DcHelper.getContext(context);
|
||||
String filename = "cannot-resolve.jpg"; // best guess, this still leads to most images being workable if OS does weird things
|
||||
try {
|
||||
|
||||
String filename = "cannot-resolve.jpg"; // best guess, this still leads to most images being workable if OS does weird things
|
||||
if (PartAuthority.isLocalUri(uri)) {
|
||||
filename = uri.getPathSegments().get(PersistentBlobProvider.FILENAME_PATH_SEGMENT);
|
||||
} else if (uri.getScheme().equals("content")) {
|
||||
@@ -158,14 +159,7 @@ public class SendRelayedMessageUtil {
|
||||
}
|
||||
}
|
||||
|
||||
String ext = "";
|
||||
int i = filename.lastIndexOf(".");
|
||||
if (i >= 0) {
|
||||
ext = filename.substring(i);
|
||||
filename = filename.substring(0, i);
|
||||
}
|
||||
|
||||
String path = DcHelper.getBlobdirFile(dcContext, filename, ext);
|
||||
path = DcHelper.getBlobdirFile(dcContext, filename, "temp");
|
||||
|
||||
// copy content to this file
|
||||
if (path != null) {
|
||||
@@ -173,12 +167,11 @@ public class SendRelayedMessageUtil {
|
||||
OutputStream outputStream = new FileOutputStream(path);
|
||||
Util.copy(inputStream, outputStream);
|
||||
}
|
||||
|
||||
return path;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
path = null;
|
||||
}
|
||||
message.setFileAndDeduplicate(path, filename, mimeType);
|
||||
}
|
||||
|
||||
private static String getHtml(Context context, Uri uri) {
|
||||
|
||||
@@ -108,8 +108,12 @@ public class Util {
|
||||
}
|
||||
|
||||
public static void redPositiveButton(AlertDialog dialog) {
|
||||
redButton(dialog, AlertDialog.BUTTON_POSITIVE);
|
||||
}
|
||||
|
||||
public static void redButton(AlertDialog dialog, int whichButton) {
|
||||
try {
|
||||
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(redDestructiveColor);
|
||||
dialog.getButton(whichButton).setTextColor(redDestructiveColor);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -640,10 +640,7 @@ public class VideoRecoder {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Util.moveFile(tempPath, inPath)) {
|
||||
alert(context, String.format("Recoding failed for %s: cannot move temporary file %s", inPath, tempPath));
|
||||
return false;
|
||||
}
|
||||
msg.setFileAndDeduplicate(tempPath, msg.getFilename(), msg.getFilemime());
|
||||
|
||||
Log.i(TAG, String.format("recoding for %s done", inPath));
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class VideochatUtil {
|
||||
DcContext dcContext = DcHelper.getContext(activity);
|
||||
DcMsg dcMsg = dcContext.getMsg(msgId);
|
||||
String videochatUrl = dcMsg.getVideochatUrl();
|
||||
IntentUtils.showBrowserIntent(activity, videochatUrl);
|
||||
IntentUtils.showInBrowser(activity, videochatUrl);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle" >
|
||||
|
||||
<gradient
|
||||
android:angle="0"
|
||||
android:startColor="@color/gray50"
|
||||
android:endColor="@color/transparent"
|
||||
android:type="linear" />
|
||||
|
||||
</shape>
|
||||
@@ -0,0 +1,10 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle" >
|
||||
|
||||
<gradient
|
||||
android:angle="0"
|
||||
android:startColor="@color/transparent"
|
||||
android:endColor="@color/gray50"
|
||||
android:type="linear" />
|
||||
|
||||
</shape>
|
||||
@@ -161,6 +161,30 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<org.thoughtcrime.securesms.components.CircleColorImageView
|
||||
android:id="@+id/invite_video_chat_button"
|
||||
android:layout_width="53dp"
|
||||
android:layout_height="53dp"
|
||||
android:src="@drawable/baseline_call_24"
|
||||
android:scaleType="center"
|
||||
android:contentDescription="@string/videochat"
|
||||
app:circleColor="@color/audio_icon"/>
|
||||
|
||||
<TextView android:layout_marginTop="10dp"
|
||||
android:id="@+id/invite_video_chat_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/AttachmentTypeLabel"
|
||||
android:text="@string/videochat"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/location_linear_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -188,30 +212,6 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<org.thoughtcrime.securesms.components.CircleColorImageView
|
||||
android:id="@+id/invite_video_chat_button"
|
||||
android:layout_width="53dp"
|
||||
android:layout_height="53dp"
|
||||
android:src="@drawable/baseline_call_24"
|
||||
android:scaleType="center"
|
||||
android:contentDescription="@string/videochat"
|
||||
app:circleColor="@color/audio_icon"/>
|
||||
|
||||
<TextView android:layout_marginTop="10dp"
|
||||
android:id="@+id/invite_video_chat_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/AttachmentTypeLabel"
|
||||
android:text="@string/videochat"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- fill the gap -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentBottom="true">
|
||||
android:layout_alignBottom="@id/body_bubble">
|
||||
|
||||
<org.thoughtcrime.securesms.components.AvatarImageView
|
||||
android:id="@+id/contact_photo"
|
||||
|
||||
@@ -68,6 +68,41 @@
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="@string/instant_onboarding_create"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/or_divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="30dp"
|
||||
android:paddingBottom="30dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<View
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="1dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/divider_start"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center"
|
||||
android:text="@string/or_separator"
|
||||
android:textSize="14sp"
|
||||
android:fontFamily="sans-serif"
|
||||
android:textColor="@color/gray50"/>
|
||||
|
||||
<View
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="1dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/divider_end"/>
|
||||
</LinearLayout>
|
||||
|
||||
<Button
|
||||
style="@style/ButtonSecondary"
|
||||
android:id="@+id/use_other_server"
|
||||
@@ -75,7 +110,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/instant_onboarding_other_server"/>
|
||||
|
||||
<Button
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<item android:title="@string/menu_scroll_to_top"
|
||||
android:id="@+id/log_scroll_up" />
|
||||
|
||||
<item android:title="@string/global_menu_help_learn_desktop"
|
||||
<item android:title="@string/delta_chat_homepage"
|
||||
android:id="@+id/learn_more"
|
||||
app:showAsAction="never"/>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
android:id="@+id/privacy_policy"
|
||||
app:showAsAction="never"/>
|
||||
|
||||
<item android:title="@string/global_menu_help_contribute_desktop"
|
||||
<item android:title="@string/contribute"
|
||||
android:id="@+id/contribute"
|
||||
app:showAsAction="never"/>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">موافق</string>
|
||||
<string name="cancel">إلغاء</string>
|
||||
<string name="yes">نعم</string>
|
||||
<string name="yes">نعم</string>
|
||||
<string name="no">لا</string>
|
||||
<string name="on">يعمل</string>
|
||||
<string name="off">معطّل</string>
|
||||
@@ -194,14 +194,13 @@
|
||||
<string name="pref_app_access">دخول البرنامج</string>
|
||||
<string name="pref_chats">المحادثات</string>
|
||||
<string name="pref_in_chat_sounds">أصوات خلال الدردش</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">حجم الخط في الرسائل</string>
|
||||
<string name="pref_other">أخرى</string>
|
||||
<!-- No need to translate "Wallpaper" literally. Chose what is common in your language for a "Wallpaper" or a "Background". Avoid adding the term "image" here, as the "Wallpaper" may also be just a single color. -->
|
||||
<string name="pref_background">الخلفية</string>
|
||||
<string name="pref_show_emails_all">كلها</string>
|
||||
<string name="autocrypt_continue_transfer_retry">أعد المحاولة</string>
|
||||
<string name="qrscan_fingerprint_label">البصمة</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">رد</string>
|
||||
<string name="notify_new_message">رسالة جديدة</string>
|
||||
<string name="notify_priority_high">عالي</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Imtina</string>
|
||||
<string name="yes">Bəli</string>
|
||||
<string name="yes">Bəli</string>
|
||||
<string name="no">Xeyir</string>
|
||||
<string name="on">Açıq</string>
|
||||
<string name="off">Bağlı</string>
|
||||
@@ -332,8 +332,6 @@
|
||||
<string name="pref_app_access">Daxil oldu</string>
|
||||
<string name="pref_chats">Çatlar</string>
|
||||
<string name="pref_in_chat_sounds">Çatda olan səslər</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Mətnin ölçüsü</string>
|
||||
<string name="pref_view_log">Log-a bax</string>
|
||||
<string name="pref_saved_log">Loqi Yükləmələr qovluğuna saxlanıldı</string>
|
||||
<string name="pref_save_log_failed">Loqu saxlaya bilmədi</string>
|
||||
@@ -428,6 +426,7 @@
|
||||
<string name="contact_not_verified">%1$sDoğrula bilmir</string>
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">%1$süçün quraşdırma dəyişdirildi</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Cavab ver</string>
|
||||
<string name="notify_new_message">Yeni mesaj</string>
|
||||
<string name="notify_background_connection_enabled">Arxa fon əlaqəsi aktivdir</string>
|
||||
@@ -460,6 +459,7 @@
|
||||
<string name="global_menu_view_developer_desktop">İnkişaf etdirici</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">İnkişaf etdirici alətləri</string>
|
||||
<string name="global_menu_help_desktop">Kömək</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">GitHub-da kömək et</string>
|
||||
<string name="global_menu_help_report_desktop">Problemi bildirin</string>
|
||||
<string name="no_chat_selected_suggestion_desktop">Bir çat seçin və ya yeni bir çat yaradın</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Отказ</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">или</string>
|
||||
<string name="clear_search">Изчистване на търсенето</string>
|
||||
<string name="yes">Да</string>
|
||||
<string name="no">Не</string>
|
||||
@@ -478,6 +476,7 @@
|
||||
<string name="tab_audio_empty_hint">Аудио файловете и гласовите съобщения, споделени в този чат, ще се появяват тук.</string>
|
||||
<string name="tab_webxdc_empty_hint">Приложенията, споделени в този чат, ще се появяват тук.</string>
|
||||
<string name="tab_all_media_empty_hint">Медийните файлове, споделени в кой да е чат, ще се появяват тук.</string>
|
||||
<string name="all_apps_empty_hint">Приложенията, получени или изпратени в кой да е чат, ще се появяват тук.</string>
|
||||
<string name="media_preview">Предварителен преглед на медия файл</string>
|
||||
<!-- option to show images in the gallery with the correct width/height aspect (instead of square); other gallery apps may be a source of inspiration for translation :) -->
|
||||
<string name="aspect_ratio_grid">Мрежа, запазваща съотношенията</string>
|
||||
@@ -509,10 +508,6 @@
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ Акаунтът е прехвърлен на второто Ви устройство.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">Акаунтът се подготвя...</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">Изчаква се свързване от получателя...</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">Получателят е свързан...</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">Прехвърляне...</string>
|
||||
<string name="troubleshooting">Отстраняване на проблеми</string>
|
||||
@@ -690,8 +685,6 @@
|
||||
<string name="pref_app_access">Достъп до приложението</string>
|
||||
<string name="pref_chats">Чатове</string>
|
||||
<string name="pref_in_chat_sounds">Звуци в чата</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Размер на шрифта на съобщението</string>
|
||||
<string name="pref_view_log">Разглеждане на дневника</string>
|
||||
<string name="pref_saved_log">Дневникът е записан в папката \"Свалени\"</string>
|
||||
<string name="pref_save_log_failed">Неуспешен запис на дневника</string>
|
||||
@@ -928,9 +921,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Чрез сканиране на този QR код други хора могат да се свързват с Вас.\n\nМожете да деактивирате QR кода тук и повторно да го активирате, като го сканирате отново.</string>
|
||||
<string name="withdraw_verifygroup_explain">Чрез сканиране на този QR код други хора могат да се присъединяват към крупата \"%1$s\".\n\nМожете да деактивирате QR кода тук и повторно да го активирате, като го сканирате отново.</string>
|
||||
<string name="withdraw_qr_code">Деактивиране на QR кода</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Чрез сканиране на този QR код други хора могат да се свързват с Вас.\n\nQR кодът не е активен на това устройство.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Този QR код е давал възможност други да се присъединяват към групата \"%1$s\" чрез сканирането му.\n\nQR кодът не е активен на това устройство.</string>
|
||||
<string name="revive_qr_code">Активиране на QR кода</string>
|
||||
<string name="qrshow_title">QR код за покана</string>
|
||||
@@ -974,8 +965,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">Неуспешно декодиране на mailto връзка: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Затваряне</string>
|
||||
<string name="notify_reply_button">Отговор</string>
|
||||
<string name="notify_new_message">Ново съобщение</string>
|
||||
<string name="notify_background_connection_enabled">Връзката във фонов режим е разрешена</string>
|
||||
@@ -1031,7 +1020,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Разработчик</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Инструменти за разработчици</string>
|
||||
<string name="global_menu_help_desktop">Помощ</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Научете повече за Delta Chat</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Допринесете в GitHub</string>
|
||||
<string name="global_menu_help_report_desktop">Съобщаване за проблем</string>
|
||||
<string name="global_menu_help_about_desktop">Относно Delta Chat</string>
|
||||
@@ -1104,8 +1095,6 @@
|
||||
<string name="notifications_avg_minutes">Средно всеки %1$d минути</string>
|
||||
<string name="notifications_avg_hours">Средно всеки %1$d часа</string>
|
||||
<string name="last_check_at">Проверено на %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Приложенията, получени или изпратени в кой да е чат, ще се появяват тук. \"Файлове\" показва току-що свалените приложения.</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Delta Chat използва Вашата камера, за да прави и изпраща снимки и видеоклипове, както и да сканира QR кодове.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">Delta Chat използва Вашите контакти, за да показва списък на e-mail адресите, до които можете да пишете. Delta Chat няма собствен сървър, Вашите контакти не се пращат никъде.</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">دلتا چت</string>
|
||||
<string name="ok">خا</string>
|
||||
<string name="cancel">رڌ</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">یا</string>
|
||||
<string name="clear_search">روفتن پیتینیڌن</string>
|
||||
<string name="yes">هری</string>
|
||||
<string name="no">ن</string>
|
||||
@@ -318,8 +316,6 @@
|
||||
<string name="pref_notifications_show">نشۉ داڌن</string>
|
||||
<string name="pref_language">زۉݩ</string>
|
||||
<string name="pref_chats">گوفت ۉ لوفتا</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">هندا هؽلا پیوم</string>
|
||||
<string name="pref_log_header">گوزارش</string>
|
||||
<string name="pref_background_btn_gallery">پسند ز شؽوات مال</string>
|
||||
<string name="pref_show_emails_all">پوی</string>
|
||||
@@ -358,6 +354,7 @@
|
||||
<string name="contact_verified">%1$s تاییڌ وابی.</string>
|
||||
<!-- Shown in contact profile. The placeholder will be replaced by the name of the contact that introduced the contact. -->
|
||||
<string name="verified_by">تاییڌ وابیڌه و دس %1$s</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">ولوم</string>
|
||||
<string name="notify_new_message">پیوم نۊ</string>
|
||||
<string name="notify_name_and_message">نوم وو پیوم</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancel·la</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">o</string>
|
||||
<string name="clear_search">Neteja la cerca</string>
|
||||
<!-- a noun, used on a button, short for "show link" -->
|
||||
<string name="link">Enllaç</string>
|
||||
@@ -129,6 +127,10 @@
|
||||
<item quantity="one">%d missatge</item>
|
||||
<item quantity="other">%d missatges</item>
|
||||
</plurals>
|
||||
<plurals name="n_reactions">
|
||||
<item quantity="one">%d reacció</item>
|
||||
<item quantity="other">%d reaccions</item>
|
||||
</plurals>
|
||||
<plurals name="n_members">
|
||||
<item quantity="one">%d membre</item>
|
||||
<item quantity="other">%d membres</item>
|
||||
@@ -580,8 +582,6 @@
|
||||
<string name="pref_app_access">Accés a l\'aplicació</string>
|
||||
<string name="pref_chats">Xats</string>
|
||||
<string name="pref_in_chat_sounds">Sons d\'entrada</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Mida de la font del missatge</string>
|
||||
<string name="pref_view_log">Veure el registre</string>
|
||||
<string name="pref_other">Altres</string>
|
||||
<string name="pref_backup">Còpia de seguretat</string>
|
||||
@@ -609,9 +609,16 @@
|
||||
<string name="pref_show_emails_no">No, només xats</string>
|
||||
<string name="pref_show_emails_accepted_contacts">Per a contactes acceptats</string>
|
||||
<string name="pref_show_emails_all">Tot</string>
|
||||
<string name="pref_edit_profile">Edita el perfil</string>
|
||||
<string name="send_stats_to_devs">Envia estadístiques als desenvolupadors del Delta Chat</string>
|
||||
|
||||
|
||||
<!-- Reactions -->
|
||||
<string name="reactions">Reaccions</string>
|
||||
<!-- Verb, the action of adding a "Reaction" to a message. Used eg. in context menus, similar to "Reply" or "Forward" -->
|
||||
<string name="react">Reacciona</string>
|
||||
<!-- %1$s will be replaced by an emoji. %2$s will be replaced by message summary (the summary is often long and whole string gets truncated; words after %2$s will often not being visible). Eg. 'You reacted 👍 to "Found my suitcase"'. Use less than 20 characters, otherwise the string will be truncated too soon and too few information are shown. Do not try to translate "reacted to" too strict. Depending on the language, "added 👍 to" or "gave 👍 to" or just "👍 to" may be shorter and/or clearer and work as well. -->
|
||||
<string name="reaction_by_you">Heu reaccionat amb %1$s a «%2$s»</string>
|
||||
<!-- autocrypt -->
|
||||
<string name="autocrypt_send_asm_title">Envia el missatge de configuració Autocrypt</string>
|
||||
<string name="autocrypt_send_asm_explain_before">Un \"missatge de configuració Autocrypt\" comparteix de forma segura la vostra configuració d\'extrem a extrem amb altres aplicacions compatibles amb Autocrypt.\n\nLa configuració es xifrarà amb un codi de configuració que es mostrarà aquí i que haureu d\'escriure a l’altre dispositiu.</string>
|
||||
@@ -673,6 +680,7 @@
|
||||
<string name="contact_not_verified">No es pot verificar%1$s</string>
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">Configuració canviada per %1$s</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Respondre</string>
|
||||
<string name="notify_new_message">Missatge nou</string>
|
||||
<string name="notify_background_connection_enabled">Connexió habilitada en segon pla</string>
|
||||
@@ -705,6 +713,7 @@
|
||||
<string name="global_menu_view_developer_desktop">Desenvolupador</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Eines de desenvolupador</string>
|
||||
<string name="global_menu_help_desktop">Ajuda</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Col·labora a GitHub</string>
|
||||
<string name="global_menu_help_report_desktop">Informa d\'un problema</string>
|
||||
<string name="no_chat_selected_suggestion_desktop">Tria un xat o crea\'n un de nou</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">دێڵتا چات</string>
|
||||
<string name="ok">باشە</string>
|
||||
<string name="cancel">وازبێنە</string>
|
||||
<string name="yes">بەڵێ</string>
|
||||
<string name="yes">بەڵێ</string>
|
||||
<string name="no">نا</string>
|
||||
<string name="select">هەڵبژاردن</string>
|
||||
<string name="on">چالاک</string>
|
||||
@@ -420,8 +420,6 @@
|
||||
<string name="pref_app_access">ڕێگەپێدان</string>
|
||||
<string name="pref_chats">وتووێژەکان</string>
|
||||
<string name="pref_in_chat_sounds">دەنگەکانی نێو-وتووێژی</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">قەبارەی فۆنتی پەیامەکان</string>
|
||||
<string name="pref_other">کەسانی دی</string>
|
||||
<string name="pref_backup">یەدەک</string>
|
||||
<string name="pref_backup_explain">یەدەک گرتن لە وتووێژەکان و دانانی لەسەر بیرگەی دەرەکی</string>
|
||||
@@ -524,6 +522,7 @@
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">ڕێکخستن بۆ %1$s گۆڕا.</string>
|
||||
<string name="copy_qr_data_success">ناونیشانی وێبی QRەکە ڕوونووس کرا.</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">وەڵام دانەوە</string>
|
||||
<string name="notify_new_message">پەیامی نوێ</string>
|
||||
<string name="notify_background_connection_enabled">پەیوەندی پشتخان چالاک کرا</string>
|
||||
@@ -556,6 +555,7 @@
|
||||
<string name="global_menu_edit_paste_desktop">لکاندن</string>
|
||||
<string name="global_menu_view_desktop">دیتن</string>
|
||||
<string name="global_menu_help_desktop">یارمەتی</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">زۆرتر سەبارەت بە دێڵتاچات_ەوە بزانە</string>
|
||||
<string name="global_menu_help_report_desktop">کێشەیەک گوزارشت بکە</string>
|
||||
<string name="global_menu_help_about_desktop">سەبارەت بە دێڵتا چات</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">Souhlas</string>
|
||||
<string name="cancel">Zrušit</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">nebo</string>
|
||||
<string name="clear_search">Vyčistit vyhledávání</string>
|
||||
<string name="yes">Ano</string>
|
||||
<string name="no">Ne</string>
|
||||
@@ -446,6 +444,7 @@
|
||||
<string name="tab_audio_empty_hint">Zde se zobrazí zvukové soubory a hlasové zprávy sdílené v tomto chatu.</string>
|
||||
<string name="tab_webxdc_empty_hint">Zde se zobrazí aplikace sdílené v tomto chatu.</string>
|
||||
<string name="tab_all_media_empty_hint">Zde se zobrazí média sdílená v jakémkoli chatu.</string>
|
||||
<string name="all_apps_empty_hint">Zde se zobrazí aplikace přijaté nebo odeslané v libovolném chatu.</string>
|
||||
<string name="media_preview">Náhled multimedia</string>
|
||||
<string name="send_message">Pošli zprávu</string>
|
||||
<string name="multidevice_install_dc_on_other_device">Nainstalujte si Delta Chat do druhého zařízení (https://get.delta.chat)</string>
|
||||
@@ -554,8 +553,6 @@
|
||||
<string name="pref_app_access">Přístup aplikace</string>
|
||||
<string name="pref_chats">Chaty</string>
|
||||
<string name="pref_in_chat_sounds">Zvuky v rámci chatu</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Velikost písma zprávy</string>
|
||||
<string name="pref_view_log">Zobrazit záznam běhu</string>
|
||||
<string name="pref_saved_log">Záznam běhu uložen do složky \"Downloads\"</string>
|
||||
<string name="pref_save_log_failed">Uložení záznamu běhu selhalo</string>
|
||||
@@ -750,6 +747,7 @@
|
||||
<string name="contact_setup_changed">Změněné nastavení pro %1$s.</string>
|
||||
<string name="copy_qr_data_success">URL z QR kódu zkopírováno do mezipaměti</string>
|
||||
<string name="mailto_dialog_header_select_chat">Vyberte chat, kterému chcete zprávu odeslat </string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Odpověď</string>
|
||||
<string name="notify_new_message">Nová zpráva</string>
|
||||
<string name="notify_background_connection_enabled">Spojení na pozadí je zapnuto</string>
|
||||
@@ -793,7 +791,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Vývojář</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Nástroje pro vývojáře</string>
|
||||
<string name="global_menu_help_desktop">Nápověda</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Víc podrobností o Delta Chatu</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Přispěj na GitHubu</string>
|
||||
<string name="global_menu_help_report_desktop">Nahlaš problém</string>
|
||||
<string name="global_menu_help_about_desktop">O aplikaci Delta Chat</string>
|
||||
@@ -830,8 +830,6 @@
|
||||
<string name="a11y_disappearing_messages_activated">Samomazací zprávy jsou zapnuty</string>
|
||||
|
||||
<string name="import_device_contacts_hint">Chcete-li chatovat s kontakty ze svého zařízení, otevřete Nastavení a povolte „Kontakty“.</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Zde se zobrazí aplikace přijaté nebo odeslané v libovolném chatu. „Soubory“ zobrazuje právě stažené aplikace. </string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Delta Chat využívá kameru k focení, filmování a snímání QR kódů.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">Delta Chat používá tvé kontakty k zobrazení e-mailů na které můžeš psát. Delta Chat nemá žádné vlastní servery - tvé kontakty se nikam noposílají.</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Annuller</string>
|
||||
<string name="clear_search">Ryd søgning</string>
|
||||
<string name="clear_search">Ryd søgning</string>
|
||||
<string name="yes">Ja</string>
|
||||
<string name="no">Nej</string>
|
||||
<string name="select">Vælg</string>
|
||||
@@ -488,8 +488,6 @@
|
||||
<string name="pref_app_access">Programadgang</string>
|
||||
<string name="pref_chats">Samtaler</string>
|
||||
<string name="pref_in_chat_sounds">In-chat-lyde</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Besked tekststørrelse</string>
|
||||
<string name="pref_view_log">Visningslog</string>
|
||||
<string name="pref_saved_log">Gem loggen til \"Downloads\" mappen</string>
|
||||
<string name="pref_save_log_failed">Forsøg på at gemme loggen mislykkedes</string>
|
||||
@@ -677,6 +675,7 @@
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">Ændret opsætning for %1$s</string>
|
||||
<string name="copy_qr_data_success">Kopieret QR url til udklipsholder</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Svar</string>
|
||||
<string name="notify_new_message">Ny besked</string>
|
||||
<string name="notify_background_connection_enabled">Baggrundsforbindelse aktiveret</string>
|
||||
@@ -717,7 +716,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Udvikler</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Udvikler værktøj</string>
|
||||
<string name="global_menu_help_desktop">Hjælp</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Lær mere om Delta Chat</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Bidrag på GitHub</string>
|
||||
<string name="global_menu_help_report_desktop">Rapporter en sag</string>
|
||||
<string name="global_menu_help_about_desktop">Om Delta Chat</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Abbruch</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">oder</string>
|
||||
<string name="clear_search">Suche löschen</string>
|
||||
<!-- a noun, used on a button, short for "show link" -->
|
||||
<string name="link">Link</string>
|
||||
@@ -39,6 +37,7 @@
|
||||
<string name="close_window">Fenster schließen</string>
|
||||
<string name="forward">Weiterleiten</string>
|
||||
<string name="create">Erstellen</string>
|
||||
<string name="reset">Zurücksetzen</string>
|
||||
<string name="later">Später</string>
|
||||
<!-- "Resend" means "Sending the selected message(s) again to the same chat". The string is used in a menu and should be as short as possible. Resending may be needed after failures or to repost old messages to new members. -->
|
||||
<string name="resend">Erneut senden</string>
|
||||
@@ -47,6 +46,7 @@
|
||||
<!-- Verb "to unarchive", as in "remove a chat from the archive", opposite of the previous string -->
|
||||
<string name="unarchive">Dearchivieren</string>
|
||||
<string name="mute">Stumm</string>
|
||||
<string name="muted">Stumm</string>
|
||||
<string name="ephemeral_messages">Verschwindende Nachrichten</string>
|
||||
<string name="ephemeral_messages_hint">Gilt für alle Gruppenmitglieder, die Delta Chat verwenden. Nachrichten können kopiert, gespeichert und weitergeleitet werden oder es können andere E-Mail-Clients verwendet werden.</string>
|
||||
<string name="save">Speichern</string>
|
||||
@@ -186,6 +186,14 @@
|
||||
<string name="webxdc_apps">Apps</string>
|
||||
<string name="webxdc_store_url">App-Picker-URL</string>
|
||||
<string name="webxdc_store_url_explain">Wenn gesetzt, wird diese URL als App-Picker anstelle der Voreinstellung verwendet.</string>
|
||||
<string name="home">Start</string>
|
||||
<string name="games">Spiele</string>
|
||||
<string name="tools">Tools</string>
|
||||
<string name="app_size">Größe</string>
|
||||
<string name="app_date_published">Veröffentlicht</string>
|
||||
<string name="add_to_chat">Zum Chat hinzufügen</string>
|
||||
<!-- short for "Browse through the App Picker/Store/Catalogue"; could also be translated as "Discover" or "Search" -->
|
||||
<string name="browse">Entdecken</string>
|
||||
<string name="unknown">Unbekannt</string>
|
||||
|
||||
<string name="green">Grün</string>
|
||||
@@ -369,8 +377,8 @@
|
||||
<string name="ask_forward">Nachricht weiterleiten an %1$s?</string>
|
||||
<string name="ask_forward_multiple">Nachrichten an %1$d Chats weiterleiten?</string>
|
||||
<string name="ask_export_attachment">Das Exportieren von Anhängen ermöglicht es allen anderen Anwendungen auf Ihrem Gerät, auf diese zuzugreifen.\n\nFortfahren? </string>
|
||||
<string name="ask_block_contact">Diesen Kontakt blockieren? Sie werden keine Nachrichten mehr von diesem Kontakt erhalten.</string>
|
||||
<string name="ask_unblock_contact">Diesen Kontakt nicht mehr blockieren? Nachrichten von diesem Kontakt werden dann wieder angezeigt.</string>
|
||||
<string name="ask_block_contact">Diesen Kontakt blockieren?\n\nDirektnachrichten oder Gruppen, die von blockierten Kontakten erstellt wurden, werden nicht angezeigt.\n\nIn anderen Gruppen mit blockierten Kontakten werden deren Nachrichten weiterhin angezeigt.</string>
|
||||
<string name="ask_unblock_contact">Diesen Kontakt nicht mehr blockieren?</string>
|
||||
<string name="ask_delete_contacts">Kontakte dauerhaft löschen?\n\nKontakte mit laufenden Chats und Kontakte aus dem Adressbuch des Systems können nicht dauerhaft gelöscht werden.</string>
|
||||
<string name="ask_delete_contact">Kontakt %1$s dauerhaft löschen?\n\nKontakte mit laufenden Chats und Kontakte aus dem Adressbuch des Systems können nicht dauerhaft gelöscht werden.</string>
|
||||
<string name="cannot_delete_contacts_in_use">Kontakte mit laufenden Chats können nicht gelöscht werden.</string>
|
||||
@@ -507,6 +515,8 @@
|
||||
<string name="tab_audio_empty_hint">In diesem Chat geteilte Audiodateien und Sprachnachrichten werden hier angezeigt.</string>
|
||||
<string name="tab_webxdc_empty_hint">In diesem Chat geteilte Apps werden hier angezeigt.</string>
|
||||
<string name="tab_all_media_empty_hint">Medien aus allen Chats werden hier angezeigt.</string>
|
||||
<string name="all_files_empty_hint">Dokumente und Dateien aus allen Chats werden hier angezeigt.</string>
|
||||
<string name="all_apps_empty_hint">Apps aus allen Chats werden hier angezeigt.</string>
|
||||
<string name="media_preview">Medien-Vorschau</string>
|
||||
<!-- option to show images in the gallery with the correct width/height aspect (instead of square); other gallery apps may be a source of inspiration for translation :) -->
|
||||
<string name="aspect_ratio_grid">Raster im Seitenverhältnis</string>
|
||||
@@ -538,10 +548,6 @@
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ Profil wurde auf Ihr Zweitgerät übertragen.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">Profil vorbereiten…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">Warte auf Empfänger…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">Empfänger verbunden…</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">Transfer…</string>
|
||||
<string name="troubleshooting">Fehlersuche</string>
|
||||
@@ -581,7 +587,7 @@
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Ihr Profil</string>
|
||||
<!-- The placeholder will be replaced by the default onboarding server -->
|
||||
<string name="instant_onboarding_agree_default2">Datenschutzerklärung für %1$s</string>
|
||||
<string name="instant_onboarding_agree_default2">Nutzungsbedingungen und Datenschutzerklärung für %1$s</string>
|
||||
<!-- The placeholder will be replaced by instance name, the whole text will link to the instance page -->
|
||||
<string name="instant_onboarding_agree_instance">Infos zu Profilen auf %1$s</string>
|
||||
<!-- Confirmation button on the instant onboarding screen -->
|
||||
@@ -660,6 +666,8 @@
|
||||
<string name="profile_tag">Private Bezeichnung</string>
|
||||
<string name="profile_tag_hint">z.B. Familie, Arbeit, Freunde</string>
|
||||
<string name="profile_tag_explain">Die Bezeichnung ist nur für Sie sichtbar um zwischen Profilen zu unterscheiden.</string>
|
||||
<!-- Menu entry to sort an item to the beginning of a list. Only "To Top" may do as well in some translations, if that helps to stay shorter. -->
|
||||
<string name="move_to_top">Nach oben</string>
|
||||
<string name="delete_account">Profil löschen</string>
|
||||
<string name="delete_account_ask">Möchten Sie das Profil und alle Daten wirklich von diesem Gerät löschen?</string>
|
||||
<string name="delete_account_explain_with_name">Alle Daten des Profils \"%s\" werden von diesem Gerät gelöscht, dies schließt Ihre Ende-zu-Ende Autocrypt-Einstellungen, Kontakte, Chats, Nachrichten und Medien mit ein. Diese Aktion kann nicht rückgängig gemacht werden.</string>
|
||||
@@ -724,6 +732,7 @@
|
||||
<string name="pref_appearance">Darstellung</string>
|
||||
<string name="pref_theme">Design</string>
|
||||
<string name="pref_language">Sprache</string>
|
||||
<string name="pref_use_system_ui_font">Systemschrift verwenden</string>
|
||||
<string name="pref_incognito_keyboard">Inkognito-Tastatur</string>
|
||||
<!-- Translators: Must indicate that there is no guarantee as the system may not honor our request. -->
|
||||
<string name="pref_incognito_keyboard_explain">Deaktivierung des personalisierten Lernens der Tastatur anfordern.</string>
|
||||
@@ -741,8 +750,6 @@
|
||||
<string name="pref_app_access">App-Zugriff</string>
|
||||
<string name="pref_chats">Chats</string>
|
||||
<string name="pref_in_chat_sounds">In-Chat-Klänge</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Schriftgröße</string>
|
||||
<string name="pref_view_log">Protokoll anzeigen</string>
|
||||
<string name="pref_saved_log">Die Logdatei wurde im Downloads Ordner gespeichert.</string>
|
||||
<string name="pref_save_log_failed">Logdatei konnte nicht gespeichert werden.</string>
|
||||
@@ -953,6 +960,7 @@
|
||||
<string name="chat_protection_broken_explanation">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.</string>
|
||||
<string name="invalid_unencrypted_tap_to_learn_more">⚠️ %1$s verlangt eine Ende-zu-Ende-Verschlüsselung, die für diesen Chat noch nicht hergestellt wurde. Tippen, um mehr zu erfahren.</string>
|
||||
<string name="invalid_unencrypted_explanation">Um eine Ende-zu-Ende-Verschlüsselung herzustellen, können Sie Kontakte persönlich treffen und ihren QR-Code scannen.</string>
|
||||
<!-- deprecated -->
|
||||
<string name="encryption_required_for_new_contact">Ende-zu-Ende-Verschlüsselung ist notwendig, aber für %1$s nicht eingerichtet.\n\nZum Herstellen der Ende-zu-Ende-Verschlüsselung, können Sie Ihren Einladungslink teilen oder den Kontakt persönlich zum QR-Code-Scannen treffen.</string>
|
||||
<string name="learn_more">Mehr erfahren</string>
|
||||
|
||||
@@ -979,13 +987,11 @@
|
||||
<string name="qrscan_contains_text">Gescannter QR-Code text:\n\n%1$s</string>
|
||||
<string name="qrscan_contains_url">Gescannter QR-Code URL:\n\n%1$s</string>
|
||||
<string name="qrscan_fingerprint_label">Fingerabdruck</string>
|
||||
<string name="withdraw_verifycontact_explain">Dieser QR-Code kann von anderen gescannt werden, um Sie zu kontaktieren.\n\n Sie können den QR-Code hier deaktivieren und durch erneutes Scannen wieder aktivieren.</string>
|
||||
<string name="withdraw_verifygroup_explain">Dieser QR-Code kann von anderen gescannt werden, um der Gruppe \"%1$s\" beizutreten.\n\n Sie können den QR-Code hier deaktivieren und durch erneutes Scannen wieder aktivieren.</string>
|
||||
<string name="withdraw_qr_code">QR-Code deaktivieren</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Dieser QR-Code konnte von anderen gescannt werden, um Sie zu kontaktieren.\n\nDer QR-Code ist auf diesem Gerät nicht aktiv.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Dieser QR-Code konnte von anderen gescannt werden, um der Gruppe \"%1$s\" bezutreten.\n\nDer QR-Code ist auf diesem Gerät nicht aktiv.</string>
|
||||
<string name="withdraw_verifycontact_explain">Dieser QR-Code kann von anderen gescannt werden, um Sie zu kontaktieren.\n\nSie können den QR-Code zurücksetzen; der bestehende QR-Code oder Einladungslink wird dann nicht mehr funktionieren.</string>
|
||||
<string name="withdraw_verifygroup_explain">Dieser QR-Code kann von anderen gescannt werden, um der Gruppe \"%1$s\" beizutreten.\n\nSie können den QR-Code zurücksetzen; der bestehende QR-Code oder Einladungslink wird dann nicht mehr funktionieren.</string>
|
||||
<string name="withdraw_qr_code">QR-Code zurücksetzen</string>
|
||||
<string name="revive_verifycontact_explain">Dieser QR-Code wurde zurückgesetzt und ist nicht mehr aktiv.</string>
|
||||
<string name="revive_verifygroup_explain">Dieser QR-Code für die Gruppe \"%1$s\" wurde zurückgesetzt und ist nicht mehr aktiv.</string>
|
||||
<string name="revive_qr_code">QR-Code aktivieren</string>
|
||||
<string name="qrshow_title">QR-Einladungscode</string>
|
||||
<string name="qrshow_x_joining">%1$s beigetreten.</string>
|
||||
@@ -1028,8 +1034,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">Mailto-Link konnte nicht dekodiert werden: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Verwerfen</string>
|
||||
<string name="notify_reply_button">Antworten</string>
|
||||
<string name="notify_new_message">Neue Nachricht</string>
|
||||
<string name="notify_background_connection_enabled">Hintergrundverbindung aktiviert</string>
|
||||
@@ -1085,8 +1089,12 @@
|
||||
<string name="global_menu_view_developer_desktop">EntwicklerIn</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Entwicklungswerkzeug</string>
|
||||
<string name="global_menu_help_desktop">Hilfe</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Mehr über Delta Chat erfahren</string>
|
||||
<string name="delta_chat_homepage">Delta Chat Homepage</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Auf GitHub mitwirken</string>
|
||||
<string name="contribute">Mitwirken</string>
|
||||
<string name="global_menu_help_report_desktop">Ein Problem melden</string>
|
||||
<string name="global_menu_help_about_desktop">Über Delta Chat</string>
|
||||
<string name="global_menu_file_open_desktop">Delta Chat öffnen</string>
|
||||
@@ -1099,6 +1107,8 @@
|
||||
<string name="timestamp_format_m_desktop">D MMM</string>
|
||||
<string name="remove_desktop">Entfernen</string>
|
||||
<string name="save_desktop">Speichern</string>
|
||||
<!-- Opposite of "Save". Undo a "Save" action. Similar to "Unmute", "Unpin". Could also be worded as "Save no longer" or so. -->
|
||||
<string name="unsave">Nicht mehr speichern</string>
|
||||
<string name="name_desktop">Name</string>
|
||||
<string name="select_group_image_desktop">Gruppenbild auswählen</string>
|
||||
<string name="export_backup_desktop">Backup exportieren</string>
|
||||
@@ -1161,8 +1171,6 @@
|
||||
<string name="system_settings">Systemeinstellungen</string>
|
||||
<!-- shown below the button "System Settings" on the notification screen. this is a hint about what can be edited on System Settings' Notification page - eg. the notification type (banner, lock screen, notification centre), sound, badges and so on. no need to be exhaustive here, it is only to give the user an idea. -->
|
||||
<string name="system_settings_notify_explain_ios">Töne, Vorschau, Stil und mehr bearbeiten</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Empfangene oder gesendete Apps werden hier angezeigt. Unter \"Dateien\" können Sie auf heruntergeladene Apps zugreifen.</string>
|
||||
<!-- iOS shortcut widget -->
|
||||
<!-- use the same translation for "Shortcuts" as the system is using, often the term "Shortcut" stays untranslated; check eg. how the "Shortcuts" system app is called in your locale -->
|
||||
<string name="shortcuts_widget_title">Shortcuts</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">Εντάξει</string>
|
||||
<string name="cancel">Ακύρωση</string>
|
||||
<string name="clear_search">Αναζήτηση</string>
|
||||
<string name="clear_search">Αναζήτηση</string>
|
||||
<string name="yes">Ναι</string>
|
||||
<string name="no">Όχι</string>
|
||||
<string name="select">Επιλογή</string>
|
||||
@@ -437,6 +437,7 @@
|
||||
<string name="tab_video_empty_hint">Τα βίντεο που κοινοποιούνται σε αυτήν τη συνομιλία θα εμφανίζονται εδώ.</string>
|
||||
<string name="tab_audio_empty_hint">Τα αρχεία ήχου και τα φωνητικά μηνύματα που κοινοποιούνται σε αυτήν τη συνομιλία θα εμφανίζονται εδώ.</string>
|
||||
<string name="tab_webxdc_empty_hint">Οι ιδιωτικές εφαρμογές που κοινοποιούνται σε αυτήν τη συνομιλία θα εμφανίζονται εδώ.</string>
|
||||
<string name="all_apps_empty_hint">Οι ιδιωτικές εφαρμογές που λαμβάνονται ή αποστέλλονται σε οποιαδήποτε συνομιλία θα εμφανίζονται εδώ.</string>
|
||||
<string name="media_preview">Προεπισκόπιση</string>
|
||||
<string name="send_message">Αποστολή μηνύματος</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
@@ -584,8 +585,6 @@
|
||||
<string name="pref_app_access">Πρόσβαση εφαρμογής</string>
|
||||
<string name="pref_chats">Συνομιλίες</string>
|
||||
<string name="pref_in_chat_sounds">Ήχοι μέσα στη συνομιλία</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Μέγεθος γραμματοσειράς μηνύματος</string>
|
||||
<string name="pref_view_log">Προβολή Αρχείου Καταγραφής</string>
|
||||
<string name="pref_saved_log">ΤΟ αρχείο καταγραφής αποθηκεύτηκε στο φάκελο \"Λήψεις\".</string>
|
||||
<string name="pref_save_log_failed">Αποτυχία αποθήκευσης του αρχείου καταγραφής</string>
|
||||
@@ -790,9 +789,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Αυτός ο κωδικός QR μπορεί να σαρωθεί από άλλους για να επικοινωνήσουν μαζί σας.\n\nΜπορείτε να απενεργοποιήσετε τον κωδικό QR εδώ και να τον ξαναενεργοποιήσετε ξανασαρώνοντάς τον.</string>
|
||||
<string name="withdraw_verifygroup_explain">Αυτός ο κωδικός QR μπορεί να σαρωθεί από άλλους για να συμμετάσχουν στην ομάδα \"%1$s\".\n\nΜπορείτε να απενεργοποιήσετε τον κωδικό QR εδώ και να τον ξαναενεργοποιήσετε ξανασαρώνοντάς τον.</string>
|
||||
<string name="withdraw_qr_code">Απενεργοποίηση του κωδικού QR</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Αυτός ο κωδικός QR θα μπορούσε να σαρωθεί από άλλους για να επικοινωνήσουν μαζί σας.\n\nΟ κωδικός QR δεν είναι ενεργός σε αυτήν τη συσκευή.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Αυτός ο κωδικός QR θα μπορούσε να σαρωθεί από άλλους για να συμμετάσχουν στην ομάδα \"%1$s\".\n\nΟ κωδικός QR δεν είναι ενεργός σε αυτήν τη συσκευή.</string>
|
||||
<string name="revive_qr_code">Ενεργοποίηση του κωδικού QR</string>
|
||||
<string name="qrshow_title">Κωδικός Πρόσκλησης QR</string>
|
||||
@@ -828,8 +825,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">Αδυναμία αποκωδικοποίησης του συνδέσμου mailto: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Απόρριψη</string>
|
||||
<string name="notify_reply_button">Απάντηση</string>
|
||||
<string name="notify_new_message">Νέο μήνυμα</string>
|
||||
<string name="notify_background_connection_enabled">Η σύνδεση στο παρασκήνιο ενεργοποιήθηκε</string>
|
||||
@@ -876,7 +871,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Προγραμματιστής</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Εργαλεία Προγραμματιστή</string>
|
||||
<string name="global_menu_help_desktop">Βοήθεια</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Μάθετε περισσότερα για το Delta Chat</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Συνεισφέρετε στο GitHub</string>
|
||||
<string name="global_menu_help_report_desktop">Αναφέρετε ένα πρόβλημα</string>
|
||||
<string name="global_menu_help_about_desktop">Για το Delta Chat</string>
|
||||
@@ -949,8 +946,6 @@
|
||||
<string name="notifications_avg_minutes">Κατά μέσο όρο κάθε %1$d λεπτά</string>
|
||||
<string name="notifications_avg_hours">Κατά μέσο όρο κάθε %1$d ώρες</string>
|
||||
<string name="last_check_at">Έλεγχος στις %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Οι ιδιωτικές εφαρμογές που λαμβάνονται ή αποστέλλονται σε οποιαδήποτε συνομιλία θα εμφανίζονται εδώ. Το \"Αρχεία\" εμφανίζει ιδιωτικές εφαρμογές που μόλις κατεβάσατε.</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Το Delta Chat χρησιμοποιεί την κάμερά σας για λήψη και αποστολή φωτογραφιών και βίντεο και για σάρωση κωδικών QR.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">Το Delta Chat χρησιμοποιεί τις επαφές σας για να εμφανίσει μια λίστα με διευθύνσεις e-mail στις οποίες μπορείτε να γράψετε. Το Delta Chat δεν έχει διακομιστή, οι επαφές σας δεν αποστέλλονται πουθενά.</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">Bone</string>
|
||||
<string name="cancel">Nuligi</string>
|
||||
<string name="clear_search">Forviŝi Serĉon</string>
|
||||
<string name="clear_search">Forviŝi Serĉon</string>
|
||||
<string name="yes">Jes</string>
|
||||
<string name="no">Ne</string>
|
||||
<string name="select">Elekti</string>
|
||||
@@ -422,8 +422,6 @@
|
||||
<string name="pref_app_access">Aliro al aplikaĵo</string>
|
||||
<string name="pref_chats">Interparoloj</string>
|
||||
<string name="pref_in_chat_sounds">Sonoj dum interparolado</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Mesaĝa tipargrando</string>
|
||||
<string name="pref_view_log">Vidi protokolon</string>
|
||||
<string name="pref_saved_log">Konservis protokolon al la elŝuta dosierujo</string>
|
||||
<string name="pref_save_log_failed">Malsukcesis konservi protokolon</string>
|
||||
@@ -446,6 +444,7 @@
|
||||
<string name="pref_send_copy_to_self">Sendi kopion al mi mem</string>
|
||||
<string name="pref_show_emails_all">Ĉiuj</string>
|
||||
<string name="autocrypt_prefer_e2ee">Preferi tutvojan ĉifradon</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Respondi</string>
|
||||
<string name="notify_new_message">Nova mesaĝo</string>
|
||||
<string name="notify_priority_high">Alta</string>
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">o</string>
|
||||
<string name="or_separator">o</string>
|
||||
<string name="clear_search">Borrar búsqueda</string>
|
||||
<!-- a noun, used on a button, short for "show link" -->
|
||||
<string name="link">Enlace</string>
|
||||
@@ -43,6 +42,7 @@
|
||||
<string name="close_window">Cerrar ventana</string>
|
||||
<string name="forward">Reenviar</string>
|
||||
<string name="create">Crear</string>
|
||||
<string name="reset">Restablecer</string>
|
||||
<string name="later">Luego</string>
|
||||
<!-- "Resend" means "Sending the selected message(s) again to the same chat". The string is used in a menu and should be as short as possible. Resending may be needed after failures or to repost old messages to new members. -->
|
||||
<string name="resend">Volver a enviar</string>
|
||||
@@ -51,6 +51,7 @@
|
||||
<!-- Verb "to unarchive", as in "remove a chat from the archive", opposite of the previous string -->
|
||||
<string name="unarchive">Des-archivar</string>
|
||||
<string name="mute">Silenciar</string>
|
||||
<string name="muted">Silenciar</string>
|
||||
<string name="ephemeral_messages">Desaparición de mensajes</string>
|
||||
<string name="ephemeral_messages_hint">Estos ajustes se aplican a todos los participantes que usan Delta Chat. Sin embargo, pueden copiar, guardar y reenviar mensajes o usar otros clientes de correo</string>
|
||||
<string name="save">Guardar</string>
|
||||
@@ -198,6 +199,16 @@
|
||||
<string name="webxdc_app">Aplicación</string>
|
||||
<!-- plural of "App"; used to present "Webxdc App" (https://webxdc.org) in a user friendly way. Please stay close to the original term and keep it short (it is used in menus with few screen space). -->
|
||||
<string name="webxdc_apps">Aplicaciones</string>
|
||||
<string name="webxdc_store_url">App Picker URL</string>
|
||||
<string name="webxdc_store_url_explain">Si se establece, la URL se utilizará como App Picker en lugar de la predeterminada</string>
|
||||
<string name="home">Inicio</string>
|
||||
<string name="games">Juegos</string>
|
||||
<string name="tools">Herramientas</string>
|
||||
<string name="app_size">Tamaño</string>
|
||||
<string name="app_date_published">Publicado</string>
|
||||
<string name="add_to_chat">Agregar al chat</string>
|
||||
<!-- short for "Browse through the App Picker/Store/Catalogue"; could also be translated as "Discover" or "Search" -->
|
||||
<string name="browse">Navegar</string>
|
||||
<string name="unknown">Desconocido</string>
|
||||
|
||||
<string name="green">Verde</string>
|
||||
@@ -535,6 +546,7 @@
|
||||
<string name="tab_audio_empty_hint">Los archivos de audio y los mensajes de voz compartidos en este chat se mostrarán aquí.</string>
|
||||
<string name="tab_webxdc_empty_hint">Apps compartidas en este chat se mostrarán aquí</string>
|
||||
<string name="tab_all_media_empty_hint">La multimedia compartida en cualquier chat aparecerá aquí</string>
|
||||
<string name="all_apps_empty_hint">Aplicaciones privadas recibidas o enviadas en cualquier chat aparecerán aquí.</string>
|
||||
<string name="media_preview">Vista previa de multimedia</string>
|
||||
<!-- option to show images in the gallery with the correct width/height aspect (instead of square); other gallery apps may be a source of inspiration for translation :) -->
|
||||
<string name="aspect_ratio_grid">Cuadrícula de relación de aspecto</string>
|
||||
@@ -566,10 +578,6 @@
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ Cuenta transferida a tu otro dispositivo.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">Preparando cuenta…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">Esperando por receptor…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">Receptor conectado…</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">Transfiriendo…</string>
|
||||
<string name="troubleshooting">Solución de problemas</string>
|
||||
@@ -609,7 +617,7 @@
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Tu perfil</string>
|
||||
<!-- The placeholder will be replaced by the default onboarding server -->
|
||||
<string name="instant_onboarding_agree_default2">Política de privacidad para %1$s</string>
|
||||
<string name="instant_onboarding_agree_default2">Términos y política de privacidad para %1$s</string>
|
||||
<!-- The placeholder will be replaced by instance name, the whole text will link to the instance page -->
|
||||
<string name="instant_onboarding_agree_instance">Acerca de los perfiles en %1$s</string>
|
||||
<!-- Confirmation button on the instant onboarding screen -->
|
||||
@@ -688,6 +696,8 @@
|
||||
<string name="profile_tag">Etiqueta privada</string>
|
||||
<string name="profile_tag_hint">ej. Trabajo, Familia</string>
|
||||
<string name="profile_tag_explain">Etiqueta que es visible sólo para ti; útil para diferenciar tus perfiles.</string>
|
||||
<!-- Menu entry to sort an item to the beginning of a list. Only "To Top" may do as well in some translations, if that helps to stay shorter. -->
|
||||
<string name="move_to_top">Mover arriba</string>
|
||||
<string name="delete_account">Eliminar cuenta</string>
|
||||
<string name="delete_account_ask">¿Estás seguro de que quieres eliminar los datos de tu cuenta?</string>
|
||||
<string name="delete_account_explain_with_name">Todos los datos de la cuenta de \"%s\" este dispositivo serán eliminados. Incluyendo la configuración de encriptado punto a punto, contactos, chats, mensajes y multimedia. Esta acción no puede ser deshecha.</string>
|
||||
@@ -733,8 +743,8 @@
|
||||
<string name="pref_screen_security_explain">Solicitar bloqueo de capturas de pantalla en la lista de recientes y dentro de la aplicación</string>
|
||||
<string name="pref_screen_security_please_restart_hint">Para aplicar la configuración de seguridad de la pantalla, reinicie la aplicación.</string>
|
||||
<string name="pref_notifications">Notificaciones </string>
|
||||
<string name="pref_mention_notifications">Notificar menciones</string>
|
||||
<string name="pref_mention_notifications_explain">Notificar mensajes en chats silenciados si están dirigidos a ti, como en respuestas o reacciones a tus mensajes</string>
|
||||
<string name="pref_mention_notifications">Menciones</string>
|
||||
<string name="pref_mention_notifications_explain">En los grupos silenciados, notifica los mensajes dirigidos a ti, como respuestas o reacciones</string>
|
||||
<string name="pref_notifications_show">Mostrar</string>
|
||||
<string name="pref_notifications_priority">Prioridad</string>
|
||||
<string name="pref_notifications_explain">Habilitar las notificaciones del sistema para nuevos mensajes</string>
|
||||
@@ -752,6 +762,7 @@
|
||||
<string name="pref_appearance">Apariencia</string>
|
||||
<string name="pref_theme">Tema</string>
|
||||
<string name="pref_language">Idioma</string>
|
||||
<string name="pref_use_system_ui_font">Usar fuentes del sistema</string>
|
||||
<string name="pref_incognito_keyboard">Teclado incógnito</string>
|
||||
<!-- Translators: Must indicate that there is no guarantee as the system may not honor our request. -->
|
||||
<string name="pref_incognito_keyboard_explain">Solicitar al teclado deshabilitar el aprendizaje personalizado</string>
|
||||
@@ -769,8 +780,6 @@
|
||||
<string name="pref_app_access">Acceso a la aplicación</string>
|
||||
<string name="pref_chats">Chats</string>
|
||||
<string name="pref_in_chat_sounds">Sonidos en el chat</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Tamaño de texto del mensaje</string>
|
||||
<string name="pref_view_log">Ver log</string>
|
||||
<string name="pref_saved_log">El log fue guardado en la carpeta de Descargas</string>
|
||||
<string name="pref_save_log_failed">No se pudo guardar el log</string>
|
||||
@@ -981,6 +990,7 @@
|
||||
<string name="chat_protection_broken_explanation">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.</string>
|
||||
<string name="invalid_unencrypted_tap_to_learn_more">⚠️ %1$s requiere cifrado de extremo a extremo que aún no está configurado para este chat. Toca para obtener más información.</string>
|
||||
<string name="invalid_unencrypted_explanation">Para establecer un cifrado de extremo a extremo, puede reunirse con los contactos en persona y escanear su código QR.</string>
|
||||
<!-- deprecated -->
|
||||
<string name="encryption_required_for_new_contact">Se requiere cifrado de extremo a extremo, pero aún no está disponible para %1$s.\n\nPuede compartir su enlace de invitación o reunirse en persona y escanear su código QR.</string>
|
||||
<string name="learn_more">Aprender más</string>
|
||||
|
||||
@@ -1010,9 +1020,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Este código QR puede ser escaneado por otras personas para contactarlo.\n\nPuede desactivar el código QR aquí y reactivarlo escaneándolo de nuevo.</string>
|
||||
<string name="withdraw_verifygroup_explain">Este código QR puede ser escaneado por otros para unirse al grupo \"%1$s\".\n\nPuede desactivar el código QR aquí y reactivarlo escaneándolo de nuevo.</string>
|
||||
<string name="withdraw_qr_code">Desactivar código QR</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Este código QR puede ser escaneado por otros para contactarlo.\n\nEl código QR no está activo en este dispositivo.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Este código QR puede ser escaneado por otros para unirse al grupo \"%1$s\".\n\nEl código QR no está activo en este dispositivo.</string>
|
||||
<string name="revive_qr_code">Activar código QR</string>
|
||||
<string name="qrshow_title">Código de invitación QR</string>
|
||||
@@ -1049,7 +1057,6 @@
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">Configuración cambiada para %1$s.</string>
|
||||
<string name="verified_contact_required_explain">Para garantizar el cifrado de extremo a extremo, solo puedes añadir contactos con una marca de verificación verde</string>
|
||||
<string name="create_verified_group_ask">¿Quieres crear un grupo protegido que garantiza el cifrado de extremo a extremo?\n\nSolo contactos que tengan una estampilla verde de verificación pueden ser añadidos a un grupo protegido.</string>
|
||||
<string name="copy_qr_data_success">URL del código QR copiado al portapapeles</string>
|
||||
<string name="mailto_dialog_header_select_chat">Seleccione el chat para enviar el mensaje</string>
|
||||
<!-- first placeholder is the name of the chat -->
|
||||
@@ -1057,8 +1064,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">El enlace mailto no se pudo decodificar: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Descartar</string>
|
||||
<string name="notify_reply_button">Responder</string>
|
||||
<string name="notify_new_message">Nuevo mensaje</string>
|
||||
<string name="notify_background_connection_enabled">Conexión en segundo plano habilitada</string>
|
||||
@@ -1114,8 +1119,12 @@
|
||||
<string name="global_menu_view_developer_desktop">Programador</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Herramientas del Programador</string>
|
||||
<string name="global_menu_help_desktop">Ayuda</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Aprender más sobre Delta Chat</string>
|
||||
<string name="delta_chat_homepage">Página de inicio de Delta Chat</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Contribuir en GitHub</string>
|
||||
<string name="contribute">Contribuir</string>
|
||||
<string name="global_menu_help_report_desktop">Reportar un problema</string>
|
||||
<string name="global_menu_help_about_desktop">Sobre Delta Chat</string>
|
||||
<string name="global_menu_file_open_desktop">Abrir Delta Chat</string>
|
||||
@@ -1128,6 +1137,8 @@
|
||||
<string name="timestamp_format_m_desktop">MMM D</string>
|
||||
<string name="remove_desktop">Eliminar</string>
|
||||
<string name="save_desktop">Guardar</string>
|
||||
<!-- Opposite of "Save". Undo a "Save" action. Similar to "Unmute", "Unpin". Could also be worded as "Save no longer" or so. -->
|
||||
<string name="unsave">Deshacer guardado</string>
|
||||
<string name="name_desktop">Nombre</string>
|
||||
<string name="select_group_image_desktop">Seleccionar imagen de grupo</string>
|
||||
<string name="export_backup_desktop">Exportar copia de respaldo</string>
|
||||
@@ -1187,8 +1198,18 @@
|
||||
<string name="notifications_avg_minutes">Promedio cada %1$d minutos</string>
|
||||
<string name="notifications_avg_hours">Promedio cada %1$d horas</string>
|
||||
<string name="last_check_at">Comprobado en %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Aplicaciones privadas recibidas o enviadas en cualquier chat aparecerán aquí. \"Archivos\" muestra aplicaciones privadas descargadas. </string>
|
||||
<string name="system_settings">Configuración del sistema</string>
|
||||
<!-- shown below the button "System Settings" on the notification screen. this is a hint about what can be edited on System Settings' Notification page - eg. the notification type (banner, lock screen, notification centre), sound, badges and so on. no need to be exhaustive here, it is only to give the user an idea. -->
|
||||
<string name="system_settings_notify_explain_ios">Editar tipo, insignias, vista previa y más</string>
|
||||
<!-- iOS shortcut widget -->
|
||||
<!-- use the same translation for "Shortcuts" as the system is using, often the term "Shortcut" stays untranslated; check eg. how the "Shortcuts" system app is called in your locale -->
|
||||
<string name="shortcuts_widget_title">Accesos directos</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="shortcuts_widget_description">Utilice «Añadir al widget» de Delta Chat para añadir elementos</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="remove_from_widget">Quitar del widget.</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="add_to_widget">Agregar al widget</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Al permitir el acceso a la cámara podrás tomar fotos y videos.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">Al permitir acceder a tu libreta de direcciones podrás chatear con los contactos de tu dispositivo.</string>
|
||||
@@ -1197,6 +1218,9 @@
|
||||
<string name="InfoPlist_NSMicrophoneUsageDescription">Al permitir el acceso al micrófono podrás grabar audio.</string>
|
||||
<string name="InfoPlist_NSPhotoLibraryUsageDescription">Al permitir el acceso a la galería de fotos podrás subir tus imágenes desde allí.</string>
|
||||
<string name="InfoPlist_NSPhotoLibraryAddUsageDescription">Delta Chat quiere guardar imágenes en tu galería</string>
|
||||
<string name="InfoPlist_NSFaceIDUsageDescription">Delta Chat puede utilizar Face ID para proteger su perfil local, la creación de copias de seguridad y la configuración de un segundo dispositivo.</string>
|
||||
|
||||
|
||||
<!-- android specific strings, developers: please take care to remove strings that are no longer used! -->
|
||||
<string name="pref_instant_delivery">Entrega inmediata</string>
|
||||
<string name="pref_background_notifications">Usar conexión en segundo plano</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">Ados</string>
|
||||
<string name="cancel">Utzi</string>
|
||||
<string name="yes">Bai</string>
|
||||
<string name="yes">Bai</string>
|
||||
<string name="no">Ez</string>
|
||||
<string name="on">Bai</string>
|
||||
<string name="off">Ez</string>
|
||||
@@ -365,8 +365,6 @@
|
||||
<string name="pref_app_access">Aplikazio sarbidea</string>
|
||||
<string name="pref_chats">Txatak</string>
|
||||
<string name="pref_in_chat_sounds">Txat bitarteko soinuak</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Mezuen letra tamaina</string>
|
||||
<string name="pref_view_log">Ikusi egunkaria</string>
|
||||
<string name="pref_saved_log">Egunkaria deskargen karpetan gorde da</string>
|
||||
<string name="pref_save_log_failed">Huts egin du egunkaria gordetzean</string>
|
||||
@@ -482,6 +480,7 @@
|
||||
<string name="contact_not_verified">Ezin da %1$s egiaztatu</string>
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">Aldatu %1$s(r)en ezarpena</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Erantzun</string>
|
||||
<string name="notify_new_message">Mezu berria</string>
|
||||
<string name="notify_background_connection_enabled">Bigarren planoko konexioa gaituta</string>
|
||||
@@ -515,7 +514,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Garatzailea</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Garatzaile-tresnak</string>
|
||||
<string name="global_menu_help_desktop">Laguntza</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Ikasi gehiago Delta Chat-i buruz</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Hartu parte GitHub-en</string>
|
||||
<string name="global_menu_help_report_desktop">Eman arazo baten berri</string>
|
||||
<string name="global_menu_help_about_desktop">Delta Chat-i buruz</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">دلتاچت</string>
|
||||
<string name="ok">تأیید</string>
|
||||
<string name="cancel">لغو</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">یا</string>
|
||||
<string name="clear_search">پاک کردن جستوجو</string>
|
||||
<!-- a noun, used on a button, short for "show link" -->
|
||||
<string name="link">پیوند</string>
|
||||
@@ -541,10 +539,6 @@ https://meet.jit.si/$ROOM
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ حساب به دستگاه دوم شما منتقل شد.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">در حال آماده سازی حساب…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">در انتظار گیرنده…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">گیرنده متصل شد…</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">در حال انتقال…</string>
|
||||
<string name="troubleshooting">عیبیابی</string>
|
||||
@@ -743,8 +737,6 @@ https://meet.jit.si/$ROOM
|
||||
<string name="pref_app_access">دسترسی نرمافزار</string>
|
||||
<string name="pref_chats">گپها</string>
|
||||
<string name="pref_in_chat_sounds">صداهای درونگپی</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">اندازه نوشتههای پیام</string>
|
||||
<string name="pref_view_log">نمایش گزارش</string>
|
||||
<string name="pref_saved_log">گزارش را در پوشه\"دانلودها\" ذخیره کن </string>
|
||||
<string name="pref_save_log_failed">ذخیره گزارش ناموفق بود</string>
|
||||
@@ -949,6 +941,7 @@ https://meet.jit.si/$ROOM
|
||||
<string name="chat_protection_enabled_explanation">رمزنگاری سراسری پیامهای این گفتگو اکنون تضمین میشود. رمزنگاری سراسری باعث میشود پیامهایتان بین شما و مخاطبین شما محرمانه بماند. حتی ارائهدهنده رایانامه شما هم نمیتواند آنها را بخواند.</string>
|
||||
<string name="chat_protection_broken_tap_to_learn_more">%1$s پیامی را از دستگاه دیگری ارسال کرد. برای اطلاعات بیشتر ضربه بزنید.</string>
|
||||
<string name="invalid_unencrypted_tap_to_learn_more">⚠️ %1$s به رمزنگاری سراسری نیاز دارد که هنوز برای این گپ پیکرهبندی نشده است. برای یادگیری بیشتر اینجا بزنید.</string>
|
||||
<!-- deprecated -->
|
||||
<string name="encryption_required_for_new_contact">رمزنگاری سراسری لازم است اما برای %1$s هنوز پیکرهبندی نشده است.\n\nمیتوانید پیوند دعوت خود را به مخاطبتان بدهید یا اینکه به صورت حضوری کد QR مخاطب را اسکن کنید.</string>
|
||||
<string name="learn_more">بیشتر بدانید</string>
|
||||
|
||||
@@ -982,9 +975,7 @@ https://meet.jit.si/$ROOM
|
||||
<string name="withdraw_verifycontact_explain">دیگران برای ارتباط با شما میتوانند این کد کیوآر را اسکن کنند. \n\n میتوان کد کیوآر را در اینجا غیر فعال کنید و با اسکن کردن مجدد، آن را فعال کنید. </string>
|
||||
<string name="withdraw_verifygroup_explain">این کد کیوآر میتواند توسط دیگران و برای پیوستن به گروه \"%1$s\" اسکن شود.\n\n شما میتواند این کد کیوآر را در اینجا غیرفعال کنید و با اسکن کردن مجدد، آن را فعال نمایید. </string>
|
||||
<string name="withdraw_qr_code">غیرفعال کردن کد کیوآر</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">دیگران برای تماس با شما میتوانند این کد کیوآر را اسکن کنند. \n\n این کد کیوآر در این دستگاه فعال نیست. </string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">دیگران میتوانند برای پیوستن به گروه \"%1$s\" این کد کیوآر را اسکن کنند. این کد کیوآر روی این دستگاه فعال نیست. </string>
|
||||
<string name="revive_qr_code">فعال کردن کد کیوآر</string>
|
||||
<string name="qrshow_title">کد دعوت کیوآر</string>
|
||||
@@ -1030,8 +1021,6 @@ https://meet.jit.si/$ROOM
|
||||
<string name="mailto_link_could_not_be_decoded">امکان کدگشایی پیوند mailto وجود ندارد: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">صرف نظر</string>
|
||||
<string name="notify_reply_button">پاسخ</string>
|
||||
<string name="notify_new_message">پیام جدید</string>
|
||||
<string name="notify_background_connection_enabled">اتصالها پیش زمینه فعال شد</string>
|
||||
@@ -1103,7 +1092,9 @@ GNU GPL ورژن ۳
|
||||
<string name="global_menu_view_developer_desktop">برنامهنویس</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">ابزار برنامه نویس</string>
|
||||
<string name="global_menu_help_desktop">کمک</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">یادگیری بیشتر درمورد دلتاچت</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">کمک به گیتهاب</string>
|
||||
<string name="global_menu_help_report_desktop">گزارش یک مشکل</string>
|
||||
<string name="global_menu_help_about_desktop">درباره دلتاچت</string>
|
||||
@@ -1176,8 +1167,6 @@ GNU GPL ورژن ۳
|
||||
<string name="notifications_avg_minutes">به صورت متوسط هر%1$d دقیقه</string>
|
||||
<string name="notifications_avg_hours">به صورت متوسط هر %1$d ساعت</string>
|
||||
<string name="last_check_at">بررسی شده در %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">برنامههای دریافتشده یا ارسالشده از همه چتها در اینجا نمایش داده میشود. «پروندهها» تنها برنامههای اخیرا دریافتشده را نمایش میدهد.</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">دلتاچت برای گرفتن و ارسال عکس و فیلم و برای اسکن کردن کیوآر کد از دوربین شما استفاده میکند. </string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">دلتاچت از مخاطبین شما برای نمایش فهرست رایانامههایی که میتوانید برایشان پیام ارسال کنید استفاده میکند. دلتاچت کارساز ندارد، مخاطبین شما به جایی ارسال نمیشوند. </string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Peruuta</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">tai</string>
|
||||
<string name="clear_search">Tyhjennä haku</string>
|
||||
<string name="yes">Kyllä</string>
|
||||
<string name="no">Ei</string>
|
||||
@@ -478,6 +476,7 @@
|
||||
<string name="tab_audio_empty_hint">Tässä keskustelussa jaetut äänitiedostot ja -viestit näkyvät tässä.</string>
|
||||
<string name="tab_webxdc_empty_hint">Keskustelussa jaetut yksityiset sovellukset näkyvät tässä.</string>
|
||||
<string name="tab_all_media_empty_hint">Kun keskusteluissa jaetaan mediaa, se tulee näkymään täällä.</string>
|
||||
<string name="all_apps_empty_hint">Kaikissa keskusteluissa jaetut yksityiset sovellukset näkyvät tässä.</string>
|
||||
<string name="media_preview">Median esikatselu</string>
|
||||
<!-- option to show images in the gallery with the correct width/height aspect (instead of square); other gallery apps may be a source of inspiration for translation :) -->
|
||||
<string name="aspect_ratio_grid">Kuvasuhteen mukainen ruudukko</string>
|
||||
@@ -509,10 +508,6 @@
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ Profiili siirretty toiselle laitteellesi.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">Valmistellaan profiilia...</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">Odotetaan vastaanottajaa...</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">Vastaanottaja yhdistetty...</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">Siirretään...</string>
|
||||
<string name="troubleshooting">Vianetsintä</string>
|
||||
@@ -690,8 +685,6 @@
|
||||
<string name="pref_app_access">Sovelluksen pääsy</string>
|
||||
<string name="pref_chats">Keskustelut</string>
|
||||
<string name="pref_in_chat_sounds">Keskustelunaikaiset äänet</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Viestin fonttikoko</string>
|
||||
<string name="pref_view_log">Näytä loki</string>
|
||||
<string name="pref_saved_log">Tallenna loki \"Lataukset\" -kansioon</string>
|
||||
<string name="pref_save_log_failed">Lokin tallennus epäonnistui</string>
|
||||
@@ -928,9 +921,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Muut voivat skannata tämän QR-koodin ottaakseen yhteyttä sinuun.\n\nVoit kytkeä QR-koodin pois täällä ja aktivoida sen uudelleen skannaamalla uudestaan.</string>
|
||||
<string name="withdraw_verifygroup_explain">Muut voivat skannata tämän QR-koodin liittyäkseen ryhmään \"%1$s\".\n\nVoit kytkeä QR-koodin pois täällä ja aktivoida sen uudelleen skannaamalla.</string>
|
||||
<string name="withdraw_qr_code">Kytke QR-koodi pois käytöstä</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Muut voivat skannata tämän QR-koodin ottaakseen yhteyttä sinuun.\n\nQR-koodi ei ole aktiivinen tällä laitteella.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Muut voivat skannata tämän QR-koodin liittyäkseen ryhmään \"%1$s\".\n\nQR-koodi ei ole aktiivinen tällä laitteella.</string>
|
||||
<string name="revive_qr_code">Aktivoi QR-koodi</string>
|
||||
<string name="qrshow_title">QR-kutsukoodi</string>
|
||||
@@ -974,8 +965,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">mailto-linkkiä ei voitu selvittää: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Hylkää</string>
|
||||
<string name="notify_reply_button">Vastaa</string>
|
||||
<string name="notify_new_message">Uusi viesti</string>
|
||||
<string name="notify_background_connection_enabled">Yhteys käynnissä taustalla</string>
|
||||
@@ -1031,7 +1020,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Kehittäjä</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Kehittäjätyökalut</string>
|
||||
<string name="global_menu_help_desktop">Ohje</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Lisätietoja Delta Chatista</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Osallistu GitHubissa</string>
|
||||
<string name="global_menu_help_report_desktop">Ilmoita ongelma</string>
|
||||
<string name="global_menu_help_about_desktop">Tietoja Delta Chatista</string>
|
||||
@@ -1104,8 +1095,6 @@
|
||||
<string name="notifications_avg_minutes">Keskimäärin%1$d minuutin välein</string>
|
||||
<string name="notifications_avg_hours">Keskimäärin %1$d tunnin välein</string>
|
||||
<string name="last_check_at">Tarkistettu %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Kaikissa keskusteluissa jaetut yksityiset sovellukset näkyvät tässä. \"Tiedostot\" näyttää ladatut yksityiset sovellukset.</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Delta Chat käyttää kameraa kuvien ja videoiden kuvaamiseen ja lähettämiseen sekä QR-koodien skannaamiseen.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">Delta Chat käyttää yhteystietojasi näyttämään listan sähköpostiosoitteista, joihin voit kirjoittaa. Delta Chatilla ei ole palvelimia, eikä yhteystietojasi lähetetä mihinkään.</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Annuler</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">ou</string>
|
||||
<string name="clear_search">Effacer la recherche</string>
|
||||
<string name="yes">Oui</string>
|
||||
<string name="no">Non</string>
|
||||
@@ -494,6 +492,7 @@
|
||||
<string name="tab_audio_empty_hint">Les fichiers audio et messages vocaux partagés dans cette discussion seront affichés ici.</string>
|
||||
<string name="tab_webxdc_empty_hint">Les applis partagées dans cette discussion seront affichées ici.</string>
|
||||
<string name="tab_all_media_empty_hint">Les fichiers multimédias partagés dans une discussion apparaissent ici.</string>
|
||||
<string name="all_apps_empty_hint">Les applications envoyées ou reçues dans une discussion apparaissent ici.</string>
|
||||
<string name="media_preview">Prévisualiser le fichier multimédia</string>
|
||||
<!-- option to show images in the gallery with the correct width/height aspect (instead of square); other gallery apps may be a source of inspiration for translation :) -->
|
||||
<string name="aspect_ratio_grid">Grille de proportions</string>
|
||||
@@ -525,10 +524,6 @@
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ Compte transféré sur votre deuxième appareil.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">Préparation du compte...</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">En attente de l\'appareil...</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">Appareil connecté...</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">Transfert...</string>
|
||||
<string name="troubleshooting">Dépannage</string>
|
||||
@@ -695,8 +690,6 @@
|
||||
<string name="pref_app_access">Accès à l\'application</string>
|
||||
<string name="pref_chats">Discussions</string>
|
||||
<string name="pref_in_chat_sounds">Sons de messages entrants</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Taille de police des messages</string>
|
||||
<string name="pref_view_log">Voir le journal</string>
|
||||
<string name="pref_saved_log">Journal enregistré dans le dossier \"Téléchargements\"</string>
|
||||
<string name="pref_save_log_failed">Enregistrement du journal échoué</string>
|
||||
@@ -923,9 +916,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Ce code QR pourrait être scanné par d\'autre personnes pour vous contacter.\n\nVous pouvez désactiver le QR code ici et le réactiver en le scannant ici de nouveau.</string>
|
||||
<string name="withdraw_verifygroup_explain">Le code QR peut être scanné par d\'autres personnes pour rejoindre le groupe \"%1$s\".\n\nVous pouvez désactiver le QR code ici et le réactiver en le scannant ici de nouveau.</string>
|
||||
<string name="withdraw_qr_code">Désactiver le QR Code</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Ce code QR pourrait être scanné par d\'autre personnes pour vous contacter.\n\nCe code QR n\'est pas actif sur cet appareil.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Ce code QR pourrait être scanné par d\'autre personnes pour rejoindre le groupe \"%1$s\".\n\nLe code QR n\'est pas actif sur cet appareil.</string>
|
||||
<string name="revive_qr_code">Activer le QR Code</string>
|
||||
<string name="qrshow_title">QR Code d\'Invitation</string>
|
||||
@@ -968,8 +959,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">Le lien mailto n\'a pas pu être décodé: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Rejeter</string>
|
||||
<string name="notify_reply_button">Répondre</string>
|
||||
<string name="notify_new_message">Nouveau message</string>
|
||||
<string name="notify_background_connection_enabled">Connexion en arrière-plan activée</string>
|
||||
@@ -1025,7 +1014,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Développeur</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Outils de développement</string>
|
||||
<string name="global_menu_help_desktop">Aide</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">En savoir plus sur Delta Chat</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Contribuer sur Github</string>
|
||||
<string name="global_menu_help_report_desktop">Signaler un problème</string>
|
||||
<string name="global_menu_help_about_desktop">À propos de Delta Chat</string>
|
||||
@@ -1098,8 +1089,6 @@
|
||||
<string name="notifications_avg_minutes">Toutes les %1$d minutes en moyenne</string>
|
||||
<string name="notifications_avg_hours">Toutes les %1$d heures en moyenne</string>
|
||||
<string name="last_check_at">Dernièrement vu à %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Les applications envoyées ou reçues dans une discussion apparaissent ici. « Fichiers » affiche les applis que vous venez de télécharger.</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Delta Chat utilise votre appareil photo pour prendre des photos et des vidéos et les envoyer, ainsi que pour scanner des QR codes.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">Delta Chat utilise vos contacts pour montrer une liste d\'adresses de courriel auxquels vous pouvez écrire. Delta Chat n\'a pas de serveur, vos contacts ne sont envoyés nulle part.</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Cancelar</string>
|
||||
<string name="clear_search">Eliminar busca</string>
|
||||
<string name="clear_search">Eliminar busca</string>
|
||||
<string name="yes">Si</string>
|
||||
<string name="no">Non</string>
|
||||
<string name="select">Seleccionar</string>
|
||||
@@ -591,8 +591,6 @@
|
||||
<string name="pref_app_access">Acceso a app</string>
|
||||
<string name="pref_chats">Conversas</string>
|
||||
<string name="pref_in_chat_sounds">Sons na conversa</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Tamaño da letra na mensaxe</string>
|
||||
<string name="pref_view_log">Ver rexistro</string>
|
||||
<string name="pref_saved_log">Gardouse o rexistro no cartafol \"Descargas\"</string>
|
||||
<string name="pref_save_log_failed">Non se puido gardar o rexistro</string>
|
||||
@@ -770,9 +768,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Este código QR permite que outras persoas contacten contigo.\n\nPodes desactivar o código QR aquí e reactivalo volvéndoo a escanear.</string>
|
||||
<string name="withdraw_verifygroup_explain">Este código QR permite que outras persoas se unan ao grupo \"%1$s\".\n\nPodes desactivar aquí o código QR e reactivalo volvéndoo a escanear.</string>
|
||||
<string name="withdraw_qr_code">Desactivar código QR</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Este código QR podía ser escaneado por outras persoas para contactar contigo.\n\nO código QR non está activo neste dispositio.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">O código QR podía ser escaneado por outras persoas para unirse ao grupo \"%1$s\".\n\nO código QR non está activo neste dispositivo.</string>
|
||||
<string name="revive_qr_code">Activar código QR</string>
|
||||
<string name="qrshow_title">Código QR de convite</string>
|
||||
@@ -804,8 +800,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">a ligazón mailto non se puido descodificar: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Desbotar</string>
|
||||
<string name="notify_reply_button">Responder</string>
|
||||
<string name="notify_new_message">Nova mensaxe</string>
|
||||
<string name="notify_background_connection_enabled">Conexión en segundo plano establecida</string>
|
||||
@@ -852,7 +846,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Desenvolvedora</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Ferramentas de desenvolvedora</string>
|
||||
<string name="global_menu_help_desktop">Axuda</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Coñece máis sobre Delta Chat</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Contribúe en GitHub</string>
|
||||
<string name="global_menu_help_report_desktop">Informa dun fallo</string>
|
||||
<string name="global_menu_help_about_desktop">Acerca de Delta Chat</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Otkaži</string>
|
||||
<string name="yes">Da</string>
|
||||
<string name="yes">Da</string>
|
||||
<string name="no">Ne</string>
|
||||
<string name="on">Uključeno</string>
|
||||
<string name="off">Isključeno</string>
|
||||
@@ -211,8 +211,6 @@
|
||||
<string name="pref_app_access">Pristup aplikaciji</string>
|
||||
<string name="pref_chats">Razgovori</string>
|
||||
<string name="pref_in_chat_sounds">Zvuk unutar razgovora</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Veličina fonta poruke</string>
|
||||
<string name="pref_other">Ostalo</string>
|
||||
<string name="pref_backup">Sigurnosna kopija</string>
|
||||
<!-- No need to translate "Wallpaper" literally. Chose what is common in your language for a "Wallpaper" or a "Background". Avoid adding the term "image" here, as the "Wallpaper" may also be just a single color. -->
|
||||
@@ -224,6 +222,7 @@
|
||||
<!-- qr code stuff -->
|
||||
<string name="qr_code">QR kod</string>
|
||||
<string name="qrscan_fingerprint_label">Otisak prsta</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Odgovori</string>
|
||||
<string name="notify_new_message">Nova poruka</string>
|
||||
<string name="notify_priority_high">Visoko</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Mégse</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">vagy</string>
|
||||
<string name="clear_search">Keresés kiürítése</string>
|
||||
<!-- a noun, used on a button, short for "show link" -->
|
||||
<string name="link">Hivatkozás</string>
|
||||
@@ -32,13 +30,14 @@
|
||||
<string name="delete">Törlés</string>
|
||||
<string name="info">Infó</string>
|
||||
<string name="update">Frissítés</string>
|
||||
<string name="emoji">Hangulatjel</string>
|
||||
<string name="emoji">Emodzsi</string>
|
||||
<string name="attachment">Csatolmány</string>
|
||||
<string name="back">Vissza</string>
|
||||
<string name="close">Bezárás</string>
|
||||
<string name="close_window">Ablak bezárása</string>
|
||||
<string name="forward">Továbbítás</string>
|
||||
<string name="create">Létrehozás</string>
|
||||
<string name="reset">Visszaállítás</string>
|
||||
<string name="later">Később</string>
|
||||
<!-- "Resend" means "Sending the selected message(s) again to the same chat". The string is used in a menu and should be as short as possible. Resending may be needed after failures or to repost old messages to new members. -->
|
||||
<string name="resend">Újraküldés</string>
|
||||
@@ -47,6 +46,7 @@
|
||||
<!-- Verb "to unarchive", as in "remove a chat from the archive", opposite of the previous string -->
|
||||
<string name="unarchive">Archiválás visszavonása</string>
|
||||
<string name="mute">Némítás</string>
|
||||
<string name="muted">Némított</string>
|
||||
<string name="ephemeral_messages">Eltűnő üzenetek</string>
|
||||
<string name="ephemeral_messages_hint">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.</string>
|
||||
<string name="save">Mentés</string>
|
||||
@@ -186,6 +186,14 @@
|
||||
<string name="webxdc_apps">Alkalmazások</string>
|
||||
<string name="webxdc_store_url">Alkalmazás-választó-webcím</string>
|
||||
<string name="webxdc_store_url_explain">Ha be van állítva, akkor a webcím lesz használva mint alkalmazás-választó az alapértelmezett helyett</string>
|
||||
<string name="home">Főoldal</string>
|
||||
<string name="games">Játékok</string>
|
||||
<string name="tools">Eszközök</string>
|
||||
<string name="app_size">Méret</string>
|
||||
<string name="app_date_published">Közzétéve</string>
|
||||
<string name="add_to_chat">Hozzáadás csevegéshez</string>
|
||||
<!-- short for "Browse through the App Picker/Store/Catalogue"; could also be translated as "Discover" or "Search" -->
|
||||
<string name="browse">Böngészés</string>
|
||||
<string name="unknown">Ismeretlen</string>
|
||||
|
||||
<string name="green">Zöld</string>
|
||||
@@ -223,7 +231,7 @@
|
||||
<string name="broadcast_list_name">Adáslista neve</string>
|
||||
<string name="please_enter_broadcast_list_name">Adjon meg egy nevet az adáslistának</string>
|
||||
<string name="menu_send">Küldés</string>
|
||||
<string name="menu_toggle_keyboard">Váltás hangulatjel-billentyűzetre</string>
|
||||
<string name="menu_toggle_keyboard">Váltás emodzsi-billentyűzetre</string>
|
||||
<string name="menu_edit_group">Csoport szerkesztése</string>
|
||||
<string name="menu_group_name_and_image">Csoportnév és -kép</string>
|
||||
<string name="menu_show_global_map">Az összes helyszín megjelenítése</string>
|
||||
@@ -276,7 +284,7 @@
|
||||
<string name="privacy_policy">Adatvédelmi irányelvek</string>
|
||||
<string name="menu_select_all">Összes kiválasztása</string>
|
||||
<string name="select_chat">Csevegés kiválasztása</string>
|
||||
<string name="select_more">Több kiválasztása</string>
|
||||
<string name="select_more">Továbbiak kiválasztása</string>
|
||||
<string name="menu_edit_name">Név szerkesztése</string>
|
||||
<!-- The placeholder will be replaced by the name the contact gave themself (if any) or by an e-mail address. -->
|
||||
<string name="edit_name_explain">Állítson be egy becenevet a(z) „%1$s” nevű ismerősének. Hagyja üresen az ismerőse által választott név megjelenítéséhez.</string>
|
||||
@@ -463,7 +471,7 @@
|
||||
|
||||
<!-- punycode warning / labeled links -->
|
||||
<!-- placeholder is domain/hostname that should be trusted -->
|
||||
<string name="open_external_url_trust_domain">Ne kérdezzen rá újra erre: %1$s</string>
|
||||
<string name="open_external_url_trust_domain">Ne kérdezzen rá újra a következőre: %1$s</string>
|
||||
<string name="puny_code_warning_header">Gyanús hivatkozás észlelve</string>
|
||||
<!-- placeholder contains the hostname converted to ascii -->
|
||||
<string name="puny_code_warning_question">Biztosan meglátogatja a következőt: %1$s?</string>
|
||||
@@ -506,6 +514,7 @@
|
||||
<string name="tab_audio_empty_hint">Az ebben a csevegésben megosztott hangfájlok és hangüzenetek itt fognak megjelenni.</string>
|
||||
<string name="tab_webxdc_empty_hint">Az ebben a csevegésben megosztott alkalmazások itt fognak megjelenni.</string>
|
||||
<string name="tab_all_media_empty_hint">A bármelyik csevegésben megosztott média itt fog megjelenni.</string>
|
||||
<string name="all_apps_empty_hint">A bármelyik csevegésben kapott vagy küldött alkalmazások itt fognak megjelenni.</string>
|
||||
<string name="media_preview">Média előnézete</string>
|
||||
<!-- option to show images in the gallery with the correct width/height aspect (instead of square); other gallery apps may be a source of inspiration for translation :) -->
|
||||
<string name="aspect_ratio_grid">Tengelyarányrács</string>
|
||||
@@ -513,9 +522,9 @@
|
||||
<string name="square_grid">Négyzetrács</string>
|
||||
<string name="send_message">Üzenet küldése</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s megváltoztatta a címét erről: %2$s, erre: %3$s </string>
|
||||
<string name="aeap_addr_changed">%1$s megváltoztatta a címét következőről: %2$s, erre: %3$s </string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Ö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 ismerősei 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 e-mail-címére. Ellenkező esetben lemaradhat azoknak az ismerőseinek az üzeneteiről, akik még nem kapták meg az új címét.</string>
|
||||
<string name="aeap_explanation">Ön megváltoztatta a saját e-mail-címét a következőről: %1$s erre: %2$s.\n\nHa most üzenetet küld egy hitelesített csoportba, az ottani ismerősei 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 e-mail-címére. Ellenkező esetben lemaradhat azoknak az ismerőseinek az üzeneteiről, akik még nem kapták meg az új címét.</string>
|
||||
|
||||
|
||||
<!-- Multi Device -->
|
||||
@@ -537,10 +546,6 @@
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ A profil átkerül az Ön második eszközére.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">Profil készítése…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">Várakozás a vevőeszközre…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">Vevőeszköz kapcsolódott…</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">Átvitel…</string>
|
||||
<string name="troubleshooting">Hibaelhárítás</string>
|
||||
@@ -659,6 +664,8 @@
|
||||
<string name="profile_tag">Privát címke</string>
|
||||
<string name="profile_tag_hint">Például: „Munka”, „Család”</string>
|
||||
<string name="profile_tag_explain">A címke csak az Ön számára jelenik meg; segít megkülönböztetni a profiljait.</string>
|
||||
<!-- Menu entry to sort an item to the beginning of a list. Only "To Top" may do as well in some translations, if that helps to stay shorter. -->
|
||||
<string name="move_to_top">Felülre helyezés</string>
|
||||
<string name="delete_account">Profil törlése</string>
|
||||
<string name="delete_account_ask">Biztosan törölni szeretné a profiladatait?</string>
|
||||
<string name="delete_account_explain_with_name">A(z) „%s” nevű profilhoz tartozó mindet adat ezen az eszközön törölve lesz, beleértve a végpontok közötti titkosítás beállításait, a névjegyeket, a csevegéseket, az üzeneteket és a médiát. Ez a művelet nem vonható vissza. </string>
|
||||
@@ -723,6 +730,7 @@
|
||||
<string name="pref_appearance">Megjelenés</string>
|
||||
<string name="pref_theme">Téma</string>
|
||||
<string name="pref_language">Nyelv</string>
|
||||
<string name="pref_use_system_ui_font">Rendszer betűtípusának használata</string>
|
||||
<string name="pref_incognito_keyboard">Inkognitó-billentyűzet</string>
|
||||
<!-- Translators: Must indicate that there is no guarantee as the system may not honor our request. -->
|
||||
<string name="pref_incognito_keyboard_explain">Tanulás letiltásának kérése a billentyűzettől</string>
|
||||
@@ -731,8 +739,8 @@
|
||||
<string name="pref_server">Kiszolgáló</string>
|
||||
<string name="pref_encryption">Titkosítás</string>
|
||||
<string name="pref_manage_keys">Privát kulcsok kezelése</string>
|
||||
<string name="pref_use_system_emoji">Rendszer hangulatjeleinek használata</string>
|
||||
<string name="pref_use_system_emoji_explain">A Delta Chat beépített hangulatjel-támogatásának letiltása</string>
|
||||
<string name="pref_use_system_emoji">Rendszeremodzsik használata</string>
|
||||
<string name="pref_use_system_emoji_explain">A Delta Chat beépített emodzsi-támogatásának letiltása</string>
|
||||
<string name="pref_use_inapp_camera">Alkalmazás kamerájának használata</string>
|
||||
<string name="pref_use_inapp_camera_explain">Az alkalmazáson belüli kamera általában kevesebb funkcióval rendelkezik, mint a rendszer kamerája.</string>
|
||||
<string name="pref_show_system_contacts">A rendszer névjegyzékének olvasása</string>
|
||||
@@ -740,10 +748,8 @@
|
||||
<string name="pref_app_access">Alkalmazás-hozzáférés</string>
|
||||
<string name="pref_chats">Csevegések</string>
|
||||
<string name="pref_in_chat_sounds">Csevegésen belüli hangok</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Üzenetek betűmérete</string>
|
||||
<string name="pref_view_log">Naplófájl megtekintése</string>
|
||||
<string name="pref_saved_log">A naplófájl elmentve a „Letöltések” mappába</string>
|
||||
<string name="pref_saved_log">A naplófájl elmentve a „Letöltések” nevű mappába</string>
|
||||
<string name="pref_save_log_failed">Nem sikerült elmenteni a naplófájlt</string>
|
||||
<string name="pref_log_header">Naplófájl</string>
|
||||
<string name="pref_other">Egyéb</string>
|
||||
@@ -773,10 +779,10 @@
|
||||
<string name="pref_send_copy_to_self">Másolat küldése Önmagának</string>
|
||||
<!-- for classic email, we use the classical term "Account" -->
|
||||
<string name="pref_send_copy_to_self_explain">Szükséges, ha ezt a fiókot több eszközön is használja.</string>
|
||||
<string name="pref_auto_folder_moves">Automatikus áthelyezés a DeltaChat mappába</string>
|
||||
<string name="pref_auto_folder_moves">Automatikus áthelyezés a DeltaChat nevű mappába</string>
|
||||
<string name="pref_auto_folder_moves_explain">A csevegések áthelyezésre kerülnek, hogy elkerüljék a bejövő üzenetek mappa zűrzavarát.</string>
|
||||
<string name="pref_only_fetch_mvbox_title">Csak a DeltaChat-mappából történjen lekérdezés</string>
|
||||
<string name="pref_only_fetch_mvbox_explain">Más mappák figyelmen kívül hagyása. A kiszolgálónak a DeltaChat mappába kell áthelyeznie a csevegőüzeneteket.</string>
|
||||
<string name="pref_only_fetch_mvbox_title">Csak a DeltaChat nevű mappából történjen lekérdezés</string>
|
||||
<string name="pref_only_fetch_mvbox_explain">Más mappák figyelmen kívül hagyása. A kiszolgálónak a DeltaChat nevű mappába kell áthelyeznie a csevegőüzeneteket.</string>
|
||||
<string name="pref_show_emails">Klasszikus e-mailek megjelenítése</string>
|
||||
<string name="pref_show_emails_no">Nem, csak csevegések</string>
|
||||
<string name="pref_show_emails_accepted_contacts">Elfogadott ismerősök számára</string>
|
||||
@@ -812,7 +818,7 @@
|
||||
|
||||
<!-- Emoji picker and categories -->
|
||||
<string name="emoji_search_results">Keresési eredmények</string>
|
||||
<string name="emoji_not_found">Nem található hangulatjel</string>
|
||||
<string name="emoji_not_found">Nem található emodzsi</string>
|
||||
<string name="emoji_recent">Nemrég használt</string>
|
||||
<string name="emoji_people">Emberek és test</string>
|
||||
<string name="emoji_nature">Állatok és természet</string>
|
||||
@@ -828,9 +834,9 @@
|
||||
<!-- Verb, the action of adding a "Reaction" to a message. Used eg. in context menus, similar to "Reply" or "Forward" -->
|
||||
<string name="react">Reakció</string>
|
||||
<!-- %1$s will be replaced by an emoji. %2$s will be replaced by message summary (the summary is often long and whole string gets truncated; words after %2$s will often not being visible). Eg. 'You reacted 👍 to "Found my suitcase"'. Use less than 20 characters, otherwise the string will be truncated too soon and too few information are shown. Do not try to translate "reacted to" too strict. Depending on the language, "added 👍 to" or "gave 👍 to" or just "👍 to" may be shorter and/or clearer and work as well. -->
|
||||
<string name="reaction_by_you">Ön ezzel reagált: %1$s, erre: „%2$s”</string>
|
||||
<string name="reaction_by_you">Ön a következővel reagált: %1$s, erre: „%2$s”</string>
|
||||
<!-- %1$s will be replaced a name. %2$s will be replaced by an emoji. %3$s will be replaced by message summary (the summary is often long and whole string gets truncated; words after %3$s will often not being visible). Eg. 'Alice reacted 👍 to "Nice photos"'. Use less than 20 characters, otherwise the string will be truncated too soon and too few information are shown. Do not try to translate "reacted to" too strict. Depending on the language, "added 👍 to" or "gave 👍 to" or just "👍 to" may be shorter and/or clearer work as well. -->
|
||||
<string name="reaction_by_other">%1$s ezzel reagált: %2$s, erre: „%3$s”</string>
|
||||
<string name="reaction_by_other">%1$s a következővel reagált: %2$s, erre: „%3$s”</string>
|
||||
|
||||
<!-- automatically delete message -->
|
||||
<string name="delete_old_messages">Régi üzenetek törlése</string>
|
||||
@@ -883,9 +889,9 @@
|
||||
<string name="systemmsg_subject_for_new_contact">Üzenet tőle: %1$s</string>
|
||||
<string name="systemmsg_failed_sending_to">Nem sikerült elküldeni az üzenetet „%1$s” számára.</string>
|
||||
<!-- %1$s will be replaced by the old group name, %2$s will be replaced by the new group name -->
|
||||
<string name="group_name_changed_by_you">Ön megváltoztatta a csoport nevét erről: „%1$s”, erre: „%2$s”.</string>
|
||||
<string name="group_name_changed_by_you">Ön megváltoztatta a csoport nevét a következőről: „%1$s”, erre: „%2$s”.</string>
|
||||
<!-- %1$s will be replaced by the old group name, %2$s will be replaced by the new group name, %3$s will be replaced by name and address of the contact who did the action. -->
|
||||
<string name="group_name_changed_by_other">%3$s megváltoztatta a csoport nevét erről: „%1$s”, erre: „%2$s”.</string>
|
||||
<string name="group_name_changed_by_other">%3$s megváltoztatta a csoport nevét a következőről: „%1$s”, erre: „%2$s”.</string>
|
||||
<string name="group_image_changed_by_you">Ön megváltoztatta a csoport profilképét.</string>
|
||||
<!-- %1$s will be replaced by name and address of the contact who did the action -->
|
||||
<string name="group_image_changed_by_other">%1$s megváltoztatta a csoport profilképét.</string>
|
||||
@@ -952,6 +958,7 @@
|
||||
<string name="chat_protection_broken_explanation">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.</string>
|
||||
<string name="invalid_unencrypted_tap_to_learn_more">⚠️ 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.</string>
|
||||
<string name="invalid_unencrypted_explanation">A végpontok közötti titkosítás létrehozásához személyesen is találkozhat az ismerőseivel, és a QR-kódjukat beolvasva bemutathatja őket.</string>
|
||||
<!-- deprecated -->
|
||||
<string name="encryption_required_for_new_contact">A végpontok közötti titkosítás beállítása szükséges, de a(z) %1$s nevű ismerőse esetében az még nincs beállítva.\n\nMegoszthatja a meghívó-hivatkozását, vagy személyesen is találkozhat vele, és beolvashatja a QR-kódját.</string>
|
||||
<string name="learn_more">Tudjon meg többet</string>
|
||||
|
||||
@@ -981,9 +988,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Ezt a QR-kódot mások is beolvashatják, hogy felvegyék önnel a kapcsolatot.\n\nA QR-kódot itt kikapcsolhatja, és újból bekapcsolhatja, ha újra beolvassa.</string>
|
||||
<string name="withdraw_verifygroup_explain">Ezt a QR-kódot mások is beolvashatják, hogy csatlakozhassanak a(z) „%1$s” nevű csoporthoz.\n\nA QR-kódot itt kikapcsolhatja, és újra bekapcsolhatja, ha újra beolvassa.</string>
|
||||
<string name="withdraw_qr_code">QR-kód kikapcsolása</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Ezt a QR-kódot mások is beolvashatják, hogy kapcsolatba lépjenek Önnel.\n\nA QR-kód nincs bekapcsolva ezen az eszközön.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Ezt a QR-kódot mások is beolvashatják, hogy csatlakozzanak a(z) „%1$s” nevű csoporthoz.\n\nA QR-kód nincs bekapcsolva ezen az eszközön.</string>
|
||||
<string name="revive_qr_code">QR-kód bekapcsolása</string>
|
||||
<string name="qrshow_title">QR-kód-meghívó</string>
|
||||
@@ -1027,8 +1032,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">Nem sikerült dekódolni a mailto-hivatkozást: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Elvetés</string>
|
||||
<string name="notify_reply_button">Válasz</string>
|
||||
<string name="notify_new_message">Új üzenet</string>
|
||||
<string name="notify_background_connection_enabled">Háttérkapcsolat engedélyezve</string>
|
||||
@@ -1084,8 +1087,12 @@
|
||||
<string name="global_menu_view_developer_desktop">Fejlesztő</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Fejlesztői eszközök</string>
|
||||
<string name="global_menu_help_desktop">Súgó</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Tudjon meg többet a Delta Chatről</string>
|
||||
<string name="delta_chat_homepage">A Delta Chat weboldala</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Hozzájárulás a GitHubon</string>
|
||||
<string name="contribute">Közreműködés</string>
|
||||
<string name="global_menu_help_report_desktop">Jelentsen egy problémát</string>
|
||||
<string name="global_menu_help_about_desktop">A Delta Chat-ről</string>
|
||||
<string name="global_menu_file_open_desktop">Delta Chat megnyitása</string>
|
||||
@@ -1098,6 +1105,8 @@
|
||||
<string name="timestamp_format_m_desktop">MMM D</string>
|
||||
<string name="remove_desktop">Eltávolítás</string>
|
||||
<string name="save_desktop">Mentés</string>
|
||||
<!-- Opposite of "Save". Undo a "Save" action. Similar to "Unmute", "Unpin". Could also be worded as "Save no longer" or so. -->
|
||||
<string name="unsave">Mentés megszüntetése</string>
|
||||
<string name="name_desktop">Név</string>
|
||||
<string name="select_group_image_desktop">Csoport képének kiválasztása</string>
|
||||
<string name="export_backup_desktop">Biztonsági mentés exportálása</string>
|
||||
@@ -1105,7 +1114,7 @@
|
||||
<string name="forget_login_confirmation_desktop">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.</string>
|
||||
<string name="message_detail_sent_desktop">elküldött</string>
|
||||
<string name="message_detail_received_desktop">érkezett</string>
|
||||
<string name="menu.view.developer.open.log.folder">Naplófájlok könyvtárának megnyitása</string>
|
||||
<string name="menu.view.developer.open.log.folder">Naplófájlok mappájának megnyitása</string>
|
||||
<string name="menu.view.developer.open.current.log.file">Jelenlegi naplófájl megnyitása</string>
|
||||
<string name="explain_desktop_minimized_disabled_tray_pref" tools:ignore="TypographyDashes">A tálca ikonja nem kapcsolható ki, mivel a Delta Chat a --minimized kapcsolóval indult.</string>
|
||||
<string name="no_spellcheck_suggestions_found">Nem találhatók helyesírási javaslatok.</string>
|
||||
@@ -1157,8 +1166,18 @@
|
||||
<string name="notifications_avg_minutes">Átlagosan %1$d percenként</string>
|
||||
<string name="notifications_avg_hours">Átlagosan %1$d óránként</string>
|
||||
<string name="last_check_at">Ellenőrizve ekkor: %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">A bármelyik csevegésben kapott vagy küldött alkalmazások itt fognak megjelenni. A „Fájlok” az éppen letöltött alkalmazásokat jeleníti meg.</string>
|
||||
<string name="system_settings">Rendszer-beállítások</string>
|
||||
<!-- shown below the button "System Settings" on the notification screen. this is a hint about what can be edited on System Settings' Notification page - eg. the notification type (banner, lock screen, notification centre), sound, badges and so on. no need to be exhaustive here, it is only to give the user an idea. -->
|
||||
<string name="system_settings_notify_explain_ios">Típus-, kitűzők-, előnézet- és egyebek szerkesztése</string>
|
||||
<!-- iOS shortcut widget -->
|
||||
<!-- use the same translation for "Shortcuts" as the system is using, often the term "Shortcut" stays untranslated; check eg. how the "Shortcuts" system app is called in your locale -->
|
||||
<string name="shortcuts_widget_title">Parancsikonok</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="shortcuts_widget_description">Használja a Delta Chat „Hozzáadás modulhoz” funkcióját az elemek hozzáadásához</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="remove_from_widget">Eltávolítás a modulból</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="add_to_widget">Hozzáadás modulhoz</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">A Delta Chat az eszköze kameráját használja fényképek és videók készítésére és küldésére, valamint QR-kódok beolvasására.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">A Delta Chat a névjegyek segítségével megjeleníti azon e-mail-címek listáját, amelyekkel cseveghet. A Delta Chatnek nincs központi kiszolgálója, a névjegyeit nem küldjük el sehova.</string>
|
||||
@@ -1183,7 +1202,7 @@
|
||||
<string name="perm_enable_bg_already_done">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.</string>
|
||||
|
||||
<!-- device messages for updates -->
|
||||
<string name="update_1_50_android">Mik az újdonságok?\n\n❤️🔥 Új hangulatjel-választó még több hangulatjellel\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</string>
|
||||
<string name="update_1_50_android">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</string>
|
||||
<string name="update_1_46_ios">Új szolgáltatások 🐣 és további tudnivalók:\n\n⚡️ Regisztráljon biztonságos, gyors chatmail-kiszolgálókra (https://delta.chat/chatmail) vagy használja a klasszikus e-mail-kiszolgálókat\n\n👉 PUSH értesítések bármely chatmail-kiszolgálóra\n\n👤 Fogadjon „Csatolt névjegyeket\" és csatlakozzon az ismerőseihez\n\n🥰 Gyorsabb üzenetreakció kiválasztás … tudjon meg többet itt: %1$s</string>
|
||||
<string name="update_switch_profile_placement">ℹ️ 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 💡</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Batalkan</string>
|
||||
<string name="clear_search">Hapus pencarian</string>
|
||||
<string name="clear_search">Hapus pencarian</string>
|
||||
<string name="yes">Ya</string>
|
||||
<string name="no">Tidak</string>
|
||||
<string name="select">Pilih</string>
|
||||
@@ -471,8 +471,6 @@
|
||||
<string name="pref_app_access">Akes Aplikasi</string>
|
||||
<string name="pref_chats">Obrolan</string>
|
||||
<string name="pref_in_chat_sounds">Suara dalam obrolan</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Ukuran huruf pesan</string>
|
||||
<string name="pref_view_log">Lihat catatan</string>
|
||||
<string name="pref_saved_log">Menyimpan log ke folder \"Unduhan\"</string>
|
||||
<string name="pref_save_log_failed">Gagal menyimpan log</string>
|
||||
@@ -602,6 +600,7 @@
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">Ubah pengaturan untuk %1$s.</string>
|
||||
<string name="copy_qr_data_success">Salin QR url ke papan klip</string>
|
||||
<!-- notifications -->
|
||||
<string name="notify_reply_button">Balasan</string>
|
||||
<string name="notify_new_message">Pesan baru</string>
|
||||
<string name="notify_background_connection_enabled">Koneksi latar diaktifkan</string>
|
||||
@@ -639,7 +638,9 @@
|
||||
<string name="global_menu_view_developer_desktop">Pengembang</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Alat pengembang</string>
|
||||
<string name="global_menu_help_desktop">Bantuan</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Pelajari lebih lanjut Delta Chat</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Kontribusi di GitHub</string>
|
||||
<string name="global_menu_help_report_desktop">Laporkan masalah</string>
|
||||
<string name="global_menu_help_about_desktop">Tentang Delta Chat</string>
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Annulla</string>
|
||||
<!-- deprecated, the word "or" to separate blocks in the user interface that are mutually exclusive -->
|
||||
<string name="or_separator">o</string>
|
||||
<string name="clear_search">Cancella Ricerca</string>
|
||||
<!-- a noun, used on a button, short for "show link" -->
|
||||
<string name="link">Collegamento</string>
|
||||
@@ -39,6 +37,7 @@
|
||||
<string name="close_window">Chiudi Finestra</string>
|
||||
<string name="forward">Inoltra</string>
|
||||
<string name="create">Crea</string>
|
||||
<string name="reset">Azzera</string>
|
||||
<string name="later">Dopo</string>
|
||||
<!-- "Resend" means "Sending the selected message(s) again to the same chat". The string is used in a menu and should be as short as possible. Resending may be needed after failures or to repost old messages to new members. -->
|
||||
<string name="resend">Reinvia</string>
|
||||
@@ -47,6 +46,7 @@
|
||||
<!-- Verb "to unarchive", as in "remove a chat from the archive", opposite of the previous string -->
|
||||
<string name="unarchive">Ripristina</string>
|
||||
<string name="mute">Silenzia</string>
|
||||
<string name="muted">Disattivato</string>
|
||||
<string name="ephemeral_messages">Messaggi a Scomparsa</string>
|
||||
<string name="ephemeral_messages_hint">Si applica a tutti i membri di questa chat se utilizzano Delta Chat; possono comunque copiare, salvare e inoltrare messaggi o utilizzare altri client e-mail.</string>
|
||||
<string name="save">Salva</string>
|
||||
@@ -195,6 +195,14 @@
|
||||
<string name="webxdc_apps">Apps</string>
|
||||
<string name="webxdc_store_url">URL Selettore App</string>
|
||||
<string name="webxdc_store_url_explain">Se impostato, l\'URL verrà utilizzato come Selettore App anziché quello predefinito</string>
|
||||
<string name="home">Inizio</string>
|
||||
<string name="games">Giochi</string>
|
||||
<string name="tools">Strumenti</string>
|
||||
<string name="app_size">Dimensione</string>
|
||||
<string name="app_date_published">Pubblicato</string>
|
||||
<string name="add_to_chat">Aggiungi alla Chat</string>
|
||||
<!-- short for "Browse through the App Picker/Store/Catalogue"; could also be translated as "Discover" or "Search" -->
|
||||
<string name="browse">Sfoglia</string>
|
||||
<string name="unknown">Sconosciuto</string>
|
||||
|
||||
<string name="green">Verde</string>
|
||||
@@ -523,6 +531,7 @@
|
||||
<string name="tab_audio_empty_hint">I files audio e i messaggi vocali condivisi in questa chat verranno mostrati qui.</string>
|
||||
<string name="tab_webxdc_empty_hint">Le app condivise in questa chat verranno mostrate qui.</string>
|
||||
<string name="tab_all_media_empty_hint">I media condivisi in qualsiasi chat verranno mostrate qui.</string>
|
||||
<string name="all_apps_empty_hint">Le app ricevute o inviate in qualsiasi chat verranno mostrate qui.</string>
|
||||
<string name="media_preview">Anteprima Media</string>
|
||||
<!-- option to show images in the gallery with the correct width/height aspect (instead of square); other gallery apps may be a source of inspiration for translation :) -->
|
||||
<string name="aspect_ratio_grid">Aspetto Griglia Proporzioni</string>
|
||||
@@ -554,10 +563,6 @@
|
||||
<string name="multidevice_transfer_done_devicemsg">ℹ️ Profilo trasferito sul tuo secondo dispositivo.</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="preparing_account">Preparazione profilo…</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="waiting_for_receiver">In attesa del ricevente...</string>
|
||||
<!-- deprecated, shown beside progress bar, stay short -->
|
||||
<string name="receiver_connected">Ricevente connesso…</string>
|
||||
<!-- Shown beside progress bar, stay short -->
|
||||
<string name="transferring">Trasferimento…</string>
|
||||
<string name="troubleshooting">Risoluzione dei problemi</string>
|
||||
@@ -676,6 +681,8 @@
|
||||
<string name="profile_tag">Etichetta Privata</string>
|
||||
<string name="profile_tag_hint">es. Lavoro, Famiglia</string>
|
||||
<string name="profile_tag_explain">Etichetta che è visibile solo a te; ti aiuta a distinguere i tuoi profili.</string>
|
||||
<!-- Menu entry to sort an item to the beginning of a list. Only "To Top" may do as well in some translations, if that helps to stay shorter. -->
|
||||
<string name="move_to_top">Sposta in Alto</string>
|
||||
<string name="delete_account">Elimina Profilo</string>
|
||||
<string name="delete_account_ask">Sei certo di voler eliminare i dati del tuo profilo?</string>
|
||||
<string name="delete_account_explain_with_name">Tutti i dati del profilo di \"%s\" su questo dispositivo verranno eliminati, inclusa la configurazione della crittografia end-to-end, i contatti, le chat, i messaggi e i contenuti multimediali. Questa azione non può essere annullata.</string>
|
||||
@@ -740,6 +747,7 @@
|
||||
<string name="pref_appearance">Aspetto</string>
|
||||
<string name="pref_theme">Tema</string>
|
||||
<string name="pref_language">Lingua</string>
|
||||
<string name="pref_use_system_ui_font">Usa Font di Sistema</string>
|
||||
<string name="pref_incognito_keyboard">Tastiera Incognito</string>
|
||||
<!-- Translators: Must indicate that there is no guarantee as the system may not honor our request. -->
|
||||
<string name="pref_incognito_keyboard_explain">Richiedi alla tastiera di disattivare l\'apprendimento personalizzato</string>
|
||||
@@ -757,8 +765,6 @@
|
||||
<string name="pref_app_access">Accesso App</string>
|
||||
<string name="pref_chats">Chats</string>
|
||||
<string name="pref_in_chat_sounds">Suoni In-Chat</string>
|
||||
<!-- deprecated -->
|
||||
<string name="pref_message_text_size">Dimensione Font Messaggi</string>
|
||||
<string name="pref_view_log">Vedi Registro</string>
|
||||
<string name="pref_saved_log">Registro salvato nella cartella \"Downloads\"</string>
|
||||
<string name="pref_save_log_failed">Salvataggio registro non riuscito</string>
|
||||
@@ -969,6 +975,7 @@
|
||||
<string name="chat_protection_broken_explanation">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.</string>
|
||||
<string name="invalid_unencrypted_tap_to_learn_more">⚠️ %1$s richiede la crittografia end-to-end che non è ancora configurata per questa chat. Tocca per saperne di più.</string>
|
||||
<string name="invalid_unencrypted_explanation">Per stabilire la crittografia end-to-end, potresti incontrare i contatti di persona e scansionare il loro Codice QR per verificarli.</string>
|
||||
<!-- deprecated -->
|
||||
<string name="encryption_required_for_new_contact">È richiesta la crittografia end-to-end, ma non è ancora configurata per %1$s.\n\nPuoi condividere con loro il collegamento d\'invito o incontrarli di persona e scansionare il loro Codice QR.</string>
|
||||
<string name="learn_more">Per Saperne di Più</string>
|
||||
|
||||
@@ -998,9 +1005,7 @@
|
||||
<string name="withdraw_verifycontact_explain">Questo codice QR può essere scansionato da altri utenti per contattarti.\n\nÈ possibile disattivare il codice QR qui e riattivarlo scansionandolo di nuovo.</string>
|
||||
<string name="withdraw_verifygroup_explain">Questo codice QR può essere scansionato da altri per unirsi al gruppo \"%1$s\".\n\nPuoi disattivare il codice QR qui e riattivarlo scansionandolo di nuovo.</string>
|
||||
<string name="withdraw_qr_code">Disattiva Codice QR</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifycontact_explain">Questo codice QR potrebbe essere scansionato da altri per contattarti.\n\nIl codice QR non è attivo su questo dispositivo.</string>
|
||||
<!-- "could" in the meaning of "possible at some point in the past, but no longer possible today" -->
|
||||
<string name="revive_verifygroup_explain">Questo codice QR può essere scansionato da altri per unirsi al gruppo \"%1$s\".\n\nIl codice QR non è attivo su questo dispositivo.</string>
|
||||
<string name="revive_qr_code">Attiva Codice QR </string>
|
||||
<string name="qrshow_title">Codice QR Invito</string>
|
||||
@@ -1044,8 +1049,6 @@
|
||||
<string name="mailto_link_could_not_be_decoded">Il collegamento mailto non può essere decodificato: %1$s</string>
|
||||
|
||||
<!-- notifications -->
|
||||
<!-- deprecated, use mark_as_read or mark_as_read_short -->
|
||||
<string name="notify_dismiss">Ignora</string>
|
||||
<string name="notify_reply_button">Rispondi</string>
|
||||
<string name="notify_new_message">Nuovo messaggio</string>
|
||||
<string name="notify_background_connection_enabled">Connessione in secondo piano abilitata</string>
|
||||
@@ -1068,7 +1071,7 @@
|
||||
<string name="perm_explain_access_to_mic_denied">Per inviare messaggi audio, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Microfono\".</string>
|
||||
<string name="perm_explain_access_to_storage_denied">Per ricevere o inviare files, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Archiviazione\".</string>
|
||||
<string name="perm_explain_access_to_location_denied">Per allegare una posizione, vai alle impostazioni dell\'app, seleziona \"Autorizzazioni\" e abilita \"Posizione\".</string>
|
||||
<string name="perm_explain_access_to_notifications_denied">Per ricevere le notifiche, vai su \"Impostazioni Sistema / App / Delta Chat\" e attiva \"Notifiche\".</string>
|
||||
<string name="perm_explain_access_to_notifications_denied">Per ricevere le notifiche, vai su \"Impostazioni di Sistema / App / Delta Chat\" e attiva \"Notifiche\".</string>
|
||||
|
||||
<!-- ImageEditorHud -->
|
||||
<string name="ImageEditorHud_draw_anywhere_to_blur">Disegna ovunque per sfocare</string>
|
||||
@@ -1101,8 +1104,12 @@
|
||||
<string name="global_menu_view_developer_desktop">Sviluppatore</string>
|
||||
<string name="global_menu_view_developer_tools_desktop">Strumenti di Sviluppo</string>
|
||||
<string name="global_menu_help_desktop">Aiuto</string>
|
||||
<!-- deprecated, use delta_chat_homepage instead -->
|
||||
<string name="global_menu_help_learn_desktop">Scopri di più su Delta Chat</string>
|
||||
<string name="delta_chat_homepage">Delta Chat Pagina Iniziale</string>
|
||||
<!-- deprecated, use contribute instead -->
|
||||
<string name="global_menu_help_contribute_desktop">Contribuisci su GitHub</string>
|
||||
<string name="contribute">Contribuisci</string>
|
||||
<string name="global_menu_help_report_desktop">Segnala Problema</string>
|
||||
<string name="global_menu_help_about_desktop">Informazioni Delta Chat</string>
|
||||
<string name="global_menu_file_open_desktop">Apri Delta Chat</string>
|
||||
@@ -1115,6 +1122,8 @@
|
||||
<string name="timestamp_format_m_desktop">D MMM</string>
|
||||
<string name="remove_desktop">Rimuovi</string>
|
||||
<string name="save_desktop">Salva</string>
|
||||
<!-- Opposite of "Save". Undo a "Save" action. Similar to "Unmute", "Unpin". Could also be worded as "Save no longer" or so. -->
|
||||
<string name="unsave">Non Salvare</string>
|
||||
<string name="name_desktop">Nome</string>
|
||||
<string name="select_group_image_desktop">Seleziona Immagine Gruppo</string>
|
||||
<string name="export_backup_desktop">Esporta Backup</string>
|
||||
@@ -1174,8 +1183,18 @@
|
||||
<string name="notifications_avg_minutes">In media ogni %1$d minuti</string>
|
||||
<string name="notifications_avg_hours">In media ogni %1$d ore</string>
|
||||
<string name="last_check_at">Controllato a %1$s</string>
|
||||
<!-- iOS webxdc selector -->
|
||||
<string name="webxdc_selector_empty_hint">Le app ricevute o inviate in qualsiasi chat verranno mostrate qui. \"Files\" mostra le app appena scaricate.</string>
|
||||
<string name="system_settings">Impostazioni di Sistema</string>
|
||||
<!-- shown below the button "System Settings" on the notification screen. this is a hint about what can be edited on System Settings' Notification page - eg. the notification type (banner, lock screen, notification centre), sound, badges and so on. no need to be exhaustive here, it is only to give the user an idea. -->
|
||||
<string name="system_settings_notify_explain_ios">Modifica tipo, distintivi, anteprima e altro</string>
|
||||
<!-- iOS shortcut widget -->
|
||||
<!-- use the same translation for "Shortcuts" as the system is using, often the term "Shortcut" stays untranslated; check eg. how the "Shortcuts" system app is called in your locale -->
|
||||
<string name="shortcuts_widget_title">Scorciatoie</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="shortcuts_widget_description">Utilizza \"Aggiungi al Widget\" di Delta Chat per aggiungere elementi</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="remove_from_widget">Rimuovi dal Widget</string>
|
||||
<!-- use the same translation for "Widget" as the system is using; often the term "Widget" stays untranslated -->
|
||||
<string name="add_to_widget">Aggiungi al Widget</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Delta Chat utilizza la tua fotocamera per scattare e inviare foto e video e per scansionare i codici QR.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">Delta Chat usa i tuoi contatti per mostrare una lista di indirizzi e-mail a cui puoi scrivere. Delta Chat non ha un server, i tuoi contatti non vengono inviati da nessuna parte.</string>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user