Merge remote-tracking branch 'upstream/main'
This commit is contained in:
commit
fa7a3c9c32
124 changed files with 2449 additions and 1242 deletions
|
|
@ -1,8 +1,11 @@
|
|||
# Delta Chat Android Changelog
|
||||
|
||||
## Unreleased
|
||||
## v2.34.0
|
||||
2025-12
|
||||
|
||||
* Allow to add relay from clipboard or image if camera permission is not granted
|
||||
* Avoid crash in the "View Log" screen
|
||||
* Update to core 2.34.0
|
||||
|
||||
## v2.33.1
|
||||
2025-12
|
||||
|
|
@ -10,6 +13,7 @@
|
|||
* Target Android 16
|
||||
* Change color of links in text messages
|
||||
* Improve edge-to-edge support
|
||||
* Add the option (opt-in) to send anonymous statistics to Delta Chat's developers
|
||||
* Metadata protection: protect message recipients
|
||||
* Allow to withdraw channel invite links and QR codes
|
||||
* Allow to open externally links clicked inside in-chat apps
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ android {
|
|||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
defaultConfig {
|
||||
versionCode 30000734
|
||||
versionName "2.33.1"
|
||||
versionCode 30000735
|
||||
versionName "2.34.0"
|
||||
|
||||
applicationId "chat.delta.lite"
|
||||
multiDexEnabled true
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 61cc4dba7c61bfffb985cb8b94520053b179b076
|
||||
Subproject commit 466be647af4ba725c228ac3186df0749aadd0a3f
|
||||
|
|
@ -62,7 +62,7 @@ public class FcmReceiveService extends FirebaseMessagingService {
|
|||
|
||||
prefixedToken = addPrefix(rawToken);
|
||||
Log.i(TAG, "FCM token: " + prefixedToken);
|
||||
ApplicationContext.dcAccounts.setPushDeviceToken(prefixedToken);
|
||||
ApplicationContext.getDcAccounts().setPushDeviceToken(prefixedToken);
|
||||
triedRegistering = true;
|
||||
});
|
||||
}
|
||||
|
|
@ -104,6 +104,6 @@ public class FcmReceiveService extends FirebaseMessagingService {
|
|||
public void onNewToken(@NonNull String rawToken) {
|
||||
prefixedToken = addPrefix(rawToken);
|
||||
Log.i(TAG, "new FCM token: " + prefixedToken);
|
||||
ApplicationContext.dcAccounts.setPushDeviceToken(prefixedToken);
|
||||
ApplicationContext.getDcAccounts().setPushDeviceToken(prefixedToken);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#mám-zájem-o-technické-podrobnosti-kde-najdu-víc">Mám zájem o technické podrobnosti. Kde najdu víc?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -948,22 +949,21 @@ try the <strong>manual transfer</strong> described below</p>
|
|||
<p>This method is only recommended if “Add Second Device” as described above does not work.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="je-v-plánu-vytvořit-webovou-verzi-delta-chatu">
|
||||
|
||||
|
|
@ -1007,33 +1007,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1100,6 +1111,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="mám-zájem-o-technické-podrobnosti-kde-najdu-víc">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#erweitert">Erweitert</a>
|
||||
<ul>
|
||||
<li><a href="#experimentelle-features">Experimentelle Features</a></li>
|
||||
<li><a href="#statssending">Was ist “Statistik an Delta Chat Entwickler senden”?</a></li>
|
||||
<li><a href="#relays">Was sind Relays?</a></li>
|
||||
<li><a href="#kann-ich-eine-klassische-e-mail-adresse-mit-delta-chat-verwenden">Kann ich eine klassische E-Mail-Adresse mit Delta Chat verwenden?</a></li>
|
||||
<li><a href="#classic-email">Wie kann ich ein Chat-Profil mit einer klassischen E-Mail-Adresse als Relay konfigurieren?</a></li>
|
||||
<li><a href="#ich-möchte-meinen-eigenen-server-für-delta-chat-verwalten-gibt-es-empfehlungen">Ich möchte meinen eigenen Server für Delta Chat verwalten. Gibt es Empfehlungen?</a></li>
|
||||
<li><a href="#statssending">Was ist “Statistik an Delta Chat Entwickler senden”?</a></li>
|
||||
<li><a href="#ich-bin-an-technischen-details-interessiert-gibt-es-hierzu-weitere-infos">Ich bin an technischen Details interessiert. Gibt es hierzu weitere Infos?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -137,14 +138,17 @@ basierend auf <a href="https://github.com/chatmail/core/blob/main/standards.md#s
|
|||
Es gibt keine öffentliches Verzeichnis, du entscheiden selbst über deine Kontakte.</p>
|
||||
|
||||
<ul>
|
||||
<li>Wenn du <strong>persönlich</strong> mit deinen Freunden oder Familie zusammen bist,
|
||||
<li>
|
||||
<p>Wenn du <strong>persönlich</strong> mit deinen Freunden oder Familie zusammen bist,
|
||||
tippe auf das <strong>QR-Code</strong>-Symbol <img style="vertical-align:middle; height:1.3em; margin:1px" src="../qr-icon.png" />
|
||||
auf dem Hauptbildschirm.<br />
|
||||
Bitte deinen Chatpartner den QR-Code mit Delta Chat zu <strong>scannen</strong>.</li>
|
||||
Bitte deinen Chatpartner den QR-Code mit Delta Chat zu <strong>scannen</strong>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Für eine Kontaktaufnahme <strong>aus der Ferne</strong>, klicke im selben Bildschirm auf “Kopieren” oder “Teilen” und sende den <strong>Einladungslink</strong> über einen anderen privaten Chat.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Für eine Kontaktaufnahme <strong>aus der Ferne</strong>, klicke im selben Bildschirm auf “Kopieren” oder “Teilen” und sende den <strong>Einladungslink</strong> über einen anderen privaten Chat.</p>
|
||||
|
||||
<p>Wartet nun, bis die Verbindung hergestellt ist.</p>
|
||||
|
||||
<ul>
|
||||
|
|
@ -230,7 +234,7 @@ bzw. <img style="vertical-align:middle; width:0.8em; margin:1px" src="../mic.png
|
|||
</h3>
|
||||
|
||||
<p>Ein Profil besteht aus <strong>einem Namen, einem Bild</strong> und einigen zusätzlichen Informationen zum Verschlüsseln von Nachrichten.
|
||||
Ein Profil existiert nur auf Ihren Geräten
|
||||
Ein Profil existiert nur auf deinen Geräten
|
||||
und verwendet den Server nur für den Transport von Nachrichten.</p>
|
||||
|
||||
<p>Bei der Installation von Delta Chat wird ein erstes Profil erstellt.</p>
|
||||
|
|
@ -361,7 +365,7 @@ sei es durch den <a href="#edit">Absender</a>, durch <a href="#delold">Automatis
|
|||
<p><strong>Zwei Häkchen</strong> <img style="vertical-align:middle; width:1.5em; margin:1px" src="../tick2.png" alt="" /> bedeuten, dass mindestens ein Gerät des Empfängers zurückgemeldet hat, die Nachricht empfangen zu haben.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Lesebestätigungen können deaktiviert werden. D.h. auch wenn Sie nur ein Häkchen sehen, kann die Nachricht gelesen worden sein.</p>
|
||||
<p>Lesebestätigungen können deaktiviert werden. D.h. auch wenn du nur ein Häkchen siehst, kann die Nachricht gelesen worden sein.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Umgekehrt bedeuten zwei Häkchen nicht automatisch, dass ein Mensch die Nachricht gelesen oder verstanden hat ;)</p>
|
||||
|
|
@ -433,7 +437,7 @@ oder auf andere Weise Nachrichten vor dem Löschen speichern, kopieren oder weit
|
|||
|
||||
<ul>
|
||||
<li>Wenn du Speicherplatz auf deinem Gerät sparen möchtest, kannst du alte Nachrichten automatisch löschen lassen.</li>
|
||||
<li>Hierzu, öffne die “Chats und Medien”-Einstellungen und dort “Alte Nachrichten vom Gerät löschen”. Du kannst einen Zeitraum zwischen “1 Stunde” und “1 Jahr” festlegen; auf diese Weise werden <em>alle</em> Nachrichten von Ihrem Gerät gelöscht, sobald sie älter als angegeben sind.</li>
|
||||
<li>Hierzu, öffne die “Chats und Medien”-Einstellungen und dort “Alte Nachrichten vom Gerät löschen”. Du kannst einen Zeitraum zwischen “1 Stunde” und “1 Jahr” festlegen; auf diese Weise werden <em>alle</em> Nachrichten von deinem Gerät gelöscht, sobald sie älter als angegeben sind.</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="remove-account">
|
||||
|
|
@ -444,16 +448,15 @@ oder auf andere Weise Nachrichten vor dem Löschen speichern, kopieren oder weit
|
|||
|
||||
</h3>
|
||||
|
||||
<p>If you are using more than one chat profile,
|
||||
you can remove single ones in the top profile switcher menu (on Android and iOS),
|
||||
or in the sidebar with a right click (in the Desktop app).
|
||||
Chat profiles are only removed on the device where deletion was triggered.
|
||||
Chat profiles on other devices will continue to fully function.</p>
|
||||
<p>Wenn du mehr als ein Chat-Profil verwendest,
|
||||
kannst du einzelne Profile über den Avatar oben links (Android/iOS)
|
||||
oder über die Seitenleiste (Desktop, Rechtsklick) entfernen.
|
||||
Chat-Profile werden nur auf dem Gerät entfernt, auf dem “Löschen” ausgewählt wurde.
|
||||
Chat-Profile auf anderen Geräten funktionieren uneingeschränkt weiter.</p>
|
||||
|
||||
<p>If you use a single default chat profile you can simply uninstall the app.
|
||||
This will still automatically trigger deletion of all associated address data on the chatmail server.
|
||||
For more info, please refer to <a href="https://nine.testrun.org/info.html#account-deletion">nine.testrun.org address-deletion</a>
|
||||
or the respective page from your chosen <a href="https://chatmail.at/relays">3rd party chatmail server</a>.</p>
|
||||
<p>Wenn du ein einzelnes Standard-Chat-Profil verwendest, kannst du die App einfach deinstallieren.
|
||||
Dadurch werden automatisch alle zugehörigen Daten gelöscht.
|
||||
Weitere Informationen findest du auf der Seite des ausgewählten <a href="https://chatmail.at/relays">Relay</a>.</p>
|
||||
|
||||
<h2 id="groups">
|
||||
|
||||
|
|
@ -463,15 +466,15 @@ or the respective page from your chosen <a href="https://chatmail.at/relays">3rd
|
|||
|
||||
</h2>
|
||||
|
||||
<p>Groups let several people chat together privately with <strong>equal rights</strong>.</p>
|
||||
<p>Gruppen ermöglichen es mehreren Personen, privat miteinander bei <strong>gleichen Rechte</strong> zu chatten.</p>
|
||||
|
||||
<p>Anyone can
|
||||
change the group name or avatar,
|
||||
<a href="#addmembers">add or remove members</a>,
|
||||
set <a href="#ephemeralmsgs">disappearing messages</a>,
|
||||
and <a href="#edit">delete their own messages</a> from all member’s devices.</p>
|
||||
<p>Jeder kann
|
||||
den Gruppennamen oder Avatar ändern,
|
||||
<a href="#addmembers">Mitglieder hinzufügen oder entfernen</a>,
|
||||
<a href="#ephemeralmsgs">Verschwindende Nachrichten</a> einstellen
|
||||
und seine <a href="#edit">eigenen Nachrichten von Geräten der Mitglieder löschen</a>.</p>
|
||||
|
||||
<p>Because all members have the same rights, groups work best among <strong>trusted friends and family</strong>.</p>
|
||||
<p>Da alle Mitglieder die gleichen Rechte haben, funktionieren Gruppen am besten unter <strong>vertrauten Freunden und Familienmitgliedern</strong>.</p>
|
||||
|
||||
<h3 id="eine-gruppe-anlegen">
|
||||
|
||||
|
|
@ -497,27 +500,20 @@ and <a href="#edit">delete their own messages</a> from all member’s devices.</
|
|||
|
||||
<ul>
|
||||
<li>
|
||||
<p>All group members have the <strong>same rights</strong>.
|
||||
For this reason, everyone can delete any member or add new ones.</p>
|
||||
<p>Alle Gruppenmitglieder haben <strong>dieselben Rechte</strong>. Jeder kann daher jeden löschen oder weitere Mitglieder hinzufügen.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>To <strong>add or delete members</strong>, tap the group name in the chat and select the member to add or remove.</p>
|
||||
<p>Um <strong>Mitglieder hinzuzufügen oder zu entfernen</strong>, tippe im Chat auf den Gruppennamen und wähle das Mitglied aus, das du hinzufügen oder entfernen möchtest.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If the member is not yet in your contact list, but <strong>face to face</strong> with you,
|
||||
from the same screen, show a <strong>QR code</strong>.<br />
|
||||
Ask your chat partner to <strong>scan</strong> the QR image with their Delta Chat app by tapping
|
||||
<img style="vertical-align:middle; height:1.3em; margin:1px" src="../qr-icon.png" /> on the main screen.</p>
|
||||
<p>Wenn das Mitglied noch nicht in deiner Kontaktliste ist, sie sich aber <strong>persönlich</strong> treffen, wählen Sie dort <strong>QR-Einladungscode</strong> an. Dein Chat-Partner kann nun den QR-Code mit seiner Delta Chat-App <strong>scannen</strong> indem er auf <img style="vertical-align:middle; height:1.3em; margin:1px" src="../qr-icon.png" /> auf dem Hauptbildschirm tippt.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>For a <strong>remote</strong> member addition,
|
||||
click “Copy” or “Share” and send the <strong>invite link</strong>
|
||||
through another private chat to the new member.</p>
|
||||
<p>Für eine Kontaktaufnahme <strong>aus der Ferne</strong>, tippe dort “Kopieren” oder “Teilen” und sende den Einladungslink über einen anderen privaten Chat zum neuen Mitglied.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>QR code and invite link can be used to add several members.
|
||||
However, since groups are <a href="#groups">meant for trusted people</a>, avoid sharing them publicly.</p>
|
||||
<p>Mit einem QR-Code und dem Einladungslink können mehrere Mitglieder hinzugefügt werden. Da Gruppen jedoch <a href="#groups">für vertrauenswürdige Personen gedacht sind</a>, solltest du diese nicht öffentlich teilen.</p>
|
||||
|
||||
<h3 id="ich-habe-mich-selbst-versehentlich-gelöscht">
|
||||
|
||||
|
|
@ -558,21 +554,21 @@ Wenn du der Gruppe später erneut beitreten möchtest, bitten ein anderes Gruppe
|
|||
|
||||
</h3>
|
||||
|
||||
<p>You can duplicate a group to start a separate discussion
|
||||
or to exclude members without them noticing.</p>
|
||||
<p>Du kannst eine Gruppe duplizieren, um eine separate Diskussion zu starten
|
||||
oder um Mitglieder auszuschließen, ohne dass diese es bemerken.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Open the group profile and tap <strong>Clone Chat</strong> (Android/iOS),
|
||||
or right-click the group in the chat list (Desktop).</p>
|
||||
<p>Öffnen das Gruppenprofil und tippe auf <strong>Chat klonen</strong> (Android/iOS)
|
||||
oder klicken mit der rechten Maustaste auf die Gruppe in der Chat-Liste (Desktop).</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Set a new name, choose an avatar, and adjust the member list if needed.</p>
|
||||
<p>Legen einen neuen Namen fest, wähle einen Avatar und passe gegebenenfalls die Mitgliederliste an.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>The new group is <strong>fully independent</strong> from the original,
|
||||
which continues to work as before.</p>
|
||||
<p>Die neue Gruppe ist <strong>völlig unabhängig</strong> von der ursprünglichen,
|
||||
die weiterhin wie bisher funktioniert.</p>
|
||||
|
||||
<h2 id="webxdc">
|
||||
|
||||
|
|
@ -582,8 +578,8 @@ which continues to work as before.</p>
|
|||
|
||||
</h2>
|
||||
|
||||
<p>You can send apps to a chat - games, editors, polls and other tools.
|
||||
This makes Delta Chat a truly extensible messenger.</p>
|
||||
<p>Du kannst Apps an einen Chat senden – Spiele, Editoren, Umfragen und andere Tools.
|
||||
Dies macht Delta Chat zu einem wirklich erweiterbaren Messenger.</p>
|
||||
|
||||
<h3 id="wo-bekomme-ich-in-chat-apps">
|
||||
|
||||
|
|
@ -595,10 +591,10 @@ This makes Delta Chat a truly extensible messenger.</p>
|
|||
|
||||
<ul>
|
||||
<li>
|
||||
<p>In a chat, using <img style="vertical-align:middle; width:1.0em; margin:1px" src="../paperclip.png" alt="Paperclip" /> <strong>Attachment Button → Apps</strong></p>
|
||||
<p>Im Chat unter <img style="vertical-align:middle; width:1.0em; margin:1px" src="../paperclip.png" alt="Paperclip" /> <strong>Anhängen → Apps</strong></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>You can also <a href="#create-xdc">create your own app</a> and attach it using <img style="vertical-align:middle; width:1.0em; margin:1px" src="../paperclip.png" alt="Paperclip" /> <strong>Attachment Button → File</strong></p>
|
||||
<p>Du kannst deine <a href="#create-xdc">eigenen Apps erstellen</a> und mit <img style="vertical-align:middle; width:1.0em; margin:1px" src="../paperclip.png" alt="Paperclip" /> <strong>Anhängen → Datei</strong> anhängen</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
@ -612,19 +608,16 @@ This makes Delta Chat a truly extensible messenger.</p>
|
|||
|
||||
<ul>
|
||||
<li>
|
||||
<p>In-chat apps can not send data to the Internet, or download anything.</p>
|
||||
<p>In-Chat-Apps können keine Daten ins Internet senden oder etwas herunterladen.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>An in-chat app can only exchange data within a chat, with its
|
||||
copies on the devices of your chat partners. Other than that, it’s completely
|
||||
isolated from the Internet.</p>
|
||||
<p>Eine App kann nur Daten innerhalb eines Chats austauschen. Ansonsten ist sie vollständig vom Internet isoliert.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The privacy an in-chat app offers is the privacy of your chat - as long as you
|
||||
trust the people you chat with, you can trust the in-chat app as well.</p>
|
||||
<p>Die Privatsphäre, die eine App bietet, ist die Privatsphäre des Chats – solange Sie den Personen, mit denen Sie chatten, vertrauen, können Sie auch der App vertrauen.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>This also means: Just like for web links, do not open apps from untrusted contacts.</p>
|
||||
<p>Das bedeutet auch: Genauso wie bei Weblinks, öffne keine Apps von nicht-vertrauenswürdigen Kontakten.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
@ -638,19 +631,18 @@ trust the people you chat with, you can trust the in-chat app as well.</p>
|
|||
|
||||
<ul>
|
||||
<li>
|
||||
<p>In-chat apps are zip files with <code class="language-plaintext highlighter-rouge">.xdc</code> extension containing html, css, and javascript code.</p>
|
||||
<p>In-Chat-Apps sind ZIP-Dateien mit der Erweiterung <code class="language-plaintext highlighter-rouge">.xdc</code>, die HTML-, CSS- und JavaScript-Code enthalten.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>You can extend the <a href="https://github.com/webxdc/hello">Hello World example app</a>
|
||||
to get started.</p>
|
||||
<p>Um loszulegen, kannst du das <a href="https://github.com/webxdc/hello">Hello-World-Beispiel</a> bearbeiten.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>All else you need to know is written in the
|
||||
<a href="https://webxdc.org/docs">Webxdc documentation</a>.</p>
|
||||
<p>Alle weitere, was du wissen musst, ist in der
|
||||
<a href="https://webxdc.org/docs">Webxdc-Dokumentation</a> beschrieben.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you have question, you can ask others with experience
|
||||
in the <a href="https://support.delta.chat/c/webxdc/20">Delta Chat Forum</a>.</p>
|
||||
<p>Wenn du Fragen hast, kannst du andere mit mehr Erfahrung
|
||||
im <a href="https://support.delta.chat/c/webxdc/20">Forum</a> ansprechen.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
@ -710,8 +702,8 @@ keine Daten an Apple weitergibt, die Apple nicht bereits hat.</p>
|
|||
|
||||
</h3>
|
||||
|
||||
<p>If a “Push Service” is available, Delta Chat enables Push Notifications
|
||||
to achieve instant message delivery for all chatmail users.</p>
|
||||
<p>Wenn ein „Push-Dienst“ verfügbar ist, aktiviert Delta Chat Push-Benachrichtigungen,
|
||||
um eine sofortige Nachrichtenzustellung für alle Chatmail-Benutzer zu erreichen.</p>
|
||||
|
||||
<p>In den Delta-Chat-Einstellungen „Benachrichtigungen“ für „Sofortige Benachrichtigungen“
|
||||
kannst du die folgenden Einstellungen ändern, die alle Chat-Profile betreffen:</p>
|
||||
|
|
@ -724,7 +716,7 @@ Einige Android-Hersteller schränken Apps sogar vollständig ein
|
|||
und Delta Chat zeigt möglicherweise keine eingehenden Nachrichten an, bis du die App erneut manuell öffnest.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Hintergrundverbindung erzwingen: Dies ist die Ausweichoption wenn die vorherigen Optionen nicht verfügbar sind oder keine „sofortige Zustellung“ erreichen. Die Aktivierung dieser Option führt zu einer permanenten Benachrichtigung auf Ihrem Telefon, die bei neueren Android-Telefonen manchmal „verkleinert“ werden kann.</p>
|
||||
<p>Hintergrundverbindung erzwingen: Dies ist die Ausweichoption wenn die vorherigen Optionen nicht verfügbar sind oder keine „sofortige Zustellung“ erreichen. Die Aktivierung dieser Option führt zu einer permanenten Benachrichtigung auf deinem Telefon, die bei neueren Android-Telefonen manchmal „verkleinert“ werden kann.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
@ -739,9 +731,9 @@ können sicher ausprobiert werden, wenn du feststellst, dass Nachrichten nur mit
|
|||
|
||||
</h3>
|
||||
|
||||
<p>Delta Chat Push Notification support avoids leakage of private information.
|
||||
It does not leak profile data, IP address or message content (not even encrypted)
|
||||
to any system involved in the delivery of Push Notifications.</p>
|
||||
<p>Delta Chats Vorgehensweise, Push-Benachrichtigungen zu verwenden, vermeidet die Weitergabe privater Informationen.
|
||||
Es werden keine Profildaten, IP-Adressen oder Nachrichteninhalte (auch nicht verschlüsselt)
|
||||
an irgendein System, das an der Zustellung von Push-Benachrichtigungen beteiligt ist, weitergegeben.</p>
|
||||
|
||||
<p>So verwendet Delta Chat Push-Benachrichtigungen:</p>
|
||||
|
||||
|
|
@ -751,21 +743,20 @@ to any system involved in the delivery of Push Notifications.</p>
|
|||
auf dem <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 a message for a Delta Chat user
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
<p>Wenn ein <a href="https://delta.chat/chatmail">Chatmail</a>-Server eine Nachricht für einen Delta-Chat-Benutzer erhält
|
||||
erhält, leitet er das verschlüsselte Geräte-Token an den zentralen Delta-Chat-Benachrichtigungs-Proxy weiter.</p>
|
||||
</li>
|
||||
<li>
|
||||
<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 profile data of Delta Chat users.</p>
|
||||
<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 Adresse oder IP-Adresse des Delta-Chat-Benutzers zu kennen.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Push Service (Apple, Google, etc.)
|
||||
wakes up the Delta Chat app on your device
|
||||
to check for new messages in the background.
|
||||
It does not know about the profile data of the device it wakes up.
|
||||
The central Apple/Google Push services never see any profile data (sender or receiver)
|
||||
and also never see any message content (also not in encrypted forms).</p>
|
||||
<p>Der zentrale Push-Dienst (Apple, Google, etc.)
|
||||
weckt die Delta-Chat-App auf deinem Gerät auf
|
||||
um im Hintergrund nach neuen Nachrichten zu suchen.
|
||||
Der zentrale Push-Dienst weiß nichts über das Profil des Geräts, das er aufweckt,
|
||||
sieht nie eine Adresse (weder Absender noch Empfänger)
|
||||
und auch nie den Inhalt einer Nachricht (auch nicht in verschlüsselter Form).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
@ -773,10 +764,10 @@ and also never see any message content (also not in encrypted forms).</p>
|
|||
und vergisst die Geräte-Token, sobald Apple/Google/etc. sie verarbeitet hat,
|
||||
normalerweise innerhalb weniger Millisekunden.</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 profile data, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
<p>Beachten, dass das Geräte-Token zwischen Anwendungen und dem Benachrichtigungs-Proxy verschlüsselt,
|
||||
aber nicht signiert ist.
|
||||
Der Benachrichtigungs-Proxy sieht also niemals Profildaten, 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
|
||||
|
|
@ -795,10 +786,9 @@ aber wir wollen, dass die Nutzer eine zuverlässige „Sofortzustellung“ von N
|
|||
wie sie es von WhatsApp, Signal oder Telegram kennen,
|
||||
ohne im Vorfeld Fragen zu stellen, die eher für erfahrene Nutzer oder Entwickler geeignet sind.</p>
|
||||
|
||||
<p>Note that Delta Chat has a <a href="#privacy-notifications">small and privacy-preserving Push Notification system</a>
|
||||
that achieves “instant delivery” of messages for all chatmail servers
|
||||
including a potential one <a href="https://delta.chat/chatmail#selfhosted">you might setup yourself without our permission</a>.
|
||||
Welcome to the power of the interoperable chatmail relay network :)</p>
|
||||
<p>Beachte, dass Delta Chat ein <a href="#privacy-notifications">kleines, die Privatsphäre wahrendes Push-Benachrichtigungssystem</a>
|
||||
hat, das eine „sofortige Zustellung“ von Nachrichten für alle Chatmail-Server erreicht.
|
||||
Einschließlich dem Chatmail-Server, <a href="https://delta.chat/chatmail#selfhosted">den du selbst ohne unsere Erlaubnis einrichten kannst</a>.</p>
|
||||
|
||||
<h2 id="multiclient">
|
||||
|
||||
|
|
@ -897,14 +887,16 @@ versuche, einen <strong>Mobilen Hotspot</strong> auf einem Gerät zu öffnen und
|
|||
<p>Diese Methode wird nur empfohlen, wenn “Zweites Gerät hinzufügen”, wie oben beschrieben, nicht funktioniert.</p>
|
||||
|
||||
<ul>
|
||||
<li>Auf dem alten Gerät, gehe zu “Einstellungen → Chats und Medien → Chats auf externem Speicher speichern”. Gib deine PIN, dein Muster oder dein Passwort zum Entsperren des Bildschirms ein. Anschließend kannst du auf “Backup starten” klicken. Dadurch wird die Backup-Datei auf deinem Gerät gespeichert. Jetzt musst du sie auf das andere Gerät übertragen.</li>
|
||||
<li>Auf dem neuen Gerät, auf dem Anmeldebildschirm, wähle “Ich habe bereits ein Profil” und dann “Wiederherstellen aus Backup”. Nach dem Import sind deine Chats, Medien und Einstellungen auf das neue Gerät kopiert.
|
||||
<ul>
|
||||
<li><strong>Wenn du iOS verwendest</strong> und auf Schwierigkeiten stößt, hilft dir vielleicht <a href="https://support.delta.chat/t/import-backup-to-ios/1628">diese Anleitung</a>.</li>
|
||||
</ul>
|
||||
<li>
|
||||
<p>Auf dem alten Gerät, gehe zu <strong>Einstellungen → Chats und Medien → Chats auf externem Speicher speichern</strong>. Gib deine PIN, dein Muster oder dein Passwort zum Entsperren des Bildschirms ein. Anschließend kannst du auf “Backup starten” klicken. Dadurch wird die Backup-Datei auf deinem Gerät gespeichert. Jetzt musst du sie auf das andere Gerät übertragen.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Auf dem neuen Gerät, auf dem Anmeldebildschirm, wähle <strong>Ich habe bereits ein Profil → Wiederherstellen aus Backup</strong>. Nach dem Import sind deine Chats, Medien und Einstellungen auf das neue Gerät kopiert.
|
||||
Wenn du iOS verwendest und auf Schwierigkeiten stößt, hilft dir vielleicht <a href="https://support.delta.chat/t/import-backup-to-ios/1628">diese Anleitung</a>.</p>
|
||||
</li>
|
||||
<li>Du bist nun synchronisiert und kannst beide Geräte zum Senden und Empfangen von Ende-zu-Ende-verschlüsselten-Nachrichten mit deinen Kommunikationspartnern verwenden.</li>
|
||||
</ul>
|
||||
|
||||
<p>Du bist nun synchronisiert und kannst beide Geräte zum Senden und Empfangen von Ende-zu-Ende-verschlüsselten-Nachrichten mit deinen Kommunikationspartnern verwenden.</p>
|
||||
|
||||
<h3 id="gibt-es-pläne-für-eine-delta-chat-web-anwendung">
|
||||
|
||||
|
|
@ -941,36 +933,45 @@ kannst du unfertige Features ausprobieren, an denen gearbeitet wird.</p>
|
|||
|
||||
<p>Die Features können <strong>instabil</strong> sein und <strong>geändert oder entfernt</strong> werden.</p>
|
||||
|
||||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
<p>Du findest weitere Informationen im <a href="https://support.delta.chat">Forum</a>, wo du auch Feedback geben kannst.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
Was ist “Statistik an Delta Chat Entwickler senden”? <a href="#statssending" class="anchor"></a>
|
||||
Was sind Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays werden verwendet, um Nachrichten vorübergehend zu speichern, falls dein Gerät offline ist.
|
||||
Relays sind billige und einfache Server,
|
||||
die keine Daten wie Gruppenstatus, deinen Namen oder deinen Avatar speichern –
|
||||
all das existiert nur auf deinem Gerät.
|
||||
Relays werden von verschiedenen Gruppen und Personen betrieben.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>Standardmäßig wird nach der Installation ein Relay <strong>automatisch</strong> hinzugefügt;
|
||||
darum musst du dich nicht kümmern.
|
||||
Wenn du möchtest,
|
||||
kannst du jedoch unter <strong>Einstellungen → Erweitert → Relays</strong> Änderungen vornehmen:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>Du kannst ein Relay <strong>hinzufügen</strong>, indem du einen QR-Code scannst,
|
||||
z.B. von <a href="https://chatmail.at/relays">https://chatmail.at/relays</a>.
|
||||
Bei mehreren Relays, empfängst du die Nachrichten von allen Relays.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Standard</strong> legt das Relay fest, an das deine Chatpartner zukünftig Nachrichten senden.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Wenn du ein Relay <strong>entfernst</strong>,
|
||||
stelle sicher, dass ein anderes Standard-Relay ausreichend lange verwendet wurde.
|
||||
Andernfalls erreichen dich keine Nachrichten von deinen Kontakten.
|
||||
Im Zweifelsfall entferne das Relay später.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>Weitere Details und zukünftige Möglichkeiten findest du im <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="kann-ich-eine-klassische-e-mail-adresse-mit-delta-chat-verwenden">
|
||||
|
||||
|
|
@ -1037,6 +1038,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
Was ist “Statistik an Delta Chat Entwickler senden”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="ich-bin-an-technischen-details-interessiert-gibt-es-hierzu-weitere-infos">
|
||||
|
||||
|
||||
|
|
@ -1104,10 +1139,7 @@ Seit der Veröffentlichung von Delta Chat Version 2 (Juli 2025) gibt es keine Sc
|
|||
|
||||
<p>Wenn du die Standard-<a href="https://chatmail.at/relays">Chatmail-Relays</a> verwendest, ist es unmöglich, Nachrichten ohne End-to-End-Verschlüsselung zu empfangen oder zu senden.</p>
|
||||
|
||||
<p>If you instead use a <a href="#classic-email">classic email server</a>,
|
||||
you can send and receive messages with or without end-to-end encryption.
|
||||
Messages lacking end-to-end encryption are marked with an email icon
|
||||
<img style="vertical-align:middle; width:1.2em; margin:1px" src="../email-icon.png" alt="email" />.</p>
|
||||
<p>Wenn du stattdessen ein Profil mit einem <a href="#classic-email">klassischen E-Mail-Server</a> erstellst, kannst du Nachrichten mit und ohne Ende-zu-Ende-Verschlüsselung senden und empfangen. Nachrichten ohne Ende-zu-Ende-Verschlüsselung werden mit einem E-Mail-Symbol gekennzeichnet <img style="vertical-align:middle; width:1.2em; margin:1px" src="../email-icon.png" alt="email" />.</p>
|
||||
|
||||
<h3 id="e2eeguarantee">
|
||||
|
||||
|
|
@ -1181,10 +1213,11 @@ die Sicherheitseigenschaften durch das im Sommer 2023 angenommene
|
|||
|
||||
</h3>
|
||||
|
||||
<p>Yes, we are following efforts like <a href="https://en.wikipedia.org/wiki/Messaging_Layer_Security">MLS</a>
|
||||
but adopting them would mean breaking end-to-end encryption interoperability.
|
||||
So it would not be a light decision to take
|
||||
and there must be tangible improvements for users.</p>
|
||||
<p>Ja, wir verfolgen Ansätze wie <a href="https://en.wikipedia.org/wiki/Messaging_Layer_Security">MLS</a>.
|
||||
Diese zu übernehmen würde aber bedeuten, die Interoperabilität der Ende-zu-Ende-Verschlüsselung
|
||||
mit allen anderen Anwendungen zu zerstören.
|
||||
Die Entscheidung wäre also nicht leicht zu treffen
|
||||
und müsste spürbare Verbesserungen für die Nutzer bringen.</p>
|
||||
|
||||
<p>Delta Chat verfolgt einen ganzheitlichen Ansatz bei der “nutzbaren Sicherheit”:
|
||||
Wir arbeiteten mit vielen Aktivistengruppen sowie mit
|
||||
|
|
@ -1222,21 +1255,22 @@ so wie in der Autocrypt-Level-1-Spezifikation definiert.</p>
|
|||
|
||||
</h3>
|
||||
|
||||
<p>If you are sending or receiving email messages without end-to-end encryption (using a classic email server),
|
||||
they are still protected from cell or cable companies who can not read or modify your email messages.
|
||||
But both your and your recipient’s email providers
|
||||
may read, analyze or modify your messages, including any attachments.</p>
|
||||
<p>Wenn du E-Mail-Nachrichten ohne Ende-zu-Ende-Verschlüsselung sendest oder empfängst (mit einem klassischen E-Mail-Server),
|
||||
sind sie immer noch vor Mobilfunkanbietern oder Kabelnetzbetreibern geschützt, die deine E-Mail-Nachrichten nicht lesen oder verändern können.</p>
|
||||
|
||||
<p>Delta Chat by default uses strict
|
||||
<a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS encryption</a>
|
||||
which secures connections between your device and your email provider.
|
||||
All of Delta Chat’s TLS-handling has been independently <a href="#security-audits">security audited</a>.
|
||||
Moreover, the connection between your and the recipient’s email provider
|
||||
will typically be transport-encrypted as well.
|
||||
If the involved email servers support <a href="https://datatracker.ietf.org/doc/html/rfc8461">MTA-STS</a>
|
||||
then transport encryption will be enforced between email providers
|
||||
in which case Delta Chat communications will never be exposed in cleartext to the Internet
|
||||
even if the message was not end-to-end encrypted.</p>
|
||||
<p>Aber sowohl dein E-Mail-Anbieter als auch der E-Mail-Anbieter des Empfängers
|
||||
können Nachrichten, einschließlich aller Anhänge, lesen, analysieren oder verändern.</p>
|
||||
|
||||
<p>Delta Chat verwendet standardmäßig strikte
|
||||
<a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS-Verschlüsselung</a>,
|
||||
die die Verbindungen zwischen deinem Gerät und dem E-Mail-Anbieter sichert.
|
||||
Die gesamte TLS-Implementierung wurde unabhängig <a href="#security-audits">sicherheitsgeprüft</a>.
|
||||
Die Verbindung zwischen deinem E-Mail-Provider und dem des Empfängers
|
||||
ist in der Regel ebenfalls transportverschlüsselt.
|
||||
Wenn die beteiligten E-Mail-Server <a href="https://datatracker.ietf.org/doc/html/rfc8461">MTA-STS</a> unterstützen,
|
||||
wird TLS zwischen den E-Mail-Anbietern durchgesetzt.
|
||||
In diesem Fall wird die Delta-Chat-Kommunikation niemals im Klartext ins Internet gelangen
|
||||
selbst wenn die Nachricht nicht Ende-zu-Ende-verschlüsselt war.</p>
|
||||
|
||||
<h3 id="message-metadata">
|
||||
|
||||
|
|
@ -1351,7 +1385,7 @@ Wir beabsichtigen, PQC-Unterstützung zum <a href="https://github.com/chatmail/c
|
|||
<p>Du kannst den Status der Ende-zu-Ende-Verschlüsselung manuell im Dialog “Verschlüsselung”
|
||||
(Android/iOS: Benutzerprofil, Desktop: Rechtsklick auf den Chat eines Benutzers) überprüfen.
|
||||
Delta Chat zeigt dort zwei Fingerabdrücke an.
|
||||
Wenn die gleichen Fingerabdrücke auf Ihrem eigenen Gerät und auf dem Gerät Ihres Kontakts erscheinen,
|
||||
Wenn die gleichen Fingerabdrücke auf deinem eigenen Gerät und auf dem Gerät deines Kontakts erscheinen,
|
||||
ist die Verbindung sicher.</p>
|
||||
|
||||
<h3 id="importkey">
|
||||
|
|
@ -1454,10 +1488,10 @@ e.g. you need to grant camera permission if you want to <a href="#howtoe2ee">sca
|
|||
<p>Falls nicht verfügbar, verwende den <strong>Mirror</strong> auf <a href="https://deltachat.github.io/deltachat-pages">https://deltachat.github.io/deltachat-pages</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Öffne einen der folgenden <strong>App-Stores und suchen Sie nach „Delta Chat“:</strong> Google Play Store, F-Droid, Huawei App Gallery, iOS und macOS App Store, Microsoft Store</p>
|
||||
<p>Öffne einen der folgenden <strong>App-Stores und suche nach „Delta Chat“:</strong> Google Play Store, F-Droid, Huawei App Gallery, iOS und macOS App Store, Microsoft Store</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Im <strong>Paketmanager</strong> Ihrer Linux-Distribution nachschauen</p>
|
||||
<p>Im <strong>Paketmanager</strong> deiner Linux-Distribution nachschauen</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Android-APKs</strong> sind auch auf <a href="https://github.com/deltachat/deltachat-android/releases">https://github.com/deltachat/deltachat-android/releases</a> verfügbar.</p>
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
|
|
@ -949,22 +950,21 @@ try the <strong>manual transfer</strong> described below</p>
|
|||
<p>This method is only recommended if “Add Second Device” as described above does not work.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="are-there-any-plans-for-introducing-a-delta-chat-web-client">
|
||||
|
||||
|
|
@ -1009,6 +1009,45 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#estoy-interesado-en-los-detalles-técnicos-pueden-decirme-más">Estoy interesado en los detalles técnicos. ¿Pueden decirme más?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -947,22 +948,21 @@ try the <strong>manual transfer</strong> described below</p>
|
|||
<p>This method is only recommended if “Add Second Device” as described above does not work.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="tienen-planeado-crear-un-cliente-web-de-delta-chat">
|
||||
|
||||
|
|
@ -1007,33 +1007,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1100,6 +1111,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="estoy-interesado-en-los-detalles-técnicos-pueden-decirme-más">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#les-détails-techniques-mintéressent-pouvez-vous-men-dire-plus-">Les détails techniques m’intéressent. Pouvez-vous m’en dire plus ?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -937,22 +938,21 @@ Vous pouvez utiliser plusieurs comptes par appareil : <a href="#multiple-account
|
|||
<p>Recourez à cette méthode uniquement si les instructions ci-dessus pour “Ajouter un deuxième appareil” ont échoué.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="le-lancement-dun-client-web-delta-chat-est-il-prévu-">
|
||||
|
||||
|
|
@ -994,33 +994,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1087,6 +1098,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="les-détails-techniques-mintéressent-pouvez-vous-men-dire-plus-">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#im-interested-in-the-technical-details-can-you-tell-me-more">I’m interested in the technical details. Can you tell me more?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -949,22 +950,21 @@ try the <strong>manual transfer</strong> described below</p>
|
|||
<p>This method is only recommended if “Add Second Device” as described above does not work.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="are-there-any-plans-for-introducing-a-delta-chat-web-client">
|
||||
|
||||
|
|
@ -1009,33 +1009,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1102,6 +1113,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="im-interested-in-the-technical-details-can-you-tell-me-more">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -54,19 +54,20 @@
|
|||
</li>
|
||||
<li><a href="#avanzato">Avanzato</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#funzionalità-sperimentali">Funzionalità Sperimentali</a></li>
|
||||
<li><a href="#relays">Cosa sono i ripetitori?</a></li>
|
||||
<li><a href="#posso-usare-un-indirizzo-email-classico-con-delta-chat">Posso usare un indirizzo email classico con Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">Come posso configurare un profilo chat con un indirizzo email classico come inoltro?</a></li>
|
||||
<li><a href="#vorrei-gestire-il-mio-server-per-delta-chat-cosa-mi-consigliate">Vorrei gestire il mio server per Delta Chat. Cosa mi consigliate?</a></li>
|
||||
<li><a href="#statssending">Che cosa significa “Invia statistiche agli sviluppatori di Delta Chat”?</a></li>
|
||||
<li><a href="#sono-interessato-ai-dettagli-tecnici-mi-puoi-dire-di-più">Sono interessato ai dettagli tecnici. Mi puoi dire di più?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#e2ee">Crittografia e Sicurezza</a>
|
||||
<ul>
|
||||
<li><a href="#quali-standards-vengono-utilizzati-per-la-crittografia-end-to-end">Quali standards vengono utilizzati per la crittografia end-to-end?</a></li>
|
||||
<li><a href="#whene2e">How can I know if messages are end-to-end encrypted?</a></li>
|
||||
<li><a href="#can-i-still-receive-or-send-messages-without-end-to-end-encryption">Can I still receive or send messages without end-to-end encryption?</a></li>
|
||||
<li><a href="#whene2e">Come posso sapere se i messaggi sono crittografati end-to-end?</a></li>
|
||||
<li><a href="#posso-ancora-ricevere-o-inviare-messaggi-senza-crittografia-end-to-end">Posso ancora ricevere o inviare messaggi senza crittografia end-to-end?</a></li>
|
||||
<li><a href="#e2eeguarantee">Cosa significa il segno di spunta verde nel profilo di un contatto?</a></li>
|
||||
<li><a href="#gli-allegati-immagini-file-audio-ecc-sono-crittografati-end-to-end">Gli allegati (immagini, file, audio, ecc.) sono crittografati end-to-end?</a></li>
|
||||
<li><a href="#openpgp-secure">OpenPGP è sicuro?</a></li>
|
||||
|
|
@ -108,7 +109,7 @@ disponibile per piattaforme mobili e desktop.</p>
|
|||
<ul>
|
||||
<li>
|
||||
<p>Creazione istantanea di <strong>profili chat privati</strong>
|
||||
con <a href="https://chatmail.at/relays">relay di chat</a>
|
||||
con <a href="https://chatmail.at/relays">ripetitori di chat</a>
|
||||
sicuri e interoperabili che offrono l’invio di messaggi istantanei e notifiche push per dispositivi iOS e Android.</p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
@ -655,7 +656,7 @@ copie sui dispositivi dei tuoi interlocutori. A parte questo, è completamente
|
|||
isolata da Internet.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>La privacy offerta da un’app di chat è la privacy della tua chat: finché
|
||||
<p>La riservatezza offerta da un’app di chat è la riservatezza della tua chat: finché
|
||||
ti fidi delle persone con cui chatti, puoi fidarti anche dell’app di chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
@ -673,19 +674,19 @@ ti fidi delle persone con cui chatti, puoi fidarti anche dell’app di chat.</p>
|
|||
|
||||
<ul>
|
||||
<li>
|
||||
<p>In-chat apps are zip files with <code class="language-plaintext highlighter-rouge">.xdc</code> extension containing html, css, and javascript code.</p>
|
||||
<p>Le apps in-chat sono file zip con estensione <code class="language-plaintext highlighter-rouge">.xdc</code> contenenti codice HTML, CSS e JavaScript.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>You can extend the <a href="https://github.com/webxdc/hello">Hello World example app</a>
|
||||
to get started.</p>
|
||||
<p>Puoi estendere l’<a href="https://github.com/webxdc/hello">app di esempio Hello World</a>
|
||||
per iniziare.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>All else you need to know is written in the
|
||||
<a href="https://webxdc.org/docs">Webxdc documentation</a>.</p>
|
||||
<p>Tutto il resto che devi sapere è scritto nella
|
||||
<a href="https://webxdc.org/docs">Documentazione di Webxdc</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you have question, you can ask others with experience
|
||||
in the <a href="https://support.delta.chat/c/webxdc/20">Delta Chat Forum</a>.</p>
|
||||
<p>Se hai domande, puoi chiedere ad altri utenti esperti
|
||||
nel <a href="https://support.delta.chat/c/webxdc/20">Forum Chat Delta</a>.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
@ -732,9 +733,9 @@ invece del codice proprietario di Google sul telefono.</p>
|
|||
|
||||
<p>Sì, Delta Chat utilizza automaticamente le notifiche push per i profili <a href="https://delta.chat/chatmail">chatmail</a>.
|
||||
E no, non esiste alcuna alternativa sui telefoni Apple per ottenere la consegna dei messaggi istantanei
|
||||
perché i dispositivi Apple non consentono a Delta Chat di recuperare i dati in background.
|
||||
perché i dispositivi Apple non consentono a Delta Chat di recuperare i dati in secondo piano.
|
||||
Le notifiche push vengono attivate automaticamente per gli utenti iOS perché
|
||||
<a href="#privacy-notifications">Sistema di notifiche push che tutela la privacy di Delta Chat</a>
|
||||
<a href="#privacy-notifications">Sistema di notifiche push che tutela la riservatezza di Delta Chat</a>
|
||||
non espone ad Apple i dati che non possiede già.</p>
|
||||
|
||||
<h3 id="android-push">
|
||||
|
|
@ -745,8 +746,8 @@ non espone ad Apple i dati che non possiede già.</p>
|
|||
|
||||
</h3>
|
||||
|
||||
<p>If a “Push Service” is available, Delta Chat enables Push Notifications
|
||||
to achieve instant message delivery for all chatmail users.</p>
|
||||
<p>Se è disponibile un “Servizio Push”, Delta Chat abilita le Notifiche Push
|
||||
per garantire la consegna istantanea dei messaggi a tutti gli utenti chatmail.</p>
|
||||
|
||||
<p>Nelle impostazioni “Notifiche” di Delta Chat per “Consegna istantanea”
|
||||
puoi modificare le seguenti impostazioni che interessano tutti i profili chat:</p>
|
||||
|
|
@ -781,9 +782,9 @@ che a volte può essere “minimizzato” con i recenti telefoni Android.</p>
|
|||
|
||||
</h3>
|
||||
|
||||
<p>Delta Chat Push Notification support avoids leakage of private information.
|
||||
It does not leak profile data, IP address or message content (not even encrypted)
|
||||
to any system involved in the delivery of Push Notifications.</p>
|
||||
<p>Il supporto alle Notifiche Push di Delta Chat impedisce la fuga di informazioni private.
|
||||
Non divulga dati del profilo, indirizzo IP o contenuto dei messaggi (nemmeno crittografati)
|
||||
a nessun sistema coinvolto nella trasmissione delle Notifiche Push.</p>
|
||||
|
||||
<p>Ecco come le app Delta Chat eseguono l’invio delle Notifiche Push:</p>
|
||||
|
||||
|
|
@ -792,21 +793,21 @@ to any system involved in the delivery of Push Notifications.</p>
|
|||
<p>Un’app Delta Chat ottiene un “token del dispositivo” localmente, lo crittografa e lo memorizza sul server <a href="https://delta.chat/chatmail">chatmail</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When a <a href="https://delta.chat/chatmail">chatmail</a> server receives a message for a Delta Chat user
|
||||
it forwards the encrypted device token to the central Delta Chat notification proxy.</p>
|
||||
<p>Quando un server <a href="https://delta.chat/chatmail">chatmail</a> riceve un messaggio per un utente Delta Chat
|
||||
inoltra il token del dispositivo crittografato al proxy di notifica centrale di Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
<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 profile data of Delta Chat users.</p>
|
||||
<p>Il proxy di notifica centrale di Delta Chat decripta il token del dispositivo
|
||||
e lo inoltra al rispettivo servizio Push (Apple, Google, ecc.),
|
||||
senza mai conoscere l’IP o i dati del profilo degli utenti di Delta Chat.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The central Push Service (Apple, Google, etc.)
|
||||
wakes up the Delta Chat app on your device
|
||||
to check for new messages in the background.
|
||||
It does not know about the profile data of the device it wakes up.
|
||||
The central Apple/Google Push services never see any profile data (sender or receiver)
|
||||
and also never see any message content (also not in encrypted forms).</p>
|
||||
<p>Il Servizio Push centrale (Apple, Google, ecc.)
|
||||
attiva l’app Delta Chat sul tuo dispositivo
|
||||
per verificare la presenza di nuovi messaggi in background.
|
||||
Non conosce i dati del profilo del dispositivo che attiva.
|
||||
I servizi Push centrali di Apple/Google non vedono mai alcun dato del profilo (mittente o destinatario)
|
||||
e non vedono mai il contenuto dei messaggi (nemmeno in formato crittografato).</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
@ -814,10 +815,10 @@ and also never see any message content (also not in encrypted forms).</p>
|
|||
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 profile data, IP-addresses or
|
||||
any cryptographic identity information associated with a user’s device (token).</p>
|
||||
<p>Si noti che il token del dispositivo è crittografato tra le apps e il proxy di notifica
|
||||
ma non è firmato.
|
||||
Il proxy di notifica, quindi, non vede mai i dati del profilo, gli indirizzi IP o
|
||||
alcune informazioni crittografiche sull’identità associate al dispositivo di un utente (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
|
||||
|
|
@ -836,10 +837,10 @@ ma vogliamo che gli utenti sperimentino in modo affidabile la “consegna istant
|
|||
come sperimentano dalle app Whatsapp, Signal o Telegram,
|
||||
senza porre domande in anticipo, più adatte a utenti esperti o sviluppatori.</p>
|
||||
|
||||
<p>Note that Delta Chat has a <a href="#privacy-notifications">small and privacy-preserving Push Notification system</a>
|
||||
that achieves “instant delivery” of messages for all chatmail servers
|
||||
including a potential one <a href="https://delta.chat/chatmail#selfhosted">you might setup yourself without our permission</a>.
|
||||
Welcome to the power of the interoperable chatmail relay network :)</p>
|
||||
<p>Tieni presente che Delta Chat ha un <a href="#privacy-notifications">sistema di notifiche push piccolo e rispettoso della riservatezza</a>
|
||||
che garantisce la “consegna istantanea” dei messaggi a tutti i server di chatmail
|
||||
incluso un potenziale <a href="https://delta.chat/chatmail#selfhosted">che potresti configurare autonomamente senza il nostro permesso</a>.
|
||||
Benvenuti nella potenza della rete di inoltro interoperabile di chatmail :)</p>
|
||||
|
||||
<h2 id="multiclient">
|
||||
|
||||
|
|
@ -948,19 +949,16 @@ provate il <strong>trasferimento manuale</strong> descritto di seguito</p>
|
|||
<p>Questo metodo è consigliato solo se “Aggiungi Secondo Dispositivo” come descritto sopra non funziona.</p>
|
||||
|
||||
<ul>
|
||||
<li>Sul vecchio dispositivo, vai su “Impostazioni -> Chat e Media -> Backup Chat su Memoria Esterna”. Inserisci il tuo
|
||||
PIN, sequenza o password di sblocco dello schermo. Quindi puoi fare clic su “Avvia
|
||||
Backup”. Questo salva il file di backup sul tuo dispositivo. Ora devi trasferirlo
|
||||
in qualche modo all’altro dispositivo.</li>
|
||||
<li>Sul nuovo dispositivo, nella schermata di accesso, invece di accedere al tuo profilo
|
||||
e-mail, seleziona “Importa backup”. Dopo l’importazione, le tue conversazioni, la crittografia
|
||||
i tasti e i supporti devono essere copiati sul nuovo dispositivo.</li>
|
||||
<li><strong>Se usi iOS:</strong> e incontri difficoltà, forse
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">questa guida</a>
|
||||
Aiutarti.</li>
|
||||
<li>Ora sei sincronizzato e puoi utilizzare entrambi i dispositivi per inviare e ricevere
|
||||
messaggi crittografati end-to-end con i tuoi partner di comunicazione.</li>
|
||||
<li>
|
||||
<p>Sul vecchio dispositivo, vai su <strong>Impostazioni → Chat e Media → Backup Chat su Memoria Esterna</strong>. Inserisci il tuo PIN, sequenza o password di sblocco dello schermo. Quindi puoi fare clic su “Avvia Backup”. Questo salva il file di backup sul tuo dispositivo. Ora devi trasferirlo in qualche modo all’altro dispositivo.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Sul nuovo dispositivo, nella schermata di accesso, invece di accedere al tuo profilo e-mail, seleziona <strong>Importa backup</strong>. Dopo l’importazione, le tue conversazioni, la crittografia i tasti e i supporti devono essere copiati sul nuovo dispositivo.
|
||||
Se usi iOS: e incontri difficoltà, forse <a href="https://support.delta.chat/t/import-backup-to-ios/1628">questa guida</a> Aiutarti.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Ora sei sincronizzato e puoi utilizzare entrambi i dispositivi per inviare e ricevere messaggi crittografati end-to-end con i tuoi partner di comunicazione.</p>
|
||||
|
||||
<h3 id="sono-previsti-piani-per-lintroduzione-di-un-client-web-delta-chat">
|
||||
|
||||
|
|
@ -989,97 +987,106 @@ o l’AppImage per Linux. Le trovi su
|
|||
|
||||
</h2>
|
||||
|
||||
<h3 id="experimental-features">
|
||||
<h3 id="funzionalità-sperimentali">
|
||||
|
||||
|
||||
Experimental Features <a href="#experimental-features" class="anchor"></a>
|
||||
Funzionalità Sperimentali <a href="#funzionalità-sperimentali" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>At <strong>Settings → Advanced → Experimental Features</strong>
|
||||
you can try out features we are working on.</p>
|
||||
<p>In <strong>Impostazioni → Avanzate → Funzionalità Sperimentali</strong>
|
||||
puoi provare le funzionalità su cui stiamo lavorando.</p>
|
||||
|
||||
<p>The features may be <strong>unstable</strong> and may be <strong>changed or removed</strong>.</p>
|
||||
<p>Le funzionalità potrebbero essere <strong>instabili</strong> e potrebbero essere <strong>modificate o rimosse</strong>.</p>
|
||||
|
||||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
<p>Puoi trovare maggiori informazioni
|
||||
e lasciare un riscontro nel <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
Cosa sono i ripetitori? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>I ripetitori vengono utilizzati per conservare temporaneamente i messaggi nel caso in cui il dispositivo sia offline.
|
||||
I ripetitori sono server economici e poco intelligenti,
|
||||
che non memorizzano dati come stati di gruppo, nome o avatar,
|
||||
tutti dati che esistono solo sul dispositivo.
|
||||
I ripetitori sono gestiti da gruppi e persone diverse.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>Per impostazione predefinita, dopo l’installazione, un ripetitore viene <strong>configurato automaticamente</strong>,
|
||||
quindi non è necessario preoccuparsene.
|
||||
Tuttavia, se lo si desidera,
|
||||
è possibile configurare i ripetitori in <strong>Impostazioni → Avanzate → Ripetitori</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>Puoi <strong>aggiungere</strong> un ripetitore scansionando il suo codice QR;<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> ne mostra alcuni noti.
|
||||
Se hai più ripetitori, riceverai messaggi su tutti.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>L’opzione <strong>predefinita</strong> definisce quella a cui i tuoi partner di chat invieranno messaggi futuri.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Se <strong>rimuovi</strong> un ripetitore,
|
||||
assicurati che un altro ripetitore predefinito sia stato utilizzato per un periodo di tempo sufficiente.
|
||||
In caso contrario, i messaggi dei tuoi interlocutori di chat non ti arriveranno.In caso di dubbio, rimuovilo in seguito.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>Per maggiori dettagli e future possibilità di utilizzo dei ripetitori,
|
||||
potete seguire le discussioni nel <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
<h3 id="posso-usare-un-indirizzo-email-classico-con-delta-chat">
|
||||
|
||||
|
||||
Can I use a classic email address with Delta Chat? <a href="#can-i-use-a-classic-email-address-with-delta-chat" class="anchor"></a>
|
||||
Posso usare un indirizzo email classico con Delta Chat? <a href="#posso-usare-un-indirizzo-email-classico-con-delta-chat" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>Yes, but only if the email address is used exclusively by <a href="https://chatmail.at/clients">chatmail clients</a>.</p>
|
||||
<p>Sì, ma solo se l’indirizzo e-mail viene utilizzato esclusivamente dai <a href="https://chatmail.at/clients">client di chatmail</a>.</p>
|
||||
|
||||
<p>It is not supported to share usage of an email address with non-chatmail apps or web-based mailers,
|
||||
for the following reasons:</p>
|
||||
<p>Non è supportata la condivisione dell’utilizzo di un indirizzo email con apps diverse dalle chatmail o con servizi di posta basati sul web,
|
||||
per i seguenti motivi:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Non-chatmail apps are largely not accomplishing automatic end-to-end email encryption for their users,
|
||||
while chatmail apps and relays pervasively enforce end-to-end encryption and security standards.</p>
|
||||
<p>Le apps non-chatmail non implementano in gran parte la crittografia end-to-end automatica delle email per i propri utenti,
|
||||
mentre le app e i ripetitori di chatmail applicano in modo pervasivo la crittografia end-to-end e gli standard di sicurezza.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Non-chatmail apps use email servers as a long-term message archive
|
||||
while chatmail clients use email servers for ephemeral instant message relay.</p>
|
||||
<p>Le apps non-chatmail utilizzano i server email come archivio di messaggi a lungo termine,
|
||||
mentre i client di chatmail utilizzano i server email per l’inoltro temporaneo di messaggi istantanei.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Supporting the full variety of classic email setups
|
||||
would require considerable development and maintenance efforts,
|
||||
and complicate making chatmail-based messaging more resilient, reliable and fast.</p>
|
||||
<p>Supportare l’intera gamma di configurazioni email classiche
|
||||
richiederebbe notevoli sforzi di sviluppo e manutenzione
|
||||
e renderebbe più complicato rendere la messaggistica basata su chatmail più resiliente, affidabile e veloce.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="classic-email">
|
||||
|
||||
|
||||
How can I configure a chat profile with a classic email address as relay? <a href="#classic-email" class="anchor"></a>
|
||||
Come posso configurare un profilo chat con un indirizzo email classico come inoltro? <a href="#classic-email" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>First off, <strong>please do not use the same classic email address also from non-chatmail classic email apps</strong>
|
||||
unless you are prepared to deal with encrypted messages in the inbox,
|
||||
double notifications, accidentally deleted emails or similar annoyances.</p>
|
||||
<p>Innanzitutto, <strong>ti preghiamo di non utilizzare lo stesso indirizzo email classico anche da apps email classiche diverse da chatmail</strong>
|
||||
a meno che tu non sia disposto ad affrontare messaggi crittografati nella posta in arrivo,
|
||||
doppie notifiche, email eliminate accidentalmente o fastidi simili.</p>
|
||||
|
||||
<p>You can configure a email address for chatting at <strong>New Profile → Use Other Server → Use Classic Mail as Relay</strong>.
|
||||
Note that classic email providers will generally not support <a href="#instant-delivery">Push Notifications</a>
|
||||
and have other limitations, see <a href="https://providers.delta.chat">Provider Overview</a>.
|
||||
Chatmail uses the default INBOX for relay; ensure the provider setup does too.
|
||||
A chat profile using a classic email address allows to to send and receive unencrypted messages.
|
||||
These messages, and the chats they appear in, are marked with an email icon
|
||||
<p>Puoi configurare un indirizzo email per la chat in <strong>Crea Nuovo Profilo → Usa Altro Server → Accesso E-Mail Classico come inoltro</strong>.
|
||||
Tieni presente che i fornitori email classici generalmente non supportano le <a href="#instant-delivery">Notifiche Push</a>
|
||||
e presentano altre limitazioni, consulta <a href="https://providers.delta.chat">Panoramica Fornitori</a>.
|
||||
Chatmail utilizza la POSTA IN ARRIVO predefinita per gli inoltri; assicurati che anche la configurazione del fornitore la faccia.
|
||||
Un profilo chat che utilizza un indirizzo email classico consente di inviare e ricevere messaggi non crittografati.
|
||||
Questi messaggi e le chat in cui compaiono sono contrassegnati da un’icona email.
|
||||
<img style="vertical-align:middle; width:1.2em; margin:1px" src="../email-icon.png" alt="email" />.</p>
|
||||
|
||||
<h3 id="vorrei-gestire-il-mio-server-per-delta-chat-cosa-mi-consigliate">
|
||||
|
|
@ -1090,13 +1097,47 @@ These messages, and the chats they appear in, are marked with an email icon
|
|||
|
||||
</h3>
|
||||
|
||||
<p>Any well behaving email server setup will do fine
|
||||
except if your users’ devices require Google/Apple <a href="#instant-delivery">Push Notifications</a> to work properly.</p>
|
||||
<p>Qualsiasi configurazione di server email funzionante andrà bene,
|
||||
a meno che i dispositivi dei tuoi utenti non richiedano le <a href="#instant-delivery">Notifiche Push</a> di Google/Apple per funzionare correttamente.</p>
|
||||
|
||||
<p>We generally recommend to <a href="https://chatmail.at/doc/relay/getting_started.html">set up a chatmail relay</a>.
|
||||
<a href="https://chatmail.at">Chatmail</a> is a community-driven project that encompasses both the setup of relays
|
||||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
<p>Generalmente consigliamo di <a href="https://chatmail.at/doc/relay/getting_started.html">configurare un ripetitore di chatmail</a>.
|
||||
<a href="https://chatmail.at">Chatmail</a> è un progetto guidato dalla comunità che comprende sia la configurazione dei ripetitori
|
||||
sia <a href="https://github.com/chatmail/core">gli sviluppi principali in Rust</a>
|
||||
che alimentano i <a href="https://chatmail.at/clients">client di chatmail</a>, di cui Delta Chat è il più noto.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
Che cosa significa “Invia statistiche agli sviluppatori di Delta Chat”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>Vorremmo migliorare Delta Chat con il tuo aiuto,
|
||||
ecco perché Delta Chat per Android ti chiede se desideri
|
||||
inviare statistiche di utilizzo anonime.</p>
|
||||
|
||||
<p>Puoi attivarla e disattivarla da
|
||||
<strong>Impostazioni → Avanzate → Invia statistiche agli sviluppatori di Delta Chat</strong>.</p>
|
||||
|
||||
<p>Quando lo attivi,
|
||||
statistiche settimanali verranno inviate automaticamente a un bot.</p>
|
||||
|
||||
<p>Siamo interessati, ad esempio, a statistiche come:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Quanti contatti vengono introdotti tramite la scansione personale di un codice QR?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Quali versioni di Delta Chat vengono utilizzate?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Quali errori si verificano per gli utenti?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p><em>Non</em> raccoglieremo alcuna informazione personale identificabile su di te.</p>
|
||||
|
||||
<h3 id="sono-interessato-ai-dettagli-tecnici-mi-puoi-dire-di-più">
|
||||
|
||||
|
|
@ -1150,7 +1191,7 @@ consente ai destinatari di utilizzare la crittografia end-to-end con il contatto
|
|||
<h3 id="whene2e">
|
||||
|
||||
|
||||
How can I know if messages are end-to-end encrypted? <a href="#whene2e" class="anchor"></a>
|
||||
Come posso sapere se i messaggi sono crittografati end-to-end? <a href="#whene2e" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
|
@ -1159,10 +1200,10 @@ consente ai destinatari di utilizzare la crittografia end-to-end con il contatto
|
|||
Dalla serie di rilasci della Versione 2 di Delta Chat (Luglio 2025)
|
||||
non ci sono più lucchetti o marcatori simili, sui messaggi crittografati end-to-end.</p>
|
||||
|
||||
<h3 id="can-i-still-receive-or-send-messages-without-end-to-end-encryption">
|
||||
<h3 id="posso-ancora-ricevere-o-inviare-messaggi-senza-crittografia-end-to-end">
|
||||
|
||||
|
||||
Can I still receive or send messages without end-to-end encryption? <a href="#can-i-still-receive-or-send-messages-without-end-to-end-encryption" class="anchor"></a>
|
||||
Posso ancora ricevere o inviare messaggi senza crittografia end-to-end? <a href="#posso-ancora-ricevere-o-inviare-messaggi-senza-crittografia-end-to-end" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
|
@ -1170,9 +1211,9 @@ non ci sono più lucchetti o marcatori simili, sui messaggi crittografati end-to
|
|||
<p>Se si utilizzano i <a href="https://chatmail.at/relays">relays di chatmail</a>,
|
||||
è impossibile ricevere o inviare messaggi senza la crittografia end-to-end.</p>
|
||||
|
||||
<p>If you instead use a <a href="#classic-email">classic email server</a>,
|
||||
you can send and receive messages with or without end-to-end encryption.
|
||||
Messages lacking end-to-end encryption are marked with an email icon
|
||||
<p>Se invece utilizzi un <a href="#classic-email">server email classico</a>,
|
||||
puoi inviare e ricevere messaggi con o senza crittografia end-to-end.
|
||||
I messaggi privi di crittografia end-to-end sono contrassegnati dall’icona di un’e-mail
|
||||
<img style="vertical-align:middle; width:1.2em; margin:1px" src="../email-icon.png" alt="email" />.</p>
|
||||
|
||||
<h3 id="e2eeguarantee">
|
||||
|
|
@ -1247,10 +1288,10 @@ per migliorare ulteriormente le caratteristiche di sicurezza implementando il
|
|||
|
||||
</h3>
|
||||
|
||||
<p>Yes, we are following efforts like <a href="https://en.wikipedia.org/wiki/Messaging_Layer_Security">MLS</a>
|
||||
but adopting them would mean breaking end-to-end encryption interoperability.
|
||||
So it would not be a light decision to take
|
||||
and there must be tangible improvements for users.</p>
|
||||
<p>Sì, stiamo seguendo iniziative come <a href="https://en.wikipedia.org/wiki/Messaging_Layer_Security">MLS</a>
|
||||
ma adottarle significherebbe interrompere l’interoperabilità della crittografia end-to-end.
|
||||
Quindi non sarebbe una decisione facile da prendere
|
||||
e devono esserci miglioramenti tangibili per gli utenti.</p>
|
||||
|
||||
<p>Delta Chat adotta un approccio olistico di “sicurezza utilizzabile”.
|
||||
e lavora anche con una vasta gamma di gruppi di attivisti
|
||||
|
|
@ -1288,21 +1329,21 @@ come definito dalla specifica Autocrypt Level 1.</p>
|
|||
|
||||
</h3>
|
||||
|
||||
<p>If you are sending or receiving email messages without end-to-end encryption (using a classic email server),
|
||||
they are still protected from cell or cable companies who can not read or modify your email messages.
|
||||
But both your and your recipient’s email providers
|
||||
may read, analyze or modify your messages, including any attachments.</p>
|
||||
<p>Se invii o ricevi messaggi email senza crittografia end-to-end (utilizzando un server email classico),
|
||||
questi sono comunque protetti dalle compagnie telefoniche o via cavo che non possono leggere o modificare i tuoi messaggi.
|
||||
Tuttavia, sia il tuo fornitore email che quello del destinatario
|
||||
potrebbero leggere, analizzare o modificare i tuoi messaggi, inclusi eventuali allegati.</p>
|
||||
|
||||
<p>Delta Chat by default uses strict
|
||||
<a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS encryption</a>
|
||||
which secures connections between your device and your email provider.
|
||||
All of Delta Chat’s TLS-handling has been independently <a href="#security-audits">security audited</a>.
|
||||
Moreover, the connection between your and the recipient’s email provider
|
||||
will typically be transport-encrypted as well.
|
||||
If the involved email servers support <a href="https://datatracker.ietf.org/doc/html/rfc8461">MTA-STS</a>
|
||||
then transport encryption will be enforced between email providers
|
||||
in which case Delta Chat communications will never be exposed in cleartext to the Internet
|
||||
even if the message was not end-to-end encrypted.</p>
|
||||
<p>Delta Chat utilizza per impostazione predefinita una rigorosa
|
||||
<a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">crittografia TLS</a>
|
||||
che protegge le connessioni tra il tuo dispositivo e il tuo fornitore email.
|
||||
Tutta la gestione TLS di Delta Chat è stata sottoposta a <a href="#security-audits">verifica di sicurezza</a> indipendenti.
|
||||
Inoltre, anche la connessione tra il tuo fornitore email e quello del destinatario
|
||||
sarà in genere crittografata tramite trasporto.
|
||||
Se i server email coinvolti supportano <a href="https://datatracker.ietf.org/doc/html/rfc8461">MTA-STS</a>
|
||||
la crittografia tramite trasporto verrà applicata tra i fornitori email,
|
||||
nel qual caso le comunicazioni di Delta Chat non saranno mai esposte in chiaro su Internet,
|
||||
anche se il messaggio non è stato crittografato end-to-end.</p>
|
||||
|
||||
<h3 id="message-metadata">
|
||||
|
||||
|
|
@ -1316,14 +1357,14 @@ even if the message was not end-to-end encrypted.</p>
|
|||
le apps Delta Chat non memorizzano alcun metadato sui contatti o sui gruppi sui server, né in forma crittografata.
|
||||
Tutti i metadati dei gruppi sono invece crittografati end-to-end e memorizzati esclusivamente sui dispositivi degli utenti finali.</p>
|
||||
|
||||
<p>Servers can therefore only see:</p>
|
||||
<p>I server possono quindi vedere solo:</p>
|
||||
|
||||
<ul>
|
||||
<li>the sender and receiver addresses</li>
|
||||
<li>and the message size.</li>
|
||||
<li>gli indirizzi del mittente e del destinatario</li>
|
||||
<li>e la dimensione del messaggio.</li>
|
||||
</ul>
|
||||
|
||||
<p>By default, the addresses are randomly generated.</p>
|
||||
<p>Per impostazione predefinita, gli indirizzi vengono generati in modo casuale.</p>
|
||||
|
||||
<p>Tutti gli altri metadati dei messaggi, dei contatti e dei gruppi risiedono nella parte crittografata end-to-end dei messaggi.</p>
|
||||
|
||||
|
|
@ -1335,15 +1376,15 @@ Tutti i metadati dei gruppi sono invece crittografati end-to-end e memorizzati e
|
|||
|
||||
</h3>
|
||||
|
||||
<p>Both for protecting against metadata-collecting servers
|
||||
as well as against the threat of device seizure
|
||||
we recommend to use a <a href="https://chatmail.at/relays">chatmail relay</a>
|
||||
to create chat profiles using random addresses for transport.
|
||||
Note that Delta Chat apps on all platforms support multiple profiles
|
||||
so you can easily use situation-specific profiles next to your “main” profile
|
||||
with the knowledge that all their data, along with all metadata, will be deleted.
|
||||
Moreover, if a device is seized then chat contacts using short-lived profiles
|
||||
can not be identified easily.</p>
|
||||
<p>Sia per proteggersi dai server che raccolgono metadati
|
||||
sia dal rischio di sequestro del dispositivo,
|
||||
consigliamo di utilizzare un <a href="https://chatmail.at/relays">ripetitore chatmail</a>
|
||||
per creare profili di chat utilizzando indirizzi casuali per il trasporto.
|
||||
Nota: le app Delta Chat su tutte le piattaforme supportano più profili,
|
||||
quindi puoi facilmente utilizzare profili specifici per ogni situazione accanto al tuo profilo “principale”,
|
||||
con la consapevolezza che tutti i loro dati, insieme a tutti i metadati, verranno eliminati.
|
||||
Inoltre, se un dispositivo viene sequestrato, i contatti di chat che utilizzano profili di breve durata
|
||||
non possono essere identificati facilmente.</p>
|
||||
|
||||
<h3 id="sealedsender">
|
||||
|
||||
|
|
@ -1360,11 +1401,11 @@ per impedire che la propria infrastruttura server venga a conoscenza di chi sta
|
|||
È particolarmente importante perché il server Signal conosce il numero di cellulare di ciascun profilo,
|
||||
che di solito è associato a un’identità tramite passaporto.</p>
|
||||
|
||||
<p>Even if <a href="https://chatmail.at/relays">chatmail relays</a>
|
||||
do not ask for any private data (including no phone numbers),
|
||||
it might still be worthwhile to protect relational metadata between addresses.
|
||||
We don’t foresee bigger problems in using random throw-away addresses for sealed sending
|
||||
but an implementation has not been agreed as a priority yet.</p>
|
||||
<p>Anche se i <a href="https://chatmail.at/relays">ripetitori chatmail</a>
|
||||
non richiedono dati privati (inclusi numeri di telefono),
|
||||
potrebbe comunque valere la pena proteggere i metadati relazionali tra gli indirizzi.
|
||||
Non prevediamo problemi maggiori nell’utilizzo di indirizzi casuali usa e getta per l’invio sigillato,
|
||||
ma un’implementazione non è stata ancora concordata come priorità.</p>
|
||||
|
||||
<h3 id="pfs">
|
||||
|
||||
|
|
@ -1431,12 +1472,12 @@ la connessione è sicura.</p>
|
|||
|
||||
<p>No.</p>
|
||||
|
||||
<p>Delta Chat generates secure OpenPGP keys according to the Autocrypt specification 1.1.
|
||||
We do not recommend or offer users to perform manual key management.
|
||||
We want to ensure that security audits can focus on a few proven cryptographic algorithms
|
||||
instead of the full breadth of possible algorithms allowed with OpenPGP.
|
||||
If you want to extract your OpenPGP key, there only is an expert method:
|
||||
you need to look it up in the “keypairs” SQLite table of a profile backup tar-file.</p>
|
||||
<p>Delta Chat genera chiavi OpenPGP sicure secondo la specifica Autocrypt 1.1.
|
||||
Non consigliamo né offriamo agli utenti la gestione manuale delle chiavi.
|
||||
Vogliamo garantire che le revisioni di sicurezza possano concentrarsi su pochi algoritmi crittografici collaudati
|
||||
anziché sull’intera gamma di possibili algoritmi consentiti con OpenPGP.
|
||||
Se si desidera estrarre la propria chiave OpenPGP, esiste solo un metodo avanzato:
|
||||
è necessario cercarla nella tabella SQLite “keypairs” di un file tar di backup del profilo.</p>
|
||||
|
||||
<h3 id="security-audits">
|
||||
|
||||
|
|
@ -1474,7 +1515,7 @@ Consulta il nostro post sul blog su <a href="https://delta.chat/en/2024-03-25-cr
|
|||
articolo di ricerca pubblicato successivamente.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>A partire dal 2023, abbiamo risolto i problemi di sicurezza e privacy con il servizio “web
|
||||
<p>A partire dal 2023, abbiamo risolto i problemi di sicurezza e riservatezza con il servizio “web
|
||||
app condivise in una chat”, relativa ai guasti del sandboxing
|
||||
soprattutto con Chromium. Successivamente abbiamo ottenuto una sicurezza indipendente
|
||||
audit da Cure53 e tutti i problemi rilevati sono stati risolti nella serie di app 1.36 rilasciata nell’aprile 2023.
|
||||
|
|
@ -1531,10 +1572,10 @@ Puoi leggere il <a href="https://delta.chat/assets/blog/2019-first-security-revi
|
|||
|
||||
</h3>
|
||||
|
||||
<p>Some features require certain permissions,
|
||||
e.g. you need to grant camera permission if you want to <a href="#howtoe2ee">scan an invite QR code</a>.</p>
|
||||
<p>Alcune funzionalità richiedono determinate autorizzazioni,
|
||||
ad esempio, è necessario concedere l’autorizzazione alla fotocamera se si desidera <a href="#howtoe2ee">scansionare un codice QR di invito</a>.</p>
|
||||
|
||||
<p>See <a href="https://delta.chat/en/gdpr#24-app-permissions">Privacy Policy</a> for a detailed overview.</p>
|
||||
<p>Per una panoramica dettagliata, consultare l’ <a href="https://delta.chat/en/gdpr#24-app-permissions">Informativa sulla riservatezza</a>.</p>
|
||||
|
||||
<h3 id="dove-possono-trovare-delta-chat-i-miei-amici">
|
||||
|
||||
|
|
@ -1554,8 +1595,8 @@ e.g. you need to grant camera permission if you want to <a href="#howtoe2ee">sca
|
|||
<p>Se non disponibile, utilizzare <strong>mirror</strong> su <a href="https://deltachat.github.io/deltachat-pages">https://deltachat.github.io/deltachat-pages</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Open one of the following <strong>app stores and search for “Delta Chat”:</strong>
|
||||
Google Play Store, F-Droid, Huawei App Gallery, iOS and macOS App Store, Microsoft Store</p>
|
||||
<p>Apri uno dei seguenti <strong>app stores e cerca “Delta Chat”:</strong>
|
||||
Google Play Store, F-Droid, Huawei App Gallery, iOS e macOS App Store, Microsoft Store</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Controlla il <strong>gestore pacchetti</strong> delle tue distribuzioni Linux</p>
|
||||
|
|
@ -1605,15 +1646,13 @@ per fornire nuove funzionalità per tutte le piattaforme.</p>
|
|||
completando i collegamenti Rust/Python e avviando un ecosistema Chat-bot.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>In 2021 we received further EU funding for two Next-Generation-Internet
|
||||
proposals, namely for <a href="https://dapsi.ngi.eu/hall-of-fame/eppd/">EPPD - email provider portability directory</a> (~97K EUR) and <a href="https://nlnet.nl/project/EmailPorting/">AEAP - email address porting</a> (~90K EUR) which resulted in better multi-profile support, improved QR-code contact and group setups and many networking improvements on all platforms.</p>
|
||||
<p>Nel 2021 abbiamo ricevuto ulteriori finanziamenti dall’UE per due proposte di Next-Generation-Internet, ovvero per <a href="https://dapsi.ngi.eu/hall-of-fame/eppd/">EPPD - directory di portabilità dei provider di posta elettronica</a> (~97.000 EUR) e <a href="https://nlnet.nl/project/EmailPorting/">AEAP - portabilità degli indirizzi email</a> (~90.000 EUR), che hanno portato a un migliore supporto multi-profilo, a un miglioramento delle impostazioni di contatto e di gruppo tramite codice QR e a numerosi miglioramenti di rete su tutte le piattaforme.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>From End 2021 till March 2023 we received <em>Internet Freedom</em> funding (500K USD) from the
|
||||
U.S. Bureau of Democracy, Human Rights and Labor (DRL).
|
||||
This funding supported our long-running goals to make Delta Chat more usable
|
||||
and compatible with a wide range of email servers world-wide, and more resilient and secure
|
||||
in places often affected by internet censorship and shutdowns.</p>
|
||||
<p>Da fine 2021 a marzo 2023 abbiamo ricevuto un finanziamento <em>Internet Freedom</em> (500.000 USD) dall’Ufficio per la Democrazia, i Diritti Umani e il Lavoro (DRL) degli Stati Uniti.
|
||||
Questo finanziamento ha supportato i nostri obiettivi a lungo termine: rendere Delta Chat più utilizzabile
|
||||
e compatibile con un’ampia gamma di server email in tutto il mondo, e più resiliente e sicura
|
||||
in luoghi spesso colpiti da censura e blocchi di Internet.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>2023-2024 abbiamo completato con successo il progetto <a href="https://www.opentech.fund/projects-we-support/supported-projects/secure-chat-mail-with-delta-chat/">Chatmail Sicuro</a> finanziato da OTF,
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#ik-wil-graag-meer-weten-over-de-gebruikte-technieken-waar-kan-ik-meer-informatie-vinden">Ik wil graag meer weten over de gebruikte technieken. Waar kan ik meer informatie vinden?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -947,22 +948,21 @@ volg dan onderstaande stappen omtrent handmatige overzetting</p>
|
|||
<p>Deze methode is vooral bedoeld voor situaties waarin ‘Tweede apparaat toevoegen’ niet lukt.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="bestaan-er-plannen-om-een-delta-chat-webclient-te-maken">
|
||||
|
||||
|
|
@ -1007,33 +1007,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1100,6 +1111,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="ik-wil-graag-meer-weten-over-de-gebruikte-technieken-waar-kan-ik-meer-informatie-vinden">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#zaawansowane">Zaawansowane</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#chcę-zarządzać-własnym-serwerem-dla-delta-chat-co-polecacie">Chcę zarządzać własnym serwerem dla Delta Chat. Co polecacie?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#interesują-mnie-szczegóły-techniczne-możesz-powiedzieć-mi-coś-więcej">Interesują mnie szczegóły techniczne. Możesz powiedzieć mi coś więcej?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -877,14 +878,16 @@ Welcome to the power of the interoperable chatmail relay network :)</p>
|
|||
<p>Ta metoda jest zalecana tylko wtedy, gdy opisana powyżej opcja „Dodaj kolejne urządzenie” nie działa.</p>
|
||||
|
||||
<ul>
|
||||
<li>Na starym urządzeniu przejdź do „Ustawienia » Czaty i media » Eksport kopii zapasowej”. Wprowadź swój PIN odblokowania ekranu, wzór lub hasło. Następnie możesz nacisnąć „Utwórz kopię”. Spowoduje to zapisanie pliku kopii zapasowej na urządzeniu. Teraz musisz jakoś przenieść go na inne urządzenie.</li>
|
||||
<li>Na nowym urządzeniu, na ekranie logowania, zamiast logować się na swoje konto e-mail, wybierz „Przywróć z kopii zapasowej”. Po zaimportowaniu Twoje rozmowy, klucze szyfrujące i multimedia powinny zostać skopiowane na nowe urządzenie.
|
||||
<ul>
|
||||
<li><strong>Jeśli korzystasz z iOS</strong> i napotykasz trudności, może <a href="https://support.delta.chat/t/import-backup-to-ios/1628">ten poradnik</a> Ci pomoże.</li>
|
||||
</ul>
|
||||
<li>
|
||||
<p>Na starym urządzeniu przejdź do <strong>Ustawienia → Czaty i media → Eksport kopii zapasowej</strong>. Wprowadź swój PIN odblokowania ekranu, wzór lub hasło. Następnie możesz nacisnąć „Utwórz kopię”. Spowoduje to zapisanie pliku kopii zapasowej na urządzeniu. Teraz musisz jakoś przenieść go na inne urządzenie.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Na nowym urządzeniu, na ekranie logowania, zamiast logować się na swoje konto e-mail, wybierz <strong>Przywróć z kopii zapasowej</strong>. Po zaimportowaniu Twoje rozmowy, klucze szyfrujące i multimedia powinny zostać skopiowane na nowe urządzenie.
|
||||
Jeśli korzystasz z iOS i napotykasz trudności, może <a href="https://support.delta.chat/t/import-backup-to-ios/1628">ten poradnik</a> Ci pomoże.</p>
|
||||
</li>
|
||||
<li>Jesteś teraz zsynchronizowany i możesz używać obu urządzeń do wysyłania i odbierania wiadomości zaszyfrowanych end-to-end w komunikacji ze swoimi partnerami.</li>
|
||||
</ul>
|
||||
|
||||
<p>Jesteś teraz zsynchronizowany i możesz używać obu urządzeń do wysyłania i odbierania wiadomości zaszyfrowanych end-to-end w komunikacji ze swoimi partnerami.</p>
|
||||
|
||||
<h3 id="czy-są-jakieś-plany-wprowadzenia-klienta-web-delta-chat">
|
||||
|
||||
|
|
@ -924,33 +927,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1017,6 +1031,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="interesują-mnie-szczegóły-techniczne-możesz-powiedzieć-mi-coś-więcej">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#estou-interessado-nos-detalhes-técnicos-pode-me-dizer-mais">Estou interessado nos detalhes técnicos. Pode me dizer mais?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -945,22 +946,21 @@ try the <strong>manual transfer</strong> described below</p>
|
|||
<p>This method is only recommended if “Add Second Device” as described above does not work.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="existe-algum-plano-para-a-introdução-de-um-cliente-web-para-delta-chat">
|
||||
|
||||
|
|
@ -1005,33 +1005,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1098,6 +1109,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="estou-interessado-nos-detalhes-técnicos-pode-me-dizer-mais">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#расширенные">Расширенные</a>
|
||||
<ul>
|
||||
<li><a href="#экспериментальные-функции">Экспериментальные функции</a></li>
|
||||
<li><a href="#statssending">Что означает “Отправлять статистику разработчикам Delta Chat”?</a></li>
|
||||
<li><a href="#relays">Что такое релеи chatmail?</a></li>
|
||||
<li><a href="#могу-ли-я-использовать-обычный-адрес-электронной-почты-с-delta-chat">Могу ли я использовать обычный адрес электронной почты с Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">Как настроить профиль чата с использованием классического адреса электронной почты в качестве транспорта?</a></li>
|
||||
<li><a href="#classic-email">Как настроить профиль чата с использованием классического адреса электронной почты в качестве релея?</a></li>
|
||||
<li><a href="#я-хочу-управлять-своим-собственным-сервером-для-delta-chat-что-вы-посоветуете">Я хочу управлять своим собственным сервером для Delta Chat. Что вы посоветуете?</a></li>
|
||||
<li><a href="#statssending">Что означает “Отправлять статистику разработчикам Delta Chat”?</a></li>
|
||||
<li><a href="#меня-интересуют-технические-детали-можете-рассказать-больше">Меня интересуют технические детали. Можете рассказать больше?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -643,7 +644,7 @@
|
|||
<p>Встроенные приложения не могут отправлять данные в Интернет или что-либо загружать.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Встроенное приложение может обмениваться данными только внутри чата Delta Chat с его
|
||||
<p>Встроенное приложение может обмениваться данными только в рамках этого чата с его
|
||||
копиями на устройствах ваших собеседников. В остальном оно полностью
|
||||
изолировано от Интернета.</p>
|
||||
</li>
|
||||
|
|
@ -941,22 +942,21 @@ Push-уведомления автоматически активируются
|
|||
<p>Этот метод рекомендуется использовать только в том случае, если функция “Добавить второе устройство”, описанная выше, не работает.</p>
|
||||
|
||||
<ul>
|
||||
<li>На старом устройстве, перейдите в “Настройки -> Чаты и медиафайлы -> Экспорт резервной копии”. Введите свой
|
||||
PIN-код разблокировки экрана, графический ключ или пароль. Затем вы можете нажать “Начать
|
||||
<li>
|
||||
<p>На старом устройстве перейдите в <strong>Настройки → Чаты → Экспорт резервной копии</strong>. Введите свой
|
||||
PIN-код разблокировки экрана, графический ключ или пароль. Затем нажмите на кнопку “Начать
|
||||
резервное копирование”. Это сохранит файл резервной копии на вашем устройстве. Теперь вам нужно передать
|
||||
его на другое устройство каким-то образом.</li>
|
||||
<li>На новом устройстве, в меню “У меня уже есть профиль”,
|
||||
выберите “Восстановить из резервной копии”. После импорта, ваши чаты, ключи
|
||||
шифрования, медиафайлы будут скопированы на новое устройство.
|
||||
<ul>
|
||||
<li><strong>Если вы используете iOS:</strong> и у вас возникли трудности, возможно,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">это руководство</a>
|
||||
поможет вам.</li>
|
||||
</ul>
|
||||
его на другое устройство каким-то образом.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>На новом устройстве выберите <strong>У меня уже есть профиль → Восстановить из резервной копии</strong>.
|
||||
Если вы используете iOS: и у вас возникли трудности,
|
||||
возможно, <a href="https://support.delta.chat/t/import-backup-to-ios/1628">это руководство</a> поможет вам.</p>
|
||||
</li>
|
||||
<li>Теперь вы синхронизированы и можете использовать оба устройства для отправки и получения
|
||||
зашифрованных сквозным шифрованием сообщений с вашими собеседниками.</li>
|
||||
</ul>
|
||||
|
||||
<p>Теперь вы синхронизированы и можете использовать оба устройства для отправки и получения
|
||||
зашифрованных сквозным шифрованием сообщений с вашими собеседниками.</p>
|
||||
|
||||
<h3 id="есть-ли-какие-либо-планы-по-внедрению-веб-клиента-delta-chat">
|
||||
|
||||
|
|
@ -1001,33 +1001,44 @@ PIN-код разблокировки экрана, графический кл
|
|||
<p>Вы можете найти дополнительную информацию
|
||||
и оставить отзыв на <a href="https://support.delta.chat">Форуме</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
Что означает “Отправлять статистику разработчикам Delta Chat”? <a href="#statssending" class="anchor"></a>
|
||||
Что такое релеи chatmail? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>Мы хотели бы улучшить Delta Chat с вашей помощью,
|
||||
поэтому Delta Chat для Android спрашивает, хотите ли вы
|
||||
отправлять анонимную статистику использования.</p>
|
||||
<p>Релеи используются для временного хранения сообщений, если ваше устройство не в сети.
|
||||
Релеи - это недорогие и простые серверы,
|
||||
которые не хранят данные о статусах групп, вашем имени или аватаре, -
|
||||
всё это существует только на вашем устройстве.
|
||||
Релеи управляются разными группами и людьми.</p>
|
||||
|
||||
<p>Вы можете включить или отключить эту функцию
|
||||
в разделе <strong>Настройки → Дополнительно → Отправить статистику разработчикам Delta Chat</strong>.</p>
|
||||
|
||||
<p>При включении
|
||||
еженедельная статистика будет автоматически отправляться боту.</p>
|
||||
|
||||
<p>Нас интересует, например, следующая статистика:</p>
|
||||
<p>По умолчанию, после установки, релей <strong>настраивается автоматически</strong>,
|
||||
поэтому вам не нужно об этом волноваться.
|
||||
Однако, если хотите,
|
||||
вы можете настроить релеи в <strong>Настройки → Дополнительно → Релеи</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>Сколько контактов добавляется путём личного сканирования QR-кода?</li>
|
||||
<li>Какие версии Delta Chat используются?</li>
|
||||
<li>Сколько сообщений в незашифрованном виде?</li>
|
||||
<li>
|
||||
<p>Вы можете <strong>добавить</strong> релей, отсканировав его QR-код;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> содержит список известных релеев.
|
||||
Если у вас несколько релеев, вы будете получать сообщения на все из них.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>По умолчанию</strong> определяет релей, на который ваши собеседники будут отправлять будущие сообщения.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Если вы <strong>удаляете</strong> релей,
|
||||
убедитесь, что другой релей по умолчанию использовался в течение достаточного количества времени.
|
||||
В противном случае сообщения от ваших собеседников не будут доходить до вас.
|
||||
Если сомневаетесь, удалите его позже.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Мы <em>не</em> собираем какую-либо информацию, позволяющую идентифицировать вас лично.</p>
|
||||
<p>Для получения более подробной информации и ознакомления с будущими возможностями релеев,
|
||||
вы можете следить за обсуждениями на <a href="https://support.delta.chat">Форуме</a>.</p>
|
||||
|
||||
<h3 id="могу-ли-я-использовать-обычный-адрес-электронной-почты-с-delta-chat">
|
||||
|
||||
|
|
@ -1049,7 +1060,7 @@ PIN-код разблокировки экрана, графический кл
|
|||
</li>
|
||||
<li>
|
||||
<p>Приложения, не являющиеся клиентами chatmail, используют серверы электронной почты в качестве долгосрочного архива сообщений,
|
||||
тогда как клиенты chatmail используют почтовые серверы для передачи мгновенных сообщений с коротким сроком жизни.</p>
|
||||
тогда как клиенты chatmail используют их как релей для мгновенной пересылки сообщений.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Поддержка всего разнообразия классических настроек электронной почты
|
||||
|
|
@ -1061,7 +1072,7 @@ PIN-код разблокировки экрана, графический кл
|
|||
<h3 id="classic-email">
|
||||
|
||||
|
||||
Как настроить профиль чата с использованием классического адреса электронной почты в качестве транспорта? <a href="#classic-email" class="anchor"></a>
|
||||
Как настроить профиль чата с использованием классического адреса электронной почты в качестве релея? <a href="#classic-email" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
|
@ -1070,10 +1081,10 @@ PIN-код разблокировки экрана, графический кл
|
|||
если вы не готовы к зашифрованным сообщениям во входящих,
|
||||
двойным уведомлениям, случайному удалению писем или подобным неудобствам.</p>
|
||||
|
||||
<p>Вы можете настроить адрес электронной почты для чата в разделе <strong>Новый профиль → Использовать другой сервер → Использовать классическую почту в качестве транспорта</strong>.
|
||||
Обратите внимание, что классические почтовые провайдеры обычно не поддерживают <a href="#instant-delivery">Push-уведомления</a>
|
||||
<p>Вы можете настроить адрес электронной почты для чата в разделе <strong>Новый профиль → Использовать другой сервер → Использовать электронную почту как релей</strong>.
|
||||
Обратите внимание, что провайдеры классической почты обычно не поддерживают <a href="#instant-delivery">Push-уведомления</a>
|
||||
и имеют другие ограничения, см. раздел <a href="https://providers.delta.chat">Обзор провайдеров</a>.
|
||||
Chatmail использует INBOX по умолчанию для ретрансляции; убедитесь, что провайдер также настроен.
|
||||
Chatmail использует INBOX по умолчанию для ретрансляции; убедитесь, что настройки провайдера этому соответствуют.
|
||||
Профиль чата, использующий классический адрес электронной почты, позволяет отправлять и получать незашифрованные сообщения.
|
||||
Эти сообщения и чаты, в которых они появляются, помечаются значком электронной почты
|
||||
<img style="vertical-align:middle; width:1.2em; margin:1px" src="../email-icon.png" alt="email" />.</p>
|
||||
|
|
@ -1093,6 +1104,40 @@ Chatmail использует INBOX по умолчанию для ретран
|
|||
и <a href="https://github.com/chatmail/core">основные разработки на Rust</a>
|
||||
которые обеспечивают работу <a href="https://chatmail.at/clients">клиентов chatmail</a> наиболее известным из которых является Delta Chat.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
Что означает “Отправлять статистику разработчикам Delta Chat”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>Мы хотели бы улучшить Delta Chat с вашей помощью,
|
||||
поэтому Delta Chat для Android спрашивает, хотите ли вы
|
||||
отправлять анонимную статистику использования.</p>
|
||||
|
||||
<p>Вы можете включить или отключить эту функцию
|
||||
в разделе <strong>Настройки → Дополнительно → Отправить статистику разработчикам Delta Chat</strong>.</p>
|
||||
|
||||
<p>При включении
|
||||
еженедельная статистика будет автоматически отправляться боту.</p>
|
||||
|
||||
<p>Нас интересует, например, следующая статистика:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Сколько контактов можно добавить ручным сканированием QR-кода?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Какие версии Delta Chat используются?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Какие ошибки возникают у пользователей?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Мы <em>не</em> собираем какую-либо информацию, позволяющую идентифицировать вас лично.</p>
|
||||
|
||||
<h3 id="меня-интересуют-технические-детали-можете-рассказать-больше">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#zaujímajú-ma-technické-detaily-môžete-mi-povedať-viac">Zaujímajú ma technické detaily. Môžete mi povedať viac?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -949,22 +950,21 @@ try the <strong>manual transfer</strong> described below</p>
|
|||
<p>This method is only recommended if “Add Second Device” as described above does not work.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="máte-nejaké-plány-na-zavedenie-webového-klienta-delta-chat">
|
||||
|
||||
|
|
@ -1009,33 +1009,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1102,6 +1113,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="zaujímajú-ma-technické-detaily-môžete-mi-povedať-viac">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#më-interesojnë-hollësitë-teknike-mund-të-më-tregoni-diçka-më-tepër">Më interesojnë hollësitë teknike. Mund të më tregoni diçka më tepër?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -951,22 +952,21 @@ provoni <strong>shpërnguljen dorazi</strong> të përshkruar më poshtë</p>
|
|||
<p>Kjo metodë rekomandohet vetëm nëse “Shtoni Pajisje të Dytë” si përshkruhet më sipër s’funksionon.</p>
|
||||
|
||||
<ul>
|
||||
<li>On the old device, go to “Settings -> Chats and media -> Export Backup”. Enter your
|
||||
<li>
|
||||
<p>On the old device, go to <strong>Settings → Chats → Export Backup</strong>. Enter your
|
||||
screen unlock PIN, pattern, or password. Then you can click on “Start
|
||||
Backup”. This saves the backup file to your device. Now you have to transfer
|
||||
it to the other device somehow.</li>
|
||||
<li>On the new device, in the “I already have a profile” menu,
|
||||
choose “restore from backup”. After import, your conversations, encryption
|
||||
keys, and media should be copied to the new device.
|
||||
<ul>
|
||||
<li><strong>If you use iOS:</strong> and you encounter difficulties, maybe
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> will
|
||||
help you.</li>
|
||||
</ul>
|
||||
it to the other device somehow.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>On the new device, select <strong>I Already Have a Profile → Restore from Backup</strong>.
|
||||
If you use iOS and encounter difficulties,
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">this guide</a> might help you.</p>
|
||||
</li>
|
||||
<li>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</li>
|
||||
</ul>
|
||||
|
||||
<p>You are now synchronized, and can use both devices for sending and receiving
|
||||
end-to-end encrypted messages with your communication partners.</p>
|
||||
|
||||
<h3 id="a-ka-ndonjë-plan-për-të-sjellë-një-klient-web-delta-chat">
|
||||
|
||||
|
|
@ -1013,33 +1013,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1106,6 +1117,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="më-interesojnë-hollësitë-teknike-mund-të-më-tregoni-diçka-më-tepër">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -54,10 +54,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#експериментальні-функції">Експериментальні функції</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#я-хочу-керувати-власним-сервером-для-delta-chat-що-ви-порекомендуєте">Я хочу керувати власним сервером для Delta Chat. Що ви порекомендуєте?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#мене-цікавлять-технічні-деталі-можете-розповісти-більше">Мене цікавлять технічні деталі. Можете розповісти більше?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -872,11 +873,14 @@ Welcome to the power of the interoperable chatmail relay network :)</p>
|
|||
<p>Цей спосіб рекомендований, лише якщо «Додати другий пристрій», як описано вище, не працює.</p>
|
||||
|
||||
<ul>
|
||||
<li>На старому пристрої перейдіть до “Налаштування -> Чати та медіа -> Експортувати резервну копію”. Введіть свій PIN-код, графічний ключ або пароль розблокування екрана. Потім ви можете натиснути на “Почати резервне копіювання”. Це збереже файл резервної копії на вашому пристрої. Тепер вам потрібно якось перенести його на інший пристрій.</li>
|
||||
<li>На новому пристрої в меню “У мене вже є профіль” виберіть “Відновити з резервної копії”. Після імпорту ваші розмови, ключі шифрування ключі шифрування та медіа повинні бути скопійовані на новий пристрій.</li>
|
||||
<li>Якщо ви користуєтеся iOS:** і у вас виникли труднощі, можливо <a href="https://support.delta.chat/t/import-backup-to-ios/1628">цей посібник</a> допоможе вам.</li>
|
||||
<li>Тепер ви синхронізовані і можете використовувати обидва пристрої для надсилання та отримання наскрізних зашифрованих повідомлень зі своїми партнерами по спілкуванню.</li>
|
||||
<li>
|
||||
<p>На старому пристрої перейдіть до <strong>Налаштування → Чати та медіа → Експортувати резервну копію</strong>. Введіть свій PIN-код, графічний ключ або пароль розблокування екрана. Потім ви можете натиснути на “Почати резервне копіювання”. Це збереже файл резервної копії на вашому пристрої. Тепер вам потрібно якось перенести його на інший пристрій.</p>
|
||||
</li>
|
||||
<li>На новому пристрої в меню <strong>У мене вже є профіль</strong> виберіть <strong>Відновити з резервної копії</strong>. Після імпорту ваші розмови, ключі шифрування ключі шифрування та медіа повинні бути скопійовані на новий пристрій.</li>
|
||||
<li>Якщо ви користуєтеся iOS: і у вас виникли труднощі, можливо <a href="https://support.delta.chat/t/import-backup-to-ios/1628">цей посібник</a> допоможе вам.</li>
|
||||
</ul>
|
||||
|
||||
<p>Тепер ви синхронізовані і можете використовувати обидва пристрої для надсилання та отримання наскрізних зашифрованих повідомлень зі своїми партнерами по спілкуванню.</p>
|
||||
|
||||
<h3 id="чи-планується-впровадження-веб-клієнта-delta-chat">
|
||||
|
||||
|
|
@ -916,33 +920,44 @@ you can try out features we are working on.</p>
|
|||
<p>Ви можете знайти додаткову інформацію
|
||||
та залишити відгук на <a href="https://support.delta.chat">форумі</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>Коли Ви увімкнете цю функцію,
|
||||
щотижнева статистика буде автоматично надсилатися боту.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Ми <em>не</em> будемо збирати жодних персональних даних, які б могли ідентифікувати Вас особисто.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1009,6 +1024,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>Коли Ви увімкнете цю функцію,
|
||||
щотижнева статистика буде автоматично надсилатися боту.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Ми <em>не</em> будемо збирати жодних персональних даних, які б могли ідентифікувати Вас особисто.</p>
|
||||
|
||||
<h3 id="мене-цікавлять-технічні-деталі-можете-розповісти-більше">
|
||||
|
||||
|
||||
|
|
@ -1154,21 +1203,9 @@ and there must be tangible improvements for users.</p>
|
|||
|
||||
</h3>
|
||||
|
||||
<p>If you are sending or receiving email messages without end-to-end encryption (using a classic email server),
|
||||
they are still protected from cell or cable companies who can not read or modify your email messages.
|
||||
But both your and your recipient’s email providers
|
||||
may read, analyze or modify your messages, including any attachments.</p>
|
||||
<p>Якщо ви надсилаєте або отримуєте електронні листи без наскрізного шифрування (використовуючи класичний сервер електронної пошти), вони все одно захищені від мобільних або кабельних компаній, які не можуть читати чи змінювати ваші повідомлення. Однак як ваш, так і поштовий провайдер одержувача можуть читати, аналізувати або змінювати ваші листи, включаючи будь-які вкладення.</p>
|
||||
|
||||
<p>Delta Chat by default uses strict
|
||||
<a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS encryption</a>
|
||||
which secures connections between your device and your email provider.
|
||||
All of Delta Chat’s TLS-handling has been independently <a href="#security-audits">security audited</a>.
|
||||
Moreover, the connection between your and the recipient’s email provider
|
||||
will typically be transport-encrypted as well.
|
||||
If the involved email servers support <a href="https://datatracker.ietf.org/doc/html/rfc8461">MTA-STS</a>
|
||||
then transport encryption will be enforced between email providers
|
||||
in which case Delta Chat communications will never be exposed in cleartext to the Internet
|
||||
even if the message was not end-to-end encrypted.</p>
|
||||
<p>За замовчуванням Delta Chat використовує суворе <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security">TLS-шифрування</a> яке захищає з’єднання між вашим пристроєм і провайдером електронної пошти. Вся робота з TLS-шифруванням Delta Chat пройшла незалежний <a href="#security-audits">аудит безпеки</a>. Крім того, з’єднання між вашим провайдером та провайдером електронної пошти одержувача зазвичай також шифрується при передачі даних. Якщо задіяні поштові сервери підтримують <a href="https://datatracker.ietf.org/doc/html/rfc8461">MTA-STS</a> то між провайдерами електронної пошти буде застосовуватися транспортне шифрування в цьому випадку повідомлення Delta Chat ніколи не будуть доступні в Інтернеті у вигляді відкритого тексту навіть якщо повідомлення не було наскрізь зашифровано.</p>
|
||||
|
||||
<h3 id="message-metadata">
|
||||
|
||||
|
|
|
|||
|
|
@ -55,10 +55,11 @@
|
|||
<li><a href="#advanced">Advanced</a>
|
||||
<ul>
|
||||
<li><a href="#experimental-features">Experimental Features</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#relays">What are Relays?</a></li>
|
||||
<li><a href="#can-i-use-a-classic-email-address-with-delta-chat">Can I use a classic email address with Delta Chat?</a></li>
|
||||
<li><a href="#classic-email">How can I configure a chat profile with a classic email address as relay?</a></li>
|
||||
<li><a href="#i-want-to-manage-my-own-server-for-delta-chat-what-do-you-recommend">I want to manage my own server for Delta Chat. What do you recommend?</a></li>
|
||||
<li><a href="#statssending">What is “Send statistics to Delta Chat’s developers”?</a></li>
|
||||
<li><a href="#我对技术细节很感兴趣能告诉我更多吗">我对技术细节很感兴趣。能告诉我更多吗?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
@ -933,19 +934,16 @@ Welcome to the power of the interoperable chatmail relay network :)</p>
|
|||
<p>仅当上述“添加第二台设备”方法不起作用时,才建议使用此方法。</p>
|
||||
|
||||
<ul>
|
||||
<li>在旧设备上,转到“设置 -> 聊天和媒体 -> 导出备份”。 输入你的
|
||||
屏幕解锁 PIN 码、图案或密码。 然后你可以点击“开始
|
||||
备份”。 这会将备份文件保存到你的设备。 现在你必须
|
||||
以某种方式将其传输到另一台设备。</li>
|
||||
<li>在新设备上,在“我已经有一个配置文件”菜单中,
|
||||
选择“从备份还原”。 导入后,你的对话、加密
|
||||
密钥和媒体应复制到新设备。</li>
|
||||
<li><strong>如果你使用 iOS:</strong> 并且你遇到困难,也许
|
||||
<a href="https://support.delta.chat/t/import-backup-to-ios/1628">本指南</a> 将
|
||||
帮助你。</li>
|
||||
<li>你现在已同步,并且可以使用两台设备与你的通信伙伴发送和接收
|
||||
端到端加密消息。</li>
|
||||
<li>
|
||||
<p>在旧设备上,转到“设置 -> 聊天和媒体 -> 导出备份”。 输入你的 屏幕解锁 PIN 码、图案或密码。 然后你可以点击“开始 备份”。 这会将备份文件保存到你的设备。 现在你必须 以某种方式将其传输到另一台设备。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>在新设备上,在“我已经有一个配置文件”菜单中,选择“从备份还原”。 导入后,你的对话、加密 密钥和媒体应复制到新设备。
|
||||
如果你使用 iOS: 并且你遇到困难,也许 <a href="https://support.delta.chat/t/import-backup-to-ios/1628">本指南</a> 将 帮助你。</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>你现在已同步,并且可以使用两台设备与你的通信伙伴发送和接收 端到端加密消息。</p>
|
||||
|
||||
<h3 id="有推出-delta-chat-web-客户端的计划吗">
|
||||
|
||||
|
|
@ -985,33 +983,44 @@ you can try out features we are working on.</p>
|
|||
<p>You can find more information
|
||||
and give feedback in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
<h3 id="relays">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
What are Relays? <a href="#relays" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
<p>Relays are used to temporarily hold messages in case your device is offline.
|
||||
Relays are cheap and dumb servers,
|
||||
that do not store data as group states, your name or avatar -
|
||||
all that exist only on your device.
|
||||
Relays are operated by different groups and people.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
<p>By default, after installation, a relay is <strong>automatically set up</strong>,
|
||||
so you do not need to care about that.
|
||||
However, if you want to,
|
||||
you can configure relays at At <strong>Settings → Advanced → Relays</strong>:</p>
|
||||
|
||||
<ul>
|
||||
<li>How many contacts are introduced by personally scanning a QR code?</li>
|
||||
<li>Which versions of Delta Chat are being used?</li>
|
||||
<li>How many messages are unencrypted?</li>
|
||||
<li>
|
||||
<p>You can <strong>add</strong> a relay by scanning its QR code;
|
||||
<a href="https://chatmail.at/relays">https://chatmail.at/relays</a> shows some known ones.
|
||||
If you have multiple relays, your will receive messages on all of them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>The <strong>default</strong> defines the one where your chat partners send future messages to.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If you <strong>remove</strong> a relay,
|
||||
make sure another default relay was used for a sufficient amount of time.
|
||||
Otherwise, messages from your chat partners won’t reach you.
|
||||
If in doubt, remove later.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
<p>For more details and future possibilities of relays,
|
||||
you can follow discussions in the <a href="https://support.delta.chat">Forum</a>.</p>
|
||||
|
||||
<h3 id="can-i-use-a-classic-email-address-with-delta-chat">
|
||||
|
||||
|
|
@ -1078,6 +1087,40 @@ except if your users’ devices require Google/Apple <a href="#instant-delivery"
|
|||
and <a href="https://github.com/chatmail/core">core Rust developments</a>
|
||||
that power <a href="https://chatmail.at/clients">chatmail clients</a> of which Delta Chat is the most well known.</p>
|
||||
|
||||
<h3 id="statssending">
|
||||
|
||||
|
||||
What is “Send statistics to Delta Chat’s developers”? <a href="#statssending" class="anchor"></a>
|
||||
|
||||
|
||||
</h3>
|
||||
|
||||
<p>We would like to improve Delta Chat with your help,
|
||||
which is why Delta Chat for Android asks whether you want
|
||||
to send anonymous usage statistics.</p>
|
||||
|
||||
<p>You can turn it on and off at
|
||||
<strong>Settings → Advanced → Send statistics to Delta Chat’s developers</strong>.</p>
|
||||
|
||||
<p>When you turn it on,
|
||||
weekly statistics will be automatically sent to a bot.</p>
|
||||
|
||||
<p>We are interested e.g. in statistics like:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>How many contacts are introduced by personally scanning a QR code?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Which versions of Delta Chat are being used?</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>What errors occur for users?</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>We will <em>not</em> collect any personally identifiable information about you.</p>
|
||||
|
||||
<h3 id="我对技术细节很感兴趣能告诉我更多吗">
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public abstract class BaseTransport implements Rpc.Transport {
|
|||
}
|
||||
|
||||
if (response.error != null) {
|
||||
future.setException(new RpcException(response.error.toString()));
|
||||
future.setException(new RpcException(response.error.message));
|
||||
} else if (response.result != null) {
|
||||
future.set(response.result);
|
||||
} else {
|
||||
|
|
@ -115,10 +115,15 @@ public abstract class BaseTransport implements Rpc.Transport {
|
|||
}
|
||||
}
|
||||
|
||||
private static class RpcError {
|
||||
public int code;
|
||||
public String message;
|
||||
}
|
||||
|
||||
private static class Response {
|
||||
public String jsonrpc;
|
||||
public int id;
|
||||
public JsonNode result;
|
||||
public JsonNode error;
|
||||
public RpcError error;
|
||||
}
|
||||
}
|
||||
|
|
@ -23,17 +23,17 @@ public class Rpc {
|
|||
this.mapper = transport.getObjectMapper();
|
||||
}
|
||||
|
||||
/* Test function. */
|
||||
/** Test function. */
|
||||
public void sleep(Float delay) throws RpcException {
|
||||
transport.call("sleep", mapper.valueToTree(delay));
|
||||
}
|
||||
|
||||
/* Checks if an email address is valid. */
|
||||
/** Checks if an email address is valid. */
|
||||
public Boolean checkEmailValidity(String email) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Boolean>(){}, "check_email_validity", mapper.valueToTree(email));
|
||||
}
|
||||
|
||||
/* Returns general system info. */
|
||||
/** Returns general system info. */
|
||||
public java.util.Map<String, String> getSystemInfo() throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.Map<String, String>>(){}, "get_system_info");
|
||||
}
|
||||
|
|
@ -73,12 +73,12 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<java.util.List<Integer>>(){}, "get_all_account_ids");
|
||||
}
|
||||
|
||||
/* Select account in account manager, this saves the last used account to accounts.toml */
|
||||
/** Select account in account manager, this saves the last used account to accounts.toml */
|
||||
public void selectAccount(Integer id) throws RpcException {
|
||||
transport.call("select_account", mapper.valueToTree(id));
|
||||
}
|
||||
|
||||
/* Get the selected account from the account manager (on startup it is read from accounts.toml) */
|
||||
/** Get the selected account from the account manager (on startup it is read from accounts.toml) */
|
||||
public Integer getSelectedAccountId() throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "get_selected_account_id");
|
||||
}
|
||||
|
|
@ -93,17 +93,17 @@ public class Rpc {
|
|||
transport.call("set_accounts_order", mapper.valueToTree(order));
|
||||
}
|
||||
|
||||
/* Get a list of all configured accounts. */
|
||||
/** Get a list of all configured accounts. */
|
||||
public java.util.List<Account> getAllAccounts() throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.List<Account>>(){}, "get_all_accounts");
|
||||
}
|
||||
|
||||
/* Starts background tasks for all accounts. */
|
||||
/** Starts background tasks for all accounts. */
|
||||
public void startIoForAllAccounts() throws RpcException {
|
||||
transport.call("start_io_for_all_accounts");
|
||||
}
|
||||
|
||||
/* Stops background tasks for all accounts. */
|
||||
/** Stops background tasks for all accounts. */
|
||||
public void stopIoForAllAccounts() throws RpcException {
|
||||
transport.call("stop_io_for_all_accounts");
|
||||
}
|
||||
|
|
@ -123,27 +123,27 @@ public class Rpc {
|
|||
transport.call("stop_background_fetch");
|
||||
}
|
||||
|
||||
/* Starts background tasks for a single account. */
|
||||
/** Starts background tasks for a single account. */
|
||||
public void startIo(Integer accountId) throws RpcException {
|
||||
transport.call("start_io", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Stops background tasks for a single account. */
|
||||
/** Stops background tasks for a single account. */
|
||||
public void stopIo(Integer accountId) throws RpcException {
|
||||
transport.call("stop_io", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Get top-level info for an account. */
|
||||
/** Get top-level info for an account. */
|
||||
public Account getAccountInfo(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Account>(){}, "get_account_info", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Get the current push notification state. */
|
||||
/** Get the current push notification state. */
|
||||
public NotifyState getPushState(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<NotifyState>(){}, "get_push_state", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Get the combined filesize of an account in bytes */
|
||||
/** Get the combined filesize of an account in bytes */
|
||||
public Integer getAccountFileSize(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "get_account_file_size", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
|
@ -160,22 +160,22 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<ProviderInfo>(){}, "get_provider_info", mapper.valueToTree(accountId), mapper.valueToTree(email));
|
||||
}
|
||||
|
||||
/* Checks if the context is already configured. */
|
||||
/** Checks if the context is already configured. */
|
||||
public Boolean isConfigured(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Boolean>(){}, "is_configured", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Get system info for an account. */
|
||||
/** Get system info for an account. */
|
||||
public java.util.Map<String, String> getInfo(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.Map<String, String>>(){}, "get_info", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Get storage usage report as formatted string */
|
||||
/** Get storage usage report as formatted string */
|
||||
public String getStorageUsageReportString(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<String>(){}, "get_storage_usage_report_string", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Get the blob dir. */
|
||||
/** Get the blob dir. */
|
||||
public String getBlobDir(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<String>(){}, "get_blob_dir", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
|
@ -195,17 +195,17 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<String>(){}, "get_migration_error", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Copy file to blob dir. */
|
||||
/** Copy file to blob dir. */
|
||||
public String copyToBlobDir(Integer accountId, String path) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<String>(){}, "copy_to_blob_dir", mapper.valueToTree(accountId), mapper.valueToTree(path));
|
||||
}
|
||||
|
||||
/* Sets the given configuration key. */
|
||||
/** Sets the given configuration key. */
|
||||
public void setConfig(Integer accountId, String key, String value) throws RpcException {
|
||||
transport.call("set_config", mapper.valueToTree(accountId), mapper.valueToTree(key), mapper.valueToTree(value));
|
||||
}
|
||||
|
||||
/* Updates a batch of configuration values. */
|
||||
/** Updates a batch of configuration values. */
|
||||
public void batchSetConfig(Integer accountId, java.util.Map<String, String> config) throws RpcException {
|
||||
transport.call("batch_set_config", mapper.valueToTree(accountId), mapper.valueToTree(config));
|
||||
}
|
||||
|
|
@ -225,7 +225,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<Qr>(){}, "check_qr", mapper.valueToTree(accountId), mapper.valueToTree(qrContent));
|
||||
}
|
||||
|
||||
/* Returns configuration value for the given key. */
|
||||
/** Returns configuration value for the given key. */
|
||||
public String getConfig(Integer accountId, String key) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<String>(){}, "get_config", mapper.valueToTree(accountId), mapper.valueToTree(key));
|
||||
}
|
||||
|
|
@ -284,7 +284,7 @@ public class Rpc {
|
|||
transport.call("add_or_update_transport", mapper.valueToTree(accountId), mapper.valueToTree(param));
|
||||
}
|
||||
|
||||
/* Deprecated 2025-04. Alias for [Self::add_or_update_transport()]. */
|
||||
/** Deprecated 2025-04. Alias for [Self::add_or_update_transport()]. */
|
||||
public void addTransport(Integer accountId, EnteredLoginParam param) throws RpcException {
|
||||
transport.call("add_transport", mapper.valueToTree(accountId), mapper.valueToTree(param));
|
||||
}
|
||||
|
|
@ -315,7 +315,7 @@ public class Rpc {
|
|||
transport.call("delete_transport", mapper.valueToTree(accountId), mapper.valueToTree(addr));
|
||||
}
|
||||
|
||||
/* Signal an ongoing process to stop. */
|
||||
/** Signal an ongoing process to stop. */
|
||||
public void stopOngoingProcess(Integer accountId) throws RpcException {
|
||||
transport.call("stop_ongoing_process", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
|
@ -608,7 +608,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<java.util.List<Integer>>(){}, "get_chat_contacts", mapper.valueToTree(accountId), mapper.valueToTree(chatId));
|
||||
}
|
||||
|
||||
/* Returns contact IDs of the past chat members. */
|
||||
/** Returns contact IDs of the past chat members. */
|
||||
public java.util.List<Integer> getPastChatContacts(Integer accountId, Integer chatId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.List<Integer>>(){}, "get_past_chat_contacts", mapper.valueToTree(accountId), mapper.valueToTree(chatId));
|
||||
}
|
||||
|
|
@ -647,7 +647,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<Integer>(){}, "create_group_chat_unencrypted", mapper.valueToTree(accountId), mapper.valueToTree(name));
|
||||
}
|
||||
|
||||
/* Deprecated 2025-07 in favor of create_broadcast(). */
|
||||
/** Deprecated 2025-07 in favor of create_broadcast(). */
|
||||
public Integer createBroadcastList(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "create_broadcast_list", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
|
@ -856,7 +856,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<java.util.Map<String, MessageLoadResult>>(){}, "get_messages", mapper.valueToTree(accountId), mapper.valueToTree(messageIds));
|
||||
}
|
||||
|
||||
/* Fetch info desktop needs for creating a notification for a message */
|
||||
/** Fetch info desktop needs for creating a notification for a message */
|
||||
public MessageNotificationInfo getMessageNotificationInfo(Integer accountId, Integer messageId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<MessageNotificationInfo>(){}, "get_message_notification_info", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
}
|
||||
|
|
@ -888,12 +888,12 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<String>(){}, "get_message_info", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
}
|
||||
|
||||
/* Returns additional information for single message. */
|
||||
/** Returns additional information for single message. */
|
||||
public MessageInfo getMessageInfoObject(Integer accountId, Integer messageId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<MessageInfo>(){}, "get_message_info_object", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
}
|
||||
|
||||
/* Returns contacts that sent read receipts and the time of reading. */
|
||||
/** Returns contacts that sent read receipts and the time of reading. */
|
||||
public java.util.List<MessageReadReceipt> getMessageReadReceipts(Integer accountId, Integer messageId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.List<MessageReadReceipt>>(){}, "get_message_read_receipts", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
}
|
||||
|
|
@ -941,7 +941,7 @@ public class Rpc {
|
|||
transport.call("save_msgs", mapper.valueToTree(accountId), mapper.valueToTree(messageIds));
|
||||
}
|
||||
|
||||
/* Get a single contact options by ID. */
|
||||
/** Get a single contact options by ID. */
|
||||
public Contact getContact(Integer accountId, Integer contactId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Contact>(){}, "get_contact", mapper.valueToTree(accountId), mapper.valueToTree(contactId));
|
||||
}
|
||||
|
|
@ -962,7 +962,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<Integer>(){}, "create_contact", mapper.valueToTree(accountId), mapper.valueToTree(email), mapper.valueToTree(name));
|
||||
}
|
||||
|
||||
/* Returns contact id of the created or existing DM chat with that contact */
|
||||
/** Returns contact id of the created or existing DM chat with that contact */
|
||||
public Integer createChatByContactId(Integer accountId, Integer contactId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "create_chat_by_contact_id", mapper.valueToTree(accountId), mapper.valueToTree(contactId));
|
||||
}
|
||||
|
|
@ -1011,7 +1011,7 @@ public class Rpc {
|
|||
transport.call("delete_contact", mapper.valueToTree(accountId), mapper.valueToTree(contactId));
|
||||
}
|
||||
|
||||
/* Sets display name for existing contact. */
|
||||
/** Sets display name for existing contact. */
|
||||
public void changeContactName(Integer accountId, Integer contactId, String name) throws RpcException {
|
||||
transport.call("change_contact_name", mapper.valueToTree(accountId), mapper.valueToTree(contactId), mapper.valueToTree(name));
|
||||
}
|
||||
|
|
@ -1046,7 +1046,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<Integer>(){}, "lookup_contact_id_by_addr", mapper.valueToTree(accountId), mapper.valueToTree(addr));
|
||||
}
|
||||
|
||||
/* Parses a vCard file located at the given path. Returns contacts in their original order. */
|
||||
/** Parses a vCard file located at the given path. Returns contacts in their original order. */
|
||||
public java.util.List<VcardContact> parseVcard(String path) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.List<VcardContact>>(){}, "parse_vcard", mapper.valueToTree(path));
|
||||
}
|
||||
|
|
@ -1069,12 +1069,12 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<java.util.List<Integer>>(){}, "import_vcard_contents", mapper.valueToTree(accountId), mapper.valueToTree(vcard));
|
||||
}
|
||||
|
||||
/* Returns a vCard containing contacts with the given ids. */
|
||||
/** Returns a vCard containing contacts with the given ids. */
|
||||
public String makeVcard(Integer accountId, java.util.List<Integer> contacts) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<String>(){}, "make_vcard", mapper.valueToTree(accountId), mapper.valueToTree(contacts));
|
||||
}
|
||||
|
||||
/* Sets vCard containing the given contacts to the message draft. */
|
||||
/** Sets vCard containing the given contacts to the message draft. */
|
||||
public void setDraftVcard(Integer accountId, Integer msgId, java.util.List<Integer> contacts) throws RpcException {
|
||||
transport.call("set_draft_vcard", mapper.valueToTree(accountId), mapper.valueToTree(msgId), mapper.valueToTree(contacts));
|
||||
}
|
||||
|
|
@ -1245,7 +1245,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<String>(){}, "get_webxdc_status_updates", mapper.valueToTree(accountId), mapper.valueToTree(instanceMsgId), mapper.valueToTree(lastKnownSerial));
|
||||
}
|
||||
|
||||
/* Get info from a webxdc message */
|
||||
/** Get info from a webxdc message */
|
||||
public WebxdcMessageInfo getWebxdcInfo(Integer accountId, Integer instanceMsgId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<WebxdcMessageInfo>(){}, "get_webxdc_info", mapper.valueToTree(accountId), mapper.valueToTree(instanceMsgId));
|
||||
}
|
||||
|
|
@ -1285,27 +1285,27 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<Integer>(){}, "init_webxdc_integration", mapper.valueToTree(accountId), mapper.valueToTree(chatId));
|
||||
}
|
||||
|
||||
/* Starts an outgoing call. */
|
||||
/** Starts an outgoing call. */
|
||||
public Integer placeOutgoingCall(Integer accountId, Integer chatId, String placeCallInfo) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "place_outgoing_call", mapper.valueToTree(accountId), mapper.valueToTree(chatId), mapper.valueToTree(placeCallInfo));
|
||||
}
|
||||
|
||||
/* Accepts an incoming call. */
|
||||
/** Accepts an incoming call. */
|
||||
public void acceptIncomingCall(Integer accountId, Integer msgId, String acceptCallInfo) throws RpcException {
|
||||
transport.call("accept_incoming_call", mapper.valueToTree(accountId), mapper.valueToTree(msgId), mapper.valueToTree(acceptCallInfo));
|
||||
}
|
||||
|
||||
/* Ends incoming or outgoing call. */
|
||||
/** Ends incoming or outgoing call. */
|
||||
public void endCall(Integer accountId, Integer msgId) throws RpcException {
|
||||
transport.call("end_call", mapper.valueToTree(accountId), mapper.valueToTree(msgId));
|
||||
}
|
||||
|
||||
/* Returns information about the call. */
|
||||
/** Returns information about the call. */
|
||||
public CallInfo callInfo(Integer accountId, Integer msgId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<CallInfo>(){}, "call_info", mapper.valueToTree(accountId), mapper.valueToTree(msgId));
|
||||
}
|
||||
|
||||
/* Returns JSON with ICE servers, to be used for WebRTC video calls. */
|
||||
/** Returns JSON with ICE servers, to be used for WebRTC video calls. */
|
||||
public String iceServers(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<String>(){}, "ice_servers", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
|
@ -1331,6 +1331,14 @@ public class Rpc {
|
|||
transport.call("forward_messages", mapper.valueToTree(accountId), mapper.valueToTree(messageIds), mapper.valueToTree(chatId));
|
||||
}
|
||||
|
||||
/**
|
||||
* Forward messages to a chat in another account.
|
||||
* See [`Self::forward_messages`] for more info.
|
||||
*/
|
||||
public void forwardMessagesToAccount(Integer srcAccountId, java.util.List<Integer> srcMessageIds, Integer dstAccountId, Integer dstChatId) throws RpcException {
|
||||
transport.call("forward_messages_to_account", mapper.valueToTree(srcAccountId), mapper.valueToTree(srcMessageIds), mapper.valueToTree(dstAccountId), mapper.valueToTree(dstChatId));
|
||||
}
|
||||
|
||||
/**
|
||||
* Resend messages and make information available for newly added chat members.
|
||||
* Resending sends out the original message, however, recipients and webxdc-status may differ.
|
||||
|
|
@ -1361,7 +1369,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<Integer>(){}, "send_reaction", mapper.valueToTree(accountId), mapper.valueToTree(messageId), mapper.valueToTree(reaction));
|
||||
}
|
||||
|
||||
/* Returns reactions to the message. */
|
||||
/** Returns reactions to the message. */
|
||||
public Reactions getMessageReactions(Integer accountId, Integer messageId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Reactions>(){}, "get_message_reactions", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
}
|
||||
|
|
@ -1374,7 +1382,7 @@ public class Rpc {
|
|||
transport.call("send_edit_request", mapper.valueToTree(accountId), mapper.valueToTree(msgId), mapper.valueToTree(newText));
|
||||
}
|
||||
|
||||
/* Checks if messages can be sent to a given chat. */
|
||||
/** Checks if messages can be sent to a given chat. */
|
||||
public Boolean canSend(Integer accountId, Integer chatId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Boolean>(){}, "can_send", mapper.valueToTree(accountId), mapper.valueToTree(chatId));
|
||||
}
|
||||
|
|
@ -1392,7 +1400,7 @@ public class Rpc {
|
|||
transport.call("remove_draft", mapper.valueToTree(accountId), mapper.valueToTree(chatId));
|
||||
}
|
||||
|
||||
/* Get draft for a chat, if any. */
|
||||
/** Get draft for a chat, if any. */
|
||||
public Message getDraft(Integer accountId, Integer chatId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Message>(){}, "get_draft", mapper.valueToTree(accountId), mapper.valueToTree(chatId));
|
||||
}
|
||||
|
|
@ -1401,7 +1409,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<String>(){}, "misc_get_sticker_folder", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Saves a sticker to a collection/folder in the account's sticker folder. */
|
||||
/** Saves a sticker to a collection/folder in the account's sticker folder. */
|
||||
public void miscSaveSticker(Integer accountId, Integer msgId, String collection) throws RpcException {
|
||||
transport.call("misc_save_sticker", mapper.valueToTree(accountId), mapper.valueToTree(msgId), mapper.valueToTree(collection));
|
||||
}
|
||||
|
|
@ -1414,7 +1422,7 @@ public class Rpc {
|
|||
return transport.callForResult(new TypeReference<java.util.Map<String, java.util.List<String>>>(){}, "misc_get_stickers", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/* Returns the messageid of the sent message */
|
||||
/** Returns the messageid of the sent message */
|
||||
public Integer miscSendTextMessage(Integer accountId, Integer chatId, String text) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "misc_send_text_message", mapper.valueToTree(accountId), mapper.valueToTree(chatId), mapper.valueToTree(text));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public abstract class Account {
|
|||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String displayName;
|
||||
public Integer id;
|
||||
/* Optional tag as "Work", "Family". Meant to help profile owner to differ between profiles with similar names. */
|
||||
/** Optional tag as "Work", "Family". Meant to help profile owner to differ between profiles with similar names. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String privateTag;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public class CallInfo {
|
||||
/* True if SDP offer has a video. */
|
||||
/** True if SDP offer has a video. */
|
||||
public Boolean hasVideo;
|
||||
/**
|
||||
* SDP offer.
|
||||
|
|
|
|||
|
|
@ -19,21 +19,21 @@ public abstract class CallState {
|
|||
public static class Alerting extends CallState {
|
||||
}
|
||||
|
||||
/* Active call. */
|
||||
/** Active call. */
|
||||
public static class Active extends CallState {
|
||||
}
|
||||
|
||||
/* Completed call that was once active and then was terminated for any reason. */
|
||||
/** Completed call that was once active and then was terminated for any reason. */
|
||||
public static class Completed extends CallState {
|
||||
/* Call duration in seconds. */
|
||||
/** Call duration in seconds. */
|
||||
public Integer duration;
|
||||
}
|
||||
|
||||
/* Incoming call that was not picked up within a timeout or was explicitly ended by the caller before we picked up. */
|
||||
/** Incoming call that was not picked up within a timeout or was explicitly ended by the caller before we picked up. */
|
||||
public static class Missed extends CallState {
|
||||
}
|
||||
|
||||
/* Incoming call that was explicitly ended on our side before picking up or outgoing call that was declined before the timeout. */
|
||||
/** Incoming call that was explicitly ended on our side before picking up or outgoing call that was declined before the timeout. */
|
||||
public static class Declined extends CallState {
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public abstract class ChatListItemFetchResult {
|
|||
public String avatarPath;
|
||||
public ChatType chatType;
|
||||
public String color;
|
||||
/* contact id if this is a dm chat (for view profile entry in context menu) */
|
||||
/** contact id if this is a dm chat (for view profile entry in context menu) */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer dmChatContact;
|
||||
public Integer freshMessageCounter;
|
||||
|
|
@ -36,7 +36,7 @@ public abstract class ChatListItemFetchResult {
|
|||
* See also `is_key_contact` on `Contact`.
|
||||
*/
|
||||
public Boolean isEncrypted;
|
||||
/* deprecated 2025-07, use chat_type instead */
|
||||
/** deprecated 2025-07, use chat_type instead */
|
||||
public Boolean isGroup;
|
||||
public Boolean isMuted;
|
||||
public Boolean isPinned;
|
||||
|
|
@ -50,7 +50,7 @@ public abstract class ChatListItemFetchResult {
|
|||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer lastUpdated;
|
||||
public String name;
|
||||
/* showing preview if last chat message is image */
|
||||
/** showing preview if last chat message is image */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String summaryPreviewImage;
|
||||
public Integer summaryStatus;
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ public class Contact {
|
|||
public Boolean e2eeAvail;
|
||||
public Integer id;
|
||||
public Boolean isBlocked;
|
||||
/* If the contact is a bot. */
|
||||
/** If the contact is a bot. */
|
||||
public Boolean isBot;
|
||||
/* Is the contact a key contact. */
|
||||
/** Is the contact a key contact. */
|
||||
public Boolean isKeyContact;
|
||||
/**
|
||||
* True if the contact can be added to protected chats because SELF and contact have verified their fingerprints in both directions.
|
||||
|
|
@ -24,7 +24,7 @@ public class Contact {
|
|||
* See [`Self::verifier_id`]/`Contact.verifierId` for a guidance how to display these information.
|
||||
*/
|
||||
public Boolean isVerified;
|
||||
/* the contact's last seen timestamp */
|
||||
/** the contact's last seen timestamp */
|
||||
public Integer lastSeen;
|
||||
public String name;
|
||||
public String nameAndAddr;
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public enum EnteredCertificateChecks {
|
||||
/* `Automatic` means that provider database setting should be taken. If there is no provider database setting for certificate checks, check certificates strictly. */
|
||||
/** `Automatic` means that provider database setting should be taken. If there is no provider database setting for certificate checks, check certificates strictly. */
|
||||
automatic,
|
||||
|
||||
/* Ensure that TLS certificate is valid for the server hostname. */
|
||||
/** Ensure that TLS certificate is valid for the server hostname. */
|
||||
strict,
|
||||
|
||||
/* Accept certificates that are expired, self-signed or otherwise not valid for the server hostname. */
|
||||
/** Accept certificates that are expired, self-signed or otherwise not valid for the server hostname. */
|
||||
acceptInvalidCertificates,
|
||||
}
|
||||
|
|
@ -7,27 +7,27 @@ package chat.delta.rpc.types;
|
|||
* Usually it will be enough to only set `addr` and `password`, and all the other settings will be autoconfigured.
|
||||
*/
|
||||
public class EnteredLoginParam {
|
||||
/* Email address. */
|
||||
/** Email address. */
|
||||
public String addr;
|
||||
/* TLS options: whether to allow invalid certificates and/or invalid hostnames. Default: Automatic */
|
||||
/** TLS options: whether to allow invalid certificates and/or invalid hostnames. Default: Automatic */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public EnteredCertificateChecks certificateChecks;
|
||||
/* Imap server port. */
|
||||
/** Imap server port. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer imapPort;
|
||||
/* Imap socket security. */
|
||||
/** Imap socket security. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Socket imapSecurity;
|
||||
/* Imap server hostname or IP address. */
|
||||
/** Imap server hostname or IP address. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String imapServer;
|
||||
/* Imap username. */
|
||||
/** Imap username. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String imapUser;
|
||||
/* If true, login via OAUTH2 (not recommended anymore). Default: false */
|
||||
/** If true, login via OAUTH2 (not recommended anymore). Default: false */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Boolean oauth2;
|
||||
/* Password. */
|
||||
/** Password. */
|
||||
public String password;
|
||||
/**
|
||||
* SMTP Password.
|
||||
|
|
@ -36,16 +36,16 @@ public class EnteredLoginParam {
|
|||
*/
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String smtpPassword;
|
||||
/* SMTP server port. */
|
||||
/** SMTP server port. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer smtpPort;
|
||||
/* SMTP socket security. */
|
||||
/** SMTP socket security. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Socket smtpSecurity;
|
||||
/* SMTP server hostname or IP address. */
|
||||
/** SMTP server hostname or IP address. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String smtpServer;
|
||||
/* SMTP username. */
|
||||
/** SMTP username. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String smtpUser;
|
||||
}
|
||||
|
|
@ -11,11 +11,11 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
|
|||
@JsonSubTypes({@Type(value = EphemeralTimer.Disabled.class, name="Disabled"), @Type(value = EphemeralTimer.Enabled.class, name="Enabled")})
|
||||
public abstract class EphemeralTimer {
|
||||
|
||||
/* Timer is disabled. */
|
||||
/** Timer is disabled. */
|
||||
public static class Disabled extends EphemeralTimer {
|
||||
}
|
||||
|
||||
/* Timer is enabled. */
|
||||
/** Timer is enabled. */
|
||||
public static class Enabled extends EphemeralTimer {
|
||||
/**
|
||||
* Timer duration in seconds.
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public class Event {
|
||||
/* Account ID. */
|
||||
/** Account ID. */
|
||||
public Integer contextId;
|
||||
/* Event payload. */
|
||||
/** Event payload. */
|
||||
public EventType event;
|
||||
}
|
||||
|
|
@ -20,41 +20,41 @@ public abstract class EventType {
|
|||
public String msg;
|
||||
}
|
||||
|
||||
/* Emitted when SMTP connection is established and login was successful. */
|
||||
/** Emitted when SMTP connection is established and login was successful. */
|
||||
public static class SmtpConnected extends EventType {
|
||||
public String msg;
|
||||
}
|
||||
|
||||
/* Emitted when IMAP connection is established and login was successful. */
|
||||
/** Emitted when IMAP connection is established and login was successful. */
|
||||
public static class ImapConnected extends EventType {
|
||||
public String msg;
|
||||
}
|
||||
|
||||
/* Emitted when a message was successfully sent to the SMTP server. */
|
||||
/** Emitted when a message was successfully sent to the SMTP server. */
|
||||
public static class SmtpMessageSent extends EventType {
|
||||
public String msg;
|
||||
}
|
||||
|
||||
/* Emitted when an IMAP message has been marked as deleted */
|
||||
/** Emitted when an IMAP message has been marked as deleted */
|
||||
public static class ImapMessageDeleted extends EventType {
|
||||
public String msg;
|
||||
}
|
||||
|
||||
/* Emitted when an IMAP message has been moved */
|
||||
/** Emitted when an IMAP message has been moved */
|
||||
public static class ImapMessageMoved extends EventType {
|
||||
public String msg;
|
||||
}
|
||||
|
||||
/* Emitted before going into IDLE on the Inbox folder. */
|
||||
/** Emitted before going into IDLE on the Inbox folder. */
|
||||
public static class ImapInboxIdle extends EventType {
|
||||
}
|
||||
|
||||
/* Emitted when an new file in the $BLOBDIR was created */
|
||||
/** Emitted when an new file in the $BLOBDIR was created */
|
||||
public static class NewBlobFile extends EventType {
|
||||
public String file;
|
||||
}
|
||||
|
||||
/* Emitted when an file in the $BLOBDIR was deleted */
|
||||
/** Emitted when an file in the $BLOBDIR was deleted */
|
||||
public static class DeletedBlobFile extends EventType {
|
||||
public String file;
|
||||
}
|
||||
|
|
@ -79,26 +79,26 @@ public abstract class EventType {
|
|||
public String msg;
|
||||
}
|
||||
|
||||
/* An action cannot be performed because the user is not in the group. Reported eg. after a call to setChatName(), setChatProfileImage(), addContactToChat(), removeContactFromChat(), and messages sending functions. */
|
||||
/** An action cannot be performed because the user is not in the group. Reported eg. after a call to setChatName(), setChatProfileImage(), addContactToChat(), removeContactFromChat(), and messages sending functions. */
|
||||
public static class ErrorSelfNotInGroup extends EventType {
|
||||
public String msg;
|
||||
}
|
||||
|
||||
/* Messages or chats changed. One or more messages or chats changed for various reasons in the database: - Messages sent, received or removed - Chats created, deleted or archived - A draft has been set */
|
||||
/** Messages or chats changed. One or more messages or chats changed for various reasons in the database: - Messages sent, received or removed - Chats created, deleted or archived - A draft has been set */
|
||||
public static class MsgsChanged extends EventType {
|
||||
/* Set if only a single chat is affected by the changes, otherwise 0. */
|
||||
/** Set if only a single chat is affected by the changes, otherwise 0. */
|
||||
public Integer chatId;
|
||||
/* Set if only a single message is affected by the changes, otherwise 0. */
|
||||
/** Set if only a single message is affected by the changes, otherwise 0. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
/* Reactions for the message changed. */
|
||||
/** Reactions for the message changed. */
|
||||
public static class ReactionsChanged extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chatId;
|
||||
/* ID of the contact whose reaction set is changed. */
|
||||
/** ID of the contact whose reaction set is changed. */
|
||||
public Integer contactId;
|
||||
/* ID of the message for which reactions were changed. */
|
||||
/** ID of the message for which reactions were changed. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
|
|
@ -108,28 +108,28 @@ public abstract class EventType {
|
|||
* In addition to this event, ReactionsChanged is emitted.
|
||||
*/
|
||||
public static class IncomingReaction extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chatId;
|
||||
/* ID of the contact whose reaction set is changed. */
|
||||
/** ID of the contact whose reaction set is changed. */
|
||||
public Integer contactId;
|
||||
/* ID of the message for which reactions were changed. */
|
||||
/** ID of the message for which reactions were changed. */
|
||||
public Integer msgId;
|
||||
/* The reaction. */
|
||||
/** The reaction. */
|
||||
public String reaction;
|
||||
}
|
||||
|
||||
/* Incoming webxdc info or summary update, should be notified. */
|
||||
/** Incoming webxdc info or summary update, should be notified. */
|
||||
public static class IncomingWebxdcNotify extends EventType {
|
||||
/* ID of the chat. */
|
||||
/** ID of the chat. */
|
||||
public Integer chatId;
|
||||
/* ID of the contact sending. */
|
||||
/** ID of the contact sending. */
|
||||
public Integer contactId;
|
||||
/* Link assigned to this notification, if any. */
|
||||
/** Link assigned to this notification, if any. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String href;
|
||||
/* ID of the added info message or webxdc instance in case of summary change. */
|
||||
/** ID of the added info message or webxdc instance in case of summary change. */
|
||||
public Integer msgId;
|
||||
/* Text to notify. */
|
||||
/** Text to notify. */
|
||||
public String text;
|
||||
}
|
||||
|
||||
|
|
@ -139,42 +139,42 @@ public abstract class EventType {
|
|||
* There is no extra #DC_EVENT_MSGS_CHANGED event sent together with this event.
|
||||
*/
|
||||
public static class IncomingMsg extends EventType {
|
||||
/* ID of the chat where the message is assigned. */
|
||||
/** ID of the chat where the message is assigned. */
|
||||
public Integer chatId;
|
||||
/* ID of the message. */
|
||||
/** ID of the message. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
/* Downloading a bunch of messages just finished. This is an event to allow the UI to only show one notification per message bunch, instead of cluttering the user with many notifications. */
|
||||
/** Downloading a bunch of messages just finished. This is an event to allow the UI to only show one notification per message bunch, instead of cluttering the user with many notifications. */
|
||||
public static class IncomingMsgBunch extends EventType {
|
||||
}
|
||||
|
||||
/* Messages were seen or noticed. chat id is always set. */
|
||||
/** Messages were seen or noticed. chat id is always set. */
|
||||
public static class MsgsNoticed extends EventType {
|
||||
public Integer chatId;
|
||||
}
|
||||
|
||||
/* A single message is sent successfully. State changed from DC_STATE_OUT_PENDING to DC_STATE_OUT_DELIVERED, see `Message.state`. */
|
||||
/** A single message is sent successfully. State changed from DC_STATE_OUT_PENDING to DC_STATE_OUT_DELIVERED, see `Message.state`. */
|
||||
public static class MsgDelivered extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chatId;
|
||||
/* ID of the message that was successfully sent. */
|
||||
/** ID of the message that was successfully sent. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
/* A single message could not be sent. State changed from DC_STATE_OUT_PENDING or DC_STATE_OUT_DELIVERED to DC_STATE_OUT_FAILED, see `Message.state`. */
|
||||
/** A single message could not be sent. State changed from DC_STATE_OUT_PENDING or DC_STATE_OUT_DELIVERED to DC_STATE_OUT_FAILED, see `Message.state`. */
|
||||
public static class MsgFailed extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chatId;
|
||||
/* ID of the message that could not be sent. */
|
||||
/** ID of the message that could not be sent. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
/* A single message is read by the receiver. State changed from DC_STATE_OUT_DELIVERED to DC_STATE_OUT_MDN_RCVD, see `Message.state`. */
|
||||
/** A single message is read by the receiver. State changed from DC_STATE_OUT_DELIVERED to DC_STATE_OUT_MDN_RCVD, see `Message.state`. */
|
||||
public static class MsgRead extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chatId;
|
||||
/* ID of the message that was read. */
|
||||
/** ID of the message that was read. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
|
|
@ -188,9 +188,9 @@ public abstract class EventType {
|
|||
* This event does not indicate the message deletion from the server.
|
||||
*/
|
||||
public static class MsgDeleted extends EventType {
|
||||
/* ID of the chat where the message was prior to deletion. Never 0. */
|
||||
/** ID of the chat where the message was prior to deletion. Never 0. */
|
||||
public Integer chatId;
|
||||
/* ID of the deleted message. Never 0. */
|
||||
/** ID of the deleted message. Never 0. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
|
|
@ -203,37 +203,37 @@ public abstract class EventType {
|
|||
public Integer chatId;
|
||||
}
|
||||
|
||||
/* Chat ephemeral timer changed. */
|
||||
/** Chat ephemeral timer changed. */
|
||||
public static class ChatEphemeralTimerModified extends EventType {
|
||||
/* Chat ID. */
|
||||
/** Chat ID. */
|
||||
public Integer chatId;
|
||||
/* New ephemeral timer value. */
|
||||
/** New ephemeral timer value. */
|
||||
public Integer timer;
|
||||
}
|
||||
|
||||
/* Chat deleted. */
|
||||
/** Chat deleted. */
|
||||
public static class ChatDeleted extends EventType {
|
||||
/* Chat ID. */
|
||||
/** Chat ID. */
|
||||
public Integer chat_id;
|
||||
}
|
||||
|
||||
/* Contact(s) created, renamed, blocked or deleted. */
|
||||
/** Contact(s) created, renamed, blocked or deleted. */
|
||||
public static class ContactsChanged extends EventType {
|
||||
/* If set, this is the contact_id of an added contact that should be selected. */
|
||||
/** If set, this is the contact_id of an added contact that should be selected. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer contactId;
|
||||
}
|
||||
|
||||
/* Location of one or more contact has changed. */
|
||||
/** Location of one or more contact has changed. */
|
||||
public static class LocationChanged extends EventType {
|
||||
/* contact_id of the contact for which the location has changed. If the locations of several contacts have been changed, this parameter is set to `None`. */
|
||||
/** contact_id of the contact for which the location has changed. If the locations of several contacts have been changed, this parameter is set to `None`. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer contactId;
|
||||
}
|
||||
|
||||
/* Inform about the configuration progress started by configure(). */
|
||||
/** Inform about the configuration progress started by configure(). */
|
||||
public static class ConfigureProgress extends EventType {
|
||||
/* Progress comment or error, something to display to the user. */
|
||||
/** Progress comment or error, something to display to the user. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String comment;
|
||||
/**
|
||||
|
|
@ -244,9 +244,9 @@ public abstract class EventType {
|
|||
public Integer progress;
|
||||
}
|
||||
|
||||
/* Inform about the import/export progress started by imex(). */
|
||||
/** Inform about the import/export progress started by imex(). */
|
||||
public static class ImexProgress extends EventType {
|
||||
/* 0=error, 1-999=progress in permille, 1000=success and done */
|
||||
/** 0=error, 1-999=progress in permille, 1000=success and done */
|
||||
public Integer progress;
|
||||
}
|
||||
|
||||
|
|
@ -267,62 +267,62 @@ public abstract class EventType {
|
|||
* These events are typically sent after a joiner has scanned the QR code generated by getChatSecurejoinQrCodeSvg().
|
||||
*/
|
||||
public static class SecurejoinInviterProgress extends EventType {
|
||||
/* ID of the chat in case of success. */
|
||||
/** ID of the chat in case of success. */
|
||||
public Integer chatId;
|
||||
/* The type of the joined chat. This can take the same values as `BasicChat.chatType` ([`crate::api::types::chat::BasicChat::chat_type`]). */
|
||||
/** The type of the joined chat. This can take the same values as `BasicChat.chatType` ([`crate::api::types::chat::BasicChat::chat_type`]). */
|
||||
public ChatType chatType;
|
||||
/* ID of the contact that wants to join. */
|
||||
/** ID of the contact that wants to join. */
|
||||
public Integer contactId;
|
||||
/* Progress, always 1000. */
|
||||
/** Progress, always 1000. */
|
||||
public Integer progress;
|
||||
}
|
||||
|
||||
/* Progress information of a secure-join handshake from the view of the joiner (Bob, the person who scans the QR code). The events are typically sent while secureJoin(), which may take some time, is executed. */
|
||||
/** Progress information of a secure-join handshake from the view of the joiner (Bob, the person who scans the QR code). The events are typically sent while secureJoin(), which may take some time, is executed. */
|
||||
public static class SecurejoinJoinerProgress extends EventType {
|
||||
/* ID of the inviting contact. */
|
||||
/** ID of the inviting contact. */
|
||||
public Integer contactId;
|
||||
/* Progress as: 400=vg-/vc-request-with-auth sent, typically shown as "alice@addr verified, introducing myself." (Bob has verified alice and waits until Alice does the same for him) 1000=vg-member-added/vc-contact-confirm received */
|
||||
/** Progress as: 400=vg-/vc-request-with-auth sent, typically shown as "alice@addr verified, introducing myself." (Bob has verified alice and waits until Alice does the same for him) 1000=vg-member-added/vc-contact-confirm received */
|
||||
public Integer progress;
|
||||
}
|
||||
|
||||
/* The connectivity to the server changed. This means that you should refresh the connectivity view and possibly the connectivtiy HTML; see getConnectivity() and getConnectivityHtml() for details. */
|
||||
/** The connectivity to the server changed. This means that you should refresh the connectivity view and possibly the connectivtiy HTML; see getConnectivity() and getConnectivityHtml() for details. */
|
||||
public static class ConnectivityChanged extends EventType {
|
||||
}
|
||||
|
||||
/* Deprecated by `ConfigSynced`. */
|
||||
/** Deprecated by `ConfigSynced`. */
|
||||
public static class SelfavatarChanged extends EventType {
|
||||
}
|
||||
|
||||
/* A multi-device synced config value changed. Maybe the app needs to refresh smth. For uniformity this is emitted on the source device too. The value isn't here, otherwise it would be logged which might not be good for privacy. */
|
||||
/** A multi-device synced config value changed. Maybe the app needs to refresh smth. For uniformity this is emitted on the source device too. The value isn't here, otherwise it would be logged which might not be good for privacy. */
|
||||
public static class ConfigSynced extends EventType {
|
||||
/* Configuration key. */
|
||||
/** Configuration key. */
|
||||
public String key;
|
||||
}
|
||||
|
||||
public static class WebxdcStatusUpdate extends EventType {
|
||||
/* Message ID. */
|
||||
/** Message ID. */
|
||||
public Integer msgId;
|
||||
/* Status update ID. */
|
||||
/** Status update ID. */
|
||||
public Integer statusUpdateSerial;
|
||||
}
|
||||
|
||||
/* Data received over an ephemeral peer channel. */
|
||||
/** Data received over an ephemeral peer channel. */
|
||||
public static class WebxdcRealtimeData extends EventType {
|
||||
/* Realtime data. */
|
||||
/** Realtime data. */
|
||||
public java.util.List<Integer> data;
|
||||
/* Message ID. */
|
||||
/** Message ID. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
/* Advertisement received over an ephemeral peer channel. This can be used by bots to initiate peer-to-peer communication from their side. */
|
||||
/** Advertisement received over an ephemeral peer channel. This can be used by bots to initiate peer-to-peer communication from their side. */
|
||||
public static class WebxdcRealtimeAdvertisementReceived extends EventType {
|
||||
/* Message ID of the webxdc instance. */
|
||||
/** Message ID of the webxdc instance. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
/* Inform that a message containing a webxdc instance has been deleted */
|
||||
/** Inform that a message containing a webxdc instance has been deleted */
|
||||
public static class WebxdcInstanceDeleted extends EventType {
|
||||
/* ID of the deleted message. */
|
||||
/** ID of the deleted message. */
|
||||
public Integer msgId;
|
||||
}
|
||||
|
||||
|
|
@ -342,9 +342,9 @@ public abstract class EventType {
|
|||
public static class ChatlistChanged extends EventType {
|
||||
}
|
||||
|
||||
/* Inform that a single chat list item changed and needs to be rerendered. If `chat_id` is set to None, then all currently visible chats need to be rerendered, and all not-visible items need to be cleared from cache if the UI has a cache. */
|
||||
/** Inform that a single chat list item changed and needs to be rerendered. If `chat_id` is set to None, then all currently visible chats need to be rerendered, and all not-visible items need to be cleared from cache if the UI has a cache. */
|
||||
public static class ChatlistItemChanged extends EventType {
|
||||
/* ID of the changed chat */
|
||||
/** ID of the changed chat */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer chatId;
|
||||
}
|
||||
|
|
@ -365,47 +365,47 @@ public abstract class EventType {
|
|||
public static class AccountsItemChanged extends EventType {
|
||||
}
|
||||
|
||||
/* Inform than some events have been skipped due to event channel overflow. */
|
||||
/** Inform than some events have been skipped due to event channel overflow. */
|
||||
public static class EventChannelOverflow extends EventType {
|
||||
/* Number of events skipped. */
|
||||
/** Number of events skipped. */
|
||||
public Integer n;
|
||||
}
|
||||
|
||||
/* Incoming call. */
|
||||
/** Incoming call. */
|
||||
public static class IncomingCall extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chat_id;
|
||||
/* True if incoming call is a video call. */
|
||||
/** True if incoming call is a video call. */
|
||||
public Boolean has_video;
|
||||
/* ID of the info message referring to the call. */
|
||||
/** ID of the info message referring to the call. */
|
||||
public Integer msg_id;
|
||||
/* User-defined info as passed to place_outgoing_call() */
|
||||
/** User-defined info as passed to place_outgoing_call() */
|
||||
public String place_call_info;
|
||||
}
|
||||
|
||||
/* Incoming call accepted. This is esp. interesting to stop ringing on other devices. */
|
||||
/** Incoming call accepted. This is esp. interesting to stop ringing on other devices. */
|
||||
public static class IncomingCallAccepted extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chat_id;
|
||||
/* ID of the info message referring to the call. */
|
||||
/** ID of the info message referring to the call. */
|
||||
public Integer msg_id;
|
||||
}
|
||||
|
||||
/* Outgoing call accepted. */
|
||||
/** Outgoing call accepted. */
|
||||
public static class OutgoingCallAccepted extends EventType {
|
||||
/* User-defined info passed to dc_accept_incoming_call( */
|
||||
/** User-defined info passed to dc_accept_incoming_call( */
|
||||
public String accept_call_info;
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chat_id;
|
||||
/* ID of the info message referring to the call. */
|
||||
/** ID of the info message referring to the call. */
|
||||
public Integer msg_id;
|
||||
}
|
||||
|
||||
/* Call ended. */
|
||||
/** Call ended. */
|
||||
public static class CallEnded extends EventType {
|
||||
/* ID of the chat which the message belongs to. */
|
||||
/** ID of the chat which the message belongs to. */
|
||||
public Integer chat_id;
|
||||
/* ID of the info message referring to the call. */
|
||||
/** ID of the info message referring to the call. */
|
||||
public Integer msg_id;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,12 +31,12 @@ public class FullChat {
|
|||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String mailingListAddress;
|
||||
public String name;
|
||||
/* Contact IDs of the past chat members. */
|
||||
/** Contact IDs of the past chat members. */
|
||||
public java.util.List<Integer> pastContactIds;
|
||||
public Boolean pinned;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String profileImage;
|
||||
/* Note that this is different from [`ChatListItem::is_self_in_group`](`crate::api::types::chat_list::ChatListItemFetchResult::ChatListItem::is_self_in_group`). This property should only be accessed when [`FullChat::chat_type`] is [`Chattype::Group`]. */
|
||||
/** Note that this is different from [`ChatListItem::is_self_in_group`](`crate::api::types::chat_list::ChatListItemFetchResult::ChatListItem::is_self_in_group`). This property should only be accessed when [`FullChat::chat_type`] is [`Chattype::Group`]. */
|
||||
public Boolean selfInGroup;
|
||||
public Boolean wasSeenRecently;
|
||||
}
|
||||
|
|
@ -2,12 +2,12 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public class HttpResponse {
|
||||
/* base64-encoded response body. */
|
||||
/** base64-encoded response body. */
|
||||
public String blob;
|
||||
/* Encoding, e.g. "utf-8". */
|
||||
/** Encoding, e.g. "utf-8". */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String encoding;
|
||||
/* MIME type, e.g. "text/plain" or "text/html". */
|
||||
/** MIME type, e.g. "text/plain" or "text/html". */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String mimetype;
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@ public class Message {
|
|||
public Integer dimensionsWidth;
|
||||
public DownloadState downloadState;
|
||||
public Integer duration;
|
||||
/* An error text, if there is one. */
|
||||
/** An error text, if there is one. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String error;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
|
|
@ -20,13 +20,13 @@ public class Message {
|
|||
public Integer fromId;
|
||||
public Boolean hasDeviatingTimestamp;
|
||||
public Boolean hasHtml;
|
||||
/* Check if a message has a POI location bound to it. These locations are also returned by `get_locations` method. The UI may decide to display a special icon beside such messages. */
|
||||
/** Check if a message has a POI location bound to it. These locations are also returned by `get_locations` method. The UI may decide to display a special icon beside such messages. */
|
||||
public Boolean hasLocation;
|
||||
public Integer id;
|
||||
/* if is_info is set, this refers to the contact profile that should be opened when the info message is tapped. */
|
||||
/** if is_info is set, this refers to the contact profile that should be opened when the info message is tapped. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer infoContactId;
|
||||
/* True if the message was sent by a bot. */
|
||||
/** True if the message was sent by a bot. */
|
||||
public Boolean isBot;
|
||||
public Boolean isEdited;
|
||||
public Boolean isForwarded;
|
||||
|
|
@ -57,7 +57,7 @@ public class Message {
|
|||
public Integer sortTimestamp;
|
||||
public Integer state;
|
||||
public String subject;
|
||||
/* when is_info is true this describes what type of system message it is */
|
||||
/** when is_info is true this describes what type of system message it is */
|
||||
public SystemMessageType systemMessageType;
|
||||
public String text;
|
||||
public Integer timestamp;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public class MessageData {
|
|||
public Pair<Float, Float> location;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String overrideSenderName;
|
||||
/* Quoted message id. Takes preference over `quoted_text` (see below). */
|
||||
/** Quoted message id. Takes preference over `quoted_text` (see below). */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer quotedMessageId;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package chat.delta.rpc.types;
|
|||
|
||||
public class MessageInfo {
|
||||
public EphemeralTimer ephemeralTimer;
|
||||
/* When message is ephemeral this contains the timestamp of the message expiry */
|
||||
/** When message is ephemeral this contains the timestamp of the message expiry */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer ephemeralTimestamp;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@ public abstract class MessageListItem {
|
|||
public Integer msg_id;
|
||||
}
|
||||
|
||||
/* Day marker, separating messages that correspond to different days according to local time. */
|
||||
/** Day marker, separating messages that correspond to different days according to local time. */
|
||||
public static class DayMarker extends MessageListItem {
|
||||
/* Marker timestamp, for day markers, in unix milliseconds */
|
||||
/** Marker timestamp, for day markers, in unix milliseconds */
|
||||
public Integer timestamp;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public abstract class MessageLoadResult {
|
|||
public Integer dimensionsWidth;
|
||||
public DownloadState downloadState;
|
||||
public Integer duration;
|
||||
/* An error text, if there is one. */
|
||||
/** An error text, if there is one. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String error;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
|
|
@ -30,13 +30,13 @@ public abstract class MessageLoadResult {
|
|||
public Integer fromId;
|
||||
public Boolean hasDeviatingTimestamp;
|
||||
public Boolean hasHtml;
|
||||
/* Check if a message has a POI location bound to it. These locations are also returned by `get_locations` method. The UI may decide to display a special icon beside such messages. */
|
||||
/** Check if a message has a POI location bound to it. These locations are also returned by `get_locations` method. The UI may decide to display a special icon beside such messages. */
|
||||
public Boolean hasLocation;
|
||||
public Integer id;
|
||||
/* if is_info is set, this refers to the contact profile that should be opened when the info message is tapped. */
|
||||
/** if is_info is set, this refers to the contact profile that should be opened when the info message is tapped. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer infoContactId;
|
||||
/* True if the message was sent by a bot. */
|
||||
/** True if the message was sent by a bot. */
|
||||
public Boolean isBot;
|
||||
public Boolean isEdited;
|
||||
public Boolean isForwarded;
|
||||
|
|
@ -67,7 +67,7 @@ public abstract class MessageLoadResult {
|
|||
public Integer sortTimestamp;
|
||||
public Integer state;
|
||||
public String subject;
|
||||
/* when is_info is true this describes what type of system message it is */
|
||||
/** when is_info is true this describes what type of system message it is */
|
||||
public SystemMessageType systemMessageType;
|
||||
public String text;
|
||||
public Integer timestamp;
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@ public class MessageNotificationInfo {
|
|||
public String image;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String imageMimeType;
|
||||
/* also known as summary_text1 */
|
||||
/** also known as summary_text1 */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String summaryPrefix;
|
||||
/* also known as summary_text2 */
|
||||
/** also known as summary_text2 */
|
||||
public String summaryText;
|
||||
}
|
||||
|
|
@ -18,7 +18,7 @@ public abstract class MessageQuote {
|
|||
public static class WithMessage extends MessageQuote {
|
||||
public String authorDisplayColor;
|
||||
public String authorDisplayName;
|
||||
/* The quoted message does not always belong to the same chat, e.g. when "Reply Privately" is used. */
|
||||
/** The quoted message does not always belong to the same chat, e.g. when "Reply Privately" is used. */
|
||||
public Integer chatId;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String image;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package chat.delta.rpc.types;
|
|||
public class MessageSearchResult {
|
||||
public String authorColor;
|
||||
public Integer authorId;
|
||||
/* if sender name if overridden it will show it as ~alias */
|
||||
/** if sender name if overridden it will show it as ~alias */
|
||||
public String authorName;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String authorProfileImage;
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public enum NotifyState {
|
||||
/* Not subscribed to push notifications. */
|
||||
/** Not subscribed to push notifications. */
|
||||
NotConnected,
|
||||
|
||||
/* Subscribed to heartbeat push notifications. */
|
||||
/** Subscribed to heartbeat push notifications. */
|
||||
Heartbeat,
|
||||
|
||||
/* Subscribed to push notifications for new messages. */
|
||||
/** Subscribed to push notifications for new messages. */
|
||||
Connected,
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ package chat.delta.rpc.types;
|
|||
|
||||
public class ProviderInfo {
|
||||
public String beforeLoginHint;
|
||||
/* Unique ID, corresponding to provider database filename. */
|
||||
/** Unique ID, corresponding to provider database filename. */
|
||||
public String id;
|
||||
public String overviewPage;
|
||||
public Integer status;
|
||||
|
|
|
|||
|
|
@ -17,45 +17,45 @@ public abstract class Qr {
|
|||
* If the user agrees, pass this QR code to [`crate::securejoin::join_securejoin`].
|
||||
*/
|
||||
public static class AskVerifyContact extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* ID of the contact. */
|
||||
/** ID of the contact. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
}
|
||||
|
||||
/* Ask the user whether to join the group. */
|
||||
/** Ask the user whether to join the group. */
|
||||
public static class AskVerifyGroup extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* ID of the contact. */
|
||||
/** ID of the contact. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* Group ID. */
|
||||
/** Group ID. */
|
||||
public String grpid;
|
||||
/* Group name. */
|
||||
/** Group name. */
|
||||
public String grpname;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
}
|
||||
|
||||
/* Ask the user whether to join the broadcast channel. */
|
||||
/** Ask the user whether to join the broadcast channel. */
|
||||
public static class AskJoinBroadcast extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* ID of the contact who owns the broadcast channel and created the QR code. */
|
||||
/** ID of the contact who owns the broadcast channel and created the QR code. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the broadcast channel owner's key as scanned from the QR code. */
|
||||
/** Fingerprint of the broadcast channel owner's key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* A string of random characters, uniquely identifying this broadcast channel across all databases/clients. Called `grpid` for historic reasons: The id of multi-user chats is always called `grpid` in the database because groups were once the only multi-user chats. */
|
||||
/** A string of random characters, uniquely identifying this broadcast channel across all databases/clients. Called `grpid` for historic reasons: The id of multi-user chats is always called `grpid` in the database because groups were once the only multi-user chats. */
|
||||
public String grpid;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
/* The user-visible name of this broadcast channel */
|
||||
/** The user-visible name of this broadcast channel */
|
||||
public String name;
|
||||
}
|
||||
|
||||
|
|
@ -65,41 +65,41 @@ public abstract class Qr {
|
|||
* Ask the user if they want to start chatting.
|
||||
*/
|
||||
public static class FprOk extends Qr {
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
public Integer contact_id;
|
||||
}
|
||||
|
||||
/* Scanned fingerprint does not match the last seen fingerprint. */
|
||||
/** Scanned fingerprint does not match the last seen fingerprint. */
|
||||
public static class FprMismatch extends Qr {
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer contact_id;
|
||||
}
|
||||
|
||||
/* The scanned QR code contains a fingerprint but no e-mail address. */
|
||||
/** The scanned QR code contains a fingerprint but no e-mail address. */
|
||||
public static class FprWithoutAddr extends Qr {
|
||||
/* Key fingerprint. */
|
||||
/** Key fingerprint. */
|
||||
public String fingerprint;
|
||||
}
|
||||
|
||||
/* Ask the user if they want to create an account on the given domain. */
|
||||
/** Ask the user if they want to create an account on the given domain. */
|
||||
public static class Account extends Qr {
|
||||
/* Server domain name. */
|
||||
/** Server domain name. */
|
||||
public String domain;
|
||||
}
|
||||
|
||||
/* Provides a backup that can be retrieved using iroh-net based backup transfer protocol. */
|
||||
/** Provides a backup that can be retrieved using iroh-net based backup transfer protocol. */
|
||||
public static class Backup2 extends Qr {
|
||||
/* Authentication token. */
|
||||
/** Authentication token. */
|
||||
public String auth_token;
|
||||
/* Iroh node address. */
|
||||
/** Iroh node address. */
|
||||
public String node_addr;
|
||||
}
|
||||
|
||||
public static class BackupTooNew extends Qr {
|
||||
}
|
||||
|
||||
/* Ask the user if they want to use the given service for video chats. */
|
||||
/** Ask the user if they want to use the given service for video chats. */
|
||||
public static class WebrtcInstance extends Qr {
|
||||
public String domain;
|
||||
public String instance_pattern;
|
||||
|
|
@ -111,9 +111,9 @@ public abstract class Qr {
|
|||
* Note that HTTP(S) URLs without a path and query parameters are treated as HTTP(S) proxy URL. UI may want to still offer to open the URL in the browser if QR code contents starts with `http://` or `https://` and the QR code was not scanned from the proxy configuration screen.
|
||||
*/
|
||||
public static class Proxy extends Qr {
|
||||
/* Host extracted from the URL to display in the UI. */
|
||||
/** Host extracted from the URL to display in the UI. */
|
||||
public String host;
|
||||
/* Port extracted from the URL to display in the UI. */
|
||||
/** Port extracted from the URL to display in the UI. */
|
||||
public Integer port;
|
||||
/**
|
||||
* Proxy URL.
|
||||
|
|
@ -129,9 +129,9 @@ public abstract class Qr {
|
|||
* Optionally, a draft message could be provided. Ask the user if they want to start chatting.
|
||||
*/
|
||||
public static class Addr extends Qr {
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
public Integer contact_id;
|
||||
/* Draft message. */
|
||||
/** Draft message. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String draft;
|
||||
}
|
||||
|
|
@ -154,91 +154,91 @@ public abstract class Qr {
|
|||
public String text;
|
||||
}
|
||||
|
||||
/* Ask the user if they want to withdraw their own QR code. */
|
||||
/** Ask the user if they want to withdraw their own QR code. */
|
||||
public static class WithdrawVerifyContact extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
}
|
||||
|
||||
/* Ask the user if they want to withdraw their own group invite QR code. */
|
||||
/** Ask the user if they want to withdraw their own group invite QR code. */
|
||||
public static class WithdrawVerifyGroup extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* Group ID. */
|
||||
/** Group ID. */
|
||||
public String grpid;
|
||||
/* Group name. */
|
||||
/** Group name. */
|
||||
public String grpname;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
}
|
||||
|
||||
/* Ask the user if they want to withdraw their own broadcast channel invite QR code. */
|
||||
/** Ask the user if they want to withdraw their own broadcast channel invite QR code. */
|
||||
public static class WithdrawJoinBroadcast extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* Contact ID. Always `ContactId::SELF`. */
|
||||
/** Contact ID. Always `ContactId::SELF`. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* ID, uniquely identifying this chat. Called grpid for historic reasons. */
|
||||
/** ID, uniquely identifying this chat. Called grpid for historic reasons. */
|
||||
public String grpid;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
/* Broadcast name. */
|
||||
/** Broadcast name. */
|
||||
public String name;
|
||||
}
|
||||
|
||||
/* Ask the user if they want to revive their own QR code. */
|
||||
/** Ask the user if they want to revive their own QR code. */
|
||||
public static class ReviveVerifyContact extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
}
|
||||
|
||||
/* Ask the user if they want to revive their own group invite QR code. */
|
||||
/** Ask the user if they want to revive their own group invite QR code. */
|
||||
public static class ReviveVerifyGroup extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* Group ID. */
|
||||
/** Group ID. */
|
||||
public String grpid;
|
||||
/* Contact ID. */
|
||||
/** Contact ID. */
|
||||
public String grpname;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
}
|
||||
|
||||
/* Ask the user if they want to revive their own broadcast channel invite QR code. */
|
||||
/** Ask the user if they want to revive their own broadcast channel invite QR code. */
|
||||
public static class ReviveJoinBroadcast extends Qr {
|
||||
/* Authentication code. */
|
||||
/** Authentication code. */
|
||||
public String authcode;
|
||||
/* Contact ID. Always `ContactId::SELF`. */
|
||||
/** Contact ID. Always `ContactId::SELF`. */
|
||||
public Integer contact_id;
|
||||
/* Fingerprint of the contact key as scanned from the QR code. */
|
||||
/** Fingerprint of the contact key as scanned from the QR code. */
|
||||
public String fingerprint;
|
||||
/* Globally unique chat ID. Called grpid for historic reasons. */
|
||||
/** Globally unique chat ID. Called grpid for historic reasons. */
|
||||
public String grpid;
|
||||
/* Invite number. */
|
||||
/** Invite number. */
|
||||
public String invitenumber;
|
||||
/* Broadcast name. */
|
||||
/** Broadcast name. */
|
||||
public String name;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
/* Autogenerated file, do not edit manually */
|
||||
package chat.delta.rpc.types;
|
||||
|
||||
/* A single reaction emoji. */
|
||||
/** A single reaction emoji. */
|
||||
public class Reaction {
|
||||
/* Emoji frequency. */
|
||||
/** Emoji frequency. */
|
||||
public Integer count;
|
||||
/* Emoji. */
|
||||
/** Emoji. */
|
||||
public String emoji;
|
||||
/* True if we reacted with this emoji. */
|
||||
/** True if we reacted with this emoji. */
|
||||
public Boolean isFromSelf;
|
||||
}
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
/* Autogenerated file, do not edit manually */
|
||||
package chat.delta.rpc.types;
|
||||
|
||||
/* Structure representing all reactions to a particular message. */
|
||||
/** Structure representing all reactions to a particular message. */
|
||||
public class Reactions {
|
||||
/* Unique reactions and their count, sorted in descending order. */
|
||||
/** Unique reactions and their count, sorted in descending order. */
|
||||
public java.util.List<Reaction> reactions;
|
||||
/* Map from a contact to it's reaction to message. */
|
||||
/** Map from a contact to it's reaction to message. */
|
||||
public java.util.Map<String, java.util.List<String>> reactionsByContact;
|
||||
}
|
||||
|
|
@ -2,21 +2,21 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public enum SecurejoinSource {
|
||||
/* Because of some problem, it is unknown where the QR code came from. */
|
||||
/** Because of some problem, it is unknown where the QR code came from. */
|
||||
Unknown,
|
||||
|
||||
/* The user opened a link somewhere outside Delta Chat */
|
||||
/** The user opened a link somewhere outside Delta Chat */
|
||||
ExternalLink,
|
||||
|
||||
/* The user clicked on a link in a message inside Delta Chat */
|
||||
/** The user clicked on a link in a message inside Delta Chat */
|
||||
InternalLink,
|
||||
|
||||
/* The user clicked "Paste from Clipboard" in the QR scan activity */
|
||||
/** The user clicked "Paste from Clipboard" in the QR scan activity */
|
||||
Clipboard,
|
||||
|
||||
/* The user clicked "Load QR code as image" in the QR scan activity */
|
||||
/** The user clicked "Load QR code as image" in the QR scan activity */
|
||||
ImageLoaded,
|
||||
|
||||
/* The user scanned a QR code */
|
||||
/** The user scanned a QR code */
|
||||
Scan,
|
||||
}
|
||||
|
|
@ -2,12 +2,12 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public enum SecurejoinUiPath {
|
||||
/* The UI path is unknown, or the user didn't open the QR code screen at all. */
|
||||
/** The UI path is unknown, or the user didn't open the QR code screen at all. */
|
||||
Unknown,
|
||||
|
||||
/* The user directly clicked on the QR icon in the main screen */
|
||||
/** The user directly clicked on the QR icon in the main screen */
|
||||
QrIcon,
|
||||
|
||||
/* The user first clicked on the `+` button in the main screen, and then on "New Contact" */
|
||||
/** The user first clicked on the `+` button in the main screen, and then on "New Contact" */
|
||||
NewContact,
|
||||
}
|
||||
|
|
@ -2,15 +2,15 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public enum Socket {
|
||||
/* Unspecified socket security, select automatically. */
|
||||
/** Unspecified socket security, select automatically. */
|
||||
automatic,
|
||||
|
||||
/* TLS connection. */
|
||||
/** TLS connection. */
|
||||
ssl,
|
||||
|
||||
/* STARTTLS connection. */
|
||||
/** STARTTLS connection. */
|
||||
starttls,
|
||||
|
||||
/* No TLS, plaintext connection. */
|
||||
/** No TLS, plaintext connection. */
|
||||
plain,
|
||||
}
|
||||
|
|
@ -19,21 +19,21 @@ public enum SystemMessageType {
|
|||
CallAccepted,
|
||||
CallEnded,
|
||||
|
||||
/* 1:1 chats info message telling that SecureJoin has started and the user should wait for it to complete. */
|
||||
/** 1:1 chats info message telling that SecureJoin has started and the user should wait for it to complete. */
|
||||
SecurejoinWait,
|
||||
|
||||
/* 1:1 chats info message telling that SecureJoin is still running, but the user may already send messages. */
|
||||
/** 1:1 chats info message telling that SecureJoin is still running, but the user may already send messages. */
|
||||
SecurejoinWaitTimeout,
|
||||
|
||||
/* Chat ephemeral message timer is changed. */
|
||||
/** Chat ephemeral message timer is changed. */
|
||||
EphemeralTimerChanged,
|
||||
|
||||
/* Self-sent-message that contains only json used for multi-device-sync; if possible, we attach that to other messages as for locations. */
|
||||
/** Self-sent-message that contains only json used for multi-device-sync; if possible, we attach that to other messages as for locations. */
|
||||
MultiDeviceSync,
|
||||
|
||||
/* Webxdc info added with `info` set in `send_webxdc_status_update()`. */
|
||||
/** Webxdc info added with `info` set in `send_webxdc_status_update()`. */
|
||||
WebxdcInfoMessage,
|
||||
|
||||
/* This message contains a users iroh node address. */
|
||||
/** This message contains a users iroh node address. */
|
||||
IrohNodeAddr,
|
||||
}
|
||||
|
|
@ -2,19 +2,19 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public class VcardContact {
|
||||
/* Email address. */
|
||||
/** Email address. */
|
||||
public String addr;
|
||||
/* Contact color as hex string. */
|
||||
/** Contact color as hex string. */
|
||||
public String color;
|
||||
/* The contact's name, or the email address if no name was given. */
|
||||
/** The contact's name, or the email address if no name was given. */
|
||||
public String displayName;
|
||||
/* Public PGP key in Base64. */
|
||||
/** Public PGP key in Base64. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String key;
|
||||
/* Profile image in Base64. */
|
||||
/** Profile image in Base64. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String profileImage;
|
||||
/* Last update timestamp. */
|
||||
/** Last update timestamp. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public Integer timestamp;
|
||||
}
|
||||
|
|
@ -4,13 +4,13 @@ package chat.delta.rpc.types;
|
|||
public enum Viewtype {
|
||||
Unknown,
|
||||
|
||||
/* Text message. */
|
||||
/** Text message. */
|
||||
Text,
|
||||
|
||||
/* Image message. If the image is an animated GIF, the type `Viewtype.Gif` should be used. */
|
||||
/** Image message. If the image is an animated GIF, the type `Viewtype.Gif` should be used. */
|
||||
Image,
|
||||
|
||||
/* Animated GIF message. */
|
||||
/** Animated GIF message. */
|
||||
Gif,
|
||||
|
||||
/**
|
||||
|
|
@ -20,24 +20,24 @@ public enum Viewtype {
|
|||
*/
|
||||
Sticker,
|
||||
|
||||
/* Message containing an Audio file. */
|
||||
/** Message containing an Audio file. */
|
||||
Audio,
|
||||
|
||||
/* A voice message that was directly recorded by the user. For all other audio messages, the type `Viewtype.Audio` should be used. */
|
||||
/** A voice message that was directly recorded by the user. For all other audio messages, the type `Viewtype.Audio` should be used. */
|
||||
Voice,
|
||||
|
||||
/* Video messages. */
|
||||
/** Video messages. */
|
||||
Video,
|
||||
|
||||
/* Message containing any file, eg. a PDF. */
|
||||
/** Message containing any file, eg. a PDF. */
|
||||
File,
|
||||
|
||||
/* Message is a call. */
|
||||
/** Message is a call. */
|
||||
Call,
|
||||
|
||||
/* Message is an webxdc instance. */
|
||||
/** Message is an webxdc instance. */
|
||||
Webxdc,
|
||||
|
||||
/* Message containing shared contacts represented as a vCard (virtual contact file) with email addresses and possibly other fields. Use `parse_vcard()` to retrieve them. */
|
||||
/** Message containing shared contacts represented as a vCard (virtual contact file) with email addresses and possibly other fields. Use `parse_vcard()` to retrieve them. */
|
||||
Vcard,
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
package chat.delta.rpc.types;
|
||||
|
||||
public class WebxdcMessageInfo {
|
||||
/* if the Webxdc represents a document, then this is the name of the document */
|
||||
/** if the Webxdc represents a document, then this is the name of the document */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String document;
|
||||
/**
|
||||
|
|
@ -13,7 +13,7 @@ public class WebxdcMessageInfo {
|
|||
* App icons should should be square, the implementations will add round corners etc. as needed.
|
||||
*/
|
||||
public String icon;
|
||||
/* True if full internet access should be granted to the app. */
|
||||
/** True if full internet access should be granted to the app. */
|
||||
public Boolean internetAccess;
|
||||
/**
|
||||
* The name of the app.
|
||||
|
|
@ -21,16 +21,16 @@ public class WebxdcMessageInfo {
|
|||
* Defaults to the filename if not set in the manifest.
|
||||
*/
|
||||
public String name;
|
||||
/* Address to be used for `window.webxdc.selfAddr` in JS land. */
|
||||
/** Address to be used for `window.webxdc.selfAddr` in JS land. */
|
||||
public String selfAddr;
|
||||
/* Milliseconds to wait before calling `sendUpdate()` again since the last call. Should be exposed to `window.sendUpdateInterval` in JS land. */
|
||||
/** Milliseconds to wait before calling `sendUpdate()` again since the last call. Should be exposed to `window.sendUpdateInterval` in JS land. */
|
||||
public Integer sendUpdateInterval;
|
||||
/* Maximum number of bytes accepted for a serialized update object. Should be exposed to `window.sendUpdateMaxSize` in JS land. */
|
||||
/** Maximum number of bytes accepted for a serialized update object. Should be exposed to `window.sendUpdateMaxSize` in JS land. */
|
||||
public Integer sendUpdateMaxSize;
|
||||
/* URL where the source code of the Webxdc and other information can be found; defaults to an empty string. Implementations may offer an menu or a button to open this URL. */
|
||||
/** URL where the source code of the Webxdc and other information can be found; defaults to an empty string. Implementations may offer an menu or a button to open this URL. */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String sourceCodeUrl;
|
||||
/* short string describing the state of the app, sth. as "2 votes", "Highscore: 123", can be changed by the apps */
|
||||
/** short string describing the state of the app, sth. as "2 votes", "Highscore: 123", can be changed by the apps */
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String summary;
|
||||
}
|
||||
|
|
@ -57,10 +57,13 @@ import chat.delta.rpc.RpcException;
|
|||
|
||||
public class ApplicationContext extends MultiDexApplication {
|
||||
private static final String TAG = ApplicationContext.class.getSimpleName();
|
||||
private static final Object initLock = new Object();
|
||||
private static volatile boolean isInitialized = false;
|
||||
|
||||
private static DcAccounts dcAccounts;
|
||||
private Rpc rpc;
|
||||
private DcContext dcContext;
|
||||
|
||||
public static DcAccounts dcAccounts;
|
||||
public Rpc rpc;
|
||||
public DcContext dcContext;
|
||||
public DcLocationManager dcLocationManager;
|
||||
public DcEventCenter eventCenter;
|
||||
public NotificationCenter notificationCenter;
|
||||
|
|
@ -75,6 +78,57 @@ public class ApplicationContext extends MultiDexApplication {
|
|||
return (ApplicationContext)context.getApplicationContext();
|
||||
}
|
||||
|
||||
private static void ensureInitialized() {
|
||||
synchronized (initLock) {
|
||||
while (!isInitialized) {
|
||||
try {
|
||||
initLock.wait();
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
throw new RuntimeException("Interrupted while waiting for initialization", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get DcAccounts instance, waiting for initialization if necessary.
|
||||
* This method is thread-safe and will block until initialization is complete.
|
||||
*/
|
||||
public static DcAccounts getDcAccounts() {
|
||||
ensureInitialized();
|
||||
return dcAccounts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Rpc instance, waiting for initialization if necessary.
|
||||
* This method is thread-safe and will block until initialization is complete.
|
||||
*/
|
||||
public Rpc getRpc() {
|
||||
ensureInitialized();
|
||||
return rpc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get DcContext instance, waiting for initialization if necessary.
|
||||
* This method is thread-safe and will block until initialization is complete.
|
||||
*/
|
||||
public DcContext getDcContext() {
|
||||
ensureInitialized();
|
||||
return dcContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set DcContext instance. This should only be called by AccountManager when switching accounts,
|
||||
* which only happens after initial initialization is complete.
|
||||
* This method is thread-safe but does NOT trigger initialization or notify waiting threads.
|
||||
*/
|
||||
public void setDcContext(DcContext dcContext) {
|
||||
synchronized (initLock) {
|
||||
this.dcContext = dcContext;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
|
@ -110,67 +164,88 @@ public class ApplicationContext extends MultiDexApplication {
|
|||
|
||||
System.loadLibrary("native-utils");
|
||||
|
||||
dcAccounts = new DcAccounts(new File(getFilesDir(), "accounts").getAbsolutePath());
|
||||
Log.i(TAG, "DcAccounts created");
|
||||
rpc = new Rpc(new FFITransport(dcAccounts.getJsonrpcInstance()));
|
||||
Log.i(TAG, "Rpc created");
|
||||
AccountManager.getInstance().migrateToDcAccounts(this);
|
||||
// Initialize DcAccounts in background to avoid ANR during SQL migrations
|
||||
Util.runOnBackground(() -> {
|
||||
synchronized (initLock) {
|
||||
try {
|
||||
dcAccounts = new DcAccounts(new File(getFilesDir(), "accounts").getAbsolutePath());
|
||||
Log.i(TAG, "DcAccounts created");
|
||||
rpc = new Rpc(new FFITransport(dcAccounts.getJsonrpcInstance()));
|
||||
Log.i(TAG, "Rpc created");
|
||||
AccountManager.getInstance().migrateToDcAccounts(this);
|
||||
|
||||
int[] allAccounts = dcAccounts.getAll();
|
||||
Log.i(TAG, "Number of profiles: " + allAccounts.length);
|
||||
for (int accountId : allAccounts) {
|
||||
DcContext ac = dcAccounts.getAccount(accountId);
|
||||
if (!ac.isOpen()) {
|
||||
try {
|
||||
DatabaseSecret secret = DatabaseSecretProvider.getOrCreateDatabaseSecret(this, accountId);
|
||||
boolean res = ac.open(secret.asString());
|
||||
if (res) Log.i(TAG, "Successfully opened account " + accountId + ", path: " + ac.getBlobdir());
|
||||
else Log.e(TAG, "Error opening account " + accountId + ", path: " + ac.getBlobdir());
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Failed to open account " + accountId + ", path: " + ac.getBlobdir() + ": " + e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
// 2025.11.12: this is needed until core starts ignoring "delete_server_after" for chatmail
|
||||
if (ac.isChatmail()) {
|
||||
ac.setConfig("delete_server_after", null); // reset
|
||||
}
|
||||
}
|
||||
if (allAccounts.length == 0) {
|
||||
try {
|
||||
rpc.addAccount();
|
||||
} catch (RpcException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
dcContext = dcAccounts.getSelectedAccount();
|
||||
notificationCenter = new NotificationCenter(this);
|
||||
eventCenter = new DcEventCenter(this);
|
||||
|
||||
// Mark as initialized before starting threads that depend on it
|
||||
isInitialized = true;
|
||||
initLock.notifyAll();
|
||||
Log.i(TAG, "DcAccounts initialization complete");
|
||||
|
||||
dcLocationManager = new DcLocationManager(this); // depends on dcContext
|
||||
|
||||
new Thread(() -> {
|
||||
Log.i(TAG, "Starting event loop");
|
||||
DcEventEmitter emitter = dcAccounts.getEventEmitter();
|
||||
Log.i(TAG, "DcEventEmitter obtained");
|
||||
while (true) {
|
||||
DcEvent event = emitter.getNextEvent();
|
||||
if (event==null) {
|
||||
break;
|
||||
}
|
||||
eventCenter.handleEvent(event);
|
||||
}
|
||||
Log.i("DeltaChat", "shutting down event handler");
|
||||
}, "eventThread").start();
|
||||
|
||||
// set translations before starting I/O to avoid sending untranslated MDNs (issue #2288)
|
||||
DcHelper.setStockTranslations(this);
|
||||
|
||||
dcAccounts.startIo();
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Fatal error during DcAccounts initialization", e);
|
||||
// Mark as initialized even on error to avoid deadlock
|
||||
isInitialized = true;
|
||||
initLock.notifyAll();
|
||||
throw new RuntimeException("Failed to initialize DcAccounts", e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// October-2025 migration: delete deprecated "permanent channel" id
|
||||
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
|
||||
notificationManager.deleteNotificationChannel("dc_foreground_notification_ch");
|
||||
// end October-2025 migration
|
||||
|
||||
int[] allAccounts = dcAccounts.getAll();
|
||||
Log.i(TAG, "Number of profiles: " + allAccounts.length);
|
||||
for (int accountId : allAccounts) {
|
||||
DcContext ac = dcAccounts.getAccount(accountId);
|
||||
if (!ac.isOpen()) {
|
||||
try {
|
||||
DatabaseSecret secret = DatabaseSecretProvider.getOrCreateDatabaseSecret(this, accountId);
|
||||
boolean res = ac.open(secret.asString());
|
||||
if (res) Log.i(TAG, "Successfully opened account " + accountId + ", path: " + ac.getBlobdir());
|
||||
else Log.e(TAG, "Error opening account " + accountId + ", path: " + ac.getBlobdir());
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Failed to open account " + accountId + ", path: " + ac.getBlobdir() + ": " + e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
// 2025.11.12: this is needed until core starts ignoring "delete_server_after" for chatmail
|
||||
if (ac.isChatmail()) {
|
||||
ac.setConfig("delete_server_after", null); // reset
|
||||
}
|
||||
}
|
||||
if (allAccounts.length == 0) {
|
||||
try {
|
||||
rpc.addAccount();
|
||||
} catch (RpcException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
dcContext = dcAccounts.getSelectedAccount();
|
||||
notificationCenter = new NotificationCenter(this);
|
||||
eventCenter = new DcEventCenter(this);
|
||||
new Thread(() -> {
|
||||
Log.i(TAG, "Starting event loop");
|
||||
DcEventEmitter emitter = dcAccounts.getEventEmitter();
|
||||
Log.i(TAG, "DcEventEmitter obtained");
|
||||
while (true) {
|
||||
DcEvent event = emitter.getNextEvent();
|
||||
if (event==null) {
|
||||
break;
|
||||
}
|
||||
eventCenter.handleEvent(event);
|
||||
}
|
||||
Log.i("DeltaChat", "shutting down event handler");
|
||||
}, "eventThread").start();
|
||||
|
||||
// set translations before starting I/O to avoid sending untranslated MDNs (issue #2288)
|
||||
DcHelper.setStockTranslations(this);
|
||||
|
||||
dcAccounts.startIo();
|
||||
|
||||
new ForegroundDetector(ApplicationContext.getInstance(this));
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
|
|
@ -180,7 +255,7 @@ public class ApplicationContext extends MultiDexApplication {
|
|||
@Override
|
||||
public void onAvailable(@NonNull android.net.Network network) {
|
||||
Log.i("DeltaChat", "++++++++++++++++++ NetworkCallback.onAvailable() #" + debugOnAvailableCount++);
|
||||
dcAccounts.maybeNetwork();
|
||||
getDcAccounts().maybeNetwork();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -209,7 +284,6 @@ public class ApplicationContext extends MultiDexApplication {
|
|||
initializeJobManager();
|
||||
InChatSounds.getInstance(this);
|
||||
|
||||
dcLocationManager = new DcLocationManager(this);
|
||||
DynamicTheme.setDefaultDayNightMode(this);
|
||||
|
||||
IntentFilter filter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
|
||||
|
|
@ -258,6 +332,8 @@ public class ApplicationContext extends MultiDexApplication {
|
|||
"WebxdcGarbageCollectionWorker",
|
||||
ExistingPeriodicWorkPolicy.KEEP,
|
||||
webxdcGarbageCollectionRequest);
|
||||
|
||||
Log.i("DeltaChat", "+++++++++++ ApplicationContext.onCreate() finished ++++++++++");
|
||||
}
|
||||
|
||||
public JobManager getJobManager() {
|
||||
|
|
|
|||
|
|
@ -959,8 +959,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||
int accountId = getIntent().getIntExtra(ACCOUNT_ID_EXTRA, dcContext.getAccountId());
|
||||
if (accountId != dcContext.getAccountId()) {
|
||||
AccountManager.getInstance().switchAccount(context, accountId);
|
||||
dcContext = context.dcContext;
|
||||
fragment.dcContext = context.dcContext;
|
||||
fragment.dcContext = dcContext = context.getDcContext();
|
||||
initializeBackground();
|
||||
}
|
||||
chatId = getIntent().getIntExtra(CHAT_ID_EXTRA, -1);
|
||||
|
|
|
|||
|
|
@ -763,6 +763,9 @@ public class ConversationFragment extends MessageSelectorFragment
|
|||
else if(DozeReminder.isDozeReminderMsg(getContext(), messageRecord)) {
|
||||
DozeReminder.dozeReminderTapped(getContext());
|
||||
}
|
||||
else if(StatsSending.isStatsSendingDeviceMsg(getContext(), messageRecord)) {
|
||||
StatsSending.statsDeviceMsgTapped(getActivity());
|
||||
}
|
||||
else if(messageRecord.getInfoType() == DcMsg.DC_INFO_WEBXDC_INFO_MESSAGE) {
|
||||
if (messageRecord.getParent() != null) {
|
||||
// if the parent webxdc message still exists
|
||||
|
|
|
|||
|
|
@ -82,6 +82,8 @@ import org.thoughtcrime.securesms.util.SendRelayedMessageUtil;
|
|||
import org.thoughtcrime.securesms.util.StorageUtil;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
import chat.delta.rpc.types.SecurejoinSource;
|
||||
import chat.delta.rpc.types.SecurejoinUiPath;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
|
@ -495,7 +497,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
|||
|
||||
if (uri.getScheme().equalsIgnoreCase(OPENPGP4FPR) || Util.isInviteURL(uri)) {
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.handleQrData(uri.toString());
|
||||
qrCodeHandler.handleQrData(uri.toString(), SecurejoinSource.ExternalLink, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -577,7 +579,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
|
|||
case IntentIntegrator.REQUEST_CODE:
|
||||
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.onScanPerformed(scanResult);
|
||||
qrCodeHandler.onScanPerformed(scanResult, SecurejoinUiPath.QrIcon);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -344,9 +344,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity
|
|||
DcMsg dcMsg = dcContext.getMsg(mediaItem.msgId);
|
||||
DcChat dcChat = dcContext.getChat(dcMsg.getChatId());
|
||||
|
||||
String text = getResources().getQuantityString(
|
||||
dcChat.isDeviceTalk() ? R.plurals.ask_delete_messages_simple : R.plurals.ask_delete_messages,
|
||||
1, 1);
|
||||
String text = getResources().getQuantityString(R.plurals.ask_delete_messages,1, 1);
|
||||
int positiveBtnLabel = dcChat.isSelfTalk() ? R.string.delete : R.string.delete_for_me;
|
||||
final int[] messageIds = new int[]{mediaItem.msgId};
|
||||
|
||||
|
|
|
|||
|
|
@ -76,9 +76,7 @@ public abstract class MessageSelectorFragment
|
|||
canDeleteForAll = false;
|
||||
}
|
||||
|
||||
String text = getActivity().getResources().getQuantityString(
|
||||
dcChat.isDeviceTalk() ? R.plurals.ask_delete_messages_simple : R.plurals.ask_delete_messages,
|
||||
messageIds.length, messageIds.length);
|
||||
String text = getActivity().getResources().getQuantityString(R.plurals.ask_delete_messages, messageIds.length, messageIds.length);
|
||||
int positiveBtnLabel = dcChat.isSelfTalk() ? R.string.delete : R.string.delete_for_me;
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity())
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ import org.thoughtcrime.securesms.qr.QrActivity;
|
|||
import org.thoughtcrime.securesms.qr.QrCodeHandler;
|
||||
import org.thoughtcrime.securesms.util.MailtoUtil;
|
||||
|
||||
import chat.delta.rpc.types.SecurejoinUiPath;
|
||||
|
||||
/**
|
||||
* Activity container for starting a new conversation.
|
||||
*
|
||||
|
|
@ -142,7 +144,7 @@ public class NewConversationActivity extends ContactSelectionActivity {
|
|||
case IntentIntegrator.REQUEST_CODE:
|
||||
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.onScanPerformed(scanResult);
|
||||
qrCodeHandler.onScanPerformed(scanResult, SecurejoinUiPath.NewContact);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
100
src/main/java/org/thoughtcrime/securesms/StatsSending.java
Normal file
100
src/main/java/org/thoughtcrime/securesms/StatsSending.java
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
package org.thoughtcrime.securesms;
|
||||
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_STATS_SENDING;
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.openHelp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.text.util.Linkify;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import com.b44t.messenger.DcContact;
|
||||
import com.b44t.messenger.DcContext;
|
||||
import com.b44t.messenger.DcMsg;
|
||||
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.util.IntentUtils;
|
||||
import org.thoughtcrime.securesms.util.Prefs;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class StatsSending {
|
||||
/** @noinspection unused: We will start adding a device message once stats-sending is tested a bit */
|
||||
public static void maybeAddStatsSendingDeviceMsg(Context context) {
|
||||
if (Prefs.getStatsDeviceMsgId(context) != 0) {
|
||||
return;
|
||||
}
|
||||
if (DcHelper.getInt(context, CONFIG_STATS_SENDING) != 0) {
|
||||
return; // Stats-sending is already enabled
|
||||
}
|
||||
DcContext dcContext = DcHelper.getContext(context);
|
||||
DcMsg msg = new DcMsg(dcContext, DcMsg.DC_MSG_TEXT);
|
||||
msg.setText(context.getString(R.string.stats_device_message));
|
||||
int msgId = dcContext.addDeviceMsg("stats_device_message", msg);
|
||||
if (msgId!=0) {
|
||||
Prefs.setStatsDeviceMsgId(context, msgId);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isStatsSendingDeviceMsg(Context context, DcMsg msg) {
|
||||
return msg != null
|
||||
&& msg.getFromId() == DcContact.DC_CONTACT_ID_DEVICE
|
||||
&& msg.getId() == Prefs.getStatsDeviceMsgId(context);
|
||||
}
|
||||
|
||||
public static void statsDeviceMsgTapped(Activity activity) {
|
||||
if (DcHelper.getInt(activity, CONFIG_STATS_SENDING) != 0) {
|
||||
showStatsDisableDialog(activity);
|
||||
} else {
|
||||
showStatsConfirmationDialog(activity, () -> {});
|
||||
}
|
||||
}
|
||||
|
||||
public static void showStatsConfirmationDialog(Activity activity, Runnable onConfigChangedListener) {
|
||||
AlertDialog d = new AlertDialog.Builder(activity)
|
||||
.setMessage(R.string.stats_confirmation_dialog)
|
||||
.setNegativeButton(R.string.cancel, (_d, i) -> {})
|
||||
.setPositiveButton(R.string.yes, (_d, i) -> {
|
||||
DcHelper.set(activity, DcHelper.CONFIG_STATS_SENDING, "1");
|
||||
onConfigChangedListener.run();
|
||||
showStatsThanksDialog(activity);
|
||||
})
|
||||
.setNeutralButton(R.string.more_info_desktop, (_d, i) -> openHelp(activity, "#statssending"))
|
||||
.create();
|
||||
d.show();
|
||||
try {
|
||||
//noinspection DataFlowIssue
|
||||
Linkify.addLinks((TextView) d.findViewById(android.R.id.message), Linkify.WEB_URLS);
|
||||
} catch (NullPointerException e) {
|
||||
//noinspection CallToPrintStackTrace
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void showStatsThanksDialog(Activity activity) {
|
||||
String stats_id = DcHelper.get(activity, DcHelper.CONFIG_STATS_ID);
|
||||
new AlertDialog.Builder(activity)
|
||||
.setMessage(R.string.stats_thanks)
|
||||
.setNeutralButton(R.string.no, (d, i) -> {})
|
||||
.setPositiveButton(R.string.yes, (d, i) -> {
|
||||
String ln = Locale.getDefault().getLanguage();
|
||||
IntentUtils.showInBrowser(activity, "https://cispa.qualtrics.com/jfe/form/SV_9YmhkpGa48KxfLg?id=" + stats_id + "&ln=" + ln);
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
||||
public static void showStatsDisableDialog(Activity activity) {
|
||||
AlertDialog d = new AlertDialog.Builder(activity)
|
||||
.setMessage(R.string.stats_disable_dialog)
|
||||
.setNegativeButton(R.string.disable, (_d, i) -> {
|
||||
DcHelper.set(activity, DcHelper.CONFIG_STATS_SENDING, "0");
|
||||
})
|
||||
.setPositiveButton(R.string.stats_keep_sending, (_d, i) -> {
|
||||
})
|
||||
.setNeutralButton(R.string.more_info_desktop, (_d, i) -> openHelp(activity, "#statssending"))
|
||||
.create();
|
||||
d.show();
|
||||
}
|
||||
}
|
||||
|
|
@ -28,6 +28,8 @@ import org.thoughtcrime.securesms.util.IntentUtils;
|
|||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
|
||||
import chat.delta.rpc.types.SecurejoinSource;
|
||||
|
||||
import java.net.IDN;
|
||||
|
||||
public class WebViewActivity extends PassphraseRequiredActionBarActivity
|
||||
|
|
@ -302,7 +304,7 @@ public class WebViewActivity extends PassphraseRequiredActionBarActivity
|
|||
// invite-links should be handled directly
|
||||
String schema = url.split(":")[0].toLowerCase();
|
||||
if (schema.equals("openpgp4fpr") || url.startsWith("https://" + Util.INVITE_DOMAIN + "/")) {
|
||||
new QrCodeHandler(this).handleQrData(url);
|
||||
new QrCodeHandler(this).handleQrData(url, SecurejoinSource.InternalLink, null);
|
||||
return true; // abort internal loading
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ public class DozeReminder {
|
|||
}
|
||||
|
||||
private static boolean isPushAvailableAndSufficient() {
|
||||
return ApplicationContext.dcAccounts.isAllChatmail()
|
||||
return ApplicationContext.getDcAccounts().isAllChatmail()
|
||||
&& FcmReceiveService.getToken() != null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public class AccountManager {
|
|||
|
||||
private void resetDcContext(Context context) {
|
||||
ApplicationContext appContext = (ApplicationContext)context.getApplicationContext();
|
||||
appContext.dcContext = ApplicationContext.dcAccounts.getSelectedAccount();
|
||||
appContext.setDcContext(ApplicationContext.getDcAccounts().getSelectedAccount());
|
||||
DcHelper.setStockTranslations(context);
|
||||
DirectShareUtil.resetAllShortcuts(appContext);
|
||||
}
|
||||
|
|
@ -55,7 +55,7 @@ public class AccountManager {
|
|||
for (File file : files) {
|
||||
// old accounts have the pattern "messenger*.db"
|
||||
if (!file.isDirectory() && file.getName().startsWith("messenger") && file.getName().endsWith(".db")) {
|
||||
int accountId = ApplicationContext.dcAccounts.migrateAccount(file.getAbsolutePath());
|
||||
int accountId = ApplicationContext.getDcAccounts().migrateAccount(file.getAbsolutePath());
|
||||
if (accountId != 0) {
|
||||
String selName = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.getString("curr_account_db_name", "messenger.db");
|
||||
|
|
@ -70,7 +70,7 @@ public class AccountManager {
|
|||
}
|
||||
|
||||
if (selectAccountId != 0) {
|
||||
ApplicationContext.dcAccounts.selectAccount(selectAccountId);
|
||||
ApplicationContext.getDcAccounts().selectAccount(selectAccountId);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error in migrateToDcAccounts()", e);
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ public class DcEventCenter {
|
|||
break;
|
||||
}
|
||||
|
||||
if (accountId != context.dcContext.getAccountId()) {
|
||||
if (accountId != context.getDcContext().getAccountId()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,17 +62,19 @@ public class DcHelper {
|
|||
public static final String CONFIG_PROXY_URL = "proxy_url";
|
||||
public static final String CONFIG_WEBXDC_REALTIME_ENABLED = "webxdc_realtime_enabled";
|
||||
public static final String CONFIG_PRIVATE_TAG = "private_tag";
|
||||
public static final String CONFIG_STATS_SENDING = "stats_sending";
|
||||
public static final String CONFIG_STATS_ID = "stats_id";
|
||||
|
||||
public static DcContext getContext(@NonNull Context context) {
|
||||
return ApplicationContext.getInstance(context).dcContext;
|
||||
return ApplicationContext.getInstance(context).getDcContext();
|
||||
}
|
||||
|
||||
public static Rpc getRpc(@NonNull Context context) {
|
||||
return ApplicationContext.getInstance(context).rpc;
|
||||
return ApplicationContext.getInstance(context).getRpc();
|
||||
}
|
||||
|
||||
public static DcAccounts getAccounts(@NonNull Context context) {
|
||||
return ApplicationContext.getInstance(context).dcAccounts;
|
||||
return ApplicationContext.getInstance(context).getDcAccounts();
|
||||
}
|
||||
|
||||
public static DcEventCenter getEventCenter(@NonNull Context context) {
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ import org.thoughtcrime.securesms.connect.DcHelper;
|
|||
import org.thoughtcrime.securesms.qr.QrCodeHandler;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
|
||||
import chat.delta.rpc.types.SecurejoinUiPath;
|
||||
|
||||
public class NewContactActivity extends PassphraseRequiredActionBarActivity
|
||||
{
|
||||
|
||||
|
|
@ -105,7 +107,7 @@ public class NewContactActivity extends PassphraseRequiredActionBarActivity
|
|||
if (requestCode == IntentIntegrator.REQUEST_CODE) {
|
||||
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.onScanPerformed(scanResult);
|
||||
qrCodeHandler.onScanPerformed(scanResult, SecurejoinUiPath.NewContact);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -426,7 +426,7 @@ public class NotificationCenter {
|
|||
public void notifyCall(int accId, int callId, String payload) {
|
||||
Util.runOnAnyBackgroundThread(() -> {
|
||||
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
|
||||
DcContext dcContext = context.dcAccounts.getAccount(accId);
|
||||
DcContext dcContext = context.getDcAccounts().getAccount(accId);
|
||||
int chatId = dcContext.getMsg(callId).getChatId();
|
||||
DcChat dcChat = dcContext.getChat(chatId);
|
||||
String name = dcChat.getName();
|
||||
|
|
@ -478,7 +478,7 @@ public class NotificationCenter {
|
|||
|
||||
public void notifyMessage(int accountId, int chatId, int msgId) {
|
||||
Util.runOnAnyBackgroundThread(() -> {
|
||||
DcContext dcContext = context.dcAccounts.getAccount(accountId);
|
||||
DcContext dcContext = context.getDcAccounts().getAccount(accountId);
|
||||
DcChat dcChat = dcContext.getChat(chatId);
|
||||
|
||||
DcMsg dcMsg = dcContext.getMsg(msgId);
|
||||
|
|
@ -508,7 +508,7 @@ public class NotificationCenter {
|
|||
|
||||
public void notifyReaction(int accountId, int contactId, int msgId, String reaction) {
|
||||
Util.runOnAnyBackgroundThread(() -> {
|
||||
DcContext dcContext = context.dcAccounts.getAccount(accountId);
|
||||
DcContext dcContext = context.getDcAccounts().getAccount(accountId);
|
||||
DcMsg dcMsg = dcContext.getMsg(msgId);
|
||||
|
||||
NotificationPrivacyPreference privacy = Prefs.getNotificationPrivacy(context);
|
||||
|
|
@ -530,7 +530,7 @@ public class NotificationCenter {
|
|||
return; // showing "New Message" is wrong, just do nothing.
|
||||
}
|
||||
|
||||
DcContext dcContext = context.dcAccounts.getAccount(accountId);
|
||||
DcContext dcContext = context.getDcAccounts().getAccount(accountId);
|
||||
DcMsg dcMsg = dcContext.getMsg(msgId);
|
||||
DcMsg parentMsg;
|
||||
if(dcMsg.getType() == DcMsg.DC_MSG_WEBXDC) {
|
||||
|
|
@ -554,7 +554,7 @@ public class NotificationCenter {
|
|||
@WorkerThread
|
||||
private void maybeAddNotification(int accountId, DcChat dcChat, int msgId, String shortLine, String tickerLine, boolean playInChatSound, boolean isMention) {
|
||||
|
||||
DcContext dcContext = context.dcAccounts.getAccount(accountId);
|
||||
DcContext dcContext = context.getDcAccounts().getAccount(accountId);
|
||||
int chatId = dcChat.getId();
|
||||
ChatData chatData = new ChatData(accountId, chatId);
|
||||
isMention = isMention && dcContext.isMentionsEnabled();
|
||||
|
|
@ -602,7 +602,7 @@ public class NotificationCenter {
|
|||
}
|
||||
|
||||
String accountTag = dcContext.getConfig(CONFIG_PRIVATE_TAG);
|
||||
if (accountTag.isEmpty() && context.dcAccounts.getAll().length > 1) {
|
||||
if (accountTag.isEmpty() && context.getDcAccounts().getAll().length > 1) {
|
||||
accountTag = dcContext.getName();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import static android.text.InputType.TYPE_TEXT_VARIATION_URI;
|
|||
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_BCC_SELF;
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_MVBOX_MOVE;
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_ONLY_FETCH_MVBOX;
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_STATS_SENDING;
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SHOW_EMAILS;
|
||||
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_WEBXDC_REALTIME_ENABLED;
|
||||
|
||||
|
|
@ -16,6 +17,8 @@ import android.os.Bundle;
|
|||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
|
@ -28,8 +31,10 @@ import org.thoughtcrime.securesms.ApplicationPreferencesActivity;
|
|||
import org.thoughtcrime.securesms.LogViewActivity;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.relay.RelayListActivity;
|
||||
import org.thoughtcrime.securesms.StatsSending;
|
||||
import org.thoughtcrime.securesms.connect.DcEventCenter;
|
||||
import org.thoughtcrime.securesms.proxy.ProxySettingsActivity;
|
||||
import org.thoughtcrime.securesms.util.IntentUtils;
|
||||
import org.thoughtcrime.securesms.util.Prefs;
|
||||
import org.thoughtcrime.securesms.util.StreamUtil;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
|
|
@ -48,6 +53,7 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
|
|||
private static final String TAG = AdvancedPreferenceFragment.class.getSimpleName();
|
||||
|
||||
private ListPreference showEmails;
|
||||
CheckBoxPreference selfReportingCheckbox;
|
||||
CheckBoxPreference multiDeviceCheckbox;
|
||||
CheckBoxPreference mvboxMoveCheckbox;
|
||||
CheckBoxPreference onlyFetchMvboxCheckbox;
|
||||
|
|
@ -137,6 +143,22 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
|
|||
}
|
||||
updateWebxdcStoreSummary();
|
||||
|
||||
selfReportingCheckbox = this.findPreference("pref_stats_sending");
|
||||
if (selfReportingCheckbox != null) {
|
||||
selfReportingCheckbox.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
boolean enabled = (Boolean) newValue;
|
||||
if (enabled) {
|
||||
StatsSending.showStatsConfirmationDialog(requireActivity(), () -> {
|
||||
((CheckBoxPreference)preference).setChecked(true);
|
||||
});
|
||||
return false;
|
||||
} else {
|
||||
dcContext.setConfigInt(CONFIG_STATS_SENDING, 0);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Preference proxySettings = this.findPreference("proxy_settings_button");
|
||||
if (proxySettings != null) {
|
||||
proxySettings.setOnPreferenceClickListener((preference) -> {
|
||||
|
|
@ -172,6 +194,7 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
|
|||
showEmails.setValue(value);
|
||||
updateListSummary(showEmails, value);
|
||||
|
||||
selfReportingCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_STATS_SENDING));
|
||||
multiDeviceCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_BCC_SELF));
|
||||
mvboxMoveCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_MVBOX_MOVE));
|
||||
onlyFetchMvboxCheckbox.setChecked(0!=dcContext.getConfigInt(CONFIG_ONLY_FETCH_MVBOX));
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
((ApplicationPreferencesActivity)getActivity()).getSupportActionBar().setTitle(R.string.pref_chats_and_media);
|
||||
((ApplicationPreferencesActivity)getActivity()).getSupportActionBar().setTitle(R.string.pref_chats);
|
||||
|
||||
String value = Integer.toString(dcContext.getConfigInt(DcHelper.CONFIG_MEDIA_QUALITY));
|
||||
mediaQuality.setValue(value);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.qr;
|
|||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
|
|
@ -29,6 +30,8 @@ import com.google.zxing.Result;
|
|||
import com.google.zxing.common.HybridBinarizer;
|
||||
|
||||
import org.thoughtcrime.securesms.BaseActionBarActivity;
|
||||
import org.thoughtcrime.securesms.ConversationListActivity;
|
||||
import org.thoughtcrime.securesms.NewConversationActivity;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.contacts.NewContactActivity;
|
||||
|
|
@ -41,6 +44,9 @@ import org.thoughtcrime.securesms.util.ViewUtil;
|
|||
import java.io.FileNotFoundException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import chat.delta.rpc.types.SecurejoinSource;
|
||||
import chat.delta.rpc.types.SecurejoinUiPath;
|
||||
|
||||
public class QrActivity extends BaseActionBarActivity implements View.OnClickListener {
|
||||
|
||||
private final static String TAG = QrActivity.class.getSimpleName();
|
||||
|
|
@ -123,7 +129,7 @@ public class QrActivity extends BaseActionBarActivity implements View.OnClickLis
|
|||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
menu.clear();
|
||||
getMenuInflater().inflate(R.menu.qr_show, menu);
|
||||
menu.findItem(R.id.new_classic_contact).setVisible(!DcHelper.getContext(this).isChatmail());
|
||||
menu.findItem(R.id.new_classic_contact).setVisible(!scanRelay && !DcHelper.getContext(this).isChatmail());
|
||||
|
||||
Util.redMenuItem(menu, R.id.withdraw);
|
||||
if(tabLayout.getSelectedTabPosition() == TAB_SCAN) {
|
||||
|
|
@ -149,7 +155,7 @@ public class QrActivity extends BaseActionBarActivity implements View.OnClickLis
|
|||
AttachmentManager.selectImage(this, REQUEST_CODE_IMAGE);
|
||||
} else if (itemId == R.id.paste) {
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.handleQrData(Util.getTextFromClipboard(this));
|
||||
qrCodeHandler.handleQrData(Util.getTextFromClipboard(this), SecurejoinSource.Clipboard, getUiPath());
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -200,7 +206,7 @@ public class QrActivity extends BaseActionBarActivity implements View.OnClickLis
|
|||
try {
|
||||
Result result = reader.decode(bBitmap);
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.handleQrData(result.getText());
|
||||
qrCodeHandler.handleQrData(result.getText(), SecurejoinSource.ImageLoaded, getUiPath());
|
||||
} catch (NotFoundException e) {
|
||||
Log.e(TAG, "decode exception", e);
|
||||
Toast.makeText(this, getString(R.string.qrscan_failed), Toast.LENGTH_LONG).show();
|
||||
|
|
@ -213,6 +219,21 @@ public class QrActivity extends BaseActionBarActivity implements View.OnClickLis
|
|||
}
|
||||
}
|
||||
|
||||
private SecurejoinUiPath getUiPath() {
|
||||
SecurejoinUiPath uiPath = null;
|
||||
ComponentName caller = this.getCallingActivity();
|
||||
if (caller != null) {
|
||||
if (caller.getClassName().equals(NewConversationActivity.class.getName())) {
|
||||
uiPath = SecurejoinUiPath.NewContact;
|
||||
} else if (caller.getClassName().equals(ConversationListActivity.class.getName())
|
||||
// RoutingActivity is an alias for ConversationListActivity
|
||||
|| caller.getClassName().endsWith(".RoutingActivity")) {
|
||||
uiPath = SecurejoinUiPath.QrIcon;
|
||||
}
|
||||
}
|
||||
return uiPath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
viewPager.setCurrentItem(TAB_SCAN);
|
||||
|
|
|
|||
|
|
@ -25,10 +25,22 @@ import org.thoughtcrime.securesms.util.views.ProgressDialog;
|
|||
import chat.delta.rpc.Rpc;
|
||||
import chat.delta.rpc.RpcException;
|
||||
|
||||
public class QrCodeHandler {
|
||||
import chat.delta.rpc.types.SecurejoinSource;
|
||||
import chat.delta.rpc.types.SecurejoinUiPath;
|
||||
|
||||
public class QrCodeHandler {
|
||||
private static final String TAG = QrCodeHandler.class.getSimpleName();
|
||||
|
||||
public static int SECUREJOIN_SOURCE_EXTERNAL_LINK = 1;
|
||||
public static int SECUREJOIN_SOURCE_INTERNAL_LINK = 2;
|
||||
public static int SECUREJOIN_SOURCE_CLIPBOARD = 3;
|
||||
public static int SECUREJOIN_SOURCE_IMAGE_LOADED = 4;
|
||||
public static int SECUREJOIN_SOURCE_SCAN = 5;
|
||||
|
||||
public static int SECUREJOIN_UIPATH_QR_ICON = 1;
|
||||
public static int SECUREJOIN_UIPATH_NEW_CONTACT = 2;
|
||||
|
||||
|
||||
private final Activity activity;
|
||||
private final DcContext dcContext;
|
||||
private final Rpc rpc;
|
||||
|
|
@ -41,15 +53,15 @@ public class QrCodeHandler {
|
|||
accId = dcContext.getAccountId();
|
||||
}
|
||||
|
||||
public void onScanPerformed(IntentResult scanResult) {
|
||||
public void onScanPerformed(IntentResult scanResult, SecurejoinUiPath uipath) {
|
||||
if (scanResult == null || scanResult.getFormatName() == null) {
|
||||
return; // aborted
|
||||
}
|
||||
|
||||
handleQrData(scanResult.getContents());
|
||||
handleQrData(scanResult.getContents(), SecurejoinSource.Scan, uipath);
|
||||
}
|
||||
|
||||
public void handleQrData(String rawString) {
|
||||
public void handleQrData(String rawString, SecurejoinSource source, SecurejoinUiPath uiPath) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||
final DcLot qrParsed = dcContext.checkQr(rawString);
|
||||
String name = dcContext.getContact(qrParsed.getId()).getDisplayName();
|
||||
|
|
@ -57,7 +69,7 @@ public class QrCodeHandler {
|
|||
case DcContext.DC_QR_ASK_VERIFYCONTACT:
|
||||
case DcContext.DC_QR_ASK_VERIFYGROUP:
|
||||
case DcContext.DC_QR_ASK_JOIN_BROADCAST:
|
||||
showVerifyContactOrGroup(activity, builder, rawString, qrParsed, name);
|
||||
showVerifyContactOrGroup(activity, builder, rawString, qrParsed, name, source, uiPath);
|
||||
break;
|
||||
|
||||
case DcContext.DC_QR_FPR_WITHOUT_ADDR:
|
||||
|
|
@ -224,7 +236,13 @@ public class QrCodeHandler {
|
|||
});
|
||||
}
|
||||
|
||||
private void showVerifyContactOrGroup(Activity activity, AlertDialog.Builder builder, String qrRawString, DcLot qrParsed, String name) {
|
||||
private void showVerifyContactOrGroup(Activity activity,
|
||||
AlertDialog.Builder builder,
|
||||
String qrRawString,
|
||||
DcLot qrParsed,
|
||||
String name,
|
||||
SecurejoinSource source,
|
||||
SecurejoinUiPath uipath) {
|
||||
String msg;
|
||||
switch (qrParsed.getState()) {
|
||||
case DcContext.DC_QR_ASK_VERIFYGROUP:
|
||||
|
|
@ -239,17 +257,17 @@ public class QrCodeHandler {
|
|||
}
|
||||
builder.setMessage(msg);
|
||||
builder.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> {
|
||||
DcHelper.getEventCenter(activity).captureNextError();
|
||||
int newChatId = dcContext.joinSecurejoin(qrRawString);
|
||||
DcHelper.getEventCenter(activity).endCaptureNextError();
|
||||
try {
|
||||
int newChatId = DcHelper.getRpc(activity).secureJoinWithUxInfo(dcContext.getAccountId(), qrRawString, source, uipath);
|
||||
if (newChatId == 0) throw new Exception("Securejoin failed to create a chat");
|
||||
|
||||
if (newChatId != 0) {
|
||||
Intent intent = new Intent(activity, ConversationActivity.class);
|
||||
intent.putExtra(ConversationActivity.CHAT_ID_EXTRA, newChatId);
|
||||
activity.startActivity(intent);
|
||||
} else {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
AlertDialog.Builder builder1 = new AlertDialog.Builder(activity);
|
||||
builder1.setMessage(dcContext.getLastError());
|
||||
builder1.setMessage(e.getMessage());
|
||||
builder1.setPositiveButton(android.R.string.ok, null);
|
||||
builder1.create().show();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ import java.util.List;
|
|||
import chat.delta.rpc.Rpc;
|
||||
import chat.delta.rpc.RpcException;
|
||||
import chat.delta.rpc.types.EnteredLoginParam;
|
||||
import chat.delta.rpc.types.SecurejoinSource;
|
||||
import chat.delta.rpc.types.SecurejoinUiPath;
|
||||
|
||||
public class RelayListActivity extends BaseActionBarActivity
|
||||
implements RelayListAdapter.OnRelayClickListener, DcEventCenter.DcEventDelegate {
|
||||
|
|
@ -88,7 +90,7 @@ public class RelayListActivity extends BaseActionBarActivity
|
|||
String qrdata = getIntent().getStringExtra(EXTRA_QR_DATA);
|
||||
if (qrdata != null) {
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.handleQrData(qrdata);
|
||||
qrCodeHandler.handleQrData(qrdata, SecurejoinSource.Unknown, SecurejoinUiPath.Unknown);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -173,7 +175,7 @@ public class RelayListActivity extends BaseActionBarActivity
|
|||
if (requestCode == IntentIntegrator.REQUEST_CODE) {
|
||||
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
|
||||
qrCodeHandler.onScanPerformed(scanResult);
|
||||
qrCodeHandler.onScanPerformed(scanResult, SecurejoinUiPath.Unknown);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public final class FetchForegroundService extends Service {
|
|||
// we need to handle the message within 20s, and the time window may be even shorter than 20s,
|
||||
// so, use 10s to be safe.
|
||||
fetchingSynchronously = true;
|
||||
if (ApplicationContext.dcAccounts.backgroundFetch(10)) {
|
||||
if (ApplicationContext.getDcAccounts().backgroundFetch(10)) {
|
||||
// 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.
|
||||
|
|
@ -92,7 +92,7 @@ public final class FetchForegroundService extends Service {
|
|||
|
||||
Util.runOnAnyBackgroundThread(() -> {
|
||||
Log.i(TAG, "Starting fetch");
|
||||
if (!ApplicationContext.dcAccounts.backgroundFetch(300)) { // as startForeground() was called, there is time
|
||||
if (!ApplicationContext.getDcAccounts().backgroundFetch(300)) { // as startForeground() was called, there is time
|
||||
FetchForegroundService.stop(this);
|
||||
} // else we stop FetchForegroundService on DC_EVENT_ACCOUNTS_BACKGROUND_FETCH_DONE
|
||||
});
|
||||
|
|
@ -111,7 +111,7 @@ public final class FetchForegroundService extends Service {
|
|||
|
||||
@Override
|
||||
public void onTimeout(int startId, int fgsType) {
|
||||
ApplicationContext.dcAccounts.stopBackgroundFetch();
|
||||
ApplicationContext.getDcAccounts().stopBackgroundFetch();
|
||||
stopSelf();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ import org.thoughtcrime.securesms.R;
|
|||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.qr.QrCodeHandler;
|
||||
|
||||
import chat.delta.rpc.types.SecurejoinSource;
|
||||
|
||||
public class LongClickCopySpan extends ClickableSpan {
|
||||
private static final String PREFIX_MAILTO = "mailto:";
|
||||
private static final String PREFIX_TEL = "tel:";
|
||||
|
|
@ -80,13 +82,13 @@ public class LongClickCopySpan extends ClickableSpan {
|
|||
}
|
||||
} else if (Util.isInviteURL(url)) {
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler((Activity) widget.getContext());
|
||||
qrCodeHandler.handleQrData(url);
|
||||
qrCodeHandler.handleQrData(url, SecurejoinSource.InternalLink, null);
|
||||
} else {
|
||||
Activity activity = (Activity) widget.getContext();
|
||||
DcContext dcContext = DcHelper.getContext(activity);
|
||||
if (dcContext.checkQr(url).getState() == DcContext.DC_QR_PROXY) {
|
||||
QrCodeHandler qrCodeHandler = new QrCodeHandler(activity);
|
||||
qrCodeHandler.handleQrData(url);
|
||||
qrCodeHandler.handleQrData(url, null, null);
|
||||
} else {
|
||||
IntentUtils.showInBrowser(widget.getContext(), url);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,12 +12,10 @@ import androidx.annotation.NonNull;
|
|||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
|
||||
import com.b44t.messenger.DcAccounts;
|
||||
import com.b44t.messenger.DcContext;
|
||||
|
||||
import org.thoughtcrime.securesms.BuildConfig;
|
||||
import org.thoughtcrime.securesms.connect.DcHelper;
|
||||
import org.thoughtcrime.securesms.notifications.FcmReceiveService;
|
||||
import org.thoughtcrime.securesms.preferences.widgets.NotificationPrivacyPreference;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -46,6 +44,7 @@ public class Prefs {
|
|||
public static final String SCREEN_SECURITY_PREF = "pref_screen_security";
|
||||
private static final String ENTER_SENDS_PREF = "pref_enter_sends";
|
||||
private static final String PROMPTED_DOZE_MSG_ID_PREF = "pref_prompted_doze_msg_id";
|
||||
private static final String STATS_DEVICE_MSG_ID_PREF = "pref_stats_device_msg_id";
|
||||
public static final String DOZE_ASKED_DIRECTLY = "pref_doze_asked_directly";
|
||||
public static final String ASKED_FOR_NOTIFICATION_PERMISSION= "pref_asked_for_notification_permission";
|
||||
private static final String IN_THREAD_NOTIFICATION_PREF = "pref_key_inthread_notifications";
|
||||
|
|
@ -154,6 +153,14 @@ public class Prefs {
|
|||
return getIntegerPreference(context, PROMPTED_DOZE_MSG_ID_PREF, 0);
|
||||
}
|
||||
|
||||
public static void setStatsDeviceMsgId(Context context, int msg_id) {
|
||||
setIntegerPreference(context, STATS_DEVICE_MSG_ID_PREF, msg_id);
|
||||
}
|
||||
|
||||
public static int getStatsDeviceMsgId(Context context) {
|
||||
return getIntegerPreference(context, STATS_DEVICE_MSG_ID_PREF, 0);
|
||||
}
|
||||
|
||||
public static boolean isPushEnabled(Context context) {
|
||||
return BuildConfig.USE_PLAY_SERVICES;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
android:scrollHorizontally="true"
|
||||
android:inputType="textImeMultiLine|textNoSuggestions|textMultiLine"
|
||||
android:textSize="12sp"
|
||||
android:saveEnabled="false"
|
||||
tools:ignore="UnusedAttribute,SmallSp"/>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
|
|
|||
|
|
@ -175,6 +175,7 @@
|
|||
<string name="pref_led_color">لون ضوء التنبيه LED</string>
|
||||
<string name="pref_sound">الصوت</string>
|
||||
<string name="pref_privacy">الخصوصية</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">الدردشة والوسائط</string>
|
||||
<string name="pref_system_default">افتراضيات النظام</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
|
|||
|
|
@ -295,6 +295,7 @@
|
|||
<string name="pref_sound">Səs</string>
|
||||
<string name="pref_silent">Səssiz</string>
|
||||
<string name="pref_privacy">Gizlilik</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Çatlar və faillar</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
<string name="pref_light_theme">Açıq</string>
|
||||
|
|
|
|||
|
|
@ -304,7 +304,7 @@
|
|||
</plurals>
|
||||
<string name="file_saved_to">Файлът е записан в \"%1$s\"</string>
|
||||
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Да бъде ли изтрито %d съобщение?</item>
|
||||
<item quantity="other">Да бъдат ли изтрити %d съобщения?</item>
|
||||
|
|
@ -373,6 +373,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Пощенски списък</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Промените по имена и изображения на пощенски списъци са приложими само за това устройство.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -490,7 +491,7 @@
|
|||
<string name="onboarding_create_instant_account">Създаване на нов профил</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Вече имам профил</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Вход в класическа електронна поща</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Вашият профил</string>
|
||||
|
|
@ -589,6 +590,7 @@
|
|||
<string name="pref_sound">Звук</string>
|
||||
<string name="pref_silent">Без звук</string>
|
||||
<string name="pref_privacy">Поверителност</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Чатове и медийни файлове</string>
|
||||
<string name="pref_system_default">Подразбиращото се за системата</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -807,13 +809,14 @@
|
|||
<string name="qrshow_join_contact_hint">Сканирайте, за да чатите с %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Няма връзка към Интернет, не може да бъде извършена настройка чрез QR код.</string>
|
||||
<string name="qraccount_ask_create_and_login">Да бъде ли създаден нов адрес за електронна поща на \"%1$s\" и да бъде ли осъществено влизане там?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Да бъде ли създаден нов адрес за електронна поща в \"%1$s\" и да бъде ли осъществено влизане там?\n\nВашият съществуващ акаунт няма да бъде изтрит. Използвайте опцията \"Превключване към друг акаунт\", за да превключвате между Вашите акаунти.</string>
|
||||
<string name="set_name_and_avatar_explain">Задайте име, което Вашите контакти ще разпознават. Можете също да установите изображение за профил.</string>
|
||||
<string name="please_enter_name">Моля, въведете име.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Не може да бъде създаден нов акаунт със сканирания QR код.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Желаете ли да влезете в \"%1$s\"?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Желаете ли да влезете в \"%1$s\"?\n\nСъщестуващият Ви акаунт няма да бъде изтрит. Превключвайте между акаунтите си чрез \"Превключване към друг акаунт\".</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s Ви покани да се присъедините към тази група.\n\nИзчаква се устройството на %2$s да отговори…</string>
|
||||
|
|
|
|||
|
|
@ -322,9 +322,13 @@
|
|||
|
||||
<string name="file_saved_to">فایل من «%1$s» زفت وابی.</string>
|
||||
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<plurals name="ask_delete_messages">
|
||||
<item quantity="one">اخۊی %d پیوم پاک بۊ؟</item>
|
||||
<item quantity="other">اخۊی %d پیوم پاک بۊ؟</item>
|
||||
</plurals>
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">êxuy %d payom pāk bu?</item>
|
||||
<item quantity="one">اخۊی %d پیوم پاک بۊ؟</item>
|
||||
<item quantity="other">اخۊی %d پیوم پاک بۊ؟</item>
|
||||
</plurals>
|
||||
<string name="ask_start_chat_with">گوفت وو لوفت وا %1$s؟</string>
|
||||
|
|
|
|||
|
|
@ -409,7 +409,7 @@
|
|||
<item quantity="one">¿Esborra %d missatge de tots els teus dispositius?</item>
|
||||
<item quantity="other">¿Esborra %d missatges de tots els teus dispositius?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Vols esborrar %d missatge?</item>
|
||||
<item quantity="other">Voleu esborrar %d missatges?</item>
|
||||
|
|
@ -483,6 +483,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Llista de correu</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Els canvis al nom i la imatge de la llista de correu només s\'aplicaran en aquest dispositiu.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -611,7 +612,7 @@
|
|||
<string name="onboarding_create_instant_account">Crea un perfil nou</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Ja tinc un perfil</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Inici de sessió correu-e clàssic</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">El vostre perfil</string>
|
||||
|
|
@ -734,6 +735,7 @@
|
|||
<string name="pref_sound">So</string>
|
||||
<string name="pref_silent">Silenci</string>
|
||||
<string name="pref_privacy">Privacitat</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Xats i multimèdia</string>
|
||||
<string name="pref_system_default">Per defecte del sistema</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -967,13 +969,14 @@
|
|||
<string name="qrshow_join_contact_hint">Escanegeu això per establir contacte amb %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">No hi ha connexió a internet, no es pot fer la configuració amb codi QR.</string>
|
||||
<string name="qraccount_ask_create_and_login">Voleu crear un perfil nou a «%1$s» i iniciar sessió allà?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Voleu crear un perfil nou a «%1$s» i iniciar-hi sessió?\n\nEl vostre perfil existent no s\'esborrarà. Useu l\'element «Canvia el perfil» per a canviar entre els vostres perfils.</string>
|
||||
<string name="set_name_and_avatar_explain">Indiqueu un nom que els vostres contactes puguin reconèixer. També podeu establir una imatge de perfil.</string>
|
||||
<string name="please_enter_name">Introduïu un nom</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">El codi QR escanejat no es pot usar per a configurar un perfil nou.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Voleu iniciar sessió a «%1$s»?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Voleu iniciar «%1$s»?\n\nNo s\'esborrarà el perfil existent. Useu l\'element «Canvia el perfil» per a canviar entre els vostres perfils.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s us ha convidat a unir-vos a aquest grup.\n\nS\'està esperant el dispositiu de %2$s per a respondre...</string>
|
||||
|
|
|
|||
|
|
@ -366,6 +366,7 @@
|
|||
<string name="pref_sound">دەنگ</string>
|
||||
<string name="pref_silent">بێدەنگ</string>
|
||||
<string name="pref_privacy">پاراستنی تاکەکەسی</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">وتووێژ و ڕەنگاڵەکان</string>
|
||||
<string name="pref_system_default">بنەڕەتی سیستەم</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<string name="app_name">Delta Chat</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="cancel">Zrušit</string>
|
||||
<string name="clear_search">Zrušit vyhledávání</string>
|
||||
<string name="clear_search">Vyčistit vyhledávání</string>
|
||||
<!-- a noun, used on a button, short for "show link" -->
|
||||
<string name="link">Odkaz</string>
|
||||
<!-- "scan" in the meaning of "scan QR code" -->
|
||||
|
|
@ -34,6 +34,8 @@
|
|||
<string name="update">Aktualizovat</string>
|
||||
<string name="emoji">Emoji</string>
|
||||
<string name="attachment">Příloha</string>
|
||||
<!-- the placeholder will be replaced by the name of the image or file to attach -->
|
||||
<string name="ask_attach">Připojit \"%1$s\"?</string>
|
||||
<string name="back">Zpět</string>
|
||||
<string name="close">Zavřít</string>
|
||||
<string name="close_window">Zavřít okno</string>
|
||||
|
|
@ -58,8 +60,10 @@
|
|||
<string name="media">Multimédia</string>
|
||||
<string name="apps_and_media">Aplikace a multimédia</string>
|
||||
<string name="profile">Profil</string>
|
||||
<string name="all_profiles">Všechny profily</string>
|
||||
<string name="current_profile">Aktuální profil</string>
|
||||
<string name="main_menu">Hlavní nabídka</string>
|
||||
<string name="start_chat">Chatovat</string>
|
||||
<string name="start_chat">Začít chatovat</string>
|
||||
<string name="show_full_message">Zobrazit celou zprávu…</string>
|
||||
<!-- Stay short here, say ~16 characters. The source string could also be "All Read", maybe that hint can make translations easier :) -->
|
||||
<string name="mark_all_as_read">Označit vše jako přečtené</string>
|
||||
|
|
@ -94,6 +98,8 @@
|
|||
<string name="no_app_to_handle_data">Aplikace pro tento typ dat nenalezena.</string>
|
||||
<string name="no_browser_installed">Není nainstalován žádný prohlížeč.</string>
|
||||
<string name="file_not_found">Nelze najít %1$s.</string>
|
||||
<!-- the placeholder will be replaced by the name of a file -->
|
||||
<string name="cannot_save_file">Nelze uložit %1$s</string>
|
||||
<string name="copied_to_clipboard">Zkopírováno do schránky.</string>
|
||||
<string name="contacts_headline">Kontakty</string>
|
||||
<string name="email_address">E-mailová adresa</string>
|
||||
|
|
@ -113,7 +119,21 @@
|
|||
<string name="last_seen_at">Naposledy viděni v %1$s</string>
|
||||
<!-- Refers to the time a contact was last seen. Shown below contact name in the profile. The placeholder will be replaced by a relative point in time as "3 minutes ago" (see https://momentjs.com for more examples and languages)-->
|
||||
<string name="last_seen_relative">Naposledy viděni %1$s</string>
|
||||
<string name="last_seen_unknown">Naposledy viděni: Neznámo</string>
|
||||
<string name="last_seen_unknown">Naposledy viděno: Neznámý</string>
|
||||
<!-- Shown in call duration. Avoid abbreviations, prefer full words ex. "N seconds". -->
|
||||
<plurals name="n_seconds_ext">
|
||||
<item quantity="one">%d druhý</item>
|
||||
<item quantity="few">%d sekundy</item>
|
||||
<item quantity="many">%d sekundy</item>
|
||||
<item quantity="other">%d vteřny</item>
|
||||
</plurals>
|
||||
<!-- Shown in call duration. Avoid abbreviations, prefer full words ex. "N minutes". -->
|
||||
<plurals name="n_minutes_ext">
|
||||
<item quantity="one">%d minuta</item>
|
||||
<item quantity="few">%d minuty</item>
|
||||
<item quantity="many">%d minuty</item>
|
||||
<item quantity="other">%d minuty</item>
|
||||
</plurals>
|
||||
<!-- Shown beside messages that are "N minutes old". Prefer short strings, or well-known abbreviations. -->
|
||||
<plurals name="n_minutes">
|
||||
<item quantity="one">%d min.</item>
|
||||
|
|
@ -172,6 +192,7 @@
|
|||
<item quantity="many">%d vybráno</item>
|
||||
<item quantity="other">%d vybráno</item>
|
||||
</plurals>
|
||||
<string name="selected_colon">Vybráno:</string>
|
||||
<string name="self">Já</string>
|
||||
<string name="draft">Rozepsané</string>
|
||||
<string name="image">Obrázek</string>
|
||||
|
|
@ -254,8 +275,21 @@
|
|||
<!-- "Chat" is a verb here, "Message to" would also fit. the string might be used in the "New Chat" screen above the contact list -->
|
||||
<string name="chat_with">Chatovat s...</string>
|
||||
<string name="clone_chat">Klonovat chat</string>
|
||||
<!-- consider keeping the term "channel" as in WhatsApp or Telegram -->
|
||||
<string name="channel">Kanál</string>
|
||||
<!-- consider keeping the term "channel" as in WhatsApp or Telegram -->
|
||||
<string name="channels">Kanály</string>
|
||||
<!-- consider keeping the term "channel" as in WhatsApp or Telegram -->
|
||||
<string name="new_channel">Nový kanál</string>
|
||||
<!-- deprecated -->
|
||||
<string name="add_recipients">Přidat příjemce</string>
|
||||
<!-- consider keeping the term "channel" as in WhatsApp or Telegram -->
|
||||
<string name="channel_name">Název kanálu</string>
|
||||
<string name="email">E-mail</string>
|
||||
<!-- "New" as in "Create New Email"; shown together with "New Group" and "New Channel" -->
|
||||
<string name="new_email">Nový e-mail</string>
|
||||
<!-- the "Subject" of an email, use the term common in classic email apps -->
|
||||
<string name="subject">Předmět</string>
|
||||
<string name="menu_send">Odeslat</string>
|
||||
<string name="menu_toggle_keyboard">Přepnout emoji klávesnici</string>
|
||||
<string name="menu_edit_group">Upravit skupinu</string>
|
||||
|
|
@ -265,6 +299,7 @@
|
|||
<string name="menu_unarchive_chat">Obnovit chat z archivu</string>
|
||||
<string name="menu_add_attachment">Přidat přílohu</string>
|
||||
<string name="menu_leave_group">Opustit skupinu</string>
|
||||
<string name="menu_leave_channel">Opustit kanál</string>
|
||||
<string name="menu_delete_chat">Smazat chat</string>
|
||||
<!-- Command to delete all messages in a chat. The chat itself will not be deleted but will be empty afterwards, so make sure to be different from "Delete Chat" here. "Clear" is a verb here, "Empty Chat" would also be fine (eg. in German "Chat leeren") -->
|
||||
<string name="clear_chat">Vyprázdnit chat</string>
|
||||
|
|
@ -349,6 +384,8 @@
|
|||
<!-- Menu item beside an app/chat that adds an icon to the system's home screen. If the user taps that icon, the app/chat is opened directly. -->
|
||||
<string name="add_to_home_screen">Přidat na domovskou obrazovku</string>
|
||||
<string name="donate">Darovat</string>
|
||||
<string name="donate_device_msg">❤️ Vypadá to, že se vám Delta Chat líbí! \n\n Prosím, zvažte možnost darování, abyste pomohli zajistit, že Delta Chat zůstane zdarma pro všechny. \n\n Ačkoli je Delta Chat zdarma a má otevřený zdrojový kód, vývoj stojí peníze. Pomozte nám udržet Delta Chat nezávislý a v budoucnu jej udělat ještě úžasnějším. \n\n https://delta.chat/donate</string>
|
||||
|
||||
<string name="mute_for_one_hour">Ztlumit na 1 hodinu</string>
|
||||
<string name="mute_for_eight_hours">Ztlumit na 8 hodin</string>
|
||||
<string name="mute_for_one_day">Ztlumit na 1 den</string>
|
||||
|
|
@ -369,6 +406,23 @@
|
|||
</plurals>
|
||||
<string name="file_saved_to">Soubor uložen do \"%1$s\".</string>
|
||||
|
||||
<!-- the action "to call someone", used as a tooltip for the "phone" icon. not: "the call" -->
|
||||
<string name="start_call">Hovor</string>
|
||||
<!-- the action "to answer" or to "accept" or to "pick up" a call. not: "the answer" -->
|
||||
<string name="answer_call">Zvedni</string>
|
||||
<!-- the action "to decline" a call, not: "the decline" -->
|
||||
<string name="end_call">Pokles</string>
|
||||
<string name="outgoing_call">Odchozí hovor</string>
|
||||
<string name="incoming_call">Příchozí hovor</string>
|
||||
<string name="declined_call">Odmítnutý hovor</string>
|
||||
<string name="canceled_call">Zrušený hovor</string>
|
||||
<string name="missed_call">Zmeškaný hovor</string>
|
||||
<!-- the first placeholder will be replaced by a date, the second placeholder by duration, example: "Thu, 08:12 pm, 2 minutes" -->
|
||||
<string name="call_date_and_duration">%1$s, %2$s</string>
|
||||
|
||||
<!-- get confirmations -->
|
||||
<!-- confirmation for leaving groups or channels. If a subject is needed, "Are you sure you want to leave the chat?" would work as well -->
|
||||
<string name="ask_leave_group">Jste si jistý, že chcete odejít?</string>
|
||||
<plurals name="ask_delete_chat">
|
||||
<item quantity="one">Smazat %d chat ze všech vašich zařízení?</item>
|
||||
<item quantity="few">Smazat %d chaty ze všech vašich zařízení?</item>
|
||||
|
|
@ -383,7 +437,7 @@
|
|||
<item quantity="many">Smazat %d zpráv ze všech Vašich zařízení?</item>
|
||||
<item quantity="other">Smazat %d zpráv ze všech vašich zařízení?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Smazat %d zprávu?</item>
|
||||
<item quantity="few">Smazat %d zprávy?</item>
|
||||
|
|
@ -400,6 +454,8 @@
|
|||
<string name="ask_start_chat_with">Přejete si chatovat s uživatelem %1$s?</string>
|
||||
<!-- %1$s is replaced by a comma-separated list of names -->
|
||||
<string name="ask_remove_members">Přejete si odstranit uživatele %1$s ze skupiny?</string>
|
||||
<!-- %1$s is replaced by a comma-separated list of names -->
|
||||
<string name="ask_remove_from_channel">Odstranit %1$s z kanálu?</string>
|
||||
<string name="open_url_confirmation">Přejete si otevřít tento odkaz?</string>
|
||||
|
||||
|
||||
|
|
@ -433,6 +489,8 @@
|
|||
</plurals>
|
||||
<!-- The placeholder will be replaced by the name of the recipient in a one-to-one chat. -->
|
||||
<string name="chat_new_one_to_one_hint">Poslat zprávu uživateli %1$s.</string>
|
||||
<!-- consider keeping the term "channel" as in WhatsApp or Telegram -->
|
||||
<string name="chat_new_channel_hint">Kanály jsou nástrojem pro vysílání zpráv typu (jeden-k-mnoha).</string>
|
||||
<string name="chat_new_group_hint">Ostatní tuto skupinu uvidí až poté, co odešlete první zprávu.</string>
|
||||
<string name="chat_record_slide_to_cancel">Zrušit tahem</string>
|
||||
<string name="chat_record_explain">Pro nahrání hlasové zprávy stiskněte a držte ikonu mikrofonu; uvolněte pro odeslání.</string>
|
||||
|
|
@ -442,6 +500,7 @@
|
|||
<string name="chat_input_placeholder">Zpráva</string>
|
||||
<string name="chat_archived_label">Archivováno</string>
|
||||
<string name="chat_request_label">Žádost</string>
|
||||
<string name="chat_request_label_explain">Zahrnutí požadavků do čítačů a oznámení</string>
|
||||
<string name="chat_no_messages">Žádné zprávy.</string>
|
||||
<string name="chat_self_talk_subtitle">Zprávy poslané sobě</string>
|
||||
<string name="archive_empty_hint">Zde se zobrazí archivované chaty.</string>
|
||||
|
|
@ -460,6 +519,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">E-mailový seznam</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Změny názvu a obrázku e-mailového seznamu se projeví pouze na tomto zařízení.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -588,7 +648,7 @@
|
|||
<string name="onboarding_create_instant_account">Vytvořit nový profil</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Již mám svůj profil</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Přihlášení ke klasickému e-mailu</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Váš profil</string>
|
||||
|
|
@ -613,6 +673,7 @@
|
|||
<string name="welcome_chat_over_email">Zabezpečený decentralizovaný chat</string>
|
||||
<string name="scan_invitation_code">Naskenovat kód pozvánky</string>
|
||||
<string name="login_title">Přihlaš se</string>
|
||||
<string name="login_advanced_hint">Toto přihlášení je určeno pro pokročilé uživatele: \n\n Nepoužívejte adresu, kterou používáte v jiné aplikaci. \n\n- Klasický e-mailový server umožňuje chatování bez koncového šifrování označeného ikonou pošty.</string>
|
||||
<string name="login_inbox">Příchozí</string>
|
||||
<string name="login_imap_login">IMAP uživatelské jméno</string>
|
||||
<string name="login_imap_server">IMAP server</string>
|
||||
|
|
@ -637,6 +698,19 @@
|
|||
<string name="proxy_use_proxy_confirm">Přejete si použít proxy server \"%1$s\"?</string>
|
||||
<string name="proxy_share_explain">Vaši přátele si mohou tento proxy server přidat naskenováním tohoto QR kódu.</string>
|
||||
<string name="proxy_share_link">Sdílet odkaz</string>
|
||||
<string name="proxy_enabled">Proxy zapnuto</string>
|
||||
<string name="proxy_enabled_hint">Používáte proxy server. Pokud máte potíže s připojením, zkuste použít jiný proxy server.</string>
|
||||
<!-- "Relay" refers to the relay servers used; please chose a common term in your language, no need to be literal. If in doubt, stay with "Relay" -->
|
||||
<string name="transports">Přenosy</string>
|
||||
<string name="add_transport">Přidat vysílání</string>
|
||||
<string name="remove_transport">Odstranit vysílání</string>
|
||||
<string name="edit_transport">Upravit vysílání</string>
|
||||
<!-- shown if a QR code was scanned that can be used as a relay -->
|
||||
<string name="confirm_add_transport">Přidat toto vysílání?</string>
|
||||
<string name="invalid_transport_qr">Naskenovaný kód QR neobsahuje platné vysílání.</string>
|
||||
<!-- placeholder will be replaced by a relay server name -->
|
||||
<string name="confirm_remove_transport">Odstranit vysílání \"%1$s\"? \n\n Vaše kontakty se s vámi spojí pouze tehdy, pokud jste je předtím kontaktovali prostřednictvím jiného vysílání. \n\n Pokud máte pochybnosti, odstraňte spojení později.</string>
|
||||
|
||||
<string name="login_certificate_checks">Kontroly certifikátu</string>
|
||||
<string name="login_error_mail">Prosím, zadejte platnou e-mailovou adresu</string>
|
||||
<string name="login_error_server">Prosím, zadejte platný server / IP adresu</string>
|
||||
|
|
@ -711,6 +785,7 @@
|
|||
<string name="pref_sound">Zvuk</string>
|
||||
<string name="pref_silent">Ticho</string>
|
||||
<string name="pref_privacy">Soukromí</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Chaty a multimédia</string>
|
||||
<string name="pref_system_default">Podle systému</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -738,6 +813,7 @@
|
|||
<string name="pref_backup">Záloha</string>
|
||||
<string name="pref_backup_explain">Zálohovat chaty na externí úložiště</string>
|
||||
<string name="pref_backup_export_explain">Záloha vám pomůže s novou instalací na tomto či jiném zařízení.\n\nZáloha bude obsahovat všechny zprávy, kontakty a chaty, a nastavení automatického koncového šifrování. Soubor se zálohou uchovávejte na bezpečném místě, nebo jej co nejdříve smažte.</string>
|
||||
<string name="pref_backup_export_this">Exportovat tento profil</string>
|
||||
<!-- the placeholder will be replaced by the number of profiles to export; the number is always larger than 1 -->
|
||||
<string name="pref_backup_export_all">Exportovat všech %1$d profilů</string>
|
||||
<string name="pref_backup_export_start_button">Spustit zálohu</string>
|
||||
|
|
@ -747,6 +823,10 @@
|
|||
<string name="pref_background_btn_default">Použít výchozí obrázek</string>
|
||||
<string name="pref_background_btn_gallery">Vybrat z galerie</string>
|
||||
<string name="pref_imap_folder_warn_disable_defaults">Při změně této volby se ujistěte, že váš server a ostatní klientské aplikace mají odpovídající nastavení.\n\nJinak může vše přestat fungovat.</string>
|
||||
<!-- No need to be literal here, you can also use "Use Multiple Devices", "Support Multiple Devices" or other fitting terms. However, it should fit to the wording or your language at https://delta.chat/help -->
|
||||
<string name="pref_multidevice">Režim pro více zařízení</string>
|
||||
<string name="pref_multidevice_explain">Synchronizujte zprávy s ostatními zařízeními. Automaticky povoleno při přidání druhého zařízení</string>
|
||||
<string name="pref_multidevice_change_warn">Při použití stejného profilu na více zařízeních musí být povolen \"režim více zařízení\". Toto nastavení zakažte pouze v případě, že jste tento profil odstranili ze všech ostatních zařízení. \n\n Zakázání režimu \"režim více zařízení\" při používání profilu na více zařízeních bude mít za následek zmeškané zprávy a další problémy.</string>
|
||||
<string name="pref_auto_folder_moves">Automaticky přesouvat do složky DeltaChat </string>
|
||||
<string name="pref_only_fetch_mvbox_title">Načítat pouze ze složky DeltaChat</string>
|
||||
<string name="pref_show_emails">Zobrazovat běžné e-maily</string>
|
||||
|
|
@ -754,6 +834,7 @@
|
|||
<string name="pref_show_emails_accepted_contacts">Pro přijaté kontakty</string>
|
||||
<string name="pref_show_emails_all">Vše</string>
|
||||
<string name="pref_experimental_features">Experimentální funkce </string>
|
||||
<string name="pref_experimental_features_explain">Tyto funkce mohou být nestabilní a mohou být změněny nebo odstraněny.</string>
|
||||
<string name="pref_on_demand_location_streaming">Streamování polohy na vyžádání</string>
|
||||
<string name="pref_background_default">Výchozí obrázek</string>
|
||||
<string name="pref_background_default_color">Výchozí barva</string>
|
||||
|
|
@ -770,6 +851,7 @@
|
|||
<string name="n_bytes_message">%1$s zpráva</string>
|
||||
<!-- %1$s will be replaced by human-readable date and time -->
|
||||
<string name="download_max_available_until">Stahovat dostupné maximum do %1$s</string>
|
||||
<string name="select_profile">Vyberte profil</string>
|
||||
<string name="profile_image_select">Vybrat profilový obrázek</string>
|
||||
<string name="select_your_new_profile_image">Vyberte si svůj nový profilový obrázek</string>
|
||||
<string name="profile_image_delete">Smazat profilový obrázek</string>
|
||||
|
|
@ -778,6 +860,9 @@
|
|||
<string name="disable_imap_idle">Zakázat IMAP IDLE</string>
|
||||
<string name="disable_imap_idle_explain">Nepoužívat rozšíření IMAP IDLE ani když jej server podporuje. Zapnutí této volby zvýší prodlevu při získávání zpráv, použijte ji jen pro testování.</string>
|
||||
<string name="send_stats_to_devs">Odeslat statistiky vývojářům Delta Chatu</string>
|
||||
<string name="stats_msg_body">Příloha obsahuje anonymní statistiky používání, které nám pomáhají zlepšovat službu Delta Chat. Děkujeme vám!</string>
|
||||
|
||||
|
||||
<!-- Emoji picker and categories -->
|
||||
<string name="emoji_search_results">Výsledky hledání</string>
|
||||
<string name="emoji_not_found">Emoji nenalezeno</string>
|
||||
|
|
@ -844,6 +929,11 @@
|
|||
<string name="remove_member_by_other">Člen %1$s byl odebrán uživatelem %2$s.</string>
|
||||
<!-- %1$s will be replaced by name of the contact removed from the group; this string is used when it's unclear who did the action -->
|
||||
<string name="member_x_removed">Člen %1$s byl odebrán.</string>
|
||||
<!-- "left" in the meaning of "exited". -->
|
||||
<string name="group_left_by_you">Opustili jste skupinu.</string>
|
||||
<!-- "left" in the meaning of "exited". -->
|
||||
<string name="channel_left_by_you">Opustili jste kanál.</string>
|
||||
<string name="you_joined_the_channel">Připojili jste se ke kanálu.</string>
|
||||
<!-- "left" in the meaning of "exited"; %1$s will be replaced by name of the contact leaving the group -->
|
||||
<string name="group_left_by_other">Uživatel %1$s opustil skupinu.</string>
|
||||
<string name="group_image_deleted_by_you">Smazali jste obrázek skupiny.</string>
|
||||
|
|
@ -872,6 +962,9 @@
|
|||
<string name="ephemeral_timer_1_week_by_you">Nastavili jste časovač mizejících zpráv na 1 týden.</string>
|
||||
<!-- %1$s will be replaced by name of the contact -->
|
||||
<string name="ephemeral_timer_1_week_by_other">Uživatel %1$s změnil časovač mizejících zpráv na 1 týden.</string>
|
||||
<string name="ephemeral_timer_1_year_by_you">Časovač mizejících zpráv jste nastavili na 1 rok.</string>
|
||||
<!-- %1$s will be replaced by name of the contact -->
|
||||
<string name="ephemeral_timer_1_year_by_other">Časovač zmizení zpráv nastavený na 1 rok pomocí %1$s.</string>
|
||||
<!-- %1$s will be replaced by the number of minutes (always >1) the timer is set to -->
|
||||
<string name="ephemeral_timer_minutes_by_you">Nastavili jste časovač mizejících zpráv na %1$s minut.</string>
|
||||
<!-- %1$s will be replaced by the number of minutes (always >1) the timer is set to, %2$s will be replaced by name of the contact -->
|
||||
|
|
@ -888,6 +981,7 @@
|
|||
<string name="ephemeral_timer_weeks_by_you">Samomazací zprávy vyprší po %1$s týdnech ode mě.</string>
|
||||
<!-- %1$s will be replaced by the number of weeks (always >1) the timer is set to, %2$s will be replaced by name of the contact -->
|
||||
<string name="ephemeral_timer_weeks_by_other">Uživatel %2$s změnil časovač mizejících zpráv na %1$s týdnů.</string>
|
||||
<string name="chat_unencrypted_explanation">Zprávy v tomto chatu používají klasický e-mail a nejsou šifrovány end-to-end.</string>
|
||||
<string name="chat_protection_enabled_tap_to_learn_more">Nyní je garantováno koncové šifrování vašich zpráv. Stiskněte pro více informací.</string>
|
||||
<string name="chat_protection_enabled_explanation">Nyní je garantováno, že všechny zprávy v tomto chatu jsou koncově šifrovány.\n\nKoncové šifrování zajišťuje soukromí mezi vámi a vašimi kontakty. Nedokáže je přečíst ani váš poskytovatel e-mailu.</string>
|
||||
<string name="invalid_unencrypted_tap_to_learn_more">⚠️%1$s vyžaduje koncové šifrování, které pro tento chat ještě není nastaveno. Stiskněte pro více informací. </string>
|
||||
|
|
@ -912,6 +1006,7 @@
|
|||
<string name="qrscan_hint_desktop">Přibližte QR kód ke kameře</string>
|
||||
<string name="qrscan_failed">QR kód nelze přečíst</string>
|
||||
<string name="qrscan_ask_join_group">Přejete si přidat ke skupině \"%1$s\"?</string>
|
||||
<string name="qrscan_ask_join_channel">Chcete se připojit ke kanálu \"%1$s\"?</string>
|
||||
<string name="qrscan_fingerprint_mismatch">Rozpoznaný otisk uživatele %1$s neodpovídá jeho poslednímu otisku.</string>
|
||||
<string name="qrscan_no_addr_found">Tento QR kód obsahuje otisk, ale žádný e-mail.\n\nK ověření nezávislou cestou nejprve vytvořte šifrované připojení k příjemci.</string>
|
||||
<string name="qrscan_contains_text">Text z QR kódu:\n\n%1$s</string>
|
||||
|
|
@ -919,6 +1014,7 @@
|
|||
<string name="qrscan_fingerprint_label">Otisk</string>
|
||||
<string name="withdraw_verifycontact_explain">Tento QR kód mohou ostatní uživatelé použít, aby vás kontaktovali.\n\nMůžete také vygenerovat nový, čímž dosavadní QR kód či odkaz s pozvánkou zneplatníte.</string>
|
||||
<string name="withdraw_verifygroup_explain">Tento QR kód mohou ostatní uživatelé použít k připojení ke skupině \"%1$s\".\n\nMůžete také vygenerovat nový, čímž dosavadní QR kód či odkaz s pozvánkou zneplatníte.</string>
|
||||
<string name="withdraw_joinbroadcast_explain">Tento QR kód mohou ostatní naskenovat a připojit se ke kanálu \"%1$s\".\n\n Můžete jej resetovat, takže stávající QR kód nebo odkaz na pozvánku již nebude fungovat.</string>
|
||||
<string name="withdraw_qr_code">Vygenerovat nový QR kód</string>
|
||||
<string name="revive_verifycontact_explain">Tento QR kód již není aktivní, protože byl vygenerován nový.</string>
|
||||
<string name="revive_qr_code">Aktivovat QR kód</string>
|
||||
|
|
@ -929,21 +1025,25 @@
|
|||
<string name="qrshow_join_group_title">QR kód s pozvánkou</string>
|
||||
<!-- This text is shown inside the "QR code card" with very limited space; please formulate the text as short as possible therefore. The placeholder will be replaced by the group name, eg. "Scan to join group \"Testing group\"" -->
|
||||
<string name="qrshow_join_group_hint">Naskenujte k připojení ke skupině \"%1$s\"</string>
|
||||
<string name="qrshow_join_channel_hint">Skenování pro připojení ke kanálu \"%1$s\"</string>
|
||||
<string name="qrshow_join_contact_title">QR kód s pozvánkou</string>
|
||||
<!-- This text is shown inside the "QR code card" with very limited space; please formulate the text as short as possible therefore. The placeholder will be replaced by the profile name eg. "Scan to chat with Alice" -->
|
||||
<string name="qrshow_join_contact_hint">Naskenujte k navázání spojení s uživatelem %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Žádné připojení k Internetu. Zprovoznění QR kódem nelze provést.</string>
|
||||
<string name="qraccount_ask_create_and_login">Přejete si vytvořit nový profil na \"%1$s\" a připojit se k němu?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Přejete si vytvořit nový profil na \"%1$s\" a přihlásit se k němu?\n\nVáš stávající profil nebude smazán. K přepínání mezi profily můžete využít volbu \"Přepnout profil\".</string>
|
||||
<string name="set_name_and_avatar_explain">Nastavte si jméno, podle kterého vás ostatní poznají. Můžete si také nastavit profilový obrázek.</string>
|
||||
<string name="please_enter_name">Prosím, zadejte jméno.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Tento QR kód neumožňuje nastavení nového účtu.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Přejete si přihlásit k \"%1$s\"?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Přejete si přihlásit k \"%1$s\"?\n\nVáš stávající profil nebude smazán. K přepínání mezi profily můžete využít volbu \"Přepnout profil\".</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">Uživatel %1$s vás pozval do této skupiny.\n\nČekání na odpověď od zařízení uživatele %2$s...</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_channel_started">%1$s vás pozval, abyste se připojili k tomuto kanálu. \n\n Čekáme na zařízení %2$s odpovědět...</string>
|
||||
<!-- placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_replies">Uživatel %1$s odpověděl, čekání na přidání do skupiny...</string>
|
||||
<string name="secure_join_wait">Navazování koncově šifrovaného spojení, prosím, čekejte...</string>
|
||||
|
|
@ -951,6 +1051,7 @@
|
|||
<!-- Shown in contact profile. The placeholder will be replaced by the name of the contact that introduced the contact. -->
|
||||
<string name="verified_by">Ověřeni uživatelem %1$s.</string>
|
||||
<string name="verified_by_you">Ověřeni mnou</string>
|
||||
<string name="verified_by_unknown">Představeno</string>
|
||||
<!-- deprecated -->
|
||||
<string name="verified_contact_required_explain">Aby mohlo být garantováno koncové šifrování, můžete do této skupiny přidávat pouze uživatele se zeleným zaškrtávátkem.\n\nSe svými kontakty se můžete setkat osobně a naskenovat jejich QR kód, abyste je ověřili.</string>
|
||||
<string name="mailto_dialog_header_select_chat">Vyberte chat, do kterého chcete zprávu poslat</string>
|
||||
|
|
@ -968,6 +1069,7 @@
|
|||
<string name="notify_name_only">Pouze jméno</string>
|
||||
<string name="notify_no_name_or_message">Ani jméno ani zpráva</string>
|
||||
<string name="notifications_disabled">Oznámení vypnuta</string>
|
||||
<string name="unreliable_bg_notifications">Povolení možnosti \"Vynutit připojení na pozadí\" pro spolehlivá oznámení</string>
|
||||
<string name="new_messages">Nové zprávy</string>
|
||||
<!-- Body text for a generic "New messages" notification. Shown if we do not have more information about a new messages. Note, that the string is also referenced at https://github.com/deltachat/notifiers -->
|
||||
<string name="new_messages_body">Máte nové zprávy</string>
|
||||
|
|
@ -1114,4 +1216,6 @@
|
|||
<string name="perm_enable_bg_reminder_title">Stiskem nastavíte přijímání zpráv, když je aplikace Delta Chat na pozadí.</string>
|
||||
<string name="perm_enable_bg_already_done">Přijímání zpráv na pozadí jste již aplikaci Delta Chat povolili.\n\nV případě, že vám zprávy na pozadí stále nechodí, prosím zkontrolujte svá systémová nastavení.</string>
|
||||
|
||||
</resources>
|
||||
<!-- device messages for updates -->
|
||||
<string name="update_2_0">Co je nového? \n\n💯 Koncové šifrování je nyní spolehlivé a navždy. Visací zámky 🔒 jsou pryč! \n\n✉️ Klasické e-maily bez koncového šifrování jsou označeny symbolem písmene \n\n😻 Nová vylepšená profilová obrazovka pro všechny kontakty \n\n🔲 Nové tlačítko pro rychlý přístup k aplikacím používaným v chatu \n\n❤️ Přispějte nám, abychom zůstali nezávislí a mohli pokračovat ve vylepšování: %1$s</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -242,7 +242,11 @@
|
|||
</plurals>
|
||||
<string name="file_saved_to">Fil gemt til \"%1$s\".</string>
|
||||
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<plurals name="ask_delete_messages">
|
||||
<item quantity="one">Slet %d besked?</item>
|
||||
<item quantity="other">Slet %d beskeder?</item>
|
||||
</plurals>
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Slet %d besked?</item>
|
||||
<item quantity="other">Slet %d beskeder?</item>
|
||||
|
|
@ -426,6 +430,7 @@
|
|||
<string name="pref_sound">Lyd</string>
|
||||
<string name="pref_silent">Stille</string>
|
||||
<string name="pref_privacy">Privatliv</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Samtaler og medie</string>
|
||||
<string name="pref_system_default">Systemstandard</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -590,6 +595,7 @@
|
|||
<string name="qrshow_join_contact_hint">Skan dette for at indstille kontakt med %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Ingen internet forbindelse, kan ikke udføre QR kode opsætning.</string>
|
||||
<string name="qraccount_ask_create_and_login">Opret ny e-mail adresse på \"%1$s\" og log ind der?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Opret ny e-mail adresse på \"%1$s\" og log ind der?\n\nDin eksisterende konto bliver ikke slettet. Brug \"Skift konto\" for at skifte imellem dine konti.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Den skannede QR-kode kan ikke bruges til at opsætte en ny konto.</string>
|
||||
<string name="contact_verified">%1$s bekræftet.</string>
|
||||
|
|
|
|||
|
|
@ -401,16 +401,16 @@
|
|||
<!-- confirmation for leaving groups or channels. If a subject is needed, "Are you sure you want to leave the chat?" would work as well -->
|
||||
<string name="ask_leave_group">Diesen Chat verlassen?</string>
|
||||
<plurals name="ask_delete_chat">
|
||||
<item quantity="one">%d Chat von allen Geräten löschen?</item>
|
||||
<item quantity="other">%d Chats von allen Geräten löschen?</item>
|
||||
<item quantity="one">%d Chat löschen?</item>
|
||||
<item quantity="other">%d Chats löschen?</item>
|
||||
</plurals>
|
||||
<string name="ask_delete_named_chat">Chat \"%1$s\" von allen Geräten löschen?</string>
|
||||
<string name="ask_delete_message">Diese Nachricht von allen Geräten löschen?</string>
|
||||
<string name="ask_delete_named_chat">Chat \"%1$s\" löschen?</string>
|
||||
<string name="ask_delete_message">Diese Nachricht löschen?</string>
|
||||
<plurals name="ask_delete_messages">
|
||||
<item quantity="one">%d Nachricht von allen Geräten löschen?</item>
|
||||
<item quantity="other">%d Nachrichten von allen Geräten löschen?</item>
|
||||
<item quantity="one">%d Nachricht löschen?</item>
|
||||
<item quantity="other">%d Nachrichten löschen?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">%d Nachricht löschen?</item>
|
||||
<item quantity="other">%d Nachrichten löschen?</item>
|
||||
|
|
@ -484,6 +484,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Mailingliste</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Änderungen an Name und Bild der Mailingliste gelten nur für dieses Gerät.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -612,7 +613,7 @@
|
|||
<string name="onboarding_create_instant_account">Neues Profil erstellen</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Ich habe bereits ein Profil</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Klassische E-Mail als Relay</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Dein Profil</string>
|
||||
|
|
@ -637,7 +638,7 @@
|
|||
<string name="welcome_chat_over_email">Sicherer dezentraler Chat</string>
|
||||
<string name="scan_invitation_code">Einladungscode scannen</string>
|
||||
<string name="login_title">Login</string>
|
||||
<string name="login_advanced_hint">Für fortgeschrittene Benutzer:\n\n• Verwenden Sie kein Konto, das Sie bereits in einer anderen App nutzen.\n\n• Klassische E-Mail-Server ermöglichen Chats ohne Ende-zu-Ende-Verschlüsselung, gekennzeichnet durch ein E-Mail-Symbol.</string>
|
||||
<string name="login_advanced_hint">Für fortgeschrittene Benutzer:\n\n• Verwende keine Adresse, die du bereits in einer anderen App nutzt.\n\n• Klassische E-Mail-Server ermöglichen Chats ohne Ende-zu-Ende-Verschlüsselung, gekennzeichnet durch ein E-Mail-Symbol.</string>
|
||||
<string name="login_inbox">Posteingang</string>
|
||||
<string name="login_imap_login">IMAP-Anmeldename</string>
|
||||
<string name="login_imap_server">IMAP-Server</string>
|
||||
|
|
@ -749,6 +750,7 @@
|
|||
<string name="pref_sound">Ton</string>
|
||||
<string name="pref_silent">Leise</string>
|
||||
<string name="pref_privacy">Datenschutz</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Chats und Medien</string>
|
||||
<string name="pref_system_default">Systemstandard</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -953,7 +955,7 @@
|
|||
|
||||
<string name="devicemsg_self_deleted">Du hast den Chat \"Gespeicherte Nachrichten\" gelöscht.\n\nℹ️ Um die Funktion \"Gespeicherte Nachrichten\" erneut zu verwenden, erstelle einfach einen Chat mit dir selbst.</string>
|
||||
<!-- %1$s will be replaced by the amount of storage already used, sth. as '500 MB'. If you want to use a percentage sign, type in two of them, eg. %1$s %% -->
|
||||
<string name="devicemsg_storage_exceeding">⚠️ Der Speicherplatz deines Anbieters ist bald erschöpft; bereits %1$s%% sind verbraucht.\n\nDu kannst möglicherweise keine Nachrichten mehr empfangen, wenn der Speicherplatz komplett verbraucht ist.\n\n👉 Bitte prüfe, ob du alte Daten im Webinterface des Anbieters löschen kannst, und erwäge, \"Einstellungen / Chats und Medien / Alte Nachrichten löschen\" zu aktivieren. Den aktuellen Speicherverbrauch kannst du jederzeit unter \"Einstellungen / Verbindungsstatus\" überprüfen.</string>
|
||||
<string name="devicemsg_storage_exceeding">⚠️ Der Speicherplatz deines Anbieters ist bald erschöpft; bereits %1$s%% sind verbraucht.\n\nDu kannst möglicherweise keine Nachrichten mehr empfangen, wenn der Speicherplatz komplett verbraucht ist.\n\n👉 Bitte prüfe, ob du alte Daten im Webinterface des Anbieters löschen kannst, und erwäge, \"Einstellungen / Chats / Alte Nachrichten löschen\" zu aktivieren. Den aktuellen Speicherverbrauch kannst du jederzeit unter \"Einstellungen / Verbindungsstatus\" überprüfen.</string>
|
||||
<!-- %1%s will be replaced by date and time in some human-readable format -->
|
||||
<string name="devicemsg_bad_time">⚠️ Dein Gerät scheint ein falsches Datum oder eine falsche Uhrzeit (%1$s) zu verwenden.\n\nStelle deine Uhr ⏰🔧 richtig ein, um sicherzustellen, dass deine Nachrichten korrekt empfangen werden.</string>
|
||||
<string name="devicemsg_update_reminder">⚠️ Deine Delta-Chat-Version ist möglicherweise veraltet.\n\nDies kann zu Problemen führen, wenn deine Chat-PartnerInnen neuere Versionen verwenden - und dir die neuesten Funktionen fehlen. 😳\nBitte überprüfe https://get.delta.chat oder den App-Store auf Updates.</string>
|
||||
|
|
@ -994,13 +996,14 @@
|
|||
<string name="qrshow_join_contact_hint">Scannen für Chat mit %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Keine Verbindung zum Internet, Austausch des QR-Codes nicht möglich.</string>
|
||||
<string name="qraccount_ask_create_and_login">Profil auf \"%1$s\" erzeugen und dort anmelden?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Profil auf \"%1$s\" erzeugen und dort anmelden?\n\nDein bisheriges Profil wird dabei nicht gelöscht. Du kannst mit der Option \"Profil wechseln\" jederzeit zwischen den Konten hin- und herschalten.</string>
|
||||
<string name="set_name_and_avatar_explain">Lege einen Namen fest, unter dem deine Kontakte dich kennen. Du kannst auch ein Profilbild festlegen.</string>
|
||||
<string name="please_enter_name">Bitte gib einen Namen an.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Der eingescannte QR-Code kann nicht dazu verwendet werden, eine neues Profil zu erstellen.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Bei \"%1$s\" anmelden?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Bei \"%1$s\" anmelden?\n\nDein bisheriges Profil wird dabei nicht gelöscht. Du kannst mit der Option \"Profil wechseln\" jederzeit zwischen den Profilen hin- und herschalten.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s hat dich zu dieser Gruppe eingeladen.\n\nWarte auf die Antwort des Gerätes von %2$s...</string>
|
||||
|
|
|
|||
|
|
@ -277,7 +277,11 @@
|
|||
</plurals>
|
||||
<string name="file_saved_to">Αποθήκευση στο \"%1$s\".</string>
|
||||
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<plurals name="ask_delete_messages">
|
||||
<item quantity="one">Διαγραφή %d μηνύματος;</item>
|
||||
<item quantity="other">Διαγραφή %d μηνυμάτων;</item>
|
||||
</plurals>
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Διαγραφή %d μηνύματος;</item>
|
||||
<item quantity="other">Διαγραφή %d μηνυμάτων;</item>
|
||||
|
|
@ -346,6 +350,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Λίστα Αλληλογραφίας</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Οι αλλαγές στο όνομα και την εικόνα της λίστας αλληλογραφίας ισχύουν μόνο σε αυτήν τη συσκευή.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -501,6 +506,7 @@
|
|||
<string name="pref_sound">Ήχος</string>
|
||||
<string name="pref_silent">Σε σίγαση</string>
|
||||
<string name="pref_privacy">Ιδιωτικότητα</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Συνομιλίες και Πολυμέσα</string>
|
||||
<string name="pref_system_default">Προκαθορισμένο του συστήματος</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -694,11 +700,12 @@
|
|||
<string name="qrshow_join_contact_hint">Σάρωση για συνομιλία με %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Δεν υπάρχει σύνδεση στο διαδίκτυο, δεν είναι δυνατή η ρύθμιση κωδικού QR.</string>
|
||||
<string name="qraccount_ask_create_and_login">Δημιουργήστε νέα διεύθυνση e-mail στο \"%1$s\" και συνδεθείτε εκεί;</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Δημιουργήστε νέα διεύθυνση e-mail στο \"%1$s\" και συνδεθείτε εκεί;\n\nΟ υπάρχων λογαριασμός σας δεν θα διαγραφεί. Χρησιμοποιήστε τη λειτουργία \"Εναλλαγή λογαριασμού\" για εναλλαγή μεταξύ των λογαριασμών σας.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Ο σαρωμένος κωδικός QR δεν μπορεί να χρησιμοποιηθεί για τη δημιουργία νέου λογαριασμού.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Σύνδεση στο \"%1$s\";</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Σύνδεση στο \"%1$s\";\n\nΟ υπάρχων λογαριασμός σας δεν θα διαγραφεί. Χρησιμοποιήστε τη λειτουργία \"Εναλλαγή λογαριασμού\" για εναλλαγή μεταξύ των λογαριασμών σας.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s σας προσκάλεσε να συμμετάσχετε σε αυτήν την ομάδα.\n\nΑναμονή για απάντηση από τη συσκευή του %2$s…</string>
|
||||
|
|
|
|||
|
|
@ -416,6 +416,7 @@
|
|||
<string name="pref_sound">Sono</string>
|
||||
<string name="pref_silent">Silenta</string>
|
||||
<string name="pref_privacy">Privateco</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Interparoloj kaj aŭdvidaĵoj</string>
|
||||
<string name="pref_system_default">Sistema defaŭlto</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
|
|||
|
|
@ -423,7 +423,7 @@
|
|||
<item quantity="many">¿Eliminar %d mensajes de todos tus dispositivos?</item>
|
||||
<item quantity="other">¿Eliminar %d mensajes de todos tus dispositivos?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">¿Eliminar %d mensaje?</item>
|
||||
<item quantity="many">¿Eliminar %d mensajes?</item>
|
||||
|
|
@ -501,6 +501,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Lista de correo</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Los cambios en el nombre y la imagen de la lista de correo solo se aplican a este dispositivo.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -629,7 +630,7 @@
|
|||
<string name="onboarding_create_instant_account">Crear perfil nuevo</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Ya tengo un perfil</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Iniciar sesión con correo electrónico</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Tu perfil</string>
|
||||
|
|
@ -766,6 +767,7 @@
|
|||
<string name="pref_sound">Sonido</string>
|
||||
<string name="pref_silent">Silencio</string>
|
||||
<string name="pref_privacy">Privacidad</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Chats y multimedia</string>
|
||||
<string name="pref_system_default">Predeterminado del sistema</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -1008,13 +1010,14 @@ Desactiva este ajuste solo si has eliminado este perfil de todos tus demás disp
|
|||
<string name="qrshow_join_contact_hint">Escanea esto para configurar un contacto con %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">No hay conexión a Internet, no se puede configurar con código QR.</string>
|
||||
<string name="qraccount_ask_create_and_login">¿Crear una nueva dirección de correo en \"%1$s\" e ingresar allí?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">¿Crear una nueva dirección de correo en \"%1$s\" e ingresar ahí?\n\nTu cuenta existente no será eliminada. Usar el ítem \"Cambiar cuenta\" para cambiar entre tus cuentas.</string>
|
||||
<string name="set_name_and_avatar_explain">Establece un nombre que tus contactos puedan reconocer. También puedes establecer una foto de perfil.</string>
|
||||
<string name="please_enter_name">Por favor, introduce un nombre.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">El código QR escaneado no puede ser usado para configurar una nueva cuenta.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">¿Iniciar sesión en \"%1$s\"?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">¿Iniciar sesión en \"%1$s\"?\n\nTu cuenta existente no será eliminada. Usa la opción \"Cambiar cuenta\" para cambiar entre tus cuentas.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s te invitó a unirte a este grupo.\n\nEsperando que el dispositivo de %2$s responda…</string>
|
||||
|
|
|
|||
|
|
@ -346,6 +346,7 @@
|
|||
<string name="device_talk">Seadme sõnumid</string>
|
||||
<string name="device_talk_subtitle">Kohalikus seadmes loodud sõnumid</string>
|
||||
<string name="device_talk_explain">Selle vestluse sõnumid on koostatud selles nutiseadmes ja nende abil teavitatakse sind rakenduse uuendustest ja märgatud probleemidest.</string>
|
||||
<string name="device_talk_welcome_message2">Asu suhtlema!\n\n🙌 Klõpsa mõlema seadme põhivaates valikut „QR-kood“. Vali ühes seadmes „Skaneeri QR-koodi“ ja suuna ta teisele seadmele\n\n🌍 Kui te pole üheskoos samas kohas, siis skaneeri videokõne vahendusel või edasta „Skaneeri QR-koodi“ valikus leiduv kutselink\n\nSeejärel saadki kasutada meie meeldivat ja hajutatud sõnumilahendust. Suure kontrastina teiste sarnaste populaarsete rakendustega puudub meil keskne kontroll ning keegi ei jälita sind, sinu peret, sõpru ega kolleege ning müü sinu andmeid teistele osapooltele.</string>
|
||||
<string name="edit_contact">Muuda kontakti</string>
|
||||
<!-- Verb "to pin", making something sticky, not a noun or abbreviation for "pin number". -->
|
||||
<string name="pin_chat">Tõsta vestlus esile</string>
|
||||
|
|
@ -408,7 +409,7 @@
|
|||
<item quantity="one">Kas kustutad %d sõnumi kõikidest oma seadmetest?</item>
|
||||
<item quantity="other">Kas kustutad %d sõnumit kõikidest oma seadmetest?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Kas soovid kustutada %d sõnumi?</item>
|
||||
<item quantity="other">Kas soovid kustutada %d sõnumit?</item>
|
||||
|
|
@ -470,6 +471,7 @@
|
|||
<!-- Action to add a message to "Saved Messages". The longer form (instead of "Save" only) is needed esp. on desktop to make clear this is not about saving a file to disk -->
|
||||
<string name="save_message">Salvesta sõnum</string>
|
||||
<string name="saved_messages">Salvestatud sõnumid</string>
|
||||
<string name="saved_messages_explain">• Mugavaks ligipääsuks edasta sõnumid siia\n\n• Tee märkmeid või koosta häälmemosid\n\n• Lisa talletamiseks meediafaile</string>
|
||||
<!-- Should match "Saved" from "Saved messages" -->
|
||||
<string name="saved">Salvestatud</string>
|
||||
<string name="save_as">Salvesta kui</string>
|
||||
|
|
@ -481,6 +483,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Postiloend</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Postiloendi nime ja tunnuspildi muudatused kehtivad vaid selles seadmes.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -495,6 +498,8 @@
|
|||
<string name="enable_realtime">Reaalajas toimivad rakendused</string>
|
||||
<string name="enable_realtime_explain">Vestlustega seotud rakendused võivad kasutada reaalajas ühendusi. Kui valik on kasutusel, siis vestluste osapooltel on võimalik peale rakenduse käivitamist tuvastada sinu IP-aadress.</string>
|
||||
|
||||
<!-- map -->
|
||||
<string name="filter_map_on_time">Näita asukohti ajavahemike kaupa</string>
|
||||
<string name="add_poi">Saada huvipunkti teave</string>
|
||||
|
||||
|
||||
|
|
@ -504,6 +509,10 @@
|
|||
<string name="puny_code_warning_header">Tuvastasin kahtlase lingi</string>
|
||||
<!-- placeholder contains the hostname converted to ascii -->
|
||||
<string name="puny_code_warning_question">Kas oled kindel, et soovid avada „%1$s“?</string>
|
||||
<!-- this message is shown whenever a link with non-latin characters is clicked. first placeholder is original hostname with special chars, second placeholder is hostname encoded in ascii -->
|
||||
<string name="puny_code_warning_description">Selles lingis võivad olla petlikult sarnased tähed teistest tähestikest. Kui klõpsad linki „%1$s“, siis tegelikult avaneb „%2$s“. Kui sa midagi sellist ei eeldanud, siis võib olla tegemist ohtliku lingiga.</string>
|
||||
|
||||
|
||||
<!-- search -->
|
||||
<string name="search">Otsi</string>
|
||||
<string name="search_in_chat">Otsi vestlusest</string>
|
||||
|
|
@ -602,7 +611,7 @@
|
|||
<string name="onboarding_create_instant_account">Loo uus profiil</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Mul juba on profiil olemas</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Klassikaline e-post alusühendusena</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Sinu profiil</string>
|
||||
|
|
@ -723,6 +732,8 @@
|
|||
<string name="pref_outgoing_worse">Kõige kehvem kvaliteet, aga väikseim maht</string>
|
||||
<string name="pref_vibrate">Väristamine</string>
|
||||
<string name="pref_screen_security">Ekraani turvalisus</string>
|
||||
<!-- Translators: Must indicate that there is no guarantee as the system may not honor our request. -->
|
||||
<string name="pref_screen_security_explain">Palu, et operatsioonisüsteem keelaks ekraanitõmmiste tegemise hiljutiste sõnumite loendis ja rakenduse sees, kuid palun arvesta, et see ei pruugi olla alati tagatud</string>
|
||||
<string name="pref_screen_security_please_restart_hint">Ekraaniturvalisusega seotud seadistuste kasutamisele võtmiseks palun käivita rakendus uuesti.</string>
|
||||
<string name="pref_notifications">Teavitused</string>
|
||||
<string name="pref_mention_notifications">Mainimised</string>
|
||||
|
|
@ -736,6 +747,7 @@
|
|||
<string name="pref_sound">Heli</string>
|
||||
<string name="pref_silent">Vaikne</string>
|
||||
<string name="pref_privacy">Privaatsus</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Vestlused ja meediumid</string>
|
||||
<string name="pref_system_default">Süsteemi vaikimisi valik</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -762,6 +774,7 @@
|
|||
<string name="pref_other">Muu</string>
|
||||
<string name="pref_backup">Varundus</string>
|
||||
<string name="pref_backup_explain">Varunda vestlused välisesse andmeruumi</string>
|
||||
<string name="pref_backup_export_explain">Varukoopia abil saad teha uut paigaldust selles või muus nutiseadmes.\n\nVarukoopias sisalduvad kõik sõnumid, kontaktid ja vestlused vastavalt sinu Autocrypti seadistustele. Palun hoia varukoopiat turvalises kohas või kustuta ta niipea, kui võimalik.</string>
|
||||
<string name="pref_backup_export_this">Ekspordi see profiil</string>
|
||||
<!-- the placeholder will be replaced by the number of profiles to export; the number is always larger than 1 -->
|
||||
<string name="pref_backup_export_all">Ekspordi kõik %1$d profiili</string>
|
||||
|
|
@ -779,9 +792,12 @@
|
|||
<string name="pref_auto_folder_moves">Tõsta automaatselt DeltaChati kausta</string>
|
||||
<string name="pref_only_fetch_mvbox_title">Laadi vaid DeltaChati kasutast</string>
|
||||
<string name="pref_show_emails">Näita klassikalisi e-kirju</string>
|
||||
<string name="pref_show_emails_no">Ei, vaid vestlustele</string>
|
||||
<string name="pref_show_emails_accepted_contacts">Kinnitatud kontaktidele</string>
|
||||
<string name="pref_show_emails_all">Kõik</string>
|
||||
<string name="pref_experimental_features">Katselised funktsionaalsused</string>
|
||||
<string name="pref_experimental_features_explain">Need funktsionaalsused ei pruugi korralikult toimida ning nad võivad tulevikus muutuda või sootuks olla eemaldatud</string>
|
||||
<string name="pref_on_demand_location_streaming">Asukoha jagamine vastavalt tellimisele.</string>
|
||||
<string name="pref_background_default">Vaikimisi pilt</string>
|
||||
<string name="pref_background_default_color">Vaikimisi värv</string>
|
||||
<string name="pref_background_custom_image">Sinu valitud pilt</string>
|
||||
|
|
@ -935,6 +951,8 @@
|
|||
<string name="learn_more">Lisateave</string>
|
||||
|
||||
<string name="devicemsg_self_deleted">Sa kustutasid vestluse nimega „Salvestatud sõnumid“.\n\nℹ️ Kui tahad uuesti kasutada võimalust „Salvestatud sõnumid“, siis lisa vestlus iseendaga.</string>
|
||||
<!-- %1$s will be replaced by the amount of storage already used, sth. as '500 MB'. If you want to use a percentage sign, type in two of them, eg. %1$s %% -->
|
||||
<string name="devicemsg_storage_exceeding">⚠️ Sinu poolt teenusepakkuja juures kasutatav andmeruum hakkab täis saama: %1$s%% on juba kasutusel.\n\nKui andmeruum on täis, siis sa ilmselt ei pruugi enam sõnumeid saada.\n\n👉 Palun kontrolli, kas sul on võimalik teenusepakkuja veebiliidesest vanu sõnumeid kustutada või veelgi parem on, kui kasutad automaatse kustutamise võimalust: „Seadistused“ → „Vestlused“ → „Kustuta vanad sõnumid“. Hetkel kasutatavat andmeruumi mahutu saad alati kontrollida siit: „Seadistused“ → „Ühenduvus“.</string>
|
||||
<!-- %1%s will be replaced by date and time in some human-readable format -->
|
||||
<string name="devicemsg_bad_time">⚠️ Sinu seadme kuupäev või kellaaeg tundub olema ebatäpne (%1$s).\n\nPalun seadista kella ⏰🔧 ja taga, et sõnumivahetus, sh selle krüptimine toimib korrektselt.</string>
|
||||
<string name="devicemsg_update_reminder">⚠️ Sinu kasutatav Delta Chati versioon võib olla aegunud.\n\nKuna sinu vestluspartnerid ilmselt kasutavad uuemaid versioone, ja sinu oma ei oska uuemaid funktsionaalsusi, siis võib tekkida probleeme 😳\nUuenduste teavet leiad https://get.delta.chat saidist või oma rakendustepoest.</string>
|
||||
|
|
@ -975,13 +993,14 @@
|
|||
<string name="qrshow_join_contact_hint">Skaneeri vestlemaks kasutajaga „%1$s“</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Internetiühendus puudub ja QR-koodil põhinevat seadistamist kasutada ei saa.</string>
|
||||
<string name="qraccount_ask_create_and_login">Kas lood uue profiili nimega „%1$s“ ja logid sinna sisse?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Kas soovid lisada uue profiili „%1$s“ serverisse ja sellega sisse logida?\n\nSinu olemasolev profiil jääb alles. Profiile saad vahetada käsuga „Vaheta profiili“.</string>
|
||||
<string name="set_name_and_avatar_explain">Vali nimi, mida sinu kontaktid ära tunnevad. Saad ka lisada profiili tunnuspildi.</string>
|
||||
<string name="please_enter_name">Palun sisesta nimi.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Selle skaneeritud QR-koodi abil ei saa uut profiili kasutusele võtta.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Kas logid sisse „%1$s“ profiili?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Kas soovid sisse logid oma kontoga „%1$s“ serveris?\n\nSinu olemasolev profiil jääb alles. Profiile saad vahetada käsuga „Vaheta profiili“.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s kutsus sind liituma selle grupiga.\n\nOotan vastust kasutaja %2$s seadmest…</string>
|
||||
|
|
@ -1147,6 +1166,8 @@
|
|||
<string name="InfoPlist_NSPhotoLibraryAddUsageDescription">Delta Chat soovib pilte salvestada sinu fotode kogusse.</string>
|
||||
<string name="InfoPlist_NSFaceIDUsageDescription">Delta Chat võib kasutada Face ID teenust sinu kohaliku profiili kaitsmiseks, varukoopia tegemiseks ja täiendavate seadmete seadistamiseks.</string>
|
||||
|
||||
<!-- android specific strings, developers: please take care to remove strings that are no longer used! -->
|
||||
<string name="pref_instant_delivery">Kohene kättetoimetamine</string>
|
||||
<string name="pref_background_notifications">Kasuta ühendust taustal</string>
|
||||
<string name="pref_background_notifications_explain">Eeldab, et akukasutuse optimeerimine on lülitatud välja. Kasuta siis, kui sõnumid pole õigeaegselt näha.</string>
|
||||
<string name="pref_reliable_service">Kasuta ühendust taustal</string>
|
||||
|
|
|
|||
|
|
@ -463,6 +463,7 @@
|
|||
<string name="pref_sound">Soinua</string>
|
||||
<string name="pref_silent">Isila</string>
|
||||
<string name="pref_privacy">Pribatutasuna</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Txatak eta multimedia</string>
|
||||
<string name="pref_system_default">Sisteman lehenetsia</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
|
|||
|
|
@ -385,7 +385,7 @@
|
|||
<item quantity="one">آیا میخواهید از روی تمام دستگاههایتان %d پیام را حذف کنید؟</item>
|
||||
<item quantity="other">آیا میخواهید از روی تمام دستگاههایتان %d پیام را حذف کنید؟</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">میخواهید %dپیام پاک شود؟</item>
|
||||
<item quantity="other">میخواهید %d پیام پاک شود؟</item>
|
||||
|
|
@ -461,6 +461,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">فهرست پستی</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">تغییرات انجام شده روی نام و تصویر فهست پستی فقط در این دستگاه اعمال شود.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -590,7 +591,7 @@
|
|||
<string name="onboarding_create_instant_account">ایجاد حساب کاربری جدید</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">از قبل یک حساب کاربری دارم</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">ساخت حساب کاربری با حساب رایانامه معمولی</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">نمایه شما</string>
|
||||
|
|
@ -712,6 +713,7 @@
|
|||
<string name="pref_sound">صدا</string>
|
||||
<string name="pref_silent">سکوت</string>
|
||||
<string name="pref_privacy">حریم خصوصی</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">گپها و رسانه</string>
|
||||
<string name="pref_system_default">پیشفرض سیستم</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -938,6 +940,7 @@
|
|||
<string name="qrshow_join_contact_hint">برای ارتباط با %1$s این را اسکن کنید.</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">اتصال اینترنت نیست. نمیتوان نصب کد کیوآر را انجام داد. </string>
|
||||
<string name="qraccount_ask_create_and_login">ایجاد رایانامهٔ جدید روی «%1$s» و ورود به آنجا؟</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">نشانی جدید رایانامه روی «%1$s» ایجاد شده و به آن وارد شود؟
|
||||
حساب فعلی شما پاک نمیشود. از بخش «تغییر حساب کاربری» برای جابجایی بین حسابها استفاده کنید</string>
|
||||
<string name="set_name_and_avatar_explain">اسمی انتخاب کنید که مخاطبینتان با آن شما را بشناسند. می توانید برای خود عکسی هم انتخاب کنید.</string>
|
||||
|
|
@ -945,7 +948,7 @@
|
|||
<string name="qraccount_qr_code_cannot_be_used">این کد کیوآر اسکن شده را نمیتوان برای راهاندازی حساب جدید استفاده کرد. </string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">آیا به \"%1$s\" وارد شوید؟</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">آیا به «%1$s» وارد شوید؟\n\nحساب موجود شما حذف نخواهد شد. برای جابهجایی میان حسابهایتان از «تغییر حساب» استفاده کنید.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">کاربر %1$s شما را دعوت کرده است تا عضو این گروه شوید.
|
||||
|
|
|
|||
|
|
@ -304,7 +304,11 @@
|
|||
</plurals>
|
||||
<string name="file_saved_to">Tiedosto tallennettu \"%1$s\".</string>
|
||||
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<plurals name="ask_delete_messages">
|
||||
<item quantity="one">Poista %d viesti?</item>
|
||||
<item quantity="other">Poista %d viestiä?</item>
|
||||
</plurals>
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Poista %d viesti?</item>
|
||||
<item quantity="other">Poista %d viestiä?</item>
|
||||
|
|
@ -373,6 +377,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Sähköpostilista</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Muutokset sähköpostilistan nimeen ja kuvaan tallentuvat vain tähän laitteeseen.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -490,7 +495,7 @@
|
|||
<string name="onboarding_create_instant_account">Luo uusi profiili</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Minulla on jo profiili</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Tavanomainen sähköpostikirjautuminen</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Profiilisi</string>
|
||||
|
|
@ -589,6 +594,7 @@
|
|||
<string name="pref_sound">Ääni</string>
|
||||
<string name="pref_silent">Äänetön</string>
|
||||
<string name="pref_privacy">Yksityisyys</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Keskustelut ja media</string>
|
||||
<string name="pref_system_default">Järjestelmän oletus</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -809,13 +815,14 @@
|
|||
<string name="qrshow_join_contact_hint">Skannaa aloittaaksesi keskustelun käyttäjän %1$s kanssa</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Ei internetyhteyttä, QR-koodin luominen ei onnistu.</string>
|
||||
<string name="qraccount_ask_create_and_login">Luo uusi sähköpostiosoite palvelimella \"%1$s\" ja kirjaudu sisään?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Luo uusi sähköpostiosoite palvelimella \"%1$s\" ja kirjaudu sisään?\n\nNykyistä tiliäsi ei poisteta. Käytä valintaa \"Vaihda tiliä\" vaihtaaksesi tilien välillä.</string>
|
||||
<string name="set_name_and_avatar_explain">Aseta nimi jonka yhteystietosi tunnistavat. Voit myös asettaa profiilikuvan.</string>
|
||||
<string name="please_enter_name">Syötä nimi.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Uutta tiliä ei voida luoda skannatulla QR-koodilla.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Haluatko kirjautua osoitteella \"%1$s\"?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Haluatko kirjautua osoitteella \"%1$s\"?\n\nNykyistä tiliäsi ei poisteta. Käytä \"Vaihda tiliä\" -kohtaa vaihtaaksesi tiliesi välillä.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s kutsui sinut tähän ryhmään.\n\nOdotetaan vastausta yhteystiedon %2$s laitteelta...</string>
|
||||
|
|
|
|||
|
|
@ -396,7 +396,7 @@
|
|||
<item quantity="many">Effacer %d messages ici et sur le serveur ?</item>
|
||||
<item quantity="other">Effacer %d messages ici et sur le serveur ?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Supprimer %d message ?</item>
|
||||
<item quantity="many">Supprimer %d messages ?</item>
|
||||
|
|
@ -473,6 +473,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Liste de diffusion</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Les changements du nom et de l\'avatar de la liste de diffusion s\'appliquent uniquement sur cet appareil.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -601,7 +602,7 @@
|
|||
<string name="onboarding_create_instant_account">Créer un nouveau compte</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Je possède déjà un compte</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Authentification par email classique</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Votre compte</string>
|
||||
|
|
@ -733,6 +734,7 @@
|
|||
<string name="pref_sound">Son</string>
|
||||
<string name="pref_silent">Silencieux</string>
|
||||
<string name="pref_privacy">Vie privée</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Discussions et fichiers multimédia</string>
|
||||
<string name="pref_system_default">Valeur par défaut du système</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -972,13 +974,14 @@
|
|||
<string name="qrshow_join_contact_hint">Scanner pour discuter avec %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Pas de connexion Internet, ne peut pas effectuer la configuration du QR code.</string>
|
||||
<string name="qraccount_ask_create_and_login">Créer une nouvelle adresse de courriel sur « %1$s » et se connecter ici ?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Créer une nouvelle adresse de courriel sur « %1$s » et s\'y connecter ?\n\nVotre compte existant ne sera pas supprimé. Utilisez l\'élément de menu « Changer de compte » pour passer d\'un compte à l\'autre.</string>
|
||||
<string name="set_name_and_avatar_explain">Choisissez un nom que vos contacts reconnaîtrons. Vous pouvez également définir une image pour votre profile.</string>
|
||||
<string name="please_enter_name">Veuillez saisir un nom.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Le code QR scanné ne peut pas être utilisé pour ouvrir un nouveau compte.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Se connecter au compte « %1$s » ?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Se connecter à « %1$s » ?\n\nVotre compte existant ne sera pas supprimé. Utiliser l\'élément de menu « Changer de compte » pour passer d\'un compte à l\'autre.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s vous a invité à rejoindre ce groupe.\n\nEn attente de la réponse de l’appareil de %2$s…</string>
|
||||
|
|
|
|||
|
|
@ -376,7 +376,7 @@
|
|||
<item quantity="one">Eliminar %d mensaxe en todos os teus dispositivos?</item>
|
||||
<item quantity="other">Eliminar %d mensaxes en todos os teus dispositivos?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Borrar %d mensaxe?</item>
|
||||
<item quantity="other">Borrar %d mensaxes?</item>
|
||||
|
|
@ -449,6 +449,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Lista de correo</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Cambios no nome da lista de correo e imaxe só se aplican neste dispositivo.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -577,7 +578,7 @@
|
|||
<string name="onboarding_create_instant_account">Crear novo perfil</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Xa teño un perfil</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Acceso clásido con correo</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">O teu perfil</string>
|
||||
|
|
@ -692,6 +693,7 @@
|
|||
<string name="pref_sound">Son</string>
|
||||
<string name="pref_silent">Mudo</string>
|
||||
<string name="pref_privacy">Intimidade</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Conversas e medios</string>
|
||||
<string name="pref_system_default">Por omsión no sistema</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -902,6 +904,7 @@
|
|||
<string name="qrshow_join_contact_hint">Escanea esto para conectar con %1$s-</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Sen conexión a internet, non se pode facer o axuste por código QR</string>
|
||||
<string name="qraccount_ask_create_and_login">Crear un novo enderezo de correo en \"%1$s\" e acceder ali?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Crear un novo enderezo de email en \"%1$s\" e acceder?\n\nNon se eliminará a conta actual. Usa \"Cambiar de conta\" para cambiar entre as túas contas.</string>
|
||||
<string name="set_name_and_avatar_explain">Define un nome recoñecíbel polos teus contactos. Tamén podes definir unha imaxe de perfil.</string>
|
||||
<string name="please_enter_name">Por favor introduce un nome.</string>
|
||||
|
|
|
|||
|
|
@ -192,6 +192,7 @@
|
|||
<string name="pref_sound">Zvuk</string>
|
||||
<string name="pref_silent">Tiho</string>
|
||||
<string name="pref_privacy">Privatnost</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Razgovori i media</string>
|
||||
<string name="pref_system_default">Sustavno zadano</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
|
|||
|
|
@ -409,7 +409,7 @@
|
|||
<item quantity="one">Töröl %d üzenetet az összes eszközén?</item>
|
||||
<item quantity="other">Töröl %d üzenetet az összes eszközén?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">%d üzenet törlése?</item>
|
||||
<item quantity="other">%d üzenet törlése?</item>
|
||||
|
|
@ -483,6 +483,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Levelezőlista</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">A levelezőlista nevének és képének módosítása csak ezen az eszközön érvényes.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -611,7 +612,7 @@
|
|||
<string name="onboarding_create_instant_account">Új profil létrehozása</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Már van profilom</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Klasszikus e-mail bejelentkezés</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Profil</string>
|
||||
|
|
@ -736,6 +737,7 @@
|
|||
<string name="pref_sound">Hang</string>
|
||||
<string name="pref_silent">Csendes</string>
|
||||
<string name="pref_privacy">Adatvédelem</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Csevegések és média</string>
|
||||
<string name="pref_system_default">Rendszer alapértelmezett</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -970,13 +972,14 @@
|
|||
<string name="qrshow_join_contact_hint">QR-kód beolvasása a csevegéshez vele: „%1$s”</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Nincs internetkapcsolat, nem lehet elvégezni a QR-kód beállítását.</string>
|
||||
<string name="qraccount_ask_create_and_login">Új profil létrehozása a(z) „%1$s” oldalon és bejelentkezés ott?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Új profil létrehozása a(z) „%1$s” oldalon, és bejelentkezés ott?\n\nA meglévő profilja nem törlődik. A „Profilváltás” elemmel válthat a profiljai között.</string>
|
||||
<string name="set_name_and_avatar_explain">Adjon meg egy olyan nevet, amelyet a partnerei felismernek. Beállíthat egy profilképet is.</string>
|
||||
<string name="please_enter_name">Adjon meg egy nevet.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">A beolvasott QR-kód nem használható új profil beállítására.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Bejelentkezés ide: „%1$s”?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Bejelentkezés ide: „%1$s”?\n\nA meglévő profilját nem töröljük. A „Profilváltás” elemmel válthat a profiljai között.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s meghívta önt, hogy csatlakozzon ehhez a csoporthoz.\n\n%2$s eszközére várakozás a válaszhoz…</string>
|
||||
|
|
|
|||
|
|
@ -273,7 +273,10 @@
|
|||
</plurals>
|
||||
<string name="file_saved_to">Berkas disimpan ke \"%1$s\".</string>
|
||||
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<plurals name="ask_delete_messages">
|
||||
<item quantity="other">Menghapus pesan %d?</item>
|
||||
</plurals>
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="other">Menghapus pesan %d?</item>
|
||||
</plurals>
|
||||
|
|
@ -425,6 +428,7 @@
|
|||
<string name="pref_sound">Suara</string>
|
||||
<string name="pref_silent">Sunyi</string>
|
||||
<string name="pref_privacy">Privasi</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Obrolan dan media</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
<string name="pref_light_theme">Cahaya</string>
|
||||
|
|
@ -529,6 +533,7 @@
|
|||
<string name="qrshow_join_contact_hint">Pindai ini untuk mengatur kontak dengan%1$s.</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Tidak ada koneksi internet, tidak bisa menjalankan kode pengaturan QR.</string>
|
||||
<string name="qraccount_ask_create_and_login">Buat alamat email baru di \"%1$s\" dan login di sana?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Buat alamat email baru di\"%1$s\" dan masuk ke sana?\n\nAkun yang sudah ada tidak akan di hapus. Gunakankan item \"Ganti akun\" untuk mengganti akun anda</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Kode QR yang dipindai tidak dapat digunakan untuk mengatur akun baru.</string>
|
||||
<string name="contact_verified">%1$sdiverifikasi.</string>
|
||||
|
|
|
|||
|
|
@ -102,10 +102,10 @@
|
|||
<string name="cannot_save_file">Impossibile salvare%1$s.</string>
|
||||
<string name="copied_to_clipboard">Copiato negli appunti.</string>
|
||||
<string name="contacts_headline">Contatti</string>
|
||||
<string name="email_address">Indirizzo E-Mail</string>
|
||||
<string name="email_address">Indirizzo e-mail</string>
|
||||
<string name="bad_email_address">Indirizzo e-mail errato.</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="existing_password">Password Esistente</string>
|
||||
<string name="existing_password">Password esistente</string>
|
||||
<string name="now">Ora</string>
|
||||
<!-- Headline for destructive actions with no undo. Could also be "Caution" or "Warning". -->
|
||||
<string name="danger">Pericolo</string>
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
<string name="last_seen_at">Ultimo accesso alle %1$s</string>
|
||||
<!-- Refers to the time a contact was last seen. Shown below contact name in the profile. The placeholder will be replaced by a relative point in time as "3 minutes ago" (see https://momentjs.com for more examples and languages)-->
|
||||
<string name="last_seen_relative"> Ultimo accesso %1$s</string>
|
||||
<string name="last_seen_unknown">Ultimo accesso: Sconosciuto</string>
|
||||
<string name="last_seen_unknown">Ultimo accesso: sconosciuto</string>
|
||||
<!-- Shown in call duration. Avoid abbreviations, prefer full words ex. "N seconds". -->
|
||||
<plurals name="n_seconds_ext">
|
||||
<item quantity="one">%d secondo</item>
|
||||
|
|
@ -179,7 +179,7 @@
|
|||
<plurals name="n_selected">
|
||||
<item quantity="one">%d Selezionato</item>
|
||||
<item quantity="many">%d Selezionati</item>
|
||||
<item quantity="other">%d Selezionati</item>
|
||||
<item quantity="other">%d selezionati</item>
|
||||
</plurals>
|
||||
<string name="selected_colon">Selezionato:</string>
|
||||
<string name="self">Io</string>
|
||||
|
|
@ -424,7 +424,7 @@
|
|||
<item quantity="many">Cancella %d messaggi su tutti i tuoi dispositivi?</item>
|
||||
<item quantity="other">Cancella %d messaggi su tutti i tuoi dispositivi?</item>
|
||||
</plurals>
|
||||
<!-- Used for the deletion of Device messages -->
|
||||
<!-- deprecated, use ask_delete_messages -->
|
||||
<plurals name="ask_delete_messages_simple">
|
||||
<item quantity="one">Eliminare %d messaggio?</item>
|
||||
<item quantity="many">Eliminare %d messaggi?</item>
|
||||
|
|
@ -502,6 +502,7 @@
|
|||
|
||||
<!-- mailing lists -->
|
||||
<string name="mailing_list">Elenco di Distribuzione</string>
|
||||
<!-- deprecated -->
|
||||
<string name="mailing_list_profile_info">Le modifiche al nome e all\'immagine dell\'elenco di distribuzione si applicano solo a questo dispositivo.</string>
|
||||
|
||||
<!-- webxdc -->
|
||||
|
|
@ -630,7 +631,7 @@
|
|||
<string name="onboarding_create_instant_account">Crea Nuovo Profilo</string>
|
||||
<!-- Secondary button on the welcome screen, allows to "Add as Second Device", "Restore from Backup" -->
|
||||
<string name="onboarding_alternative_logins">Ho Già un Profilo</string>
|
||||
<!-- This is a button and a title, allowing to log in to existing, classic email accounts, setting ports, passwords and so on -->
|
||||
<!-- This is a button and a title, allowing to use existing, classic email, setting ports, passwords and so on -->
|
||||
<string name="manual_account_setup_option">Accesso E-Mail Classico</string>
|
||||
<!-- Instant onboarding title (there is not more to do than to set name and avatar) -->
|
||||
<string name="instant_onboarding_title">Il Tuo Profilo</string>
|
||||
|
|
@ -683,7 +684,7 @@
|
|||
<string name="proxy_enabled">Proxy Abilitato</string>
|
||||
<string name="proxy_enabled_hint">Stai utilizzando un proxy. Se riscontri problemi di connessione, prova un proxy diverso.</string>
|
||||
<!-- "Relay" refers to the relay servers used; please chose a common term in your language, no need to be literal. If in doubt, stay with "Relay" -->
|
||||
<string name="transports">Trasporti</string>
|
||||
<string name="transports">Ripetitori</string>
|
||||
<string name="add_transport">Aggiungi Trasporto</string>
|
||||
<string name="remove_transport">Rimuovi Trasporto</string>
|
||||
<string name="edit_transport">Modifica Trasporto</string>
|
||||
|
|
@ -767,6 +768,7 @@
|
|||
<string name="pref_sound">Suono</string>
|
||||
<string name="pref_silent">Silenzia</string>
|
||||
<string name="pref_privacy">Riservatezza</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">Chat e Media</string>
|
||||
<string name="pref_system_default">Predefinito di sistema</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
@ -815,6 +817,7 @@
|
|||
<string name="pref_show_emails_accepted_contacts">Per contatti accettati</string>
|
||||
<string name="pref_show_emails_all">Sì</string>
|
||||
<string name="pref_experimental_features">Caratteristiche Sperimentali</string>
|
||||
<string name="pref_experimental_features_explain">Queste funzionalità potrebbero essere instabili e potrebbero essere modificate o rimosse</string>
|
||||
<string name="pref_on_demand_location_streaming">Trasmissione Posizione su Richiesta</string>
|
||||
<string name="pref_background_default">Sfondo predefinito</string>
|
||||
<string name="pref_background_default_color">Colore predefinito</string>
|
||||
|
|
@ -840,6 +843,9 @@
|
|||
<string name="disable_imap_idle">Disabilita IMAP IDLE</string>
|
||||
<string name="disable_imap_idle_explain">Non utilizzare l\'estensione IMAP IDLE anche se il server la supporta. L\'abilitazione di questa opzione ritarderà il recupero del messaggio, abilitarla solo a scopo di test.</string>
|
||||
<string name="send_stats_to_devs">Invia statistiche agli sviluppatori di Delta Chat</string>
|
||||
<string name="stats_msg_body">L\'allegato contiene statistiche di utilizzo anonime, che ci aiutano a migliorare Delta Chat. Grazie!</string>
|
||||
|
||||
|
||||
<!-- Emoji picker and categories -->
|
||||
<string name="emoji_search_results">Risultati Ricerca</string>
|
||||
<string name="emoji_not_found">Nessuna emoji trovata</string>
|
||||
|
|
@ -1008,16 +1014,19 @@
|
|||
<string name="qrshow_join_contact_hint">Scansionalo per chattare con %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Nessuna connessione internet, impossibile effettuare l\'impostazione tramite codice QR.</string>
|
||||
<string name="qraccount_ask_create_and_login">Creo un nuovo profilo su \"%1$s\" e accedo qui?</string>
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qraccount_ask_create_and_login_another">Crea un nuovo profilo su \"%1$s\" e accedi qui?\n\nIl tuo profilo esistente non verrà eliminato. Utilizza la voce \"Cambia Profilo\" per passare da un profilo all\'altro.</string>
|
||||
<string name="set_name_and_avatar_explain">Imposta un nome che i tuoi contatti riconosceranno. Puoi anche impostare un\'immagine del profilo.</string>
|
||||
<string name="please_enter_name">Per piacere inserisci un nome.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Il codice QR scansionato non può essere utilizzato per creare un nuovo profilo.</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<string name="qrlogin_ask_login">Accedere a \"%1$s\"?</string>
|
||||
<!-- the placeholder will be replaced by the address of the profile -->
|
||||
<!-- deprecated, use confirm_add_transport when scanning such a QR code from the main scanner -->
|
||||
<string name="qrlogin_ask_login_another">Accedere a \"%1$s\"?\n\nIl tuo profilo esistente non verrà cancellato. Usa la voce \"Cambia Profilo\" per passare da un profilo all\'altro.</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_started">%1$s ti ha invitato ad unirti a questo gruppo.\n\nIn attesa che il dispositivo di %2$s risponda…</string>
|
||||
<!-- first placeholder will be replaced by name of the inviter, second placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_channel_started">%1$s ti ha invitato a unirti a questo canale.\n\nIn attesa del dispositivo di %2$s che risponda…</string>
|
||||
<!-- placeholder will be replaced by the name of the inviter. -->
|
||||
<string name="secure_join_replies">%1$s ha risposto, in attesa di essere aggiunto al gruppo…</string>
|
||||
<string name="secure_join_wait">Impostazione della crittografia end-to-end, attendere...</string>
|
||||
|
|
|
|||
|
|
@ -406,6 +406,7 @@
|
|||
<string name="pref_sound">通知音</string>
|
||||
<string name="pref_silent">無音</string>
|
||||
<string name="pref_privacy">機密保護</string>
|
||||
<!-- deprecated, use pref_chats -->
|
||||
<string name="pref_chats_and_media">チャットと写真・動画・音楽</string>
|
||||
<string name="pref_system_default">システム既定</string>
|
||||
<!-- Translators: as in "opposite of dark" -->
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue